summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/cxx-for-range-cfg.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2012-07-18 04:57:57 +0000
committerTed Kremenek <kremenek@apple.com>2012-07-18 04:57:57 +0000
commit3d6177306b76ad3f30d367a07f0d206be42dd1f4 (patch)
tree7b95c6f7d38740d29c815a3aac028785e0a0697f /clang/test/Analysis/cxx-for-range-cfg.cpp
parent8532423268fca78a8fcc6425a66562985ec3c4ea (diff)
downloadbcm5719-llvm-3d6177306b76ad3f30d367a07f0d206be42dd1f4.tar.gz
bcm5719-llvm-3d6177306b76ad3f30d367a07f0d206be42dd1f4.zip
Teach CFG construction about destructors resulting from references to array types. Fixes crash in <rdar://problem/11671507>.
llvm-svn: 160424
Diffstat (limited to 'clang/test/Analysis/cxx-for-range-cfg.cpp')
-rw-r--r--clang/test/Analysis/cxx-for-range-cfg.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/Analysis/cxx-for-range-cfg.cpp b/clang/test/Analysis/cxx-for-range-cfg.cpp
new file mode 100644
index 00000000000..e258c7a1e20
--- /dev/null
+++ b/clang/test/Analysis/cxx-for-range-cfg.cpp
@@ -0,0 +1,16 @@
+// RUN: %clang_cc1 -Wall -fsyntax-only %s -std=c++11 -verify
+
+// The rdar11671507_vector<int *>[]> would previously crash CFG construction
+// because of the temporary array of vectors.
+template <typename T>
+class rdar11671507_vector {
+public:
+ rdar11671507_vector();
+ ~rdar11671507_vector();
+ T *Base;
+ T *End;
+};
+
+void rdar11671507(rdar11671507_vector<int*> v, rdar11671507_vector<int*> w) {
+ for (auto &vec : (rdar11671507_vector<int *>[]){ v, w }) {} // expected-warning {{unused}}
+}
OpenPOWER on IntegriCloud