Sadly, -Wdangling-reference generates false positives for std::span-like
user classes, and it seems imprudent to attempt to improve the heuristic
in GCC 13. Let's move the warning to -Wextra, that will hopefully
reduce the number of false positives the users have been seeing with 13.
I'm leaving the warning in -Wall in 14 where I think I can write code
to detect std::span-like classes.
PR c++/109642
PR c++/109640
PR c++/109671
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.
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
both references dangle after the end of the full expression that contains
the call to @code{std::minmax}.
-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
@gccoptlist{-Wclobbered
-Wcast-function-type
+-Wdangling-reference @r{(C++ only)}
-Wdeprecated-copy @r{(C++ only)}
-Wempty-body
-Wenum-conversion @r{(C only)}