rsmith accepted this revision.
rsmith added a comment.
This revision is now accepted and ready to land.

Thanks, that's very clean.



================
Comment at: clang/lib/Sema/SemaDecl.cpp:6027
+/// Attempt to fold a variable-sized type to a constant-sized type, returning
+/// true if it we were successful.
+static bool tryToFixVariablyModifiedVarType(Sema &S, TypeSourceInfo *&TInfo,
----------------
Typo "it we"


================
Comment at: clang/lib/Sema/SemaDecl.cpp:6899-6901
+    if (D.hasInitializer() && R->isVariablyModifiedType())
+      tryToFixVariablyModifiedVarType(*this, TInfo, R, D.getIdentifierLoc(),
+                                      /*DiagID=*/0);
----------------
Is there a reason to make this C-specific? We support VLAs in C++ as an 
extension; it'd seem reasonable to do this folding as an extension too, if it's 
as simple as moving the new code out of the `if (!C++)`.


================
Comment at: clang/test/Sema/vla.c:104
+
+void test_fold_to_constant_array() {
+  const int ksize = 4;
----------------
Can you also add a positive test? Eg, a `goto` over one of the 
folded-to-constant cases, to show that we can jump over those. (As-is, this 
test ensures that we produce the warning, but not that we actually treat the 
array variable as not being a VLA.)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D90871/new/

https://reviews.llvm.org/D90871

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to