forked from OSchip/llvm-project
[DebugInfo] NFC Clang test changes for: IR/Bitcode changes for DISubprogram flags.
Differential Revision: https://reviews.llvm.org/D54756 llvm-svn: 347807
This commit is contained in:
parent
adcdc1bd0a
commit
416b12f776
|
@ -5,9 +5,9 @@
|
|||
|
||||
// CHECK: ret void, !dbg [[F1_LINE:![0-9]*]]
|
||||
// CHECK: ret void, !dbg [[F2_LINE:![0-9]*]]
|
||||
// CHECK: [[F1:![0-9]*]] = distinct !DISubprogram(name: "f1",{{.*}} isDefinition: true
|
||||
// CHECK: [[F1:![0-9]*]] = distinct !DISubprogram(name: "f1",{{.*}} DISPFlagDefinition
|
||||
// CHECK: [[F1_LINE]] = !DILocation({{.*}}, scope: [[F1]])
|
||||
// CHECK: [[F2:![0-9]*]] = distinct !DISubprogram(name: "f2",{{.*}} isDefinition: true
|
||||
// CHECK: [[F2:![0-9]*]] = distinct !DISubprogram(name: "f2",{{.*}} DISPFlagDefinition
|
||||
// CHECK: [[F2_LINE]] = !DILocation({{.*}}, scope: [[F2]])
|
||||
|
||||
void f1() {
|
||||
|
|
|
@ -6,9 +6,9 @@ struct C {
|
|||
extern bool b;
|
||||
// CHECK: call {{.*}}, !dbg [[DTOR_CALL1_LOC:![0-9]*]]
|
||||
// CHECK: call {{.*}}, !dbg [[DTOR_CALL2_LOC:![0-9]*]]
|
||||
// CHECK: [[FUN1:.*]] = distinct !DISubprogram(name: "fun1",{{.*}} isDefinition: true
|
||||
// CHECK: [[FUN1:.*]] = distinct !DISubprogram(name: "fun1",{{.*}} DISPFlagDefinition
|
||||
// CHECK: [[DTOR_CALL1_LOC]] = !DILocation(line: [[@LINE+1]], scope: [[FUN1]])
|
||||
void fun1() { b && (C(), 1); }
|
||||
// CHECK: [[FUN2:.*]] = distinct !DISubprogram(name: "fun2",{{.*}} isDefinition: true
|
||||
// CHECK: [[FUN2:.*]] = distinct !DISubprogram(name: "fun2",{{.*}} DISPFlagDefinition
|
||||
// CHECK: [[DTOR_CALL2_LOC]] = !DILocation(line: [[@LINE+1]], scope: [[FUN2]])
|
||||
bool fun2() { return (C(), b) && 0; }
|
||||
|
|
|
@ -36,13 +36,13 @@
|
|||
|
||||
// NO-ATTR-NOT: FlagAllCallsDescribed
|
||||
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "declaration2", {{.*}}, isDefinition: true, {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "struct1", {{.*}}, isDefinition: false, {{.*}}, flags: DIFlagPrototyped
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "struct1", {{.*}}, isDefinition: true, {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "method1", {{.*}}, isDefinition: true, {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "force_irgen", {{.*}}, isDefinition: true, {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "declaration2", {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "struct1", {{.*}}, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized)
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "struct1", {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "method1", {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition
|
||||
// HAS-ATTR-DAG: DISubprogram(name: "force_irgen", {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition
|
||||
|
||||
// LINE-TABLES-ONLY: DISubprogram(name: "force_irgen", {{.*}}, isDefinition: true, {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed
|
||||
// LINE-TABLES-ONLY: DISubprogram(name: "force_irgen", {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition
|
||||
|
||||
void declaration1();
|
||||
|
||||
|
|
|
@ -35,8 +35,8 @@ private:
|
|||
|
||||
|
||||
// CHECK: !DISubprogram(name: "free",
|
||||
// CHECK-SAME: isDefinition: true
|
||||
// CHECK-SAME: flags: DIFlagPrototyped,
|
||||
// CHECK-SAME: spFlags: DISPFlagDefinition
|
||||
void free() {}
|
||||
|
||||
U u;
|
||||
|
|
|
@ -14,7 +14,7 @@ void test() {
|
|||
|
||||
// CHECK: !DISubprogram(name: "__Block_byref_object_copy_",
|
||||
// CHECK-SAME: line: 11,
|
||||
// CHECK-SAME: isLocal: true, isDefinition: true
|
||||
// CHECK-SAME: DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK: !DISubprogram(name: "__Block_byref_object_dispose_",
|
||||
// CHECK-SAME: line: 11,
|
||||
// CHECK-SAME: isLocal: true, isDefinition: true
|
||||
// CHECK-SAME: DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
|
|
|
@ -18,12 +18,12 @@
|
|||
// FIXME: The context of this definition should be the CU/file scope, not the class.
|
||||
// CHECK: !DISubprogram(name: "func", {{.*}} scope: [[FOO]]
|
||||
// CHECK-SAME: type: [[SUBROUTINE_TYPE]]
|
||||
// CHECK-SAME: isDefinition: true
|
||||
// CHECK-SAME: DISPFlagDefinition
|
||||
// CHECK-SAME: declaration: [[FUNC_DECL:![0-9]*]]
|
||||
// CHECK: [[FUNC_DECL]] = !DISubprogram(name: "func",
|
||||
// CHECK-SAME: scope: [[FOO]]
|
||||
// CHECK-SAME: type: [[SUBROUTINE_TYPE]]
|
||||
// CHECK-SAME: isDefinition: false
|
||||
// CHECK-SAME: spFlags: 0
|
||||
|
||||
struct foo {
|
||||
static auto func();
|
||||
|
|
|
@ -19,13 +19,13 @@ class OuterClass
|
|||
} theInnerClass;
|
||||
// CHECK0: ![[DECL:[0-9]+]] = !DISubprogram(name: "OuterClass"
|
||||
// CHECK0-SAME: line: [[@LINE+2]]
|
||||
// CHECK0-SAME: isDefinition: false
|
||||
// CHECK0-SAME: spFlags: 0
|
||||
OuterClass(const Foo *); // line 10
|
||||
};
|
||||
OuterClass::InnerClass OuterClass::theInnerClass; // This toplevel decl causes InnerClass to be generated.
|
||||
// CHECK0: !DISubprogram(name: "OuterClass"
|
||||
// CHECK0-SAME: line: [[@LINE+3]]
|
||||
// CHECK0-SAME: isDefinition: true
|
||||
// CHECK0-SAME: DISPFlagDefinition
|
||||
// CHECK0-SAME: declaration: ![[DECL]]
|
||||
OuterClass::OuterClass(const Foo *meta) { } // line 13
|
||||
|
||||
|
@ -43,13 +43,13 @@ class OuterClass1
|
|||
} theInnerClass1;
|
||||
// CHECK1: ![[DECL:[0-9]+]] = !DISubprogram(name: "Bar"
|
||||
// CHECK1-SAME: line: [[@LINE+2]]
|
||||
// CHECK1-SAME: isDefinition: false
|
||||
// CHECK1-SAME: spFlags: 0
|
||||
void Bar(const Foo1 *);
|
||||
};
|
||||
OuterClass1::InnerClass1 OuterClass1::theInnerClass1;
|
||||
// CHECK1: !DISubprogram(name: "Bar"
|
||||
// CHECK1-SAME: line: [[@LINE+3]]
|
||||
// CHECK1-SAME: isDefinition: true
|
||||
// CHECK1-SAME: DISPFlagDefinition
|
||||
// CHECK1-SAME: declaration: ![[DECL]]
|
||||
void OuterClass1::Bar(const Foo1 *meta) { }
|
||||
|
||||
|
@ -66,12 +66,12 @@ class OuterClass2
|
|||
} theInnerClass2;
|
||||
// CHECK2: ![[DECL:[0-9]+]] = !DISubprogram(name: "~OuterClass2"
|
||||
// CHECK2-SAME: line: [[@LINE+2]]
|
||||
// CHECK2-SAME: isDefinition: false
|
||||
// CHECK2-SAME: spFlags: 0
|
||||
~OuterClass2(); // line 10
|
||||
};
|
||||
OuterClass2::InnerClass2 OuterClass2::theInnerClass2;
|
||||
// CHECK4: !DISubprogram(name: "~OuterClass2"
|
||||
// CHECK4-SAME: line: [[@LINE+3]]
|
||||
// CHECK4-SAME: isDefinition: true
|
||||
// CHECK4-SAME: DISPFlagDefinition
|
||||
// CHECK4-SAME: declaration: ![[DECL]]
|
||||
OuterClass2::~OuterClass2() { }
|
||||
|
|
|
@ -28,10 +28,10 @@ int global_namespace_variable = 1;
|
|||
// CHECK: ![[FILE:[0-9]+]] = !DIFile(filename: "{{.*}}context.cpp",
|
||||
// CHECK: ![[C:[0-9]+]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "C",
|
||||
// CHECK: ![[NS:.*]] = !DINamespace(name: "ns"
|
||||
// CHECK: !DISubprogram(name: "member_function",{{.*}} scope: ![[C]],{{.*}} isDefinition: true
|
||||
// CHECK: !DISubprogram(name: "member_function",{{.*}} scope: ![[C]],{{.*}} DISPFlagDefinition
|
||||
|
||||
// CHECK: !DISubprogram(name: "static_member_function",{{.*}} scope: ![[C]],{{.*}} isDefinition: true
|
||||
// CHECK: !DISubprogram(name: "static_member_function",{{.*}} scope: ![[C]],{{.*}} DISPFlagDefinition
|
||||
|
||||
// CHECK: !DISubprogram(name: "global_function",{{.*}} scope: ![[FILE]],{{.*}} isDefinition: true
|
||||
// CHECK: !DISubprogram(name: "global_function",{{.*}} scope: ![[FILE]],{{.*}} DISPFlagDefinition
|
||||
|
||||
// CHECK: !DISubprogram(name: "global_namespace_function",{{.*}} scope: ![[NS]],{{.*}} isDefinition: true
|
||||
// CHECK: !DISubprogram(name: "global_namespace_function",{{.*}} scope: ![[NS]],{{.*}} DISPFlagDefinition
|
||||
|
|
|
@ -16,12 +16,12 @@ void foo() {
|
|||
static A stat;
|
||||
}
|
||||
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__cxx_global_var_init",{{.*}} line: 12,{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__dtor_glob",{{.*}} line: 12,{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__cxx_global_var_init.1",{{.*}} line: 13,{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__cxx_global_array_dtor",{{.*}} line: 13,{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__dtor_array",{{.*}} line: 13,{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__dtor__ZZ3foovE4stat",{{.*}} line: 16,{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK-NOKEXT: !DISubprogram({{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__cxx_global_var_init",{{.*}} line: 12,{{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__dtor_glob",{{.*}} line: 12,{{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__cxx_global_var_init.1",{{.*}} line: 13,{{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__cxx_global_array_dtor",{{.*}} line: 13,{{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__dtor_array",{{.*}} line: 13,{{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK-NOKEXT: !DISubprogram(name: "__dtor__ZZ3foovE4stat",{{.*}} line: 16,{{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK-NOKEXT: !DISubprogram({{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
|
||||
// CHECK-KEXT: !DISubprogram({{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK-KEXT: !DISubprogram({{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
|
|
|
@ -26,4 +26,4 @@ B::B() : Forward(WithDtor()) {}
|
|||
// CHECK-SAME: !dbg ![[INL:[0-9]+]]
|
||||
|
||||
// CHECK: ![[INL]] = !DILocation(line: 10, scope: ![[SP:[0-9]+]], inlinedAt:
|
||||
// CHECK: ![[SP]] = distinct !DISubprogram(name: "Base", {{.*}}isDefinition: true
|
||||
// CHECK: ![[SP]] = distinct !DISubprogram(name: "Base", {{.*}} DISPFlagDefinition
|
||||
|
|
|
@ -30,16 +30,19 @@ Foo::Nested n;
|
|||
// CHECK: ![[vptr_ty]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: ![[vshape]], size: 32
|
||||
|
||||
// CHECK: ![[f]] = !DISubprogram(name: "f",
|
||||
// CHECK-SAME: containingType: ![[Foo]], virtuality: DW_VIRTUALITY_virtual, virtualIndex: 0,
|
||||
// CHECK-SAME: containingType: ![[Foo]], virtualIndex: 0,
|
||||
// CHECK-SAME: flags: DIFlagPrototyped | DIFlagIntroducedVirtual,
|
||||
// CHECK-SAME: spFlags: DISPFlagVirtual
|
||||
|
||||
// CHECK: ![[g]] = !DISubprogram(name: "g",
|
||||
// CHECK-SAME: containingType: ![[Foo]], virtuality: DW_VIRTUALITY_virtual, virtualIndex: 1,
|
||||
// CHECK-SAME: containingType: ![[Foo]], virtualIndex: 1,
|
||||
// CHECK-SAME: flags: DIFlagPrototyped | DIFlagIntroducedVirtual,
|
||||
// CHECK-SAME: spFlags: DISPFlagVirtual
|
||||
|
||||
// CHECK: ![[h]] = !DISubprogram(name: "h",
|
||||
// CHECK-SAME: containingType: ![[Foo]], virtuality: DW_VIRTUALITY_virtual, virtualIndex: 2,
|
||||
// CHECK-SAME: containingType: ![[Foo]], virtualIndex: 2,
|
||||
// CHECK-SAME: flags: DIFlagPrototyped | DIFlagIntroducedVirtual,
|
||||
// CHECK-SAME: spFlags: DISPFlagVirtual
|
||||
|
||||
// CHECK: ![[i]] = !DISubprogram(name: "i",
|
||||
// CHECK-SAME: flags: DIFlagPrototyped | DIFlagStaticMember
|
||||
|
|
|
@ -90,7 +90,7 @@ void C::c() {}
|
|||
// CHECK: [[LEX2]] = distinct !DILexicalBlock(scope: [[LEX1:![0-9]+]], file: [[FOOCPP]],
|
||||
// CHECK: [[LEX1]] = distinct !DILexicalBlock(scope: [[FUNC:![0-9]+]], file: [[FOOCPP]],
|
||||
|
||||
// CHECK: [[FUNC:![0-9]+]] = distinct !DISubprogram(name: "func",{{.*}} isDefinition: true
|
||||
// CHECK: [[FUNC:![0-9]+]] = distinct !DISubprogram(name: "func",{{.*}} DISPFlagDefinition
|
||||
// CHECK: [[M5]] = !DIImportedEntity(tag: DW_TAG_imported_module, scope: [[FUNC]], entity: [[CTXT:![0-9]+]],
|
||||
// CHECK: [[M6]] = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[FOO:![0-9]+]], file: [[FOOCPP]], line: 27)
|
||||
// CHECK: [[FOO]] = !DICompositeType(tag: DW_TAG_structure_type, name: "foo",
|
||||
|
@ -103,7 +103,7 @@ void C::c() {}
|
|||
|
||||
// CHECK: [[M8]] = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[F1:![0-9]+]]
|
||||
// CHECK: [[F1:![0-9]+]] = distinct !DISubprogram(name: "f1",{{.*}} line: 4
|
||||
// CHECK-SAME: isDefinition: true
|
||||
// CHECK-SAME: DISPFlagDefinition
|
||||
// CHECK: [[M9]] = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[I]]
|
||||
// CHECK: [[M10]] = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[BAZ:![0-9]+]]
|
||||
// CHECK: [[BAZ]] = !DIDerivedType(tag: DW_TAG_typedef, name: "baz", scope: [[NS]], file: [[FOOCPP]],
|
||||
|
@ -117,9 +117,9 @@ void C::c() {}
|
|||
// CHECK-SAME: scope: [[NS]], file: [[FOOCPP]], line: 9
|
||||
// CHECK: [[M15]] = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[VAR_FWD:![0-9]+]]
|
||||
// CHECK: [[M16]] = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: [[FUNC]], entity: [[FUNC_FWD:![0-9]+]]
|
||||
// CHECK: [[FUNC_FWD]] = distinct !DISubprogram(name: "func_fwd",{{.*}} line: 53,{{.*}} isDefinition: true
|
||||
// CHECK: [[FUNC_FWD]] = distinct !DISubprogram(name: "func_fwd",{{.*}} line: 53,{{.*}} DISPFlagDefinition
|
||||
// CHECK: [[M17]] = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: [[CTXT]], entity: [[I]]
|
||||
// CHECK: distinct !DISubprogram(name: "c",{{.*}}, scope: ![[C:[0-9]+]],{{.*}}, line: 60,{{.*}} isDefinition: true
|
||||
// CHECK: distinct !DISubprogram(name: "c",{{.*}}, scope: ![[C:[0-9]+]],{{.*}}, line: 60,{{.*}} DISPFlagDefinition
|
||||
// CHECK: ![[C]] = !DINamespace(name: "C",
|
||||
|
||||
// CHECK-GMLT: [[CU:![0-9]+]] = distinct !DICompileUnit(
|
||||
|
|
|
@ -10,4 +10,4 @@ namespace A {
|
|||
// CHECK: define internal i32 @_ZN1AL1aEi({{.*}} !dbg [[DBG:![0-9]+]]
|
||||
// CHECK: [[DBG]] = distinct !DISubprogram(name: "a", linkageName: "_ZN1AL1aEi",
|
||||
// CHECK-SAME: line: 4
|
||||
// CHECK-SAME: isDefinition: true
|
||||
// CHECK-SAME: DISPFlagDefinition
|
||||
|
|
|
@ -12,8 +12,8 @@ class __declspec(dllexport) A {
|
|||
//
|
||||
// CHECK: ![[SP]] = distinct !DISubprogram(
|
||||
// CHECK-SAME: line: 4
|
||||
// CHECK-SAME: isDefinition: true
|
||||
// CHECK-SAME: DIFlagArtificial
|
||||
// CHECK-SAME: DISPFlagDefinition
|
||||
// CHECK-SAME: ){{$}}
|
||||
//
|
||||
// CHECK: ![[DBG]] = !DILocation(line: 0
|
||||
|
|
|
@ -268,9 +268,9 @@ namespace Test12 {
|
|||
//
|
||||
// ITANIUM: ![[SP]] = distinct !DISubprogram(linkageName: "_ZThn{{[48]}}_N6Test121C1fEv"
|
||||
// ITANIUM-SAME: line: 261
|
||||
// ITANIUM-SAME: isDefinition: true
|
||||
// ITANIUM-SAME: DIFlagArtificial
|
||||
// ITANIUM-SAME: DIFlagThunk
|
||||
// ITANIUM-SAME: DISPFlagDefinition
|
||||
// ITANIUM-SAME: ){{$}}
|
||||
//
|
||||
// ITANIUM: ![[DBG]] = !DILocation(line: 0
|
||||
|
|
|
@ -103,7 +103,7 @@ Cls obj;
|
|||
|
||||
// CHECK: [[FUNC:[0-9]+]] = distinct !DISubprogram(name: "func", linkageName: "_ZN7pr147634funcENS_3fooE"
|
||||
// CHECK-SAME: type: {{![0-9]+}}
|
||||
// CHECK-SAME: isDefinition: true
|
||||
// CHECK-SAME: DISPFlagDefinition
|
||||
|
||||
// CHECK: [[PR14763:![0-9]+]] = !DINamespace(name: "pr14763"
|
||||
namespace pr14763 {
|
||||
|
|
|
@ -40,7 +40,7 @@ int d(int x) { D y[10]; return [x,y] { return y[x].x; }(); }
|
|||
// CHECK: ![[INT:[0-9]+]] = !DIBasicType(name: "int"
|
||||
|
||||
// A: 10
|
||||
// CHECK: ![[A_FUNC:.*]] = distinct !DISubprogram(name: "a"{{.*}}, line: [[A_LINE:[0-9]+]]{{.*}}, isDefinition: true
|
||||
// CHECK: ![[A_FUNC:.*]] = distinct !DISubprogram(name: "a"{{.*}}, line: [[A_LINE:[0-9]+]]{{.*}} DISPFlagDefinition
|
||||
|
||||
// Back to A. -- 78
|
||||
// CHECK: ![[LAM_A:.*]] = distinct !DICompositeType(tag: DW_TAG_class_type{{.*}}, scope: ![[A_FUNC]]{{.*}}, line: [[A_LINE]],
|
||||
|
@ -52,7 +52,7 @@ int d(int x) { D y[10]; return [x,y] { return y[x].x; }(); }
|
|||
// CHECK-SAME: DIFlagPublic
|
||||
|
||||
// B: 14
|
||||
// CHECK: ![[B_FUNC:.*]] = distinct !DISubprogram(name: "b"{{.*}}, line: [[B_LINE:[0-9]+]]{{.*}}, isDefinition: true
|
||||
// CHECK: ![[B_FUNC:.*]] = distinct !DISubprogram(name: "b"{{.*}}, line: [[B_LINE:[0-9]+]]{{.*}} DISPFlagDefinition
|
||||
|
||||
// Back to B. -- 67
|
||||
// CHECK: ![[LAM_B:.*]] = distinct !DICompositeType(tag: DW_TAG_class_type{{.*}}, scope: ![[B_FUNC]]{{.*}}, line: [[B_LINE]],
|
||||
|
@ -68,7 +68,7 @@ int d(int x) { D y[10]; return [x,y] { return y[x].x; }(); }
|
|||
// CHECK-SAME: DIFlagPublic
|
||||
|
||||
// C: 17
|
||||
// CHECK: ![[C_FUNC:.*]] = distinct !DISubprogram(name: "c"{{.*}}, line: [[C_LINE:[0-9]+]]{{.*}}, isDefinition: true
|
||||
// CHECK: ![[C_FUNC:.*]] = distinct !DISubprogram(name: "c"{{.*}}, line: [[C_LINE:[0-9]+]]{{.*}} DISPFlagDefinition
|
||||
|
||||
// Back to C. -- 55
|
||||
// CHECK: ![[LAM_C:.*]] = distinct !DICompositeType(tag: DW_TAG_class_type{{.*}}, scope: ![[C_FUNC]]{{.*}}, line: [[C_LINE]],
|
||||
|
@ -85,7 +85,7 @@ int d(int x) { D y[10]; return [x,y] { return y[x].x; }(); }
|
|||
// CHECK-SAME: DIFlagPublic
|
||||
|
||||
// D: 18
|
||||
// CHECK: ![[D_FUNC:.*]] = distinct !DISubprogram(name: "d"{{.*}}, line: [[D_LINE:[0-9]+]]{{.*}}, isDefinition: true
|
||||
// CHECK: ![[D_FUNC:.*]] = distinct !DISubprogram(name: "d"{{.*}}, line: [[D_LINE:[0-9]+]]{{.*}} DISPFlagDefinition
|
||||
|
||||
// Back to D. -- 24
|
||||
// CHECK: ![[LAM_D:.*]] = distinct !DICompositeType(tag: DW_TAG_class_type{{.*}}, scope: ![[D_FUNC]]{{.*}}, line: [[D_LINE]],
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
// CHECK: !dbg ![[DBG:.*]]
|
||||
// CHECK: !DISubprogram(linkageName: "_GLOBAL__sub_I_globalinit_loc.cpp"
|
||||
// CHECK-NOT: line:
|
||||
// CHECK-SAME: isLocal: true
|
||||
// CHECK-SAME: isDefinition: true
|
||||
// CHECK-SAME: DISPFlagLocalToUnit
|
||||
// CHECK-SAME: DISPFlagDefinition
|
||||
// CHECK: ![[DBG]] = !DILocation(line: 0,
|
||||
# 99 "someheader.h"
|
||||
class A {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// CHECK: [[HPP:.*]] = !DIFile(filename: "./template.hpp",
|
||||
// CHECK: [[SP:.*]] = distinct !DISubprogram(name: "bar",
|
||||
// CHECK-SAME: file: [[HPP]], line: 22
|
||||
// CHECK-SAME: isDefinition: true
|
||||
// CHECK-SAME: DISPFlagDefinition
|
||||
// We shouldn't need a lexical block for this function.
|
||||
// CHECK: [[DBG]] = !DILocation(line: 23, scope: [[SP]])
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ typedef signed char BOOL;
|
|||
|
||||
// CHECK: ![[TESTNOSIDEEFFECT:.*]] = distinct !DISubprogram(name: "-[AppDelegate testNoSideEffect:]"
|
||||
// CHECK-SAME: line: [[@LINE+2]]
|
||||
// CHECK-SAME: isLocal: true, isDefinition: true
|
||||
// CHECK-SAME: DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
- (int)testNoSideEffect:(NSString *)foo {
|
||||
int x = 1;
|
||||
return 1; // Return expression
|
||||
|
|
|
@ -36,17 +36,18 @@
|
|||
|
||||
// CHECK: ![[STRUCT:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Foo"
|
||||
|
||||
// DWARF5: !DISubprogram(name: "-[Foo integer]", scope: ![[STRUCT]], {{.*}}isDefinition: false
|
||||
// DWARF5: !DISubprogram(name: "-[Foo integer:]", scope: ![[STRUCT]], {{.*}}isDefinition: false
|
||||
// DWARF5: !DISubprogram(name: "+[Foo(Bar) zero:]", scope: ![[STRUCT]], {{.*}}isDefinition: false
|
||||
// DWARF5: !DISubprogram(name: "-[Foo(Bar) add:]", scope: ![[STRUCT]], {{.*}}isDefinition: false
|
||||
// Verify "not a definition" by showing spFlags doesn't have DISPFlagDefinition.
|
||||
// DWARF5: !DISubprogram(name: "-[Foo integer]", scope: ![[STRUCT]], {{.*}} spFlags: DISPFlagLocalToUnit,
|
||||
// DWARF5: !DISubprogram(name: "-[Foo integer:]", scope: ![[STRUCT]], {{.*}} spFlags: DISPFlagLocalToUnit,
|
||||
// DWARF5: !DISubprogram(name: "+[Foo(Bar) zero:]", scope: ![[STRUCT]], {{.*}} spFlags: DISPFlagLocalToUnit,
|
||||
// DWARF5: !DISubprogram(name: "-[Foo(Bar) add:]", scope: ![[STRUCT]], {{.*}} spFlags: DISPFlagLocalToUnit,
|
||||
|
||||
// DWARF4-NOT: !DISubprogram(name: "-[Foo integer]", scope: ![[STRUCT]], {{.*}}isDefinition: false
|
||||
// DWARF4-NOT: !DISubprogram(name: "-[Foo integer:]", scope: ![[STRUCT]], {{.*}}isDefinition: false
|
||||
// DWARF4-NOT: !DISubprogram(name: "+[Foo(Bar) zero:]", scope: ![[STRUCT]], {{.*}}isDefinition: false
|
||||
// DWARF4-NOT: !DISubprogram(name: "-[Foo(Bar) add:]", scope: ![[STRUCT]], {{.*}}isDefinition: false
|
||||
// DWARF4-NOT: !DISubprogram(name: "-[Foo integer]", scope: ![[STRUCT]], {{.*}} spFlags: DISPFlagLocalToUnit,
|
||||
// DWARF4-NOT: !DISubprogram(name: "-[Foo integer:]", scope: ![[STRUCT]], {{.*}} spFlags: DISPFlagLocalToUnit,
|
||||
// DWARF4-NOT: !DISubprogram(name: "+[Foo(Bar) zero:]", scope: ![[STRUCT]], {{.*}} spFlags: DISPFlagLocalToUnit,
|
||||
// DWARF4-NOT: !DISubprogram(name: "-[Foo(Bar) add:]", scope: ![[STRUCT]], {{.*}} spFlags: DISPFlagLocalToUnit,
|
||||
|
||||
// CHECK: = distinct !DISubprogram(name: "-[Foo integer]"{{.*}}isDefinition: true
|
||||
// CHECK: = distinct !DISubprogram(name: "-[Foo integer:]"{{.*}}isDefinition: true
|
||||
// CHECK: = distinct !DISubprogram(name: "+[Foo(Bar) zero:]"{{.*}}isDefinition: true
|
||||
// CHECK: = distinct !DISubprogram(name: "-[Foo(Bar) add:]"{{.*}}isDefinition: true
|
||||
// CHECK: = distinct !DISubprogram(name: "-[Foo integer]"{{.*}} DISPFlagDefinition
|
||||
// CHECK: = distinct !DISubprogram(name: "-[Foo integer:]"{{.*}} DISPFlagDefinition
|
||||
// CHECK: = distinct !DISubprogram(name: "+[Foo(Bar) zero:]"{{.*}} DISPFlagDefinition
|
||||
// CHECK: = distinct !DISubprogram(name: "-[Foo(Bar) add:]"{{.*}} DISPFlagDefinition
|
||||
|
|
|
@ -34,4 +34,4 @@ int main(int argc, char *argv[]) {
|
|||
// CHECK: !DISubprogram(name: "-[Foo setDict:]"
|
||||
// CHECK-SAME: file: ![[FILE]],
|
||||
// CHECK-SAME: line: 8,
|
||||
// CHECK-SAME: isLocal: true, isDefinition: true
|
||||
// CHECK-SAME: DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
|
|
|
@ -18,9 +18,9 @@
|
|||
// CHECK-NOT: ret
|
||||
// CHECK: load {{.*}}, !dbg ![[DBG2:[0-9]+]]
|
||||
//
|
||||
// CHECK: !DISubprogram(name: "-[I p1]",{{.*}} line: [[@LINE+4]],{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK: !DISubprogram(name: "-[I p1]",{{.*}} line: [[@LINE+4]],{{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK: ![[DBG1]] = !DILocation(line: [[@LINE+3]],
|
||||
// CHECK: !DISubprogram(name: "-[I setP1:]",{{.*}} line: [[@LINE+2]],{{.*}} isLocal: true, isDefinition: true
|
||||
// CHECK: !DISubprogram(name: "-[I setP1:]",{{.*}} line: [[@LINE+2]],{{.*}} DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK: ![[DBG2]] = !DILocation(line: [[@LINE+1]],
|
||||
@property int p1;
|
||||
@end
|
||||
|
|
|
@ -13,16 +13,16 @@
|
|||
@property (nonatomic, retain) Selection* selection;
|
||||
// CHECK: !DISubprogram(name: "-[MyClass selection]"
|
||||
// CHECK-SAME: line: [[@LINE-2]]
|
||||
// CHECK-SAME: isLocal: true, isDefinition: true
|
||||
// CHECK-SAME: DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK: !DISubprogram(name: "-[MyClass setSelection:]"
|
||||
// CHECK-SAME: line: [[@LINE-5]]
|
||||
// CHECK-SAME: isLocal: true, isDefinition: true
|
||||
// CHECK-SAME: DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK: !DISubprogram(name: "-[OtherClass selection]"
|
||||
// CHECK-SAME: line: [[@LINE-8]]
|
||||
// CHECK-SAME: isLocal: true, isDefinition: true
|
||||
// CHECK-SAME: DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
// CHECK: !DISubprogram(name: "-[OtherClass setSelection:]"
|
||||
// CHECK-SAME: line: [[@LINE-11]]
|
||||
// CHECK-SAME: isLocal: true, isDefinition: true
|
||||
// CHECK-SAME: DISPFlagLocalToUnit | DISPFlagDefinition
|
||||
|
||||
@end
|
||||
|
||||
|
|
Loading…
Reference in New Issue