diff options
| author | Eric Christopher <echristo@apple.com> | 2012-06-01 00:22:32 +0000 |
|---|---|---|
| committer | Eric Christopher <echristo@apple.com> | 2012-06-01 00:22:32 +0000 |
| commit | 1cf3338bb4c0f35f6031b7e910867014f26957f3 (patch) | |
| tree | 616786cddeaf5419de02a680acc3270ad0e506d4 /llvm/lib/CodeGen/AsmPrinter | |
| parent | 273c7c40b2d9504cd1f282ae2176592f0510eca7 (diff) | |
| download | bcm5719-llvm-1cf3338bb4c0f35f6031b7e910867014f26957f3.tar.gz bcm5719-llvm-1cf3338bb4c0f35f6031b7e910867014f26957f3.zip | |
Add support for enum forward declarations.
Part of rdar://11570854
llvm-svn: 157786
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index 9ef1c36bc0d..bc1268c19e6 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -935,15 +935,16 @@ void CompileUnit::constructTypeDIE(DIE &Buffer, DICompositeType CTy) { Tag == dwarf::DW_TAG_structure_type || Tag == dwarf::DW_TAG_union_type) { // Add size if non-zero (derived types might be zero-sized.) + // TODO: Do we care about size for enum forward declarations? if (Size) addUInt(&Buffer, dwarf::DW_AT_byte_size, 0, Size); - else { + else if (!CTy.isForwardDecl()) // Add zero size if it is not a forward declaration. - if (CTy.isForwardDecl()) - addUInt(&Buffer, dwarf::DW_AT_declaration, dwarf::DW_FORM_flag, 1); - else - addUInt(&Buffer, dwarf::DW_AT_byte_size, 0, 0); - } + addUInt(&Buffer, dwarf::DW_AT_byte_size, 0, 0); + + // If we're a forward decl, say so. + if (CTy.isForwardDecl()) + addUInt(&Buffer, dwarf::DW_AT_declaration, dwarf::DW_FORM_flag, 1); // Add source line info if available. if (!CTy.isForwardDecl()) |

