[clang] [clang] Enable the -Wdangling-capture diagnostic by default. (PR #119685)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 12 01:59:29 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Haojian Wu (hokein)
<details>
<summary>Changes</summary>
We have tested this diagnostics internally, and we don't find see any issues.
---
Full diff: https://github.com/llvm/llvm-project/pull/119685.diff
2 Files Affected:
- (modified) clang/docs/ReleaseNotes.rst (+9)
- (modified) clang/include/clang/Basic/DiagnosticSemaKinds.td (+2-2)
``````````diff
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 6802c0c50b8f0c..7cb18225cb38c2 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -664,6 +664,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.
``````````
</details>
https://github.com/llvm/llvm-project/pull/119685
More information about the cfe-commits
mailing list