Aaron Ballman
7068aa9841
Strengthen -Wint-conversion to default to an error
...
Clang has traditionally allowed C programs to implicitly convert
integers to pointers and pointers to integers, despite it not being
valid to do so except under special circumstances (like converting the
integer 0, which is the null pointer constant, to a pointer). In C89,
this would result in undefined behavior per 3.3.4, and in C99 this rule
was strengthened to be a constraint violation instead. Constraint
violations are most often handled as an error.
This patch changes the warning to default to an error in all C modes
(it is already an error in C++). This gives us better security posture
by calling out potential programmer mistakes in code but still allows
users who need this behavior to use -Wno-error=int-conversion to retain
the warning behavior, or -Wno-int-conversion to silence the diagnostic
entirely.
Differential Revision: https://reviews.llvm.org/D129881
2022-07-22 15:24:54 -04:00
Dominic Chen
184c6242fa
Reland 4: [analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296895
2017-03-03 18:02:02 +00:00
Dominic Chen
09d66f7528
Revert "Reland 3: [analyzer] NFC: Update test infrastructure to support multiple constraint managers"
...
This reverts commit ea36f1406e1f36bf456c3f3929839b024128e468.
llvm-svn: 296841
2017-03-02 23:30:53 +00:00
Dominic Chen
feaf9ff5ee
Reland 3: [analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296837
2017-03-02 23:05:45 +00:00
Dominic Chen
4a90bf8c3f
Revert "Reland 2: [analyzer] NFC: Update test infrastructure to support multiple constraint managers"
...
This reverts commit f93343c099fff646a2314cc7f4925833708298b1.
llvm-svn: 296836
2017-03-02 22:58:06 +00:00
Dominic Chen
1cb0256a3c
Reland 2: [analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296835
2017-03-02 22:45:24 +00:00
Dominic Chen
00355a51d0
Revert "Reland: [analyzer] NFC: Update test infrastructure to support multiple constraint managers"
...
This reverts commit 1b28d0b10e1c8feccb971abb6ef7a18bee589830.
llvm-svn: 296422
2017-02-28 01:50:23 +00:00
Dominic Chen
59cd893320
Reland: [analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296414
2017-02-28 00:02:36 +00:00
Dominic Chen
8589e10c30
Revert "[analyzer] NFC: Update test infrastructure to support multiple constraint managers"
...
This reverts commit 8e7780b9e59ddaad1800baf533058d2c064d4787.
llvm-svn: 296317
2017-02-27 03:29:25 +00:00
Dominic Chen
02064a3076
[analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296312
2017-02-27 02:36:15 +00:00
Artem Dergachev
e14d881808
[analyzer] NumberObjectConversion: support more types, misc updates.
...
Support CFNumberRef and OSNumber objects, which may also be accidentally
converted to plain integers or booleans.
Enable explicit boolean casts by default in non-pedantic mode.
Improve handling for warnings inside macros.
Improve error messages.
Differential Revision: https://reviews.llvm.org/D25731
llvm-svn: 285533
2016-10-31 03:08:48 +00:00