r301707 - Adapt to LLVM API change (DINamespace no longer takes line/file info).

Adrian Prantl via cfe-commits cfe-commits at lists.llvm.org
Mon May 1 09:06:45 PDT 2017


I relaxed the testcase to allow for the extra import in r301805. The extra import is for the anonymous namespace that I added to the testcase, which is the intended behavior on the PS4 platform (DebugExplicitImport).

-- adrian

> On Apr 28, 2017, at 9:37 PM, Yung, Douglas <douglas.yung at sony.com> wrote:
> 
> Hi Adrian,
> 
> This commit, or the previous one you made seems to be causing a failure in the clang test CodeGenCXX\debug-info-namespace.cpp on the ps4 Windows and Linux bots. It's failing when trying to match the CHECK line on line 79 of the test because the line it matches seems to have one extra import on the PS4 target. Can you take a look?
> 
> Douglas Yung
> 
>> -----Original Message-----
>> From: cfe-commits [mailto:cfe-commits-bounces at lists.llvm.org] On Behalf Of
>> Adrian Prantl via cfe-commits
>> Sent: Friday, April 28, 2017 15:26
>> To: cfe-commits at lists.llvm.org
>> Subject: r301707 - Adapt to LLVM API change (DINamespace no longer takes
>> line/file info).
>> 
>> Author: adrian
>> Date: Fri Apr 28 17:25:53 2017
>> New Revision: 301707
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=301707&view=rev
>> Log:
>> Adapt to LLVM API change (DINamespace no longer takes line/file info).
>> 
>> rdar://problem/17484998
>> https://reviews.llvm.org/D32648
>> 
>> Modified:
>>    cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
>>    cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp
>>    cfe/trunk/test/Modules/ExtDebugInfo.cpp
>> 
>> Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
>> URL: http://llvm.org/viewvc/llvm-
>> project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=301707&r1=301706&r2=301707&v
>> iew=diff
>> ==============================================================================
>> --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
>> +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri Apr 28 17:25:53 2017
>> @@ -4034,11 +4034,9 @@ CGDebugInfo::getOrCreateNameSpace(const
>>   if (I != NameSpaceCache.end())
>>     return cast<llvm::DINamespace>(I->second);
>> 
>> -  unsigned LineNo = getLineNumber(NSDecl->getLocation());
>> -  llvm::DIFile *FileD = getOrCreateFile(NSDecl->getLocation());
>>   llvm::DIScope *Context = getDeclContextDescriptor(NSDecl);
>> -  llvm::DINamespace *NS = DBuilder.createNameSpace(
>> -      Context, NSDecl->getName(), FileD, LineNo, NSDecl->isInline());
>> +  llvm::DINamespace *NS =
>> +      DBuilder.createNameSpace(Context, NSDecl->getName(),
>> + NSDecl->isInline());
>>   NameSpaceCache[NSDecl].reset(NS);
>>   return NS;
>> }
>> 
>> Modified: cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-
>> namespace.cpp?rev=301707&r1=301706&r2=301707&view=diff
>> ==============================================================================
>> --- cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp (original)
>> +++ cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp Fri Apr 28
>> +++ 17:25:53 2017
>> @@ -53,21 +53,27 @@ inline namespace I {  int var_i;  }  } -void B::func_fwd()
>> {}
>> +namespace {
>> +int anonymous;
>> +}
>> +void B::func_fwd() {
>> +  anonymous = 0;
>> +}
>> +
>> 
>> // This should work even if 'i' and 'func' were declarations & not
>> definitions,  // but it doesn't yet.
>> 
>> // CHECK: [[I:![0-9]+]] = distinct !DIGlobalVariable(name: "i",{{.*}} scope:
>> [[NS:![0-9]+]], -// CHECK: [[NS]] = !DINamespace(name: "B", scope: [[CTXT:![0-
>> 9]+]], file: [[FOOCPP:![0-9]+]], line: 1) -// CHECK: [[FOOCPP]] =
>> !DIFile(filename: "foo.cpp"
>> -// CHECK: [[CTXT]] = !DINamespace(name: "A", scope: null, file: [[FILE:![0-
>> 9]+]], line: 5) -// CHECK: [[FILE]] = !DIFile(filename: "{{.*}}debug-info-
>> namespace.cpp",
>> +// CHECK: [[NS]] = !DINamespace(name: "B", scope: [[CTXT:![0-9]+]]) //
>> +CHECK: [[CTXT]] = !DINamespace(name: "A", scope: null) // CHECK:
>> +[[FOOCPP:.*]] = !DIFile(filename: "foo.cpp"
>> // CHECK: [[VAR_FWD:![0-9]+]] = distinct !DIGlobalVariable(name:
>> "var_fwd",{{.*}} scope: [[NS]],
>> // CHECK-SAME:                                             line: 44
>> // CHECK-SAME:                                             isDefinition: true
>> // CHECK: distinct !DIGlobalVariable(name: "var_i",{{.*}} scope:
>> [[INLINE:![0-9]+]], -// CHECK: [[INLINE]] = !DINamespace(name: "I", scope:
>> [[CTXT]], file: [[FOOCPP]], line: 46, exportSymbols: true)
>> +// CHECK: [[INLINE]] = !DINamespace(name: "I", scope: [[CTXT]],
>> +exportSymbols: true) // CHECK: !DINamespace(scope: null)
>> // CHECK: [[CU:![0-9]+]] = distinct !DICompileUnit(
>> // CHECK-SAME:                            imports: [[MODULES:![0-9]*]]
>> // CHECK: [[MODULES]] = !{[[M1:![0-9]+]], [[M2:![0-9]+]], [[M3:![0-9]+]],
>> [[M4:![0-9]+]], [[M5:![0-9]+]], [[M6:![0-9]+]], [[M7:![0-9]+]], [[M8:![0-
>> 9]+]], [[M9:![0-9]+]], [[M10:![0-9]+]], [[M11:![0-9]+]], [[M12:![0-9]+]],
>> [[M13:![0-9]+]], [[M14:![0-9]+]], [[M15:![0-9]+]], [[M16:![0-9]+]], [[M17:![0-
>> 9]+]]} @@ -106,7 +112,7 @@ void B::func_fwd() {}
>> // 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: 50,{{.*}} isDefinition: true
>> +// CHECK: [[FUNC_FWD]] = distinct !DISubprogram(name: "func_fwd",{{.*}}
>> +line: 53,{{.*}} isDefinition: true
>> // CHECK: [[M17]] = !DIImportedEntity(tag: DW_TAG_imported_declaration,
>> scope: [[CTXT]], entity: [[I]]
>> 
>> // CHECK-GMLT: [[CU:![0-9]+]] = distinct !DICompileUnit(
>> 
>> Modified: cfe/trunk/test/Modules/ExtDebugInfo.cpp
>> URL: http://llvm.org/viewvc/llvm-
>> project/cfe/trunk/test/Modules/ExtDebugInfo.cpp?rev=301707&r1=301706&r2=301707
>> &view=diff
>> ==============================================================================
>> --- cfe/trunk/test/Modules/ExtDebugInfo.cpp (original)
>> +++ cfe/trunk/test/Modules/ExtDebugInfo.cpp Fri Apr 28 17:25:53 2017
>> @@ -76,7 +76,7 @@ void foo() {
>> // CHECK-SAME:             flags: DIFlagFwdDecl,
>> // CHECK-SAME:             identifier:  "_ZTSN8DebugCXX4EnumE")
>> 
>> -// CHECK: ![[NS]] = !DINamespace(name: "DebugCXX", scope: ![[MOD:[0-9]+]],
>> +// CHECK: ![[NS]] = !DINamespace(name: "DebugCXX", scope:
>> +![[MOD:[0-9]+]])
>> // CHECK: ![[MOD]] = !DIModule(scope: null, name: {{.*}}DebugCXX
>> 
>> // This type is anchored in the module by an explicit template instantiation.
>> 
>> 
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list