This is an update patch for bug .
-Wmissing-braces should not fire for system headers.
Is it intentional that you run the new code only when !VerifyOnly?
This piece of code seems a bit puzzling as you initialize a variable to some value and immediately re-assign to some other value. It's better to initialize it only once.
SourceLocation SpellingLoc = SemaRef.getSourceManager().getSpellingLoc( StructuredSubobjectInitList->getLocStart());
I think VerifyOnly is used to check if it is formal verification mode or not, and if VerifyOnly == 1, it is supposed to emit no diagnostics. So I think it is OK that this code is here, because this part of is code emits -Wmissing-braces if braces are not appropriate.
Everything beside this last test case seems to be handled. And from what I remember there was a longer discussion how to properly handle this case and so this review got stuck.
Can we add this last test case with a FIXME and then get this merged?