Index: clang/test/CodeGen/debug-info-scope-file.c =================================================================== --- clang/test/CodeGen/debug-info-scope-file.c +++ clang/test/CodeGen/debug-info-scope-file.c @@ -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() { Index: clang/test/CodeGenCXX/PR20038.cpp =================================================================== --- clang/test/CodeGenCXX/PR20038.cpp +++ clang/test/CodeGenCXX/PR20038.cpp @@ -6,9 +6,9 @@ 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; } Index: clang/test/CodeGenCXX/dbg-info-all-calls-described.cpp =================================================================== --- clang/test/CodeGenCXX/dbg-info-all-calls-described.cpp +++ clang/test/CodeGenCXX/dbg-info-all-calls-described.cpp @@ -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(); Index: clang/test/CodeGenCXX/debug-info-access.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-access.cpp +++ clang/test/CodeGenCXX/debug-info-access.cpp @@ -35,8 +35,8 @@ // CHECK: !DISubprogram(name: "free", -// CHECK-SAME: isDefinition: true // CHECK-SAME: flags: DIFlagPrototyped, +// CHECK-SAME: spFlags: DISPFlagDefinition void free() {} U u; Index: clang/test/CodeGenCXX/debug-info-blocks.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-blocks.cpp +++ clang/test/CodeGenCXX/debug-info-blocks.cpp @@ -14,7 +14,7 @@ // 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 Index: clang/test/CodeGenCXX/debug-info-cxx1y.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-cxx1y.cpp +++ clang/test/CodeGenCXX/debug-info-cxx1y.cpp @@ -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(); Index: clang/test/CodeGenCXX/debug-info-decl-nested.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-decl-nested.cpp +++ clang/test/CodeGenCXX/debug-info-decl-nested.cpp @@ -19,13 +19,13 @@ } 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 @@ } 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 @@ } 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() { } Index: clang/test/CodeGenCXX/debug-info-function-context.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-function-context.cpp +++ clang/test/CodeGenCXX/debug-info-function-context.cpp @@ -28,10 +28,10 @@ // 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 Index: clang/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp +++ clang/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp @@ -16,12 +16,12 @@ 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 Index: clang/test/CodeGenCXX/debug-info-inlined.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-inlined.cpp +++ clang/test/CodeGenCXX/debug-info-inlined.cpp @@ -26,4 +26,4 @@ // 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 Index: clang/test/CodeGenCXX/debug-info-ms-abi.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-ms-abi.cpp +++ clang/test/CodeGenCXX/debug-info-ms-abi.cpp @@ -30,16 +30,19 @@ // 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 Index: clang/test/CodeGenCXX/debug-info-namespace.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-namespace.cpp +++ clang/test/CodeGenCXX/debug-info-namespace.cpp @@ -90,7 +90,7 @@ // 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 @@ // 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 @@ // 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( Index: clang/test/CodeGenCXX/debug-info-static-fns.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-static-fns.cpp +++ clang/test/CodeGenCXX/debug-info-static-fns.cpp @@ -10,4 +10,4 @@ // 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 Index: clang/test/CodeGenCXX/debug-info-thunk-msabi.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-thunk-msabi.cpp +++ clang/test/CodeGenCXX/debug-info-thunk-msabi.cpp @@ -12,8 +12,8 @@ // // 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 Index: clang/test/CodeGenCXX/debug-info-thunk.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info-thunk.cpp +++ clang/test/CodeGenCXX/debug-info-thunk.cpp @@ -268,9 +268,9 @@ // // 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 Index: clang/test/CodeGenCXX/debug-info.cpp =================================================================== --- clang/test/CodeGenCXX/debug-info.cpp +++ clang/test/CodeGenCXX/debug-info.cpp @@ -103,7 +103,7 @@ // 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 { Index: clang/test/CodeGenCXX/debug-lambda-expressions.cpp =================================================================== --- clang/test/CodeGenCXX/debug-lambda-expressions.cpp +++ clang/test/CodeGenCXX/debug-lambda-expressions.cpp @@ -40,7 +40,7 @@ // 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 @@ // 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 @@ // 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 @@ // 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]], Index: clang/test/CodeGenCXX/globalinit-loc.cpp =================================================================== --- clang/test/CodeGenCXX/globalinit-loc.cpp +++ clang/test/CodeGenCXX/globalinit-loc.cpp @@ -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 { Index: clang/test/CodeGenCXX/linetable-fnbegin.cpp =================================================================== --- clang/test/CodeGenCXX/linetable-fnbegin.cpp +++ clang/test/CodeGenCXX/linetable-fnbegin.cpp @@ -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]]) Index: clang/test/CodeGenObjC/arc-linetable.m =================================================================== --- clang/test/CodeGenObjC/arc-linetable.m +++ clang/test/CodeGenObjC/arc-linetable.m @@ -56,7 +56,7 @@ // 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 Index: clang/test/CodeGenObjC/debug-info-category.m =================================================================== --- clang/test/CodeGenObjC/debug-info-category.m +++ clang/test/CodeGenObjC/debug-info-category.m @@ -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 - -// 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 - -// 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 +// 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]], {{.*}} 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]"{{.*}} DISPFlagDefinition +// CHECK: = distinct !DISubprogram(name: "-[Foo integer:]"{{.*}} DISPFlagDefinition +// CHECK: = distinct !DISubprogram(name: "+[Foo(Bar) zero:]"{{.*}} DISPFlagDefinition +// CHECK: = distinct !DISubprogram(name: "-[Foo(Bar) add:]"{{.*}} DISPFlagDefinition Index: clang/test/CodeGenObjC/debug-info-synthesis.m =================================================================== --- clang/test/CodeGenObjC/debug-info-synthesis.m +++ clang/test/CodeGenObjC/debug-info-synthesis.m @@ -34,4 +34,4 @@ // CHECK: !DISubprogram(name: "-[Foo setDict:]" // CHECK-SAME: file: ![[FILE]], // CHECK-SAME: line: 8, -// CHECK-SAME: isLocal: true, isDefinition: true +// CHECK-SAME: DISPFlagLocalToUnit | DISPFlagDefinition Index: clang/test/CodeGenObjC/debug-property-synth.m =================================================================== --- clang/test/CodeGenObjC/debug-property-synth.m +++ clang/test/CodeGenObjC/debug-property-synth.m @@ -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 Index: clang/test/CodeGenObjC/debuginfo-properties.m =================================================================== --- clang/test/CodeGenObjC/debuginfo-properties.m +++ clang/test/CodeGenObjC/debuginfo-properties.m @@ -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