mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-14 20:36:05 +00:00

This changes the current default behavior (from emitting pubnames by default, to not emitting them by default) & moves to matching GCC's behavior* with one significant difference: -gno(-gnu)-pubnames disables pubnames even in the presence of -gsplit-dwarf (though -gsplit-dwarf still by default enables -ggnu-pubnames). This allows users to disable pubnames (& the new DWARF5 accelerated access tables) when they might not be worth the size overhead. * GCC's behavior is that -ggnu-pubnames and -gpubnames override each other, and that -gno-gnu-pubnames and -gno-pubnames act as synonyms and disable either kind of pubnames if they come last. (eg: -gpubnames -gno-gnu-pubnames causes no pubnames (neither gnu or standard) to be emitted) llvm-svn: 340206
18 lines
640 B
C
18 lines
640 B
C
// RUN: %clang_cc1 -emit-llvm -debug-info-kind=standalone \
|
|
// RUN: -triple %itanium_abi_triple %s -o - | FileCheck %s
|
|
|
|
// Debug info for a global constant whose address is taken should be emitted
|
|
// exactly once.
|
|
|
|
// CHECK: @i = internal constant i32 1, align 4, !dbg ![[I:[0-9]+]]
|
|
// CHECK: ![[I]] = !DIGlobalVariableExpression(var: ![[VAR:.*]], expr: !DIExpression(DW_OP_constu, 1, DW_OP_stack_value))
|
|
// CHECK: ![[VAR]] = distinct !DIGlobalVariable(name: "i",
|
|
// CHECK: !DICompileUnit({{.*}}globals: ![[GLOBALS:[0-9]+]]
|
|
// CHECK: ![[GLOBALS]] = !{![[I]]}
|
|
static const int i = 1;
|
|
|
|
void g(const int *, int);
|
|
void f() {
|
|
g(&i, i);
|
|
}
|