summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/explain-svals.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-12-05 07:49:14 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-12-05 07:49:14 +0000
commitb3189a1802e493fd819b766c2051bda04f18617c (patch)
treef2f4135e179e717581ffdc0ad34d708376db62bd /clang/test/Analysis/explain-svals.cpp
parent215ff84b4082bea94dbf065d5fbac3cdd7f69516 (diff)
downloadbcm5719-llvm-b3189a1802e493fd819b766c2051bda04f18617c.tar.gz
bcm5719-llvm-b3189a1802e493fd819b766c2051bda04f18617c.zip
DR1213: element access on an array xvalue or prvalue produces an xvalue. In the
latter case, a temporary array object is materialized, and can be lifetime-extended by binding a reference to the member access. Likewise, in an array-to-pointer decay, an rvalue array is materialized before being converted into a pointer. This caused IR generation to stop treating file-scope array compound literals as having static storage duration in some cases in C++; that has been rectified by modeling such a compound literal as an lvalue. This also improves clang's compatibility with GCC for those cases. llvm-svn: 288654
Diffstat (limited to 'clang/test/Analysis/explain-svals.cpp')
-rw-r--r--clang/test/Analysis/explain-svals.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/test/Analysis/explain-svals.cpp b/clang/test/Analysis/explain-svals.cpp
index ef2ebc244a6..be2f8303705 100644
--- a/clang/test/Analysis/explain-svals.cpp
+++ b/clang/test/Analysis/explain-svals.cpp
@@ -76,7 +76,7 @@ void test_4(int x, int y) {
clang_analyzer_explain(&stat); // expected-warning-re{{{{^pointer to static local variable 'stat'$}}}}
clang_analyzer_explain(stat_glob); // expected-warning-re{{{{^initial value of global variable 'stat_glob'$}}}}
clang_analyzer_explain(&stat_glob); // expected-warning-re{{{{^pointer to global variable 'stat_glob'$}}}}
- clang_analyzer_explain((int[]){1, 2, 3}); // expected-warning-re{{{{^pointer to element of type 'int' with index 0 of compound literal \(int \[3\]\)\{1, 2, 3\}$}}}}
+ clang_analyzer_explain((int[]){1, 2, 3}); // expected-warning-re{{{{^pointer to element of type 'int' with index 0 of temporary object constructed at statement '\(int \[3\]\)\{1, 2, 3\}'$}}}}
}
namespace {
OpenPOWER on IntegriCloud