[PATCH] D15881: [DWARF] Omitting the explicit import of an anonymous namespace is a debugger-tuning decision, not a target decision.

Paul Robinson via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 7 16:04:03 PST 2016


probinson added inline comments.

================
Comment at: lib/Frontend/CompilerInvocation.cpp:363-370
@@ -362,2 +362,10 @@
 
+// Convenience functions for debugger tuning.
+static bool tuneForGDB(CodeGenOptions &Opts) {
+  return Opts.getDebuggerTuning() == CodeGenOptions::DebuggerKindGDB;
+}
+static bool tuneForLLDB(CodeGenOptions &Opts) {
+  return Opts.getDebuggerTuning() == CodeGenOptions::DebuggerKindLLDB;
+}
+
 static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
----------------
echristo wrote:
> This seems like overkill for a single case.
I suppose... having the big hairy test inline isn't *that* unreadable.

================
Comment at: lib/Frontend/CompilerInvocation.cpp:446-448
@@ -445,3 +445,5 @@
   Opts.DebugTypeExtRefs = Args.hasArg(OPT_dwarf_ext_refs);
-  Opts.DebugExplicitImport = Triple.isPS4CPU(); 
+  Opts.DebugExplicitImport =
+      Opts.getDebuggerTuning() != CodeGenOptions::DebuggerKindGDB &&
+      Opts.getDebuggerTuning() != CodeGenOptions::DebuggerKindLLDB;
 
----------------
echristo wrote:
> Why not just a positive for debugger tuning SCE?
Because the default (i.e., no tuning specified) behavior should be to conform to the DWARF spec, which basically says you need the explicit import.  There's a new extra RUN line in the test, with no tuning specified, to verify this.
GDB and LLDB are the oddballs here, they implement a special case for namespaces whose name meets certain criteria, and do something beyond what DWARF says to do.  So, the condition is written to express that.



http://reviews.llvm.org/D15881





More information about the cfe-commits mailing list