Fix invalid VLAs/VMs in Sema::ActOnVariableDeclarator, so that the variable will have the right type by the time the initializer is checked. This ensures that code like
int a[(int)(1.0 / 1.0) = { 1 } will work.
Eli, please review.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65725 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Sema/const-eval.c b/test/Sema/const-eval.c
index fd7b40e..7714f48 100644
--- a/test/Sema/const-eval.c
+++ b/test/Sema/const-eval.c
@@ -47,3 +47,6 @@
EVAL_EXPR(22, (__real__ (2i+3)) == 3 ? 1 : -1);
+int g23[(int)(1.0 / 1.0)] = { 1 };
+int g24[(int)(1.0 / 1.0)] = { 1 , 2 }; // expected-warning {{excess elements in array initializer}}
+int g25[(int)(1.0 + 1.0)], g26 = sizeof(g25);