diff mbox series

testsuite/lib/gfortran.exp: Add -I for ISO*.h [PR101305, PR101660] (was: Re: [Patch] gfortran.dg/dg.exp: Add libgfortran as -I flag for ISO*.h [PR101305] (was: [PATCH 3/3] [PR libfortran/101305] Fix ISO_Fortran_binding.h paths in gfortran testsuite))

Message ID e4ccd6fc-9aa5-9b2e-9aad-4918ca06e33e@codesourcery.com
State New
Headers show
Series testsuite/lib/gfortran.exp: Add -I for ISO*.h [PR101305, PR101660] (was: Re: [Patch] gfortran.dg/dg.exp: Add libgfortran as -I flag for ISO*.h [PR101305] (was: [PATCH 3/3] [PR libfortran/101305] Fix ISO_Fortran_binding.h paths in gfortran testsuite)) | expand

Commit Message

Tobias Burnus July 29, 2021, 9:51 a.m. UTC
On 29.07.21 09:09, Jakub Jelinek wrote:
> On Thu, Jul 29, 2021 at 12:56:32AM +0200, Jakub Jelinek wrote:
>> On Wed, Jul 28, 2021 at 01:22:53PM +0200, Tobias Burnus wrote:
>>> gfortran.dg/dg.exp: Add libgfortran as -I flag for ISO*.h [PR101305]
>> Wouldn't it be better to do that in gcc/testsuite/lib/gfortran.exp
>> to GFORTRAN_UNDER_TEST there next to
>> -B$specpath/libgfortran/ ?

I guess so – and that's what I did. However, I had to ensure that it
gets reset otherwise it picks up the wrong header in multilib runs; this
also affects the -B$specpath/libgfortran bit, but I think that makes sense.

> Though, I guess we need that mostly for the C FE, so perhaps it needs to go
> at the start of additional_flags=, whether TEST_ALWAYS_FLAGS is empty or
> not.

For the main testsuite (gcc/testsuite/*fortran*/), I believe the patch
above is sufficient as everything runs through GFORTRAN_UNDER_TEST.

I am also inclined not to add flags to TEST_ALWAYS_FLAGS which then
might get applied to other/pure C/C++ tests.

Regarding libgomp: that one uses xgcc for the compilation. I don't
really see a need to use the Fortran array descriptor from a C program
in libgomp's testsuite. Thus, I am inclined to ignore libgomp.
Otherwise, as libgomp does not gfortran_init and handles libraries
separately, I think the code needs to be put into
libgomp.*fortran/fortran.exp.

Thoughts? Okay?

Tobias

-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
diff mbox series

Patch

testsuite/lib/gfortran.exp: Add -I for ISO*.h [PR101305, PR101660]

This patch adds -I$specdir/libgfortran to GFORTRAN_UNDER_TEST, when
set by proc gfortran_init. As the $specdir depends on the multilib
setting, it has to be re-set for a different multilib; hence, we track
whether a previous call to gfortran_init set that var or whether it
was set differently.

gcc/testsuite/
	PR libfortran/101305
	PR fortran/101660

	* lib/gfortran.exp (gfortran_init): Add -I $specdir/libgfortran to
	GFORTRAN_UNDER_TEST; update it when set by previous gfortran_init call.
	* gfortran.dg/ISO_Fortran_binding_1.c: Use <...> not "..." for
	ISO_Fortran_binding.h's #include.
	* gfortran.dg/ISO_Fortran_binding_10.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_11.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_12.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_15.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_16.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_17.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_18.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_3.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_5.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_6.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_7.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_8.c: Likewise.
	* gfortran.dg/ISO_Fortran_binding_9.c: Likewise.
	* gfortran.dg/PR94327.c: Likewise.
	* gfortran.dg/PR94331.c: Likewise.
	* gfortran.dg/bind_c_array_params_3_aux.c: Likewise.
	* gfortran.dg/iso_fortran_binding_uint8_array_driver.c: Likewise.
	* gfortran.dg/pr93524.c: Likewise.

diff --git a/gcc/testsuite/lib/gfortran.exp b/gcc/testsuite/lib/gfortran.exp
index 1e7da1110bc..cae6738b4b8 100644
--- a/gcc/testsuite/lib/gfortran.exp
+++ b/gcc/testsuite/lib/gfortran.exp
@@ -151,6 +151,7 @@  proc gfortran_init { args } {
     global gcc_warning_prefix
     global gcc_error_prefix
     global TEST_ALWAYS_FLAGS
+    global gfortran_init_set_GFORTRAN_UNDER_TEST
 
     # We set LC_ALL and LANG to C so that we get the same error messages as expected.
     setenv LC_ALL C
@@ -166,7 +167,11 @@  proc gfortran_init { args } {
       setenv LANG C.ASCII
     }
 
-    if ![info exists GFORTRAN_UNDER_TEST] then {
+    # GFORTRAN_UNDER_TEST as set below contains $specpath, which depends on
+    # the used multilib config. Thus, its value may need to be reset;
+    # that's tracked via gfortran_init_set_GFORTRAN_UNDER_TEST.
+    if { ![info exists GFORTRAN_UNDER_TEST]
+	 || [info exists gfortran_init_set_GFORTRAN_UNDER_TEST] } then {
 	if [info exists TOOL_EXECUTABLE] {
 	    set GFORTRAN_UNDER_TEST $TOOL_EXECUTABLE
 	} else {
@@ -178,7 +183,8 @@  proc gfortran_init { args } {
 		} else {
 		    set specpath [get_multilibs]
 		}
-		set GFORTRAN_UNDER_TEST [findfile $base_dir/../../gfortran "$base_dir/../../gfortran -B$base_dir/../../ -B$specpath/libgfortran/" [findfile $base_dir/gfortran "$base_dir/gfortran -B$base_dir/" [transform gfortran]]]
+		set gfortran_init_set_GFORTRAN_UNDER_TEST 1
+		set GFORTRAN_UNDER_TEST [findfile $base_dir/../../gfortran "$base_dir/../../gfortran -B$base_dir/../../ -B$specpath/libgfortran/ -I$specpath/libgfortran" [findfile $base_dir/gfortran "$base_dir/gfortran -B$base_dir/" [transform gfortran]]]
 	    }
 	}
     }
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.c
@@ -3 +3 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_10.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_10.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_10.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_10.c
@@ -5 +5 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_11.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_11.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_11.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_11.c
@@ -8 +8 @@  Contributed by Reinhold Bader  <Bader@lrz.de>#include <stdio.h> */
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_12.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_12.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_12.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_12.c
@@ -5 +5 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_15.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_15.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_15.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_15.c
@@ -7 +7 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.c
@@ -3 +3 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_17.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_17.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_17.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_17.c
@@ -5 +5 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_18.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_18.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_18.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_18.c
@@ -3 +3 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_3.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_3.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_3.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_3.c
@@ -1 +1 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_5.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_5.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_5.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_5.c
@@ -7 +7 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_6.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_6.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_6.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_6.c
@@ -7 +7 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_7.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_7.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_7.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_7.c
@@ -5 +5 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_8.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_8.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_8.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_8.c
@@ -5 +5 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_9.c b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_9.c
--- a/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_9.c
+++ b/gcc/testsuite/gfortran.dg/ISO_Fortran_binding_9.c
@@ -5 +5 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/PR94327.c b/gcc/testsuite/gfortran.dg/PR94327.c
--- a/gcc/testsuite/gfortran.dg/PR94327.c
+++ b/gcc/testsuite/gfortran.dg/PR94327.c
@@ -7 +7 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/PR94331.c b/gcc/testsuite/gfortran.dg/PR94331.c
--- a/gcc/testsuite/gfortran.dg/PR94331.c
+++ b/gcc/testsuite/gfortran.dg/PR94331.c
@@ -7 +7 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/bind_c_array_params_3_aux.c b/gcc/testsuite/gfortran.dg/bind_c_array_params_3_aux.c
--- a/gcc/testsuite/gfortran.dg/bind_c_array_params_3_aux.c
+++ b/gcc/testsuite/gfortran.dg/bind_c_array_params_3_aux.c
@@ -8 +8 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/iso_fortran_binding_uint8_array_driver.c b/gcc/testsuite/gfortran.dg/iso_fortran_binding_uint8_array_driver.c
--- a/gcc/testsuite/gfortran.dg/iso_fortran_binding_uint8_array_driver.c
+++ b/gcc/testsuite/gfortran.dg/iso_fortran_binding_uint8_array_driver.c
@@ -4 +4 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>
diff --git a/gcc/testsuite/gfortran.dg/pr93524.c b/gcc/testsuite/gfortran.dg/pr93524.c
--- a/gcc/testsuite/gfortran.dg/pr93524.c
+++ b/gcc/testsuite/gfortran.dg/pr93524.c
@@ -5 +5 @@ 
-#include "ISO_Fortran_binding.h"
+#include <ISO_Fortran_binding.h>