From: David Blaikie Date: Sat, 5 Apr 2014 03:39:29 +0000 (+0000) Subject: Revert "DebugInfo: Place global constants in their appropriate context." X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8458c2cf4cc4674fb374fd764783d8892c095f35;p=clang Revert "DebugInfo: Place global constants in their appropriate context." This reverts commit r205655. Breaks the compiler-rt build with an assertion failure in LLVM... reverting while I investigate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205664 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index eed2f3c615..41f1ddb697 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -3230,11 +3230,8 @@ void CGDebugInfo::EmitGlobalVariable(const ValueDecl *VD, // Do not emit separate definitions for function local const/statics. if (isa(VD->getDeclContext())) return; - llvm::DIDescriptor DContext = - getContextDescriptor(dyn_cast(VD->getDeclContext())); llvm::DIGlobalVariable GV = DBuilder.createStaticVariable( - DContext, Name, StringRef(), Unit, getLineNumber(VD->getLocation()), Ty, - true, Init, + Unit, Name, Name, Unit, getLineNumber(VD->getLocation()), Ty, true, Init, getOrCreateStaticDataMemberDeclarationOrNull(cast(VD))); DeclCache.insert(std::make_pair(VD->getCanonicalDecl(), llvm::WeakVH(GV))); } diff --git a/test/CodeGenCXX/debug-info.cpp b/test/CodeGenCXX/debug-info.cpp index 26d647aa35..7c89dfc04c 100644 --- a/test/CodeGenCXX/debug-info.cpp +++ b/test/CodeGenCXX/debug-info.cpp @@ -83,16 +83,9 @@ foo func(foo f) { // CHECK: [[FUNC:![0-9]*]] = {{.*}} metadata !"_ZN7pr147634funcENS_3fooE", i32 {{[0-9]*}}, metadata [[FUNC_TYPE:![0-9]*]], {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [def] [func] } -namespace local_const { -const wchar_t lc_c = L'x'; -} - -// CHECK: metadata [[LOCAL_CONST:![0-9]*]], metadata !"lc_c", {{.*}}; [ DW_TAG_variable ] [lc_c] -// CHECK: [[LOCAL_CONST]] = {{.*}}; [ DW_TAG_namespace ] [local_const] - void foo() { const wchar_t c = L'x'; - wchar_t d = c + local_const::lc_c; + wchar_t d = c; } // CHECK-NOT: ; [ DW_TAG_variable ] [c]