llvm-project
965146d4 - [dsymutil] Fix ODR type uniquing for -gsimple-template-names (#194501)

Commit
8 days ago
[dsymutil] Fix ODR type uniquing for -gsimple-template-names (#194501) With -gsimple-template-names (now the default on macOS with deployment target >= 26), template types like vector<int> and vector<float> both get DW_AT_name("vector") in DWARF, with template parameters encoded only as DW_TAG_template_type_parameter children. Previously, dsymutil used only DW_AT_name for ODR type uniquing, causing different template specializations to collide. This PR fixes that by reconstructing template parameter information from child DIEs when the type name does not already contain template parameters. The reconstructed name is used only for uniquing and not emitted into the output DWARF. The parallel DWARF linker already handled this correctly via SyntheticTypeNameBuilder. rdar://175115639
Author
Parents
Loading