https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97456

--- Comment #5 from Martin Jambor <jamborm at gcc dot gnu.org> ---
And indeed the following avoids the issue:

diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index 2e54bbb917c..71ad7c18523 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -570,8 +570,10 @@ set_component_ssa_name (tree ssa_name, bool imag_p, tree
value)
       /* Replace an anonymous base value with the variable from cvc_lookup.
         This should result in better debug info.  */
       if (SSA_NAME_VAR (ssa_name)
-         && (!SSA_NAME_VAR (value) || DECL_IGNORED_P (SSA_NAME_VAR (value)))
-         && !DECL_IGNORED_P (SSA_NAME_VAR (ssa_name)))
+         && !DECL_IGNORED_P (SSA_NAME_VAR (ssa_name))
+         && (!SSA_NAME_VAR (value)
+             || (DECL_IGNORED_P (SSA_NAME_VAR (value))
+                 && !SSA_NAME_IS_DEFAULT_DEF (value))))
        {
          comp = get_component_var (SSA_NAME_VAR (ssa_name), imag_p);
          replace_ssa_name_symbol (value, comp);

Reply via email to