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.

Reply via email to