diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp
index 5dc40a4..6090b79 100644
--- a/lib/Sema/SemaInit.cpp
+++ b/lib/Sema/SemaInit.cpp
@@ -97,21 +97,22 @@
     return;
   }
   
-  const ConstantArrayType *CAT = cast<ConstantArrayType>(AT);
-  
-  // C99 6.7.8p14. We have an array of character type with known size.  However,
-  // the size may be smaller or larger than the string we are initializing.
-  // FIXME: Avoid truncation for 64-bit length strings.
-  if (StrLength-1 > CAT->getSize().getZExtValue())
-    S.Diag(Str->getSourceRange().getBegin(),
-           diag::warn_initializer_string_for_char_array_too_long)
-      << Str->getSourceRange();
-  
-  // Set the type to the actual size that we are initializing.  If we have
-  // something like:
-  //   char x[1] = "foo";
-  // then this will set the string literal's type to char[1].
-  Str->setType(DeclT);
+  if (const ConstantArrayType *CAT = dyn_cast<ConstantArrayType>(AT)) {
+    // C99 6.7.8p14. We have an array of character type with known size.
+    // However, the size may be smaller or larger than the string we are
+    // initializing.
+    // FIXME: Avoid truncation for 64-bit length strings.
+    if (StrLength-1 > CAT->getSize().getZExtValue())
+      S.Diag(Str->getSourceRange().getBegin(),
+             diag::warn_initializer_string_for_char_array_too_long)
+        << Str->getSourceRange();
+
+    // Set the type to the actual size that we are initializing.  If we have
+    // something like:
+    //   char x[1] = "foo";
+    // then this will set the string literal's type to char[1].
+    Str->setType(DeclT);
+  }
 }
 
 bool Sema::CheckInitializerTypes(Expr *&Init, QualType &DeclType,
diff --git a/test/Sema/vla.c b/test/Sema/vla.c
index 6745472..3e380c6 100644
--- a/test/Sema/vla.c
+++ b/test/Sema/vla.c
@@ -51,3 +51,6 @@
 int pr2044(int b) {int (*c(void))[b];**c() = 2;} // expected-error {{variably modified type}}
 int pr2044b;
 int (*pr2044c(void))[pr2044b]; // expected-error {{variably modified type}}
+
+const int f5_ci = 1;
+void f5() { char a[][f5_ci] = {""}; }
