Author: Haojian Wu Date: 2024-12-12T16:38:17+01:00 New Revision: f229ea2ffe9bb8380a4285bd379736aaadaf55ac
URL: https://github.com/llvm/llvm-project/commit/f229ea2ffe9bb8380a4285bd379736aaadaf55ac DIFF: https://github.com/llvm/llvm-project/commit/f229ea2ffe9bb8380a4285bd379736aaadaf55ac.diff LOG: [clang] Enable the -Wdangling-capture diagnostic by default. (#119685) We have tested this diagnostics internally, and we don't find see any issues. Added: Modified: clang/docs/ReleaseNotes.rst clang/include/clang/Basic/DiagnosticSemaKinds.td Removed: ################################################################################ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index ae57b84f9247c4..26fa986810a4b8 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -666,6 +666,15 @@ Improvements to Clang's diagnostics bool operator==(const C&) = default; }; +- Clang now emits `-Wdangling-capture` diangostic when a STL container captures a dangling reference. + + .. code-block:: c++ + + void test() { + std::vector<std::string_view> views; + views.push_back(std::string("123")); // warning + } + Improvements to Clang's time-trace ---------------------------------- diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 0a245e2077f68f..811265151fa0da 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -10237,10 +10237,10 @@ def warn_dangling_pointer_assignment : Warning< InGroup<DanglingAssignment>; def warn_dangling_reference_captured : Warning< "object whose reference is captured by '%0' will be destroyed at the end of " - "the full-expression">, InGroup<DanglingCapture>, DefaultIgnore; + "the full-expression">, InGroup<DanglingCapture>; def warn_dangling_reference_captured_by_unknown : Warning< "object whose reference is captured will be destroyed at the end of " - "the full-expression">, InGroup<DanglingCapture>, DefaultIgnore; + "the full-expression">, InGroup<DanglingCapture>; // For non-floating point, expressions of the form x == x or x != x // should result in a warning, since these always evaluate to a constant. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits