From: Anders Carlsson Date: Sat, 28 Feb 2009 23:31:06 +0000 (+0000) Subject: Whoops, actually remove the VLA/VM check in FinalizeDeclaratorGroup. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0db28c59266808b9bf4fb72c2db80ce9f2948b74;p=clang Whoops, actually remove the VLA/VM check in FinalizeDeclaratorGroup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65737 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 76794e571d..8764cd9d77 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -2256,42 +2256,6 @@ Sema::DeclTy *Sema::FinalizeDeclaratorGroup(Scope *S, DeclTy *group) { continue; QualType T = IDecl->getType(); - bool isIllegalVLA = T->isVariableArrayType() && IDecl->hasGlobalStorage(); - bool isIllegalVM = T->isVariablyModifiedType() && IDecl->hasLinkage(); - if (isIllegalVLA || isIllegalVM) { - bool SizeIsNegative; - QualType FixedTy = - TryToFixInvalidVariablyModifiedType(T, Context, SizeIsNegative); - if (!FixedTy.isNull()) { - Diag(IDecl->getLocation(), diag::warn_illegal_constant_array_size); - IDecl->setType(FixedTy); - } else if (T->isVariableArrayType()) { - IDecl->setInvalidDecl(); - - const VariableArrayType *VAT = Context.getAsVariableArrayType(T); - // FIXME: This won't give the correct result for - // int a[10][n]; - SourceRange SizeRange = VAT->getSizeExpr()->getSourceRange(); - - if (IDecl->isFileVarDecl()) - Diag(IDecl->getLocation(), diag::err_vla_decl_in_file_scope) - << SizeRange; - else if (IDecl->getStorageClass() == VarDecl::Static) - Diag(IDecl->getLocation(), diag::err_vla_decl_has_static_storage) - << SizeRange; - else - Diag(IDecl->getLocation(), diag::err_vla_decl_has_extern_linkage) - << SizeRange; - } else { - IDecl->setInvalidDecl(); - - if (IDecl->isFileVarDecl()) - Diag(IDecl->getLocation(), diag::err_vm_decl_in_file_scope); - else - Diag(IDecl->getLocation(), diag::err_vm_decl_has_extern_linkage); - } - } - // Block scope. C99 6.7p7: If an identifier for an object is declared with // no linkage (C99 6.2.2p6), the type for the object shall be complete... if (IDecl->isBlockVarDecl() &&