diff options
author | Steve Naroff <snaroff@apple.com> | 2008-02-11 00:06:17 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2008-02-11 00:06:17 +0000 |
commit | b43eaa5fa678d108ee804455f805a8e6cf30ca34 (patch) | |
tree | b57d2e5f5151311992563c261430e800aba17fb4 /Sema/SemaDecl.cpp | |
parent | a7ad98ff0919d6a24ea7c46634ea29bea551c1a0 (diff) |
Fix http://llvm.org/bugs/show_bug.cgi?id=1988.
Sema::CheckInitializerListTypes() needs to ignore invalid structures.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46942 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Sema/SemaDecl.cpp')
-rw-r--r-- | Sema/SemaDecl.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp index b81f3fe53e..c6f1203e68 100644 --- a/Sema/SemaDecl.cpp +++ b/Sema/SemaDecl.cpp @@ -526,6 +526,11 @@ bool Sema::CheckInitializerListTypes(InitListExpr*& IList, QualType &DeclType, ++startIndex; } else { RecordDecl* structDecl = DeclType->getAsRecordType()->getDecl(); + + // If the record is invalid, it's members can't be trusted. + if (structDecl->isInvalidDecl()) + return true; + // If structDecl is a forward declaration, this loop won't do anything; // That's okay, because an error should get printed out elsewhere. It // might be worthwhile to skip over the rest of the initializer, though. |