]> granicus.if.org Git - clang/commitdiff
Whoops, actually remove the VLA/VM check in FinalizeDeclaratorGroup.
authorAnders Carlsson <andersca@mac.com>
Sat, 28 Feb 2009 23:31:06 +0000 (23:31 +0000)
committerAnders Carlsson <andersca@mac.com>
Sat, 28 Feb 2009 23:31:06 +0000 (23:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65737 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDecl.cpp

index 76794e571d4ae1c21abe2c888bdca6c889143d38..8764cd9d77c1c7fda3c280eaf578b774e599ea69 100644 (file)
@@ -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() &&