[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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@281373 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Analysis/array-struct.c b/test/Analysis/array-struct.c
index 28e09ad..18f226a 100644
--- a/test/Analysis/array-struct.c
+++ b/test/Analysis/array-struct.c
@@ -135,6 +135,17 @@
 
 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];