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.
llvm-svn: 120900
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user