<div dir="ltr"><div>This is a great readability improvement!<br><br></div>-- Sean Silva<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 3, 2015 at 9:25 AM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: dexonsmith<br>
Date: Tue Mar  3 11:25:55 2015<br>
New Revision: 231083<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=231083&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=231083&view=rev</a><br>
Log:<br>
DebugInfo: Move new hierarchy into place (clang)<br>
<br>
Update testcases for LLVM change in r231082 to use the new debug info<br>
hierarchy.<br>
<br>
Modified:<br>
    cfe/trunk/test/CodeGen/2005-12-04-DeclarationLineNumbers.c<br>
    cfe/trunk/test/CodeGen/2009-10-20-GlobalDebug.c<br>
    cfe/trunk/test/CodeGen/2010-02-15-DbgStaticVar.c<br>
    cfe/trunk/test/CodeGen/2010-02-16-DbgScopes.c<br>
    cfe/trunk/test/CodeGen/2010-03-09-DbgInfo.c<br>
    cfe/trunk/test/CodeGen/2010-03-5-LexicalScope.c<br>
    cfe/trunk/test/CodeGen/2010-08-10-DbgConstant.c<br>
    cfe/trunk/test/CodeGen/debug-info-args.c<br>
    cfe/trunk/test/CodeGen/debug-info-block-out-return.c<br>
    cfe/trunk/test/CodeGen/debug-info-block.c<br>
    cfe/trunk/test/CodeGen/debug-info-enum.c<br>
    cfe/trunk/test/CodeGen/debug-info-file-change.c<br>
    cfe/trunk/test/CodeGen/debug-info-gline-tables-only2.c<br>
    cfe/trunk/test/CodeGen/debug-info-limited.c<br>
    cfe/trunk/test/CodeGen/debug-info-same-line.c<br>
    cfe/trunk/test/CodeGen/debug-info-scope-file.c<br>
    cfe/trunk/test/CodeGen/debug-info-scope.c<br>
    cfe/trunk/test/CodeGen/debug-info-static.c<br>
    cfe/trunk/test/CodeGen/debug-info-typedef.c<br>
    cfe/trunk/test/CodeGen/debug-info-vector.c<br>
    cfe/trunk/test/CodeGen/debug-info-version.c<br>
    cfe/trunk/test/CodeGen/debug-info-vla.c<br>
    cfe/trunk/test/CodeGen/debug-info.c<br>
    cfe/trunk/test/CodeGen/lineno-dbginfo.c<br>
    cfe/trunk/test/CodeGenCXX/2010-07-23-DeclLoc.cpp<br>
    cfe/trunk/test/CodeGenCXX/Inputs/debug-info-class-limited.cpp<br>
    cfe/trunk/test/CodeGenCXX/PR20038.cpp<br>
    cfe/trunk/test/CodeGenCXX/coverage.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-access.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-alias.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-anon-union-vars.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-blocks.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-char16.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-class-nolimit.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-class.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-cxx1y.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-decl-nested.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-dup-fwd-decl.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-flex-member.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-fn-template.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-function-context.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-global.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-indirect-field-decl.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-limited.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-method.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-nullptr.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-ptr-to-member-function.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-qualifiers.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-rvalue-ref.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-scope.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-static-fns.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-template-fwd.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-template-limit.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-template-partial-specialization.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-template.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-thunk.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-union.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-uuid.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-varargs.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-vtable-optzn.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-wchar.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-info.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp<br>
    cfe/trunk/test/CodeGenCXX/debug-lambda-this.cpp<br>
    cfe/trunk/test/CodeGenCXX/field-access-debug-info.cpp<br>
    cfe/trunk/test/CodeGenCXX/globalinit-loc.cpp<br>
    cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp<br>
    cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp<br>
    cfe/trunk/test/CodeGenCXX/linetable-eh.cpp<br>
    cfe/trunk/test/CodeGenCXX/linetable-fnbegin.cpp<br>
    cfe/trunk/test/CodeGenCXX/scoped-enums-debug-info.cpp<br>
    cfe/trunk/test/CodeGenCXX/vtable-holder-self-reference.cpp<br>
    cfe/trunk/test/CodeGenObjC/2010-02-09-DbgSelf.m<br>
    cfe/trunk/test/CodeGenObjC/2010-02-15-Dbg-MethodStart.m<br>
    cfe/trunk/test/CodeGenObjC/arc-linetable.m<br>
    cfe/trunk/test/CodeGenObjC/block-byref-debuginfo.m<br>
    cfe/trunk/test/CodeGenObjC/catch-lexical-block.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-block-captured-self.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-block-helper.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-block-type.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-blocks.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-fwddecl.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-getter-name.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-id-with-protocol.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-impl.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-ivars-extension.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-ivars-indirect.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-ivars-private.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-ivars.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-lifetime-crash.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-property-accessors.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-property3.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-pubtypes.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-self.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-static-var.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-synthesis.m<br>
    cfe/trunk/test/CodeGenObjC/debug-info-variadic-method.m<br>
    cfe/trunk/test/CodeGenObjC/debug-property-synth.m<br>
    cfe/trunk/test/CodeGenObjC/debuginfo-properties.m<br>
    cfe/trunk/test/CodeGenObjC/objc-fixed-enum.m<br>
    cfe/trunk/test/CodeGenObjCXX/<a href="http://debug-info-cyclic.mm" target="_blank">debug-info-cyclic.mm</a><br>
    cfe/trunk/test/Driver/darwin-debug-flags.c<br>
    cfe/trunk/test/PCH/debug-info-limited-struct.c<br>
    cfe/trunk/test/VFS/external-names.c<br>
<br>
Modified: cfe/trunk/test/CodeGen/2005-12-04-DeclarationLineNumbers.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2005-12-04-DeclarationLineNumbers.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2005-12-04-DeclarationLineNumbers.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/2005-12-04-DeclarationLineNumbers.c (original)<br>
+++ cfe/trunk/test/CodeGen/2005-12-04-DeclarationLineNumbers.c Tue Mar  3 11:25:55 2015<br>
@@ -1,7 +1,8 @@<br>
-// RUN: %clang_cc1 %s -emit-llvm -g -o - | grep DW_TAG_compile_unit | count 1<br>
+// RUN: %clang_cc1 %s -emit-llvm -g -o - | FileCheck %s<br>
+// CHECK: !MDCompileUnit(<br>
+// CHECK-NOT: !MDCompileUnit(<br>
 // PR664: ensure that line #'s are emitted for declarations<br>
<br>
-<br>
 short test(short br_data_0,<br>
 short br_data_1,<br>
 short br_data_2,<br>
<br>
Modified: cfe/trunk/test/CodeGen/2009-10-20-GlobalDebug.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2009-10-20-GlobalDebug.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2009-10-20-GlobalDebug.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/2009-10-20-GlobalDebug.c (original)<br>
+++ cfe/trunk/test/CodeGen/2009-10-20-GlobalDebug.c Tue Mar  3 11:25:55 2015<br>
@@ -6,5 +6,11 @@ int main() {<br>
   return 0;<br>
 }<br>
<br>
-// CHECK:  !"0x34\00localstatic\00localstatic\00\005\001\001", !{{.*}}, !{{.*}}, !{{.*}}, i32* @main.localstatic, null} ; [ DW_TAG_variable ]<br>
-// CHECK:  !"0x34\00global\00global\00\003\000\001", null, !{{.*}}, !{{.*}}, i32* @global, null} ; [ DW_TAG_variable ]<br>
+// CHECK: !MDGlobalVariable(name: "localstatic"<br>
+// CHECK-NOT:               linkageName:<br>
+// CHECK-SAME:              line: 5,<br>
+// CHECK-SAME:              variable: i32* @main.localstatic<br>
+// CHECK: !MDGlobalVariable(name: "global"<br>
+// CHECK-NOT:               linkageName:<br>
+// CHECK-SAME:              line: 3,<br>
+// CHECK-SAME:              variable: i32* @global<br>
<br>
Modified: cfe/trunk/test/CodeGen/2010-02-15-DbgStaticVar.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-02-15-DbgStaticVar.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-02-15-DbgStaticVar.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/2010-02-15-DbgStaticVar.c (original)<br>
+++ cfe/trunk/test/CodeGen/2010-02-15-DbgStaticVar.c Tue Mar  3 11:25:55 2015<br>
@@ -11,4 +11,6 @@ int main() {<br>
        int j = foo(1);<br>
        return 0;<br>
 }<br>
-// CHECK: !"0x34\00b\00b\00\00{{.*}}",<br>
+// CHECK: !MDGlobalVariable(name: "b",<br>
+// CHECK-NOT:               linkageName:<br>
+// CHECK-SAME:              ){{$}}<br>
<br>
Modified: cfe/trunk/test/CodeGen/2010-02-16-DbgScopes.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-02-16-DbgScopes.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-02-16-DbgScopes.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/2010-02-16-DbgScopes.c (original)<br>
+++ cfe/trunk/test/CodeGen/2010-02-16-DbgScopes.c Tue Mar  3 11:25:55 2015<br>
@@ -1,9 +1,9 @@<br>
 // RUN: %clang_cc1 -emit-llvm -g < %s | FileCheck %s<br>
 // Test to check number of lexical scope identified in debug info.<br>
-// CHECK: DW_TAG_lexical_block<br>
-// CHECK: DW_TAG_lexical_block<br>
-// CHECK: DW_TAG_lexical_block<br>
-// CHECK: DW_TAG_lexical_block<br>
+// CHECK: !MDLexicalBlock(<br>
+// CHECK: !MDLexicalBlock(<br>
+// CHECK: !MDLexicalBlock(<br>
+// CHECK: !MDLexicalBlock(<br>
<br>
 extern int bar();<br>
 extern void foobar();<br>
<br>
Modified: cfe/trunk/test/CodeGen/2010-03-09-DbgInfo.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-03-09-DbgInfo.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-03-09-DbgInfo.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/2010-03-09-DbgInfo.c (original)<br>
+++ cfe/trunk/test/CodeGen/2010-03-09-DbgInfo.c Tue Mar  3 11:25:55 2015<br>
@@ -1,2 +1,3 @@<br>
-// RUN: %clang -emit-llvm -S -O0 -g %s -o - | grep DW_TAG_variable<br>
+// RUN: %clang -emit-llvm -S -O0 -g %s -o - | FileCheck %s<br>
+// CHECK: !MDGlobalVariable(<br>
 unsigned char ctable1[1] = { 0001 };<br>
<br>
Modified: cfe/trunk/test/CodeGen/2010-03-5-LexicalScope.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-03-5-LexicalScope.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-03-5-LexicalScope.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/2010-03-5-LexicalScope.c (original)<br>
+++ cfe/trunk/test/CodeGen/2010-03-5-LexicalScope.c Tue Mar  3 11:25:55 2015<br>
@@ -1,6 +1,6 @@<br>
 // RUN: %clang_cc1 -emit-llvm -g %s -o - | FileCheck %s<br>
-// CHECK: DW_TAG_lexical_block<br>
-// CHECK: DW_TAG_lexical_block<br>
+// CHECK: !MDLexicalBlock(<br>
+// CHECK: !MDLexicalBlock(<br>
 int foo(int i) {<br>
        if (i) {<br>
                int j = 2;<br>
<br>
Modified: cfe/trunk/test/CodeGen/2010-08-10-DbgConstant.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-08-10-DbgConstant.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/2010-08-10-DbgConstant.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/2010-08-10-DbgConstant.c (original)<br>
+++ cfe/trunk/test/CodeGen/2010-08-10-DbgConstant.c Tue Mar  3 11:25:55 2015<br>
@@ -1,4 +1,5 @@<br>
-// RUN: %clang_cc1 -S -emit-llvm -g  %s -o - | grep DW_TAG_variable<br>
+// RUN: %clang_cc1 -S -emit-llvm -g  %s -o - | FileCheck %s<br>
+// CHECK: !MDGlobalVariable(<br>
<br>
 static const unsigned int ro = 201;<br>
 void bar(int);<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-args.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-args.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-args.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-args.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-args.c Tue Mar  3 11:25:55 2015<br>
@@ -2,7 +2,7 @@<br>
<br>
 int somefunc(char *x, int y, double z) {<br>
<br>
-  // CHECK: ![[NUM:[^,]*]], null, null, null} ; [ DW_TAG_subroutine_type<br>
+  // CHECK: !MDSubroutineType(types: ![[NUM:[0-9]+]])<br>
   // CHECK: ![[NUM]] = {{!{![^,]*, ![^,]*, ![^,]*, ![^,]*}}}<br>
<br>
   return y;<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-block-out-return.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-block-out-return.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-block-out-return.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-block-out-return.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-block-out-return.c Tue Mar  3 11:25:55 2015<br>
@@ -11,8 +11,8 @@<br>
 // out of order or not at all (the latter would occur if they were both assigned<br>
 // the same argument number by mistake).<br>
<br>
-// CHECK: !"0x101\00.block_descriptor\0016777218\00{{[0-9]+}}", {{.*}} ; [ DW_TAG_arg_variable ] [.block_descriptor]<br>
-// CHECK: !"0x101\00param\0033554434\00{{[0-9]+}}", {{.*}} ; [ DW_TAG_arg_variable ] [param]<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable, name: ".block_descriptor", arg: 1,{{.*}}line: 2,<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable, name: "param", arg: 2,{{.*}}line: 2,<br>
<br>
 // Line directive so we don't have to worry about how many lines preceed the<br>
 // test code (as the line number is mangled in with the argument number as shown<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-block.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-block.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-block.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-block.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-block.c Tue Mar  3 11:25:55 2015<br>
@@ -2,8 +2,8 @@<br>
 // Verify that the desired debugging type is generated for a structure<br>
 //  member that is a pointer to a block.<br>
<br>
-// CHECK: __block_literal_generic{{.*}}DW_TAG_structure_type<br>
-// CHECK: __block_descriptor{{.*}}DW_TAG_structure_type<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "__block_literal_generic"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "__block_descriptor"<br>
 struct inStruct {<br>
   void (^genericBlockPtr)();<br>
 } is;<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-enum.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-enum.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-enum.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-enum.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-enum.c Tue Mar  3 11:25:55 2015<br>
@@ -1,8 +1,9 @@<br>
 // RUN: %clang_cc1 -emit-llvm -g %s -o - | FileCheck %s<br>
<br>
-// CHECK: [[TEST3_ENUMS:![0-9]*]], null, null, null} ; [ DW_TAG_enumeration_type ] [e]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "e"<br>
+// CHECK-SAME:             elements: [[TEST3_ENUMS:![0-9]*]]<br>
 // CHECK: [[TEST3_ENUMS]] = !{[[TEST3_E:![0-9]*]]}<br>
-// CHECK: [[TEST3_E]] = !{!"0x28\00E\00-1"} ; [ DW_TAG_enumerator ] [E :: -1]<br>
+// CHECK: [[TEST3_E]] = !MDEnumerator(name: "E", value: -1)<br>
<br>
 enum e;<br>
 void func(enum e *p) {<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-file-change.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-file-change.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-file-change.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-file-change.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-file-change.c Tue Mar  3 11:25:55 2015<br>
@@ -14,8 +14,9 @@ int foo() {<br>
   return i + j;<br>
 }<br>
<br>
-// CHECK: DW_TAG_lexical_block<br>
-// CHECK: !"m.h"<br>
-// CHECK: DW_TAG_lexical_block<br>
-// CHECK: !"m.c"<br>
-// CHECK-NOT: DW_TAG_lexical_block<br>
+// CHECK-NOT: !MDLexicalBlock<br>
+// CHECK: !MDLexicalBlockFile({{.*}}file: ![[MH:[0-9]+]]<br>
+// CHECK: !MDFile(filename: "m.h"<br>
+// CHECK: !MDLexicalBlockFile({{.*}}file: ![[MC:[0-9]+]]<br>
+// CHECK: !MDFile(filename: "m.c"<br>
+// CHECK-NOT: !MDLexicalBlock<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-gline-tables-only2.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-gline-tables-only2.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-gline-tables-only2.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-gline-tables-only2.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-gline-tables-only2.c Tue Mar  3 11:25:55 2015<br>
@@ -8,6 +8,6 @@ int main() {<br>
 }<br>
<br>
 // CHECK: !<a href="http://llvm.dbg.cu" target="_blank">llvm.dbg.cu</a> = !{!0}<br>
-// CHECK: DW_TAG_compile_unit<br>
-// CHECK: {{.*main.* DW_TAG_subprogram}}<br>
-// CHECK: DW_TAG_file_type<br>
+// CHECK: !MDCompileUnit(<br>
+// CHECK: !MDSubprogram(<br>
+// CHECK: !MDFile(<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-limited.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-limited.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-limited.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-limited.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-limited.c Tue Mar  3 11:25:55 2015<br>
@@ -3,7 +3,9 @@<br>
 // Ensure we emit the full definition of 'foo' even though only its declaration<br>
 // is needed, since C has no ODR to ensure that the definition will be the same<br>
 // in whatever TU actually uses/requires the definition of 'foo'.<br>
-// CHECK: ; [ DW_TAG_structure_type ] [foo] {{.*}} [def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo",<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             ){{$}}<br>
<br>
 struct foo {<br>
 };<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-same-line.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-same-line.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-same-line.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-same-line.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-same-line.c Tue Mar  3 11:25:55 2015<br>
@@ -2,6 +2,6 @@<br>
 // Here two temporary nodes are identical (but should not get uniqued) while<br>
 // building the full debug type.<br>
 typedef struct { long x; } foo; typedef struct {  foo *x; } bar;<br>
-// CHECK: [ DW_TAG_structure_type ] [line 4, size 64,<br>
-// CHECK: [ DW_TAG_structure_type ] [line 4, size 64,<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type,{{.*}} line: 4, size: 64,<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type,{{.*}} line: 4, size: 64,<br>
 bar b;<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-scope-file.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-scope-file.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-scope-file.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-scope-file.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-scope-file.c Tue Mar  3 11:25:55 2015<br>
@@ -5,8 +5,8 @@<br>
<br>
 // CHECK: ret void, !dbg [[F1_LINE:![0-9]*]]<br>
 // CHECK: ret void, !dbg [[F2_LINE:![0-9]*]]<br>
-// CHECK: [[F1:![0-9]*]] = {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [def] [f1]<br>
-// CHECK: [[F2:![0-9]*]] = {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [def] [f2]<br>
+// CHECK: [[F1:![0-9]*]] = !MDSubprogram(name: "f1",{{.*}} isDefinition: true<br>
+// CHECK: [[F2:![0-9]*]] = !MDSubprogram(name: "f2",{{.*}} isDefinition: true<br>
 // CHECK: [[F1_LINE]] = !MDLocation({{.*}}, scope: [[F1]])<br>
 // CHECK: [[F2_LINE]] = !MDLocation({{.*}}, scope: [[F2]])<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-scope.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-scope.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-scope.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-scope.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-scope.c Tue Mar  3 11:25:55 2015<br>
@@ -5,23 +5,23 @@<br>
 int main() {<br>
        int j = 0;<br>
        int k = 0;<br>
-// CHECK: DW_TAG_auto_variable ] [i]<br>
-// CHECK-NEXT: DW_TAG_lexical_block<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_auto_variable, name: "i"<br>
+// CHECK-NEXT: !MDLexicalBlock(<br>
<br>
 // FIXME: Looks like we don't actually need both these lexical blocks (disc 2<br>
 // just refers to disc 1, nothing actually uses disc 2).<br>
-// GMLT-NOT: DW_TAG_lexical_block<br>
-// GMLT: "0xb\002", {{.*}}} ; [ DW_TAG_lexical_block ]<br>
-// GMLT-NOT: DW_TAG_lexical_block<br>
-// GMLT: "0xb\001", {{.*}}} ; [ DW_TAG_lexical_block ]<br>
+// GMLT-NOT: !MDLexicalBlock<br>
+// GMLT: !MDLexicalBlockFile({{.*}}, discriminator: 2)<br>
+// GMLT-NOT: !MDLexicalBlock<br>
+// GMLT: !MDLexicalBlockFile({{.*}}, discriminator: 1)<br>
 // Make sure we don't have any more lexical blocks because we don't need them in<br>
 // -gmlt.<br>
-// GMLT-NOT: DW_TAG_lexical_block<br>
+// GMLT-NOT: !MDLexicalBlock<br>
        for (int i = 0; i < 10; i++)<br>
                j++;<br>
-// CHECK: DW_TAG_auto_variable ] [i]<br>
-// CHECK-NEXT: DW_TAG_lexical_block<br>
-// GMLT-NOT: DW_TAG_lexical_block<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_auto_variable, name: "i"<br>
+// CHECK-NEXT: !MDLexicalBlock(<br>
+// GMLT-NOT: !MDLexicalBlock<br>
        for (int i = 0; i < 10; i++)<br>
                k++;<br>
        return 0;<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-static.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-static.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-static.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-static.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-static.c Tue Mar  3 11:25:55 2015<br>
@@ -1,6 +1,6 @@<br>
 // RUN: %clang_cc1  -g -emit-llvm -o - %s | FileCheck %s<br>
<br>
-// CHECK:  xyzzy, null} ; [ DW_TAG_variable ]<br>
+// CHECK: !MDGlobalVariable({{.*}}variable: i32* @f.xyzzy<br>
 void f(void)<br>
 {<br>
    static int xyzzy;<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-typedef.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-typedef.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-typedef.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-typedef.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-typedef.c Tue Mar  3 11:25:55 2015<br>
@@ -7,5 +7,5 @@ typedef int MyType;<br>
<br>
 MyType a;<br>
<br>
-// CHECK:  !"0x16\00MyType\002\00{{.*}}", ![[HEADER:[0-9]+]], null{{.*}}} ; [ DW_TAG_typedef ] [MyType] [line 2, size 0, align 0, offset 0] [from int]<br>
-// CHECK: ![[HEADER]] = !{!"b.h",<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_typedef, name: "MyType", file: ![[HEADER:[0-9]+]], line: 2,<br>
+// CHECK: ![[HEADER]] = !MDFile(filename: "b.h",<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-vector.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-vector.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-vector.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-vector.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-vector.c Tue Mar  3 11:25:55 2015<br>
@@ -4,4 +4,8 @@ typedef int v4si __attribute__((__vector<br>
 v4si a;<br>
<br>
 // Test that we get an array type that's also a vector out of debug.<br>
-// CHECK: [ DW_TAG_array_type ] [line 0, size 128, align 128, offset 0] [vector] [from int]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_array_type,<br>
+// CHECK-SAME:             baseType: ![[INT:[0-9]+]]<br>
+// CHECK-SAME:             size: 128, align: 128<br>
+// CHECK-SAME:             DIFlagVector<br>
+// CHECK: ![[INT]] = !MDBasicType(name: "int"<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-version.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-version.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-version.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-version.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-version.c Tue Mar  3 11:25:55 2015<br>
@@ -4,5 +4,5 @@ int main (void) {<br>
   return 0;<br>
 }<br>
<br>
-// CHECK:  i32 2, !"Debug Info Version", i32 2}<br>
+// CHECK:  i32 2, !"Debug Info Version", i32 3}<br>
 // NO_DEBUG-NOT: !"Debug Info Version"<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info-vla.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-vla.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-vla.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info-vla.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info-vla.c Tue Mar  3 11:25:55 2015<br>
@@ -4,8 +4,8 @@ void testVLAwithSize(int s)<br>
 {<br>
 // CHECK: dbg.declare<br>
 // CHECK: dbg.declare({{.*}}, metadata ![[VAR:.*]], metadata ![[EXPR:.*]])<br>
-// CHECK: ![[VAR]] = {{.*}} ; [ DW_TAG_auto_variable ] [vla] [line [[@LINE+2]]]<br>
-// CHECK: ![[EXPR]] = {{.*}} ; [ DW_TAG_expression ] [DW_OP_deref]<br>
+// CHECK: ![[VAR]] = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "vla",{{.*}} line: [[@LINE+2]]<br>
+// CHECK: ![[EXPR]] = !MDExpression(DW_OP_deref)<br>
   int vla[s];<br>
   int i;<br>
   for (i = 0; i < s; i++) {<br>
<br>
Modified: cfe/trunk/test/CodeGen/debug-info.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/debug-info.c (original)<br>
+++ cfe/trunk/test/CodeGen/debug-info.c Tue Mar  3 11:25:55 2015<br>
@@ -42,7 +42,7 @@ struct foo2 foo2;<br>
<br>
<br>
 // Radar 7325611<br>
-// CHECK: !"0x16\00barfoo\00{{.*}}"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_typedef, name: "barfoo"<br>
 typedef int barfoo;<br>
 barfoo foo() {<br>
 }<br>
<br>
Modified: cfe/trunk/test/CodeGen/lineno-dbginfo.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/lineno-dbginfo.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/lineno-dbginfo.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/lineno-dbginfo.c (original)<br>
+++ cfe/trunk/test/CodeGen/lineno-dbginfo.c Tue Mar  3 11:25:55 2015<br>
@@ -1,6 +1,9 @@<br>
 // RUN: echo "#include <stddef.h>" > %t.h<br>
 // RUN: %clang_cc1 -S -g -include %t.h %s -emit-llvm -o - | FileCheck %s<br>
<br>
-// CHECK: !"0x34\00outer\00outer\00\00[[@LINE+1]]\000\001"<br>
+// CHECK: !MDGlobalVariable(name: "outer",<br>
+// CHECK-NOT:               linkageName:<br>
+// CHECK-SAME:              line: [[@LINE+2]]<br>
+// CHECK-SAME:              isDefinition: true<br>
 int outer = 42;<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/2010-07-23-DeclLoc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/2010-07-23-DeclLoc.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/2010-07-23-DeclLoc.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/2010-07-23-DeclLoc.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/2010-07-23-DeclLoc.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,9 +1,10 @@<br>
 // RUN: %clang_cc1 -emit-llvm -g %s -o - | FileCheck %s<br>
 // Require the template function declaration refer to the correct filename.<br>
 // First, locate the function decl in metadata, and pluck out the file handle:<br>
-// CHECK: !"0x2e\00extract_dwarf_data_from_header{{[^"]+}}", [[filehandle:![0-9]+]]<br>
+// CHECK: !MDSubprogram(name: "extract_dwarf_data_from_header<br>
+// CHECK-SAME:          file: [[FILE:![0-9]+]]<br>
 // Second: Require that filehandle refer to the correct filename:<br>
-// CHECK: [[filehandle]] = {{.*}}decl_should_be_here.hpp"<br>
+// CHECK: [[FILE]] = !MDFile(filename: "decl_should_be_here.hpp"<br>
 typedef long unsigned int __darwin_size_t;<br>
 typedef __darwin_size_t size_t;<br>
 typedef unsigned char uint8_t;<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/Inputs/debug-info-class-limited.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/Inputs/debug-info-class-limited.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/Inputs/debug-info-class-limited.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/Inputs/debug-info-class-limited.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/Inputs/debug-info-class-limited.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,5 +1,5 @@<br>
<br>
-// CHECK-DAG: [ DW_TAG_structure_type ] [PR16214] [line [[@LINE+1]], {{.*}} [def]<br>
+// CHECK-DAG: !MDCompositeType(tag: DW_TAG_structure_type, name: "PR16214",{{.*}} line: [[@LINE+1]],{{.*}} isDefinition: true<br>
 struct PR16214 {<br>
   int i;<br>
 };<br>
@@ -10,7 +10,7 @@ bar *a;<br>
 bar b;<br>
<br>
 namespace PR14467 {<br>
-// CHECK-DAG: [ DW_TAG_structure_type ] [foo] [line [[@LINE+1]], {{.*}} [def]<br>
+// CHECK-DAG: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo",{{.*}} line: [[@LINE+1]],{{.*}} isDefinition: true<br>
 struct foo {<br>
 };<br>
<br>
@@ -21,7 +21,7 @@ foo *bar(foo *a) {<br>
 }<br>
<br>
 namespace test1 {<br>
-// CHECK-DAG: [ DW_TAG_structure_type ] [foo] [line [[@LINE+1]], {{.*}} [def]<br>
+// CHECK-DAG: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo",{{.*}} line: [[@LINE+1]],{{.*}} isDefinition: true<br>
 struct foo {<br>
 };<br>
<br>
@@ -35,7 +35,7 @@ namespace test2 {<br>
 // FIXME: if we were a bit fancier, we could realize that the 'foo' type is only<br>
 // required because of the 'bar' type which is not required at all (or might<br>
 // only be required to be declared)<br>
-// CHECK-DAG: [ DW_TAG_structure_type ] [foo] [line [[@LINE+1]], {{.*}} [def]<br>
+// CHECK-DAG: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo",{{.*}} line: [[@LINE+1]],{{.*}} isDefinition: true<br>
 struct foo {<br>
 };<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/PR20038.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/PR20038.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/PR20038.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/PR20038.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/PR20038.cpp Tue Mar  3 11:25:55 2015<br>
@@ -6,8 +6,8 @@ struct C {<br>
 extern bool b;<br>
 // CHECK: call {{.*}}, !dbg [[DTOR_CALL1_LOC:![0-9]*]]<br>
 // CHECK: call {{.*}}, !dbg [[DTOR_CALL2_LOC:![0-9]*]]<br>
-// CHECK: [[FUN1:.*]] = {{.*}}; [ DW_TAG_subprogram ] {{.*}} [def] [fun1]<br>
-// CHECK: [[FUN2:.*]] = {{.*}}; [ DW_TAG_subprogram ] {{.*}} [def] [fun2]<br>
+// CHECK: [[FUN1:.*]] = !MDSubprogram(name: "fun1",{{.*}} isDefinition: true<br>
+// CHECK: [[FUN2:.*]] = !MDSubprogram(name: "fun2",{{.*}} isDefinition: true<br>
 // CHECK: [[DTOR_CALL1_LOC]] = !MDLocation(line: [[@LINE+1]], scope: [[FUN1]])<br>
 void fun1() { b && (C(), 1); }<br>
 // CHECK: [[DTOR_CALL2_LOC]] = !MDLocation(line: [[@LINE+1]], scope: [[FUN2]])<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/coverage.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/coverage.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/coverage.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/coverage.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/coverage.cpp Tue Mar  3 11:25:55 2015<br>
@@ -3,5 +3,7 @@<br>
 extern "C" void test_name1() {}<br>
 void test_name2() {}<br>
<br>
-// CHECK: !"0x2e\00test_name1\00test_name1\00\00{{[^,]+}}", {{.*}} DW_TAG_subprogram<br>
-// CHECK: !"0x2e\00test_name2\00test_name2\00_Z10test_name2v\00{{[^,]+}}", {{.*}} DW_TAG_subprogram<br>
+// CHECK: !MDSubprogram(name: "test_name1",<br>
+// CHECK-NOT:           linkageName:<br>
+// CHECK-SAME:          ){{$}}<br>
+// CHECK: !MDSubprogram(name: "test_name2", linkageName: "_Z10test_name2v"<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-access.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-access.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-access.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-access.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-access.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,37 +1,39 @@<br>
 // RUN: %clang_cc1 -emit-llvm -g -triple %itanium_abi_triple %s -o - | FileCheck %s<br>
 // Test the various accessibility flags in the debug info.<br>
 struct A {<br>
-  // CHECK-DAG: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [pub_default]<br>
+  // CHECK-DAG: !MDSubprogram(name: "pub_default",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagPrototyped,<br>
   void pub_default();<br>
-  // CHECK-DAG: [ DW_TAG_member ] [pub_default_static] [line [[@LINE+1]]{{.*}}offset 0] [static]<br>
+  // CHECK-DAG: !MDDerivedType(tag: DW_TAG_member, name: "pub_default_static",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagStaticMember)<br>
   static int pub_default_static;<br>
 };<br>
<br>
-// CHECK: [ DW_TAG_inheritance ] {{.*}} [public] [from {{.*}}A]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_inheritance,{{.*}} baseType: !"_ZTS1A",{{.*}} flags: DIFlagPublic)<br>
 class B : public A {<br>
 public:<br>
-  // CHECK-DAG: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [public] [pub]<br>
+  // CHECK-DAG: !MDSubprogram(name: "pub",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagPublic | DIFlagPrototyped,<br>
   void pub();<br>
-  // CHECK-DAG: [ DW_TAG_member ] [public_static] [line [[@LINE+1]]{{.*}} [public] [static]<br>
+  // CHECK-DAG: !MDDerivedType(tag: DW_TAG_member, name: "public_static",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagPublic | DIFlagStaticMember)<br>
   static int public_static;<br>
 protected:<br>
-  // CHECK: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [protected] [prot]<br>
+  // CHECK: !MDSubprogram(name: "prot",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagProtected | DIFlagPrototyped,<br>
   void prot();<br>
 private:<br>
-  // CHECK: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [priv_default]<br>
+  // CHECK: !MDSubprogram(name: "priv_default",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagPrototyped,<br>
   void priv_default();<br>
 };<br>
<br>
 union U {<br>
-  // CHECK-DAG: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [union_pub_default]<br>
+  // CHECK-DAG: !MDSubprogram(name: "union_pub_default",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagPrototyped,<br>
   void union_pub_default();<br>
 private:<br>
-  // CHECK-DAG: [ DW_TAG_member ] [union_priv] [line [[@LINE+1]]{{.*}} [private]<br>
+  // CHECK-DAG: !MDDerivedType(tag: DW_TAG_member, name: "union_priv",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagPrivate)<br>
   int union_priv;<br>
 };<br>
<br>
<br>
-// CHECK: {{.*}}\00256\00{{.*}} ; [ DW_TAG_subprogram ] [line [[@LINE+1]]] [def] [free]<br>
+// CHECK: !MDSubprogram(name: "free",<br>
+// CHECK-SAME:          isDefinition: true<br>
+// CHECK-SAME:          flags: DIFlagPrototyped,<br>
 void free() {}<br>
<br>
 A a;<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-alias.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-alias.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-alias.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-alias.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-alias.cpp Tue Mar  3 11:25:55 2015<br>
@@ -13,25 +13,27 @@ bar<br>
 = foo<T*>;<br>
 }<br>
<br>
-// CHECK: [[BINT:![0-9]*]], {{[^,]+, [^,]+}}} ; [ DW_TAG_variable ] [bi]<br>
-// CHECK: [[BINT]] = {{.*}} ; [ DW_TAG_typedef ] [bar<int>] [line 42<br>
+// CHECK: !MDGlobalVariable(name: "bi",{{.*}} type: [[BINT:![0-9]+]]<br>
+// CHECK: [[BINT]] = !MDDerivedType(tag: DW_TAG_typedef, name: "bar<int>"<br>
+// CHECK-SAME:                      line: 42,<br>
 x::bar<int> bi;<br>
-// CHECK: [[BFLOAT:![0-9]*]], {{[^,]+, [^,]+}}} ; [ DW_TAG_variable ] [bf]<br>
-// CHECK: [[BFLOAT]] = {{.*}} ; [ DW_TAG_typedef ] [bar<float>] [line 42<br>
+// CHECK: !MDGlobalVariable(name: "bf",{{.*}} type: [[BFLOAT:![0-9]+]]<br>
+// CHECK: [[BFLOAT]] = !MDDerivedType(tag: DW_TAG_typedef, name: "bar<float>"<br>
 x::bar<float> bf;<br>
<br>
 using<br>
-// CHECK: [[NARF:![0-9]*]], {{[^,]+, [^,]+}}} ; [ DW_TAG_variable ] [n]<br>
+// CHECK: !MDGlobalVariable(name: "n",{{.*}} type: [[NARF:![0-9]+]]<br>
 # 142<br>
-narf // CHECK: [[NARF]] = {{.*}} ; [ DW_TAG_typedef ] [narf] [line 142<br>
+narf // CHECK: [[NARF]] = !MDDerivedType(tag: DW_TAG_typedef, name: "narf"<br>
+// CHECK-SAME:                           line: 142<br>
 = int;<br>
 narf n;<br>
<br>
 template <typename T><br>
 using tv = void;<br>
-// CHECK: null} ; [ DW_TAG_typedef ] [tv<int>] {{.*}} [from ]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_typedef, name: "tv<int>"<br>
 tv<int> *tvp;<br>
<br>
 using v = void;<br>
-// CHECK: null} ; [ DW_TAG_typedef ] [v] {{.*}} [from ]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_typedef, name: "v"<br>
 v *vp;<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-anon-union-vars.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-anon-union-vars.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-anon-union-vars.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-anon-union-vars.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-anon-union-vars.cpp Tue Mar  3 11:25:55 2015<br>
@@ -21,8 +21,8 @@ int test_it() {<br>
   return (c == 1);<br>
 }<br>
<br>
-// CHECK: [[FILE:.*]] = {{.*}}[ DW_TAG_file_type ] [{{.*}}debug-info-anon-union-vars.cpp]<br>
-// CHECK: [[FILE]]{{.*}}[ DW_TAG_variable ] [c] [line 6] [local] [def]<br>
-// CHECK: [[FILE]]{{.*}}[ DW_TAG_variable ] [d] [line 6] [local] [def]<br>
-// CHECK: [[FILE]]{{.*}}[ DW_TAG_variable ] [a] [line 6] [local] [def]<br>
-// CHECK: [[FILE]]{{.*}}[ DW_TAG_variable ] [b] [line 6] [local] [def]<br>
+// CHECK: [[FILE:.*]] = !MDFile(filename: "{{.*}}debug-info-anon-union-vars.cpp",<br>
+// CHECK: !MDGlobalVariable(name: "c",{{.*}} file: [[FILE]], line: 6,{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK: !MDGlobalVariable(name: "d",{{.*}} file: [[FILE]], line: 6,{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK: !MDGlobalVariable(name: "a",{{.*}} file: [[FILE]], line: 6,{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK: !MDGlobalVariable(name: "b",{{.*}} file: [[FILE]], line: 6,{{.*}} isLocal: true, isDefinition: true<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp Tue Mar  3 11:25:55 2015<br>
@@ -22,8 +22,12 @@ int main(int argc, char **argv) {<br>
   A reallyA (500);<br>
 }<br>
<br>
-// CHECK: ![[CLASSTYPE:.*]] = {{.*}}, !"_ZTS1A"} ; [ DW_TAG_class_type ] [A]<br>
-// CHECK: ![[ARTARG:.*]] = {{.*}} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1A]<br>
-// CHECK: !"_ZTS1A", {{.*}} ; [ DW_TAG_subprogram ] [line 12] [public] [A]<br>
-// CHECK: [[FUNCTYPE:![0-9]*]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
+// CHECK: ![[CLASSTYPE:.*]] = !MDCompositeType(tag: DW_TAG_class_type, name: "A",<br>
+// CHECK-SAME:                                 identifier: "_ZTS1A"<br>
+// CHECK: ![[ARTARG:.*]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1A",<br>
+// CHECK-SAME:                            DIFlagArtificial<br>
+// CHECK: !MDSubprogram(name: "A", scope: !"_ZTS1A"<br>
+// CHECK-SAME:          line: 12<br>
+// CHECK-SAME:          DIFlagPublic<br>
+// CHECK: !MDSubroutineType(types: [[FUNCTYPE:![0-9]*]])<br>
 // CHECK: [[FUNCTYPE]] = !{null, ![[ARTARG]], !{{.*}}, !{{.*}}}<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-blocks.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-blocks.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-blocks.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-blocks.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-blocks.cpp Tue Mar  3 11:25:55 2015<br>
@@ -10,5 +10,9 @@ void test() {<br>
   __block A a;<br>
 }<br>
<br>
-// CHECK: [ DW_TAG_subprogram ] [line 10] [local] [def] [__Block_byref_object_copy_]<br>
-// CHECK: [ DW_TAG_subprogram ] [line 10] [local] [def] [__Block_byref_object_dispose_]<br>
+// CHECK: !MDSubprogram(name: "__Block_byref_object_copy_",<br>
+// CHECK-SAME:          line: 10,<br>
+// CHECK-SAME:          isLocal: true, isDefinition: true<br>
+// CHECK: !MDSubprogram(name: "__Block_byref_object_dispose_",<br>
+// CHECK-SAME:          line: 10,<br>
+// CHECK-SAME:          isLocal: true, isDefinition: true<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-char16.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-char16.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-char16.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-char16.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-char16.cpp Tue Mar  3 11:25:55 2015<br>
@@ -3,4 +3,5 @@<br>
 // 16 is DW_ATE_UTF (0x10) encoding attribute.<br>
 char16_t char_a = u'h';<br>
<br>
-// CHECK: !{{.*}} = {{.*}} ; [ DW_TAG_base_type ] [char16_t]<br>
+// CHECK: !{{.*}} = !MDBasicType(name: "char16_t"<br>
+// CHECK-SAME:                   encoding: DW_ATE_UTF)<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-class-nolimit.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-class-nolimit.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-class-nolimit.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-class-nolimit.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-class-nolimit.cpp Tue Mar  3 11:25:55 2015<br>
@@ -6,7 +6,9 @@ namespace rdar14101097_1 { // see also P<br>
 // Check that we emit debug info for the definition of a struct if the<br>
 // definition is available, even if it's used via a pointer wrapped in a<br>
 // typedef.<br>
-// CHECK: [ DW_TAG_structure_type ] [foo] {{.*}}[def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             ){{$}}<br>
 struct foo {<br>
 };<br>
<br>
@@ -21,7 +23,9 @@ namespace rdar14101097_2 {<br>
 // As above, except trickier because we first encounter only a declaration of<br>
 // the type and no debug-info related use after we see the definition of the<br>
 // type.<br>
-// CHECK: [ DW_TAG_structure_type ] [foo] {{.*}}[def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             ){{$}}<br>
 struct foo;<br>
 void bar() {<br>
   foo *f;<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-class.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-class.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-class.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-class.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-class.cpp Tue Mar  3 11:25:55 2015<br>
@@ -90,33 +90,63 @@ int main(int argc, char **argv) {<br>
 // CHECK: invoke {{.+}} @_ZN1BD1Ev(%class.B* %b)<br>
 // CHECK-NEXT: unwind label %{{.+}}, !dbg ![[EXCEPTLOC:.*]]<br>
 // CHECK: store i32 0, i32* %{{.+}}, !dbg ![[RETLOC:.*]]<br>
-// CHECK: DW_TAG_structure_type ] [foo]<br>
-// CHECK: DW_TAG_class_type ] [bar]<br>
-// CHECK: DW_TAG_union_type ] [baz]<br>
-// CHECK: DW_TAG_class_type ] [B] {{.*}} [def]<br>
-// CHECK: !"0xd\00_vptr$B\00{{.*}}\0064", {{.*}} ; [ DW_TAG_member ]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_class_type, name: "bar"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_union_type, name: "baz"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_class_type, name: "B"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             ){{$}}<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "_vptr$B",<br>
+// CHECK-SAME:           DIFlagArtificial<br>
<br>
-// CHECK: [[C:![0-9]*]] = {{.*}} [[C_MEM:![0-9]*]], !"_ZTS1C", null, !"_ZTS1C"} ; [ DW_TAG_structure_type ] [C] {{.*}} [def]<br>
+// CHECK: ![[INT:[0-9]+]] = !MDBasicType(name: "int"<br>
+<br>
+// CHECK: [[C:![0-9]*]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "C",<br>
+// CHECK-NOT:                              DIFlagFwdDecl<br>
+// CHECK-SAME:                             elements: [[C_MEM:![0-9]*]]<br>
+// CHECK-SAME:                             vtableHolder: !"_ZTS1C"<br>
+// CHECK-SAME:                             identifier: "_ZTS1C"<br>
 // CHECK: [[C_MEM]] = !{[[C_VPTR:![0-9]*]], [[C_S:![0-9]*]], [[C_DTOR:![0-9]*]]}<br>
-// CHECK: [[C_VPTR]] = {{.*}} ; [ DW_TAG_member ] [_vptr$C] {{.*}} [artificial]<br>
-// CHECK: [[C_S]] = {{.*}} ; [ DW_TAG_member ] [s] {{.*}} [static] [from int]<br>
-// CHECK: [[C_DTOR]] = {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [~C]<br>
-<br>
-// CHECK: null, null, null, !"_ZTS1D"} ; [ DW_TAG_structure_type ] [D] {{.*}} [decl]<br>
-// CHECK: null, null, null, !"_ZTS1E"} ; [ DW_TAG_structure_type ] [E] {{.*}} [decl]<br>
-// CHECK: [[F:![0-9]*]] = {{.*}} null, null, null, !"_ZTS1F"} ; [ DW_TAG_structure_type ] [F] {{.*}} [decl]<br>
+// CHECK: [[C_VPTR]] = !MDDerivedType(tag: DW_TAG_member, name: "_vptr$C"<br>
+// CHECK-SAME:                        DIFlagArtificial<br>
+// CHECK: [[C_S]] = !MDDerivedType(tag: DW_TAG_member, name: "s"<br>
+// CHECK-SAME:                     baseType: ![[INT]]<br>
+// CHECK-SAME:                     DIFlagStaticMember<br>
+// CHECK: [[C_DTOR]] = !MDSubprogram(name: "~C"<br>
+<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "D"<br>
+// CHECK-SAME:             DIFlagFwdDecl<br>
+// CHECK-SAME:             identifier: "_ZTS1D"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "E"<br>
+// CHECK-SAME:             DIFlagFwdDecl<br>
+// CHECK-SAME:             identifier: "_ZTS1E"<br>
+// CHECK: [[F:![0-9]*]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "F"<br>
+// CHECK-SAME:                             DIFlagFwdDecl<br>
+// CHECK-SAME:                             identifier: "_ZTS1F"<br>
<br>
-// CHECK: null, null, null, !"_ZTS1G"} ; [ DW_TAG_structure_type ] [G] {{.*}} [decl]<br>
-// CHECK: [[G_INNER_MEM:![0-9]*]], null, null, !"_ZTSN1G5innerE"} ; [ DW_TAG_structure_type ] [inner] [line 50, {{.*}} [def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "G"<br>
+// CHECK-SAME:             DIFlagFwdDecl<br>
+// CHECK-SAME:             identifier: "_ZTS1G"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "inner"<br>
+// CHECK: line: 50<br>
+// CHECK-NOT: DIFlagFwdDecl<br>
+// CHECK-SAME: elements: [[G_INNER_MEM:![0-9]*]]<br>
+// CHECK-SAME: identifier: "_ZTSN1G5innerE"<br>
 // CHECK: [[G_INNER_MEM]] = !{[[G_INNER_I:![0-9]*]]}<br>
-// CHECK: [[G_INNER_I]] = {{.*}} ; [ DW_TAG_member ] [j] {{.*}} [from int]<br>
+// CHECK: [[G_INNER_I]] = !MDDerivedType(tag: DW_TAG_member, name: "j"<br>
+// CHECK-SAME:                           baseType: ![[INT]]<br>
<br>
-// CHECK: ; [ DW_TAG_structure_type ] [A]<br>
-// CHECK: HdrSize<br>
-// CHECK: ; [ DW_TAG_structure_type ] [I] {{.*}} [def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "A"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "HdrSize"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "I"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             ){{$}}<br>
 //<br>
-// CHECK: !"_ZTS1D", {{.*}}, [[D_FUNC_DECL:![0-9]*]], {{![0-9]*}}} ; [ DW_TAG_subprogram ] {{.*}} [def] [func]<br>
-// CHECK: [[D_FUNC_DECL]] = !{!"0x2e\00func\00{{.*}}\000\00{{[0-9]+}}"{{.*}}, !"_ZTS1D", {{.*}}, null} ; [ DW_TAG_subprogram ] {{.*}} [func]<br>
+// CHECK: !MDSubprogram(name: "func",{{.*}} scope: !"_ZTS1D"<br>
+// CHECK-SAME:          isDefinition: true<br>
+// CHECK-SAME:          declaration: [[D_FUNC_DECL:![0-9]*]]<br>
+// CHECK: [[D_FUNC_DECL]] = !MDSubprogram(name: "func",{{.*}} scope: !"_ZTS1D"<br>
+// CHECK-SAME:                            isDefinition: false<br>
<br>
 // CHECK: ![[EXCEPTLOC]] = !MDLocation(line: 84,<br>
 // CHECK: ![[RETLOC]] = !MDLocation(line: 83,<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-cxx1y.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-cxx1y.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-cxx1y.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-cxx1y.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-cxx1y.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,13 +1,20 @@<br>
 // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm-only -std=c++14 -emit-llvm -g %s -o - | FileCheck %s<br>
<br>
 // CHECK: [[EMPTY:![0-9]*]] = !{}<br>
-// CHECK: \00foo\00{{.*}}, [[EMPTY]], {{.*}}} ; [ DW_TAG_structure_type ]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo",<br>
+// CHECK-SAME:             elements: [[EMPTY]]<br>
 // FIXME: The context of this definition should be the CU/file scope, not the class.<br>
-// CHECK: !"_ZTS3foo", [[SUBROUTINE_TYPE:![0-9]*]], {{.*}}, [[FUNC_DECL:![0-9]*]], {{![0-9]*}}} ; [ DW_TAG_subprogram ] {{.*}} [def] [func]<br>
-// CHECK: [[SUBROUTINE_TYPE]] = {{.*}}, [[TYPE_LIST:![0-9]*]],<br>
+// CHECK: !MDSubprogram(name: "func", {{.*}} scope: !"_ZTS3foo"<br>
+// CHECK-SAME:          type: [[SUBROUTINE_TYPE:![0-9]*]]<br>
+// CHECK-SAME:          isDefinition: true<br>
+// CHECK-SAME:          declaration: [[FUNC_DECL:![0-9]*]]<br>
+// CHECK: [[SUBROUTINE_TYPE]] = !MDSubroutineType(types: [[TYPE_LIST:![0-9]*]])<br>
 // CHECK: [[TYPE_LIST]] = !{[[INT:![0-9]*]]}<br>
-// CHECK: [[INT]] = {{.*}} ; [ DW_TAG_base_type ] [int]<br>
-// CHECK: [[FUNC_DECL]] = {{.*}}, !"_ZTS3foo", [[SUBROUTINE_TYPE]], {{.*}}} ; [ DW_TAG_subprogram ] {{.*}} [func]<br>
+// CHECK: [[INT]] = !MDBasicType(name: "int"<br>
+// CHECK: [[FUNC_DECL]] = !MDSubprogram(name: "func",<br>
+// CHECK-SAME:                          scope: !"_ZTS3foo"<br>
+// CHECK-SAME:                          type: [[SUBROUTINE_TYPE]]<br>
+// CHECK-SAME:                          isDefinition: false<br>
<br>
 struct foo {<br>
   static auto func();<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-decl-nested.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-decl-nested.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-decl-nested.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-decl-nested.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-decl-nested.cpp Tue Mar  3 11:25:55 2015<br>
@@ -17,11 +17,16 @@ class OuterClass<br>
   public:<br>
     InnerClass(); // Here createContextChain() generates a limited type for OuterClass.<br>
   } theInnerClass;<br>
-// CHECK0: [[DECL:[0-9]+]] = {{.*}} ; [ DW_TAG_subprogram ] [line [[@LINE+1]]] [OuterClass]<br>
+// CHECK0: ![[DECL:[0-9]+]] = !MDSubprogram(name: "OuterClass"<br>
+// CHECK0-SAME: line: [[@LINE+2]]<br>
+// CHECK0-SAME: isDefinition: false<br>
   OuterClass(const Foo *); // line 10<br>
 };<br>
 OuterClass::InnerClass OuterClass::theInnerClass; // This toplevel decl causes InnerClass to be generated.<br>
-// CHECK0: !"0x2e\00OuterClass\00{{.*}}\00[[@LINE+1]]"{{.*}}, ![[DECL]], {{![0-9]+}}} ; [ DW_TAG_subprogram ] [line [[@LINE+1]]] [def] [OuterClass]<br>
+// CHECK0: !MDSubprogram(name: "OuterClass"<br>
+// CHECK0-SAME: line: [[@LINE+3]]<br>
+// CHECK0-SAME: isDefinition: true<br>
+// CHECK0-SAME: declaration: ![[DECL]]<br>
 OuterClass::OuterClass(const Foo *meta) { } // line 13<br>
<br>
<br>
@@ -36,11 +41,16 @@ class OuterClass1<br>
   public:<br>
     InnerClass1();<br>
   } theInnerClass1;<br>
-// CHECK1: [[DECL:[0-9]+]] = {{.*}} ; [ DW_TAG_subprogram ] [line [[@LINE+2]]] [Bar]<br>
-// CHECK1: !"0x2e\00Bar\00{{.*}}\00[[@LINE+4]]"{{.*}}, ![[DECL]], {{![0-9]+}}} ; [ DW_TAG_subprogram ] [line [[@LINE+4]]] [def] [Bar]<br>
+// CHECK1: ![[DECL:[0-9]+]] = !MDSubprogram(name: "Bar"<br>
+// CHECK1-SAME: line: [[@LINE+2]]<br>
+// CHECK1-SAME: isDefinition: false<br>
   void Bar(const Foo1 *);<br>
 };<br>
 OuterClass1::InnerClass1 OuterClass1::theInnerClass1;<br>
+// CHECK1: !MDSubprogram(name: "Bar"<br>
+// CHECK1-SAME: line: [[@LINE+3]]<br>
+// CHECK1-SAME: isDefinition: true<br>
+// CHECK1-SAME: declaration: ![[DECL]]<br>
 void OuterClass1::Bar(const Foo1 *meta) { }<br>
<br>
<br>
@@ -54,9 +64,14 @@ class OuterClass2<br>
   public:<br>
     InnerClass2();<br>
   } theInnerClass2;<br>
-// CHECK2: [[DECL:[0-9]+]] = {{.*}} ; [ DW_TAG_subprogram ] [line [[@LINE+1]]] [~OuterClass2]<br>
+// CHECK2: ![[DECL:[0-9]+]] = !MDSubprogram(name: "~OuterClass2"<br>
+// CHECK2-SAME: line: [[@LINE+2]]<br>
+// CHECK2-SAME: isDefinition: false<br>
   ~OuterClass2(); // line 10<br>
 };<br>
 OuterClass2::InnerClass2 OuterClass2::theInnerClass2;<br>
-// CHECK2: !"0x2e\00~OuterClass2\00{{.*}}\00[[@LINE+1]]"{{.*}}, ![[DECL]], {{.*}}} ; [ DW_TAG_subprogram ] [line [[@LINE+1]]] [def] [~OuterClass2]<br>
+// CHECK4: !MDSubprogram(name: "~OuterClass2"<br>
+// CHECK4-SAME: line: [[@LINE+3]]<br>
+// CHECK4-SAME: isDefinition: true<br>
+// CHECK4-SAME: declaration: ![[DECL]]<br>
 OuterClass2::~OuterClass2() { }<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-dup-fwd-decl.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-dup-fwd-decl.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-dup-fwd-decl.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-dup-fwd-decl.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-dup-fwd-decl.cpp Tue Mar  3 11:25:55 2015<br>
@@ -19,6 +19,6 @@ protected:<br>
<br>
 Test t;<br>
<br>
-// CHECK: ; [ DW_TAG_pointer_type ]<br>
-// CHECK: ; [ DW_TAG_structure_type ] [data]<br>
-// CHECK-NOT: ; [ DW_TAG_structure_type ] [data]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_pointer_type<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "data"<br>
+// CHECK-NOT: !MDCompositeType(tag: DW_TAG_structure_type, name: "data"<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp Tue Mar  3 11:25:55 2015<br>
@@ -9,9 +9,29 @@ B b;<br>
 C c;<br>
 D d;<br>
<br>
-// CHECK: ; [ DW_TAG_enumeration_type ] [A] [line 3, size 32, align 32, offset 0] [def] [from int]<br>
-// CHECK: ; [ DW_TAG_enumeration_type ] [B] [line 4, size 64, align 64, offset 0] [def] [from long unsigned int]<br>
-// CHECK: ; [ DW_TAG_enumeration_type ] [C] [line 5, size 32, align 32, offset 0] [def] [from ]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "A"<br>
+// CHECK-SAME:             line: 3<br>
+// CHECK-SAME:             baseType: ![[INT:[0-9]+]]<br>
+// CHECK-SAME:             size: 32, align: 32<br>
+// CHECK-NOT:              offset:<br>
+// CHECK-NOT:              flags:<br>
+// CHECK-SAME:             ){{$}}<br>
+// CHECK: ![[INT]] = !MDBasicType(name: "int"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "B"<br>
+// CHECK-SAME:             line: 4<br>
+// CHECK-SAME:             baseType: ![[ULONG:[0-9]+]]<br>
+// CHECK-SAME:             size: 64, align: 64<br>
+// CHECK-NOT:              offset:<br>
+// CHECK-NOT:              flags:<br>
+// CHECK-SAME:             ){{$}}<br>
+// CHECK: ![[ULONG]] = !MDBasicType(name: "long unsigned int"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "C"<br>
+// CHECK-SAME:             line: 5<br>
+// CHECK-NOT:              baseType:<br>
+// CHECK-SAME:             size: 32, align: 32<br>
+// CHECK-NOT:              offset:<br>
+// CHECK-NOT:              flags:<br>
+// CHECK-SAME:             ){{$}}<br>
<br>
 namespace PR14029 {<br>
   // Make sure this doesn't crash/assert.<br>
@@ -29,10 +49,13 @@ namespace PR14029 {<br>
<br>
 namespace test2 {<br>
 // FIXME: this should just be a declaration under -fno-standalone-debug<br>
-// CHECK:  !"0x4\00{{.*}}", {{[^,]*}}, [[TEST2:![0-9]*]], {{.*}}, [[TEST_ENUMS:![0-9]*]], null, null, !"_ZTSN5test21EE"} ; [ DW_TAG_enumeration_type ] [E]<br>
-// CHECK: [[TEST2]] = {{.*}} ; [ DW_TAG_namespace ] [test2]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "E"<br>
+// CHECK-SAME:             scope: [[TEST2:![0-9]+]]<br>
+// CHECK-SAME:             elements: [[TEST_ENUMS:![0-9]+]]<br>
+// CHECK-SAME:             identifier: "_ZTSN5test21EE"<br>
+// CHECK: [[TEST2]] = !MDNamespace(name: "test2"<br>
 // CHECK: [[TEST_ENUMS]] = !{[[TEST_E:![0-9]*]]}<br>
-// CHECK: [[TEST_E]] = !{!"0x28\00e\000"} ; [ DW_TAG_enumerator ] [e :: 0]<br>
+// CHECK: [[TEST_E]] = !MDEnumerator(name: "e", value: 0)<br>
 enum E : int;<br>
 void func(E *) {<br>
 }<br>
@@ -41,16 +64,22 @@ enum E : int { e };<br>
<br>
 namespace test3 {<br>
 // FIXME: this should just be a declaration under -fno-standalone-debug<br>
-// CHECK:  !"0x4\00{{.*}}", {{[^,]*}}, [[TEST3:![0-9]*]], {{.*}}, [[TEST_ENUMS]], null, null, !"_ZTSN5test31EE"} ; [ DW_TAG_enumeration_type ] [E]<br>
-// CHECK: [[TEST3]] = {{.*}} ; [ DW_TAG_namespace ] [test3]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "E"<br>
+// CHECK-SAME:             scope: [[TEST3:![0-9]+]]<br>
+// CHECK-SAME:             elements: [[TEST_ENUMS]]<br>
+// CHECK-SAME:             identifier: "_ZTSN5test31EE"<br>
+// CHECK: [[TEST3]] = !MDNamespace(name: "test3"<br>
 enum E : int { e };<br>
 void func(E *) {<br>
 }<br>
 }<br>
<br>
 namespace test4 {<br>
-// CHECK:  !"0x4\00{{.*}}", {{[^,]*}}, [[TEST4:![0-9]*]], {{.*}}, [[TEST_ENUMS]], null, null, !"_ZTSN5test41EE"} ; [ DW_TAG_enumeration_type ] [E]<br>
-// CHECK: [[TEST4]] = {{.*}} ; [ DW_TAG_namespace ] [test4]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "E"<br>
+// CHECK-SAME:             scope: [[TEST4:![0-9]+]]<br>
+// CHECK-SAME:             elements: [[TEST_ENUMS]]<br>
+// CHECK-SAME:             identifier: "_ZTSN5test41EE"<br>
+// CHECK: [[TEST4]] = !MDNamespace(name: "test4"<br>
 enum E : int;<br>
 void f1(E *) {<br>
 }<br>
@@ -59,11 +88,18 @@ void f2(E) {<br>
 }<br>
 }<br>
<br>
-// CHECK: ; [ DW_TAG_enumeration_type ] [D] [line 6, size 16, align 16, offset 0] [decl] [from ]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "D"<br>
+// CHECK-SAME:             line: 6<br>
+// CHECK-SAME:             size: 16, align: 16<br>
+// CHECK-NOT:              offset:<br>
+// CHECK-SAME:             flags: DIFlagFwdDecl<br>
<br>
 namespace test5 {<br>
-// CHECK:  !"0x4\00{{.*}}", {{[^,]*}}, [[TEST5:![0-9]*]], {{.*}}, null, null, null, !"_ZTSN5test51EE"} ; [ DW_TAG_enumeration_type ] [E]<br>
-// CHECK: [[TEST5]] = {{.*}} ; [ DW_TAG_namespace ] [test5]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "E"<br>
+// CHECK-SAME:             scope: [[TEST5:![0-9]+]]<br>
+// CHECK-SAME:             flags: DIFlagFwdDecl<br>
+// CHECK-SAME:             identifier: "_ZTSN5test51EE"<br>
+// CHECK: [[TEST5]] = !MDNamespace(name: "test5"<br>
 enum E : int;<br>
 void f1(E *) {<br>
 }<br>
@@ -73,7 +109,7 @@ namespace test6 {<br>
 // Ensure typedef'd enums aren't manifest by debug info generation.<br>
 // This could cause "typedef changes linkage of anonymous type, but linkage was<br>
 // already computed" errors.<br>
-// CHECK-NOT: test7<br>
+// CHECK-NOT: test6<br>
 typedef enum {<br>
 } E;<br>
 }<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,13 +1,17 @@<br>
 // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -g %s -o - | FileCheck %s<br>
<br>
-// CHECK: !"0x11\00{{.*}}", {{[^,]*}}, [[ENUMS:![0-9]*]], {{.*}}} ; [ DW_TAG_compile_unit ]<br>
+// CHECK: !MDCompileUnit(<br>
+// CHECK-SAME:           enums: [[ENUMS:![0-9]*]]<br>
 // CHECK: [[ENUMS]] = !{[[E1:![0-9]*]], [[E2:![0-9]*]], [[E3:![0-9]*]]}<br>
<br>
 namespace test1 {<br>
-// CHECK: [[E1]] = !{!"0x4\00{{.*}}", {{[^,]*}}, [[TEST1:![0-9]*]], {{.*}}, [[TEST1_ENUMS:![0-9]*]], null, null, !"_ZTSN5test11eE"} ; [ DW_TAG_enumeration_type ] [e]<br>
-// CHECK: [[TEST1]] = {{.*}} ; [ DW_TAG_namespace ] [test1]<br>
+// CHECK: [[E1]] = !MDCompositeType(tag: DW_TAG_enumeration_type, name: "e"<br>
+// CHECK-SAME:                      scope: [[TEST1:![0-9]*]]<br>
+// CHECK-SAME:                      elements: [[TEST1_ENUMS:![0-9]*]]<br>
+// CHECK-SAME:                      identifier: "_ZTSN5test11eE"<br>
+// CHECK: [[TEST1]] = !MDNamespace(name: "test1"<br>
 // CHECK: [[TEST1_ENUMS]] = !{[[TEST1_E:![0-9]*]]}<br>
-// CHECK: [[TEST1_E]] = !{!"0x28\00E\000"} ; [ DW_TAG_enumerator ] [E :: 0]<br>
+// CHECK: [[TEST1_E]] = !MDEnumerator(name: "E", value: 0)<br>
 enum e { E };<br>
 void foo() {<br>
   int v = E;<br>
@@ -16,8 +20,11 @@ void foo() {<br>
<br>
 namespace test2 {<br>
 // rdar://8195980<br>
-// CHECK: [[E2]] = !{!"0x4\00{{.*}}", {{[^,]*}}, [[TEST2:![0-9]*]], {{.*}}, [[TEST1_ENUMS]], null, null, !"_ZTSN5test21eE"} ; [ DW_TAG_enumeration_type ] [e]<br>
-// CHECK: [[TEST2]] = {{.*}} ; [ DW_TAG_namespace ] [test2]<br>
+// CHECK: [[E2]] = !MDCompositeType(tag: DW_TAG_enumeration_type, name: "e"<br>
+// CHECK-SAME:                      scope: [[TEST2:![0-9]+]]<br>
+// CHECK-SAME:                      elements: [[TEST1_ENUMS]]<br>
+// CHECK-SAME:                      identifier: "_ZTSN5test21eE"<br>
+// CHECK: [[TEST2]] = !MDNamespace(name: "test2"<br>
 enum e { E };<br>
 bool func(int i) {<br>
   return i == E;<br>
@@ -25,10 +32,13 @@ bool func(int i) {<br>
 }<br>
<br>
 namespace test3 {<br>
-// CHECK: [[E3]] = !{!"0x4\00{{.*}}", {{[^,]*}}, [[TEST3:![0-9]*]], {{.*}}, [[TEST3_ENUMS:![0-9]*]], null, null, !"_ZTSN5test31eE"} ; [ DW_TAG_enumeration_type ] [e]<br>
-// CHECK: [[TEST3]] = {{.*}} ; [ DW_TAG_namespace ] [test3]<br>
+// CHECK: [[E3]] = !MDCompositeType(tag: DW_TAG_enumeration_type, name: "e"<br>
+// CHECK-SAME:                      scope: [[TEST3:![0-9]*]]<br>
+// CHECK-SAME:                      elements: [[TEST3_ENUMS:![0-9]*]]<br>
+// CHECK-SAME:                      identifier: "_ZTSN5test31eE"<br>
+// CHECK: [[TEST3]] = !MDNamespace(name: "test3"<br>
 // CHECK: [[TEST3_ENUMS]] = !{[[TEST3_E:![0-9]*]]}<br>
-// CHECK: [[TEST3_E]] = !{!"0x28\00E\00-1"} ; [ DW_TAG_enumerator ] [E :: -1]<br>
+// CHECK: [[TEST3_E]] = !MDEnumerator(name: "E", value: -1)<br>
 enum e { E = -1 };<br>
 void func() {<br>
   e x;<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-flex-member.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-flex-member.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-flex-member.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-flex-member.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-flex-member.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,6 +1,6 @@<br>
 // RUN: %clang_cc1 -emit-llvm -g -triple x86_64-apple-darwin %s -o - | FileCheck %s<br>
<br>
-// CHECK:  !"0x21\000\00-1"}        ; [ DW_TAG_subrange_type ]<br>
+// CHECK: !MDSubrange(count: -1)<br>
<br>
 struct StructName {<br>
   int member[];<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-fn-template.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-fn-template.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-fn-template.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-fn-template.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-fn-template.cpp Tue Mar  3 11:25:55 2015<br>
@@ -10,6 +10,6 @@ T fx(XF<T> xi) {<br>
   return xi.member;<br>
 }<br>
<br>
-//CHECK: XF<int><br>
-//CHECK: DW_TAG_template_type_parameter<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "XF<int>"<br>
+// CHECK: !MDTemplateTypeParameter(name: "T"<br>
 template int fx(XF<int>);<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-function-context.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-function-context.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-function-context.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-function-context.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-function-context.cpp Tue Mar  3 11:25:55 2015<br>
@@ -25,12 +25,12 @@ int global_namespace_variable = 1;<br>
 // functions that belong to the namespace have it as a context, and the global<br>
 // function has the file as a context.<br>
<br>
-// CHECK: !"0x2e\00member_function\00{{.*}}", !{{[0-9]+}}, !"_ZTS1C"{{.*}} [ DW_TAG_subprogram ] [line 11] [def] [member_function]<br>
+// CHECK: ![[FILE:[0-9]+]] = !MDFile(filename: "{{.*}}context.cpp",<br>
+// CHECK: !MDSubprogram(name: "member_function",{{.*}} scope: !"_ZTS1C",{{.*}} isDefinition: true<br>
<br>
-// CHECK: !"0x2e\00static_member_function\00{{.*}}", !{{[0-9]+}}, !"_ZTS1C"{{.*}}  [ DW_TAG_subprogram ] [line 13] [def] [static_member_function]<br>
+// CHECK: !MDSubprogram(name: "static_member_function",{{.*}} scope: !"_ZTS1C",{{.*}} isDefinition: true<br>
<br>
-// CHECK: !"0x2e\00global_function\00{{[^,]+}}", !{{[0-9]+}}, [[FILE:![0-9]*]]{{.*}}  [ DW_TAG_subprogram ] [line 17] [def] [global_function]<br>
-// CHECK: [[FILE]] = {{.*}} [ DW_TAG_file_type ]<br>
+// CHECK: !MDSubprogram(name: "global_function",{{.*}} scope: ![[FILE]],{{.*}} isDefinition: true<br>
<br>
-// CHECK: !"0x2e\00global_namespace_function\00{{[^,]+}}", !{{[0-9]+}}, [[NS:![0-9]*]]{{.*}} [ DW_TAG_subprogram ] [line 20] [def] [global_namespace_function]<br>
-// CHECK: [[NS]] = {{.*}} [ DW_TAG_namespace ] [ns] [line 19]<br>
+// CHECK: !MDSubprogram(name: "global_namespace_function",{{.*}} scope: ![[NS:[0-9]+]],{{.*}} isDefinition: true<br>
+// CHECK: ![[NS]] = !MDNamespace(name: "ns"<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp Tue Mar  3 11:25:55 2015<br>
@@ -18,7 +18,8 @@ int main(int argc, char** argv) {<br>
<br>
 // Make sure we have two DW_TAG_structure_types for baz and bar and no forward<br>
 // references.<br>
-// CHECK-NOT: [fwd]<br>
-// CHECK: [ DW_TAG_structure_type ] [bar]<br>
-// CHECK: [ DW_TAG_structure_type ] [baz]<br>
-// CHECK-NOT: [fwd]<br>
+// CHECK-NOT: DIFlagFwdDecl<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "bar"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "baz"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp Tue Mar  3 11:25:55 2015<br>
@@ -16,12 +16,12 @@ void foo() {<br>
   static A stat;<br>
 }<br>
<br>
-// CHECK-NOKEXT: [ DW_TAG_subprogram ] [line 12] [local] [def] [__cxx_global_var_init]<br>
-// CHECK-NOKEXT: [ DW_TAG_subprogram ] [line 12] [local] [def] [__dtor_glob]<br>
-// CHECK-NOKEXT: [ DW_TAG_subprogram ] [line 13] [local] [def] [__cxx_global_var_init1]<br>
-// CHECK-NOKEXT: [ DW_TAG_subprogram ] [line 13] [local] [def] [__cxx_global_array_dtor]<br>
-// CHECK-NOKEXT: [ DW_TAG_subprogram ] [line 13] [local] [def] [__dtor_array]<br>
-// CHECK-NOKEXT: [ DW_TAG_subprogram ] [line 16] [local] [def] [__dtor__ZZ3foovE4stat]<br>
-// CHECK-NOKEXT: [ DW_TAG_subprogram ] [line {{.*}}] [local] [def]{{$}}<br>
+// CHECK-NOKEXT: !MDSubprogram(name: "__cxx_global_var_init",{{.*}} line: 12,{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK-NOKEXT: !MDSubprogram(name: "__dtor_glob",{{.*}} line: 12,{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK-NOKEXT: !MDSubprogram(name: "__cxx_global_var_init1",{{.*}} line: 13,{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK-NOKEXT: !MDSubprogram(name: "__cxx_global_array_dtor",{{.*}} line: 13,{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK-NOKEXT: !MDSubprogram(name: "__dtor_array",{{.*}} line: 13,{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK-NOKEXT: !MDSubprogram(name: "__dtor__ZZ3foovE4stat",{{.*}} line: 16,{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK-NOKEXT: !MDSubprogram({{.*}} isLocal: true, isDefinition: true<br>
<br>
-// CHECK-KEXT: [ DW_TAG_subprogram ] [line {{.*}}] [local] [def]{{$}}<br>
+// CHECK-KEXT: !MDSubprogram({{.*}} isLocal: true, isDefinition: true<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-global.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-global.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-global.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-global.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-global.cpp Tue Mar  3 11:25:55 2015<br>
@@ -10,10 +10,12 @@ int f1() {<br>
   return ns::cnst + ns::cnst;<br>
 }<br>
<br>
-// CHECK: !"0x11\00{{.*}}"{{.*}}, [[GLOBALS:![0-9]*]], {{![0-9]*}}} ; [ DW_TAG_compile_unit ]<br>
+// CHECK: !MDCompileUnit(<br>
+// CHECK-SAME:           globals: [[GLOBALS:![0-9]*]]<br>
<br>
 // CHECK: [[GLOBALS]] = !{[[CNST:![0-9]*]]}<br>
<br>
-// CHECK: [[CNST]] = !{!"0x34\00cnst\00{{.*}}", [[NS:![0-9]*]], {{[^,]+, [^,]+, [^,]+, [^,]+}}} ; [ DW_TAG_variable ] [cnst]<br>
-// CHECK: [[NS]] = {{.*}}; [ DW_TAG_namespace ] [ns]<br>
+// CHECK: [[CNST]] = !MDGlobalVariable(name: "cnst",<br>
+// CHECK-SAME:                         scope: [[NS:![0-9]*]]<br>
+// CHECK: [[NS]] = !MDNamespace(name: "ns"<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-indirect-field-decl.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-indirect-field-decl.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-indirect-field-decl.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-indirect-field-decl.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-indirect-field-decl.cpp Tue Mar  3 11:25:55 2015<br>
@@ -7,9 +7,18 @@ template <class T, int T::*ptr> class Fo<br>
<br>
 struct Bar {<br>
   int i1;<br>
-  // CHECK: [ DW_TAG_member ] [line [[@LINE+1]], size 32, align 32, offset 32] [from _ZTSN3BarUt_E]<br>
+  // CHECK: ![[INT:[0-9]+]] = !MDBasicType(name: "int"<br>
+  // CHECK: !MDDerivedType(tag: DW_TAG_member, scope:<br>
+  // CHECK-SAME:           line: [[@LINE+3]]<br>
+  // CHECK-SAME:           baseType: !"_ZTSN3BarUt_E"<br>
+  // CHECK-SAME:           size: 32, align: 32, offset: 32<br>
   union {<br>
-    // CHECK: [ DW_TAG_member ] [i2] [line [[@LINE+1]], size 32, align 32, offset 0] [from int]<br>
+    // CHECK: !MDDerivedType(tag: DW_TAG_member, name: "i2",<br>
+    // CHECK-SAME:           line: [[@LINE+5]]<br>
+    // CHECK-SAME:           baseType: ![[INT]]<br>
+    // CHECK-SAME:           size: 32, align: 32<br>
+    // CHECK-NOT:            offset:<br>
+    // CHECK-SAME:           ){{$}}<br>
     int i2;<br>
   };<br>
 };<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-limited.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-limited.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-limited.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-limited.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-limited.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,6 +1,8 @@<br>
 // RUN: %clang -flimit-debug-info -emit-llvm -g -S %s -o - | FileCheck %s<br>
<br>
-// CHECK: ; [ DW_TAG_class_type ] [A] {{.*}} [def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_class_type, name: "A"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             ){{$}}<br>
 class A {<br>
 public:<br>
   int z;<br>
@@ -11,7 +13,9 @@ A *foo (A* x) {<br>
   return a;<br>
 }<br>
<br>
-// CHECK: ; [ DW_TAG_class_type ] [B] {{.*}} [def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_class_type, name: "B"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             ){{$}}<br>
<br>
 class B {<br>
 public:<br>
@@ -24,7 +28,8 @@ int baz(B *b) {<br>
 }<br>
<br>
<br>
-// CHECK: ; [ DW_TAG_structure_type ] [C] {{.*}} [decl]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "C"<br>
+// CHECK-SAME:             flags: DIFlagFwdDecl<br>
<br>
 struct C {<br>
 };<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-method.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-method.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-method.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-method.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-method.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,14 +1,16 @@<br>
 // RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -std=c++11 -g %s -o - | FileCheck %s<br>
-// CHECK: !"_ZTS1A"} ; [ DW_TAG_class_type ] [A]<br>
-// CHECK: !"{{.*}}\00_ZN1A3fooEiS_3$_0\00{{.*}}", {{.*}} [protected]<br>
-// CHECK: ![[THISTYPE:[0-9]+]] = {{.*}} ; [ DW_TAG_pointer_type ] {{.*}} [artificial] [from _ZTS1A]<br>
-// CHECK: [ DW_TAG_ptr_to_member_type ] [line {{[0-9]+}}, size {{[1-9][0-9]+}}, align<br>
-// CHECK: {{.*}}![[MEMFUNTYPE:[0-9]+]], !{{.*}}} ; [ DW_TAG_ptr_to_member_type ] {{.*}} [from ]<br>
-// CHECK: ![[MEMFUNTYPE]] = {{.*}}![[MEMFUNARGS:[0-9]+]], null, null, null} ; [ DW_TAG_subroutine_type ] {{.*}} [from ]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_class_type, name: "A",{{.*}} identifier: "_ZTS1A")<br>
+// CHECK: !MDSubprogram(name: "foo", linkageName: "_ZN1A3fooEiS_3$_0"<br>
+// CHECK-SAME:          DIFlagProtected<br>
+// CHECK: ![[THISTYPE:[0-9]+]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1A"<br>
+// CHECK-SAME:                                  DIFlagArtificial<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_ptr_to_member_type<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: ![[MEMFUNTYPE:[0-9]+]]<br>
+// CHECK: ![[MEMFUNTYPE]] = !MDSubroutineType(types: ![[MEMFUNARGS:[0-9]+]])<br>
 // CHECK: ![[MEMFUNARGS]] = {{.*}}, ![[THISTYPE]],<br>
-// CHECK: !"0x101\00\00{{.*}}"{{.*}} DW_TAG_arg_variable<br>
-// CHECK: !"0x101\00\00{{.*}}"{{.*}} DW_TAG_arg_variable<br>
-// CHECK: !"0x101\00\00{{.*}}"{{.*}} DW_TAG_arg_variable<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable<br>
 union {<br>
   int a;<br>
   float b;<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp Tue Mar  3 11:25:55 2015<br>
@@ -55,47 +55,61 @@ void B::func_fwd() {}<br>
 // This should work even if 'i' and 'func' were declarations & not definitions,<br>
 // but it doesn't yet.<br>
<br>
-// CHECK: [[CU:![0-9]*]] = !{!"0x11\00{{.*}}\001"{{.*}}, [[MODULES:![0-9]*]]} ; [ DW_TAG_compile_unit ]<br>
-// CHECK: [[FOO:![0-9]*]] {{.*}} ; [ DW_TAG_structure_type ] [foo] [line 5, size 0, align 0, offset 0] [decl] [from ]<br>
-// CHECK: [[FOOCPP:![0-9]*]] = !{!"foo.cpp", {{.*}}<br>
-// CHECK: [[NS:![0-9]*]] = !{!"0x39\00B\001", [[FILE2:![0-9]*]], [[CTXT:![0-9]*]]} ; [ DW_TAG_namespace ] [B] [line 1]<br>
-// CHECK: [[CTXT]] = !{!"0x39\00A\005", [[FILE:![0-9]*]], null} ; [ DW_TAG_namespace ] [A] [line 5]<br>
-// CHECK: [[FILE]] {{.*}}debug-info-namespace.cpp"<br>
-// CHECK: [[BAR:![0-9]*]] {{.*}} ; [ DW_TAG_structure_type ] [bar] [line 6, {{.*}}] [decl] [from ]<br>
-// CHECK: [[F1:![0-9]*]] {{.*}} ; [ DW_TAG_subprogram ] [line 4] [def] [f1]<br>
-// CHECK: [[FILE2]]} ; [ DW_TAG_file_type ] [{{.*}}foo.cpp]<br>
-// CHECK: [[FUNC:![0-9]*]] {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [def] [func]<br>
-// CHECK: [[FUNC_FWD:![0-9]*]] {{.*}} [ DW_TAG_subprogram ] [line 47] [def] [func_fwd]<br>
-// CHECK: [[I:![0-9]*]] = !{!"0x34\00i\00{{.*}}", [[NS]], {{.*}} ; [ DW_TAG_variable ] [i]<br>
-// CHECK: [[VAR_FWD:![0-9]*]] = !{!"0x34\00var_fwd\00{{.*}}", [[NS]], {{.*}}} ; [ DW_TAG_variable ] [var_fwd] [line 44] [def]<br>
+// CHECK: [[CU:![0-9]+]] = !MDCompileUnit(<br>
+// CHECK-SAME:                            imports: [[MODULES:![0-9]*]]<br>
+// CHECK: [[FOO:![0-9]+]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "foo",<br>
+// CHECK-SAME:                               line: 5<br>
+// CHECK-SAME:                               DIFlagFwdDecl<br>
+// CHECK: [[FOOCPP:![0-9]+]] = !MDFile(filename: "foo.cpp"<br>
+// CHECK: [[NS:![0-9]+]] = !MDNamespace(name: "B", scope: [[CTXT:![0-9]+]], file: [[FOOCPP]], line: 1)<br>
+// CHECK: [[CTXT]] = !MDNamespace(name: "A", scope: null, file: [[FILE:![0-9]+]], line: 5)<br>
+// CHECK: [[FILE]] = !MDFile(filename: "{{.*}}debug-info-namespace.cpp",<br>
+// CHECK: [[BAR:![0-9]+]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "bar",<br>
+// CHECK-SAME:                               line: 6<br>
+// CHECK-SAME:                               DIFlagFwdDecl<br>
+// CHECK: [[F1:![0-9]+]] = !MDSubprogram(name: "f1",{{.*}} line: 4<br>
+// CHECK-SAME:                           isDefinition: true<br>
+// CHECK: [[FUNC:![0-9]+]] = !MDSubprogram(name: "func",{{.*}} isDefinition: true<br>
+// CHECK: [[FUNC_FWD:![0-9]+]] = !MDSubprogram(name: "func_fwd",{{.*}} line: 47,{{.*}} isDefinition: true<br>
+// CHECK: [[I:![0-9]+]] = !MDGlobalVariable(name: "i",{{.*}} scope: [[NS]],<br>
+// CHECK: [[VAR_FWD:![0-9]+]] = !MDGlobalVariable(name: "var_fwd",{{.*}} scope: [[NS]],<br>
+// CHECK-SAME:                                    line: 44<br>
+// CHECK-SAME:                                    isDefinition: true<br>
<br>
-// CHECK: [[MODULES]] = !{[[M1:![0-9]*]], [[M2:![0-9]*]], [[M3:![0-9]*]], [[M4:![0-9]*]], [[M5:![0-9]*]], [[M6:![0-9]*]], [[M7:![0-9]*]], [[M8:![0-9]*]], [[M9:![0-9]*]], [[M10:![0-9]*]], [[M11:![0-9]*]], [[M12:![0-9]*]], [[M13:![0-9]*]], [[M14:![0-9]*]], [[M15:![0-9]*]], [[M16:![0-9]*]], [[M17:![0-9]*]]}<br>
-// CHECK: [[M1]] = !{!"0x3a\0015\00", [[CTXT]], [[NS]]} ; [ DW_TAG_imported_module ]<br>
-// CHECK: [[M2]] = !{!"0x3a\00{{[0-9]+}}\00", [[CU]], [[CTXT]]} ; [ DW_TAG_imported_module ]<br>
-// CHECK: [[M3]] = !{!"0x8\0019\00E", [[CU]], [[CTXT]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[M4]] = !{!"0x3a\0023\00", [[LEX2:![0-9]*]], [[NS]]} ; [ DW_TAG_imported_module ]<br>
-// CHECK: [[LEX2]] = !{!"0xb\00{{[0-9]*}}\000\00{{.*}}", [[FILE2]], [[LEX1:![0-9]+]]} ; [ DW_TAG_lexical_block ]<br>
-// CHECK: [[LEX1]] = !{!"0xb\00{{[0-9]*}}\000\00{{.*}}", [[FILE2]], [[FUNC]]} ; [ DW_TAG_lexical_block ]<br>
-// CHECK: [[M5]] = !{!"0x3a\00{{[0-9]+}}\00", [[FUNC]], [[CTXT]]} ; [ DW_TAG_imported_module ]<br>
-// CHECK: [[M6]] = !{!"0x8\0027\00", [[FUNC]], [[FOO:!"_ZTSN1A1B3fooE"]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[M7]] = !{!"0x8\00{{[0-9]+}}\00", [[FUNC]], [[BAR:!"_ZTSN1A1B3barE"]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[M8]] = !{!"0x8\00{{[0-9]+}}\00", [[FUNC]], [[F1]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[M9]] = !{!"0x8\00{{[0-9]+}}\00", [[FUNC]], [[I]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[M10]] = !{!"0x8\00{{[0-9]+}}\00", [[FUNC]], [[BAZ:![0-9]*]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[BAZ]] = !{!"0x16\00baz\00{{.*}}", [[FOOCPP]], [[NS]], !"_ZTSN1A1B3barE"} ; [ DW_TAG_typedef ] [baz] {{.*}} [from _ZTSN1A1B3barE]<br>
-// CHECK: [[M11]] = !{!"0x8\00{{[0-9]+}}\00X", [[FUNC]], [[CTXT]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[M12]] = !{!"0x8\00{{[0-9]+}}\00Y", [[FUNC]], [[M11]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[M13]] = !{!"0x8\00{{[0-9]+}}\00", [[FUNC]], [[VAR_DECL:![0-9]*]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK [[VAR_DECL]] = !{!"0x34\00var_decl\00{{.*}}", [[NS]], {{.*}}} ; [ DW_TAG_variable ] [var_decl] [line 8]<br>
-// CHECK: [[M14]] = !{!"0x8\00{{[0-9]+}}\00", [[FUNC]], [[FUNC_DECL:![0-9]*]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[FUNC_DECL]] = !{!"0x2e\00func_decl\00{{.*}}", [[FOOCPP]], [[NS]], {{.*}}} ; [ DW_TAG_subprogram ] [line 9] [scope 0] [func_decl]<br>
-// CHECK: [[M15]] = !{!"0x8\00{{[0-9]+}}\00", [[FUNC]], [[VAR_FWD:![0-9]*]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[M16]] = !{!"0x8\00{{[0-9]+}}\00", [[FUNC]], [[FUNC_FWD:![0-9]*]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK: [[M17]] = !{!"0x8\00{{[0-9]+}}\00", [[CTXT]], [[I]]} ; [ DW_TAG_imported_declaration ]<br>
-// CHECK-GMLT: [[CU:![0-9]*]] = !{!"0x11\00{{.*}}\002"{{.*}}, [[MODULES:![0-9]*]]} ; [ DW_TAG_compile_unit ]<br>
+// CHECK: [[MODULES]] = !{[[M1:![0-9]+]], [[M2:![0-9]+]], [[M3:![0-9]+]], [[M4:![0-9]+]], [[M5:![0-9]+]], [[M6:![0-9]+]], [[M7:![0-9]+]], [[M8:![0-9]+]], [[M9:![0-9]+]], [[M10:![0-9]+]], [[M11:![0-9]+]], [[M12:![0-9]+]], [[M13:![0-9]+]], [[M14:![0-9]+]], [[M15:![0-9]+]], [[M16:![0-9]+]], [[M17:![0-9]+]]}<br>
+// CHECK: [[M1]] = !MDImportedEntity(tag: DW_TAG_imported_module, scope: [[CTXT]], entity: [[NS]], line: 15)<br>
+// CHECK: [[M2]] = !MDImportedEntity(tag: DW_TAG_imported_module, scope: [[CU]], entity: [[CTXT]],<br>
+// CHECK: [[M3]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, name: "E", scope: [[CU]], entity: [[CTXT]], line: 19)<br>
+// CHECK: [[M4]] = !MDImportedEntity(tag: DW_TAG_imported_module, scope: [[LEX2:![0-9]+]], entity: [[NS]], line: 23)<br>
+// CHECK: [[LEX2]] = distinct !MDLexicalBlock(scope: [[LEX1:![0-9]+]], file: [[FOOCPP]],<br>
+// CHECK: [[LEX1]] = distinct !MDLexicalBlock(scope: [[FUNC]], file: [[FOOCPP]],<br>
+// CHECK: [[M5]] = !MDImportedEntity(tag: DW_TAG_imported_module, scope: [[FUNC]], entity: [[CTXT]],<br>
+// CHECK: [[M6]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[FOO:!"_ZTSN1A1B3fooE"]], line: 27)<br>
+// CHECK: [[M7]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[BAR:!"_ZTSN1A1B3barE"]]<br>
+// CHECK: [[M8]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[F1]]<br>
+// CHECK: [[M9]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[I]]<br>
+// CHECK: [[M10]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[BAZ:![0-9]+]]<br>
+// CHECK: [[BAZ]] = !MDDerivedType(tag: DW_TAG_typedef, name: "baz", scope: [[NS]], file: [[FOOCPP]],<br>
+// CHECK-SAME:                     baseType: !"_ZTSN1A1B3barE"<br>
+// CHECK: [[M11]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, name: "X", scope: [[FUNC]], entity: [[CTXT]]<br>
+// CHECK: [[M12]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, name: "Y", scope: [[FUNC]], entity: [[M11]]<br>
+// CHECK: [[M13]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[VAR_DECL:![0-9]+]]<br>
+// CHECK [[VAR_DECL]] = !MDGlobalVariable(name: "var_decl", scope: [[NS]],{{.*}} line: 8,<br>
+// CHECK: [[M14]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[FUNC_DECL:![0-9]+]]<br>
+// CHECK: [[FUNC_DECL]] = !MDSubprogram(name: "func_decl",<br>
+// CHECK-SAME:                          scope: [[NS]], file: [[FOOCPP]], line: 9<br>
+// CHECK: [[M15]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[VAR_FWD:![0-9]+]]<br>
+// CHECK: [[M16]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[FUNC_FWD:![0-9]+]]<br>
+// CHECK: [[M17]] = !MDImportedEntity(tag: DW_TAG_imported_declaration, scope: [[CTXT]], entity: [[I]]<br>
+<br>
+// CHECK-GMLT: [[CU:![0-9]+]] = !MDCompileUnit(<br>
+// CHECK-GMLT-SAME:                            emissionKind: 2,<br>
+// CHECK-GMLT-SAME:                            imports: [[MODULES:![0-9]+]]<br>
 // CHECK-GMLT: [[MODULES]] = !{}<br>
<br>
-// CHECK-NOLIMIT: ; [ DW_TAG_structure_type ] [bar] [line 6, {{.*}}] [def] [from ]<br>
+// CHECK-NOLIMIT: !MDCompositeType(tag: DW_TAG_structure_type, name: "bar",{{.*}} line: 6,<br>
+// CHECK-NOLIMIT-NOT:              DIFlagFwdDecl<br>
+// CHECK-NOLIMIT-SAME:             ){{$}}<br>
<br>
 // REQUIRES: shell-preserves-root<br>
 // REQUIRES: dw2<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-nullptr.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-nullptr.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-nullptr.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-nullptr.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-nullptr.cpp Tue Mar  3 11:25:55 2015<br>
@@ -4,4 +4,4 @@ void foo() {<br>
   decltype(nullptr) t = 0;<br>
 }<br>
<br>
-// CHECK: [ DW_TAG_unspecified_type ] [decltype(nullptr)]<br>
+// CHECK: !MDBasicType(tag: DW_TAG_unspecified_type, name: "decltype(nullptr)")<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-ptr-to-member-function.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-ptr-to-member-function.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-ptr-to-member-function.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-ptr-to-member-function.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-ptr-to-member-function.cpp Tue Mar  3 11:25:55 2015<br>
@@ -7,4 +7,5 @@ struct T {<br>
 void foo(int (T::*method)()) {}<br>
<br>
 // A pointer to a member function is a pair of function- and this-pointer.<br>
-// CHECK: [ DW_TAG_ptr_to_member_type ] {{.*}} size 128<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_ptr_to_member_type,<br>
+// CHECK-SAME:           size: 128<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-qualifiers.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-qualifiers.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-qualifiers.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-qualifiers.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-qualifiers.cpp Tue Mar  3 11:25:55 2015<br>
@@ -2,25 +2,35 @@<br>
 // Test (r)value and CVR qualifiers on C++11 non-static member functions.<br>
 class A {<br>
 public:<br>
-  // CHECK: !"0x2e\00l\00{{.*}}\00[[@LINE+2]]"{{, [^,]+, [^,]+}}, ![[PLSR:[0-9]+]], {{.*}}[ DW_TAG_subprogram ] [line [[@LINE+2]]] [public] [reference] [l]<br>
-  // CHECK: ![[PLSR]] ={{.*}}[ DW_TAG_subroutine_type ]{{.*}}[reference]<br>
+  // CHECK: !MDSubprogram(name: "l",<br>
+  // CHECK-SAME:          line: [[@LINE+4]]<br>
+  // CHECK-SAME:          type: ![[PLSR:[0-9]+]]<br>
+  // CHECK-SAME:          flags: DIFlagPublic | DIFlagPrototyped | DIFlagLValueReference,<br>
+  // CHECK: ![[PLSR]] = !MDSubroutineType(flags: DIFlagLValueReference, types: ![[ARGS:[0-9]+]])<br>
   void l() const &;<br>
-  // CHECK: ![[ARGS:[0-9]+]] = !{null, ![[THIS:[0-9]+]]}<br>
-  // CHECK: ![[THIS]] = {{.*}} ![[CONST_A:.*]]} ; [ DW_TAG_pointer_type ]<br>
-  // CHECK: ![[CONST_A]] = {{.*}} [ DW_TAG_const_type ]<br>
-  // CHECK: !"0x2e\00r\00{{.*}}\00[[@LINE+2]]"{{, [^,]+, [^,]+}}, ![[PRSR:[0-9]+]], {{.*}}[ DW_TAG_subprogram ] [line [[@LINE+2]]] [public] [rvalue reference] [r]<br>
-  // CHECK: ![[PRSR]] ={{.*}}![[ARGS]], null, null, null}{{.*}}[ DW_TAG_subroutine_type ]{{.*}}[rvalue reference]<br>
+  // CHECK: ![[ARGS]] = !{null, ![[THIS:[0-9]+]]}<br>
+  // CHECK: ![[THIS]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: ![[CONST_A:[0-9]+]]<br>
+  // CHECK: ![[CONST_A]] = !MDDerivedType(tag: DW_TAG_const_type<br>
+  // CHECK: !MDSubprogram(name: "r"<br>
+  // CHECK-SAME:          line: [[@LINE+4]]<br>
+  // CHECK-SAME:          type: ![[PRSR:[0-9]+]]<br>
+  // CHECK-SAME:          flags: DIFlagPublic | DIFlagPrototyped | DIFlagRValueReference,<br>
+  // CHECK: ![[PRSR]] = !MDSubroutineType(flags: DIFlagRValueReference, types: ![[ARGS]])<br>
   void r() const &&;<br>
 };<br>
<br>
 void g() {<br>
   A a;<br>
   // The type of pl is "void (A::*)() const &".<br>
-  // CHECK: ![[PL:[0-9]+]]} ; [ DW_TAG_auto_variable ] [pl] [line [[@LINE+2]]]<br>
-  // CHECK: ![[PLSR]], !"{{.*}}"} ; [ DW_TAG_ptr_to_member_type ]<br>
+  // CHECK: !MDLocalVariable(tag: DW_TAG_auto_variable, name: "pl",<br>
+  // CHECK-SAME:             line: [[@LINE+3]]<br>
+  // CHECK-SAME:             type: ![[PL:[0-9]+]]<br>
+  // CHECK: !MDDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: ![[PLSR]]<br>
   auto pl = &A::l;<br>
<br>
-  // CHECK: ![[PR:[0-9]+]]} ; [ DW_TAG_auto_variable ] [pr] [line [[@LINE+2]]]<br>
-  // CHECK: ![[PRSR]], !"{{.*}}"} ; [ DW_TAG_ptr_to_member_type ]<br>
+  // CHECK: !MDLocalVariable(tag: DW_TAG_auto_variable, name: "pr",<br>
+  // CHECK-SAME:             line: [[@LINE+3]]<br>
+  // CHECK-SAME:             type: ![[PR:[0-9]+]]<br>
+  // CHECK: !MDDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: ![[PRSR]]<br>
   auto pr = &A::r;<br>
 }<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-rvalue-ref.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-rvalue-ref.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-rvalue-ref.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-rvalue-ref.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-rvalue-ref.cpp Tue Mar  3 11:25:55 2015<br>
@@ -8,4 +8,5 @@ void foo (int &&i)<br>
   printf("%d\n", i);<br>
 }<br>
<br>
-// CHECK:  !"0x42\00\000\000\000\000\000", null, null, !{{.*}}} ; [ DW_TAG_rvalue_reference_type ]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_rvalue_reference_type, baseType: ![[INT:[0-9]+]])<br>
+// CHECK: ![[INT]] = !MDBasicType(name: "int"<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-scope.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-scope.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-scope.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-scope.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-scope.cpp Tue Mar  3 11:25:55 2015<br>
@@ -9,47 +9,64 @@ int src();<br>
 void f();<br>
<br>
 void func() {<br>
-  // CHECK: = !{!"0x100\00{{.*}}", [[IF1:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [i] [line [[@LINE+2]]]<br>
-  // CHECK: [[IF1]] = !{!"0xb\00[[@LINE+1]]\00{{.*}}", !{{.*}}} ; [ DW_TAG_lexical_block ]<br>
+  // CHECK: = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "i"<br>
+  // CHECK-SAME:               scope: [[IF1:![0-9]*]]<br>
+  // CHECK-SAME:               line: [[@LINE+2]]<br>
+  // CHECK: [[IF1]] = distinct !MDLexicalBlock({{.*}}line: [[@LINE+1]])<br>
   if (int i = src())<br>
     f();<br>
<br>
-  // CHECK: = !{!"0x100\00{{.*}}", [[IF2:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [i] [line [[@LINE+2]]]<br>
-  // CHECK: [[IF2]] = !{!"0xb\00[[@LINE+1]]\00{{.*}}", !{{.*}}} ; [ DW_TAG_lexical_block ]<br>
+  // CHECK: = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "i"<br>
+  // CHECK-SAME:               scope: [[IF2:![0-9]*]]<br>
+  // CHECK-SAME:               line: [[@LINE+2]]<br>
+  // CHECK: [[IF2]] = distinct !MDLexicalBlock({{.*}}line: [[@LINE+1]])<br>
   if (int i = src()) {<br>
     f();<br>
   } else<br>
     f();<br>
<br>
-  // CHECK: = !{!"0x100\00{{.*}}", [[FOR:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [i] [line [[@LINE+2]]]<br>
-  // CHECK: [[FOR]] = !{!"0xb\00[[@LINE+1]]\00{{.*}}", !{{.*}}} ; [ DW_TAG_lexical_block ]<br>
+  // CHECK: = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "i"<br>
+  // CHECK-SAME:               scope: [[FOR:![0-9]*]]<br>
+  // CHECK-SAME:               line: [[@LINE+2]]<br>
+  // CHECK: [[FOR]] = distinct !MDLexicalBlock({{.*}}line: [[@LINE+1]])<br>
   for (int i = 0;<br>
-  // CHECK: = !{!"0x100\00{{.*}}", [[FOR_BODY:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [b] [line [[@LINE+6]]]<br>
+  // CHECK: = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "b"<br>
+  // CHECK-SAME:               scope: [[FOR_BODY:![0-9]*]]<br>
+  // CHECK-SAME:               line: [[@LINE+6]]<br>
+  // CHECK: [[FOR_BODY]] = distinct !MDLexicalBlock({{.*}}line: [[@LINE-4]])<br>
   // The scope could be located at 'bool b', but LLVM drops line information for<br>
   // scopes anyway, so it's not terribly important.<br>
   // FIXME: change the debug info schema to not include locations of scopes,<br>
   // since they're not used.<br>
-  // CHECK: [[FOR_BODY]] = !{!"0xb\00[[@LINE-6]]\00{{.*}}", !{{.*}}} ; [ DW_TAG_lexical_block ]<br>
        bool b = i != 10; ++i)<br>
     f();<br>
<br>
-  // CHECK: = !{!"0x100\00{{.*}}", [[FOR:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [i] [line [[@LINE+2]]]<br>
-  // CHECK: [[FOR]] = !{!"0xb\00[[@LINE+1]]\00{{.*}}", !{{.*}}} ; [ DW_TAG_lexical_block ]<br>
+  // CHECK: = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "i"<br>
+  // CHECK-SAME:               scope: [[FOR:![0-9]*]]<br>
+  // CHECK-SAME:               line: [[@LINE+2]]<br>
+  // CHECK: [[FOR]] = distinct !MDLexicalBlock({{.*}}line: [[@LINE+1]])<br>
   for (int i = 0; i != 10; ++i) {<br>
     // FIXME: Do not include scopes that have only other scopes (and no variables<br>
     // or using declarations) as direct children, they just waste<br>
     // space/relocations/etc.<br>
-    // CHECK: [[FOR_LOOP_INCLUDING_COND:!.*]] = !{!"0xb\00[[@LINE-4]]\00{{.*}}", !{{[0-9]+}}, [[FOR]]} ; [ DW_TAG_lexical_block ]<br>
-    // CHECK: = !{!"0x100\00{{.*}}", [[FOR_COMPOUND:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [b] [line [[@LINE+2]]]<br>
-    // CHECK: [[FOR_COMPOUND]] = !{!"0xb\00[[@LINE-6]]\00{{.*}}", !{{[0-9]+}}, [[FOR_LOOP_INCLUDING_COND]]} ; [ DW_TAG_lexical_block ]<br>
+    // CHECK: [[FOR_LOOP_INCLUDING_COND:!.*]] = distinct !MDLexicalBlock(scope: [[FOR]],{{.*}} line: [[@LINE-4]])<br>
+    // CHECK: = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "b"<br>
+    // CHECK-SAME:               scope: [[FOR_COMPOUND:![0-9]*]]<br>
+    // CHECK-SAME:               line: [[@LINE+2]]<br>
+    // CHECK: [[FOR_COMPOUND]] = distinct !MDLexicalBlock(scope: [[FOR_LOOP_INCLUDING_COND]],{{.*}} line: [[@LINE-8]])<br>
     bool b = i % 2;<br>
   }<br>
<br>
   int x[] = {1, 2};<br>
-  // CHECK: = !{!"0x100\00{{.*}}", [[RANGE_FOR:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [__range] [line 0]<br>
-  // CHECK: [[RANGE_FOR]] = !{!"0xb\00[[@LINE+1]]\00{{.*}}", !{{.*}}} ; [ DW_TAG_lexical_block ]<br>
+  // CHECK: = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "__range"<br>
+  // CHECK-SAME:               scope: [[RANGE_FOR:![0-9]*]]<br>
+  // CHECK-NOT:                line:<br>
+  // CHECK-SAME:               ){{$}}<br>
+  // CHECK: [[RANGE_FOR]] = distinct !MDLexicalBlock({{.*}}, line: [[@LINE+1]])<br>
   for (int i : x) {<br>
-  // CHECK: = !{!"0x100\00{{.*}}", [[RANGE_FOR_BODY:![0-9]*]], {{.*}} ; [ DW_TAG_auto_variable ] [i] [line [[@LINE-1]]]<br>
-  // CHECK: [[RANGE_FOR_BODY]] = !{!"0xb\00[[@LINE-2]]\00{{.*}}", !{{[0-9]+}}, [[RANGE_FOR]]} ; [ DW_TAG_lexical_block ]<br>
+    // CHECK: = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "i"<br>
+    // CHECK-SAME:               scope: [[RANGE_FOR_BODY:![0-9]*]]<br>
+    // CHECK-SAME:               line: [[@LINE-3]]<br>
+    // CHECK: [[RANGE_FOR_BODY]] = distinct !MDLexicalBlock(scope: [[RANGE_FOR]],{{.*}} line: [[@LINE-4]])<br>
   }<br>
 }<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-static-fns.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-static-fns.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-static-fns.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-static-fns.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-static-fns.cpp Tue Mar  3 11:25:55 2015<br>
@@ -7,4 +7,7 @@ namespace A {<br>
 }<br>
<br>
 // Verify that a is present and mangled.<br>
-// CHECK: !"0x2e\00a\00a\00_ZN1AL1aEi\00{{.*}}", {{.*}}, i32 (i32)* @_ZN1AL1aEi, {{.*}} ; [ DW_TAG_subprogram ] [line 4] [local] [def] [a]<br>
+// CHECK: !MDSubprogram(name: "a", linkageName: "_ZN1AL1aEi",<br>
+// CHECK-SAME:          line: 4<br>
+// CHECK-SAME:          isDefinition: true<br>
+// CHECK-SAME:          function: i32 (i32)* @_ZN1AL1aEi<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp Tue Mar  3 11:25:55 2015<br>
@@ -33,20 +33,57 @@ int main()<br>
 // why the definition of "a" comes before the declarations while<br>
 // "b" and "c" come after.<br>
<br>
-// CHECK: !"_ZTS1X"} ; [ DW_TAG_enumeration_type ] [X]<br>
-// CHECK: !"_ZTS1C"} ; [ DW_TAG_class_type ] [C]<br>
-// CHECK: ![[DECL_A:[0-9]+]] = {{.*}} [ DW_TAG_member ] [a] [line {{.*}}, size 0, align 0, offset 0] [static]<br>
-// CHECK: !"0xd\00const_a\00{{.*}}", {{.*}}, i1 true} ; [ DW_TAG_member ] [const_a] [line {{.*}}, size 0, align 0, offset 0] [static]<br>
-// CHECK: ![[DECL_B:[0-9]+]] = !{!"0xd\00b\00{{.*}}", {{.*}} [ DW_TAG_member ] [b] [line {{.*}}, size 0, align 0, offset 0] [protected] [static]<br>
-// CHECK: !"0xd\00const_b\00{{.*}}", {{.*}}, float 0x{{.*}}} ; [ DW_TAG_member ] [const_b] [line {{.*}}, size 0, align 0, offset 0] [protected] [static]<br>
-// CHECK: ![[DECL_C:[0-9]+]] = !{!"0xd\00c\00{{.*}}", {{.*}} [ DW_TAG_member ] [c] [line {{.*}}, size 0, align 0, offset 0] [public] [static]<br>
-// CHECK: !"0xd\00const_c\00{{.*}}", {{.*}} [ DW_TAG_member ] [const_c] [line {{.*}}, size 0, align 0, offset 0] [public] [static]<br>
-// CHECK: !"0xd\00x_a\00{{.*}}", {{.*}} [ DW_TAG_member ] [x_a] {{.*}} [public] [static]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "X"{{.*}}, identifier: "_ZTS1X")<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_class_type, name: "C"{{.*}}, identifier: "_ZTS1C")<br>
+//<br>
+// CHECK: ![[DECL_A:[0-9]+]] = !MDDerivedType(tag: DW_TAG_member, name: "a"<br>
+// CHECK-NOT:                                 size:<br>
+// CHECK-NOT:                                 align:<br>
+// CHECK-NOT:                                 offset:<br>
+// CHECK-SAME:                                flags: DIFlagStaticMember)<br>
+//<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "const_a"<br>
+// CHECK-NOT:            size:<br>
+// CHECK-NOT:            align:<br>
+// CHECK-NOT:            offset:<br>
+// CHECK-SAME:           flags: DIFlagStaticMember,<br>
+// CHECK-SAME:           extraData: i1 true)<br>
+//<br>
+// CHECK: ![[DECL_B:[0-9]+]] = !MDDerivedType(tag: DW_TAG_member, name: "b"<br>
+// CHECK-NOT:                                 size:<br>
+// CHECK-NOT:                                 align:<br>
+// CHECK-NOT:                                 offset:<br>
+// CHECK-SAME:                                flags: DIFlagProtected | DIFlagStaticMember)<br>
+//<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "const_b"<br>
+// CHECK-NOT:            size:<br>
+// CHECK-NOT:            align:<br>
+// CHECK-NOT:            offset:<br>
+// CHECK-SAME:           flags: DIFlagProtected | DIFlagStaticMember,<br>
+// CHECK-SAME:           extraData: float 0x{{.*}})<br>
+//<br>
+// CHECK: ![[DECL_C:[0-9]+]] = !MDDerivedType(tag: DW_TAG_member, name: "c"<br>
+// CHECK-NOT:                                 size:<br>
+// CHECK-NOT:                                 align:<br>
+// CHECK-NOT:                                 offset:<br>
+// CHECK-SAME:                                flags: DIFlagPublic | DIFlagStaticMember)<br>
+//<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "const_c"<br>
+// CHECK-NOT:            size:<br>
+// CHECK-NOT:            align:<br>
+// CHECK-NOT:            offset:<br>
+// CHECK-SAME:           flags: DIFlagPublic | DIFlagStaticMember,<br>
+// CHECK-SAME:           extraData: i32 18)<br>
+//<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "x_a"<br>
+// CHECK-SAME:           flags: DIFlagPublic | DIFlagStaticMember)<br>
+<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "static_decl_templ<int>"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             ){{$}}<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "static_decl_templ_var"<br>
<br>
-// CHECK: ; [ DW_TAG_structure_type ] [static_decl_templ<int>] {{.*}} [def]<br>
-// CHECK: ; [ DW_TAG_member ] [static_decl_templ_var]<br>
-<br>
-// CHECK: [[NS_X:![0-9]+]] = {{.*}} ; [ DW_TAG_namespace ] [x]<br>
+// CHECK: [[NS_X:![0-9]+]] = !MDNamespace(name: "x"<br>
<br>
 // Test this in an anonymous namespace to ensure the type is retained even when<br>
 // it doesn't get automatically retained by the string type reference machinery.<br>
@@ -57,8 +94,8 @@ struct anon_static_decl_struct {<br>
 }<br>
<br>
<br>
-// CHECK: ; [ DW_TAG_structure_type ] [anon_static_decl_struct] {{.*}} [def]<br>
-// CHECK: ; [ DW_TAG_member ] [anon_static_decl_var]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "anon_static_decl_struct"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "anon_static_decl_var"<br>
<br>
 int ref() {<br>
   return anon_static_decl_struct::anon_static_decl_var;<br>
@@ -76,11 +113,11 @@ int static_decl_templ_ref() {<br>
   return static_decl_templ<int>::static_decl_templ_var;<br>
 }<br>
<br>
-// CHECK:  !"0x34\00a\00{{.*}}", null, {{.*}} @_ZN1C1aE, ![[DECL_A]]} ; [ DW_TAG_variable ] [a] {{.*}} [def]<br>
-// CHECK:  !"0x34\00b\00{{.*}}", null, {{.*}} @_ZN1C1bE, ![[DECL_B]]} ; [ DW_TAG_variable ] [b] {{.*}} [def]<br>
-// CHECK:  !"0x34\00c\00{{.*}}", null, {{.*}} @_ZN1C1cE, ![[DECL_C]]} ; [ DW_TAG_variable ] [c] {{.*}} [def]<br>
+// CHECK: !MDGlobalVariable(name: "a", {{.*}}variable: i32* @_ZN1C1aE, declaration: ![[DECL_A]])<br>
+// CHECK: !MDGlobalVariable(name: "b", {{.*}}variable: i32* @_ZN1C1bE, declaration: ![[DECL_B]])<br>
+// CHECK: !MDGlobalVariable(name: "c", {{.*}}variable: i32* @_ZN1C1cE, declaration: ![[DECL_C]])<br>
<br>
-// CHECK-NOT: ; [ DW_TAG_variable ] [anon_static_decl_var]<br>
+// CHECK-NOT: !MDGlobalVariable(name: "anon_static_decl_var"<br>
<br>
 // Verify that even when a static member declaration is created lazily when<br>
 // creating the definition, the declaration line is that of the canonical<br>
@@ -91,7 +128,9 @@ struct V {<br>
   virtual ~V(); // cause the definition of 'V' to be omitted by no-standalone-debug optimization<br>
   static const int const_va = 42;<br>
 };<br>
-// CHECK: i32 42} ; [ DW_TAG_member ] [const_va] [line [[@LINE-2]],<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "const_va",<br>
+// CHECK-SAME:           line: [[@LINE-3]]<br>
+// CHECK-SAME:           extraData: i32 42<br>
 const int V::const_va;<br>
<br>
 namespace x {<br>
@@ -101,4 +140,5 @@ struct y {<br>
 int y::z;<br>
 }<br>
<br>
-// CHECK:  !"0x34\00z\00{{.*}}", [[NS_X]], {{.*}} ; [ DW_TAG_variable ] [z] {{.*}} [def]<br>
+// CHECK: !MDGlobalVariable(name: "z",<br>
+// CHECK-SAME:              scope: [[NS_X]]<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp Tue Mar  3 11:25:55 2015<br>
@@ -4,20 +4,22 @@<br>
 // type info at all.<br>
 // RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -g %s -o - -gline-tables-only | FileCheck %s -check-prefix LINES-ONLY<br>
<br>
-// LINES-ONLY-NOT: DW_TAG_structure_type<br>
+// LINES-ONLY-NOT: !MDCompositeType(tag: DW_TAG_structure_type<br>
<br>
 template <typename T><br>
 struct a {<br>
 };<br>
 extern template class a<int>;<br>
-// CHECK-NOT: ; [ DW_TAG_structure_type ] [a<int>]<br>
+// CHECK-NOT: MDCompositeType(tag: DW_TAG_structure_type, name: "a<int>"<br>
<br>
 template <typename T><br>
 struct b {<br>
 };<br>
 extern template class b<int>;<br>
 b<int> bi;<br>
-// CHECK: ; [ DW_TAG_structure_type ] [b<int>] {{.*}} [def]<br>
+// CHECK: MDCompositeType(tag: DW_TAG_structure_type, name: "b<int>"<br>
+// CHECK-NOT: DIFlagFwdDecl<br>
+// CHECK-SAME: ){{$}}<br>
<br>
 template <typename T><br>
 struct c {<br>
@@ -25,7 +27,8 @@ struct c {<br>
 };<br>
 extern template class c<int>;<br>
 c<int> ci;<br>
-// CHECK: ; [ DW_TAG_structure_type ] [c<int>] {{.*}} [decl]<br>
+// CHECK: MDCompositeType(tag: DW_TAG_structure_type, name: "c<int>"<br>
+// CHECK-SAME: DIFlagFwdDecl<br>
<br>
 template <typename T><br>
 struct d {<br>
@@ -33,7 +36,9 @@ struct d {<br>
 };<br>
 extern template class d<int>;<br>
 d<int> di;<br>
-// CHECK: ; [ DW_TAG_structure_type ] [d<int>] {{.*}} [def]<br>
+// CHECK: MDCompositeType(tag: DW_TAG_structure_type, name: "d<int>"<br>
+// CHECK-NOT: DIFlagFwdDecl<br>
+// CHECK-SAME: ){{$}}<br>
<br>
 template <typename T><br>
 struct e {<br>
@@ -47,7 +52,9 @@ e<int> ei;<br>
 // There's no guarantee that the out of line definition will appear before the<br>
 // explicit template instantiation definition, so conservatively emit the type<br>
 // definition here.<br>
-// CHECK: ; [ DW_TAG_structure_type ] [e<int>] {{.*}} [def]<br>
+// CHECK: MDCompositeType(tag: DW_TAG_structure_type, name: "e<int>"<br>
+// CHECK-NOT: DIFlagFwdDecl<br>
+// CHECK-SAME: ){{$}}<br>
<br>
 template <typename T><br>
 struct f {<br>
@@ -58,7 +65,9 @@ template <typename T><br>
 void f<T>::g() {<br>
 }<br>
 f<int> fi;<br>
-// CHECK: ; [ DW_TAG_structure_type ] [f<int>] {{.*}} [def]<br>
+// CHECK: MDCompositeType(tag: DW_TAG_structure_type, name: "f<int>"<br>
+// CHECK-NOT: DIFlagFwdDecl<br>
+// CHECK-SAME: ){{$}}<br>
<br>
 template <typename T><br>
 struct g {<br>
@@ -68,13 +77,17 @@ template <><br>
 void g<int>::f();<br>
 extern template class g<int>;<br>
 g<int> gi;<br>
-// CHECK: ; [ DW_TAG_structure_type ] [g<int>] {{.*}} [def]<br>
+// CHECK: MDCompositeType(tag: DW_TAG_structure_type, name: "g<int>"<br>
+// CHECK-NOT: DIFlagFwdDecl<br>
+// CHECK-SAME: ){{$}}<br>
<br>
 template <typename T><br>
 struct h {<br>
 };<br>
 template class h<int>;<br>
-// CHECK: ; [ DW_TAG_structure_type ] [h<int>] {{.*}} [def]<br>
+// CHECK: MDCompositeType(tag: DW_TAG_structure_type, name: "h<int>"<br>
+// CHECK-NOT: DIFlagFwdDecl<br>
+// CHECK-SAME: ){{$}}<br>
<br>
 template <typename T><br>
 struct i {<br>
@@ -83,14 +96,16 @@ struct i {<br>
 template<> void i<int>::f();<br>
 extern template class i<int>;<br>
 i<int> ii;<br>
-// CHECK: ; [ DW_TAG_structure_type ] [i<int>] {{.*}} [def]<br>
+// CHECK: MDCompositeType(tag: DW_TAG_structure_type, name: "i<int>"<br>
+// CHECK-NOT: DIFlagFwdDecl<br>
+// CHECK-SAME: ){{$}}<br>
<br>
 template <typename T1, typename T2 = T1><br>
 struct j {<br>
 };<br>
 extern template class j<int>;<br>
 j<int> jj;<br>
-// CHECK: ; [ DW_TAG_structure_type ] [j<int, int>]<br>
+// CHECK: MDCompositeType(tag: DW_TAG_structure_type, name: "j<int, int>"<br>
<br>
 template <typename T><br>
 struct k {<br>
@@ -98,12 +113,4 @@ struct k {<br>
 template <><br>
 struct k<int>;<br>
 template struct k<int>;<br>
-// CHECK-NOT: ; [ DW_TAG_structure_type ] [k<int>]<br>
-<br>
-template <typename T><br>
-struct l {<br>
-  int x;<br>
-};<br>
-extern template class l<int>;<br>
-l<int> li;<br>
-// CHECK: [ DW_TAG_structure_type ] [l<int>] {{.*}}size {{[^0]}}<br>
+// CHECK-NOT: !MDCompositeType(tag: DW_TAG_structure_type, name: "k<int>"<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-template-fwd.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-fwd.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-fwd.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-template-fwd.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-template-fwd.cpp Tue Mar  3 11:25:55 2015<br>
@@ -2,7 +2,9 @@<br>
 // This test is for a crash when emitting debug info for not-yet-completed<br>
 // types.<br>
 // Test that we don't actually emit a forward decl for the offending class:<br>
-// CHECK:  [ DW_TAG_structure_type ] [Derived<int>] {{.*}} [def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "Derived<int>"<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             ){{$}}<br>
 // rdar://problem/15931354<br>
 template <class A> class Derived;<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-template-limit.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-limit.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-limit.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-template-limit.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-template-limit.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,8 +1,8 @@<br>
 // RUN: %clang_cc1 -emit-llvm -fno-standalone-debug -triple %itanium_abi_triple -g %s -o - | FileCheck %s<br>
<br>
 // Check that this pointer type is TC<int><br>
-// CHECK: ![[LINE:[0-9]+]] = !{!"0x2\00TC<int>\00{{.*}}", {{.*}} !"_ZTS2TCIiE"} ; [ DW_TAG_class_type ]<br>
-// CHECK: !"_ZTS2TCIiE"} ; [ DW_TAG_pointer_type ]{{.*}}[from _ZTS2TCIiE]<br>
+// CHECK: ![[LINE:[0-9]+]] = !MDCompositeType(tag: DW_TAG_class_type, name: "TC<int>"{{.*}}, identifier: "_ZTS2TCIiE")<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS2TCIiE"<br>
<br>
 template<typename T><br>
 class TC {<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp Tue Mar  3 11:25:55 2015<br>
@@ -16,34 +16,49 @@ inline int add3(int x) {<br>
   return MyClass().add<3>(x); // even though add<3> is ODR used, don't emit it since we don't codegen it<br>
 }<br>
<br>
-// CHECK: [[FOO_MEM:![0-9]*]], null, null, !"_ZTS3foo"} ; [ DW_TAG_structure_type ] [foo]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo"<br>
+// CHECK-SAME:             elements: [[FOO_MEM:![0-9]*]]<br>
+// CHECK-SAME:             identifier: "_ZTS3foo"<br>
 // CHECK: [[FOO_MEM]] = !{[[FOO_FUNC:![0-9]*]]}<br>
-// CHECK: [[FOO_FUNC]] = !{!"0x2e\00func\00func\00_ZN3foo4funcEN5outerIS_E5innerE\00{{.*}}"{{, [^,]+, [^,]+}}, [[FOO_FUNC_TYPE:![0-9]*]], {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [func]<br>
-// CHECK: [[FOO_FUNC_TYPE]] = {{.*}}, [[FOO_FUNC_PARAMS:![0-9]*]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
+// CHECK: [[FOO_FUNC]] = !MDSubprogram(name: "func", linkageName: "_ZN3foo4funcEN5outerIS_E5innerE",<br>
+// CHECK-SAME:                         type: [[FOO_FUNC_TYPE:![0-9]*]]<br>
+// CHECK: [[FOO_FUNC_TYPE]] = !MDSubroutineType(types: [[FOO_FUNC_PARAMS:![0-9]*]])<br>
 // CHECK: [[FOO_FUNC_PARAMS]] = !{null, !{{[0-9]*}}, !"[[OUTER_FOO_INNER_ID:.*]]"}<br>
-// CHECK: !{{[0-9]*}} = {{.*}}, null, !"[[OUTER_FOO_INNER_ID]]"} ; [ DW_TAG_structure_type ] [inner]<br>
+// CHECK: !{{[0-9]*}} = !MDCompositeType(tag: DW_TAG_structure_type, name: "inner"{{.*}}, identifier: "[[OUTER_FOO_INNER_ID]]")<br>
<br>
-// CHECK: [[VIRT_MEM:![0-9]*]], !"_ZTS4virtI4elemE", [[VIRT_TEMP_PARAM:![0-9]*]], !"_ZTS4virtI4elemE"} ; [ DW_TAG_structure_type ] [virt<elem>] {{.*}} [def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "virt<elem>"<br>
+// CHECK-SAME:             elements: [[VIRT_MEM:![0-9]*]]<br>
+// CHECK-SAME:             vtableHolder: !"_ZTS4virtI4elemE"<br>
+// CHECK-SAME:             templateParams: [[VIRT_TEMP_PARAM:![0-9]*]]<br>
+// CHECK-SAME:             identifier: "_ZTS4virtI4elemE"<br>
 // CHECK: [[VIRT_TEMP_PARAM]] = !{[[VIRT_T:![0-9]*]]}<br>
-// CHECK: [[VIRT_T]] = !{!"0x2f\00T\000\000"{{, [^,]+}}, !"_ZTS4elem", {{.*}} ; [ DW_TAG_template_type_parameter ]<br>
+// CHECK: [[VIRT_T]] = !MDTemplateTypeParameter(name: "T", type: !"_ZTS4elem")<br>
<br>
-// CHECK: [[C:![0-9]*]] = {{.*}}, [[C_MEM:![0-9]*]], !"_ZTS7MyClass", null, !"_ZTS7MyClass"} ; [ DW_TAG_structure_type ] [MyClass]<br>
+// CHECK: [[C:![0-9]*]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "MyClass"<br>
+// CHECK-SAME:                             elements: [[C_MEM:![0-9]*]]<br>
+// CHECK-SAME:                             vtableHolder: !"_ZTS7MyClass"<br>
+// CHECK-SAME:                             identifier: "_ZTS7MyClass")<br>
 // CHECK: [[C_MEM]] = !{[[C_VPTR:![0-9]*]], [[C_FUNC:![0-9]*]]}<br>
-// CHECK: [[C_VPTR]] = {{.*}} ; [ DW_TAG_member ] [_vptr$MyClass]<br>
+// CHECK: [[C_VPTR]] = !MDDerivedType(tag: DW_TAG_member, name: "_vptr$MyClass"<br>
<br>
-// CHECK: [[C_FUNC]] = {{.*}} ; [ DW_TAG_subprogram ] [line 7] [func]<br>
+// CHECK: [[C_FUNC]] = !MDSubprogram(name: "func",{{.*}} line: 7,<br>
<br>
-// CHECK: [[ELEM:![0-9]*]] = {{.*}}, [[ELEM_MEM:![0-9]*]], null, null, !"_ZTS4elem"} ; [ DW_TAG_structure_type ] [elem] {{.*}} [def]<br>
+// CHECK: [[ELEM:![0-9]*]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "elem"<br>
+// CHECK-SAME:                                elements: [[ELEM_MEM:![0-9]*]]<br>
+// CHECK-SAME:                                identifier: "_ZTS4elem"<br>
 // CHECK: [[ELEM_MEM]] = !{[[ELEM_X:![0-9]*]]}<br>
-// CHECK: [[ELEM_X]] = {{.*}} ; [ DW_TAG_member ] [x] {{.*}} [static] [from _ZTS4virtI4elemE]<br>
+// CHECK: [[ELEM_X]] = !MDDerivedType(tag: DW_TAG_member, name: "x", scope: !"_ZTS4elem"<br>
+// CHECK-SAME:                        baseType: !"_ZTS4virtI4elemE"<br>
<br>
 // Check that the member function template specialization and implicit special<br>
 // members (the default ctor) refer to their class by scope, even though they<br>
 // didn't appear in the class's member list (C_MEM). This prevents the functions<br>
 // from being added to type units, while still appearing in the type<br>
 // declaration/reference in the compile unit.<br>
-// CHECK: !"_ZTS7MyClass", {{.*}} ; [ DW_TAG_subprogram ] [line 0] [MyClass]<br>
-// CHECK: !"_ZTS7MyClass", {{.*}} ; [ DW_TAG_subprogram ] [line 4] [add<2>]<br>
+// CHECK: !MDSubprogram(name: "MyClass"<br>
+// CHECK-SAME:          scope: !"_ZTS7MyClass"<br>
+// CHECK: !MDSubprogram(name: "add<2>"<br>
+// CHECK-SAME:          scope: !"_ZTS7MyClass"<br>
<br>
 template<typename T><br>
 struct outer {<br>
@@ -65,7 +80,9 @@ inline void func() {<br>
<br>
 outer<foo>::inner x;<br>
<br>
-// CHECK:  !"0x34\00{{.*}}", {{.*}}, !"[[OUTER_FOO_INNER_ID]]", %"struct.outer<foo>::inner"* @x, {{.*}} ; [ DW_TAG_variable ] [x]<br>
+// CHECK: !MDGlobalVariable(name: "x",<br>
+// CHECK-SAME:              type: !"[[OUTER_FOO_INNER_ID]]"<br>
+// CHECK-SAME:              variable: %"struct.outer<foo>::inner"* @x<br>
<br>
 template <typename T><br>
 struct virt {<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-template-partial-specialization.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-partial-specialization.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-partial-specialization.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-template-partial-specialization.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-template-partial-specialization.cpp Tue Mar  3 11:25:55 2015<br>
@@ -3,7 +3,9 @@ namespace __pointer_type_imp<br>
 {<br>
   template <class _Tp, class _Dp, bool > struct __pointer_type1 {};<br>
<br>
-  // CHECK: ![[PARAMS:[0-9]+]], !"_ZTSN18__pointer_type_imp15__pointer_type1I1C14default_deleteIS1_ELb0EEE"} ; [ DW_TAG_structure_type ] [__pointer_type1<C, default_delete<C>, false>] [line [[@LINE+1]], size 8, align 8, offset 0] [def] [from ]<br>
+  // CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "__pointer_type1<C, default_delete<C>, false>",<br>
+  // CHECK-SAME:             templateParams: ![[PARAMS:[0-9]+]]<br>
+  // CHECK-SAME:             identifier: "_ZTSN18__pointer_type_imp15__pointer_type1I1C14default_deleteIS1_ELb0EEE"<br>
   template <class _Tp, class _Dp> struct __pointer_type1<_Tp, _Dp, false><br>
   {<br>
     typedef _Tp* type;<br>
@@ -15,7 +17,7 @@ struct __pointer_type2<br>
   // Test that the bool template type parameter is emitted.<br>
   //<br>
   // CHECK: ![[PARAMS]] = !{!{{.*}}, !{{.*}}, ![[FALSE:[0-9]+]]}<br>
-  // CHECK: ![[FALSE]] = {{.*}} i8 0, {{.*}}} ; [ DW_TAG_template_value_parameter ]<br>
+  // CHECK: ![[FALSE]] = !MDTemplateValueParameter(type: !{{[0-9]+}}, value: i8 0)<br>
   typedef typename __pointer_type_imp::__pointer_type1<_Tp, _Dp, false>::type type;<br>
 };<br>
 template <class _Tp> struct default_delete {};<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp Tue Mar  3 11:25:55 2015<br>
@@ -15,13 +15,17 @@ void foo (const char *c) {<br>
   str.assign(c, str);<br>
 }<br>
<br>
-// CHECK: [[BS:.*]] = {{.*}} ; [ DW_TAG_structure_type ] [basic_string<char>] [line 4, size 8, align 8, offset 0] [def] [from ]<br>
-// CHECK: [[TYPE:![0-9]*]] = !{!"0x15\00{{.*}}"{{.*}}, [[ARGS:.*]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
+// CHECK: [[BS:.*]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "basic_string<char>"<br>
+// CHECK-SAME:                         line: 4<br>
+// CHECK-SAME:                         size: 8, align: 8<br>
+// CHECK: [[TYPE:![0-9]*]] = !MDSubroutineType(types: [[ARGS:.*]])<br>
 // CHECK: [[ARGS]] = !{!{{.*}}, !{{.*}}, [[P:![0-9]*]], [[R:.*]]}<br>
-// CHECK: [[P]] = {{.*}}, [[CON:![0-9]*]]} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from ]<br>
-// CHECK: [[CON]] = {{.*}}, [[CH:![0-9]*]]} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from char]<br>
-// CHECK: [[CH]] = {{.*}} ; [ DW_TAG_base_type ] [char] [line 0, size 8, align 8, offset 0, enc DW_ATE_signed_char]<br>
+// CHECK: [[P]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: [[CON:![0-9]*]]<br>
+// CHECK: [[CON]] = !MDDerivedType(tag: DW_TAG_const_type, baseType: [[CH:![0-9]*]]<br>
+// CHECK: [[CH]] = !MDBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)<br>
<br>
-// CHECK: [[R]] = {{.*}}, [[CON2:![0-9]*]]} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
-// CHECK: [[CON2]] = {{.*}}, !"_ZTS12basic_stringIcE"} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from _ZTS12basic_stringIcE]<br>
-// CHECK: !"0x2e\00assign\00{{.*}}\008"{{, [^,]+, [^,]+}}, !8, {{.*}} ; [ DW_TAG_subprogram ] [line 7] [def] [scope 8] [assign]<br>
+// CHECK: [[R]] = !MDDerivedType(tag: DW_TAG_reference_type, baseType: [[CON2:![0-9]*]]<br>
+// CHECK: [[CON2]] = !MDDerivedType(tag: DW_TAG_const_type, baseType: !"_ZTS12basic_stringIcE"<br>
+// CHECK: !MDSubprogram(name: "assign"<br>
+// CHECK-SAME:          line: 7<br>
+// CHECK-SAME:          scopeLine: 8<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-template.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-template.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-template.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,96 +1,112 @@<br>
 // RUN: %clang -S -emit-llvm -target x86_64-unknown_unknown -g %s -o - -std=c++11 | FileCheck %s<br>
<br>
-// CHECK: !"0x11\00{{.*}}"{{, [^,]+, [^,]+}}, [[RETAIN:![0-9]*]], {{.*}} ; [ DW_TAG_compile_unit ]<br>
+// CHECK: !MDCompileUnit(<br>
+// CHECK-SAME:           retainedTypes: [[RETAIN:![0-9]*]]<br>
 // CHECK: [[EMPTY:![0-9]*]] = !{}<br>
 // CHECK: [[RETAIN]] = !{!{{[0-9]]*}}, [[FOO:![0-9]*]],<br>
<br>
<br>
-// CHECK: [[TC:![0-9]*]] = {{.*}}, [[TCARGS:![0-9]*]], !"{{.*}}"} ; [ DW_TAG_structure_type ] [TC<unsigned int, 2, &glb, &foo::e, &foo::f, &foo::g, 1, 2, 3>]<br>
+// CHECK: [[TC:![0-9]*]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "TC<unsigned int, 2, &glb, &foo::e, &foo::f, &foo::g, 1, 2, 3>"<br>
+// CHECK-SAME:                              templateParams: [[TCARGS:![0-9]*]]<br>
 // CHECK: [[TCARGS]] = !{[[TCARG1:![0-9]*]], [[TCARG2:![0-9]*]], [[TCARG3:![0-9]*]], [[TCARG4:![0-9]*]], [[TCARG5:![0-9]*]], [[TCARG6:![0-9]*]], [[TCARG7:![0-9]*]]}<br>
 //<br>
-// We seem to be missing file/line/col info on template value parameters -<br>
-// metadata supports it but it's not populated. GCC doesn't emit it either,<br>
-// perhaps we should just drop it from the metadata.<br>
-//<br>
-// CHECK: [[TCARG1]] = !{!"0x2f\00T\000\000", null, [[UINT:![0-9]*]], null} ; [ DW_TAG_template_type_parameter ]<br>
-// CHECK: [[UINT:![0-9]*]] = {{.*}} ; [ DW_TAG_base_type ] [unsigned int]<br>
-// CHECK: [[TCARG2]] = !{!"0x30\00\00{{.*}}", {{[^,]+}}, [[UINT]], i32 2, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[TCARG3]] = !{!"0x30\00x\00{{.*}}", {{[^,]+}}, [[CINTPTR:![0-9]*]], i32* @glb, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[CINTPTR]] = {{.*}}, [[CINT:![0-9]*]]} ; [ DW_TAG_pointer_type ] {{.*}} [from ]<br>
-// CHECK: [[CINT]] = {{.*}}, [[INT:![0-9]*]]} ; [ DW_TAG_const_type ] {{.*}} [from int]<br>
-// CHECK: [[INT]] = {{.*}} ; [ DW_TAG_base_type ] [int]<br>
-// CHECK: [[TCARG4]] = !{!"0x30\00a\00{{.*}}", {{[^,]+}}, [[MEMINTPTR:![0-9]*]], i64 8, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[MEMINTPTR]] = {{.*}}, !"_ZTS3foo"} ; [ DW_TAG_ptr_to_member_type ] {{.*}}[from int]<br>
+// CHECK: [[TCARG1]] = !MDTemplateTypeParameter(name: "T", type: [[UINT:![0-9]*]])<br>
+// CHECK: [[UINT:![0-9]*]] = !MDBasicType(name: "unsigned int"<br>
+// CHECK: [[TCARG2]] = !MDTemplateValueParameter(type: [[UINT]], value: i32 2)<br>
+// CHECK: [[TCARG3]] = !MDTemplateValueParameter(name: "x", type: [[CINTPTR:![0-9]*]], value: i32* @glb)<br>
+// CHECK: [[CINTPTR]] = !MDDerivedType(tag: DW_TAG_pointer_type, {{.*}}baseType: [[CINT:![0-9]+]]<br>
+// CHECK: [[CINT]] = !MDDerivedType(tag: DW_TAG_const_type, {{.*}}baseType: [[INT:![0-9]+]]<br>
+// CHECK: [[INT]] = !MDBasicType(name: "int"<br>
+// CHECK: [[TCARG4]] = !MDTemplateValueParameter(name: "a", type: [[MEMINTPTR:![0-9]*]], value: i64 8)<br>
+// CHECK: [[MEMINTPTR]] = !MDDerivedType(tag: DW_TAG_ptr_to_member_type, {{.*}}baseType: [[INT]], {{.*}}extraData: !"_ZTS3foo")<br>
 //<br>
 // Currently Clang emits the pointer-to-member-function value, but LLVM doesn't<br>
 // use it (GCC doesn't emit a value for pointers to member functions either - so<br>
 // it's not clear what, if any, format would be acceptable to GDB)<br>
 //<br>
-// CHECK: [[TCARG5]] = !{!"0x30\00b\00{{.*}}", {{[^,]+}}, [[MEMFUNPTR:![0-9]*]], { i64, i64 } { i64 ptrtoint (void (%struct.foo*)* @_ZN3foo1fEv to i64), i64 0 }, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[MEMFUNPTR]] = {{.*}}, [[FTYPE:![0-9]*]], !"_ZTS3foo"} ; [ DW_TAG_ptr_to_member_type ]<br>
-// CHECK: [[FTYPE]] = {{.*}}, [[FARGS:![0-9]*]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
+// CHECK: [[TCARG5]] = !MDTemplateValueParameter(name: "b", type: [[MEMFUNPTR:![0-9]*]], value: { i64, i64 } { i64 ptrtoint (void (%struct.foo*)* @_ZN3foo1fEv to i64), i64 0 })<br>
+// CHECK: [[MEMFUNPTR]] = !MDDerivedType(tag: DW_TAG_ptr_to_member_type, {{.*}}baseType: [[FTYPE:![0-9]*]], {{.*}}extraData: !"_ZTS3foo")<br>
+// CHECK: [[FTYPE]] = !MDSubroutineType(types: [[FARGS:![0-9]*]])<br>
 // CHECK: [[FARGS]] = !{null, [[FARG1:![0-9]*]]}<br>
-// CHECK: [[FARG1]] = {{.*}} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS3foo]<br>
-//<br>
-// CHECK: [[TCARG6]] = !{!"0x30\00f\00{{.*}}", {{[^,]+}}, [[FUNPTR:![0-9]*]], void ()* @_ZN3foo1gEv, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[FUNPTR]] = {{.*}}, [[FUNTYPE:![0-9]*]]} ; [ DW_TAG_pointer_type ]<br>
-// CHECK: [[FUNTYPE]] = {{.*}}, [[FUNARGS:![0-9]*]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
+// CHECK: [[FARG1]] = !MDDerivedType(tag: DW_TAG_pointer_type,<br>
+// CHECK-SAME:                       baseType: !"_ZTS3foo"<br>
+// CHECK-NOT:                        line:<br>
+// CHECK-SAME:                       size: 64, align: 64<br>
+// CHECK-NOT:                        offset: 0<br>
+// CHECK-SAME:                       DIFlagArtificial<br>
+//<br>
+// CHECK: [[TCARG6]] = !MDTemplateValueParameter(name: "f", type: [[FUNPTR:![0-9]*]], value: void ()* @_ZN3foo1gEv)<br>
+// CHECK: [[FUNPTR]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: [[FUNTYPE:![0-9]*]]<br>
+// CHECK: [[FUNTYPE]] = !MDSubroutineType(types: [[FUNARGS:![0-9]*]])<br>
 // CHECK: [[FUNARGS]] = !{null}<br>
-// CHECK: [[TCARG7]] = !{!"0x4107\00Is\000\000", null, null, [[TCARG7_VALS:![0-9]*]], null} ; [ DW_TAG_GNU_template_parameter_pack ]<br>
+// CHECK: [[TCARG7]] = !MDTemplateValueParameter(tag: DW_TAG_GNU_template_parameter_pack, name: "Is", value: [[TCARG7_VALS:![0-9]*]])<br>
 // CHECK: [[TCARG7_VALS]] = !{[[TCARG7_1:![0-9]*]], [[TCARG7_2:![0-9]*]], [[TCARG7_3:![0-9]*]]}<br>
-// CHECK: [[TCARG7_1]] = !{!"0x30\00\00{{.*}}", {{[^,]+}}, [[INT]], i32 1, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[TCARG7_2]] = !{!"0x30\00\00{{.*}}", {{[^,]+}}, [[INT]], i32 2, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[TCARG7_3]] = !{!"0x30\00\00{{.*}}", {{[^,]+}}, [[INT]], i32 3, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
+// CHECK: [[TCARG7_1]] = !MDTemplateValueParameter(type: [[INT]], value: i32 1)<br>
+// CHECK: [[TCARG7_2]] = !MDTemplateValueParameter(type: [[INT]], value: i32 2)<br>
+// CHECK: [[TCARG7_3]] = !MDTemplateValueParameter(type: [[INT]], value: i32 3)<br>
 //<br>
 // We could just emit a declaration of 'foo' here, rather than the entire<br>
 // definition (same goes for any time we emit a member (function or data)<br>
 // pointer type)<br>
-// CHECK: [[FOO]] = {{.*}}, !"_ZTS3foo"} ; [ DW_TAG_structure_type ] [foo]<br>
-// CHECK: !"0x2e\00f\00f\00_ZN3foo1fEv\00{{.*}}", [[FTYPE:![0-9]*]], {{.*}} ; [ DW_TAG_subprogram ]<br>
+// CHECK: [[FOO]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "foo", {{.*}}identifier: "_ZTS3foo")<br>
+// CHECK: !MDSubprogram(name: "f", linkageName: "_ZN3foo1fEv", {{.*}}type: [[FTYPE:![0-9]*]]<br>
 //<br>
<br>
-// CHECK:  !"0x13\00{{.*}}", !{{[0-9]*}}, !"_ZTS2TCIjLj2EXadL_Z3glbEEXadL_ZN3foo1eEEEXadL_ZNS0_1fEvEEXadL_ZNS0_1gEvEEJLi1ELi2ELi3EEE", {{.*}}, !"[[TCNESTED:.*]]"} ; [ DW_TAG_structure_type ] [nested]<br>
-// CHECK: [[TCNARGS:![0-9]*]], !"[[TCNT:.*]]"} ; [ DW_TAG_structure_type ] [TC<int, -3, nullptr, nullptr, nullptr, nullptr>]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "nested",<br>
+// CHECK-SAME:             scope: !"_ZTS2TCIjLj2EXadL_Z3glbEEXadL_ZN3foo1eEEEXadL_ZNS0_1fEvEEXadL_ZNS0_1gEvEEJLi1ELi2ELi3EEE"<br>
+// CHECK-SAME:             identifier: "[[TCNESTED:.*]]")<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "TC<int, -3, nullptr, nullptr, nullptr, nullptr>"<br>
+// CHECK-SAME:             templateParams: [[TCNARGS:![0-9]*]]<br>
+// CHECK-SAME:             identifier: "[[TCNT:.*]]")<br>
 // CHECK: [[TCNARGS]] = !{[[TCNARG1:![0-9]*]], [[TCNARG2:![0-9]*]], [[TCNARG3:![0-9]*]], [[TCNARG4:![0-9]*]], [[TCNARG5:![0-9]*]], [[TCNARG6:![0-9]*]], [[TCNARG7:![0-9]*]]}<br>
-// CHECK: [[TCNARG1]] = !{!"0x2f\00T\000\000", null, [[INT]], null} ; [ DW_TAG_template_type_parameter ]<br>
-// CHECK: [[TCNARG2]] = !{!"0x30\00\000\000", null, [[INT]], i32 -3, null} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[TCNARG3]] = !{!"0x30\00x\000\000", null, [[CINTPTR]], i8 0, null} ; [ DW_TAG_template_value_parameter ]<br>
+// CHECK: [[TCNARG1]] = !MDTemplateTypeParameter(name: "T", type: [[INT]])<br>
+// CHECK: [[TCNARG2]] = !MDTemplateValueParameter(type: [[INT]], value: i32 -3)<br>
+// CHECK: [[TCNARG3]] = !MDTemplateValueParameter(name: "x", type: [[CINTPTR]], value: i8 0)<br>
<br>
 // The interesting null pointer: -1 for member data pointers (since they are<br>
 // just an offset in an object, they can be zero and non-null for the first<br>
 // member)<br>
<br>
-// CHECK: [[TCNARG4]] = !{!"0x30\00a\000\000", null, [[MEMINTPTR]], i64 -1, null} ; [ DW_TAG_template_value_parameter ]<br>
+// CHECK: [[TCNARG4]] = !MDTemplateValueParameter(name: "a", type: [[MEMINTPTR]], value: i64 -1)<br>
 //<br>
 // In some future iteration we could possibly emit the value of a null member<br>
 // function pointer as '{ i64, i64 } zeroinitializer' as it may be handled<br>
 // naturally from the LLVM CodeGen side once we decide how to handle non-null<br>
 // member function pointers. For now, it's simpler just to emit the 'i8 0'.<br>
 //<br>
-// CHECK: [[TCNARG5]] = !{!"0x30\00b\000\000", null, [[MEMFUNPTR]], i8 0, null} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[TCNARG6]] = !{!"0x30\00f\000\000", null, [[FUNPTR]], i8 0, null} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[TCNARG7]] = !{!"0x4107\00Is\000\000", null, null, [[EMPTY]], null} ; [ DW_TAG_GNU_template_parameter_pack ]<br>
+// CHECK: [[TCNARG5]] = !MDTemplateValueParameter(name: "b", type: [[MEMFUNPTR]], value: i8 0)<br>
+// CHECK: [[TCNARG6]] = !MDTemplateValueParameter(name: "f", type: [[FUNPTR]], value: i8 0)<br>
+// CHECK: [[TCNARG7]] = !MDTemplateValueParameter(tag: DW_TAG_GNU_template_parameter_pack, name: "Is", value: [[EMPTY]])<br>
<br>
 // FIXME: these parameters should probably be rendered as 'glb' rather than<br>
 // '&glb', since they're references, not pointers.<br>
-// CHECK: [[NNARGS:![0-9]*]], !"[[NNT:.*]]"} ; [ DW_TAG_structure_type ] [NN<tmpl_impl, &glb, &glb>]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "NN<tmpl_impl, &glb, &glb>",<br>
+// CHECK-SAME:             templateParams: [[NNARGS:![0-9]*]]<br>
+// CHECK-SAME:             identifier: "[[NNT:.*]]")<br>
 // CHECK: [[NNARGS]] = !{[[NNARG1:![0-9]*]], [[NNARG2:![0-9]*]], [[NNARG3:![0-9]*]]}<br>
-// CHECK: [[NNARG1]] = !{!"0x4106\00tmpl\000\000", null, null, !"tmpl_impl", null} ; [ DW_TAG_GNU_template_template_param ]<br>
-// CHECK: [[NNARG2]] = !{!"0x30\00lvr\00{{.*}}", {{[^,]+}}, [[INTLVR:![0-9]*]], i32* @glb, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[INTLVR]] = {{.*}}, [[INT]]} ; [ DW_TAG_reference_type ] {{.*}} [from int]<br>
-// CHECK: [[NNARG3]] = !{!"0x30\00rvr\00{{.*}}", {{[^,]+}}, [[INTRVR:![0-9]*]], i32* @glb, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[INTRVR]] = {{.*}}, [[INT]]} ; [ DW_TAG_rvalue_reference_type ] {{.*}} [from int]<br>
+// CHECK: [[NNARG1]] = !MDTemplateValueParameter(tag: DW_TAG_GNU_template_template_param, name: "tmpl", value: !"tmpl_impl")<br>
+// CHECK: [[NNARG2]] = !MDTemplateValueParameter(name: "lvr", type: [[INTLVR:![0-9]*]], value: i32* @glb)<br>
+// CHECK: [[INTLVR]] = !MDDerivedType(tag: DW_TAG_reference_type, baseType: [[INT]]<br>
+// CHECK: [[NNARG3]] = !MDTemplateValueParameter(name: "rvr", type: [[INTRVR:![0-9]*]], value: i32* @glb)<br>
+// CHECK: [[INTRVR]] = !MDDerivedType(tag: DW_TAG_rvalue_reference_type, baseType: [[INT]]<br>
<br>
-// CHECK: [[PTOARGS:![0-9]*]], !"{{.*}}"} ; [ DW_TAG_structure_type ] [PaddingAtEndTemplate<&PaddedObj>]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "PaddingAtEndTemplate<&PaddedObj>"<br>
+// CHECK-SAME:             templateParams: [[PTOARGS:![0-9]*]]<br>
 // CHECK: [[PTOARGS]] = !{[[PTOARG1:![0-9]*]]}<br>
-// CHECK: [[PTOARG1]] = !{!"0x30\00\000\000", null, [[CONST_PADDINGATEND_PTR:![0-9]*]], %struct.PaddingAtEnd* @PaddedObj, null} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[CONST_PADDINGATEND_PTR]] = {{.*}} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from _ZTS12PaddingAtEnd]<br>
-<br>
-// CHECK: !"[[TCNESTED]]", %"struct.TC<unsigned int, 2, &glb, &foo::e, &foo::f, &foo::g, 1, 2, 3>::nested"* @tci, null} ; [ DW_TAG_variable ] [tci]<br>
-<br>
-// CHECK: !"[[TCNT]]", %struct.TC* @tcn, null} ; [ DW_TAG_variable ] [tcn]<br>
+// CHECK: [[PTOARG1]] = !MDTemplateValueParameter(type: [[CONST_PADDINGATEND_PTR:![0-9]*]], value: %struct.PaddingAtEnd* @PaddedObj)<br>
+// CHECK: [[CONST_PADDINGATEND_PTR]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS12PaddingAtEnd", size: 64, align: 64)<br>
<br>
-// CHECK: !"[[NNT]]", %struct.NN* @nn, null} ; [ DW_TAG_variable ] [nn]<br>
+// CHECK: !MDGlobalVariable(name: "tci",<br>
+// CHECK-SAME:              type: !"[[TCNESTED]]"<br>
+// CHECK-SAME:              variable: %"struct.TC<unsigned int, 2, &glb, &foo::e, &foo::f, &foo::g, 1, 2, 3>::nested"* @tci<br>
+<br>
+// CHECK: !MDGlobalVariable(name: "tcn"<br>
+// CHECK-SAME:              type: !"[[TCNT]]"<br>
+// CHECK-SAME:              variable: %struct.TC* @tcn<br>
+<br>
+// CHECK: !MDGlobalVariable(name: "nn"<br>
+// CHECK-SAME:              type: !"[[NNT]]"<br>
+// CHECK-SAME:              variable: %struct.NN* @nn<br>
 struct foo {<br>
   char pad[8]; // make the member pointer to 'e' a bit more interesting (nonzero)<br>
   int e;<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-thunk.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-thunk.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-thunk.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-thunk.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-thunk.cpp Tue Mar  3 11:25:55 2015<br>
@@ -14,4 +14,7 @@ struct C : A, B {<br>
<br>
 void C::f() { }<br>
<br>
-// CHECK:  !"0x2e\00\00\00_ZThn{{[48]}}_N1C1fEv\0015\00{{.*}}", {{.*}} ; [ DW_TAG_subprogram ] [line 15] [def]{{$}}<br>
+// CHECK: !MDSubprogram(linkageName: "_ZThn{{[48]}}_N1C1fEv"<br>
+// CHECK-SAME:          line: 15<br>
+// CHECK-SAME:          isDefinition: true<br>
+// CHECK-SAME:          ){{$}}<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp Tue Mar  3 11:25:55 2015<br>
@@ -10,6 +10,8 @@ namespace PR15637 {<br>
   Value<float> f;<br>
 }<br>
<br>
-// CHECK:  !"0x17\00Value<float>\00{{.*}}", {{.*}}, [[TTPARAM:![0-9]+]], !"_ZTSN7PR156375ValueIfEE"} ; [ DW_TAG_union_type ] [Value<float>]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_union_type, name: "Value<float>",<br>
+// CHECK-SAME:             templateParams: [[TTPARAM:![0-9]+]]<br>
+// CHECK-SAME:             identifier: "_ZTSN7PR156375ValueIfEE"<br>
 // CHECK: [[TTPARAM]] = !{[[PARAMS:.*]]}<br>
-// CHECK: [[PARAMS]] = !{!"0x2f\00T\000\000", {{.*}} ; [ DW_TAG_template_type_parameter ]<br>
+// CHECK: [[PARAMS]] = !MDTemplateTypeParameter(name: "T"<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-union.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-union.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-union.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-union.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-union.cpp Tue Mar  3 11:25:55 2015<br>
@@ -10,7 +10,11 @@ union E {<br>
<br>
 E e;<br>
<br>
-// CHECK: {{.*}} ; [ DW_TAG_union_type ] [E] [line 3, size 32, align 32, offset 0]<br>
-// CHECK: {{.*}} ; [ DW_TAG_subprogram ] [line 6] [bb]<br>
-// CHECK: {{.*}} ; [ DW_TAG_subprogram ] [line 7] [aa]<br>
-// CHECK: {{.*}} ; [ DW_TAG_subprogram ] [line 8] [E]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_union_type, name: "E"<br>
+// CHECK-SAME:             line: 3<br>
+// CHECK-SAME:             size: 32, align: 32<br>
+// CHECK-NOT:              offset:<br>
+// CHECK-SAME:             {{$}}<br>
+// CHECK: !MDSubprogram(name: "bb"{{.*}}, line: 6<br>
+// CHECK: !MDSubprogram(name: "aa"{{.*}}, line: 7<br>
+// CHECK: !MDSubprogram(name: "E"{{.*}}, line: 8<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-uuid.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-uuid.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-uuid.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-uuid.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-uuid.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,20 +1,33 @@<br>
 // RUN: %clang_cc1 -emit-llvm -fms-extensions -triple=x86_64-pc-win32 -g %s -o - -std=c++11 | FileCheck %s<br>
 // RUN: %clang_cc1 -emit-llvm -fms-extensions -triple=x86_64-unknown-unknown -g %s -o - -std=c++11 2>&1 | FileCheck %s --check-prefix=CHECK-ITANIUM<br>
<br>
-// CHECK: [[TGIARGS:![0-9]*]], null} ; [ DW_TAG_structure_type ] [tmpl_guid<&__uuidof(uuid)>]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "tmpl_guid<&__uuidof(uuid)>"<br>
+// CHECK-SAME:             templateParams: [[TGIARGS:![0-9]*]]<br>
 // CHECK: [[TGIARGS]] = !{[[TGIARG1:![0-9]*]]}<br>
-// CHECK: [[TGIARG1]] = !{!"0x30\00\00{{.*}}", {{[^,]+}}, [[CONST_GUID_PTR:![0-9]*]], { i32, i16, i16, [8 x i8] }* @_GUID_12345678_1234_1234_1234_1234567890ab, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[CONST_GUID_PTR]] = {{.*}}, [[CONST_GUID:![0-9]*]]} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from ]<br>
-// CHECK: [[CONST_GUID]] = {{.*}}, [[GUID:![0-9]*]]} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from _GUID]<br>
-// CHECK: [[GUID]] = {{.*}} ; [ DW_TAG_structure_type ] [_GUID]<br>
+// CHECK: [[TGIARG1]] = !MDTemplateValueParameter(<br>
+// CHECK-SAME:                                    type: [[CONST_GUID_PTR:![0-9]*]]<br>
+// CHECK-SAME:                                    value: { i32, i16, i16, [8 x i8] }* @_GUID_12345678_1234_1234_1234_1234567890ab<br>
+// CHECK: [[CONST_GUID_PTR]] = !MDDerivedType(tag: DW_TAG_pointer_type<br>
+// CHECK-SAME:                                baseType: [[CONST_GUID:![0-9]*]]<br>
+// CHECK-SAME:                                size: 64<br>
+// CHECK-SAME:                                align: 64<br>
+// CHECK: [[CONST_GUID]] = !MDDerivedType(tag: DW_TAG_const_type<br>
+// CHECK-SAME:                            baseType: [[GUID:![0-9]*]]<br>
+// CHECK: [[GUID]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "_GUID"<br>
<br>
-// CHECK: [[TGI2ARGS:![0-9]*]], null} ; [ DW_TAG_structure_type ] [tmpl_guid2<__uuidof(uuid)>]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "tmpl_guid2<__uuidof(uuid)>"<br>
+// CHECK-SAME:             templateParams: [[TGI2ARGS:![0-9]*]]<br>
 // CHECK: [[TGI2ARGS]] = !{[[TGI2ARG1:![0-9]*]]}<br>
-// CHECK: [[TGI2ARG1]] = !{!"0x30\00\00{{.*}}", {{[^,]+}}, [[CONST_GUID_REF:![0-9]*]], { i32, i16, i16, [8 x i8] }* @_GUID_12345678_1234_1234_1234_1234567890ab, {{.*}} ; [ DW_TAG_template_value_parameter ]<br>
-// CHECK: [[CONST_GUID_REF]] = {{.*}}, [[CONST_GUID:![0-9]*]]} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+// CHECK: [[TGI2ARG1]] = !MDTemplateValueParameter(<br>
+// CHECK-SAME:                                     type: [[CONST_GUID_REF:![0-9]*]]<br>
+// CHECK-SAME:                                     value: { i32, i16, i16, [8 x i8] }* @_GUID_12345678_1234_1234_1234_1234567890ab<br>
+// CHECK: [[CONST_GUID_REF]] = !MDDerivedType(tag: DW_TAG_reference_type,<br>
+// CHECK-SAME:                                baseType: [[CONST_GUID:![0-9]*]]<br>
<br>
-// CHECK-ITANIUM: !"_ZTS9tmpl_guidIXadu8__uuidoft4uuidEE"} ; [ DW_TAG_structure_type ] [tmpl_guid<&__uuidof(uuid)>]<br>
-// CHECK-ITANIUM: !"_ZTS10tmpl_guid2IXu8__uuidoft4uuidEE"} ; [ DW_TAG_structure_type ] [tmpl_guid2<__uuidof(uuid)>]<br>
+// CHECK-ITANIUM: !MDCompositeType(tag: DW_TAG_structure_type, name: "tmpl_guid<&__uuidof(uuid)>"<br>
+// CHECK-ITANIUM-SAME:             identifier: "_ZTS9tmpl_guidIXadu8__uuidoft4uuidEE"<br>
+// CHECK-ITANIUM: !MDCompositeType(tag: DW_TAG_structure_type, name: "tmpl_guid2<__uuidof(uuid)>"<br>
+// CHECK-ITANIUM-SAME:             identifier: "_ZTS10tmpl_guid2IXu8__uuidoft4uuidEE"<br>
<br>
 struct _GUID;<br>
 template <const _GUID *><br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-varargs.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-varargs.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-varargs.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-varargs.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-varargs.cpp Tue Mar  3 11:25:55 2015<br>
@@ -2,21 +2,27 @@<br>
<br>
 struct A<br>
 {<br>
-  // CHECK-DAG:  !"0x2e\00a\00a\00_ZN1A1aEiz\00[[@LINE+1]]\00{{[^,]*}}"{{, [^,]+, [^,]+}}, ![[ATY:[0-9]+]]{{.*}}[ DW_TAG_subprogram ]{{.*}}[a]<br>
+  // CHECK: !MDSubprogram(name: "a", linkageName: "_ZN1A1aEiz"<br>
+  // CHECK-SAME:          line: [[@LINE+2]]<br>
+  // CHECK-SAME:          type: ![[ATY:[0-9]+]]<br>
   void a(int c, ...) {}<br>
-  // CHECK: ![[ATY]] ={{.*}} ![[AARGS:[0-9]+]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
+  // CHECK: ![[ATY]] = !MDSubroutineType(types: ![[AARGS:[0-9]+]])<br>
   // We no longer use an explicit unspecified parameter. Instead we use a trailing null to mean the function is variadic.<br>
   // CHECK: ![[AARGS]] = !{null, !{{[0-9]+}}, !{{[0-9]+}}, null}<br>
 };<br>
<br>
-  // CHECK:  !"0x2e\00b\00b\00_Z1biz\00[[@LINE+1]]\00{{[^,]*}}"{{, [^,]+, [^,]+}}, ![[BTY:[0-9]+]]{{.*}}[ DW_TAG_subprogram ]{{.*}}[b]<br>
+  // CHECK: !MDSubprogram(name: "b", linkageName: "_Z1biz"<br>
+  // CHECK-SAME:          line: [[@LINE+2]]<br>
+  // CHECK-SAME:          type: ![[BTY:[0-9]+]]<br>
 void b(int c, ...) {<br>
-  // CHECK: ![[BTY]] ={{.*}} ![[BARGS:[0-9]+]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
+  // CHECK: ![[BTY]] = !MDSubroutineType(types: ![[BARGS:[0-9]+]])<br>
   // CHECK: ![[BARGS]] = !{null, !{{[0-9]+}}, null}<br>
<br>
   A a;<br>
<br>
-  // CHECK:  !"0x100\00fptr\00[[@LINE+1]]\000"{{, [^,]+, [^,]+}}, ![[PST:[0-9]+]]} ; [ DW_TAG_auto_variable ] [fptr] [line [[@LINE+1]]]<br>
+  // CHECK: !MDLocalVariable(tag: DW_TAG_auto_variable, name: "fptr"<br>
+  // CHECK-SAME:             line: [[@LINE+2]]<br>
+  // CHECK-SAME:             type: ![[PST:[0-9]+]]<br>
   void (*fptr)(int, ...) = b;<br>
-  // CHECK: ![[PST]] ={{.*}} ![[BTY]]} ; [ DW_TAG_pointer_type ]<br>
+  // CHECK: ![[PST]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: ![[BTY]],<br>
 }<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-vtable-optzn.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-vtable-optzn.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-vtable-optzn.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-vtable-optzn.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-vtable-optzn.cpp Tue Mar  3 11:25:55 2015<br>
@@ -5,7 +5,7 @@<br>
 // module that has its vtable" optimization is disabled by default on<br>
 // Darwin and FreeBSD.<br>
 //<br>
-// CHECK: [ DW_TAG_member ] [lost]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "lost"<br>
 class A<br>
 {<br>
   virtual bool f() = 0;<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-wchar.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-wchar.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-wchar.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-wchar.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-wchar.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,5 +1,5 @@<br>
 // RUN: %clang_cc1 -emit-llvm -g %s -o -| FileCheck %s<br>
 void foo() {<br>
-// CHECK:  !"0x24\00wchar_t\00{{.*}}", null, null} ; [ DW_TAG_base_type ] [wchar_t]<br>
+// CHECK: !MDBasicType(name: "wchar_t"<br>
   const wchar_t w = L'x';<br>
 }<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp Tue Mar  3 11:25:55 2015<br>
@@ -18,5 +18,5 @@ template struct AB<int>;<br>
 // CHECK: call {{.*}}@"\01??_G?$AB@H@@UAEPAXI@Z"({{.*}}) #{{[0-9]*}}, !dbg [[THUNK_LOC:![0-9]*]]<br>
 // CHECK-LABEL: define<br>
<br>
-// CHECK: [[THUNK_VEC_DEL_DTOR:![0-9]*]] = {{.*}} @"\01??_E?$AB@H@@W3AEPAXI@Z", {{.*}}; [ DW_TAG_subprogram ]<br>
+// CHECK: [[THUNK_VEC_DEL_DTOR:![0-9]*]] = !MDSubprogram({{.*}}function: {{.*}}@"\01??_E?$AB@H@@W3AEPAXI@Z"<br>
 // CHECK: [[THUNK_LOC]] = !MDLocation(line: 15, scope: [[THUNK_VEC_DEL_DTOR]])<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp Tue Mar  3 11:25:55 2015<br>
@@ -6,7 +6,11 @@ class A {<br>
 };<br>
 A a;<br>
<br>
-// CHECK: [[ARRAY_TYPE:![0-9]*]]} ; [ DW_TAG_member ] [x]<br>
-// CHECK:  !"0x1\00\000\000\0032\000\000\000", null, null, {{![0-9]+}}, [[ELEM_TYPE:![0-9]+]], null, null, null} ; [ DW_TAG_array_type ] [line 0, size 0, align 32, offset 0] [from int]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "x"<br>
+// CHECK-SAME:           baseType: [[ARRAY_TYPE:![0-9]+]]<br>
+// CHECK: [[ARRAY_TYPE]] = !MDCompositeType(tag: DW_TAG_array_type,<br>
+// CHECK-NOT:                               size:<br>
+// CHECK-SAME:                              align: 32<br>
+// CHECK-SAME:                              elements: [[ELEM_TYPE:![0-9]+]]<br>
 // CHECK: [[ELEM_TYPE]] = !{[[SUBRANGE:.*]]}<br>
-// CHECK: [[SUBRANGE]] = !{!"0x21\000\00-1"} ; [ DW_TAG_subrange_type ] [unbounded]<br>
+// CHECK: [[SUBRANGE]] = !MDSubrange(count: -1)<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info.cpp Tue Mar  3 11:25:55 2015<br>
@@ -56,17 +56,29 @@ namespace VirtualBase {<br>
 // CHECK: define void @_ZN7pr147634funcENS_3fooE<br>
 // CHECK: call void @llvm.dbg.declare({{.*}}, metadata ![[F:.*]], metadata ![[EXPR:.*]])<br>
<br>
-// MSVC: [[VBASE_B:![0-9]+]] = distinct !{!"0x13\00B\00{{[0-9]+}}\0096\0032\000\000\000", {{.*}}, null, [[VBASE_B_DEF:![0-9]+]], {{.*}}} ; [ DW_TAG_structure_type ] [B] [line 49, size 96, align 32, offset 0] [def] [from ]<br>
+// MSVC: [[VBASE_B:![0-9]+]] = distinct !MDCompositeType(tag: DW_TAG_structure_type, name: "B",{{.*}} line: 49<br>
+// MSVC-SAME:                                            size: 96, align: 32<br>
+// MSVC-NOT:                                             offset:<br>
+// MSVC-NOT:                                             DIFlagFwdDecl<br>
+// MSVC-SAME:                                            elements: [[VBASE_B_DEF:![0-9]+]]<br>
 // MSVC: [[VBASE_B_DEF]] = !{[[VBASE_A_IN_B:![0-9]+]],<br>
 //<br>
 // Look for the vbtable offset of A, which should be 4.<br>
-// MSVC: [[VBASE_A_IN_B]] = !{!"0x1c\00\000\000\000\004\0032", null, [[VBASE_B]], !{{[0-9]*}}} ; [ DW_TAG_inheritance ] [line 0, size 0, align 0, offset 4] [from A]<br>
+// MSVC: [[VBASE_A_IN_B]] = !MDDerivedType(tag: DW_TAG_inheritance, scope: [[VBASE_B]],<br>
+// MSVC-SAME:                              baseType: !{{[0-9]*}}<br>
<br>
-// CHECK:  !"0x13\00B\00{{[0-9]+}}\00128\0064\000\000\000", {{.*}}, null, [[VBASE_B_DEF:![0-9]+]], {{.*}}} ; [ DW_TAG_structure_type ] [B] [line 49, size 128, align 64, offset 0] [def] [from ]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "B",{{.*}} line: 49,<br>
+// CHECK-SAME:             size: 128, align: 64,<br>
+// CHECK-NOT:              offset:<br>
+// CHECK-NOT:              DIFlagFwdDecl<br>
+// CHECK-SAME:             elements: [[VBASE_B_DEF:![^,)]+]]<br>
 // CHECK: [[VBASE_B_DEF]] = !{[[VBASE_A_IN_B:![0-9]+]],<br>
 //<br>
 // Look for the vtable offset offset, which should be -24.<br>
-// CHECK: [[VBASE_A_IN_B]] = !{!"0x1c\00\000\000\000\0024\0032", null, !"_ZTSN11VirtualBase1BE", !"_ZTSN11VirtualBase1AE"} ; [ DW_TAG_inheritance ] [line 0, size 0, align 0, offset 24] [from _ZTSN11VirtualBase1AE]<br>
+// CHECK: [[VBASE_A_IN_B]] = !MDDerivedType(tag: DW_TAG_inheritance<br>
+// CHECK-SAME:                              scope: !"_ZTSN11VirtualBase1BE"<br>
+// CHECK-SAME:                              baseType: !"_ZTSN11VirtualBase1AE"<br>
+// CHECK-SAME:                              offset: 24,<br>
 namespace b5249287 {<br>
 template <typename T> class A {<br>
   struct B;<br>
@@ -88,15 +100,23 @@ foo func(foo f) {<br>
   return f; // reference 'f' for now because otherwise we hit another bug<br>
 }<br>
<br>
-// CHECK:  !"0x13\00{{.*}}", !{{[0-9]*}}, [[PR14763:![0-9]*]], {{.*}}, !"[[FOO:.*]]"} ; [ DW_TAG_structure_type ] [foo]<br>
-// CHECK: [[PR14763]] = {{.*}} ; [ DW_TAG_namespace ] [pr14763]<br>
-// CHECK: [[INCTYPE:![0-9]*]] = {{.*}} ; [ DW_TAG_structure_type ] [incomplete]{{.*}} [decl]<br>
-// CHECK: [[A_MEM:![0-9]*]], null, null, !"_ZTSN7pr162141aE"} ; [ DW_TAG_structure_type ] [a]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo"<br>
+// CHECK-SAME:             scope: [[PR14763:![0-9]+]]<br>
+// CHECK-SAME:             identifier: "[[FOO:.*]]"<br>
+// CHECK: [[PR14763]] = !MDNamespace(name: "pr14763"<br>
+// CHECK: [[INCTYPE:![0-9]*]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "incomplete"<br>
+// CHECK-SAME:                                   DIFlagFwdDecl<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "a"<br>
+// CHECK-SAME:             elements: [[A_MEM:![0-9]+]]<br>
+// CHECK-SAME:             identifier: "_ZTSN7pr162141aE"<br>
 // CHECK: [[A_MEM]] = !{[[A_I:![0-9]*]]}<br>
-// CHECK: [[A_I]] = {{.*}} ; [ DW_TAG_member ] [i] {{.*}} [from int]<br>
-// CHECK: ; [ DW_TAG_structure_type ] [b] {{.*}}[decl]<br>
-<br>
-// CHECK: [[FUNC:![0-9]*]] = !{!"0x2e\00func\00func\00_ZN7pr147634funcENS_3fooE\00{{.*}}"{{, [^,]+, [^,]+}}, [[FUNC_TYPE:![0-9]*]], {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [def] [func]<br>
+// CHECK: [[A_I]] = !MDDerivedType(tag: DW_TAG_member, name: "i"<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "b"<br>
+// CHECK-SAME:             DIFlagFwdDecl<br>
+<br>
+// CHECK: [[FUNC:![0-9]+]] = !MDSubprogram(name: "func", linkageName: "_ZN7pr147634funcENS_3fooE"<br>
+// CHECK-SAME:                             type: [[FUNC_TYPE:![0-9]*]]<br>
+// CHECK-SAME:                             isDefinition: true<br>
 }<br>
<br>
 void foo() {<br>
@@ -104,21 +124,29 @@ void foo() {<br>
   wchar_t d = c;<br>
 }<br>
<br>
-// CHECK-NOT: ; [ DW_TAG_variable ] [c]<br>
+// CHECK-NOT: !MDGlobalVariable(name: "c"<br>
<br>
 namespace pr9608 { // also pr9600<br>
 struct incomplete;<br>
 incomplete (*x)[3];<br>
-// CHECK: [[INCARRAYPTR:![0-9]*]], [3 x i8]** @_ZN6pr96081xE, null} ; [ DW_TAG_variable ] [x]<br>
-// CHECK: [[INCARRAYPTR]] = {{.*}}[[INCARRAY:![0-9]*]]} ; [ DW_TAG_pointer_type ]<br>
-// CHECK: [[INCARRAY]] = !{!"0x1\00\000\000\000\000\000\000", null, null, !"_ZTSN6pr960810incompleteE", {{![0-9]+}}, null, null, null} ; [ DW_TAG_array_type ] [line 0, size 0, align 0, offset 0] [from _ZTSN6pr960810incompleteE]<br>
+// CHECK: !MDGlobalVariable(name: "x", linkageName: "_ZN6pr96081xE"<br>
+// CHECK-SAME:              type: [[INCARRAYPTR:![0-9]*]]<br>
+// CHECK-SAME:              variable: [3 x i8]** @_ZN6pr96081xE<br>
+// CHECK: [[INCARRAYPTR]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: [[INCARRAY:![0-9]+]]<br>
+// CHECK: [[INCARRAY]] = !MDCompositeType(tag: DW_TAG_array_type<br>
+// CHECK-NOT:                             line:<br>
+// CHECK-NOT:                             size:<br>
+// CHECK-NOT:                             align:<br>
+// CHECK-NOT:                             offset:<br>
+// CHECK-SAME:                            baseType: !"_ZTSN6pr960810incompleteE"<br>
 }<br>
<br>
 // For some reason function arguments ended up down here<br>
-// CHECK: ![[F]] = !{!"0x101\00f\00{{.*}}\000", [[FUNC]], {{![0-9]+}}, !"[[FOO]]"} ; [ DW_TAG_arg_variable ] [f]<br>
-// CHECK: ![[EXPR]] = {{.*}} ; [ DW_TAG_expression ] [DW_OP_deref]<br>
+// CHECK: ![[F]] = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "f", arg: 1, scope: [[FUNC]]<br>
+// CHECK-SAME:                      type: !"[[FOO]]"<br>
+// CHECK: ![[EXPR]] = !MDExpression(DW_OP_deref)<br>
<br>
-// CHECK: ; [ DW_TAG_auto_variable ] [c]<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_auto_variable, name: "c"<br>
<br>
 namespace pr16214 {<br>
 struct a {<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp Tue Mar  3 11:25:55 2015<br>
@@ -15,52 +15,88 @@ struct D { D(); D(const D&); int x; };<br>
 int d(int x) { D y[10]; return [x,y] { return y[x].x; }(); }<br>
<br>
 // Randomness for file. -- 6<br>
-// CHECK: [[FILE:.*]] = {{.*}} [ DW_TAG_file_type ] [{{.*}}debug-lambda-expressions.cpp]<br>
+// CHECK: [[FILE:.*]] = !MDFile(filename: "{{.*}}debug-lambda-expressions.cpp",<br>
+<br>
+// CHECK: ![[INT:[0-9]+]] = !MDBasicType(name: "int"<br>
<br>
 // A: 10<br>
-// CHECK: [[A_FUNC:.*]] = {{.*}} [ DW_TAG_subprogram ] [line [[A_LINE:.*]]] [def] [a]<br>
+// CHECK: ![[A_FUNC:.*]] = !MDSubprogram(name: "a"{{.*}}, line: [[A_LINE:[0-9]+]]{{.*}}, isDefinition: true<br>
<br>
 // B: 14<br>
-// CHECK: [[B_FUNC:.*]] = {{.*}} [ DW_TAG_subprogram ] [line [[B_LINE:.*]]] [def] [b]<br>
+// CHECK: ![[B_FUNC:.*]] = !MDSubprogram(name: "b"{{.*}}, line: [[B_LINE:[0-9]+]]{{.*}}, isDefinition: true<br>
<br>
 // C: 17<br>
-// CHECK: [[C_FUNC:.*]] = {{.*}} [ DW_TAG_subprogram ] [line [[C_LINE:.*]]] [def] [c]<br>
+// CHECK: ![[C_FUNC:.*]] = !MDSubprogram(name: "c"{{.*}}, line: [[C_LINE:[0-9]+]]{{.*}}, isDefinition: true<br>
<br>
 // D: 18<br>
-// CHECK: [[D_FUNC:.*]] = {{.*}} [ DW_TAG_subprogram ] [line [[D_LINE:.*]]] [def] [d]<br>
+// CHECK: ![[D_FUNC:.*]] = !MDSubprogram(name: "d"{{.*}}, line: [[D_LINE:[0-9]+]]{{.*}}, isDefinition: true<br>
<br>
<br>
 // Back to A. -- 78<br>
-// CHECK: [[LAM_A:.*]] = {{.*}}, [[A_FUNC]], {{.*}}, [[LAM_A_ARGS:.*]], null, null, null} ; [ DW_TAG_class_type ] [line [[A_LINE]],<br>
-// CHECK: [[LAM_A_ARGS]] = !{[[CON_LAM_A:.*]]}<br>
-// CHECK: [[CON_LAM_A]] = {{.*}}, [[LAM_A]], {{.*}} [ DW_TAG_subprogram ] [line [[A_LINE]]] [public] [operator()]<br>
+// CHECK: ![[LAM_A:.*]] = !MDCompositeType(tag: DW_TAG_class_type{{.*}}, scope: ![[A_FUNC]]{{.*}}, line: [[A_LINE]],<br>
+// CHECK-SAME:                             elements: ![[LAM_A_ARGS:[0-9]+]]<br>
+// CHECK: ![[LAM_A_ARGS]] = !{![[CON_LAM_A:[0-9]+]]}<br>
+// CHECK: ![[CON_LAM_A]] = !MDSubprogram(name: "operator()"<br>
+// CHECK-SAME:                           scope: ![[LAM_A]]<br>
+// CHECK-SAME:                           line: [[A_LINE]]<br>
+// CHECK-SAME:                           DIFlagPublic<br>
<br>
 // Back to B. -- 67<br>
-// CHECK: [[LAM_B:.*]] = {{.*}}, [[B_FUNC]], {{.*}}, [[LAM_B_ARGS:.*]], null, null, null} ; [ DW_TAG_class_type ] [line [[B_LINE]],<br>
-// CHECK: [[LAM_B_ARGS]] = !{[[CAP_B:.*]], [[CON_LAM_B:.*]]}<br>
-// CHECK: [[CAP_B]] = {{.*}}, [[LAM_B]], {{.*}}} ; [ DW_TAG_member ] [x] [line [[B_LINE]],<br>
-// CHECK: [[CON_LAM_B]] = {{.*}}, [[LAM_B]], {{.*}} [ DW_TAG_subprogram ] [line [[B_LINE]]] [public] [operator()]<br>
+// CHECK: ![[LAM_B:.*]] = !MDCompositeType(tag: DW_TAG_class_type{{.*}}, scope: ![[B_FUNC]]{{.*}}, line: [[B_LINE]],<br>
+// CHECK-SAME:                             elements: ![[LAM_B_ARGS:[0-9]+]]<br>
+// CHECK: ![[LAM_B_ARGS]] = !{![[CAP_B:[0-9]+]], ![[CON_LAM_B:[0-9]+]]}<br>
+// CHECK: ![[CAP_B]] = !MDDerivedType(tag: DW_TAG_member, name: "x"<br>
+// CHECK-SAME:                        scope: ![[LAM_B]]<br>
+// CHECK-SAME:                        line: [[B_LINE]],<br>
+// CHECK-SAME:                        baseType: ![[INT]]<br>
+// CHECK: ![[CON_LAM_B]] = !MDSubprogram(name: "operator()"<br>
+// CHECK-SAME:                           scope: ![[LAM_B]]<br>
+// CHECK-SAME:                           line: [[B_LINE]]<br>
+// CHECK-SAME:                           DIFlagPublic<br>
<br>
 // Back to C. -- 55<br>
-// CHECK: [[LAM_C:.*]] = {{.*}}, [[C_FUNC]], {{.*}}, [[LAM_C_ARGS:.*]], null, null, null} ; [ DW_TAG_class_type ] [line [[C_LINE]],<br>
-// CHECK: [[LAM_C_ARGS]] = !{[[CAP_C:.*]], [[CON_LAM_C:.*]]}<br>
-// Ignoring the member type for now.<br>
-// CHECK: [[CAP_C]] = {{.*}}, [[LAM_C]], {{.*}}} ; [ DW_TAG_member ] [x] [line [[C_LINE]],<br>
-// CHECK: [[CON_LAM_C]] = {{.*}}, [[LAM_C]], {{.*}} [ DW_TAG_subprogram ] [line [[C_LINE]]] [public] [operator()]<br>
+// CHECK: ![[LAM_C:.*]] = !MDCompositeType(tag: DW_TAG_class_type{{.*}}, scope: ![[C_FUNC]]{{.*}}, line: [[C_LINE]],<br>
+// CHECK-SAME:                             elements: ![[LAM_C_ARGS:[0-9]+]]<br>
+// CHECK: ![[LAM_C_ARGS]] = !{![[CAP_C:[0-9]+]], ![[CON_LAM_C:[0-9]+]]}<br>
+// CHECK: ![[CAP_C]] = !MDDerivedType(tag: DW_TAG_member, name: "x"<br>
+// CHECK-SAME:                        scope: ![[LAM_C]]<br>
+// CHECK-SAME:                        line: [[C_LINE]],<br>
+// CHECK-SAME:                        baseType: ![[TYPE_C_x:[0-9]+]]<br>
+// CHECK: ![[TYPE_C_x]] = !MDDerivedType(tag: DW_TAG_reference_type, baseType: ![[INT]]<br>
+// CHECK: ![[CON_LAM_C]] = !MDSubprogram(name: "operator()"<br>
+// CHECK-SAME:                           scope: ![[LAM_C]]<br>
+// CHECK-SAME:                           line: [[C_LINE]]<br>
+// CHECK-SAME:                           DIFlagPublic<br>
<br>
 // Back to D. -- 24<br>
-// CHECK: [[LAM_D:.*]] = {{.*}}, [[D_FUNC]], {{.*}}, [[LAM_D_ARGS:.*]], null, null, null} ; [ DW_TAG_class_type ] [line [[D_LINE]],<br>
-// CHECK: [[LAM_D_ARGS]] = !{[[CAP_D_X:.*]], [[CAP_D_Y:.*]], [[CON_LAM_D:.*]]}<br>
-// CHECK: [[CAP_D_X]] = {{.*}}, [[LAM_D]], {{.*}} [ DW_TAG_member ] [x] [line [[D_LINE]],<br>
-// CHECK: [[CAP_D_Y]] = {{.*}}, [[LAM_D]], {{.*}} [ DW_TAG_member ] [y] [line [[D_LINE]],<br>
-// CHECK: [[CON_LAM_D]] = {{.*}}, [[LAM_D]], {{.*}} [ DW_TAG_subprogram ] [line [[D_LINE]]] [public] [operator()]<br>
+// CHECK: ![[LAM_D:.*]] = !MDCompositeType(tag: DW_TAG_class_type{{.*}}, scope: ![[D_FUNC]]{{.*}}, line: [[D_LINE]],<br>
+// CHECK-SAME:                             elements: ![[LAM_D_ARGS:[0-9]+]]<br>
+// CHECK: ![[LAM_D_ARGS]] = !{![[CAP_D_X:[0-9]+]], ![[CAP_D_Y:[0-9]+]], ![[CON_LAM_D:[0-9]+]]}<br>
+// CHECK: ![[CAP_D_X]] = !MDDerivedType(tag: DW_TAG_member, name: "x"<br>
+// CHECK-SAME:                          scope: ![[LAM_D]]<br>
+// CHECK-SAME:                          line: [[D_LINE]],<br>
+// CHECK: ![[CAP_D_Y]] = !MDDerivedType(tag: DW_TAG_member, name: "y"<br>
+// CHECK-SAME:                          scope: ![[LAM_D]]<br>
+// CHECK-SAME:                          line: [[D_LINE]],<br>
+// CHECK: ![[CON_LAM_D]] = !MDSubprogram(name: "operator()"<br>
+// CHECK-SAME:                           scope: ![[LAM_D]]<br>
+// CHECK-SAME:                           line: [[D_LINE]]<br>
+// CHECK-SAME:                           DIFlagPublic<br>
<br>
 // CVAR:<br>
-// CHECK: {{.*}} [[CVAR_T:![0-9]*]], {{.*}} ; [ DW_TAG_variable ] [cvar] [line [[CVAR_LINE:[0-9]*]]]<br>
-// CHECK: [[CVAR_T]] = {{.*}}, ![[CVAR_ARGS:.*]], null, null, null} ; [ DW_TAG_class_type ] [line [[CVAR_LINE]],<br>
-// CHECK: [[CVAR_ARGS]] = !{!{{.*}}}<br>
+// CHECK: !MDGlobalVariable(name: "cvar"<br>
+// CHECK-SAME:              line: [[CVAR_LINE:[0-9]+]]<br>
+// CHECK-SAME:              type: ![[CVAR_T:[0-9]+]]<br>
+// CHECK: ![[CVAR_T]] = !MDCompositeType(tag: DW_TAG_class_type<br>
+// CHECK-SAME:                           line: [[CVAR_LINE]],<br>
+// CHECK-SAME:                           elements: ![[CVAR_ARGS:[0-9]+]]<br>
+// CHECK: ![[CVAR_ARGS]] = !{!{{[0-9]+}}}<br>
<br>
 // VAR:<br>
-// CHECK: {{.*}} [[VAR_T:![0-9]*]], {{.*}} ; [ DW_TAG_variable ] [var] [line [[VAR_LINE:[0-9]*]]]<br>
-// CHECK: [[VAR_T]] = {{.*}}, [[VAR_ARGS:![0-9]*]], null, null, null} ; [ DW_TAG_class_type ] [line [[VAR_LINE]],<br>
-// CHECK: [[VAR_ARGS]] = !{!{{.*}}}<br>
+// CHECK: !MDGlobalVariable(name: "var"<br>
+// CHECK-SAME:              line: [[VAR_LINE:[0-9]+]]<br>
+// CHECK-SAME:              type: ![[VAR_T:[0-9]+]]<br>
+// CHECK: ![[VAR_T]] = !MDCompositeType(tag: DW_TAG_class_type<br>
+// CHECK-SAME:                          line: [[VAR_LINE]],<br>
+// CHECK-SAME:                          elements: ![[VAR_ARGS:[0-9]+]]<br>
+// CHECK: ![[VAR_ARGS]] = !{!{{[0-9]+}}}<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-lambda-this.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-lambda-this.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-lambda-this.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-lambda-this.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-lambda-this.cpp Tue Mar  3 11:25:55 2015<br>
@@ -12,4 +12,10 @@ int D::d(int x) {<br>
   }();<br>
 }<br>
<br>
-// CHECK: {{.*}} [ DW_TAG_member ] [this] [line 11, size 64, align 64, offset 0] [from ]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "this",<br>
+// CHECK-SAME:           line: 11<br>
+// CHECK-SAME:           baseType: ![[POINTER:[0-9]+]]<br>
+// CHECK-SAME:           size: 64, align: 64<br>
+// CHECK-NOT:            offset: 0<br>
+// CHECK-SAME:           ){{$}}<br>
+// CHECK: ![[POINTER]] = !MDDerivedType(tag: DW_TAG_pointer_type<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/field-access-debug-info.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/field-access-debug-info.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/field-access-debug-info.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/field-access-debug-info.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/field-access-debug-info.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,7 +1,12 @@<br>
 // RUN: %clang -g -S -emit-llvm %s -o - | FileCheck %s<br>
<br>
-// CHECK: [ DW_TAG_member ] [p] [{{[^]]*}}] [public] [from int]<br>
-// CHECK: [ DW_TAG_member ] [pr] [{{[^]]*}}] [from int]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "p"<br>
+// CHECK-SAME:           baseType: ![[INT:[0-9]+]]<br>
+// CHECK-SAME:           DIFlagPublic<br>
+// CHECK: ![[INT]] = !MDBasicType(name: "int"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "pr"<br>
+// CHECK-NOT:            flags:<br>
+// CHECK-SAME:           baseType: ![[INT]]<br>
<br>
 class A {<br>
 public:<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/globalinit-loc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/globalinit-loc.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/globalinit-loc.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/globalinit-loc.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/globalinit-loc.cpp Tue Mar  3 11:25:55 2015<br>
@@ -6,7 +6,10 @@<br>
 //<br>
 // CHECK: define internal void @_GLOBAL__sub_I_globalinit_loc.cpp<br>
 // CHECK: !dbg ![[DBG:.*]]<br>
-// CHECK:  !"0x2e\00\00\00_GLOBAL__sub_I_globalinit_loc.cpp\000\00{{.*}}\000", {{.*}} ; [ DW_TAG_subprogram ] [line 0] [local] [def]<br>
+// CHECK: !MDSubprogram(linkageName: "_GLOBAL__sub_I_globalinit_loc.cpp"<br>
+// CHECK-NOT:           line:<br>
+// CHECK-SAME:          isLocal: true<br>
+// CHECK-SAME:          isDefinition: true<br>
 // CHECK: ![[DBG]] = !MDLocation(line: 0,<br>
 # 99 "someheader.h"<br>
 class A {<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp Tue Mar  3 11:25:55 2015<br>
@@ -5,6 +5,7 @@ struct __declspec(dllexport) s {<br>
   static const unsigned int ui = 0;<br>
 };<br>
<br>
-// CHECK: , [[SCOPE:![^,]*]], {{.*}}, i32* @_ZN1s2uiE, {{.*}}} ; [ DW_TAG_variable ] [ui] [line 5] [def]<br>
-// CHECK: [[SCOPE]] = {{.*}} ; [ DW_TAG_file_type ]<br>
+// CHECK: ![[SCOPE:[0-9]+]] = !MDCompileUnit(<br>
+// CHECK: !MDGlobalVariable(name: "ui", linkageName: "_ZN1s2uiE", scope: ![[SCOPE]],<br>
+// CHECK-SAME:              variable: i32* @_ZN1s2uiE<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp Tue Mar  3 11:25:55 2015<br>
@@ -45,14 +45,14 @@ void bar()<br>
 void baz()<br>
 {<br>
   if (!foo())<br>
-    // CHECK: ![[SCOPE1:.*]] = !{!"0xb\00[[@LINE-1]]\00{{.*}}", {{.*}} ; [ DW_TAG_lexical_block ]<br>
+    // CHECK: ![[SCOPE1:.*]] = distinct !MDLexicalBlock({{.*}}, line: [[@LINE-1]])<br>
     // CHECK: {{.*}} = !MDLocation(line: [[@LINE+1]], scope: ![[SCOPE1]])<br>
     return;<br>
<br>
   if (foo()) {<br>
     // no cleanup<br>
     // CHECK: {{.*}} = !MDLocation(line: [[@LINE+2]], scope: ![[SCOPE2:.*]])<br>
-    // CHECK: ![[SCOPE2]] = !{!"0xb\00[[@LINE-3]]\00{{.*}}", {{.*}} ; [ DW_TAG_lexical_block ]<br>
+    // CHECK: ![[SCOPE2]] = distinct !MDLexicalBlock({{.*}}, line: [[@LINE-3]])<br>
     return;<br>
   }<br>
   // CHECK: ![[RETBAZ]] = !MDLocation(line: [[@LINE+1]], scope: !{{.*}})<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/linetable-eh.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/linetable-eh.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/linetable-eh.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/linetable-eh.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/linetable-eh.cpp Tue Mar  3 11:25:55 2015<br>
@@ -10,8 +10,8 @@<br>
 // CHECK-NEXT: call void @llvm.dbg.declare(metadata {{.*}}, metadata ![[FOUND_IT:.*]], metadata !{{.*}}), !dbg ![[DBG2:.*]]<br>
 // CHECK: = landingpad<br>
 // CHECK-NEXT: cleanup, !dbg ![[DBG3:.*]]<br>
-// CHECK-DAG: ![[CURRENT_ADDR]] = {{.*}} [current_address]<br>
-// CHECK-DAG: ![[FOUND_IT]] = {{.*}} [found_it]<br>
+// CHECK-DAG: ![[CURRENT_ADDR]] = {{.*}}name: "current_address"<br>
+// CHECK-DAG: ![[FOUND_IT]] = {{.*}}name: "found_it"<br>
 // CHECK-DAG: ![[DBG1]] = !MDLocation(line: 256,<br>
 // CHECK-DAG: ![[DBG2]] = !MDLocation(line: 257,<br>
 // CHECK-DAG: ![[DBG3]] = !MDLocation(line: 268,<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/linetable-fnbegin.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/linetable-fnbegin.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/linetable-fnbegin.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/linetable-fnbegin.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/linetable-fnbegin.cpp Tue Mar  3 11:25:55 2015<br>
@@ -4,8 +4,10 @@<br>
 // CHECK: define{{.*}}bar<br>
 // CHECK-NOT: define<br>
 // CHECK: ret {{.*}}, !dbg [[DBG:.*]]<br>
-// CHECK: [[HPP:.*]] = !{!"./template.hpp",<br>
-// CHECK: [[SP:.*]] = !{!"0x2e\00{{.*}}", [[HPP]],{{.*}}[ DW_TAG_subprogram ] [line 22] [def] [bar]<br>
+// CHECK: [[HPP:.*]] = !MDFile(filename: "./template.hpp",<br>
+// CHECK: [[SP:.*]] = !MDSubprogram(name: "bar",<br>
+// CHECK-SAME:                      file: [[HPP]], line: 22<br>
+// CHECK-SAME:                      isDefinition: true<br>
 // We shouldn't need a lexical block for this function.<br>
 // CHECK: [[DBG]] = !MDLocation(line: 23, scope: [[SP]])<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/scoped-enums-debug-info.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/scoped-enums-debug-info.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/scoped-enums-debug-info.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/scoped-enums-debug-info.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/scoped-enums-debug-info.cpp Tue Mar  3 11:25:55 2015<br>
@@ -1,7 +1,9 @@<br>
 // RUN: %clang_cc1 -std=c++11 -emit-llvm -g -o - %s | FileCheck %s<br>
 // Test that we are emitting debug info and base types for scoped enums.<br>
<br>
-// CHECK: [ DW_TAG_enumeration_type ] [Color] {{.*}} [from int]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "Color"<br>
+// CHECK-SAME:             baseType: ![[INT:[0-9]+]]<br>
+// CHECK: ![[INT]] = !MDBasicType(name: "int"<br>
 enum class Color { gray };<br>
<br>
 void f(Color);<br>
@@ -9,7 +11,8 @@ void g() {<br>
   f(Color::gray);<br>
 }<br>
<br>
-// CHECK: [ DW_TAG_enumeration_type ] [Colour] {{.*}} [from int]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "Colour"<br>
+// CHECK-SAME:             baseType: ![[INT]]<br>
 enum struct Colour { grey };<br>
<br>
 void h(Colour);<br>
@@ -17,7 +20,9 @@ void i() {<br>
   h(Colour::grey);<br>
 }<br>
<br>
-// CHECK: [ DW_TAG_enumeration_type ] [Couleur] {{.*}} [from unsigned char]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "Couleur"<br>
+// CHECK-SAME:             baseType: ![[UCHAR:[0-9]+]]<br>
+// CHECK: ![[UCHAR]] = !MDBasicType(name: "unsigned char"<br>
 enum class Couleur : unsigned char { gris };<br>
<br>
 void j(Couleur);<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/vtable-holder-self-reference.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/vtable-holder-self-reference.cpp?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/vtable-holder-self-reference.cpp?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/vtable-holder-self-reference.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/vtable-holder-self-reference.cpp Tue Mar  3 11:25:55 2015<br>
@@ -4,7 +4,8 @@<br>
 // rid of self-referenceing structure_types (PR21902), then it should be safe<br>
 // to just kill this test.<br>
 //<br>
-// CHECK: ![[SELF:[0-9]+]] = distinct !{!"0x13\00B\00{{[^"]*}}", {{[^,]+}}, {{[^,]+}}, {{[^,]+}}, {{[^,]+}}, ![[SELF]], {{[^}]+}}} ; [ DW_TAG_structure_type ] [B]<br>
+// CHECK: ![[SELF:[0-9]+]] = distinct !MDCompositeType(tag: DW_TAG_structure_type, name: "B",<br>
+// CHECK-SAME:                                         vtableHolder: ![[SELF]]<br>
<br>
 void foo() {<br>
   struct V {<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/2010-02-09-DbgSelf.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/2010-02-09-DbgSelf.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/2010-02-09-DbgSelf.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/2010-02-09-DbgSelf.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/2010-02-09-DbgSelf.m Tue Mar  3 11:25:55 2015<br>
@@ -1,7 +1,7 @@<br>
 // RUN: %clang_cc1 -x objective-c -emit-llvm -g < %s | FileCheck %s<br>
 // Test to check that "self" argument is assigned a location.<br>
 // CHECK: call void @llvm.dbg.declare(metadata %0** %{{[^,]+}}, metadata [[SELF:![0-9]*]], metadata !{{.*}})<br>
-// CHECK: [[SELF]] = {{.*}} ; [ DW_TAG_arg_variable ] [self]<br>
+// CHECK: [[SELF]] = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "self"<br>
<br>
 @interface Foo<br>
 -(void) Bar: (int)x ;<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/2010-02-15-Dbg-MethodStart.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/2010-02-15-Dbg-MethodStart.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/2010-02-15-Dbg-MethodStart.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/2010-02-15-Dbg-MethodStart.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/2010-02-15-Dbg-MethodStart.m Tue Mar  3 11:25:55 2015<br>
@@ -7,7 +7,7 @@<br>
<br>
 @implementation Foo<br>
 -(int) barMethod {<br>
-// CHECK: [ DW_TAG_subprogram ] [line [[@LINE-1]]]<br>
+  // CHECK: !MDSubprogram({{.*}}line: [[@LINE-1]]<br>
   int i = 0;<br>
   int j = 1;<br>
   int k = 1;<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/arc-linetable.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/arc-linetable.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/arc-linetable.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/arc-linetable.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/arc-linetable.m Tue Mar  3 11:25:55 2015<br>
@@ -54,7 +54,9 @@ typedef signed char BOOL;<br>
<br>
 @implementation AppDelegate : NSObject<br>
<br>
-// CHECK: ![[TESTNOSIDEEFFECT:.*]] = {{.*}}[ DW_TAG_subprogram ] [line [[@LINE+1]]] [local] [def] [-[AppDelegate testNoSideEffect:]]<br>
+// CHECK: ![[TESTNOSIDEEFFECT:.*]] = !MDSubprogram(name: "-[AppDelegate testNoSideEffect:]"<br>
+// CHECK-SAME:                                     line: [[@LINE+2]]<br>
+// CHECK-SAME:                                     isLocal: true, isDefinition: true<br>
 - (int)testNoSideEffect:(NSString *)foo {<br>
   int x = 1;<br>
   return 1; // Return expression<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/block-byref-debuginfo.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/block-byref-debuginfo.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/block-byref-debuginfo.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/block-byref-debuginfo.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/block-byref-debuginfo.m Tue Mar  3 11:25:55 2015<br>
@@ -3,7 +3,10 @@<br>
 // rdar://problem/14386148<br>
 // Test that the foo is aligned at an 8 byte boundary in the DWARF<br>
 // expression (256) that locates it inside of the byref descriptor:<br>
-// CHECK: [ DW_TAG_member ] [foo] [line 0, size {{[0-9]+}}, align 64, offset 256] [from Foo]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "foo",<br>
+// CHECK-NOT:            line:<br>
+// CHECK-SAME:           align: 64<br>
+// CHECK-SAME:           offset: 256<br>
<br>
 struct Foo {<br>
   unsigned char *data;<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/catch-lexical-block.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/catch-lexical-block.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/catch-lexical-block.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/catch-lexical-block.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/catch-lexical-block.m Tue Mar  3 11:25:55 2015<br>
@@ -9,7 +9,7 @@ void f0() {<br>
<br>
 // We should have 3 lexical blocks here at the moment, including one<br>
 // for the catch block.<br>
-// CHECK: lexical_block<br>
-// CHECK: auto_variable<br>
-// CHECK: lexical_block<br>
-// CHECK: lexical_block<br>
+// CHECK: !MDLexicalBlock(<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_auto_variable<br>
+// CHECK: !MDLexicalBlock(<br>
+// CHECK: !MDLexicalBlock(<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-block-captured-self.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-block-captured-self.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-block-captured-self.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-block-captured-self.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-block-captured-self.m Tue Mar  3 11:25:55 2015<br>
@@ -63,7 +63,9 @@ typedef enum {<br>
 // make sure we are still in the same function<br>
 // CHECK: define {{.*}}__copy_helper_block_<br>
 // Metadata<br>
-// CHECK:        ![[MAIN:.*]] = !{!"0x13\00Main\0023\00{{.*}}", {{.*}} ; [ DW_TAG_structure_type ] [Main] [line 23,<br>
-// CHECK:        ![[PMAIN:.*]] = {{.*}}![[MAIN]]} ; [ DW_TAG_pointer_type ]{{.*}}from Main<br>
-// CHECK:        ![[BDMD]] = {{.*}}.block_descriptor<br>
-// CHECK:        ![[SELF]] = {{.*}}![[PMAIN]]{{.*}}[ DW_TAG_auto_variable ] [self] [line 40]<br>
+// CHECK: ![[MAIN:.*]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "Main"<br>
+// CHECK-SAME:                            line: 23,<br>
+// CHECK: ![[PMAIN:.*]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: ![[MAIN]],<br>
+// CHECK: ![[BDMD]] = !MDLocalVariable(tag: DW_TAG_arg_variable, name: ".block_descriptor"<br>
+// CHECK: ![[SELF]] = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "self"<br>
+// CHECK-SAME:                         line: 40,<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-block-helper.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-block-helper.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-block-helper.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-block-helper.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-block-helper.m Tue Mar  3 11:25:55 2015<br>
@@ -2,7 +2,7 @@<br>
 // RUN: %clang_cc1 -emit-llvm -fblocks -g -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 %s -o - | FileCheck %s<br>
 extern void foo(void(^)(void));<br>
<br>
-// CHECK: [ DW_TAG_subprogram ] {{.*}} [__destroy_helper_block_]<br>
+// CHECK: !MDSubprogram(name: "__destroy_helper_block_"<br>
<br>
 @interface NSObject {<br>
   struct objc_object *isa;<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-block-type.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-block-type.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-block-type.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-block-type.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-block-type.m Tue Mar  3 11:25:55 2015<br>
@@ -1,18 +1,23 @@<br>
 // RUN: %clang_cc1 -emit-llvm -fblocks -g  -triple x86_64-apple-darwin14 -x objective-c < %s -o - | FileCheck %s<br>
 #define nil ((void*) 0)<br>
 typedef signed char BOOL;<br>
-// CHECK: ![[BOOL:[0-9]+]] = {{.*}} [ DW_TAG_typedef ] [BOOL] [line [[@LINE-1]]<br>
-// CHECK: ![[ID:[0-9]+]] = {{.*}} [ DW_TAG_typedef ] [id]<br>
+// CHECK: ![[BOOL:[0-9]+]] = !MDDerivedType(tag: DW_TAG_typedef, name: "BOOL"<br>
+// CHECK-SAME:                              line: [[@LINE-2]]<br>
+// CHECK: ![[ID:[0-9]+]] = !MDDerivedType(tag: DW_TAG_typedef, name: "id"<br>
<br>
 typedef BOOL (^SomeKindOfPredicate)(id obj);<br>
-// CHECK: ![[PTR:[0-9]+]]} ; [ DW_TAG_member ] [__FuncPtr]<br>
-// CHECK: ![[PTR]] = {{.*}}, ![[FNTYPE:[0-9]+]]} ; [ DW_TAG_pointer_type ]<br>
-// CHECK: ![[FNTYPE]] = {{.*}} ![[ARGS:[0-9]+]]{{.*}} ; [ DW_TAG_subroutine_type ]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "__FuncPtr"<br>
+// CHECK-SAME:           baseType: ![[PTR:[0-9]+]]<br>
+// CHECK: ![[PTR]] = !MDDerivedType(tag: DW_TAG_pointer_type,<br>
+// CHECK-SAME:                      baseType: ![[FNTYPE:[0-9]+]]<br>
+// CHECK: ![[FNTYPE]] = !MDSubroutineType(types: ![[ARGS:[0-9]+]])<br>
 // CHECK: ![[ARGS]] = !{![[BOOL]], ![[ID]]}<br>
<br>
 int main()<br>
 {<br>
   SomeKindOfPredicate p = ^BOOL(id obj) { return obj != nil; };<br>
-  // CHECK: ![[PTR]]} ; [ DW_TAG_member ] [__FuncPtr] [line [[@LINE-1]], size 64, align 64, offset 128]<br>
+  // CHECK: !MDDerivedType(tag: DW_TAG_member, name: "__FuncPtr",<br>
+  // CHECK-SAME:           line: [[@LINE-2]]<br>
+  // CHECK-SAME:           size: 64, align: 64, offset: 128,<br>
   return p(nil);<br>
 }<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-blocks.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-blocks.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-blocks.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-blocks.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-blocks.m Tue Mar  3 11:25:55 2015<br>
@@ -24,9 +24,9 @@<br>
<br>
 // CHECK-DAG: [[DBG_LINE]] = !MDLocation(line: 0, scope: ![[COPY_SP:[0-9]+]])<br>
 // CHECK-DAG: [[COPY_LINE]] = !MDLocation(line: 0, scope: ![[COPY_SP:[0-9]+]])<br>
-// CHECK-DAG: [[COPY_SP]] = {{.*}}[ DW_TAG_subprogram ]{{.*}}[__copy_helper_block_]<br>
+// CHECK-DAG: [[COPY_SP]] = !MDSubprogram(name: "__copy_helper_block_"<br>
 // CHECK-DAG: [[DESTROY_LINE]] = !MDLocation(line: 0, scope: ![[DESTROY_SP:[0-9]+]])<br>
-// CHECK-DAG: [[DESTROY_SP]] = {{.*}}[ DW_TAG_subprogram ]{{.*}}[__destroy_helper_block_]<br>
+// CHECK-DAG: [[DESTROY_SP]] = !MDSubprogram(name: "__destroy_helper_block_"<br>
 typedef unsigned int NSUInteger;<br>
<br>
 @protocol NSObject<br>
@@ -61,8 +61,8 @@ static void run(void (^block)(void))<br>
 {<br>
     if ((self = [super init])) {<br>
       run(^{<br>
-          // CHECK-DAG: ![[SELF]] = {{.*}} [ DW_TAG_auto_variable ] [self] [line [[@LINE+4]]]<br>
-          // CHECK-DAG: ![[D]] = {{.*}} [d] [line [[@LINE+1]]]<br>
+          // CHECK-DAG: ![[SELF]] = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "self"{{.*}}, line: [[@LINE+4]],<br>
+          // CHECK-DAG: ![[D]] = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "d"{{.*}}, line: [[@LINE+1]],<br>
           NSMutableDictionary *d = [[NSMutableDictionary alloc] init];<br>
           ivar = 42 + (int)[d count];<br>
         });<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-fwddecl.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-fwddecl.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-fwddecl.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-fwddecl.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-fwddecl.m Tue Mar  3 11:25:55 2015<br>
@@ -2,4 +2,9 @@<br>
 @class ForwardObjcClass;<br>
 ForwardObjcClass *ptr = 0;<br>
<br>
-// CHECK: {{.*}} [ DW_TAG_structure_type ] [ForwardObjcClass] [line 2, size 0, align 0, offset 0] [decl]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "ForwardObjcClass"<br>
+// CHECK-SAME:             line: 2<br>
+// CHECK-NOT:              size:<br>
+// CHECK-NOT:              align:<br>
+// CHECK-NOT:              offset:<br>
+// CHECK-SAME:             flags: DIFlagFwdDecl<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-getter-name.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-getter-name.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-getter-name.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-getter-name.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-getter-name.m Tue Mar  3 11:25:55 2015<br>
@@ -1,7 +1,7 @@<br>
 // REQUIRES: x86-registered-target<br>
 // RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin10 -fexceptions -fobjc-exceptions -g %s -o - | FileCheck %s<br>
<br>
-// CHECK:  !"0x2e\00-[InstanceVariablesEverywhereButTheInterface someString]\00{{.*}}", {{.*}} ; [ DW_TAG_subprogram ]<br>
+// CHECK:  !MDSubprogram(name: "-[InstanceVariablesEverywhereButTheInterface someString]"<br>
<br>
 //rdar: //8498026<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-id-with-protocol.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-id-with-protocol.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-id-with-protocol.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-id-with-protocol.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-id-with-protocol.m Tue Mar  3 11:25:55 2015<br>
@@ -36,7 +36,12 @@ int main()<br>
     }<br>
 }<br>
 // Verify that the debug type for both variables is 'id'.<br>
-// CHECK:  !"0x101\00bad_carrier\00{{[0-9]+}}\000", !{{[0-9]+}}, null, ![[IDTYPE:[0-9]+]]} ; [ DW_TAG_arg_variable ] [bad_carrier] [line 0]<br>
+// CHECK:  ![[IDTYPE:[0-9]+]] = !MDDerivedType(tag: DW_TAG_typedef, name: "id"<br>
 //<br>
-// CHECK:  !"0x101\00good_carrier\00{{[0-9]+}}\000", !{{[0-9]+}}, null, ![[IDTYPE]]} ; [ DW_TAG_arg_variable ] [good_carrier] [line 0]<br>
-// CHECK !{{.*}}[[IDTYPE]] = !{!"0x16\00id\00{{[0-9]+}}\000\000\000\000", null, !{{[0-9]+}}, !{{[0-9]+}}} ; [ DW_TAG_typedef ] [id]<br>
+// CHECK:  !MDLocalVariable(tag: DW_TAG_arg_variable, name: "bad_carrier"<br>
+// CHECK-NOT:               line:<br>
+// CHECK-SAME:              type: ![[IDTYPE]]<br>
+//<br>
+// CHECK:  !MDLocalVariable(tag: DW_TAG_arg_variable, name: "good_carrier"<br>
+// CHECK-NOT:               line:<br>
+// CHECK-SAME:              type: ![[IDTYPE]]<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-impl.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-impl.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-impl.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-impl.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-impl.m Tue Mar  3 11:25:55 2015<br>
@@ -1,5 +1,4 @@<br>
 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -g -S -emit-llvm %s -o - | FileCheck %s<br>
-// CHECK: {{.*}} [ DW_TAG_structure_type ] [Circle] [line 11,<br>
 @interface NSObject {<br>
   struct objc_object *isa;<br>
 }<br>
@@ -8,6 +7,8 @@<br>
 @interface Shape : NSObject<br>
<br>
 @end<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "Circle"<br>
+// CHECK-SAME:             line: [[@LINE+1]],<br>
 @interface Circle : Shape<br>
<br>
 @end<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m Tue Mar  3 11:25:55 2015<br>
@@ -13,11 +13,14 @@<br>
<br>
 @implementation Foo<br>
 +(instancetype)defaultFoo {return 0;}<br>
-// CHECK: ![[FOO:[0-9]+]] = {{.*}}; [ DW_TAG_structure_type ] [Foo]<br>
-// CHECK:  !"0x2e\00+[Foo defaultFoo]\00+[Foo defaultFoo]\00\00[[@LINE-2]]\00{{[^,]*}}"{{, [^,]+, [^,]+}}, ![[TYPE:[0-9]+]]<br>
-// CHECK: ![[TYPE]] = {{.*}} ![[RESULT:[0-9]+]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
-// CHECK: ![[RESULT]] = {{.*}}{![[FOOPTR:[0-9]+]],<br>
-// CHECK: ![[FOOPTR]] = {{.*}}, ![[FOO]]}{{.*}}[ DW_TAG_pointer_type ] {{.*}} [from Foo]<br>
+// CHECK: ![[FOO:[0-9]+]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "Foo"<br>
+// CHECK: !MDSubprogram(name: "+[Foo defaultFoo]"<br>
+// CHECK-SAME:          line: [[@LINE-3]]<br>
+// CHECK-SAME:          type: ![[TYPE:[0-9]+]]<br>
+// CHECK: ![[TYPE]] = !MDSubroutineType(types: ![[RESULT:[0-9]+]])<br>
+// CHECK: ![[RESULT]] = !{![[FOOPTR:[0-9]+]],<br>
+// CHECK: ![[FOOPTR]] = !MDDerivedType(tag: DW_TAG_pointer_type<br>
+// CHECK-SAME:                         baseType: ![[FOO]]<br>
 @end<br>
<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-ivars-extension.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-ivars-extension.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-ivars-extension.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-ivars-extension.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-ivars-extension.m Tue Mar  3 11:25:55 2015<br>
@@ -24,10 +24,24 @@ void gorf (I* pg) {<br>
     int _b = pg->b;<br>
 }<br>
<br>
-// CHECK: {{.*}} [ DW_TAG_structure_type ] [I]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "I"<br>
+<br>
 // Check for "a".<br>
-// CHECK: {{.*}} [ DW_TAG_member ] [a] [line 7, size 32, align 32, offset 0] [public] [from int]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "a"<br>
+// CHECK-SAME:           line: 7<br>
+// CHECK-SAME:           baseType: ![[INT:[0-9]+]]<br>
+// CHECK-SAME:           size: 32, align: 32<br>
+// CHECK-NOT:            offset:<br>
+// CHECK-SAME:           flags: DIFlagPublic<br>
+// CHECK: ![[INT]] = !MDBasicType(name: "int"<br>
+<br>
 // Make sure we don't output the same type twice.<br>
-// CHECK-NOT: {{.*}} [ DW_TAG_structure_type ] [I]<br>
+// CHECK-NOT: !MDCompositeType(tag: DW_TAG_structure_type, name: "I"<br>
+<br>
 // Check for "b".<br>
-// CHECK: {{.*}} [ DW_TAG_member ] [b] [line 18, size 32, align 32, offset 0] [public] [from int]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "b"<br>
+// CHECK-SAME:           line: 18<br>
+// CHECK-SAME:           baseType: ![[INT]]<br>
+// CHECK-SAME:           size: 32, align: 32<br>
+// CHECK-NOT:            offset:<br>
+// CHECK-SAME:           flags: DIFlagPublic<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-ivars-indirect.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-ivars-indirect.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-ivars-indirect.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-ivars-indirect.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-ivars-indirect.m Tue Mar  3 11:25:55 2015<br>
@@ -6,10 +6,10 @@<br>
 // This happens to be the order the members are emitted in... I'm assuming it's<br>
 // not meaningful/important, so if something causes the order to change, feel<br>
 // free to update the test to reflect the new order.<br>
-// CHECK: ; [ DW_TAG_member ] [a]<br>
-// CHECK: ; [ DW_TAG_member ] [d]<br>
-// CHECK: ; [ DW_TAG_member ] [c]<br>
-// CHECK: ; [ DW_TAG_member ] [b]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "a"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "d"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "c"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "b"<br>
<br>
 @interface I<br>
 {<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-ivars-private.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-ivars-private.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-ivars-private.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-ivars-private.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-ivars-private.m Tue Mar  3 11:25:55 2015<br>
@@ -32,5 +32,16 @@ __attribute((objc_root_class)) @interfac<br>
 }<br>
 @end<br>
<br>
-// CHECK: {{.*}} [ DW_TAG_member ] [foo] [line 14, size 32, align 32, offset 0] [protected] [from int]<br>
-// CHECK: {{.*}} [ DW_TAG_member ] [bar] [line 27, size 32, align 32, offset 0] [private] [from int]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "foo"<br>
+// CHECK-SAME:           line: 14<br>
+// CHECK-SAME:           baseType: ![[INT:[0-9]+]]<br>
+// CHECK-SAME:           size: 32, align: 32,<br>
+// CHECK-NOT:            offset:<br>
+// CHECK-SAME:           flags: DIFlagProtected<br>
+// CHECK: ![[INT]] = !MDBasicType(name: "int"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "bar"<br>
+// CHECK-SAME:           line: 27<br>
+// CHECK-SAME:           baseType: ![[INT:[0-9]+]]<br>
+// CHECK-SAME:           size: 32, align: 32,<br>
+// CHECK-NOT:            offset:<br>
+// CHECK-SAME:           flags: DIFlagPrivate<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-ivars.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-ivars.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-ivars.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-ivars.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-ivars.m Tue Mar  3 11:25:55 2015<br>
@@ -18,7 +18,27 @@ __attribute((objc_root_class)) @interfac<br>
 @implementation BaseClass<br>
 @end<br>
<br>
-// CHECK: {{.*}} [ DW_TAG_member ] [i] [line 10, size 32, align 32, offset 0] [protected] [from int]<br>
-// CHECK: {{.*}} [ DW_TAG_member ] [flag_1] [line 11, size 9, align 32, offset 0] [protected] [from unsigned int]<br>
-// CHECK: {{.*}} [ DW_TAG_member ] [flag_2] [line 12, size 9, align 32, offset 1] [protected] [from unsigned int]<br>
-// CHECK: {{.*}} [ DW_TAG_member ] [flag_3] [line 14, size 9, align 32, offset 3] [protected] [from unsigned int]<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "i"<br>
+// CHECK-SAME:           line: 10<br>
+// CHECK-SAME:           baseType: ![[INT:[0-9]+]]<br>
+// CHECK-SAME:           size: 32, align: 32,<br>
+// CHECK-NOT:            offset:<br>
+// CHECK-SAME:           flags: DIFlagProtected<br>
+// CHECK: ![[INT]] = !MDBasicType(name: "int"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "flag_1"<br>
+// CHECK-SAME:           line: 11<br>
+// CHECK-SAME:           baseType: ![[UNSIGNED:[0-9]+]]<br>
+// CHECK-SAME:           size: 9, align: 32,<br>
+// CHECK-NOT:            offset:<br>
+// CHECK-SAME:           flags: DIFlagProtected<br>
+// CHECK: ![[UNSIGNED]] = !MDBasicType(name: "unsigned int"<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "flag_2"<br>
+// CHECK-SAME:           line: 12<br>
+// CHECK-SAME:           baseType: ![[UNSIGNED]]<br>
+// CHECK-SAME:           size: 9, align: 32, offset: 1,<br>
+// CHECK-SAME:           flags: DIFlagProtected<br>
+// CHECK: !MDDerivedType(tag: DW_TAG_member, name: "flag_3"<br>
+// CHECK-SAME:           line: 14<br>
+// CHECK-SAME:           baseType: ![[UNSIGNED]]<br>
+// CHECK-SAME:           size: 9, align: 32, offset: 3,<br>
+// CHECK-SAME:           flags: DIFlagProtected<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-lifetime-crash.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-lifetime-crash.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-lifetime-crash.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-lifetime-crash.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-lifetime-crash.m Tue Mar  3 11:25:55 2015<br>
@@ -13,10 +13,14 @@<br>
 {<br>
   // The debug type for these two will be identical, because we do not<br>
   // actually emit the ownership qualifier.<br>
-  // CHECK-DAG:  !"0x100\00weakSelf\00[[@LINE+1]]\000"{{, [^,]+, [^,]+}}, ![[SELFTY:[0-9]+]]} ; [ DW_TAG_auto_variable ] [weakSelf]<br>
+  // CHECK: !MDLocalVariable(tag: DW_TAG_auto_variable, name: "weakSelf",<br>
+  // CHECK-SAME:             line: [[@LINE+2]]<br>
+  // CHECK-SAME:             type: ![[SELFTY:[0-9]+]]<br>
   __attribute__((objc_ownership(weak))) __typeof(self) weakSelf = self;<br>
   Block = [^{<br>
-  // CHECK-DAG:  !"0x100\00strongSelf\00[[@LINE+1]]\000"{{, [^,]+, [^,]+}}, ![[SELFTY]]} ; [ DW_TAG_auto_variable ] [strongSelf]<br>
+  // CHECK: !MDLocalVariable(tag: DW_TAG_auto_variable, name: "strongSelf",<br>
+  // CHECK-SAME:             line: [[@LINE+2]]<br>
+  // CHECK-SAME:             type: ![[SELFTY]]<br>
       __attribute__((objc_ownership(strong))) __typeof(self) strongSelf = weakSelf;<br>
     } copy];<br>
 }<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-property-accessors.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-property-accessors.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-property-accessors.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-property-accessors.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-property-accessors.m Tue Mar  3 11:25:55 2015<br>
@@ -5,7 +5,8 @@<br>
 // Ensure we emit the names of explicit/renamed accessors even if they<br>
 // are defined later in the implementation section.<br>
 //<br>
-// CHECK:  !"0x4200\00blah\00{{[0-9]+}}\00isBlah\00{{.*}}", {{.*}}} ; [ DW_TAG_APPLE_property ] [blah]<br>
+// CHECK:  !MDObjCProperty(name: "blah"<br>
+// CHECK-SAME:             getter: "isBlah"<br>
<br>
 @class NSString;<br>
 extern void NSLog(NSString *format, ...);<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-property3.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-property3.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-property3.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-property3.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-property3.m Tue Mar  3 11:25:55 2015<br>
@@ -1,7 +1,9 @@<br>
 // RUN: %clang_cc1 -S -emit-llvm -g %s -o - | FileCheck %s<br>
<br>
-// CHECK:  !"0x4200\00p1\005\00\00\002316", {{.*}}} ; [ DW_TAG_APPLE_property ]<br>
 @interface I1<br>
+// CHECK: !MDObjCProperty(name: "p1"<br>
+// CHECK-SAME:            line: [[@LINE+2]]<br>
+// CHECK-SAME:            attributes: 2316<br>
 @property int p1;<br>
 @end<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-pubtypes.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-pubtypes.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-pubtypes.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-pubtypes.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-pubtypes.m Tue Mar  3 11:25:55 2015<br>
@@ -1,8 +1,8 @@<br>
 // REQUIRES: x86-registered-target<br>
 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -g -emit-llvm %s -o - | FileCheck %s<br>
<br>
-// CHECK: {{.*}} [ DW_TAG_structure_type ] [H] [line 6,<br>
-<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "H"<br>
+// CHECK-SAME:             line: [[@LINE+1]],<br>
 @interface H<br>
 -(void) foo;<br>
 @end<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-self.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-self.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-self.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-self.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-self.m Tue Mar  3 11:25:55 2015<br>
@@ -14,6 +14,16 @@<br>
 }<br>
 @end<br>
<br>
-// CHECK:  !"0x101\00self\0016777216\001088", ![[CTOR:.*]], null, !{{.*}}} ; [ DW_TAG_arg_variable ] [self] [line 0]<br>
-// CHECK:  !"0x101\00_cmd\0033554432\0064", ![[CTOR]], null, !{{.*}}} ; [ DW_TAG_arg_variable ] [_cmd] [line 0]<br>
-// CHECK:  !"0x101\00myarg\0050331659\000", ![[CTOR]], !{{.*}}, !{{.*}}} ; [ DW_TAG_arg_variable ] [myarg] [line 11]<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable, name: "self", arg: 1,<br>
+// CHECK-SAME:             scope: ![[CTOR:[0-9]+]]<br>
+// CHECK-NOT:              line:<br>
+// CHECK-SAME:             flags: DIFlagArtificial | DIFlagObjectPointer{{[,)]}}<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable, name: "_cmd", arg: 2,<br>
+// CHECK-SAME:             scope: ![[CTOR]]<br>
+// CHECK-NOT:              line:<br>
+// CHECK-SAME:             flags: DIFlagArtificial{{[,)]}}<br>
+// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable, name: "myarg", arg: 3,<br>
+// CHECK-SAME:             scope: ![[CTOR]]<br>
+// CHECK-SAME:             line: 11<br>
+// CHECK-NOT:              flags:<br>
+// CHECK-SAME:             ){{$}}<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-static-var.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-static-var.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-static-var.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-static-var.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-static-var.m Tue Mar  3 11:25:55 2015<br>
@@ -2,7 +2,9 @@<br>
 // Radar 8801045<br>
 // Do not emit AT_MIPS_linkage_name for static variable i<br>
<br>
-// CHECK:  !"0x34\00i\00i\00\00{{.*}}"<br>
+// CHECK: !MDGlobalVariable(name: "i"<br>
+// CHECK-NOT:               linkageName:<br>
+// CHECK-SAME:              ){{$}}<br>
<br>
 @interface A {<br>
 }<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-synthesis.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-synthesis.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-synthesis.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-synthesis.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-synthesis.m Tue Mar  3 11:25:55 2015<br>
@@ -30,5 +30,8 @@ int main(int argc, char *argv[]) {<br>
   }<br>
 }<br>
<br>
-// CHECK: ![[FILE:.*]] = {{.*}}[ DW_TAG_file_type ] [{{.*}}/foo.h]<br>
-// CHECK: ![[FILE]], {{.*}} ; [ DW_TAG_subprogram ] [line 8] [local] [def] [-[Foo dict]]<br>
+// CHECK: ![[FILE:.*]] = !MDFile(filename: "{{[^"]+}}foo.h"<br>
+// CHECK: !MDSubprogram(name: "-[Foo setDict:]"<br>
+// CHECK-SAME:          file: ![[FILE]],<br>
+// CHECK-SAME:          line: 8,<br>
+// CHECK-SAME:          isLocal: true, isDefinition: true<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-info-variadic-method.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-variadic-method.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-variadic-method.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-info-variadic-method.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-info-variadic-method.m Tue Mar  3 11:25:55 2015<br>
@@ -10,7 +10,7 @@<br>
 @implementation Foo<br>
 - (void) Bar: (int) n, ...<br>
 {<br>
-  // CHECK: ![[NUM:[^,]*]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
-  // CHECK: ![[NUM]] = {{!{null, ![^,]*, ![^,]*, ![^,]*, null}}}<br>
+  // CHECK: !MDSubroutineType(types: ![[NUM:[0-9]+]])<br>
+  // CHECK: ![[NUM]] = {{!{null, ![^,]*, ![^,]*, ![^,]*, null}}}<br>
 }<br>
 @end<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debug-property-synth.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-property-synth.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-property-synth.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debug-property-synth.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debug-property-synth.m Tue Mar  3 11:25:55 2015<br>
@@ -18,8 +18,8 @@<br>
 // CHECK-NOT: ret<br>
 // CHECK: load {{.*}}, !dbg ![[DBG2:[0-9]+]]<br>
 //<br>
-// CHECK: [ DW_TAG_subprogram ] [line [[@LINE+4]]] [local] [def] [-[I p1]]<br>
-// CHECK: [ DW_TAG_subprogram ] [line [[@LINE+3]]] [local] [def] [-[I setP1:]]<br>
+// CHECK: !MDSubprogram(name: "-[I p1]",{{.*}} line: [[@LINE+4]],{{.*}} isLocal: true, isDefinition: true<br>
+// CHECK: !MDSubprogram(name: "-[I setP1:]",{{.*}} line: [[@LINE+3]],{{.*}} isLocal: true, isDefinition: true<br>
 // CHECK: ![[DBG1]] = !MDLocation(line: [[@LINE+2]],<br>
 // CHECK: ![[DBG2]] = !MDLocation(line: [[@LINE+1]],<br>
 @property int p1;<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/debuginfo-properties.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debuginfo-properties.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debuginfo-properties.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/debuginfo-properties.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/debuginfo-properties.m Tue Mar  3 11:25:55 2015<br>
@@ -11,10 +11,19 @@<br>
<br>
 @protocol HasASelection <NSObject><br>
 @property (nonatomic, retain) Selection* selection;<br>
-// CHECK: [ DW_TAG_subprogram ] [line [[@LINE-1]]] [local] [def] [-[MyClass selection]]<br>
-// CHECK: [ DW_TAG_subprogram ] [line [[@LINE-2]]] [local] [def] [-[MyClass setSelection:]]<br>
-// CHECK: [ DW_TAG_subprogram ] [line [[@LINE-3]]] [local] [def] [-[OtherClass selection]]<br>
-// CHECK: [ DW_TAG_subprogram ] [line [[@LINE-4]]] [local] [def] [-[OtherClass setSelection:]]<br>
+// CHECK: !MDSubprogram(name: "-[MyClass selection]"<br>
+// CHECK-SAME:          line: [[@LINE-2]]<br>
+// CHECK-SAME:          isLocal: true, isDefinition: true<br>
+// CHECK: !MDSubprogram(name: "-[MyClass setSelection:]"<br>
+// CHECK-SAME:          line: [[@LINE-5]]<br>
+// CHECK-SAME:          isLocal: true, isDefinition: true<br>
+// CHECK: !MDSubprogram(name: "-[OtherClass selection]"<br>
+// CHECK-SAME:          line: [[@LINE-8]]<br>
+// CHECK-SAME:          isLocal: true, isDefinition: true<br>
+// CHECK: !MDSubprogram(name: "-[OtherClass setSelection:]"<br>
+// CHECK-SAME:          line: [[@LINE-11]]<br>
+// CHECK-SAME:          isLocal: true, isDefinition: true<br>
+<br>
 @end<br>
<br>
 @interface MyClass : NSObject <HasASelection> {<br>
<br>
Modified: cfe/trunk/test/CodeGenObjC/objc-fixed-enum.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/objc-fixed-enum.m?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/objc-fixed-enum.m?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjC/objc-fixed-enum.m (original)<br>
+++ cfe/trunk/test/CodeGenObjC/objc-fixed-enum.m Tue Mar  3 11:25:55 2015<br>
@@ -46,19 +46,35 @@ int main() {<br>
   // -treated as C++11 strongly typed enums.<br>
   return e0 != e1 && e1 == e2 && e2 == e3;<br>
 }<br>
-// CHECK: ![[ENUMERATOR0:[0-9]+]] = {{.*}}; [ DW_TAG_enumeration_type ] [line 10<br>
-// CHECK: ![[ENUMERATOR1:[0-9]+]] = {{.*}}; [ DW_TAG_enumeration_type ] [Enum1] [line 16{{.*}}] [from NSInteger]<br>
-// CHECK: ![[ENUMERATOR3:[0-9]+]] = {{.*}}; [ DW_TAG_typedef ] [NSInteger] [line 6{{.*}}] [from long int]<br>
-// CHECK: ![[ENUMERATOR2:[0-9]+]] = {{.*}}; [ DW_TAG_enumeration_type ] [line 22{{.*}}] [from NSInteger]<br>
+// CHECK: ![[ENUMERATOR0:[0-9]+]] = !MDCompositeType(tag: DW_TAG_enumeration_type<br>
+// CHECK-SAME:                                       line: 10,<br>
+// CHECK: ![[ENUMERATOR1:[0-9]+]] = !MDCompositeType(tag: DW_TAG_enumeration_type, name: "Enum1"<br>
+// CHECK-SAME:                                       line: 16<br>
+// CHECK-SAME:                                       baseType: ![[ENUMERATOR3:[0-9]+]]<br>
+// CHECK: ![[ENUMERATOR3]] = !MDDerivedType(tag: DW_TAG_typedef, name: "NSInteger"<br>
+// CHECK-SAME:                              line: 6<br>
+// CHECK-SAME:                              baseType: ![[LONGINT:[0-9]+]]<br>
+// CHECK: ![[LONGINT]] = !MDBasicType(name: "long int"<br>
+// CHECK: ![[ENUMERATOR2:[0-9]+]] = !MDCompositeType(tag: DW_TAG_enumeration_type,<br>
+// CHECK-SAME:                                       line: 22<br>
+// CHECK-SAME:                                       baseType: ![[ENUMERATOR3]]<br>
<br>
-// CHECK: ![[ENUM0]] = !{!"0x100\00e0\00{{[^,]*}}"{{, [^,]+, [^,]+}}, ![[TYPE0:[0-9]+]]} ; [ DW_TAG_auto_variable ]<br>
-// CHECK: ![[TYPE0]] = !{!"0x16\00Enum0\00{{.*}}", {{.*}}, ![[ENUMERATOR0]]} ; [ DW_TAG_typedef ] [Enum0]<br>
+// CHECK: ![[ENUM0]] = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "e0"<br>
+// CHECK-SAME:                          type: ![[TYPE0:[0-9]+]]<br>
+// CHECK: ![[TYPE0]] = !MDDerivedType(tag: DW_TAG_typedef, name: "Enum0",<br>
+// CHECK-SAME:                        baseType: ![[ENUMERATOR0]]<br>
<br>
-// CHECK: ![[ENUM1]] = !{!"0x100\00e1\00{{[^,]*}}"{{, [^,]+, [^,]+}}, ![[TYPE1:[0-9]+]]} ; [ DW_TAG_auto_variable ]<br>
-// CHECK: ![[TYPE1]] = !{!"0x16\00Enum1\00{{.*}}", {{.*}}, ![[ENUMERATOR1]]} ; [ DW_TAG_typedef ] [Enum1]<br>
+// CHECK: ![[ENUM1]] = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "e1"<br>
+// CHECK-SAME:                          type: ![[TYPE1:[0-9]+]]<br>
+// CHECK: ![[TYPE1]] = !MDDerivedType(tag: DW_TAG_typedef, name: "Enum1"<br>
+// CHECK-SAME:                        baseType: ![[ENUMERATOR1]]<br>
<br>
-// CHECK: ![[ENUM2]] = !{!"0x100\00e2\00{{[^,]*}}"{{, [^,]+, [^,]+}}, ![[TYPE2:[0-9]+]]} ; [ DW_TAG_auto_variable ]<br>
-// CHECK: ![[TYPE2]] = !{!"0x16\00Enum2\00{{.*}}", {{.*}}, ![[ENUMERATOR2]]} ; [ DW_TAG_typedef ] [Enum2]<br>
+// CHECK: ![[ENUM2]] = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "e2"<br>
+// CHECK-SAME:                          type: ![[TYPE2:[0-9]+]]<br>
+// CHECK: ![[TYPE2]] = !MDDerivedType(tag: DW_TAG_typedef, name: "Enum2"<br>
+// CHECK-SAME:                        baseType: ![[ENUMERATOR2]]<br>
<br>
-// CHECK: ![[ENUM3]] = !{!"0x100\00e3\00{{[^,]*}}"{{, [^,]+, [^,]+}}, ![[TYPE3:[0-9]+]]} ; [ DW_TAG_auto_variable ]<br>
-// CHECK: ![[TYPE3]] = !{!"0x16\00Enum3\00{{.*}}", {{.*}}, ![[ENUMERATOR3]]} ; [ DW_TAG_typedef ] [Enum3]<br>
+// CHECK: ![[ENUM3]] = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "e3"<br>
+// CHECK-SAME:                          type: ![[TYPE3:[0-9]+]]<br>
+// CHECK: ![[TYPE3]] = !MDDerivedType(tag: DW_TAG_typedef, name: "Enum3"<br>
+// CHECK-SAME:                        baseType: ![[ENUMERATOR3]]<br>
<br>
Modified: cfe/trunk/test/CodeGenObjCXX/<a href="http://debug-info-cyclic.mm" target="_blank">debug-info-cyclic.mm</a><br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjCXX/debug-info-cyclic.mm?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjCXX/debug-info-cyclic.mm?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenObjCXX/<a href="http://debug-info-cyclic.mm" target="_blank">debug-info-cyclic.mm</a> (original)<br>
+++ cfe/trunk/test/CodeGenObjCXX/<a href="http://debug-info-cyclic.mm" target="_blank">debug-info-cyclic.mm</a> Tue Mar  3 11:25:55 2015<br>
@@ -1,13 +1,21 @@<br>
 // RUN: %clang_cc1 -triple x86_64-apple-darwin -g -emit-llvm %s -o - | FileCheck %s<br>
<br>
-// CHECK: ![[B:.*]] = {{.*}}, null, null, ![[BMEMBERS:.*]], null, null, null} ; [ DW_TAG_structure_type ] [B] [line [[@LINE+1]], size 8, align 8, offset 0] [def] [from ]<br>
 struct B {<br>
+// CHECK: ![[B:[0-9]+]] = !MDCompositeType(tag: DW_TAG_structure_type, name: "B"<br>
+// CHECK-SAME:                             line: [[@LINE-2]],<br>
+// CHECK-SAME:                             size: 8, align: 8,<br>
+// CHECK-NOT:                              offset:<br>
+// CHECK-NOT:                              DIFlagFwdDecl<br>
+// CHECK-SAME:                             elements: ![[BMEMBERS:[0-9]+]]<br>
+// CHECK: ![[BMEMBERS]] = !{![[BB:[0-9]+]]}<br>
   B(struct A *);<br>
-// CHECK: ![[BMEMBERS]] = !{![[BB:.*]]}<br>
-// CHECK: ![[BB]] = {{.*}} ![[B]], ![[TY:[0-9]+]], {{.*}}} ; [ DW_TAG_subprogram ] [line [[@LINE-2]]] [B]<br>
-// CHECK: ![[TY]] = {{.*}} ![[ARGS:[0-9]+]], null, null, null} ; [ DW_TAG_subroutine_type ]<br>
-// CHECK: ![[ARGS]] = !{null, ![[THIS:[0-9]+]],<br>
-// CHECK: ![[THIS]] = {{.*}}[[B]]} ; [ DW_TAG_pointer_type ] [<br>
+// CHECK: ![[BB]] = !MDSubprogram(name: "B", scope: ![[B]]<br>
+// CHECK-SAME:                    line: [[@LINE-2]],<br>
+// CHECK-SAME:                    type: ![[TY:[0-9]+]],<br>
+// CHECK: ![[TY]] = !MDSubroutineType(types: ![[ARGS:[0-9]+]])<br>
+// CHECK: ![[ARGS]] = !{null, ![[THIS:[0-9]+]], !{{[^,]+}}}<br>
+// CHECK: ![[THIS]] = !MDDerivedType(tag: DW_TAG_pointer_type,<br>
+// CHECK-SAME:                       baseType: ![[B]]<br>
 };<br>
<br>
 struct C {<br>
<br>
Modified: cfe/trunk/test/Driver/darwin-debug-flags.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-debug-flags.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-debug-flags.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Driver/darwin-debug-flags.c (original)<br>
+++ cfe/trunk/test/Driver/darwin-debug-flags.c Tue Mar  3 11:25:55 2015<br>
@@ -5,11 +5,11 @@<br>
 // <rdar://problem/12955296><br>
 // RUN: %clang -### -target i386-apple-darwin9 -c -g %t.s 2>&1 | FileCheck -check-prefix=P %s<br>
<br>
-// CHECK: !0 = !{<br>
-// CHECK: -I path\5C with\5C \5C\5Cspaces<br>
-// CHECK: -g -Os<br>
-// CHECK: -mmacosx-version-min=10.5.0<br>
-// CHECK: [ DW_TAG_compile_unit ]<br>
+// CHECK: !0 = !MDCompileUnit(<br>
+// CHECK-SAME:                flags:<br>
+// CHECK-SAME:                -I path\5C with\5C \5C\5Cspaces<br>
+// CHECK-SAME:                -g -Os<br>
+// CHECK-SAME:                -mmacosx-version-min=10.5.0<br>
<br>
 int x;<br>
<br>
<br>
Modified: cfe/trunk/test/PCH/debug-info-limited-struct.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/debug-info-limited-struct.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/debug-info-limited-struct.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/PCH/debug-info-limited-struct.c (original)<br>
+++ cfe/trunk/test/PCH/debug-info-limited-struct.c Tue Mar  3 11:25:55 2015<br>
@@ -1,4 +1,6 @@<br>
 // RUN: %clang_cc1 -emit-pch -o %t %S/debug-info-limited-struct.h<br>
 // RUN: %clang_cc1 -include-pch %t -emit-llvm %s -g -o - | FileCheck %s<br>
<br>
-// CHECK-DAG: [ DW_TAG_structure_type ] [foo] {{.*}} [def]<br>
+// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "foo"<br>
+// CHECK-NOT:              flags: {{[^,]*}}FlagFwdDecl<br>
+// CHECK-SAME:             {{$}}<br>
<br>
Modified: cfe/trunk/test/VFS/external-names.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/VFS/external-names.c?rev=231083&r1=231082&r2=231083&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/VFS/external-names.c?rev=231083&r1=231082&r2=231083&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/VFS/external-names.c (original)<br>
+++ cfe/trunk/test/VFS/external-names.c Tue Mar  3 11:25:55 2015<br>
@@ -28,8 +28,8 @@<br>
 // Debug info<br>
<br>
 // RUN: %clang_cc1 -I %t -ivfsoverlay %t.external.yaml -triple %itanium_abi_triple -g -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-DEBUG-EXTERNAL %s<br>
-// CHECK-DEBUG-EXTERNAL: ![[Num:[0-9]*]] = !{!"{{.*}}Inputs{{.}}external-names.h<br>
-// CHECK-DEBUG-EXTERNAL: !{!"0x29", ![[Num]]{{.*}}DW_TAG_file_type<br>
+// CHECK-DEBUG-EXTERNAL: !MDSubprogram({{.*}}file: ![[Num:[0-9]+]]<br>
+// CHECK-DEBUG-EXTERNAL: ![[Num]] = !MDFile(filename: "{{[^"]*}}Inputs{{.}}external-names.h"<br>
<br>
 // RUN: %clang_cc1 -I %t -ivfsoverlay %t.yaml -triple %itanium_abi_triple -g -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-DEBUG %s<br>
 // CHECK-DEBUG-NOT: Inputs<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" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>