https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95706
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2020-07-02
Ever confirmed|0 |1
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
The interesting thing is that for a x86_64 -> aarch64-linux cross the error
_also_ appears on line 5:
> ./f951 -quiet /home/rguenther/src/gcc3/gcc/testsuite/gfortran.dg/pr95690.f90
> -o pr95690.s -fno-diagnostics-show-caret
/home/rguenther/src/gcc3/gcc/testsuite/gfortran.dg/pr95690.f90:5:0: Error:
initializer for floating value is not a floating constant
so - what line number does the test report for a aarch64 -> x86_64-linux cross?
Note the error is emitted via output_constant via
4980 case REAL_TYPE:
4981 if (TREE_CODE (exp) != REAL_CST)
4982 error ("initializer for floating value is not a floating
constant");
so it depends on input_location (ick). Now the question is where on earth
input_location has a dependence on the host ...
On x86_64 the respective location is set via
New value = 2147483652
expand_gimple_stmt (stmt=<gimple_call 0x7ffff69dd260>)
at /home/rguenther/src/gcc3/gcc/cfgexpand.c:3847
3847 expand_gimple_stmt_1 (stmt);
(gdb) l
3842 it would be better if the diagnostic routines used the source
location
3843 embedded in the tree nodes rather than globals. */
3844 if (gimple_has_location (stmt))
3845 input_location = gimple_location (stmt);
3846
3847 expand_gimple_stmt_1 (stmt);
(gdb) p debug_gimple_stmt (stmt)
# .MEM_7 = VDEF <.MEM_6>
_gfortran_transfer_real_write (&dt_parm.0, &C.3905, 4);
which is where we expand C.3905 from.