Hi Dominique and Rainer,
First of all thanks for testing!
Hi Dominique, Nicolas,
I have applied your patch on top of revision r261130 on
x86_64-apple-darwin17 (SSD with APFS file system).
I've tried it on i386-pc-solaris2.11 and sparc-sun-solaris2.11.
I also see two regressions
FAIL: gfortran.dg/f2003_inquire_1.f03 -O1 execution test
only with -m32 and -O1 (STOP 5), and
It fails for me at -O[0s] (i386) resp. -O[01] (sparc), 64-bit only.
This seems to be a bug in the test suite. It tries to find out whether
an id is pending that is never initialized.
FAIL: gfortran.dg/f2003_io_1.f03 -O*
with both -m32 and -m64 (STOP 1).
Same here: FAILs at -O[0-3s] for both 32 and 64-bit.
And another bug in the test suite. This time the wait after the read is
missing.
The is also typos for the added tests
s/libgfomp/libgomp/
Will fix.
Why do the tests start at asynchronous_6.f90?
Because they were originally intended for the gfortran test suite, but I
couldn't run it there because of libpthread. I will change the numbering
scheme.
... and asynchronous_9.f90 is missing from the ChangeLog, which
..._7.f90 is missing from the sequence.
asynchronous_7.f90 is a test for an error, but dg-shouldfail is not
working in libgomp. Dominique is looking into this.
Besides, I see
+FAIL: libgomp.fortran/asynchronous_6.f90 -O1 execution test
STOP 2
32-bit i386 only.
I have trouble replicating this bug even with -m32. Could you get some
more debugging info for the test on your machine?
+FAIL: libgomp.fortran/asynchronous_9.f90 -O execution test
32 and 64-bit i386 and sparc, no error message.
This file wasn't supposed to be a test case, that's why it is not in the
ChangeLog. It is a benchmark program, so it takes some time. Maybe a
time out? Could you maybe try running it outside the test suite?
Rainer
Dominique wrote:
> "Treat asynchronous variables the same as volatile, for now." could
probably simplified as
> "Treat asynchronous variables as volatile, for now."
Will do.
>
> I also wonder if
>
> + wrap_scalar_transfer (dtp, BT_INTEGER, p, kind, kind, 1);
>
> is correct without a cast to size_t for the last two arguments (and
for the last argument in other instances). Note that I am C challenged,
so forgive the question if it is stupid.
It atomatically casts based on the type information in the prototype in
io.h.
>
> Thanks for the nice work.
With pleasure! :)
>
> Dominique