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