jyknight added inline comments.
================ Comment at: clang/lib/Sema/SemaType.cpp:2617 + } else if (getLangOpts().CPlusPlus) { + if (getLangOpts().CPlusPlus11 && IsStaticAssertLike(ArraySize, Context)) + VLADiag = getLangOpts().GNUMode ---------------- aaron.ballman wrote: > jyknight wrote: > > Not sure whether to actually care, since C++98 is so old now, but, having > > `-Wno-vla-extension-static-assert` work in C++98 mode seems like it'd be > > quite useful, exactly because the usage cannot trivially be replaced by a > > static_assert. So it's a bit unfortunate that we don't distinguish it there. > > > > Perhaps we should emit the same diagnostics in both 98/11, but with > > slightly different text in 98? > That's effectively what we're doing here, right? > > C++98 is told "variable length arrays (in C++) are a Clang extension" and in > C++11 they're told "variable length arrays (in C++) are a Clang extension; > did you mean to use 'static_assert'?" > > Or am I misunderstanding you? In this patch, in C++98 mode, we diagnose everything under the flag -Wvla-extension, and never under the flag -Wvla-extension-static-assert. My point was that we ought to diagnose static-assert-like-VLAs under the -Wvla-extension-static-assert flag even in C++98 mode. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156565/new/ https://reviews.llvm.org/D156565 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits