On 8/1/24 4:20 PM, Marek Polacek wrote:
Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk?
-- >8 --
Despite a number of mitigations (don't warn for std::span-like classes,
lambdas, adding [[gnu::no_dangling]], etc.), the warning still seems to
cause some grief. Let's move the warning to -Wextra, then.
Any references to the grief?
The patch is OK.
gcc/c-family/ChangeLog:
* c.opt (Wdangling-reference): Move from -Wall to -Wextra.
gcc/ChangeLog:
* doc/invoke.texi: Document that -Wdangling-reference is
enabled by -Wextra.
---
gcc/c-family/c.opt | 2 +-
gcc/doc/invoke.texi | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index a52682d835c..979f17a7e32 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -604,7 +604,7 @@ C ObjC C++ ObjC++ Joined RejectNegative UInteger
Var(warn_dangling_pointer) Warn
Warn for uses of pointers to auto variables whose lifetime has ended.
Wdangling-reference
-C++ ObjC++ Var(warn_dangling_reference) Warning LangEnabledBy(C++ ObjC++, Wall)
+C++ ObjC++ Var(warn_dangling_reference) Warning LangEnabledBy(C++ ObjC++,
Wextra)
Warn when a reference is bound to a temporary whose lifetime has ended.
Wdate-time
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index ef2213b4e84..252b232e9f2 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -3962,7 +3962,7 @@ that has a pointer data member and a trivial destructor.
The warning can be disabled by using the @code{gnu::no_dangling} attribute
(@pxref{C++ Attributes}).
-This warning is enabled by @option{-Wall}.
+This warning is enabled by @option{-Wextra}.
@opindex Wdelete-non-virtual-dtor
@opindex Wno-delete-non-virtual-dtor
@@ -6481,6 +6481,7 @@ name is still supported, but the newer name is more
descriptive.)
-Wcalloc-transposed-args
-Wcast-function-type
-Wclobbered
+-Wdangling-reference @r{(C++ only)}
-Wdeprecated-copy @r{(C++ and Objective-C++ only)}
-Wempty-body
-Wenum-conversion @r{(only for C/ObjC)}
base-commit: 32e678b2ed752154b2f96719e33f11a7c6417f20