| ... | @@ -2577,11 +2577,10 @@ static AstNode *resolve_typdef_as_builtin(Context *c, const TypedefNameDecl *typ | ... | @@ -2577,11 +2577,10 @@ static AstNode *resolve_typdef_as_builtin(Context *c, const TypedefNameDecl *typ |
| 2577 | } | 2577 | } |
| 2578 | | 2578 | |
| 2579 | static AstNode *resolve_typedef_decl(Context *c, const TypedefNameDecl *typedef_decl) { | 2579 | static AstNode *resolve_typedef_decl(Context *c, const TypedefNameDecl *typedef_decl) { |
| 2580 | auto existing_entry = c->decl_table.maybe_get((void*)typedef_decl); | 2580 | auto existing_entry = c->decl_table.maybe_get((void*)typedef_decl->getCanonicalDecl()); |
| 2581 | if (existing_entry) { | 2581 | if (existing_entry) { |
| 2582 | return existing_entry->value; | 2582 | return existing_entry->value; |
| 2583 | } | 2583 | } |
| 2584 | | | |
| 2585 | QualType child_qt = typedef_decl->getUnderlyingType(); | 2584 | QualType child_qt = typedef_decl->getUnderlyingType(); |
| 2586 | Buf *type_name = buf_create_from_str(decl_name(typedef_decl)); | 2585 | Buf *type_name = buf_create_from_str(decl_name(typedef_decl)); |
| 2587 | | 2586 | |
| ... | @@ -2624,7 +2623,7 @@ static AstNode *resolve_typedef_decl(Context *c, const TypedefNameDecl *typedef_ | ... | @@ -2624,7 +2623,7 @@ static AstNode *resolve_typedef_decl(Context *c, const TypedefNameDecl *typedef_ |
| 2624 | add_global_var(c, type_name, type_node); | 2623 | add_global_var(c, type_name, type_node); |
| 2625 | | 2624 | |
| 2626 | AstNode *symbol_node = trans_create_node_symbol(c, type_name); | 2625 | AstNode *symbol_node = trans_create_node_symbol(c, type_name); |
| 2627 | c->decl_table.put(typedef_decl, symbol_node); | 2626 | c->decl_table.put(typedef_decl->getCanonicalDecl(), symbol_node); |
| 2628 | return symbol_node; | 2627 | return symbol_node; |
| 2629 | } | 2628 | } |
| 2630 | | 2629 | |
| ... | @@ -2750,6 +2749,7 @@ static AstNode *resolve_enum_decl(Context *c, const EnumDecl *enum_decl) { | ... | @@ -2750,6 +2749,7 @@ static AstNode *resolve_enum_decl(Context *c, const EnumDecl *enum_decl) { |
| 2750 | AstNode *symbol_node = trans_create_node_symbol(c, full_type_name); | 2749 | AstNode *symbol_node = trans_create_node_symbol(c, full_type_name); |
| 2751 | add_global_weak_alias(c, bare_name, full_type_name); | 2750 | add_global_weak_alias(c, bare_name, full_type_name); |
| 2752 | add_global_var(c, full_type_name, enum_node); | 2751 | add_global_var(c, full_type_name, enum_node); |
| | 2752 | c->decl_table.put(enum_decl->getCanonicalDecl(), symbol_node); |
| 2753 | return symbol_node; | 2753 | return symbol_node; |
| 2754 | } | 2754 | } |
| 2755 | } | 2755 | } |