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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits