diff options
author | Eric Christopher <echristo@gmail.com> | 2017-03-29 23:34:27 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2017-03-29 23:34:27 +0000 |
commit | 9ea300f08ddb63bd7c11d36c42db15d41bbc1666 (patch) | |
tree | ac5e57761539a503a7e67bc6b3e9357a808a47c4 /llvm/lib | |
parent | ca32517c3a66dde5b89b85a9cc02eb0fab90778a (diff) | |
download | bcm5719-llvm-9ea300f08ddb63bd7c11d36c42db15d41bbc1666.tar.gz bcm5719-llvm-9ea300f08ddb63bd7c11d36c42db15d41bbc1666.zip |
If the DIUnit has flags passed on it then have DW_AT_producer be a combination of DICompileUnit::Producer and Flags.
The darwin behavior is unchanged and will continue to use DW_AT_APPLE_flags.
Patch by Zhizhou Yang
llvm-svn: 299038
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 344528d5cfb..5ce11130920 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -423,7 +423,14 @@ DwarfDebug::constructDwarfCompileUnit(const DICompileUnit *DIUnit) { Asm->OutStreamer->getContext().setMCLineTableCompilationDir( NewCU.getUniqueID(), CompilationDir); - NewCU.addString(Die, dwarf::DW_AT_producer, DIUnit->getProducer()); + StringRef Producer = DIUnit->getProducer(); + StringRef Flags = DIUnit->getFlags(); + if (!Flags.empty()) { + std::string ProducerWithFlags = Producer.str() + " " + Flags.str(); + NewCU.addString(Die, dwarf::DW_AT_producer, ProducerWithFlags); + } else + NewCU.addString(Die, dwarf::DW_AT_producer, Producer); + NewCU.addUInt(Die, dwarf::DW_AT_language, dwarf::DW_FORM_data2, DIUnit->getSourceLanguage()); NewCU.addString(Die, dwarf::DW_AT_name, FN); |