diff options
Diffstat (limited to 'clang-tools-extra')
-rw-r--r-- | clang-tools-extra/docs/ReleaseNotes.rst | 436 |
1 files changed, 0 insertions, 436 deletions
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 236226e..e602fce 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -94,451 +94,15 @@ The improvements are... Improvements to clang-tidy -------------------------- -- New global configuration file options `HeaderFileExtensions` and - `ImplementationFileExtensions`, replacing the check-local options of the - same name. - -- Support specifying `Checks` as a YAML list in the `.clang-tidy` configuration - file. - -- Fix a potential crash when using the `--dump-config` option. - -- Support specifying `SystemHeaders` in the `.clang-tidy` configuration file, - with the same functionality as the command-line option `--system-headers`. - -- `WarningsAsErrors` (`--warnings-as-errors=`) no longer promotes unlisted - warnings to errors. Only the warnings listed in `Checks` (`--checks=`) will - be promoted to errors. For custom error promotion, use `-Werror=<warning>` - on the compiler command-line, irrespective of `Checks` (`--checks=`) settings. - -- Fixed an issue where compiler warnings couldn't be suppressed using - `-Wno-<warning>` under C++20 and above. - New checks ^^^^^^^^^^ -- New :doc:`bugprone-empty-catch - <clang-tidy/checks/bugprone/empty-catch>` check. - - Detects and suggests addressing issues with empty catch statements. - -- New :doc:`bugprone-multiple-new-in-one-expression - <clang-tidy/checks/bugprone/multiple-new-in-one-expression>` check. - - Finds multiple ``new`` operator calls in a single expression, where the allocated - memory by the first ``new`` may leak if the second allocation fails and throws exception. - -- New :doc:`bugprone-non-zero-enum-to-bool-conversion - <clang-tidy/checks/bugprone/non-zero-enum-to-bool-conversion>` check. - - Detect implicit and explicit casts of ``enum`` type into ``bool`` where ``enum`` type - doesn't have a zero-value enumerator. - -- New :doc:`bugprone-switch-missing-default-case - <clang-tidy/checks/bugprone/switch-missing-default-case>` check. - - Ensures that switch statements without default cases are flagged, focuses only - on covering cases with non-enums where the compiler may not issue warnings. - -- New :doc:`bugprone-unique-ptr-array-mismatch - <clang-tidy/checks/bugprone/unique-ptr-array-mismatch>` check. - - Finds initializations of C++ unique pointers to non-array type that are - initialized with an array. - -- New :doc:`bugprone-unsafe-functions - <clang-tidy/checks/bugprone/unsafe-functions>` check. - - Checks for functions that have safer, more secure replacements available, or - are considered deprecated due to design flaws. - This check relies heavily on, but is not exclusive to, the functions from - the *Annex K. "Bounds-checking interfaces"* of C11. - -- New :doc:`cppcoreguidelines-avoid-capturing-lambda-coroutines - <clang-tidy/checks/cppcoreguidelines/avoid-capturing-lambda-coroutines>` check. - - Flags C++20 coroutine lambdas with non-empty capture lists that may cause - use-after-free errors and suggests avoiding captures or ensuring the lambda - closure object has a guaranteed lifetime. - -- New :doc:`cppcoreguidelines-misleading-capture-default-by-value - <clang-tidy/checks/cppcoreguidelines/misleading-capture-default-by-value>` check. - - Warns when lambda specify a by-value capture default and capture ``this``. - -- New :doc:`cppcoreguidelines-missing-std-forward - <clang-tidy/checks/cppcoreguidelines/missing-std-forward>` check. - - Warns when a forwarding reference parameter is not forwarded within the - function body. - -- New :doc:`cppcoreguidelines-rvalue-reference-param-not-moved - <clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved>` check. - - Warns when an rvalue reference function parameter is never moved within - the function body. - -- New :doc:`llvmlibc-inline-function-decl - <clang-tidy/checks/llvmlibc/inline-function-decl>` check. - - Checks that all implicit and explicit inline functions in header files are - tagged with the ``LIBC_INLINE`` macro. - -- New :doc:`misc-header-include-cycle - <clang-tidy/checks/misc/header-include-cycle>` check. - - Check detects cyclic ``#include`` dependencies between user-defined headers. - -- New :doc:`misc-include-cleaner - <clang-tidy/checks/misc/include-cleaner>` check. - - Checks for unused and missing includes. - -- New :doc:`modernize-type-traits - <clang-tidy/checks/modernize/type-traits>` check. - - Converts standard library type traits of the form ``traits<...>::type`` and - ``traits<...>::value`` into ``traits_t<...>`` and ``traits_v<...>`` respectively. - -- New :doc:`modernize-use-std-print - <clang-tidy/checks/modernize/use-std-print>` check. - - Converts calls to ``printf``, ``fprintf``, ``absl::PrintF``, - ``absl::FPrintf`` or other functions via configuration options, to - equivalent calls to C++23's ``std::print`` and ``std::println``, or other - functions via a configuration option, modifying the format string - appropriately and removing now-unnecessary calls to - ``std::string::c_str()`` and ``std::string::data()``. - -- New :doc:`performance-avoid-endl - <clang-tidy/checks/performance/avoid-endl>` check. - - Finds uses of ``std::endl`` on streams and replaces them with ``'\n'``. - -- New :doc:`performance-noexcept-destructor - <clang-tidy/checks/performance/noexcept-destructor>` check. - - Finds user declared destructors which are not ``noexcept``. - -- New :doc:`performance-noexcept-swap - <clang-tidy/checks/performance/noexcept-swap>` check. - - Finds user declared swap functions which are not ``noexcept``. - -- New :doc:`readability-avoid-unconditional-preprocessor-if - <clang-tidy/checks/readability/avoid-unconditional-preprocessor-if>` check. - - Finds code blocks that are constantly enabled or disabled in preprocessor - directives by analyzing ``#if`` conditions, such as ``#if 0`` and - ``#if 1``, etc. - -- New :doc:`readability-operators-representation - <clang-tidy/checks/readability/operators-representation>` check. - - Enforces consistent token representation for invoked binary, unary and - overloaded operators in C++ code. - New check aliases ^^^^^^^^^^^^^^^^^ -- New alias :doc:`cert-msc24-c - <clang-tidy/checks/cert/msc24-c>` to :doc:`bugprone-unsafe-functions - <clang-tidy/checks/bugprone/unsafe-functions>` was added. - -- New alias :doc:`cert-msc33-c - <clang-tidy/checks/cert/msc33-c>` to :doc:`bugprone-unsafe-functions - <clang-tidy/checks/bugprone/unsafe-functions>` was added. - -- New alias :doc:`cppcoreguidelines-noexcept-destructor - <clang-tidy/checks/cppcoreguidelines/noexcept-destructor>` to - :doc:`performance-noexcept-destructor - <clang-tidy/checks/performance/noexcept-destructor>` was added. - -- New alias :doc:`cppcoreguidelines-noexcept-move-operations - <clang-tidy/checks/cppcoreguidelines/noexcept-move-operations>` to - :doc:`performance-noexcept-move-constructor - <clang-tidy/checks/performance/noexcept-move-constructor>` was added. - -- New alias :doc:`cppcoreguidelines-noexcept-swap - <clang-tidy/checks/cppcoreguidelines/noexcept-swap>` to - :doc:`performance-noexcept-swap - <clang-tidy/checks/performance/noexcept-swap>` was added. - -- New alias :doc:`cppcoreguidelines-use-default-member-init - <clang-tidy/checks/cppcoreguidelines/use-default-member-init>` to - :doc:`modernize-use-default-member-init - <clang-tidy/checks/modernize/use-default-member-init>` was added. - Changes in existing checks ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- Fixed false-positives in :doc:`bugprone-branch-clone - <clang-tidy/checks/bugprone/branch-clone>` check by ignoring auto-generated - code, template instances, implicit code patterns and duplicated switch cases - marked with the ``[[fallthrough]]`` attribute. - -- Improved :doc:`bugprone-dangling-handle - <clang-tidy/checks/bugprone/dangling-handle>` check enhancing detection of - handles behind type aliases. - -- Deprecated check-local options `HeaderFileExtensions` - in :doc:`bugprone-dynamic-static-initializers - <clang-tidy/checks/bugprone/dynamic-static-initializers>` check. - Global options of the same name should be used instead. - -- Improved :doc:`bugprone-exception-escape - <clang-tidy/checks/bugprone/exception-escape>` check to not emit warnings for - forward declarations of functions, explicitly declared throwing functions, - coroutines throwing exceptions in their bodies and skip ``noexcept`` - functions during call stack analysis. - -- Improved :doc:`bugprone-fold-init-type - <clang-tidy/checks/bugprone/fold-init-type>` to handle iterators that do not - define `value_type` type aliases. - -- Improved :doc:`bugprone-forwarding-reference-overload - <clang-tidy/checks/bugprone/forwarding-reference-overload>` check to ignore - constructors with associated constraints (C++ concepts). - -- Improved :doc:`bugprone-incorrect-roundings - <clang-tidy/checks/bugprone/incorrect-roundings>` check by adding support for - other floating point representations in float constant like ``0.5L``. - -- Improved the performance of the :doc:`bugprone-reserved-identifier - <clang-tidy/checks/bugprone/reserved-identifier>` check through optimizations. - -- Improved the :doc:`bugprone-reserved-identifier - <clang-tidy/checks/bugprone/reserved-identifier>` check by enhancing the - `AllowedIdentifiers` option to support regular expressions. - -- Deprecated check-local options `HeaderFileExtensions` and `ImplementationFileExtensions` - in :doc:`bugprone-suspicious-include - <clang-tidy/checks/bugprone/suspicious-include>` check. - Global options of the same name should be used instead. - -- Improved :doc:`bugprone-too-small-loop-variable - <clang-tidy/checks/bugprone/too-small-loop-variable>` check. Basic support - for bit-field and integer members as a loop variable or upper limit were added. - -- Improved :doc:`bugprone-unchecked-optional-access - <clang-tidy/checks/bugprone/unchecked-optional-access>` check to properly handle calls - to ``std::forward`` and support for ``folly::Optional`` were added. - -- Extend :doc:`bugprone-unused-return-value - <clang-tidy/checks/bugprone/unused-return-value>` check to check for all functions - with specified return types using the ``CheckedReturnTypes`` option. - -- Improved :doc:`bugprone-use-after-move - <clang-tidy/checks/bugprone/use-after-move>` check. Detect uses and moves in - constructor initializers. Correctly handle constructor arguments as being - sequenced when constructor call is written as list-initialization. Understand - that there is a sequence point between designated initializers. - -- Improved :doc:`bugprone-swapped-arguments - <clang-tidy/checks/bugprone/swapped-arguments>` by enhancing handling of - implicit conversions, resulting in better detection of argument swaps - involving integral and floating-point types. - -- Deprecated :doc:`cert-dcl21-cpp - <clang-tidy/checks/cert/dcl21-cpp>` check. - -- Fixed :doc:`cppcoreguidelines-avoid-const-or-ref-data-members - <clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members>` check - to emit warnings only on classes that are copyable/movable, as required by the - corresponding rule. - -- Improved :doc:`cppcoreguidelines-owning-memory - <clang-tidy/checks/cppcoreguidelines/owning-memory>` check now finds more - issues, especially those related to implicit casts. - -- Deprecated C.48 enforcement from :doc:`cppcoreguidelines-prefer-member-initializer - <clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>`. Please use - :doc:`cppcoreguidelines-use-default-member-init - <clang-tidy/checks/cppcoreguidelines/use-default-member-init>` instead. - -- Improved :doc:`cppcoreguidelines-pro-bounds-constant-array-index - <clang-tidy/checks/cppcoreguidelines/pro-bounds-constant-array-index>` check - to cover type aliases of ``std::array``. - -- Fixed a false positive in :doc:`cppcoreguidelines-slicing - <clang-tidy/checks/cppcoreguidelines/slicing>` check when warning would be - emitted in constructor for virtual base class initialization. - -- Deprecated check-local options `HeaderFileExtensions` - in :doc:`google-build-namespaces - <clang-tidy/checks/google/build-namespaces>` check. - Global options of the same name should be used instead. - -- Deprecated check-local options `HeaderFileExtensions` - in :doc:`google-global-names-in-headers - <clang-tidy/checks/google/global-names-in-headers>` check. - Global options of the same name should be used instead. - -- Fixed an issue in :doc:`google-readability-avoid-underscore-in-googletest-name - <clang-tidy/checks/google/readability-avoid-underscore-in-googletest-name>` when using - ``DISABLED_`` in the test suite name. - -- Deprecated check-local options `HeaderFileExtensions` - in :doc:`llvm-header-guard - <clang-tidy/checks/llvm/header-guard>` check. - Global options of the same name should be used instead. - -- Fix false positive in :doc:`llvmlibc-inline-function-decl - <clang-tidy/checks/llvmlibc/inline-function-decl>` when using templated - function with separate declarations and definitions. - -- Improved the performance of the :doc:`misc-confusable-identifiers - <clang-tidy/checks/misc/confusable-identifiers>` check through optimizations. - -- Deprecated check-local options `HeaderFileExtensions` - in :doc:`misc-definitions-in-headers - <clang-tidy/checks/misc/definitions-in-headers>` check. - Global options of the same name should be used instead. - -- Fixed false positive in :doc:`misc-definitions-in-headers - <clang-tidy/checks/misc/definitions-in-headers>` to avoid warning on - declarations inside anonymous namespaces. - -- Fixed false-positive in :doc:`misc-redundant-expression - <clang-tidy/checks/misc/redundant-expression>` check where expressions like - ``alignof`` or ``sizeof`` were incorrectly flagged as identical. - -- Improved :doc:`misc-unused-parameters - <clang-tidy/checks/misc/unused-parameters>` check with new `IgnoreVirtual` - option to optionally ignore virtual methods. - -- Deprecated check-local options `HeaderFileExtensions` - in :doc:`misc-unused-using-decls - <clang-tidy/checks/misc/unused-using-decls>` check. - Global options of the same name should be used instead. - -- Improved :doc:`modernize-concat-nested-namespaces - <clang-tidy/checks/modernize/concat-nested-namespaces>` to fix incorrect fixes when - using macro between namespace declarations, to fix false positive when using namespace - with attributes and to support nested inline namespace introduced in c++20. - -- Fixed an issue in :doc:`modernize-loop-convert - <clang-tidy/checks/modernize/loop-convert>` generating wrong code - when using structured bindings. - -- In :doc:`modernize-use-default-member-init - <clang-tidy/checks/modernize/use-default-member-init>` check, template - constructors are now counted towards hand-written constructors and skipped - if more than one exists. Additionally, a crash that occurred with array - members being value-initialized has been fixed. - -- Fixed false positive in :doc:`modernize-use-equals-default - <clang-tidy/checks/modernize/use-equals-default>` check for special member - functions containing macros or preprocessor directives, and out-of-line special - member functions in unions. - -- Improved :doc:`modernize-use-override - <clang-tidy/checks/modernize/use-override>` check with new - `IgnoreTemplateInstantiations` option to optionally ignore virtual function - overrides that are part of template instantiations. - -- Improved :doc:`performance-for-range-copy - <clang-tidy/checks/performance/for-range-copy>` - check by extending const usage analysis to include the type's members. - -- Improved :doc:`performance-inefficient-vector-operation - <clang-tidy/checks/performance/inefficient-vector-operation>` - check by extending const usage analysis to include the type's members. - -- Improved :doc:`performance-move-const-arg - <clang-tidy/checks/performance/move-const-arg>` check to warn when move - special member functions are not available. - -- Improved :doc:`performance-no-automatic-move - <clang-tidy/checks/performance/no-automatic-move>` check to warn on - ``const &&`` constructors and ignore ``const`` local variable to which NRVO - is applied. - -- Fixed an issue in the :doc:`performance-noexcept-move-constructor - <clang-tidy/checks/performance/noexcept-move-constructor>` checker that was causing - false-positives when the move constructor or move assign operator were defaulted. - -- Improved :doc:`performance-unnecessary-copy-initialization - <clang-tidy/checks/performance/unnecessary-copy-initialization>` - check by extending const usage analysis to include the type's members. - -- Improved :doc:`performance-unnecessary-value-param - <clang-tidy/checks/performance/unnecessary-value-param>` - check by extending const usage analysis to include the type's members. - -- Improved :doc:`readability-container-data-pointer - <clang-tidy/checks/readability/container-data-pointer>` check with new - `IgnoredContainers` option to ignore some containers. - -- Fixed a false positive in :doc:`readability-container-size-empty - <clang-tidy/checks/readability/container-size-empty>` check when comparing - ``std::array`` objects to default constructed ones. The behavior for this and - other relevant classes can now be configured with a new option. - -- Fixed a false negative in :doc:`readability-convert-member-functions-to-static - <clang-tidy/checks/readability/convert-member-functions-to-static>` when a - nested class in a member function uses a ``this`` pointer. - -- Fixed reading `HungarianNotation.CString.*` options in - :doc:`readability-identifier-naming - <clang-tidy/checks/readability/identifier-naming>` check. - -- Renamed `HungarianNotation.CString` options `CharPrinter` and - `WideCharPrinter` to `CharPointer` and `WideCharPointer` respectively in - :doc:`readability-identifier-naming - <clang-tidy/checks/readability/identifier-naming>` check. - -- Updated the Hungarian prefixes for enums in C files to match those used in C++ - files for improved readability, as checked by :doc:`readability-identifier-naming - <clang-tidy/checks/readability/identifier-naming>`. To preserve the previous - behavior of using `i` as the prefix for enum tags, set the `EnumConstantPrefix` - option to `i` instead of using `EnumConstantHungarianPrefix`. - -- Fixed a hungarian notation issue in :doc:`readability-identifier-naming - <clang-tidy/checks/readability/identifier-naming>` which failed to indicate - the number of asterisks. - -- Fixed an issue in :doc:`readability-identifier-naming - <clang-tidy/checks/readability/identifier-naming>` when specifying an empty - string for `Prefix` or `Suffix` options could result in the style not - being used. - -- Improved the performance of the :doc:`readability-identifier-naming - <clang-tidy/checks/readability/identifier-naming>` check through optimizations. - -- Fixed a false positive in :doc:`readability-implicit-bool-conversion - <clang-tidy/checks/readability/implicit-bool-conversion>` check warning would - be unnecessarily emitted for explicit cast using direct list initialization. - -- Added support to optionally ignore user-defined literals in - :doc:`readability-magic-numbers <clang-tidy/checks/readability/magic-numbers>` - check and improved it to allow magic numbers in type aliases such as ``using`` - and ``typedef`` declarations if the new `IgnoreTypeAliases` option is set to - `true`. - -- Fixed a false positive in :doc:`readability-misleading-indentation - <clang-tidy/checks/readability/misleading-indentation>` check when warning would - be unnecessarily emitted for template dependent ``if constexpr``. - -- Fixed a false positive in :doc:`readability-named-parameter - <clang-tidy/checks/readability/named-parameter>` for defaulted out-of-line - special member functions. - -- Fixed incorrect fixes in :doc:`readability-redundant-declaration - <clang-tidy/checks/readability/redundant-declaration>` check when linkage - (like ``extern "C"``) is explicitly specified. - -- Improved :doc:`readability-redundant-string-cstr - <clang-tidy/checks/readability/redundant-string-cstr>` check to recognise - unnecessary ``std::string::c_str()`` and ``std::string::data()`` calls in - arguments to ``std::print``, ``std::format`` or other functions listed in - the `StringParameterFunction` check option. - -- Improved :doc:`readability-static-accessed-through-instance - <clang-tidy/checks/readability/static-accessed-through-instance>` check to - support unscoped enumerations through instances and fixed usage of anonymous - structs or classes. - Removed checks ^^^^^^^^^^^^^^ |