diff options
author | Alexander Shaposhnikov <shal1t712@gmail.com> | 2016-09-13 19:17:20 +0000 |
---|---|---|
committer | Alexander Shaposhnikov <shal1t712@gmail.com> | 2016-09-13 19:17:20 +0000 |
commit | 6956d290341b3ceb7fb7599c9c772c08b0c2450a (patch) | |
tree | b1920f96ce84f147cf1af44171a7575e944e57f5 /clang/test/Analysis/array-struct.c | |
parent | a992f71bef1efc590be688a056b1c75432c019af (diff) | |
download | bcm5719-llvm-6956d290341b3ceb7fb7599c9c772c08b0c2450a.tar.gz bcm5719-llvm-6956d290341b3ceb7fb7599c9c772c08b0c2450a.zip |
[analyzer] Fix ExprEngine::VisitMemberExpr
AST may contain intermediate ParenExpr nodes
between MemberExpr and ArrayToPointerDecay.
This diff adjusts the check in ExprEngine::VisitMemberExpr accordingly.
Test plan: make -j8 check-clang-analysis
Differential revision: https://reviews.llvm.org/D24484
llvm-svn: 281373
Diffstat (limited to 'clang/test/Analysis/array-struct.c')
-rw-r--r-- | clang/test/Analysis/array-struct.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/Analysis/array-struct.c b/clang/test/Analysis/array-struct.c index 28e09ad2e88..18f226a8ae6 100644 --- a/clang/test/Analysis/array-struct.c +++ b/clang/test/Analysis/array-struct.c @@ -135,6 +135,17 @@ void f14() { void bar(int*); +struct s3 gets3() { + struct s3 s; + return s; +} + +void accessArrayFieldNoCrash() { + bar(gets3().a); + bar((gets3().a)); + bar(((gets3().a))); +} + // Test if the array is correctly invalidated. void f15() { int a[10]; |