Am 13.11.22 um 09:51 schrieb Andreas Schwab:
This breaks aarch64:
$ /opt/gcc/gcc-20221113/Build/./gcc/xgcc -B/opt/gcc/gcc-20221113/Build/./gcc/
-B/usr/aarch64-suse-linux/bin/ -B/usr/aarch64-suse-linux/lib/ -isystem
/usr/aarch64-suse-linux/include -isystem /usr/aarch64-suse-linux/sys-include
-fchecking=1 ../../../../libgomp/testsuite/libgomp.fortran/is_device_ptr-2.f90
-mabi=lp64 -B/opt/gcc/gcc-20221113/Build/aarch64-suse-linux/./libgomp/
-B/opt/gcc/gcc-20221113/Build/aarch64-suse-linux/./libgomp/.libs
-I/opt/gcc/gcc-20221113/Build/aarch64-suse-linux/./libgomp
-I../../../../libgomp/testsuite/../../include
-I../../../../libgomp/testsuite/.. -fmessage-length=0
-fno-diagnostics-show-caret -fdiagnostics-color=never -fopenmp -O
-fdump-tree-original
-B/opt/gcc/gcc-20221113/Build/aarch64-suse-linux/./libgomp/../libgfortran/.libs
-fintrinsic-modules-path=/opt/gcc/gcc-20221113/Build/aarch64-suse-linux/./libgomp
-L/opt/gcc/gcc-20221113/Build/aarch64-suse-linux/./libgomp/.libs
-L/opt/gcc/gcc-20221113/Build/aarch64-suse-linux/./libgomp/../libgfortran/.libs
-lgfortran -foffload=-lgfortran -lm -o ./is_device_ptr-2.exe
during GIMPLE pass: omplower
../../../../libgomp/testsuite/libgomp.fortran/is_device_ptr-2.f90:66:77:
internal compiler error: in gfc_omp_check_optional_argument, at
fortran/trans-openmp.cc:137
0x8acb63 gfc_omp_check_optional_argument(tree_node*, bool)
../../gcc/fortran/trans-openmp.cc:137
0xd29fc3 lower_omp_target
../../gcc/omp-low.cc:13632
0xd314b3 lower_omp_1
../../gcc/omp-low.cc:14523
0xd314b3 lower_omp
../../gcc/omp-low.cc:14662
0xd31283 lower_omp_1
../../gcc/omp-low.cc:14436
0xd31283 lower_omp
../../gcc/omp-low.cc:14662
0xd318a3 lower_omp_1
../../gcc/omp-low.cc:14452
0xd318a3 lower_omp
../../gcc/omp-low.cc:14662
0xd377fb execute_lower_omp
../../gcc/omp-low.cc:14701
0xd377fb execute
../../gcc/omp-low.cc:14755
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
I apologize for forgetting to add the attached change, which does
the adjustment of the name of the generated internal symbol.
Can you please confirm that it fixes your issues?
Thanks,
Harald
From 872ed50812d3ca13554411e107317161777ecf5d Mon Sep 17 00:00:00 2001
From: Harald Anlauf <anl...@gmx.de>
Date: Sun, 13 Nov 2022 21:53:58 +0100
Subject: [PATCH] Fortran: fix treatment of character, value, optional dummy
arguments [PR107444]
gcc/fortran/ChangeLog:
PR fortran/107444
* trans-openmp.cc (gfc_omp_check_optional_argument): Adjust to change
of prefix of internal symbol for presence status to '.'.
---
gcc/fortran/trans-openmp.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/fortran/trans-openmp.cc b/gcc/fortran/trans-openmp.cc
index 4bfdf85cd9b..9070c03353d 100644
--- a/gcc/fortran/trans-openmp.cc
+++ b/gcc/fortran/trans-openmp.cc
@@ -123,7 +123,7 @@ gfc_omp_check_optional_argument (tree decl, bool for_present_check)
char name[GFC_MAX_SYMBOL_LEN + 2];
tree tree_name;
- name[0] = '_';
+ name[0] = '.';
strcpy (&name[1], IDENTIFIER_POINTER (DECL_NAME (decl)));
tree_name = get_identifier (name);
--
2.35.3