+ else if(i->name=="column_major" || i->name=="row_major")
+ {
+ allowed = (variable && scope==INTERFACE_BLOCK);
+ if(allowed)
+ {
+ BasicTypeDeclaration *basic = dynamic_cast<BasicTypeDeclaration *>(variable->type_declaration);
+ while(basic && basic->kind==BasicTypeDeclaration::ARRAY)
+ basic = dynamic_cast<BasicTypeDeclaration *>(basic->base_type);
+ allowed = (basic && basic->kind==BasicTypeDeclaration::MATRIX);
+ err_descr = "non-matrix variable";
+ }
+ }