[Bug c++/63203] Self-initialization of reference not diagnosed if it occurs within a loop
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Sep 8 10:16:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63203
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I tried something like this:
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -6101,6 +6101,12 @@ initialize_local_var (tree decl, tree init)
-Wno-init-self works (c++/34772). */
gcc_assert (TREE_OPERAND (init, 0) == decl);
DECL_INITIAL (decl) = TREE_OPERAND (init, 1);
+
+ if (warn_init_self && TREE_CODE (type) == REFERENCE_TYPE
+ && TREE_OPERAND (init, 1) == decl)
+ warning_at (DECL_SOURCE_LOCATION (decl),
+ OPT_Winit_self,
+ "Reference %qD is initialized with itself", decl);
}
else
{
but the TREE_OPERAND (init, 1) == decl condition is false and I'm not sure how
to fix it.
More information about the Gcc-bugs
mailing list