diff options
author | Francois Pichet <pichet2000@gmail.com> | 2010-12-04 09:14:42 +0000 |
---|---|---|
committer | Francois Pichet <pichet2000@gmail.com> | 2010-12-04 09:14:42 +0000 |
commit | 00eb3f9c5b33e3d99aee1f8b75dd9c9678fdd66b (patch) | |
tree | 7f3cca41dfa3b7d18548218fb444172b38b70ec2 /lib/Sema/SemaCodeComplete.cpp | |
parent | 74e40b70306b39d65fed16d474017df036ff3960 (diff) |
More anonymous struct/union redesign. This one deals with anonymous field used in a constructor initializer list:
struct X {
X() : au_i1(123) {}
union {
int au_i1;
float au_f1;
};
};
clang will now deal with au_i1 explicitly as an IndirectFieldDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120900 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaCodeComplete.cpp')
-rw-r--r-- | lib/Sema/SemaCodeComplete.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index 3d458e76f1..6d40fb8d29 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -3608,7 +3608,8 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, InitializedBases.insert( Context.getCanonicalType(QualType(Initializers[I]->getBaseClass(), 0))); else - InitializedFields.insert(cast<FieldDecl>(Initializers[I]->getMember())); + InitializedFields.insert(cast<FieldDecl>( + Initializers[I]->getAnyMember())); } // Add completions for base classes. @@ -3670,8 +3671,8 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, if (!InitializedFields.insert(cast<FieldDecl>(Field->getCanonicalDecl()))) { SawLastInitializer = NumInitializers > 0 && - Initializers[NumInitializers - 1]->isMemberInitializer() && - Initializers[NumInitializers - 1]->getMember() == *Field; + Initializers[NumInitializers - 1]->isAnyMemberInitializer() && + Initializers[NumInitializers - 1]->getAnyMember() == *Field; continue; } |