diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index a0f4e4ac385f..28b25565b14b 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -1234,15 +1234,15 @@ InitListChecker::CheckDesignatedInitializer(InitListExpr *IList, ExpandAnonymousFieldDesignator(SemaRef, DIE, DesigIdx, cast(*Lookup.first), Field, FieldIndex); + D = DIE->getDesignator(DesigIdx); } else { // Name lookup found something, but it wasn't a field. SemaRef.Diag(D->getFieldLoc(), diag::err_field_designator_nonfield) << FieldName; SemaRef.Diag((*Lookup.first)->getLocation(), diag::note_field_designator_found); - - ++Index; - return true; + ++Index; + return true; } } else if (!KnownField && cast((*Field)->getDeclContext())