r189283 - Debug Info: add an identifier field to DICompositeType.

Manman Ren manman.ren at gmail.com
Mon Aug 26 16:25:46 PDT 2013


In r189286.

Thanks,
Manman


On Mon, Aug 26, 2013 at 3:57 PM, David Blaikie <dblaikie at gmail.com> wrote:

> On Mon, Aug 26, 2013 at 3:40 PM, Manman Ren <manman.ren at gmail.com> wrote:
> > Author: mren
> > Date: Mon Aug 26 17:40:31 2013
> > New Revision: 189283
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=189283&view=rev
> > Log:
> > Debug Info: add an identifier field to DICompositeType.
> >
> > Paired with llvm r189282.
> > Update testing cases to handle an extra field for DICompositeType.
> >
> > Modified:
> >     cfe/trunk/test/CodeGen/debug-info-args.c
> >     cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-info-class.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-info-method.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-info-template.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-info.cpp
> >     cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp
> >     cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m
> >
> > Modified: cfe/trunk/test/CodeGen/debug-info-args.c
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-args.c?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGen/debug-info-args.c (original)
> > +++ cfe/trunk/test/CodeGen/debug-info-args.c Mon Aug 26 17:40:31 2013
> > @@ -2,7 +2,7 @@
> >
> >  int somefunc(char *x, int y, double z) {
> >
> > -  // CHECK: metadata ![[NUM:[^,]*]], i32 0, i32 0} ; [
> DW_TAG_subroutine_type
> > +  // CHECK: metadata ![[NUM:[^,]*]], i32 0, null{{.*}}} ; [
> DW_TAG_subroutine_type
>
> Not strictly necessary, but several test case specify all metadata
> operands from the beginning or from the end to ensure they find the
> intended field to match on (eg: perhaps there are other sequences of
> "metadata !XXX, i32 0, null" in a subroutine_type record sometimes) -
> making it not match all the way to the end may cause these tests to
> pass or fail in strange ways in the future. (the risk of an accidental
> pass is rather scary, though less likely)
>
> Removing these "{{.*}}" you've added & replacing them with the
> requisite ", null, null" (I think, guessing, based on the change
> you'vem ade) may be a safer change.
>
> >    // CHECK: ![[NUM]] = {{metadata !{metadata ![^,]*, metadata ![^,]*,
> metadata ![^,]*, metadata ![^,]*}}}
> >
> >    return y;
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info-artificial-arg.cpp Mon Aug 26
> 17:40:31 2013
> > @@ -25,5 +25,5 @@ int main(int argc, char **argv) {
> >  // CHECK: ![[ARTARG:.*]] = {{.*}} ; [ DW_TAG_pointer_type ] [line 0,
> size 64, align 64, offset 0] [artificial] [from A]
> >  // CHECK: ![[CLASSTYPE:.*]] = {{.*}} ; [ DW_TAG_class_type ] [A]
> >  // CHECK: metadata ![[CLASSTYPE]], {{.*}} ; [ DW_TAG_subprogram ] [line
> 12] [A]
> > -// CHECK: metadata [[FUNCTYPE:![0-9]*]], i32 0, i32 0} ; [
> DW_TAG_subroutine_type ]
> > +// CHECK: metadata [[FUNCTYPE:![0-9]*]], i32 0, null{{.*}}} ; [
> DW_TAG_subroutine_type ]
> >  // CHECK: [[FUNCTYPE]] = metadata !{null, metadata ![[ARTARG]],
> metadata !{{.*}}, metadata !{{.*}}}
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info-class.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-class.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info-class.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info-class.cpp Mon Aug 26 17:40:31
> 2013
> > @@ -96,7 +96,7 @@ int main(int argc, char **argv) {
> >  // CHECK: DW_TAG_class_type ] [B]
> >  // CHECK: metadata !"_vptr$B", {{.*}}, i32 64, metadata !{{.*}}} ; [
> DW_TAG_member ]
> >
> > -// CHECK: [[C:![0-9]*]] = {{.*}} metadata [[C_MEM:![0-9]*]], i32 0,
> metadata [[C]], null} ; [ DW_TAG_structure_type ] [C] {{.*}} [def]
> > +// CHECK: [[C:![0-9]*]] = {{.*}} metadata [[C_MEM:![0-9]*]], i32 0,
> metadata [[C]], null, null} ; [ DW_TAG_structure_type ] [C] {{.*}} [def]
> >  // CHECK: [[C_MEM]] = metadata !{metadata [[C_VPTR:![0-9]*]], metadata
> [[C_S:![0-9]*]], metadata [[C_DTOR:![0-9]*]]}
> >  // CHECK: [[C_VPTR]] = {{.*}} ; [ DW_TAG_member ] [_vptr$C] {{.*}}
> [artificial]
> >  // CHECK: [[C_S]] = {{.*}} ; [ DW_TAG_member ] [s] {{.*}} [static]
> [from int]
> > @@ -104,7 +104,7 @@ int main(int argc, char **argv) {
> >
> >  // CHECK: ; [ DW_TAG_structure_type ] [A]
> >  // CHECK: HdrSize
> > -// CHECK: metadata [[D_MEM:![0-9]*]], i32 0, null} ; [
> DW_TAG_structure_type ] [D] {{.*}} [decl]
> > +// CHECK: metadata [[D_MEM:![0-9]*]], i32 0, null, null, null} ; [
> DW_TAG_structure_type ] [D] {{.*}} [decl]
> >  // CHECK: [[D_MEM]] = metadata !{metadata [[D_FUNC:![0-9]*]]}
> >  // CHECK: [[D_FUNC]] = {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [func]
> >
> > @@ -112,15 +112,15 @@ int main(int argc, char **argv) {
> >
> >  // CHECK: [[F_I_DEF:![0-9]*]] = {{.*}}, metadata [[F_I:![0-9]*]]} ; [
> DW_TAG_variable ] [i]
> >  // CHECK: [[F_I]] = {{.*}} ; [ DW_TAG_member ] [i]
> > -// CHECK: [[F:![0-9]*]] = {{.*}} metadata [[F_MEM:![0-9]*]], i32 0,
> null, null} ; [ DW_TAG_structure_type ] [F] {{.*}} [def]
> > +// CHECK: [[F:![0-9]*]] = {{.*}} metadata [[F_MEM:![0-9]*]], i32 0,
> null, null, null} ; [ DW_TAG_structure_type ] [F] {{.*}} [def]
> >  // CHECK: [[F_MEM]] = metadata !{metadata [[F_I]]}
> >
> > -// CHECK: null, i32 0, null} ; [ DW_TAG_structure_type ] [E] {{.*}}
> [decl]
> > +// CHECK: null, i32 0, null, null, null} ; [ DW_TAG_structure_type ]
> [E] {{.*}} [decl]
> >
> > -// CHECK: metadata [[G_INNER_MEM:![0-9]*]], i32 0, null, null} ; [
> DW_TAG_structure_type ] [inner] [line 50, {{.*}} [def]
> > +// CHECK: metadata [[G_INNER_MEM:![0-9]*]], i32 0, null, null, null} ;
> [ DW_TAG_structure_type ] [inner] [line 50, {{.*}} [def]
> >  // Context chains (in Clang -flimit-debug-info and in GCC generally)
> contain
> >  // definitions without members (& without a vbase 'containing type'):
> > -// CHECK: null, i32 0, null, null} ; [ DW_TAG_structure_type ] [G]
> {{.*}} [def]
> > +// CHECK: null, i32 0, null, null, null} ; [ DW_TAG_structure_type ]
> [G] {{.*}} [def]
> >  // CHECK: [[G_INNER_MEM]] = metadata !{metadata [[G_INNER_I:![0-9]*]]}
> >  // CHECK: [[G_INNER_I]] = {{.*}} ; [ DW_TAG_member ] [j] {{.*}} [from
> int]
> >
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info-enum.cpp Mon Aug 26 17:40:31
> 2013
> > @@ -4,7 +4,7 @@
> >  // CHECK: [[ENUMS]] = metadata !{metadata [[E1:![0-9]*]], metadata
> [[E2:![0-9]*]], metadata [[E3:![0-9]*]]}
> >
> >  namespace test1 {
> > -// CHECK: [[E1]] = metadata !{i32 {{[^,]*}}, {{[^,]*}}, metadata
> [[TEST1:![0-9]*]], {{.*}}, metadata [[TEST1_ENUMS:![0-9]*]], {{[^,]*}},
> {{[^,]*}}} ; [ DW_TAG_enumeration_type ] [e]
> > +// CHECK: [[E1]] = metadata !{i32 {{[^,]*}}, {{[^,]*}}, metadata
> [[TEST1:![0-9]*]], {{.*}}, metadata [[TEST1_ENUMS:![0-9]*]], {{[^,]*}},
> null{{.*}}} ; [ DW_TAG_enumeration_type ] [e]
> >  // CHECK: [[TEST1]] = {{.*}} ; [ DW_TAG_namespace ] [test1]
> >  // CHECK: [[TEST1_ENUMS]] = metadata !{metadata [[TEST1_E:![0-9]*]]}
> >  // CHECK: [[TEST1_E]] = {{.*}}, metadata !"E", i64 0} ; [
> DW_TAG_enumerator ] [E :: 0]
> > @@ -16,7 +16,7 @@ void foo() {
> >
> >  namespace test2 {
> >  // rdar://8195980
> > -// CHECK: [[E2]] = metadata !{i32 {{[^,]*}}, {{[^,]*}}, metadata
> [[TEST2:![0-9]*]], {{.*}}, metadata [[TEST1_ENUMS]], {{[^,]*}}, {{[^,]*}}}
> ; [ DW_TAG_enumeration_type ] [e]
> > +// CHECK: [[E2]] = metadata !{i32 {{[^,]*}}, {{[^,]*}}, metadata
> [[TEST2:![0-9]*]], {{.*}}, metadata [[TEST1_ENUMS]], {{[^,]*}}, null{{.*}}}
> ; [ DW_TAG_enumeration_type ] [e]
> >  // CHECK: [[TEST2]] = {{.*}} ; [ DW_TAG_namespace ] [test2]
> >  enum e { E };
> >  bool func(int i) {
> > @@ -25,7 +25,7 @@ bool func(int i) {
> >  }
> >
> >  namespace test3 {
> > -// CHECK: [[E3]] = metadata !{i32 {{[^,]*}}, {{[^,]*}}, metadata
> [[TEST3:![0-9]*]], {{.*}}, metadata [[TEST3_ENUMS:![0-9]*]], {{[^,]*}},
> {{[^,]*}}} ; [ DW_TAG_enumeration_type ] [e]
> > +// CHECK: [[E3]] = metadata !{i32 {{[^,]*}}, {{[^,]*}}, metadata
> [[TEST3:![0-9]*]], {{.*}}, metadata [[TEST3_ENUMS:![0-9]*]], {{[^,]*}},
> null{{.*}}} ; [ DW_TAG_enumeration_type ] [e]
>
> Notice here, the regex were designed to match a specific number of
> fields by searching for "any number of non-commas" each time. Adding
> {{.*}} loses the value of those patterns. It'd be more appropriate to
> add another one of the same, or just add the requisite number of
> nulls. (I'd prefer the non-regex field values where it's appropriate
> (where they're likely to be stable & not change for unrelated reasons
> (eg: hardcoding a line number when not needed is bad, but hardcoding
> null for a template argument list when the test case has no templates
> seems safe/stable)).
>
> >  // CHECK: [[TEST3]] = {{.*}} ; [ DW_TAG_namespace ] [test3]
> >  // CHECK: [[TEST3_ENUMS]] = metadata !{metadata [[TEST3_E:![0-9]*]]}
> >  // CHECK: [[TEST3_E]] = {{.*}}, metadata !"E", i64 -1} ; [
> DW_TAG_enumerator ] [E :: -1]
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info-method.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-method.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info-method.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info-method.cpp Mon Aug 26 17:40:31
> 2013
> > @@ -3,7 +3,7 @@
> >  // CHECK: metadata !"_ZN1A3fooEiS_3$_0", {{.*}} [protected]
> >  // CHECK: DW_TAG_ptr_to_member_type
> >  // CHECK: {{.*}}metadata ![[MEMFUNTYPE:[0-9]+]], metadata !{{.*}}} ; [
> DW_TAG_ptr_to_member_type ] {{.*}} [from ]
> > -// CHECK: ![[MEMFUNTYPE]] = {{.*}}metadata ![[MEMFUNARGS:[0-9]+]], i32
> 0, i32 0} ; [ DW_TAG_subroutine_type ] {{.*}} [from ]
> > +// CHECK: ![[MEMFUNTYPE]] = {{.*}}metadata ![[MEMFUNARGS:[0-9]+]], i32
> 0, null{{.*}}} ; [ DW_TAG_subroutine_type ] {{.*}} [from ]
> >  // CHECK: ![[MEMFUNARGS]] = {{.*}}, metadata ![[THISTYPE]],
> >  // CHECK: ""{{.*}}DW_TAG_arg_variable
> >  // CHECK: ""{{.*}}DW_TAG_arg_variable
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info-template-member.cpp Mon Aug 26
> 17:40:31 2013
> > @@ -14,7 +14,7 @@ inline int add3(int x) {
> >    return MyClass().add<3>(x); // even though add<3> is ODR used, don't
> emit it since we don't codegen it
> >  }
> >
> > -// CHECK: metadata [[C_MEM:![0-9]*]], i32 0, null, null} ; [
> DW_TAG_structure_type ] [MyClass]
> > +// CHECK: metadata [[C_MEM:![0-9]*]], i32 0, null, null, null} ; [
> DW_TAG_structure_type ] [MyClass]
> >  // CHECK: [[C_MEM]] = metadata !{metadata [[C_TEMP:![0-9]*]]}
> >  // CHECK: [[C_TEMP]] = {{.*}} ; [ DW_TAG_subprogram ] [line 4] [add<2>]
> >
> > @@ -40,8 +40,8 @@ outer<foo>::inner x;
> >
> >  // CHECK: metadata [[OUTER_FOO_INNER:![0-9]*]], i32 {{[0-9]*}}, i32
> {{[0-9]*}}, %"struct.outer<foo>::inner"* @x, {{.*}} ; [ DW_TAG_variable ]
> [x]
> >  // CHECK: [[OUTER_FOO_INNER]] = {{.*}} ; [ DW_TAG_structure_type ]
> [inner]
> > -// CHECK: [[FOO_MEM:![0-9]*]], i32 0, null, null} ; [
> DW_TAG_structure_type ] [foo]
> > +// CHECK: [[FOO_MEM:![0-9]*]], i32 0, null, null, null} ; [
> DW_TAG_structure_type ] [foo]
> >  // CHECK: [[FOO_MEM]] = metadata !{metadata [[FOO_FUNC:![0-9]*]]}
> >  // CHECK: [[FOO_FUNC]] = {{.*}}, metadata
> !"_ZN3foo4funcEN5outerIS_E5innerE", i32 {{[0-9]*}}, metadata
> [[FOO_FUNC_TYPE:![0-9]*]], {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [func]
> > -// CHECK: [[FOO_FUNC_TYPE]] = {{.*}}, metadata
> [[FOO_FUNC_PARAMS:![0-9]*]], i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
> > +// CHECK: [[FOO_FUNC_TYPE]] = {{.*}}, metadata
> [[FOO_FUNC_PARAMS:![0-9]*]], i32 0, null{{.*}}} ; [ DW_TAG_subroutine_type ]
> >  // CHECK: [[FOO_FUNC_PARAMS]] = metadata !{null, metadata !{{[0-9]*}},
> metadata [[OUTER_FOO_INNER]]}
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info-template-quals.cpp Mon Aug 26
> 17:40:31 2013
> > @@ -20,7 +20,7 @@ void foo (const char *c) {
> >  // CHECK: [[CH]] = {{.*}} ; [ DW_TAG_base_type ] [char] [line 0, size
> 8, align 8, offset 0, enc DW_ATE_signed_char]
> >
> >  // CHECK: {{.*}} metadata [[TYPE:![0-9]*]], {{.*}}, metadata
> !{{[0-9]*}}, metadata !{{[0-9]*}}, i32 8} ; [ DW_TAG_subprogram ] [line 7]
> [def] [scope 8] [assign]
> > -// CHECK: [[TYPE]] = metadata !{i32 {{.*}}, metadata [[ARGS:.*]], i32
> 0, i32 0} ; [ DW_TAG_subroutine_type ]
> > +// CHECK: [[TYPE]] = metadata !{i32 {{.*}}, metadata [[ARGS:.*]], i32
> 0, null{{.*}}} ; [ DW_TAG_subroutine_type ]
> >  // CHECK: [[ARGS]] = metadata !{metadata !{{.*}}, metadata !{{.*}},
> metadata [[P]], metadata [[R:.*]]}
> >  // CHECK: [[BS:.*]] = {{.*}} ; [ DW_TAG_structure_type ]
> [basic_string<char>] [line 4, size 8, align 8, offset 0] [def] [from ]
> >  // CHECK: [[R]] = {{.*}}, metadata [[CON2:![0-9]*]]} ; [
> DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from ]
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info-template.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-template.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info-template.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info-template.cpp Mon Aug 26
> 17:40:31 2013
> > @@ -6,7 +6,7 @@
> >  // CHECK: [[INT:![0-9]*]] = {{.*}} ; [ DW_TAG_base_type ] [int]
> >  // CHECK: metadata [[TCNESTED:![0-9]*]], i32 0, i32 1,
> %"struct.TC<unsigned int, 2, &glb, &foo::e, &foo::f, &func, tmpl_impl, 1,
> 2, 3>::nested"* @tci, null} ; [ DW_TAG_variable ] [tci]
> >  // CHECK: [[TCNESTED]] = metadata !{i32 {{[0-9]*}}, metadata
> !{{[0-9]*}}, metadata [[TC:![0-9]*]], {{.*}} ; [ DW_TAG_structure_type ]
> [nested]
> > -// CHECK: [[TC]] = {{.*}}, metadata [[TCARGS:![0-9]*]]} ; [
> DW_TAG_structure_type ] [TC<unsigned int, 2, &glb, &foo::e, &foo::f, &func,
> tmpl_impl, 1, 2, 3>]
> > +// CHECK: [[TC]] = {{.*}}, metadata [[TCARGS:![0-9]*]], null} ; [
> DW_TAG_structure_type ] [TC<unsigned int, 2, &glb, &foo::e, &foo::f, &func,
> tmpl_impl, 1, 2, 3>]
> >  // CHECK: [[TCARGS]] = metadata !{metadata [[TCARG1:![0-9]*]], metadata
> [[TCARG2:![0-9]*]], metadata [[TCARG3:![0-9]*]], metadata
> [[TCARG4:![0-9]*]], metadata [[TCARG5:![0-9]*]], metadata
> [[TCARG6:![0-9]*]], metadata [[TCARG7:![0-9]*]], metadata
> [[TCARG8:![0-9]*]]}
> >  //
> >  // We seem to be missing file/line/col info on template value
> parameters -
> > @@ -26,7 +26,7 @@
> >  // pointer type)
> >  // CHECK: [[FOO]] = {{.*}} ; [ DW_TAG_structure_type ] [foo]
> >  // CHECK: metadata !"f", metadata !"_ZN3foo1fEv", i32 {{[0-9]*}},
> metadata [[FTYPE:![0-9]*]],
> > -// CHECK: [[FTYPE:![0-9]*]] = {{.*}}, metadata [[FARGS:![0-9]*]], i32
> 0, i32 0} ; [ DW_TAG_subroutine_type ]
> > +// CHECK: [[FTYPE:![0-9]*]] = {{.*}}, metadata [[FARGS:![0-9]*]], i32
> 0, null{{.*}}} ; [ DW_TAG_subroutine_type ]
> >  // CHECK: [[FARGS]] = metadata !{null, metadata [[FARG1:![0-9]*]]}
> >  // CHECK: [[FARG1]] = {{.*}} ; [ DW_TAG_pointer_type ] [line 0, size
> 64, align 64, offset 0] [artificial] [from foo]
> >  //
> > @@ -38,7 +38,7 @@
> >  // CHECK: [[MEMFUNPTR]] = {{.*}}, metadata [[FTYPE]], metadata [[FOO]]}
> ; [ DW_TAG_ptr_to_member_type ]
> >  // CHECK: [[TCARG6]] = {{.*}}metadata !"f", metadata
> [[FUNPTR:![0-9]*]], void ()* @_Z4funcv, {{.*}} ; [
> DW_TAG_template_value_parameter ]
> >  // CHECK: [[FUNPTR]] = {{.*}}, metadata [[FUNTYPE:![0-9]*]]} ; [
> DW_TAG_pointer_type ]
> > -// CHECK: [[FUNTYPE]] = {{.*}}, metadata [[FUNARGS:![0-9]*]], i32 0,
> i32 0} ; [ DW_TAG_subroutine_type ]
> > +// CHECK: [[FUNTYPE]] = {{.*}}, metadata [[FUNARGS:![0-9]*]], i32 0,
> null{{.*}}} ; [ DW_TAG_subroutine_type ]
> >  // CHECK: [[FUNARGS]] = metadata !{null}
> >  // CHECK: [[TCARG7]] = {{.*}}metadata !"tmpl", null, metadata
> !"tmpl_impl", {{.*}} ; [ DW_TAG_GNU_template_template_param ]
> >  // CHECK: [[TCARG8]] = {{.*}}metadata !"Is", null, metadata
> [[TCARG8_VALS:![0-9]*]], {{.*}} ; [ DW_TAG_GNU_template_parameter_pack ]
> > @@ -49,7 +49,7 @@
> >
> >
> >  // CHECK: metadata [[TCNT:![0-9]*]], i32 0, i32 1, %struct.TC* @tcn,
> null} ; [ DW_TAG_variable ] [tcn]
> > -// CHECK: [[TCNT:![0-9]*]] = {{.*}}, metadata [[TCNARGS:![0-9]*]]} ; [
> DW_TAG_structure_type ] [TC<int, -3, nullptr, nullptr, nullptr, nullptr,
> tmpl_impl>]
> > +// CHECK: [[TCNT:![0-9]*]] = {{.*}}, metadata [[TCNARGS:![0-9]*]],
> null} ; [ DW_TAG_structure_type ] [TC<int, -3, nullptr, nullptr, nullptr,
> nullptr, tmpl_impl>]
> >  // CHECK: [[TCNARGS]] = metadata !{metadata [[TCNARG1:![0-9]*]],
> metadata [[TCNARG2:![0-9]*]], metadata [[TCNARG3:![0-9]*]], metadata
> [[TCNARG4:![0-9]*]], metadata [[TCNARG5:![0-9]*]], metadata
> [[TCNARG6:![0-9]*]], metadata [[TCARG7:![0-9]*]], metadata
> [[TCNARG8:![0-9]*]]}
> >  // CHECK: [[TCNARG1]] = {{.*}}metadata !"T", metadata [[INT]], {{.*}} ;
> [ DW_TAG_template_type_parameter ]
> >  // CHECK: [[TCNARG2]] = {{.*}}metadata !"", metadata [[INT]], i32 -3,
> {{.*}} ; [ DW_TAG_template_value_parameter ]
> > @@ -69,14 +69,14 @@
> >  // CHECK: [[TCNARG5]] = {{.*}}metadata !"b", metadata [[MEMFUNPTR]], i8
> 0, {{.*}} ; [ DW_TAG_template_value_parameter ]
> >  // CHECK: [[TCNARG6]] = {{.*}}metadata !"f", metadata [[FUNPTR]], i8 0,
> {{.*}} ; [ DW_TAG_template_value_parameter ]
> >  // CHECK: [[TCNARG8]] = {{.*}}metadata !"Is", null, metadata [[EMPTY]],
> {{.*}} ; [ DW_TAG_GNU_template_parameter_pack ]
> > -// CHECK: metadata [[TGIARGS:![0-9]*]]} ; [ DW_TAG_structure_type ]
> [tmpl_guid<&__uuidof(uuid)>]
> > +// CHECK: metadata [[TGIARGS:![0-9]*]], null} ; [ DW_TAG_structure_type
> ] [tmpl_guid<&__uuidof(uuid)>]
> >  // CHECK: [[TGIARGS]] = metadata !{metadata [[TGIARG1:![0-9]*]]}
> >  // CHECK: [[TGIARG1]] = {{.*}}metadata !"", metadata
> [[CONST_GUID_PTR:![0-9]*]], { i32, i16, i16, [8 x i8] }*
> @_GUID_12345678_1234_1234_1234_1234567890ab, {{.*}} ; [
> DW_TAG_template_value_parameter ]
> >  // CHECK: [[CONST_GUID_PTR]] = {{.*}}, metadata [[CONST_GUID:![0-9]*]]}
> ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from ]
> >  // CHECK: [[CONST_GUID]] = {{.*}}, metadata [[GUID:![0-9]*]]} ; [
> DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from _GUID]
> >  // CHECK: [[GUID]] = {{.*}} ; [ DW_TAG_structure_type ] [_GUID]
> >
> > -// CHECK: metadata [[PTOARGS:![0-9]*]]} ; [ DW_TAG_structure_type ]
> [PaddingAtEndTemplate<&PaddedObj>]
> > +// CHECK: metadata [[PTOARGS:![0-9]*]], null} ; [ DW_TAG_structure_type
> ] [PaddingAtEndTemplate<&PaddedObj>]
> >  // CHECK: [[PTOARGS]] = metadata !{metadata [[PTOARG1:![0-9]*]]}
> >  // CHECK: [[PTOARG1]] = {{.*}}metadata !"", metadata
> [[CONST_PADDINGATEND_PTR:![0-9]*]], { i32, i8, [3 x i8] }* @PaddedObj,
> {{.*}} ; [ DW_TAG_template_value_parameter ]
> >  // CHECK: [[CONST_PADDINGATEND_PTR]] = {{.*}} ; [ DW_TAG_pointer_type ]
> [line 0, size 64, align 64, offset 0] [from PaddingAtEnd]
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info-union-template.cpp Mon Aug 26
> 17:40:31 2013
> > @@ -10,6 +10,6 @@ namespace PR15637 {
> >    Value<float> f;
> >  }
> >
> > -// CHECK: {{.*}}, metadata !"Value<float>", {{.*}}, null, metadata
> [[TTPARAM:.*]]} ; [ DW_TAG_union_type ] [Value<float>]
> > +// CHECK: {{.*}}, metadata !"Value<float>", {{.*}}, null, metadata
> [[TTPARAM:.*]], null} ; [ DW_TAG_union_type ] [Value<float>]
> >  // CHECK: [[TTPARAM]] = metadata !{metadata [[PARAMS:.*]]}
> >  // CHECK: [[PARAMS]] = metadata !{{{.*}}metadata !"T",{{.*}}} ; [
> DW_TAG_template_type_parameter ]
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp
> (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info-zero-length-arrays.cpp Mon Aug
> 26 17:40:31 2013
> > @@ -7,6 +7,6 @@ class A {
> >  A a;
> >
> >  // CHECK: metadata [[ARRAY_TYPE:![0-9]*]]} ; [ DW_TAG_member ] [x]
> > -// CHECK: metadata [[ELEM_TYPE:![0-9]*]], i32 0, i32 0} ; [
> DW_TAG_array_type ] [line 0, size 0, align 32, offset 0] [from int]
> > +// CHECK: metadata [[ELEM_TYPE:![0-9]*]], i32 0, null{{.*}}} ; [
> DW_TAG_array_type ] [line 0, size 0, align 32, offset 0] [from int]
> >  // CHECK: [[ELEM_TYPE]] = metadata !{metadata [[SUBRANGE:.*]]}
> >  // CHECK: [[SUBRANGE]] = metadata !{i32 786465, i64 0, i64 -1} ; [
> DW_TAG_subrange_type ] [unbounded]
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-info.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-info.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-info.cpp Mon Aug 26 17:40:31 2013
> > @@ -87,7 +87,7 @@ struct incomplete;
> >  incomplete (*x)[3];
> >  // CHECK: metadata [[INCARRAYPTR:![0-9]*]], i32 0, i32 1, [3 x i8]**
> @_ZN6pr96081xE, null} ; [ DW_TAG_variable ] [x]
> >  // CHECK: [[INCARRAYPTR]] = {{.*}}metadata [[INCARRAY:![0-9]*]]} ; [
> DW_TAG_pointer_type ]
> > -// CHECK: [[INCARRAY]] = {{.*}}metadata [[INCTYPE:![0-9]*]], metadata
> {{![0-9]*}}, i32 0, i32 0} ; [ DW_TAG_array_type ] [line 0, size 0, align
> 0, offset 0] [from incomplete]
> > +// CHECK: [[INCARRAY]] = {{.*}}metadata [[INCTYPE:![0-9]*]], metadata
> {{![0-9]*}}, i32 0, null{{.*}}} ; [ DW_TAG_array_type ] [line 0, size 0,
> align 0, offset 0] [from incomplete]
> >  // CHECK: [[INCTYPE]] = {{.*}} ; [ DW_TAG_structure_type ]
> [incomplete]{{.*}} [decl]
> >  }
> >
> > @@ -112,7 +112,7 @@ void func() {
> >    const bt *b_cnst_ptr_inst;
> >  }
> >
> > -// CHECK: metadata [[A_MEM:![0-9]*]], i32 0, null, null} ; [
> DW_TAG_structure_type ] [a]
> > +// CHECK: metadata [[A_MEM:![0-9]*]], i32 0, null, null, null} ; [
> DW_TAG_structure_type ] [a]
> >  // CHECK: [[A_MEM]] = metadata !{metadata [[A_I:![0-9]*]]}
> >  // CHECK: [[A_I]] = {{.*}} ; [ DW_TAG_member ] [i] {{.*}} [from int]
> >  // CHECK: ; [ DW_TAG_structure_type ] [b] {{.*}}[decl]
> >
> > Modified: cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp Mon Aug 26
> 17:40:31 2013
> > @@ -30,7 +30,7 @@ int d(int x) { D y[10]; return [x,y] { r
> >  // CHECK: [[D_FUNC:.*]] = {{.*}} [ DW_TAG_subprogram ] [line
> [[D_LINE:.*]]] [def] [d]
> >
> >  // Back to D. -- 24
> > -// CHECK: [[LAM_D:.*]] = {{.*}}, metadata [[D_FUNC]], {{.*}}, metadata
> [[LAM_D_ARGS:.*]], i32 0, null, null} ; [ DW_TAG_class_type ] [line
> [[D_LINE]],
> > +// CHECK: [[LAM_D:.*]] = {{.*}}, metadata [[D_FUNC]], {{.*}}, metadata
> [[LAM_D_ARGS:.*]], i32 0, null, null, null} ; [ DW_TAG_class_type ] [line
> [[D_LINE]],
> >  // CHECK: [[LAM_D_ARGS]] = metadata !{metadata [[CAP_D_X:.*]], metadata
> [[CAP_D_Y:.*]], metadata [[CON_LAM_D:.*]]}
> >  // CHECK: [[CAP_D_X]] = {{.*}}, metadata [[LAM_D]], {{.*}} [
> DW_TAG_member ] [x] [line [[D_LINE]],
> >  // CHECK: [[CAP_D_Y]] = {{.*}}, metadata [[LAM_D]], {{.*}} [
> DW_TAG_member ] [y] [line [[D_LINE]],
> > @@ -38,7 +38,7 @@ int d(int x) { D y[10]; return [x,y] { r
> >
> >
> >  // Back to C. -- 55
> > -// CHECK: [[LAM_C:.*]] = {{.*}}, metadata [[C_FUNC]], {{.*}}, metadata
> [[LAM_C_ARGS:.*]], i32 0, null, null} ; [ DW_TAG_class_type ] [line
> [[C_LINE]],
> > +// CHECK: [[LAM_C:.*]] = {{.*}}, metadata [[C_FUNC]], {{.*}}, metadata
> [[LAM_C_ARGS:.*]], i32 0, null, null, null} ; [ DW_TAG_class_type ] [line
> [[C_LINE]],
> >  // CHECK: [[LAM_C_ARGS]] = metadata !{metadata [[CAP_C:.*]], metadata
> [[CON_LAM_C:.*]]}
> >  // Ignoring the member type for now.
> >  // CHECK: [[CAP_C]] = {{.*}}, metadata [[LAM_C]], {{.*}}} ; [
> DW_TAG_member ] [x] [line [[C_LINE]],
> > @@ -46,22 +46,22 @@ int d(int x) { D y[10]; return [x,y] { r
> >
> >
> >  // Back to B. -- 67
> > -// CHECK: [[LAM_B:.*]] = {{.*}}, metadata [[B_FUNC]], {{.*}}, metadata
> [[LAM_B_ARGS:.*]], i32 0, null, null} ; [ DW_TAG_class_type ] [line
> [[B_LINE]],
> > +// CHECK: [[LAM_B:.*]] = {{.*}}, metadata [[B_FUNC]], {{.*}}, metadata
> [[LAM_B_ARGS:.*]], i32 0, null, null, null} ; [ DW_TAG_class_type ] [line
> [[B_LINE]],
> >  // CHECK: [[LAM_B_ARGS]] = metadata !{metadata [[CAP_B:.*]], metadata
> [[CON_LAM_B:.*]]}
> >  // CHECK: [[CAP_B]] = {{.*}}, metadata [[LAM_B]], {{.*}}} ; [
> DW_TAG_member ] [x] [line [[B_LINE]],
> >  // CHECK: [[CON_LAM_B]] = {{.*}}, metadata [[LAM_B]], {{.*}} [
> DW_TAG_subprogram ] [line [[B_LINE]]] [operator()]
> >
> >  // Back to A. -- 78
> > -// CHECK: [[LAM_A:.*]] = {{.*}}, metadata [[A_FUNC]], {{.*}}, metadata
> [[LAM_A_ARGS:.*]], i32 0, null, null} ; [ DW_TAG_class_type ] [line
> [[A_LINE]],
> > +// CHECK: [[LAM_A:.*]] = {{.*}}, metadata [[A_FUNC]], {{.*}}, metadata
> [[LAM_A_ARGS:.*]], i32 0, null, null, null} ; [ DW_TAG_class_type ] [line
> [[A_LINE]],
> >  // CHECK: [[LAM_A_ARGS]] = metadata !{metadata [[CON_LAM_A:.*]]}
> >  // CHECK: [[CON_LAM_A]] = {{.*}}, metadata [[LAM_A]], {{.*}} [
> DW_TAG_subprogram ] [line [[A_LINE]]] [operator()]
> >
> >  // CVAR:
> >  // CHECK: {{.*}} metadata [[CVAR_T:![0-9]*]], {{.*}} ; [
> DW_TAG_variable ] [cvar] [line [[CVAR_LINE:[0-9]*]]]
> > -// CHECK: [[CVAR_T]] = {{.*}}, metadata ![[CVAR_ARGS:.*]], i32 0, null,
> null} ; [ DW_TAG_class_type ] [line [[CVAR_LINE]],
> > +// CHECK: [[CVAR_T]] = {{.*}}, metadata ![[CVAR_ARGS:.*]], i32 0, null,
> null, null} ; [ DW_TAG_class_type ] [line [[CVAR_LINE]],
> >  // CHECK: [[CVAR_ARGS]] = metadata !{metadata !{{.*}}}
> >
> >  // VAR:
> >  // CHECK: {{.*}} metadata [[VAR_T:![0-9]*]], {{.*}} ; [ DW_TAG_variable
> ] [var] [line [[VAR_LINE:[0-9]*]]]
> > -// CHECK: [[VAR_T]] = {{.*}}, metadata [[VAR_ARGS:![0-9]*]], i32 0,
> null, null} ; [ DW_TAG_class_type ] [line [[VAR_LINE]],
> > +// CHECK: [[VAR_T]] = {{.*}}, metadata [[VAR_ARGS:![0-9]*]], i32 0,
> null, null, null} ; [ DW_TAG_class_type ] [line [[VAR_LINE]],
> >  // CHECK: [[VAR_ARGS]] = metadata !{metadata !{{.*}}}
> >
> > Modified: cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m?rev=189283&r1=189282&r2=189283&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m (original)
> > +++ cfe/trunk/test/CodeGenObjC/debug-info-instancetype.m Mon Aug 26
> 17:40:31 2013
> > @@ -15,7 +15,7 @@
> >  +(instancetype)defaultFoo {return 0;}
> >  // CHECK: ![[FOO:[0-9]+]] = metadata {{.*}}; [ DW_TAG_structure_type ]
> [Foo]
> >  // CHECK: metadata !"+[Foo defaultFoo]", metadata !"", i32 [[@LINE-2]],
> metadata ![[TYPE:[0-9]+]]
> > -// CHECK: ![[TYPE]] = {{.*}} metadata ![[RESULT:[0-9]+]], i32 {{.*}},
> i32 {{.*}}} ; [ DW_TAG_subroutine_type ]
> > +// CHECK: ![[TYPE]] = {{.*}} metadata ![[RESULT:[0-9]+]], i32 {{.*}},
> null{{.*}}} ; [ DW_TAG_subroutine_type ]
> >  // CHECK: ![[RESULT]] = metadata {{.*}}{metadata ![[FOOPTR:[0-9]+]],
> >  // CHECK: ![[FOOPTR]] = {{.*}}, metadata ![[FOO]]}{{.*}}[
> DW_TAG_pointer_type ] {{.*}} [from Foo]
> >  @end
> >
> >
> > _______________________________________________
> > cfe-commits mailing list
> > cfe-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130826/a8e35626/attachment.html>


More information about the cfe-commits mailing list