llvm-project/clang/test/CodeGen/unused_nested_enump.cpp
ykhatav 3cf280c16a
Emit nested unused enum types with -fno-eliminate-unused-debug-types (#137818)
Unused types are retained in the debug info when
-fno-eliminate-unused-debug-types is specified.
However, unused nested enums were not being emitted even with this
option.
This patch fixes the missing emission of unused nested enums with
-fno-eliminate-unused-debug-types
2025-05-13 11:29:53 -04:00

24 lines
704 B
C++

// RUN: %clang_cc1 -debug-info-kind=unused-types -emit-llvm -o - %s | FileCheck %s
// RUN: %clang_cc1 -debug-info-kind=limited -emit-llvm -o - %s | FileCheck --check-prefix=NOUNUSEDTYPE %s
struct Type {
enum { Unused };
int value = 0;
};
int main() {
Type t;
return t.value;
}
// CHECK: !DICompositeType(tag: DW_TAG_enumeration_type
// CHECK-SAME: scope: ![[STRUCT:[0-9]+]]
// CHECK-SAME: elements: ![[ELEMENTS:[0-9]+]]
// CHECK: ![[STRUCT]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Type"
// CHECK: ![[ELEMENTS]] = !{![[ENUMERATOR:[0-9]+]]}
// CHECK: ![[ENUMERATOR]] = !DIEnumerator(name: "Unused", value: 0
// NOUNUSEDTYPE-NOT: !DIEnumerator(name: "Unused"