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

--- Comment #3 from dave.anglin at bell dot net ---
On 2018-03-13 10:57 AM, dominiq at lps dot ens.fr wrote:
> WORKSFORME on x86_64-apple-darwin17. A target issue?
I'm not sure how this test is supposed to work:

Breakpoint 3, 0x00010498 in main (argc=<optimized out>, argv=<optimized 
out>)
     at 
/home/dave/gnu/gcc/gcc/gcc/testsuite/gfortran.dg/coarray/event_3.f08:10
10        call exchange
(gdb) disass
Dump of assembler code for function main:
    0x00010488 <+0>:     stw rp,-14(sp)
    0x0001048c <+4>:     ldo 40(sp),sp
    0x00010490 <+8>:     b,l 0x10448,rp
    0x00010494 <+12>:    nop
=> 0x00010498 <+16>:    ldi 7,r26
    0x0001049c <+20>:    ldil L%10800,r25
    0x000104a0 <+24>:    b,l 0x10458,rp
    0x000104a4 <+28>:    ldo 2ec(r25),r25
    0x000104a8 <+32>:    ldw -38(sp),ret0
    0x000104ac <+36>:    cmpib,<> 0,ret0,0x104c0 <main+56>
    0x000104b0 <+40>:    ldi 0,ret0
    0x000104b4 <+44>:    ldw -54(sp),rp
    0x000104b8 <+48>:    bv r0(rp)
    0x000104bc <+52>:    ldo -40(sp),sp
    0x000104c0 <+56>:    ldi 0,r25
    0x000104c4 <+60>:    b,l 0x10468,rp
    0x000104c8 <+64>:    ldi 1,r26
    0x000104cc <+68>:    nop
End of assembler dump.
(gdb) x/x $sp - 0x38
0xf8d02308:     0x00130ee8
(gdb) c
Continuing.

Breakpoint 2, 0x000104ac in exchange ()
     at 
/home/dave/gnu/gcc/gcc/gcc/testsuite/gfortran.dg/coarray/event_3.f08:17
17            if (cnt /= 2) error stop 1
(gdb) x/x $sp - 0x38
0xf8d02308:     0x00130ee8
(gdb) p/x $ret0
$1 = 0x130ee8

cnt is a location on the stack but the address of options.0.923 is 
passed in %r25 to _gfortran_set_options.
It looks as if the "call event_query(x, cnt)" line in the test has bee 
optimized away.

Reply via email to