<div dir="ltr">Looks like this broke some things:<br><br><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__llvm.org_bugs_show-5Fbug.cgi-3Fid-3D24008&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=RCrTBZMiPYMqkhrLihOzpJwKWlTqsC4jN3AgLhvkuSQ&e=" target="_blank">https://llvm.org/bugs/show_bug.cgi?id=24008</a> (hopefully Nico can provide a reproduction shortly)<br><br>I've reverted this (and the LLVM patch) for now. Let me know if there's anything I can do to help debug the issue.<br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 1, 2015 at 5:34 AM, Michael Kuperstein <span dir="ltr"><<a href="mailto:michael.m.kuperstein@intel.com" target="_blank">michael.m.kuperstein@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: mkuper<br>
Date: Wed Jul  1 07:34:39 2015<br>
New Revision: 241154<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D241154-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=gGG217SqoaFgK57Omj666qAOsHePwZW2veewlflPVBc&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=241154&view=rev</a><br>
Log:<br>
[DebugInfo] Fix debug info generation for function static variables, typedefs, and records<br>
<br>
Function static variables, typedefs and records (class, struct or union) declared inside<br>
a lexical scope were associated with the function as their parent scope, rather than the<br>
lexical scope they are defined or declared in.<br>
<br>
This fixes PR19238<br>
<br>
Patch by: <a href="mailto:amjad.aboud@intel.com">amjad.aboud@intel.com</a><br>
Differential Revision: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D9760&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=2qxz8E0SxlJsQoQgtxG2obfdbsPinU017w3AtO-MAhE&e=" rel="noreferrer" target="_blank">http://reviews.llvm.org/D9760</a><br>
<br>
Added:<br>
    cfe/trunk/test/CodeGenCXX/debug-info-lb-class.cpp   (with props)<br>
    cfe/trunk/test/CodeGenCXX/debug-info-lb-static.cpp   (with props)<br>
    cfe/trunk/test/CodeGenCXX/debug-info-lb-static2.cpp   (with props)<br>
    cfe/trunk/test/CodeGenCXX/debug-info-lb-typedef.cpp   (with props)<br>
Modified:<br>
    cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br>
    cfe/trunk/lib/CodeGen/CGDebugInfo.h<br>
    cfe/trunk/lib/CodeGen/CGDecl.cpp<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_CodeGen_CGDebugInfo.cpp-3Frev-3D241154-26r1-3D241153-26r2-3D241154-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=ez6wSkmf_iYdYrRUKgLc-29hTC07XWvgKfrtKHCekWg&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=241154&r1=241153&r2=241154&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Wed Jul  1 07:34:39 2015<br>
@@ -786,15 +786,18 @@ llvm::DIType *CGDebugInfo::CreateType(co<br>
<br>
 llvm::DIType *CGDebugInfo::CreateType(const TypedefType *Ty,<br>
                                       llvm::DIFile *Unit) {<br>
+  TypedefNameDecl *TD = Ty->getDecl();<br>
   // We don't set size information, but do specify where the typedef was<br>
   // declared.<br>
-  SourceLocation Loc = Ty->getDecl()->getLocation();<br>
+  SourceLocation Loc = TD->getLocation();<br>
+<br>
+  llvm::DIScope *TDContext = getDeclarationLexicalScope(*TD, QualType(Ty, 0));<br>
<br>
   // Typedefs are derived from some other type.<br>
   return DBuilder.createTypedef(<br>
       getOrCreateType(Ty->getDecl()->getUnderlyingType(), Unit),<br>
       Ty->getDecl()->getName(), getOrCreateFile(Loc), getLineNumber(Loc),<br>
-      getContextDescriptor(cast<Decl>(Ty->getDecl()->getDeclContext())));<br>
+      TDContext);<br>
 }<br>
<br>
 llvm::DIType *CGDebugInfo::CreateType(const FunctionType *Ty,<br>
@@ -1442,6 +1445,23 @@ llvm::DIType *CGDebugInfo::getOrCreateIn<br>
   return T;<br>
 }<br>
<br>
+void CGDebugInfo::recordDeclarationLexicalScope(const Decl &D) {<br>
+  assert(LexicalBlockMap.find(&D) == LexicalBlockMap.end() &&<br>
+         "D is already mapped to lexical block scope");<br>
+  if (!LexicalBlockStack.empty())<br>
+    LexicalBlockMap[&D] = LexicalBlockStack.back();<br>
+}<br>
+<br>
+llvm::DIScope *CGDebugInfo::getDeclarationLexicalScope(const Decl &D,<br>
+                                                       QualType Ty) {<br>
+  auto I = LexicalBlockMap.find(&D);<br>
+  if (I != LexicalBlockMap.end()) {<br>
+    RetainedTypes.push_back(Ty.getAsOpaquePtr());<br>
+    return I->second;<br>
+  } else<br>
+    return getContextDescriptor(cast<Decl>(D.getDeclContext()));<br>
+}<br>
+<br>
 void CGDebugInfo::completeType(const EnumDecl *ED) {<br>
   if (DebugKind <= CodeGenOptions::DebugLineTablesOnly)<br>
     return;<br>
@@ -2269,8 +2289,7 @@ llvm::DICompositeType *CGDebugInfo::Crea<br>
   unsigned Line = getLineNumber(RD->getLocation());<br>
   StringRef RDName = getClassName(RD);<br>
<br>
-  llvm::DIScope *RDContext =<br>
-      getContextDescriptor(cast<Decl>(RD->getDeclContext()));<br>
+  llvm::DIScope *RDContext = getDeclarationLexicalScope(*RD, QualType(Ty, 0));<br>
<br>
   // If we ended up creating the type during the context chain construction,<br>
   // just return that.<br>
@@ -2416,7 +2435,14 @@ void CGDebugInfo::collectVarDeclProps(co<br>
   // outside the class by putting it in the global scope.<br>
   if (DC->isRecord())<br>
     DC = CGM.getContext().getTranslationUnitDecl();<br>
-  VDContext = getContextDescriptor(dyn_cast<Decl>(DC));<br>
+<br>
+  if (VD->isStaticLocal()) {<br>
+    // Get context for static locals (that are technically globals) the same way<br>
+    // we do for "local" locals -- by using current lexical block.<br>
+    assert(!LexicalBlockStack.empty() && "Region stack mismatch, stack empty!");<br>
+    VDContext = LexicalBlockStack.back();<br>
+  } else<br>
+    VDContext = getContextDescriptor(dyn_cast<Decl>(DC));<br>
 }<br>
<br>
 llvm::DISubprogram *<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_CodeGen_CGDebugInfo.h-3Frev-3D241154-26r1-3D241153-26r2-3D241154-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=bAXe-6mERv_8VtU7oYcmvmE0SeBKV9zAqQSECTcX3yU&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=241154&r1=241153&r2=241154&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original)<br>
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Wed Jul  1 07:34:39 2015<br>
@@ -100,6 +100,11 @@ class CGDebugInfo {<br>
<br>
   // LexicalBlockStack - Keep track of our current nested lexical block.<br>
   std::vector<llvm::TypedTrackingMDRef<llvm::DIScope>> LexicalBlockStack;<br>
+<br>
+  /// \brief Map of AST declaration to its lexical block scope.<br>
+  llvm::DenseMap<const Decl *, llvm::TypedTrackingMDRef<llvm::DIScope>><br>
+      LexicalBlockMap;<br>
+<br>
   llvm::DenseMap<const Decl *, llvm::TrackingMDRef> RegionMap;<br>
   // FnBeginRegionCount - Keep track of LexicalBlockStack counter at the<br>
   // beginning of a function. This is used to pop unbalanced regions at<br>
@@ -305,6 +310,12 @@ public:<br>
   /// debug info.<br>
   llvm::DIType *getOrCreateInterfaceType(QualType Ty, SourceLocation Loc);<br>
<br>
+  /// \brief Map AST declaration to its lexical block scope if available.<br>
+  void recordDeclarationLexicalScope(const Decl &D);<br>
+<br>
+  /// \brief Get lexical scope of AST declaration.<br>
+  llvm::DIScope *getDeclarationLexicalScope(const Decl &D, QualType Ty);<br>
+<br>
   void completeType(const EnumDecl *ED);<br>
   void completeType(const RecordDecl *RD);<br>
   void completeRequiredType(const RecordDecl *RD);<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGDecl.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_CodeGen_CGDecl.cpp-3Frev-3D241154-26r1-3D241153-26r2-3D241154-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=eoUfQSmCbG5Im5pvgGsAaH0rgnu8Y5Qddey9Rlgr0J0&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDecl.cpp?rev=241154&r1=241153&r2=241154&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGDecl.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CGDecl.cpp Wed Jul  1 07:34:39 2015<br>
@@ -81,10 +81,8 @@ void CodeGenFunction::EmitDecl(const Dec<br>
   case Decl::UsingShadow:<br>
     llvm_unreachable("Declaration should not be in declstmts!");<br>
   case Decl::Function:  // void X();<br>
-  case Decl::Record:    // struct/union/class X;<br>
   case Decl::Enum:      // enum X;<br>
   case Decl::EnumConstant: // enum ? { X = ? }<br>
-  case Decl::CXXRecord: // struct/union/class X; [C++]<br>
   case Decl::StaticAssert: // static_assert(X, ""); [C++0x]<br>
   case Decl::Label:        // __label__ x;<br>
   case Decl::Import:<br>
@@ -93,6 +91,12 @@ void CodeGenFunction::EmitDecl(const Dec<br>
     // None of these decls require codegen support.<br>
     return;<br>
<br>
+  case Decl::CXXRecord: // struct/union/class X; [C++]<br>
+  case Decl::Record:    // struct/union/class X;<br>
+    if (CGDebugInfo *DI = getDebugInfo())<br>
+      DI->recordDeclarationLexicalScope(D);<br>
+    return;<br>
+<br>
   case Decl::NamespaceAlias:<br>
     if (CGDebugInfo *DI = getDebugInfo())<br>
         DI->EmitNamespaceAlias(cast<NamespaceAliasDecl>(D));<br>
@@ -117,6 +121,9 @@ void CodeGenFunction::EmitDecl(const Dec<br>
     const TypedefNameDecl &TD = cast<TypedefNameDecl>(D);<br>
     QualType Ty = TD.getUnderlyingType();<br>
<br>
+    if (CGDebugInfo *DI = getDebugInfo())<br>
+      DI->recordDeclarationLexicalScope(D);<br>
+<br>
     if (Ty->isVariablyModifiedType())<br>
       EmitVariablyModifiedType(Ty);<br>
   }<br>
<br>
Added: cfe/trunk/test/CodeGenCXX/debug-info-lb-class.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_CodeGenCXX_debug-2Dinfo-2Dlb-2Dclass.cpp-3Frev-3D241154-26view-3Dauto&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=l3cYOi6GTuKQwljhwYvjN14JDqBasbcBJnOzSVl0Ob8&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-lb-class.cpp?rev=241154&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-lb-class.cpp (added)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-lb-class.cpp Wed Jul  1 07:34:39 2015<br>
@@ -0,0 +1,21 @@<br>
+// RUN: %clang_cc1 -triple x86_64-none-linux-gnu -emit-llvm -g %s -o - | FileCheck %s<br>
+<br>
+int foo(int x) {<br>
+  if(x)<br>
+  {<br>
+    class X {<br>
+    public:<br>
+      char z;<br>
+      X(int y) : z(y) {}<br>
+    };<br>
+    {<br>
+      X a(x);<br>
+      return a.z;<br>
+    }<br>
+  }<br>
+  return 0;<br>
+}<br>
+<br>
+// CHECK: !{{[0-9]+}} = !DICompositeType(tag: DW_TAG_class_type, name: "X", scope: [[LBScope:![0-9]+]],<br>
+// CHECK: [[LBScope]] = distinct !DILexicalBlock(scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: 5)<br>
+<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-class.cpp<br>
------------------------------------------------------------------------------<br>
    svn:eol-style = native<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-class.cpp<br>
------------------------------------------------------------------------------<br>
    svn:keywords = Author Date Id Rev URL<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-class.cpp<br>
------------------------------------------------------------------------------<br>
    svn:mime-type = text/plain<br>
<br>
Added: cfe/trunk/test/CodeGenCXX/debug-info-lb-static.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_CodeGenCXX_debug-2Dinfo-2Dlb-2Dstatic.cpp-3Frev-3D241154-26view-3Dauto&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=oWbuOmlkLyi1qTeZVmgiLaPW8UpEKJbji4VoTQjHmdE&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-lb-static.cpp?rev=241154&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-lb-static.cpp (added)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-lb-static.cpp Wed Jul  1 07:34:39 2015<br>
@@ -0,0 +1,17 @@<br>
+// RUN: %clang_cc1 -triple x86_64-none-linux-gnu -emit-llvm -g %s -o - | FileCheck %s<br>
+<br>
+int foo(int x) {<br>
+  if(x)<br>
+  {<br>
+    static int bar = 0;<br>
+    {<br>
+      int a = bar++;<br>
+      return a;<br>
+    }<br>
+  }<br>
+  return 0;<br>
+}<br>
+<br>
+// CHECK: !{{[0-9]+}} = !DIGlobalVariable(name: "bar", scope: [[LBScope:![0-9]+]],<br>
+// CHECK: [[LBScope]] = distinct !DILexicalBlock(scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: 5)<br>
+<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-static.cpp<br>
------------------------------------------------------------------------------<br>
    svn:eol-style = native<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-static.cpp<br>
------------------------------------------------------------------------------<br>
    svn:keywords = Author Date Id Rev URL<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-static.cpp<br>
------------------------------------------------------------------------------<br>
    svn:mime-type = text/plain<br>
<br>
Added: cfe/trunk/test/CodeGenCXX/debug-info-lb-static2.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_CodeGenCXX_debug-2Dinfo-2Dlb-2Dstatic2.cpp-3Frev-3D241154-26view-3Dauto&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=L8jydQGvDaU-lpY8xbjakSrJpu23w-bMTqGk0YD8SdI&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-lb-static2.cpp?rev=241154&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-lb-static2.cpp (added)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-lb-static2.cpp Wed Jul  1 07:34:39 2015<br>
@@ -0,0 +1,16 @@<br>
+// RUN: %clang_cc1 -triple x86_64-none-linux-gnu -emit-llvm -g %s -o - | FileCheck %s<br>
+<br>
+int main() {<br>
+  static int X = 10;<br>
+  {<br>
+    static bool X = false;<br>
+    return (int) X;<br>
+  }<br>
+  return X;<br>
+}<br>
+<br>
+// CHECK: [[FuncScope:![0-9]+]] = !DISubprogram(name: "main",<br>
+// CHECK: !{{[0-9]+}} = !DIGlobalVariable(name: "X", scope: [[FuncScope:![0-9]+]],<br>
+// CHECK: !{{[0-9]+}} = !DIGlobalVariable(name: "X", scope: [[LBScope:![0-9]+]],<br>
+// CHECK: [[LBScope]] = distinct !DILexicalBlock(scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: 5)<br>
+<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-static2.cpp<br>
------------------------------------------------------------------------------<br>
    svn:eol-style = native<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-static2.cpp<br>
------------------------------------------------------------------------------<br>
    svn:keywords = Author Date Id Rev URL<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-static2.cpp<br>
------------------------------------------------------------------------------<br>
    svn:mime-type = text/plain<br>
<br>
Added: cfe/trunk/test/CodeGenCXX/debug-info-lb-typedef.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_CodeGenCXX_debug-2Dinfo-2Dlb-2Dtypedef.cpp-3Frev-3D241154-26view-3Dauto&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=-JGdYx_Hr2t0umbnOCAPmynkbVesqqDw1jJ8B1hbF-o&s=t977NrwupRRlYzLaVB0jZftIRxOV890p0SpaeVyLBbc&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-lb-typedef.cpp?rev=241154&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-lb-typedef.cpp (added)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-lb-typedef.cpp Wed Jul  1 07:34:39 2015<br>
@@ -0,0 +1,17 @@<br>
+// RUN: %clang_cc1 -triple x86_64-none-linux-gnu -emit-llvm -g %s -o - | FileCheck %s<br>
+<br>
+int foo(int x) {<br>
+  if(x)<br>
+  {<br>
+    typedef char X;<br>
+    {<br>
+      X a = x;<br>
+      return a;<br>
+    }<br>
+  }<br>
+  return 0;<br>
+}<br>
+<br>
+// CHECK: !{{[0-9]+}} = !DIDerivedType(tag: DW_TAG_typedef, name: "X", scope: [[LBScope:![0-9]+]],<br>
+// CHECK: [[LBScope]] = distinct !DILexicalBlock(scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: 5)<br>
+<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-typedef.cpp<br>
------------------------------------------------------------------------------<br>
    svn:eol-style = native<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-typedef.cpp<br>
------------------------------------------------------------------------------<br>
    svn:keywords = Author Date Id Rev URL<br>
<br>
Propchange: cfe/trunk/test/CodeGenCXX/debug-info-lb-typedef.cpp<br>
------------------------------------------------------------------------------<br>
    svn:mime-type = text/plain<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>