mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-19 11:35:51 -04:00

[this re-applies c0176916a4
with the correct commit message and phabricator link]
This addresses point 1 of PR44213.
https://bugs.llvm.org/show_bug.cgi?id=44213
The DW_AT_LLVM_sysroot attribute is used for Clang module debug info,
to allow LLDB to import a Clang module from source. Currently it is
part of each DW_TAG_module, however, it is the same for all modules in
a compile unit. It is more efficient and less ambiguous to store it
once in the DW_TAG_compile_unit.
This should have no effect on DWARF consumers other than LLDB.
Differential Revision: https://reviews.llvm.org/D71732
33 lines
1.8 KiB
Matlab
33 lines
1.8 KiB
Matlab
// RUN: rm -rf %t
|
|
// RUN: %clang_cc1 -debug-info-kind=limited -fmodules -DGREETING="Hello World" -UNDEBUG -fimplicit-module-maps -fmodules-cache-path=%t %s -I %S/Inputs -isysroot /tmp/.. -I %t -emit-llvm -o - | FileCheck %s --check-prefix=NOIMPORT
|
|
|
|
// NOIMPORT-NOT: !DIImportedEntity
|
|
// NOIMPORT-NOT: !DIModule
|
|
|
|
// RUN: rm -rf %t
|
|
// RUN: %clang_cc1 -debug-info-kind=limited -fmodules -DGREETING="Hello World" -UNDEBUG -fimplicit-module-maps -fmodules-cache-path=%t %s -I %S/Inputs -isysroot /tmp/.. -I %t -emit-llvm -debugger-tuning=lldb -o - | FileCheck %s
|
|
|
|
// CHECK: ![[CU:.*]] = distinct !DICompileUnit
|
|
// CHECK-SAME: sysroot: "/tmp/..")
|
|
@import DebugObjC;
|
|
// CHECK: !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: ![[CU]],
|
|
// CHECK-SAME: entity: ![[MODULE:.*]], file: ![[F:[0-9]+]],
|
|
// CHECK-SAME: line: [[@LINE-3]])
|
|
// CHECK: ![[MODULE]] = !DIModule(scope: null, name: "DebugObjC",
|
|
// CHECK-SAME: configMacros: "\22-DGREETING=Hello World\22 \22-UNDEBUG\22",
|
|
// CHECK-SAME: includePath: "{{.*}}test{{.*}}Modules{{.*}}Inputs"
|
|
// CHECK: ![[F]] = !DIFile(filename: {{.*}}debug-info-moduleimport.m
|
|
|
|
// RUN: %clang_cc1 -debug-info-kind=limited -fmodules -fimplicit-module-maps -fmodules-cache-path=%t \
|
|
// RUN: %s -I %S/Inputs -isysroot /tmp/.. -I %t -emit-llvm -o - \
|
|
// RUN: | FileCheck %s --check-prefix=NO-SKEL-CHECK
|
|
// NO-SKEL-CHECK: distinct !DICompileUnit
|
|
// NO-SKEL-CHECK-NOT: distinct !DICompileUnit
|
|
|
|
// RUN: %clang_cc1 -debug-info-kind=limited -fmodules -fimplicit-module-maps -fmodules-cache-path=%t \
|
|
// RUN: -fmodule-format=obj -dwarf-ext-refs \
|
|
// RUN: %s -I %S/Inputs -isysroot /tmp/.. -I %t -emit-llvm -o - \
|
|
// RUN: | FileCheck %s --check-prefix=SKEL-CHECK
|
|
// SKEL-CHECK: distinct !DICompileUnit
|
|
// SKEL-CHECK: distinct !DICompileUnit{{.*}}dwoId
|