- clang tooling library:
- AST matchers:
- extend
hasType
to work withTypedefDecl
nodes - add
functionProtoType
matcher for matchingFunctionProtoType
nodes - extend
parameterCountIs
matcher toFunctionProtoType
nodes
- extend
- AST matchers:
- clang-tidy checks:
modernize-macro-to-enum
converts groups of macros to unscoped anonymous enumsmodernize-raw-string-literal
converts string literals with escaped characters to raw string literalsmodernize-redundant-void-arg
removesvoid
tokens fromT f(void)
function declarations, definitions, typedefs, pointers to functions, etc.readability-duplicate-include
looks for duplicate includesreadability-redundant-control-flow
eliminates redundantreturn
statements in functions returning void andcontinue
statements in loopsreadability-simplify-boolean-expr
simplifies boolean expressions
- clang-tidy improvements:
- clang-tidy checks:
readability-redundant-fwd-decl
checkreadability-redundant-control-flow
- Improve test case
- Handle redundant control flow statements inside an
if
statement at the end of a control flow scope
readability-simplify-boolean-expr
- Apply fixes to header files
- Handle macro expansion better (iterated-dynamics case)
- Simplify
!(a < b)
to(a >= b)
and similar for other comparison operators - Improve handling of integral types implicitly converted to bool (case with std::vector::size_type implicitly converted)
modernize-redundant-void-arg
- Apply fixes to header files
- Don't apply fixes to macros
modernize-raw-string-literal
- Enhance to support non-ASCII string literals:
wchar_t
,char16_t
,char32_t
,u8""
,u""
,U""
,L""
- Enhance to support non-ASCII string literals:
- via github
- D3237 Fix spelling error
- D7318 Refactor: Move remove-cstr-calls from a standalone executable to a clang-tidy check readability-redundant-string-cstr
- D7603 Refactor: Correct spelling error in test file name
- D7604 Correct confusion between overwrite and override
- D7639 Add readability-redundant-void-arg check to clang-tidy
- D7648 Add readability-simplify-boolean-expr check to clang-tidy
- D7994 Refactor: Move google clang-tidy checks to namespace clang::tidy::google
- D7995 Refactor: Move llvm clang-tidy checks to namespace clang::tidy::llvm
- D7996 Refactor: Move misc clang-tidy checks to namespace clang::tidy::misc
- D7997 Refactor: Move readability checks to namespace clang::tidy::readability
- D8144 Refactor: Rename clang-tidy readability check files and classes to follow naming conventions
- D8145 Refactor: Rename clang-tidy misc check files and classes to follow naming conventions
- D8146 Correct doxygen for matcher macros that require a body
- D8149 Extend hasType narrowing matcher for TypedefDecls, add functionProtoType matcher for FunctionProtoType nodes, extend parameterCountIs to FunctionProtoType nodes
- D8154 Refactor: Simplify boolean expressions
- D8155 Refactor: Simplify boolean expressions in clang with clang-tidy
- D8517 Refactor: simplify boolean expressions in llvm-objdump
- D8519 Refactor: Simplify boolean expressions in x86 target
- D8520 Refactor: Simplify boolean expressions in R600 target
- D8521 Refactor: Simplify boolean expressions in NVPTX target
- D8522 Refactor: Simplify boolean expressions in Mips target
- D8523 Refactor: Simplify boolean expressions in Hexagon target
- D8524 Refactor: Simplify boolean expressions in ARM target
- D8525 Refactor: Simplify boolean expressions in AArch64 target
- D8526 Refactor: Simplify boolean expressions in llvm Support
- D8527 Refactor: Simplify boolean expressions in llvm IR
- D8528 Refactor: Simplify boolean expressions in lib/Analysis
- D8529 Refactor: Simplify boolean expressions in libclang
- D8531 Refactor: Simplify boolean expresssions in lib/Lex
- D8534 Refactor: Simplify boolean expression in modularize
- D8996 Enhance clang-tidy readability-simplify-boolean-expr check to handle chained conditional assignment and chained conditional return
- D9810 Enhance clang-tidy readability-simplify-boolean-expr to handle 'if (e) return true; return false;' and improve replacement expressions.
- D9967 Refactor: Simplify boolean conditional return statements in llvm/lib/Analysis
- D9969 Refactor: Simplify boolean conditional return statements in llvm/lib/Bitcode/Reader
- D9972 Refactor: Simplify boolean conditional return statements in llvm/lib/DebugInfo/DWARF
- D9973 Refactor: Simplify boolean conditional return statements in lib/llvm/ExecutionEngine/Orc
- D9978 Refactor: Simplify boolean conditional return statements in llvm/lib/Support
- D9983 Refactor: Simplify boolean conditional return statements in lib/Target/NVPTX
- D9984 Refactor: Simplify boolean conditional return statements in lib/Target/PowerPC
- D9986 Refactor: Simplify boolean conditional return statements in lib/Target/SystemZ
- D9996 Refactor: Simplify boolean conditional return statements in lib/Transforms/Instrumentation
- D9999 Refactor: Simplify boolean conditional return statements in lib/Transforms/ObjCARC
- D10003 Refactor: Simplify boolean conditional return statements in lib/Transforms/Vectorize
- D10006 Refactor: Simplify boolean conditional return statements in tools/llvm-symbolizer
- D10008 Refactor: simplify boolean conditional return statements in lib/Analysis
- D10009 Refactor: Simplify boolean conditional return statements in lib/ARCMigrate
- D10016 Refactor: Simplify boolean conditional return statements in lib/Frontend
- D10017 Refactor: Simplify boolean conditional return statements in lib/Lex
- D10021 Refactor: Simplify boolean conditional return statements in lib/StaticAnalyzer/Checkers
- D10023 Refactor: Simplify boolean conditional return statements in lib/StaticAnalyzer/Frontend
- D10024 Refactor: Simplify boolean conditional return statements in tools/libclang
- D10025 Refactor: Simplify boolean conditional return statements in clang-apply-replacements
- D15737 [clang-tidy] Preserve comments and preprocessor directives when simplifying boolean expressions
- D16259 Add clang-tidy readability-redundant-control-flow check
- D16308 clang-tidy Enhance readability-simplify-boolean-expr check to handle implicit conversions of integral types to bool and member pointers