}
}
+const TypeDeclaration *get_ultimate_base_type(const TypeDeclaration *type)
+{
+ if(!type)
+ return 0;
+ while(const BasicTypeDeclaration *basic = dynamic_cast<const BasicTypeDeclaration *>(type))
+ {
+ if(!basic->base_type)
+ break;
+ type = basic->base_type;
+ }
+ return type;
+}
+
int get_layout_value(const Layout &layout, const string &name, int def_value)
{
auto i = find_member(layout.qualifiers, name, &Layout::Qualifier::name);