Hi Yuao,
Yuao Ma wrote:
Looking at my attached patch, I immediately found 2 bugs:
1. A typo that changes rse to lse.
2. In conv_dummy_value, in addition to handling the optionalarg, we
also need to handle se->expr.
After fixing these two issues, some of the cond-expr-1 tests now work.
However, cond-expr-2 is experiencing some segfaults.
I still need to find the time to look more closely at your patch.
However, I can already add two other items:
gcc/fortran/ChangeLog:
* trans-expr.cc (gfc_conv_missing_dummy):
(conv_dummy_value):
(gfc_conv_procedure_call):
This still needs to be filled.
and
Your patch fails to bootstrap (which implies -Werror for stage 2 + 3):
gcc/fortran/trans-expr.cc:8062:17: error: suggest parentheses around ‘&&’
within ‘||’ [-Werror=parentheses]
8061 | if (e->expr_type == EXPR_VARIABLE &&
e->symtree->n.sym->attr.optional
8062 | && (((e->rank != 0 && elemental_proc)
...
8070 | || fsym->as->type ==
AS_DEFERRED)))))
8071 | || se->ignore_optional)
8072 | || e->expr_type == EXPR_CONDITIONAL)
* * *
Note that even without cond-expr, the current trunk still has bugs
related to dummy value/reference, dating back to gfortran 14:
https://godbolt.org/z/3aGM6enjv. I will work on fixing this.
Thanks for looking into that issue – if needed, we can bisect, but just
fixing it might be easier.
* * *
By the way, could you please update the status of
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122342? I believe it is
now resolved.
I concur. BTW: you could try to get a Bugzilla account at
https://gcc.gnu.org/bugzilla/createaccount.cgi using the
<login>@gcc.gnu.org mail address.
Tobias