diff options
author | Richard Trieu <rtrieu@google.com> | 2011-09-07 00:58:53 +0000 |
---|---|---|
committer | Richard Trieu <rtrieu@google.com> | 2011-09-07 00:58:53 +0000 |
commit | 47eb89871e020babbaddeed4ee4447bc34824b9f (patch) | |
tree | 29971936f5f8c90f564d1ae925dc3458edb4fa4e /lib/Sema/SemaDecl.cpp | |
parent | 9a776695e9f3831e59519fd45d130bff20456d7a (diff) |
Change the self-reference visitor (which gives the warning for self-reference oninitalization warning of -Wuninitialized) to exclude member variables that can decay into pointers. This will cause it to no longer warn on this code:
struct foo { char a[100], *e; } bar = { .e = bar.a };
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139213 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaDecl.cpp')
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index f8b0af49db..9938954fe1 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -5443,6 +5443,7 @@ namespace { } void VisitMemberExpr(MemberExpr *E) { + if (E->getType()->canDecayToPointerType()) return; if (isa<FieldDecl>(E->getMemberDecl())) if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(E->getBase()->IgnoreParenImpCasts())) { |