зеркало из https://github.com/microsoft/clang-1.git
After yesterday's discussion (http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-February/001044.html), decided not to change the semantics of Type::isIncompleteType().
This commit simply changes a couple comments to reflect this decision. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46970 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
e7d2211429
Коммит
406db93561
|
@ -527,11 +527,8 @@ bool Sema::CheckInitializerListTypes(InitListExpr*& IList, QualType &DeclType,
|
|||
} else {
|
||||
RecordDecl* structDecl = DeclType->getAsRecordType()->getDecl();
|
||||
|
||||
// If the record is invalid, it's members can't be trusted.
|
||||
// FIXME: I'd like to "fix" this at a higher level. That is, we should
|
||||
// never get here if the struct decl is invalid. Considering a
|
||||
// change to Type::isIncompleteType(). Until this happens, the
|
||||
// following check is certainly better than crashing.
|
||||
// If the record is invalid, some of it's members are invalid. To avoid
|
||||
// confusion, we forgo checking the intializer for the entire record.
|
||||
if (structDecl->isInvalidDecl())
|
||||
return true;
|
||||
|
||||
|
|
|
@ -705,6 +705,7 @@ protected:
|
|||
/// RecordDecl - Represents a struct/union/class. For example:
|
||||
/// struct X; // Forward declaration, no "body".
|
||||
/// union Y { int A, B; }; // Has body with members A and B (FieldDecls).
|
||||
/// This decl will be marked invalid if *any* members are invalid.
|
||||
///
|
||||
class RecordDecl : public TagDecl {
|
||||
/// HasFlexibleArrayMember - This is true if this struct ends with a flexible
|
||||
|
|
Загрузка…
Ссылка в новой задаче