probinson added inline comments. ================ 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; ---------------- probinson wrote: > echristo wrote: > > probinson wrote: > > > 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. > > > > > I don't necessarily agree with that interpretation on the explicit import - > > I did skim the thread, perhaps you could highlight what makes you think > > this? > Basically, a namespace is a "context" for declarations, and the DWARF > mechanism for making declarations from one context available in another > context is with DW_TAG_imported_declaration and DW_TAG_imported_module. > The C++ spec describes the behavior "as if" there was an explicit using > directive, and DW_TAG_imported_module is the DWARF mechanism for describing a > using directive. > > The meaning of DWARF is determined by the DWARF spec, not the C++ spec, and > the DWARF spec does not say there's anything special about a namespace that > has no name. There is a perfectly reasonable DWARF mechanism for getting the > desired effect, so there's no reason for DWARF to make a special rule for an > unnamed namespace. Therefore, an anonymous namespace should be explicitly > imported into the containing namespace. The explicit import would be marked > artificial of course. > Ping. Have I missed something in the DWARF spec that makes you think my interpretation is incorrect? Wouldn't be the first time...
http://reviews.llvm.org/D15881 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits