[Patch, Fortran + Testsuite] Fix coarray handling in modules

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

[Patch, Fortran + Testsuite] Fix coarray handling in modules

Tobias Burnus
As found by Alessandro: Statically allocated coarrays in declared in the
specification part of a module didn't work (link-time failure). The
reason was that the associated coarray token was wrongly mangled and not
a public tree.

I additionally propagated the dg-compile-aux-modules support to caf.dg
(currently unused).

That's fixed by the attached patch.
OK for the trunk?

Tobias

caf.diff (6K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules

FX Coudert
> As found by Alessandro: Statically allocated coarrays in declared in the specification part of a module didn't work (link-time failure). The reason was that the associated coarray token was wrongly mangled and not a public tree.
>
> I additionally propagated the dg-compile-aux-modules support to caf.dg (currently unused).

OK. It’s probably best to commit the two parts as separate commits, though.

FX
Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules

Mike Stump-3
In reply to this post by Tobias Burnus
On Jan 2, 2015, at 3:28 AM, Tobias Burnus <[hidden email]> wrote:
> As found by Alessandro: Statically allocated coarrays in declared in the specification part of a module didn't work (link-time failure). The reason was that the associated coarray token was wrongly mangled and not a public tree.
>
> I additionally propagated the dg-compile-aux-modules support to caf.dg (currently unused).

> OK for the trunk?

So, I usually let the fortran people review and comment on things like this.  They do a great job and seems pretty straight forward.

I looked at it and didn’t see anything that was objectionable to me.  Seems usual and customary.
Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules

Dominique d'Humières-2
In reply to this post by Tobias Burnus
Happy New Year to all.

The test gfortran.dg/coarray/codimension_2.f90 fails on x86_64-apple-darwin14 with -m32
(see https://gcc.gnu.org/ml/gcc-testresults/2015-01/msg00185.html). The error is

gfc /opt/gcc/work/gcc/testsuite/gfortran.dg/coarray/codimension_2.f90 /opt/gcc/work/gcc/testsuite/gfortran.dg/coarray/codimension_2a.f90 -fcoarray=lib -O2 -lcaf_single -m32
/var/folders/8q/sh_swgz96r7f5vnn08f7fxr00000gn/T//ccPcznrm.s:18:non-relocatable subtraction expression, "__F.caf_token__global_coarrays_MOD_b" minus "L1$pb"
/var/folders/8q/sh_swgz96r7f5vnn08f7fxr00000gn/T//ccPcznrm.s:18:symbol: "__F.caf_token__global_coarrays_MOD_b" can't be undefined in a subtraction expression

Dominique
Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules

Tobias Burnus
Dominique Dhumieres wrote:
> The test gfortran.dg/coarray/codimension_2.f90 fails on x86_64-apple-darwin14 with -m32
> (see https://gcc.gnu.org/ml/gcc-testresults/2015-01/msg00185.html). The error is
> [...]

Yes, there seems to be something wrong. The module has:

                  U _F.caf_token__global_coarrays_MOD_b
0000000000000000 B __global_coarrays_MOD_b

where the token should not be "U"ndefined but "B". On the other hand,
the USEr of the module has:

0000000000000000 B _F.caf_token__global_coarrays_MOD_b
                  U __global_coarrays_MOD_b

but it should have a "U" – with two users one even would get: "multiple
definition of `_F.caf_token__global_coarrays_MOD_b'".


Untested patch attached.

Tobias

foo.diff (1022 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules

Dominique d'Humières-2
From a quick test, with the patch I still see the error with -m32

/var/folders/8q/sh_swgz96r7f5vnn08f7fxr00000gn/T//cc8Yz3Jr.s:18:non-relocatable subtraction expression, "__F.caf_token__global_coarrays_MOD_b" minus "L1$pb"
/var/folders/8q/sh_swgz96r7f5vnn08f7fxr00000gn/T//cc8Yz3Jr.s:18:symbol: "__F.caf_token__global_coarrays_MOD_b" can't be undefined in a subtraction expression

but also the test fails at link time with -m64

[Book15] f90/bug% gfc /opt/gcc/work/gcc/testsuite/gfortran.dg/coarray/codimension_2.f90 /opt/gcc/work/gcc/testsuite/gfortran.dg/coarray/codimension_2a.f90 -fcoarray=lib -O2 -lcaf_single
Undefined symbols for architecture x86_64:
  "__F.caf_token__global_coarrays_MOD_b", referenced from:
      __caf_init.0 in ccljvUii.o
      _MAIN__ in ccmqTPwK.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

Dominique

> Le 3 janv. 2015 à 21:50, Tobias Burnus <[hidden email]> a écrit :
>
> Dominique Dhumieres wrote:
>> The test gfortran.dg/coarray/codimension_2.f90 fails on x86_64-apple-darwin14 with -m32
>> (see https://gcc.gnu.org/ml/gcc-testresults/2015-01/msg00185.html). The error is
>> [...]
>
> Yes, there seems to be something wrong. The module has:
>
>                 U _F.caf_token__global_coarrays_MOD_b
> 0000000000000000 B __global_coarrays_MOD_b
>
> where the token should not be "U"ndefined but "B". On the other hand, the USEr of the module has:
>
> 0000000000000000 B _F.caf_token__global_coarrays_MOD_b
>                 U __global_coarrays_MOD_b
>
> but it should have a "U" – with two users one even would get: "multiple definition of `_F.caf_token__global_coarrays_MOD_b'".
>
>
> Untested patch attached.
>
> Tobias
> <foo.diff>

Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules

Tobias Burnus
Dominique d'Humières wrote:
>  From a quick test, with the patch I still see the error with -m32

It helps if one actually adds the decl. The following (still untested)
should help. I also marked the token as nonaliasing (it really should!)
and added for proc pointers the tree-public optimization.

Tobias

foo.diff (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules

Dominique d'Humières-2
Compilation with the new patch fails with

../../work/gcc/fortran/trans-decl.c: In function 'void gfc_build_qualified_array(tree, gfc_symbol*)':
../../work/gcc/fortran/trans-decl.c:855:25: error: 'cur_module' was not declared in this scope
    gfc_module_add_decl (cur_module, token);

Dominique

> Le 3 janv. 2015 à 23:30, Tobias Burnus <[hidden email]> a écrit :
>
> Dominique d'Humières wrote:
>> From a quick test, with the patch I still see the error with -m32
>
> It helps if one actually adds the decl. The following (still untested) should help. I also marked the token as nonaliasing (it really should!) and added for proc pointers the tree-public optimization.
>
> Tobias
> <foo.diff>

Reply | Threaded
Open this post in threaded view
|

[Patch, Fortran] Fix previous patch (was: Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules)

Tobias Burnus
Attached is a regtested patch, which fixes the issue. Additionally, the
variable visibility (TREE_PUBLIC) is now depending on the private
attribute (copied from the module var generation) and I mark the tree as
DECL_NONALIASED. The former I also did for proc-pointers, which is an
unrelated patch.

Build and regtested on x86-64-gnu-linux.
OK for the trunk?


Dominique d'Humières wrote:
> Compilation with the new patch fails with
> ../../work/gcc/fortran/trans-decl.c: In function 'void gfc_build_qualified_array(tree, gfc_symbol*)':
> ../../work/gcc/fortran/trans-decl.c:855:25: error: 'cur_module' was not declared in this scope
>      gfc_module_add_decl (cur_module, token);

Which shows that w/o compiling and testing, one (usually) cannot write
patches. Solution is to move the declaration up in the file. However, it
turned out that that's not sufficient: the pushdecl is required.

Tobias

>> Le 3 janv. 2015 à 23:30, Tobias Burnus <[hidden email]> a écrit :
>>
>> Dominique d'Humières wrote:
>>>  From a quick test, with the patch I still see the error with -m32
>> It helps if one actually adds the decl. The following (still untested) should help. I also marked the token as nonaliasing (it really should!) and added for proc pointers the tree-public optimization.
>>
>> Tobias
>> <foo.diff>
>


caf.diff (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran] Fix previous patch (was: Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules)

Dominique d'Humières-2
Dear Tobias,

I have done a clean bootstrap with your patch and run

make -k check-gfortran RUNTESTFLAGS="caf.exp --target_board=unix'{-m32,-m64}’"

without regression.

Thanks,

Dominique

> Le 4 janv. 2015 à 19:57, Tobias Burnus <[hidden email]> a écrit :
>
> Attached is a regtested patch, which fixes the issue. Additionally, the variable visibility (TREE_PUBLIC) is now depending on the private attribute (copied from the module var generation) and I mark the tree as DECL_NONALIASED. The former I also did for proc-pointers, which is an unrelated patch.
>
> Build and regtested on x86-64-gnu-linux.
> OK for the trunk?
>

Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran] Fix previous patch

Tobias Burnus
In reply to this post by Tobias Burnus
Early PING: https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00090.html

Tobias Burnus wrote:

> Attached is a regtested patch, which fixes the issue. Additionally,
> the variable visibility (TREE_PUBLIC) is now depending on the private
> attribute (copied from the module var generation) and I mark the tree
> as DECL_NONALIASED. The former I also did for proc-pointers, which is
> an unrelated patch.
>
> Build and regtested on x86-64-gnu-linux.
> OK for the trunk?
>
>
> Dominique d'Humières wrote:
>> Compilation with the new patch fails with
>> ../../work/gcc/fortran/trans-decl.c: In function 'void
>> gfc_build_qualified_array(tree, gfc_symbol*)':
>> ../../work/gcc/fortran/trans-decl.c:855:25: error: 'cur_module' was
>> not declared in this scope
>>      gfc_module_add_decl (cur_module, token);
>
> Which shows that w/o compiling and testing, one (usually) cannot write
> patches. Solution is to move the declaration up in the file. However,
> it turned out that that's not sufficient: the pushdecl is required.
>
> Tobias
>
>>> Le 3 janv. 2015 à 23:30, Tobias Burnus <[hidden email]> a écrit :
>>>
>>> Dominique d'Humières wrote:
>>>>  From a quick test, with the patch I still see the error with -m32
>>> It helps if one actually adds the decl. The following (still
>>> untested) should help. I also marked the token as nonaliasing (it
>>> really should!) and added for proc pointers the tree-public
>>> optimization.
>>>
>>> Tobias
>>> <foo.diff>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran] Fix previous patch

Tobias Burnus
Paul Richard Thomas wrote:
> It looks to me as if you had to do a fair amount of detective work
> there! The patch is OK for trunk.

Thanks for the review - which didn't make it to mailing list for some
reasons (text+HTML email?).

Committed as Rev. 219354

Tobias

> Thanks for your efforts
>
> Paul
>
> On 7 January 2015 at 22:37, Tobias Burnus <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Early PING: https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00090.html
>
>     Tobias Burnus wrote:
>
>         Attached is a regtested patch, which fixes the issue.
>         Additionally, the variable visibility (TREE_PUBLIC) is now
>         depending on the private attribute (copied from the module var
>         generation) and I mark the tree as DECL_NONALIASED. The former
>         I also did for proc-pointers, which is an unrelated patch.
>
>         Build and regtested on x86-64-gnu-linux.
>         OK for the trunk?
>
>
>         Dominique d'Humières wrote:
>
>             Compilation with the new patch fails with
>             ../../work/gcc/fortran/trans-decl.c: In function 'void
>             gfc_build_qualified_array(tree, gfc_symbol*)':
>             ../../work/gcc/fortran/trans-decl.c:855:25: error:
>             'cur_module' was not declared in this scope
>                  gfc_module_add_decl (cur_module, token);
>
>
>         Which shows that w/o compiling and testing, one (usually)
>         cannot write patches. Solution is to move the declaration up
>         in the file. However, it turned out that that's not
>         sufficient: the pushdecl is required.
>
>         Tobias
>
>                 Le 3 janv. 2015 à 23:30, Tobias Burnus
>                 <[hidden email] <mailto:[hidden email]>> a écrit :
>
>                 Dominique d'Humières wrote:
>
>                      From a quick test, with the patch I still see the
>                     error with -m32
>
>                 It helps if one actually adds the decl. The following
>                 (still untested) should help. I also marked the token
>                 as nonaliasing (it really should!) and added for proc
>                 pointers the tree-public optimization.
>
>                 Tobias
>                 <foo.diff>
>
>
>
>
>
>
>
> --
> Outside of a dog, a book is a man's best friend. Inside of a dog it's
> too dark to read.
>
> Groucho Marx

Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules

Thomas Schwinge-8
In reply to this post by Tobias Burnus
Hi!

On Fri, 02 Jan 2015 12:28:10 +0100, Tobias Burnus <[hidden email]> wrote:
> [...]
>
> I additionally propagated the dg-compile-aux-modules support to caf.dg

That got committed in r219143:

> --- a/gcc/testsuite/gfortran.dg/coarray/caf.exp
> +++ b/gcc/testsuite/gfortran.dg/coarray/caf.exp
> @@ -43,6 +43,21 @@ global DG_TORTURE_OPTIONS torture_with_loops
>  torture-init
>  set-torture-options $DG_TORTURE_OPTIONS
>  
> +global gfortran_test_path
> +global gfortran_aux_module_flags
> +set gfortran_test_path $srcdir/$subdir
> +set gfortran_aux_module_flags $DEFAULT_FFLAGS
> +proc dg-compile-aux-modules { args } {
> +    global gfortran_test_path
> +    global gfortran_aux_module_flags
> +    if { [llength $args] != 2 } {
> + error "dg-set-target-env-var: needs one argument"
> + return
> +    }
> +    dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
> +    # cleanup-modules isn't intentionally invoked here.
> +}
I just noticed that this copy is missing Jakub's r215293 changes that he
had applied a few months *earlier* to the master copy of
'dg-compile-aux-modules', in 'gcc/testsuite/gfortran.dg/dg.exp', see
attached, and/or
<http://mid.mail-archive.com/20140916093700.GW17454@...>.
I can't easily test it with the affected DejaGnu version 1.4.4 (which is
still the minimum version required now), but it tests fine with DejaGnu
1.5, and seems straight-forward, so I propose I commit "as obvious" these
changes to the 'gcc/testsuite/gfortran.dg/coarray/caf.exp' copy, too?
(It's exactly these changes missing to make the two copies identical.)


The other copy, created later, in
'gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp' already
does exactly match the master copy.


And then, of course, we really should unify all 'dg-compile-aux-modules'
copies into one shared file.  (But it's not completely straight-forward,
because of the handling of 'gfortran_test_path', and
'gfortran_aux_module_flags'.)


Grüße
 Thomas



From 6278a9a2afb7d4d730c585f93d2bd435ed63f963 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 16 Sep 2014 09:35:00 +0000
Subject: [PATCH] PR fortran/56408 * gfortran.dg/dg.exp
 (dg-compile-aux-modules): Workaround missing nexted dg-test call support in
 dejaGNU 1.4.4.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215293 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/testsuite/ChangeLog          |  6 ++++++
 gcc/testsuite/gfortran.dg/dg.exp | 12 +++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fdb706a8d8dd..4d3c96beee2c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2014-09-16  Jakub Jelinek  <[hidden email]>
+
+ PR fortran/56408
+ * gfortran.dg/dg.exp (dg-compile-aux-modules): Workaround
+ missing nexted dg-test call support in dejaGNU 1.4.4.
+
 2014-09-15  Andi Kleen  <[hidden email]>
 
  * gcc.dg/pg-override.c: New test.
diff --git a/gcc/testsuite/gfortran.dg/dg.exp b/gcc/testsuite/gfortran.dg/dg.exp
index e8c39231db00..6bd69e6c88d0 100644
--- a/gcc/testsuite/gfortran.dg/dg.exp
+++ b/gcc/testsuite/gfortran.dg/dg.exp
@@ -39,8 +39,18 @@ proc dg-compile-aux-modules { args } {
  error "dg-set-target-env-var: needs one argument"
  return
     }
+
+    set level [info level]
+    if { [info procs dg-save-unknown] != [list] } {
+ rename dg-save-unknown dg-save-unknown-level-$level
+    }
+
     dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
-    # cleanup-modules isn't intentionally invoked here.
+    # cleanup-modules is intentionally not invoked here.
+
+    if { [info procs dg-save-unknown-level-$level] != [list] } {
+ rename dg-save-unknown-level-$level dg-save-unknown
+    }
 }
 
 # Main loop.
--
2.17.1


signature.asc (671 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Patch, Fortran + Testsuite] Fix coarray handling in modules

Thomas Schwinge-8
Hi!

On Thu, 28 Feb 2019 18:02:32 +0100, Thomas Schwinge <[hidden email]> wrote:

> On Fri, 02 Jan 2015 12:28:10 +0100, Tobias Burnus <[hidden email]> wrote:
> > [...]
> >
> > I additionally propagated the dg-compile-aux-modules support to caf.dg
>
> That got committed in r219143:
>
> > --- a/gcc/testsuite/gfortran.dg/coarray/caf.exp
> > +++ b/gcc/testsuite/gfortran.dg/coarray/caf.exp
> > @@ -43,6 +43,21 @@ global DG_TORTURE_OPTIONS torture_with_loops
> >  torture-init
> >  set-torture-options $DG_TORTURE_OPTIONS
> >  
> > +global gfortran_test_path
> > +global gfortran_aux_module_flags
> > +set gfortran_test_path $srcdir/$subdir
> > +set gfortran_aux_module_flags $DEFAULT_FFLAGS
> > +proc dg-compile-aux-modules { args } {
> > +    global gfortran_test_path
> > +    global gfortran_aux_module_flags
> > +    if { [llength $args] != 2 } {
> > + error "dg-set-target-env-var: needs one argument"
> > + return
> > +    }
> > +    dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
> > +    # cleanup-modules isn't intentionally invoked here.
> > +}
>
> I just noticed that this copy is missing Jakub's r215293 changes that he
> had applied a few months *earlier* to the master copy of
> 'dg-compile-aux-modules', in 'gcc/testsuite/gfortran.dg/dg.exp', see
> attached, and/or
> <http://mid.mail-archive.com/20140916093700.GW17454@...>.
> I can't easily test it with the affected DejaGnu version 1.4.4 (which is
> still the minimum version required now), but it tests fine with DejaGnu
> 1.5, and seems straight-forward, so I propose I commit "as obvious" these
> changes to the 'gcc/testsuite/gfortran.dg/coarray/caf.exp' copy, too?
> (It's exactly these changes missing to make the two copies identical.)
For testing GCC with a custom DejaGnu installation, you apparently just
have to put its installation directory into 'PATH'.

Testing with DejaGnu 1.4.4 (specifically, the 'dejagnu-1.4.4-release' Git
tag), one runs into:

    cannot trap SIGSEGV
        while executing
    "trap "send_error \"got a \[trap -name\] signal, $str \\n\"; log_and_exit;" $signal"
        ("foreach" body line 4)
        invoked from within
    "foreach sig "{SIGTERM {terminated}}  {SIGINT  {interrupted by user}}  {SIGQUIT {interrupted by user}}  {SIGSEGV {segmentation violation}}" {
            set sign..."
        invoked from within
    "if ![exp_debug] {
        foreach sig "{SIGTERM {terminated}} \
                 {SIGINT  {interrupted by user}} \
                 {SIGQUIT {interrupted by user}..."
        (file "[...]/share/dejagnu/runtest.exp" line 1503)

This is an incompatibility with "recent" versions of 'expect'; see
<https://bugs.debian.org/301557>, for example, and this is resolved by
DejaGnu commit 504776814fa56295c4cff40d78a1be446f851a7c.


With that resolved, no problems found -- that is, confirming that 15
years old DejaGnu version 1.4.4 still works fine for GCC testing (in my
configuration).


I convinced myself that my proposed changes are the right thing to do,
and committed "[testsuite, Fortran] Apply DejaGnu 1.4.4 work-around also
to 'gfortran.dg/coarray/caf.exp:dg-compile-aux-modules'" to trunk in
r269848, to gcc-8-branch in r269849, and to gcc-7-branch in r269850, see
attached.


> The other copy, created later, in
> 'gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp' already
> does exactly match the master copy.
>
>
> And then, of course, we really should unify all 'dg-compile-aux-modules'
> copies into one shared file.  (But it's not completely straight-forward,
> because of the handling of 'gfortran_test_path', and
> 'gfortran_aux_module_flags'.)


Grüße
 Thomas



From e78648a61e4e5fc60d400c2d2c89254aee4c0715 Mon Sep 17 00:00:00 2001
From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 21 Mar 2019 19:16:29 +0000
Subject: [PATCH] [testsuite, Fortran] Apply DejaGnu 1.4.4 work-around also to
 'gfortran.dg/coarray/caf.exp:dg-compile-aux-modules'

See trunk r215293.  This unifies all 'dg-compile-aux-modules' instances.

        gcc/testsuite/
        PR fortran/56408
        * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround
        missing nexted dg-test call support in dejaGNU 1.4.4.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269848 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/testsuite/ChangeLog                   |  4 ++++
 gcc/testsuite/gfortran.dg/coarray/caf.exp | 12 +++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 914ba7237033..40446965212e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
 2019-03-21  Thomas Schwinge  <[hidden email]>
 
+ PR fortran/56408
+ * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround
+ missing nexted dg-test call support in dejaGNU 1.4.4.
+
  PR fortran/29383
  * gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in
  other '*.exp' files.
diff --git a/gcc/testsuite/gfortran.dg/coarray/caf.exp b/gcc/testsuite/gfortran.dg/coarray/caf.exp
index 4c6dba1dc22b..e3204c34779b 100644
--- a/gcc/testsuite/gfortran.dg/coarray/caf.exp
+++ b/gcc/testsuite/gfortran.dg/coarray/caf.exp
@@ -54,8 +54,18 @@ proc dg-compile-aux-modules { args } {
  error "dg-set-target-env-var: needs one argument"
  return
     }
+
+    set level [info level]
+    if { [info procs dg-save-unknown] != [list] } {
+ rename dg-save-unknown dg-save-unknown-level-$level
+    }
+
     dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
-    # cleanup-modules isn't intentionally invoked here.
+    # cleanup-modules is intentionally not invoked here.
+
+    if { [info procs dg-save-unknown-level-$level] != [list] } {
+ rename dg-save-unknown-level-$level dg-save-unknown
+    }
 }
 
 # Add -latomic only where supported.  Assume built-in support elsewhere.
--
2.17.1


From f0c23d90fc45bbfc1cf3cab52ddd3631b3a9be13 Mon Sep 17 00:00:00 2001
From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 21 Mar 2019 19:16:54 +0000
Subject: [PATCH] [testsuite, Fortran] Apply DejaGnu 1.4.4 work-around also to
 'gfortran.dg/coarray/caf.exp:dg-compile-aux-modules'

See trunk r215293.  This unifies all 'dg-compile-aux-modules' instances.

        gcc/testsuite/
        PR fortran/56408
        * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround
        missing nexted dg-test call support in dejaGNU 1.4.4.

trunk r269848

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@269849 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/testsuite/ChangeLog                   |  4 ++++
 gcc/testsuite/gfortran.dg/coarray/caf.exp | 12 +++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9aa82da9a4aa..38982cf82f4b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
 2019-03-21  Thomas Schwinge  <[hidden email]>
 
+ PR fortran/56408
+ * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround
+ missing nexted dg-test call support in dejaGNU 1.4.4.
+
  PR fortran/29383
  * gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in
  other '*.exp' files.
diff --git a/gcc/testsuite/gfortran.dg/coarray/caf.exp b/gcc/testsuite/gfortran.dg/coarray/caf.exp
index d1a7a56970fc..f7f57f4477f1 100644
--- a/gcc/testsuite/gfortran.dg/coarray/caf.exp
+++ b/gcc/testsuite/gfortran.dg/coarray/caf.exp
@@ -54,8 +54,18 @@ proc dg-compile-aux-modules { args } {
  error "dg-set-target-env-var: needs one argument"
  return
     }
+
+    set level [info level]
+    if { [info procs dg-save-unknown] != [list] } {
+ rename dg-save-unknown dg-save-unknown-level-$level
+    }
+
     dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
-    # cleanup-modules isn't intentionally invoked here.
+    # cleanup-modules is intentionally not invoked here.
+
+    if { [info procs dg-save-unknown-level-$level] != [list] } {
+ rename dg-save-unknown-level-$level dg-save-unknown
+    }
 }
 
 # Add -latomic only where supported.  Assume built-in support elsewhere.
--
2.17.1


From a6d1bc4242db77bd89a521e2a5260e6318c9c6ec Mon Sep 17 00:00:00 2001
From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 21 Mar 2019 19:17:12 +0000
Subject: [PATCH] [testsuite, Fortran] Apply DejaGnu 1.4.4 work-around also to
 'gfortran.dg/coarray/caf.exp:dg-compile-aux-modules'

See trunk r215293.  This unifies all 'dg-compile-aux-modules' instances.

        gcc/testsuite/
        PR fortran/56408
        * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround
        missing nexted dg-test call support in dejaGNU 1.4.4.

trunk r269848

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@269850 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/testsuite/ChangeLog                   |  4 ++++
 gcc/testsuite/gfortran.dg/coarray/caf.exp | 12 +++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ca849083d7f4..5e6c1971413f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
 2019-03-21  Thomas Schwinge  <[hidden email]>
 
+ PR fortran/56408
+ * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround
+ missing nexted dg-test call support in dejaGNU 1.4.4.
+
  PR fortran/29383
  * gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in
  other '*.exp' files.
diff --git a/gcc/testsuite/gfortran.dg/coarray/caf.exp b/gcc/testsuite/gfortran.dg/coarray/caf.exp
index edac7dc981f0..be5cf27935e6 100644
--- a/gcc/testsuite/gfortran.dg/coarray/caf.exp
+++ b/gcc/testsuite/gfortran.dg/coarray/caf.exp
@@ -54,8 +54,18 @@ proc dg-compile-aux-modules { args } {
  error "dg-set-target-env-var: needs one argument"
  return
     }
+
+    set level [info level]
+    if { [info procs dg-save-unknown] != [list] } {
+ rename dg-save-unknown dg-save-unknown-level-$level
+    }
+
     dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
-    # cleanup-modules isn't intentionally invoked here.
+    # cleanup-modules is intentionally not invoked here.
+
+    if { [info procs dg-save-unknown-level-$level] != [list] } {
+ rename dg-save-unknown-level-$level dg-save-unknown
+    }
 }
 
 # Add -latomic only where supported.  Assume built-in support elsewhere.
--
2.17.1