llvm-project/clang-tools-extra
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
..
clang-apply-replacements [clang-apply-replacements] Added an option to ignore insert conflict. 2022-05-30 13:02:25 +08:00
clang-change-namespace Use drop_begin (NFC) 2022-07-15 23:24:59 -07:00
clang-doc [clang-doc] Add check for pointer validity 2022-07-22 17:36:30 +00:00
clang-include-fixer Revert "[clang] Implement ElaboratedType sugaring for types written bare" 2022-07-14 21:17:48 -07:00
clang-move [clang][lex] NFCI: Use FileEntryRef in PPCallbacks::InclusionDirective() 2022-04-14 10:46:12 +02:00
clang-query [clang-query] Add check to prevent setting srcloc when no introspection is available. 2021-04-28 11:21:35 +01:00
clang-reorder-fields [clang-tooling] Prevent llvm::fatal_error on invalid CLI option 2021-01-29 10:15:06 +01:00
clang-tidy [clang-tidy][NFC] Add preposition "of" to code annotation of ElseAfterReturnCheck 2022-07-22 12:40:08 +01:00
clangd [clangd] Make forwarding parameter detection logic resilient 2022-07-22 14:37:13 +02:00
docs [CommandLine] --help: print "-o <xxx>" instead of "-o=<xxx>" 2022-07-14 01:28:28 -07:00
include-cleaner [include-cleaner] Fix build error in unit test 2022-06-09 03:38:13 -04:00
modularize Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 00:31:44 -07:00
pp-trace [pp-trace] Print HashLoc in InclusionDirective callback 2022-06-03 19:29:59 +08:00
pseudo [pseudo] Add ambiguity & unparseability metrics to -print-statistics 2022-07-22 10:35:06 +02:00
test Strengthen -Wint-conversion to default to an error 2022-07-22 15:24:54 -04:00
tool-template
unittests [clang-tidy] Remove unnecessary code from ReadabilityModuleTest 2022-07-19 05:21:19 +01:00
.gitignore
CMakeLists.txt Generalize "check-all" umbrella targets, use for check-clang-tools 2022-05-06 12:30:49 +02:00
CODE_OWNERS.TXT
LICENSE.TXT
README.txt [NFC] update clang-tools-extra README.txt 2022-06-10 16:59:57 +05:30

README.txt

//===----------------------------------------------------------------------===//
// Clang Tools repository
//===----------------------------------------------------------------------===//

Welcome to the repository of extra Clang Tools.  This repository holds tools
that are developed as part of the LLVM compiler infrastructure project and the
Clang frontend.  These tools are kept in a separate "extra" repository to
allow lighter weight checkouts of the core Clang codebase.

All discussion regarding Clang, Clang-based tools, and code in this repository
should be held using the standard Clang forum:
  https://discourse.llvm.org/c/clang

Code review for this tree should take place on the standard Clang patch and
commit lists:
  http://lists.llvm.org/mailman/listinfo/cfe-commits

If you find a bug in these tools, please file it in the LLVM bug tracker:
  https://github.com/llvm/llvm-project/issues/