summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/ctu-main.cpp
diff options
context:
space:
mode:
authorBalazs Keri <1.int32@gmail.com>2019-08-06 12:10:16 +0000
committerBalazs Keri <1.int32@gmail.com>2019-08-06 12:10:16 +0000
commit4e79097dc7c30ea8e1a7e96b740113e7cd9e635d (patch)
tree176651a03cb1f9ccc2fb1df0bed6a69769eec257 /clang/test/Analysis/ctu-main.cpp
parent56bdb0c5082547229ff668405bde2ef5254ee817 (diff)
downloadbcm5719-llvm-4e79097dc7c30ea8e1a7e96b740113e7cd9e635d.tar.gz
bcm5719-llvm-4e79097dc7c30ea8e1a7e96b740113e7cd9e635d.zip
[CrossTU] Handle case when no USR could be generated during Decl search.
Summary: When searching for a declaration to be loaded the "lookup name" for every other Decl is computed. If the USR can not be determined here should be not an assert, instead skip this Decl. Reviewers: martong Reviewed By: martong Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65445 llvm-svn: 368020
Diffstat (limited to 'clang/test/Analysis/ctu-main.cpp')
-rw-r--r--clang/test/Analysis/ctu-main.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/Analysis/ctu-main.cpp b/clang/test/Analysis/ctu-main.cpp
index 1cb0d4a9d77..aae4808e90f 100644
--- a/clang/test/Analysis/ctu-main.cpp
+++ b/clang/test/Analysis/ctu-main.cpp
@@ -112,6 +112,19 @@ void test_virtual_functions(mycls* obj) {
clang_analyzer_eval(obj->fvcl(1) == 8); // expected-warning{{FALSE}} expected-warning{{TRUE}}
}
+class TestAnonUnionUSR {
+public:
+ inline float f(int value) {
+ union {
+ float f;
+ int i;
+ };
+ i = value;
+ return f;
+ }
+ static const int Test;
+};
+
int main() {
clang_analyzer_eval(f(3) == 2); // expected-warning{{TRUE}}
clang_analyzer_eval(f(4) == 3); // expected-warning{{TRUE}}
@@ -144,4 +157,5 @@ int main() {
clang_analyzer_eval(extSubSCN.a == 1); // expected-warning{{TRUE}}
// clang_analyzer_eval(extSCC.a == 7); // TODO
clang_analyzer_eval(extU.a == 4); // expected-warning{{TRUE}}
+ clang_analyzer_eval(TestAnonUnionUSR::Test == 5); // expected-warning{{TRUE}}
}
OpenPOWER on IntegriCloud