summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/debug-info-nodebug.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2019-06-08 00:01:21 +0000
committerDavid Blaikie <dblaikie@gmail.com>2019-06-08 00:01:21 +0000
commit8472fa6c54c9d044adcd147f6826bccebd730f30 (patch)
tree8c4cfc3fce80800e61baa5c55fd5c473594be77b /clang/test/CodeGenCXX/debug-info-nodebug.cpp
parent6f48c076207f49dde437d85dbd5e1bcdd580f973 (diff)
downloadbcm5719-llvm-8472fa6c54c9d044adcd147f6826bccebd730f30.tar.gz
bcm5719-llvm-8472fa6c54c9d044adcd147f6826bccebd730f30.zip
DebugInfo: Add support for 'nodebug' attribute on typedefs and alias templates
Seems like a logical extension to me - and of interest because it might help reduce the debug info size of libc++ by applying this attribute to type traits that have a disproportionate debug info cost compared to the benefit (& possibly harm/confusion) they cause users. llvm-svn: 362856
Diffstat (limited to 'clang/test/CodeGenCXX/debug-info-nodebug.cpp')
-rw-r--r--clang/test/CodeGenCXX/debug-info-nodebug.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/clang/test/CodeGenCXX/debug-info-nodebug.cpp b/clang/test/CodeGenCXX/debug-info-nodebug.cpp
index 9f140efaed6..1962b8cf574 100644
--- a/clang/test/CodeGenCXX/debug-info-nodebug.cpp
+++ b/clang/test/CodeGenCXX/debug-info-nodebug.cpp
@@ -1,5 +1,5 @@
-// RUN: %clang_cc1 -DSETNODEBUG=0 -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s --check-prefix=YESINFO
-// RUN: %clang_cc1 -DSETNODEBUG=1 -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s --check-prefix=NOINFO
+// RUN: %clang_cc1 -DSETNODEBUG=0 -emit-llvm -std=c++14 -debug-info-kind=limited %s -o - | FileCheck %s --check-prefix=YESINFO
+// RUN: %clang_cc1 -DSETNODEBUG=1 -emit-llvm -std=c++14 -debug-info-kind=limited %s -o - | FileCheck %s --check-prefix=NOINFO
#if SETNODEBUG
#define NODEBUG __attribute__((nodebug))
@@ -53,3 +53,15 @@ void func4() {
// NOINFO-NOT: !DIGlobalVariable(name: "static_local"
// YESINFO-DAG: !DILocalVariable(name: "normal_local"
// NOINFO-NOT: !DILocalVariable(name: "normal_local"
+
+template <typename T>
+using y NODEBUG = int;
+void func5() {
+ NODEBUG typedef int x;
+ x a;
+ y<int> b;
+}
+// YESINFO-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "x"
+// NOINFO-NOT: !DIDerivedType(tag: DW_TAG_typedef, name: "x"
+// YESINFO-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "y<int>"
+// NOINFO-NOT: !DIDerivedType(tag: DW_TAG_typedef, name: "y<int>"
OpenPOWER on IntegriCloud