#
dd2bf3b8 |
| 07-Jul-2024 |
Timm Bäder <tbaeder@redhat.com> |
[clang][Interp] Redo variable (re)visiting
Depending on the circumstances we visit variables in, we need to be careful about when to destroy their temporaries and whether to emit a Ret op at all or
[clang][Interp] Redo variable (re)visiting
Depending on the circumstances we visit variables in, we need to be careful about when to destroy their temporaries and whether to emit a Ret op at all or not.
show more ...
|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1 |
|
#
2b4d67bf |
| 01-Mar-2024 |
Vinayak Dev <104419489+vinayakdsci@users.noreply.github.com> |
[Clang][Sema]: Allow copy constructor side effects (#81127)
Copy constructors can have initialization with side effects, and thus
clang should not emit a warning when -Wunused-variable is used in t
[Clang][Sema]: Allow copy constructor side effects (#81127)
Copy constructors can have initialization with side effects, and thus
clang should not emit a warning when -Wunused-variable is used in this
context. Currently however, a warning is emitted.
Now, compilation happens without warnings.
Fixes #79518
show more ...
|
Revision tags: llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4 |
|
#
84a3aadf |
| 20-Oct-2023 |
Aaron Ballman <aaron@aaronballman.com> |
Diagnose use of VLAs in C++ by default
Reapplication of 7339c0f782d5c70e0928f8991b0c05338a90c84c with a fix for a crash involving arrays without a size expression.
Clang supports VLAs in C++ as an
Diagnose use of VLAs in C++ by default
Reapplication of 7339c0f782d5c70e0928f8991b0c05338a90c84c with a fix for a crash involving arrays without a size expression.
Clang supports VLAs in C++ as an extension, but we currently only warn on their use when you pass -Wvla, -Wvla-extension, or -pedantic. However, VLAs as they're expressed in C have been considered by WG21 and rejected, are easy to use accidentally to the surprise of users (e.g., https://ddanilov.me/default-non-standard-features/), and they have potential security implications beyond constant-size arrays (https://wiki.sei.cmu.edu/confluence/display/c/ARR32-C.+Ensure+size+arguments+for+variable+length+arrays+are+in+a+valid+range). C++ users should strongly consider using other functionality such as std::vector instead.
This seems like sufficiently compelling evidence to warn users about VLA use by default in C++ modes. This patch enables the -Wvla-extension diagnostic group in C++ language modes by default, and adds the warning group to -Wall in GNU++ language modes. The warning is still opt-in in C language modes, where support for VLAs is somewhat less surprising to users.
RFC: https://discourse.llvm.org/t/rfc-diagnosing-use-of-vlas-in-c/73109 Fixes https://github.com/llvm/llvm-project/issues/62836 Differential Revision: https://reviews.llvm.org/D156565
show more ...
|
#
f5043f46 |
| 20-Oct-2023 |
Aaron Ballman <aaron@aaronballman.com> |
Revert "Diagnose use of VLAs in C++ by default"
This reverts commit 7339c0f782d5c70e0928f8991b0c05338a90c84c.
Breaks bots: https://lab.llvm.org/buildbot/#/builders/139/builds/51875 https://lab.llvm
Revert "Diagnose use of VLAs in C++ by default"
This reverts commit 7339c0f782d5c70e0928f8991b0c05338a90c84c.
Breaks bots: https://lab.llvm.org/buildbot/#/builders/139/builds/51875 https://lab.llvm.org/buildbot/#/builders/164/builds/45262
show more ...
|
#
7339c0f7 |
| 20-Oct-2023 |
Aaron Ballman <aaron@aaronballman.com> |
Diagnose use of VLAs in C++ by default
Clang supports VLAs in C++ as an extension, but we currently only warn on their use when you pass -Wvla, -Wvla-extension, or -pedantic. However, VLAs as they'r
Diagnose use of VLAs in C++ by default
Clang supports VLAs in C++ as an extension, but we currently only warn on their use when you pass -Wvla, -Wvla-extension, or -pedantic. However, VLAs as they're expressed in C have been considered by WG21 and rejected, are easy to use accidentally to the surprise of users (e.g., https://ddanilov.me/default-non-standard-features/), and they have potential security implications beyond constant-size arrays (https://wiki.sei.cmu.edu/confluence/display/c/ARR32-C.+Ensure+size+arguments+for+variable+length+arrays+are+in+a+valid+range). C++ users should strongly consider using other functionality such as std::vector instead.
This seems like sufficiently compelling evidence to warn users about VLA use by default in C++ modes. This patch enables the -Wvla-extension diagnostic group in C++ language modes by default, and adds the warning group to -Wall in GNU++ language modes. The warning is still opt-in in C language modes, where support for VLAs is somewhat less surprising to users.
RFC: https://discourse.llvm.org/t/rfc-diagnosing-use-of-vlas-in-c/73109 Fixes https://github.com/llvm/llvm-project/issues/62836 Differential Revision: https://reviews.llvm.org/D156565
show more ...
|
Revision tags: llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4 |
|
#
cfa578cd |
| 31-Aug-2023 |
Nick Desaulniers <ndesaulniers@google.com> |
[Sema] add test cases for D152495 NFC
Ensure these don't regress the next time we reland D152495.
Link: https://github.com/ClangBuiltLinux/linux/issues/1926
Reviewed By: cor3ntin, MaskRay
Differe
[Sema] add test cases for D152495 NFC
Ensure these don't regress the next time we reland D152495.
Link: https://github.com/ClangBuiltLinux/linux/issues/1926
Reviewed By: cor3ntin, MaskRay
Differential Revision: https://reviews.llvm.org/D159307
show more ...
|
#
f0f395e0 |
| 31-Aug-2023 |
Nick Desaulniers <ndesaulniers@google.com> |
Revert "Reland "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions""
This reverts commit 92023b15099012a657da07ebf49dd7d94a260f84.
Further issues were uncovered: -
Revert "Reland "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions""
This reverts commit 92023b15099012a657da07ebf49dd7d94a260f84.
Further issues were uncovered: - False positive -Wunused-variable on function-static variables with the used attribute. https://github.com/ClangBuiltLinux/linux/issues/1926 A test case needs to be added for this. - Request for a new flag for these. https://reviews.llvm.org/D152495#4628877 https://reviews.llvm.org/D152495#4628887
show more ...
|
#
92023b15 |
| 30-Aug-2023 |
Takuya Shimizu <shimizu2486@gmail.com> |
Reland "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions"
This patch marks the declarations with initializations in condition expressions such as if (int var = ini
Reland "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions"
This patch marks the declarations with initializations in condition expressions such as if (int var = init) as unused and unreferenced so that -Wunused can warn on them.
Fixes https://github.com/llvm/llvm-project/issues/61681
Reviewed By: cor3ntin Differential Revision: https://reviews.llvm.org/D152495
show more ...
|
Revision tags: llvmorg-17.0.0-rc3 |
|
#
5aded521 |
| 15-Aug-2023 |
Takuya Shimizu <shimizu2486@gmail.com> |
Revert "Reland "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions""
This causes a lot of warning in sanitizer build: https://lab.llvm.org/buildbot/#/builders/258/bu
Revert "Reland "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions""
This causes a lot of warning in sanitizer build: https://lab.llvm.org/buildbot/#/builders/258/builds/5424 https://lab.llvm.org/buildbot/#/builders/36/builds/36560
This reverts commit 8e329caa944c377c51ef567d5aa67cfac9ffd0fa.
show more ...
|
#
8e329caa |
| 15-Aug-2023 |
Takuya Shimizu <shimizu2486@gmail.com> |
Reland "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions"
This patch marks the declarations with initializations in condition expressions such as if (int var = ini
Reland "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions"
This patch marks the declarations with initializations in condition expressions such as if (int var = init) as unreferenced so that -Wunused can warn on them.
Fixes https://github.com/llvm/llvm-project/issues/61681
Reviewed By: cor3ntin Differential Revision: https://reviews.llvm.org/D152495
show more ...
|
Revision tags: llvmorg-17.0.0-rc2 |
|
#
18b6f6e0 |
| 06-Aug-2023 |
Takuya Shimizu <shimizu2486@gmail.com> |
Revert "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions"
Broke sanitizer buildbot: https://lab.llvm.org/buildbot/#/builders/240/builds/12947 https://lab.llvm.org/
Revert "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions"
Broke sanitizer buildbot: https://lab.llvm.org/buildbot/#/builders/240/builds/12947 https://lab.llvm.org/buildbot/#/builders/19/builds/18369
Reverting while I figure out the cause.
This reverts commit bd0ed0abc31fa5a49e87eeca7aa872e7f6e4d1e7.
show more ...
|
#
bd0ed0ab |
| 06-Aug-2023 |
Takuya Shimizu <shimizu2486@gmail.com> |
[Clang][SemaCXX] Add unused warning for variables declared in condition expressions
This patch marks the declarations with initializations in condition expressions such as if (int var = init) as unr
[Clang][SemaCXX] Add unused warning for variables declared in condition expressions
This patch marks the declarations with initializations in condition expressions such as if (int var = init) as unreferenced so that -Wunused can warn on them.
Fixes https://github.com/llvm/llvm-project/issues/61681
Reviewed By: cor3ntin Differential Revision: https://reviews.llvm.org/D152495
show more ...
|
Revision tags: llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
#
84f0a36b |
| 29-Mar-2022 |
Corentin Jabot <corentinjabot@gmail.com> |
[Clang] Do not warn on unused lifetime-extending vars with side effects...
const auto & var = ObjectWithSideEffects();
Fixes https://github.com/llvm/llvm-project/issues/54489
Reviewed By: aaron.ba
[Clang] Do not warn on unused lifetime-extending vars with side effects...
const auto & var = ObjectWithSideEffects();
Fixes https://github.com/llvm/llvm-project/issues/54489
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D122661
show more ...
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init |
|
#
654c0dae |
| 12-Dec-2019 |
Erich Keane <erich.keane@intel.com> |
Suppress -Wwarn-unused-variables when we don't know the constructor
This warning is supposed to be suppressed when the constructor/destructor are non-trivial, since it might be a RAII type. However,
Suppress -Wwarn-unused-variables when we don't know the constructor
This warning is supposed to be suppressed when the constructor/destructor are non-trivial, since it might be a RAII type. However, if the type has a trivial destructor and the constructor hasn't been resolved (since it is called with dependent arguments), we were still warning.
This patch suppresses the warning if the type could possibly have a be a non-trivial constructor call. Note that this does not take the arity of the constructors into consideration, so it might suppress the warning in cases where it isn't possible to call a non-trivial constructor.
show more ...
|
Revision tags: llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1 |
|
#
bb750689 |
| 26-Apr-2019 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++ DR2387: a variable template declared wtih (or instantiated with) a const-qualified type is not implicitly given internal linkage. But a variable template declared 'static' is.
This reinstates pa
C++ DR2387: a variable template declared wtih (or instantiated with) a const-qualified type is not implicitly given internal linkage. But a variable template declared 'static' is.
This reinstates part of r359048, reverted in r359076.
llvm-svn: 359260
show more ...
|
#
b8292c95 |
| 24-Apr-2019 |
Ilya Biryukov <ibiryukov@google.com> |
Revert r359048: C++ DR2387: a variable template declared wthi
The change breaks libc++ with the follwing error:
In file included from valarray:4: .../include/c++/v1/valarray:1062:60: error: explici
Revert r359048: C++ DR2387: a variable template declared wthi
The change breaks libc++ with the follwing error:
In file included from valarray:4: .../include/c++/v1/valarray:1062:60: error: explicit instantiation declaration of 'valarray<_Tp>' with internal linkage _LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS valarray<size_t>::valarray(size_t)) ^ .../include/c++/v1/valarray:1063:60: error: explicit instantiation declaration of '~valarray<_Tp>' with internal linkage _LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS valarray<size_t>::~valarray())
llvm-svn: 359076
show more ...
|
#
eeab4518 |
| 23-Apr-2019 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++ DR2387: a variable template declared wtih (or instantiated with) a const-qualified type is not implicitly given internal linkage. But a variable template declared 'static' is.
llvm-svn: 359048
|
Revision tags: llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1, llvmorg-7.0.1, llvmorg-7.0.1-rc3, llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1, llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1, llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2, llvmorg-6.0.1-rc1, llvmorg-5.0.2, llvmorg-5.0.2-rc2, llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2, llvmorg-6.0.0-rc1, llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1 |
|
#
93a1771a |
| 19-Oct-2017 |
Benjamin Kramer <benny.kra@googlemail.com> |
[Sema] Fix assertion failure when checking for unused variables in a dependent context.
llvm-svn: 316177
|
#
2b8ad731 |
| 14-Oct-2017 |
Benjamin Kramer <benny.kra@googlemail.com> |
Re-land r315787, "[Sema] Warn about unused variables if we can constant evaluate the initializer."
The warnings in libc++ tests were fixed in the meantime.
llvm-svn: 315811
|
#
93638b75 |
| 14-Oct-2017 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert rL315787, "[Sema] Warn about unused variables if we can constant evaluate the initializer."
check-libcxx dislikes it.
llvm-svn: 315806
|
#
819ec01c |
| 14-Oct-2017 |
Benjamin Kramer <benny.kra@googlemail.com> |
[Sema] Warn about unused variables if we can constant evaluate the initializer.
If the variable construction can be constant evaluated it doesn't have side effects, so removing it is always safe. We
[Sema] Warn about unused variables if we can constant evaluate the initializer.
If the variable construction can be constant evaluated it doesn't have side effects, so removing it is always safe. We only try to evaluate variables that are unused, there should be no impact on compile time.
Differential Revision: https://reviews.llvm.org/D38678
llvm-svn: 315787
show more ...
|
Revision tags: llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2, llvmorg-5.0.0-rc1, llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2, llvmorg-4.0.1-rc1, llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3, llvmorg-4.0.0-rc2, llvmorg-4.0.0-rc1, llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1 |
|
#
4eec18ff |
| 02-Nov-2016 |
Alex Lorenz <arphaman@gmail.com> |
Simplify the test case from r285289.
This commit simplifies and clarifies the test code that was added in r285289.
Suggested by David Blaikie.
llvm-svn: 285825
|
#
ba5032c9 |
| 27-Oct-2016 |
Alex Lorenz <arphaman@gmail.com> |
[Sema] -Wunused-variable warning for array variables should behave similarly to scalar variables.
This commit makes the -Wunused-variable warning behaviour more consistent: Now clang won't warn for
[Sema] -Wunused-variable warning for array variables should behave similarly to scalar variables.
This commit makes the -Wunused-variable warning behaviour more consistent: Now clang won't warn for array variables where it doesn't warn for scalar variables.
rdar://24158862
Differential Revision: https://reviews.llvm.org/D25937
llvm-svn: 285289
show more ...
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2, llvmorg-3.9.0-rc1, llvmorg-3.8.1, llvmorg-3.8.1-rc1, llvmorg-3.8.0, llvmorg-3.8.0-rc3, llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1, llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1, llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1, llvmorg-3.6.2, llvmorg-3.6.2-rc1, llvmorg-3.6.1, llvmorg-3.6.1-rc1, llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1, llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2, llvmorg-3.5.0-rc1, llvmorg-3.4.2, llvmorg-3.4.2-rc1, llvmorg-3.4.1, llvmorg-3.4.1-rc2 |
|
#
6c6ef822 |
| 25-Apr-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR19558: don't produce an "unused variable" warning for a variable template partial specialization.
llvm-svn: 207260
|
Revision tags: llvmorg-3.4.1-rc1 |
|
#
c392617c |
| 02-Apr-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR19305: Don't issue -Wunused-variable warnings on variable templates. It's not meaningful to odr-use the VarDecl inside a variable template. (Separately, it'd be nice to track referenced-ness for te
PR19305: Don't issue -Wunused-variable warnings on variable templates. It's not meaningful to odr-use the VarDecl inside a variable template. (Separately, it'd be nice to track referenced-ness for templates, and warn on unused ones, but that's really a distinct issue...)
Move a test that generates and tests a warning-suppressing error out to its own test file, so it doesn't have weird effects on the other tests in the same file.
llvm-svn: 205448
show more ...
|