[PATCH] D50453: [DebugInfo] Fine tune emittign flags as part of the producer

Jonas Devlieghere via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 8 08:22:39 PDT 2018


JDevlieghere created this revision.
JDevlieghere added reviewers: aprantl, davide, echristo.
Herald added a subscriber: hiraditya.

When using APPLE extensions, don't duplicate the compiler invocation's
flags both in AT_producer and AT_APPLE_flags.


Repository:
  rL LLVM

https://reviews.llvm.org/D50453

Files:
  llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  llvm/test/DebugInfo/X86/debug-info-producer-with-flags.ll


Index: llvm/test/DebugInfo/X86/debug-info-producer-with-flags.ll
===================================================================
--- llvm/test/DebugInfo/X86/debug-info-producer-with-flags.ll
+++ llvm/test/DebugInfo/X86/debug-info-producer-with-flags.ll
@@ -1,5 +1,7 @@
 ; RUN: llc -mtriple=x86_64-unknown-linux-gnu %s -o %t -filetype=obj
-; RUN: llvm-dwarfdump -debug-info %t | FileCheck %s
+; RUN: llvm-dwarfdump -debug-info %t | FileCheck %s --check-prefix LINUX
+; RUN: llc -mtriple=x86_64-apple-macosx %s -o %t -filetype=obj
+; RUN: llvm-dwarfdump -debug-info %t | FileCheck %s --check-prefix DARWIN
 ;
 ; Test the DW_AT_producer DWARF attribute.
 ; When producer and flags are both given in DIComileUnit, set DW_AT_producer
@@ -16,8 +18,10 @@
 ;     return 0;
 ;   }
 
-; CHECK: DW_AT_producer
-; CHECK-SAME: "clang++ -g -grecord-gcc-switches test.cc -S -emit-llvm -o -"
+; LINUX: DW_AT_producer{{.*}}("clang++ -g -grecord-gcc-switches test.cc -S -emit-llvm -o -")
+; DARWIN: DW_AT_producer{{.*}}("clang++")
+; DARWIN: DW_AT_APPLE_flags{{.*}}("-g -grecord-gcc-switches test.cc -S -emit-llvm -o -")
+
 target triple = "x86_64-unknown-linux-gnu"
 
 define i32 @main() !dbg !6 {
Index: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
===================================================================
--- llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -544,7 +544,7 @@
 
   StringRef Producer = DIUnit->getProducer();
   StringRef Flags = DIUnit->getFlags();
-  if (!Flags.empty()) {
+  if (!Flags.empty() && !useAppleExtensionAttributes()) {
     std::string ProducerWithFlags = Producer.str() + " " + Flags.str();
     NewCU.addString(Die, dwarf::DW_AT_producer, ProducerWithFlags);
   } else


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50453.159730.patch
Type: text/x-patch
Size: 1743 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180808/93c8137d/attachment.bin>


More information about the llvm-commits mailing list