forked from OSchip/llvm-project
DI: Update testcases for LLVM assembly change
Update testcases after LLVM change r243774. Most of these had no need to check `tag:` field, but did so as a way of getting to the `name:` field. In a few cases I've converted the `tag:` checks to `arg:` or `CHECK-NOT: arg:`. llvm-svn: 243775
This commit is contained in:
parent
ed013cd221
commit
38a7f11a5a
|
@ -1,9 +1,9 @@
|
|||
// RUN: %clang_cc1 -x c++ -g -emit-llvm -triple x86_64-linux-gnu -o - %s | FileCheck %s
|
||||
// PR23332
|
||||
|
||||
// CHECK: DILocalVariable(tag: DW_TAG_arg_variable, arg: 255
|
||||
// CHECK: DILocalVariable(tag: DW_TAG_arg_variable, arg: 256
|
||||
// CHECK: DILocalVariable(tag: DW_TAG_arg_variable, arg: 257
|
||||
// CHECK: DILocalVariable(arg: 255
|
||||
// CHECK: DILocalVariable(arg: 256
|
||||
// CHECK: DILocalVariable(arg: 257
|
||||
void fn1(int, int, int, int, int, int, int, int, int, int, int, int, int, int,
|
||||
int, int, int, int, int, int, int, int, int, int, int, int, int, int,
|
||||
int, int, int, int, int, int, int, int, int, int, int, int, int, int,
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
// out of order or not at all (the latter would occur if they were both assigned
|
||||
// the same argument number by mistake).
|
||||
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: ".block_descriptor", arg: 1,{{.*}}line: 2,
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "param", arg: 2,{{.*}}line: 2,
|
||||
// CHECK: !DILocalVariable(name: ".block_descriptor", arg: 1,{{.*}}line: 2,
|
||||
// CHECK: !DILocalVariable(name: "param", arg: 2,{{.*}}line: 2,
|
||||
|
||||
// Line directive so we don't have to worry about how many lines preceed the
|
||||
// test code (as the line number is mangled in with the argument number as shown
|
||||
|
|
|
@ -23,9 +23,8 @@ struct S {
|
|||
// CHECK-NOT: DW_TAG_enumeration_type
|
||||
enum E { ZERO = 0, ONE = 1 };
|
||||
|
||||
// CHECK-NOT: DW_TAG_arg_variable
|
||||
// CHECK-NOT: DILocalVariable
|
||||
int sum(int p, int q) {
|
||||
// CHECK-NOT: DW_TAG_auto_variable
|
||||
int r = p + q;
|
||||
struct S s;
|
||||
enum E e;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
int main() {
|
||||
int j = 0;
|
||||
int k = 0;
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "i"
|
||||
// CHECK: !DILocalVariable(name: "i"
|
||||
// CHECK-NEXT: !DILexicalBlock(
|
||||
|
||||
// FIXME: Looks like we don't actually need both these lexical blocks (disc 2
|
||||
|
@ -19,7 +19,7 @@ int main() {
|
|||
// GMLT-NOT: !DILexicalBlock
|
||||
for (int i = 0; i < 10; i++)
|
||||
j++;
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "i"
|
||||
// CHECK: !DILocalVariable(name: "i"
|
||||
// CHECK-NEXT: !DILexicalBlock(
|
||||
// GMLT-NOT: !DILexicalBlock
|
||||
for (int i = 0; i < 10; i++)
|
||||
|
|
|
@ -4,7 +4,7 @@ void testVLAwithSize(int s)
|
|||
{
|
||||
// CHECK: dbg.declare
|
||||
// CHECK: dbg.declare({{.*}}, metadata ![[VAR:.*]], metadata ![[EXPR:.*]])
|
||||
// CHECK: ![[VAR]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "vla",{{.*}} line: [[@LINE+2]]
|
||||
// CHECK: ![[VAR]] = !DILocalVariable(name: "vla",{{.*}} line: [[@LINE+2]]
|
||||
// CHECK: ![[EXPR]] = !DIExpression(DW_OP_deref)
|
||||
int vla[s];
|
||||
int i;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
//RUN: %clang_cc1 -emit-llvm -g -o - %s | FileCheck %s
|
||||
//CHECK: DW_TAG_auto_variable
|
||||
//CHECK: DILocalVariable(
|
||||
class Foo
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -34,8 +34,8 @@ void foo() {
|
|||
// CHECK: !DIGlobalVariable(name: "d",{{.*}} file: [[FILE]], line: 6,{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK: !DIGlobalVariable(name: "a",{{.*}} file: [[FILE]], line: 6,{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK: !DIGlobalVariable(name: "b",{{.*}} file: [[FILE]], line: 6,{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "i", {{.*}}, flags: DIFlagArtificial
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "c", {{.*}}, flags: DIFlagArtificial
|
||||
// CHECK: !DILocalVariable(name: "i", {{.*}}, flags: DIFlagArtificial
|
||||
// CHECK: !DILocalVariable(name: "c", {{.*}}, flags: DIFlagArtificial
|
||||
// CHECK: !DILocalVariable(
|
||||
// CHECK-NOT: name:
|
||||
// CHECK: type: ![[UNION:[0-9]+]]
|
||||
|
|
|
@ -8,9 +8,10 @@
|
|||
// CHECK: !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: ![[MEMFUNTYPE:[0-9]+]]
|
||||
// CHECK: ![[MEMFUNTYPE]] = !DISubroutineType(types: ![[MEMFUNARGS:[0-9]+]])
|
||||
// CHECK: ![[MEMFUNARGS]] = {{.*}}, ![[THISTYPE]],
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable
|
||||
// CHECK: !DILocalVariable(name: "this", arg: 1
|
||||
// CHECK: !DILocalVariable(arg: 2
|
||||
// CHECK: !DILocalVariable(arg: 3
|
||||
// CHECK: !DILocalVariable(arg: 4
|
||||
union {
|
||||
int a;
|
||||
float b;
|
||||
|
|
|
@ -22,13 +22,13 @@ public:
|
|||
void g() {
|
||||
A a;
|
||||
// The type of pl is "void (A::*)() const &".
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "pl",
|
||||
// CHECK: !DILocalVariable(name: "pl",
|
||||
// CHECK-SAME: line: [[@LINE+3]]
|
||||
// CHECK-SAME: type: ![[PL:[0-9]+]]
|
||||
// CHECK: !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: ![[PLSR]]
|
||||
auto pl = &A::l;
|
||||
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "pr",
|
||||
// CHECK: !DILocalVariable(name: "pr",
|
||||
// CHECK-SAME: line: [[@LINE+3]]
|
||||
// CHECK-SAME: type: ![[PR:[0-9]+]]
|
||||
// CHECK: !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: ![[PRSR]]
|
||||
|
|
|
@ -9,14 +9,14 @@ int src();
|
|||
void f();
|
||||
|
||||
void func() {
|
||||
// CHECK: = !DILocalVariable(tag: DW_TAG_auto_variable, name: "i"
|
||||
// CHECK: = !DILocalVariable(name: "i"
|
||||
// CHECK-SAME: scope: [[IF1:![0-9]*]]
|
||||
// CHECK-SAME: line: [[@LINE+2]]
|
||||
// CHECK: [[IF1]] = distinct !DILexicalBlock({{.*}}line: [[@LINE+1]])
|
||||
if (int i = src())
|
||||
f();
|
||||
|
||||
// CHECK: = !DILocalVariable(tag: DW_TAG_auto_variable, name: "i"
|
||||
// CHECK: = !DILocalVariable(name: "i"
|
||||
// CHECK-SAME: scope: [[IF2:![0-9]*]]
|
||||
// CHECK-SAME: line: [[@LINE+2]]
|
||||
// CHECK: [[IF2]] = distinct !DILexicalBlock({{.*}}line: [[@LINE+1]])
|
||||
|
@ -25,12 +25,12 @@ void func() {
|
|||
} else
|
||||
f();
|
||||
|
||||
// CHECK: = !DILocalVariable(tag: DW_TAG_auto_variable, name: "i"
|
||||
// CHECK: = !DILocalVariable(name: "i"
|
||||
// CHECK-SAME: scope: [[FOR:![0-9]*]]
|
||||
// CHECK-SAME: line: [[@LINE+2]]
|
||||
// CHECK: [[FOR]] = distinct !DILexicalBlock({{.*}}line: [[@LINE+1]])
|
||||
for (int i = 0;
|
||||
// CHECK: = !DILocalVariable(tag: DW_TAG_auto_variable, name: "b"
|
||||
// CHECK: = !DILocalVariable(name: "b"
|
||||
// CHECK-SAME: scope: [[FOR_BODY:![0-9]*]]
|
||||
// CHECK-SAME: line: [[@LINE+6]]
|
||||
// CHECK: [[FOR_BODY]] = distinct !DILexicalBlock({{.*}}line: [[@LINE-4]])
|
||||
|
@ -41,7 +41,7 @@ void func() {
|
|||
bool b = i != 10; ++i)
|
||||
f();
|
||||
|
||||
// CHECK: = !DILocalVariable(tag: DW_TAG_auto_variable, name: "i"
|
||||
// CHECK: = !DILocalVariable(name: "i"
|
||||
// CHECK-SAME: scope: [[FOR:![0-9]*]]
|
||||
// CHECK-SAME: line: [[@LINE+2]]
|
||||
// CHECK: [[FOR]] = distinct !DILexicalBlock({{.*}}line: [[@LINE+1]])
|
||||
|
@ -50,7 +50,7 @@ void func() {
|
|||
// or using declarations) as direct children, they just waste
|
||||
// space/relocations/etc.
|
||||
// CHECK: [[FOR_LOOP_INCLUDING_COND:!.*]] = distinct !DILexicalBlock(scope: [[FOR]],{{.*}} line: [[@LINE-4]])
|
||||
// CHECK: = !DILocalVariable(tag: DW_TAG_auto_variable, name: "b"
|
||||
// CHECK: = !DILocalVariable(name: "b"
|
||||
// CHECK-SAME: scope: [[FOR_COMPOUND:![0-9]*]]
|
||||
// CHECK-SAME: line: [[@LINE+2]]
|
||||
// CHECK: [[FOR_COMPOUND]] = distinct !DILexicalBlock(scope: [[FOR_LOOP_INCLUDING_COND]],{{.*}} line: [[@LINE-8]])
|
||||
|
@ -58,13 +58,13 @@ void func() {
|
|||
}
|
||||
|
||||
int x[] = {1, 2};
|
||||
// CHECK: = !DILocalVariable(tag: DW_TAG_auto_variable, name: "__range"
|
||||
// CHECK: = !DILocalVariable(name: "__range"
|
||||
// CHECK-SAME: scope: [[RANGE_FOR:![0-9]*]]
|
||||
// CHECK-NOT: line:
|
||||
// CHECK-SAME: ){{$}}
|
||||
// CHECK: [[RANGE_FOR]] = distinct !DILexicalBlock({{.*}}, line: [[@LINE+1]])
|
||||
for (int i : x) {
|
||||
// CHECK: = !DILocalVariable(tag: DW_TAG_auto_variable, name: "i"
|
||||
// CHECK: = !DILocalVariable(name: "i"
|
||||
// CHECK-SAME: scope: [[RANGE_FOR_BODY:![0-9]*]]
|
||||
// CHECK-SAME: line: [[@LINE-3]]
|
||||
// CHECK: [[RANGE_FOR_BODY]] = distinct !DILexicalBlock(scope: [[RANGE_FOR]],{{.*}} line: [[@LINE-4]])
|
||||
|
|
|
@ -20,7 +20,7 @@ void b(int c, ...) {
|
|||
|
||||
A a;
|
||||
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "fptr"
|
||||
// CHECK: !DILocalVariable(name: "fptr"
|
||||
// CHECK-SAME: line: [[@LINE+2]]
|
||||
// CHECK-SAME: type: ![[PST:[0-9]+]]
|
||||
void (*fptr)(int, ...) = b;
|
||||
|
|
|
@ -142,11 +142,13 @@ incomplete (*x)[3];
|
|||
}
|
||||
|
||||
// For some reason function arguments ended up down here
|
||||
// CHECK: ![[F]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "f", arg: 1, scope: [[FUNC]]
|
||||
// CHECK: ![[F]] = !DILocalVariable(name: "f", arg: 1, scope: [[FUNC]]
|
||||
// CHECK-SAME: type: !"[[FOO]]"
|
||||
// CHECK: ![[EXPR]] = !DIExpression(DW_OP_deref)
|
||||
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "c"
|
||||
// CHECK: !DILocalVariable(name: "c"
|
||||
// CHECK-NOT: arg:
|
||||
// CHECK-SAME: )
|
||||
|
||||
namespace pr16214 {
|
||||
struct a {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: %clang_cc1 -x objective-c -emit-llvm -g < %s | FileCheck %s
|
||||
// Test to check that "self" argument is assigned a location.
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %0** %{{[^,]+}}, metadata [[SELF:![0-9]*]], metadata !{{.*}})
|
||||
// CHECK: [[SELF]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "self"
|
||||
// CHECK: [[SELF]] = !DILocalVariable(name: "self", arg: 1,
|
||||
|
||||
@interface Foo
|
||||
-(void) Bar: (int)x ;
|
||||
|
|
|
@ -10,6 +10,6 @@ void f0() {
|
|||
// We should have 3 lexical blocks here at the moment, including one
|
||||
// for the catch block.
|
||||
// CHECK: !DILexicalBlock(
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable
|
||||
// CHECK: !DILocalVariable(
|
||||
// CHECK: !DILexicalBlock(
|
||||
// CHECK: !DILexicalBlock(
|
||||
|
|
|
@ -66,6 +66,7 @@ typedef enum {
|
|||
// CHECK: ![[MAIN:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Main"
|
||||
// CHECK-SAME: line: 23,
|
||||
// CHECK: ![[PMAIN:.*]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: ![[MAIN]],
|
||||
// CHECK: ![[BDMD]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: ".block_descriptor"
|
||||
// CHECK: ![[SELF]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "self"
|
||||
// CHECK: ![[BDMD]] = !DILocalVariable(name: ".block_descriptor", arg:
|
||||
// CHECK: ![[SELF]] = !DILocalVariable(name: "self"
|
||||
// CHECK-NOT: arg:
|
||||
// CHECK-SAME: line: 40,
|
||||
|
|
|
@ -61,8 +61,8 @@ static void run(void (^block)(void))
|
|||
{
|
||||
if ((self = [super init])) {
|
||||
run(^{
|
||||
// CHECK-DAG: ![[SELF]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "self"{{.*}}, line: [[@LINE+4]],
|
||||
// CHECK-DAG: ![[D]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "d"{{.*}}, line: [[@LINE+1]],
|
||||
// CHECK-DAG: ![[SELF]] = !DILocalVariable(name: "self", scope:{{.*}}, line: [[@LINE+4]],
|
||||
// CHECK-DAG: ![[D]] = !DILocalVariable(name: "d", scope:{{.*}}, line: [[@LINE+1]],
|
||||
NSMutableDictionary *d = [[NSMutableDictionary alloc] init];
|
||||
ivar = 42 + (int)[d count];
|
||||
});
|
||||
|
|
|
@ -38,10 +38,10 @@ int main()
|
|||
// Verify that the debug type for both variables is 'id'.
|
||||
// CHECK: ![[IDTYPE:[0-9]+]] = !DIDerivedType(tag: DW_TAG_typedef, name: "id"
|
||||
//
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "bad_carrier"
|
||||
// CHECK: !DILocalVariable(name: "bad_carrier", arg:
|
||||
// CHECK-NOT: line:
|
||||
// CHECK-SAME: type: ![[IDTYPE]]
|
||||
//
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "good_carrier"
|
||||
// CHECK: !DILocalVariable(name: "good_carrier", arg:
|
||||
// CHECK-NOT: line:
|
||||
// CHECK-SAME: type: ![[IDTYPE]]
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
{
|
||||
// The debug type for these two will be identical, because we do not
|
||||
// actually emit the ownership qualifier.
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "weakSelf",
|
||||
// CHECK: !DILocalVariable(name: "weakSelf",
|
||||
// CHECK-SAME: line: [[@LINE+2]]
|
||||
// CHECK-SAME: type: ![[SELFTY:[0-9]+]]
|
||||
__attribute__((objc_ownership(weak))) __typeof(self) weakSelf = self;
|
||||
Block = [^{
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "strongSelf",
|
||||
// CHECK: !DILocalVariable(name: "strongSelf",
|
||||
// CHECK-SAME: line: [[@LINE+2]]
|
||||
// CHECK-SAME: type: ![[SELFTY]]
|
||||
__attribute__((objc_ownership(strong))) __typeof(self) strongSelf = weakSelf;
|
||||
|
|
|
@ -14,15 +14,15 @@
|
|||
}
|
||||
@end
|
||||
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "self", arg: 1,
|
||||
// CHECK: !DILocalVariable(name: "self", arg: 1,
|
||||
// CHECK-SAME: scope: ![[CTOR:[0-9]+]]
|
||||
// CHECK-NOT: line:
|
||||
// CHECK-SAME: flags: DIFlagArtificial | DIFlagObjectPointer{{[,)]}}
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "_cmd", arg: 2,
|
||||
// CHECK: !DILocalVariable(name: "_cmd", arg: 2,
|
||||
// CHECK-SAME: scope: ![[CTOR]]
|
||||
// CHECK-NOT: line:
|
||||
// CHECK-SAME: flags: DIFlagArtificial{{[,)]}}
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "myarg", arg: 3,
|
||||
// CHECK: !DILocalVariable(name: "myarg", arg: 3,
|
||||
// CHECK-SAME: scope: ![[CTOR]]
|
||||
// CHECK-SAME: line: 11
|
||||
// CHECK-NOT: flags:
|
||||
|
|
|
@ -59,22 +59,22 @@ int main() {
|
|||
// CHECK-SAME: line: 22
|
||||
// CHECK-SAME: baseType: ![[ENUMERATOR3]]
|
||||
|
||||
// CHECK: ![[ENUM0]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "e0"
|
||||
// CHECK: ![[ENUM0]] = !DILocalVariable(name: "e0"
|
||||
// CHECK-SAME: type: ![[TYPE0:[0-9]+]]
|
||||
// CHECK: ![[TYPE0]] = !DIDerivedType(tag: DW_TAG_typedef, name: "Enum0",
|
||||
// CHECK-SAME: baseType: ![[ENUMERATOR0]]
|
||||
|
||||
// CHECK: ![[ENUM1]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "e1"
|
||||
// CHECK: ![[ENUM1]] = !DILocalVariable(name: "e1"
|
||||
// CHECK-SAME: type: ![[TYPE1:[0-9]+]]
|
||||
// CHECK: ![[TYPE1]] = !DIDerivedType(tag: DW_TAG_typedef, name: "Enum1"
|
||||
// CHECK-SAME: baseType: ![[ENUMERATOR1]]
|
||||
|
||||
// CHECK: ![[ENUM2]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "e2"
|
||||
// CHECK: ![[ENUM2]] = !DILocalVariable(name: "e2"
|
||||
// CHECK-SAME: type: ![[TYPE2:[0-9]+]]
|
||||
// CHECK: ![[TYPE2]] = !DIDerivedType(tag: DW_TAG_typedef, name: "Enum2"
|
||||
// CHECK-SAME: baseType: ![[ENUMERATOR2]]
|
||||
|
||||
// CHECK: ![[ENUM3]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "e3"
|
||||
// CHECK: ![[ENUM3]] = !DILocalVariable(name: "e3"
|
||||
// CHECK-SAME: type: ![[TYPE3:[0-9]+]]
|
||||
// CHECK: ![[TYPE3]] = !DIDerivedType(tag: DW_TAG_typedef, name: "Enum3"
|
||||
// CHECK-SAME: baseType: ![[ENUMERATOR3]]
|
||||
|
|
Loading…
Reference in New Issue