| ... | @@ -2572,11 +2572,10 @@ static AstNode *resolve_typdef_as_builtin(Context *c, const TypedefNameDecl *typ | ... | @@ -2572,11 +2572,10 @@ static AstNode *resolve_typdef_as_builtin(Context *c, const TypedefNameDecl *typ |
| 2572 | } | 2572 | } |
| 2573 | | 2573 | |
| 2574 | static AstNode *resolve_typedef_decl(Context *c, const TypedefNameDecl *typedef_decl) { | 2574 | static AstNode *resolve_typedef_decl(Context *c, const TypedefNameDecl *typedef_decl) { |
| 2575 | auto existing_entry = c->decl_table.maybe_get((void*)typedef_decl); | 2575 | auto existing_entry = c->decl_table.maybe_get((void*)typedef_decl->getCanonicalDecl()); |
| 2576 | if (existing_entry) { | 2576 | if (existing_entry) { |
| 2577 | return existing_entry->value; | 2577 | return existing_entry->value; |
| 2578 | } | 2578 | } |
| 2579 | | | |
| 2580 | QualType child_qt = typedef_decl->getUnderlyingType(); | 2579 | QualType child_qt = typedef_decl->getUnderlyingType(); |
| 2581 | Buf *type_name = buf_create_from_str(decl_name(typedef_decl)); | 2580 | Buf *type_name = buf_create_from_str(decl_name(typedef_decl)); |
| 2582 | | 2581 | |
| ... | @@ -2619,7 +2618,7 @@ static AstNode *resolve_typedef_decl(Context *c, const TypedefNameDecl *typedef_ | ... | @@ -2619,7 +2618,7 @@ static AstNode *resolve_typedef_decl(Context *c, const TypedefNameDecl *typedef_ |
| 2619 | add_global_var(c, type_name, type_node); | 2618 | add_global_var(c, type_name, type_node); |
| 2620 | | 2619 | |
| 2621 | AstNode *symbol_node = trans_create_node_symbol(c, type_name); | 2620 | AstNode *symbol_node = trans_create_node_symbol(c, type_name); |
| 2622 | c->decl_table.put(typedef_decl, symbol_node); | 2621 | c->decl_table.put(typedef_decl->getCanonicalDecl(), symbol_node); |
| 2623 | return symbol_node; | 2622 | return symbol_node; |
| 2624 | } | 2623 | } |
| 2625 | | 2624 | |
| ... | @@ -2745,6 +2744,7 @@ static AstNode *resolve_enum_decl(Context *c, const EnumDecl *enum_decl) { | ... | @@ -2745,6 +2744,7 @@ static AstNode *resolve_enum_decl(Context *c, const EnumDecl *enum_decl) { |
| 2745 | AstNode *symbol_node = trans_create_node_symbol(c, full_type_name); | 2744 | AstNode *symbol_node = trans_create_node_symbol(c, full_type_name); |
| 2746 | add_global_weak_alias(c, bare_name, full_type_name); | 2745 | add_global_weak_alias(c, bare_name, full_type_name); |
| 2747 | add_global_var(c, full_type_name, enum_node); | 2746 | add_global_var(c, full_type_name, enum_node); |
| | 2747 | c->decl_table.put(enum_decl->getCanonicalDecl(), symbol_node); |
| 2748 | return symbol_node; | 2748 | return symbol_node; |
| 2749 | } | 2749 | } |
| 2750 | } | 2750 | } |