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