diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2013-01-23 20:02:51 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2013-01-23 20:02:51 +0000 |
commit | 630f4bb9f12e330438281c4e46deb6656620b73a (patch) | |
tree | 7b8d177bb3b390fbe32ec6e483700a073786682d /lib | |
parent | 479633ced74c887ee9ec5905b3cb0bb1a37349b0 (diff) |
Implement -Wvla correctly
GCC implements -Wvla as "warn on every VLA" (this is useful to find every VLA,
for example, if they are forbidden by coding guidelines). Currently Clang
implements -Wvla as "warn on VLA when it is an extension".
The attached patch makes our behavior match GCC. The existing vla extwarn is
moved under -Wvla-extension and is still included into -Wgnu.
This fixes PR5953.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173286 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Sema/SemaType.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Sema/SemaType.cpp b/lib/Sema/SemaType.cpp index dbee50a4c9..f6cad26989 100644 --- a/lib/Sema/SemaType.cpp +++ b/lib/Sema/SemaType.cpp @@ -1496,6 +1496,11 @@ QualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM, : diag::ext_c99_array_usage) << ASM; } + if (T->isVariableArrayType()) { + // Warn about VLAs for -Wvla. + Diag(Loc, diag::warn_vla_used); + } + return T; } |