xref: /llvm-project/clang/test/CodeGenCXX/debug-info-codeview-nodebug.cpp (revision 504dd577675e8c85cdc8525990a7c8b517a38a89)
1*504dd577SDavid Blaikie // RUN: %clang_cc1 -DSETNODEBUG=0 -gcodeview -emit-llvm -std=c++14 -debug-info-kind=limited %s -o - | FileCheck %s --check-prefix=YESINFO
2*504dd577SDavid Blaikie // RUN: %clang_cc1 -DSETNODEBUG=1 -gcodeview -emit-llvm -std=c++14 -debug-info-kind=limited %s -o - | FileCheck %s --check-prefix=NOINFO
3*504dd577SDavid Blaikie 
4*504dd577SDavid Blaikie #if SETNODEBUG
5*504dd577SDavid Blaikie #define NODEBUG __attribute__((nodebug))
6*504dd577SDavid Blaikie #else
7*504dd577SDavid Blaikie #define NODEBUG
8*504dd577SDavid Blaikie #endif
9*504dd577SDavid Blaikie 
10*504dd577SDavid Blaikie struct t1 {
11*504dd577SDavid Blaikie   using t2 NODEBUG = void;
12*504dd577SDavid Blaikie };
13*504dd577SDavid Blaikie void func6() {
14*504dd577SDavid Blaikie   t1 v1;
15*504dd577SDavid Blaikie }
16*504dd577SDavid Blaikie // YESINFO-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "t2"
17*504dd577SDavid Blaikie // NOINFO: [[ELEMENTS:!.*]] = !{}
18*504dd577SDavid Blaikie // NOINFO: !DICompositeType(tag: DW_TAG_structure_type, name: "t1", {{.*}}, elements: [[ELEMENTS]],
19*504dd577SDavid Blaikie // NOINFO-NOT:  !DIDerivedType(tag: DW_TAG_typedef, name: "t2"
20*504dd577SDavid Blaikie 
21