summaryrefslogtreecommitdiffstats
path: root/clang/test/PCH/check-deserializations.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-08-19 20:49:38 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-08-19 20:49:38 +0000
commit7747ce226051791be0a03ec106d9502e3564c1af (patch)
treeaee95454826c294c66952e75676eecd939ea4226 /clang/test/PCH/check-deserializations.cpp
parent39259ffc65556b2e848ff691f6611f896c0ed6aa (diff)
downloadbcm5719-llvm-7747ce226051791be0a03ec106d9502e3564c1af.tar.gz
bcm5719-llvm-7747ce226051791be0a03ec106d9502e3564c1af.zip
Internal-linkage variables with constant-evaluatable initializers do not need to be emitted. (Also reduces the set of variables that need to be eagerly deserialized when using PCH / modules.)
llvm-svn: 245497
Diffstat (limited to 'clang/test/PCH/check-deserializations.cpp')
-rw-r--r--clang/test/PCH/check-deserializations.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/clang/test/PCH/check-deserializations.cpp b/clang/test/PCH/check-deserializations.cpp
index e24d2054938..50c84c89d1c 100644
--- a/clang/test/PCH/check-deserializations.cpp
+++ b/clang/test/PCH/check-deserializations.cpp
@@ -1,6 +1,6 @@
-// RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-pch -o %t.1 %s
-// RUN: %clang_cc1 -triple x86_64-linux-gnu -error-on-deserialized-decl S1_keyfunc -error-on-deserialized-decl S3 -include-pch %t.1 -emit-pch -o %t.2 %s
-// RUN: %clang_cc1 -triple x86_64-linux-gnu -error-on-deserialized-decl S1_method -error-on-deserialized-decl S3 -include-pch %t.2 -emit-llvm-only %s
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -emit-pch -o %t.1 %s
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -error-on-deserialized-decl S1_keyfunc -error-on-deserialized-decl S3 -error-on-deserialized-decl DND -std=c++11 -include-pch %t.1 -emit-pch -o %t.2 %s
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -error-on-deserialized-decl S1_method -error-on-deserialized-decl S3 -error-on-deserialized-decl DND -std=c++11 -include-pch %t.2 -emit-llvm-only %s
// FIXME: Why does this require an x86 target?
// REQUIRES: x86-registered-target
@@ -20,6 +20,15 @@ struct S2 {
operator S3();
};
+namespace vars {
+ constexpr int f() { return 0; }
+ struct X { constexpr X() {} };
+ namespace v1 { const int DND = 0; }
+ namespace v2 { constexpr int DND = f(); }
+ namespace v3 { static X DND; }
+ namespace v4 { constexpr X DND = {}; }
+}
+
#elif !defined(HEADER2)
#define HEADER2
OpenPOWER on IntegriCloud