]> gcc.gnu.org Git - gcc.git/commitdiff
hppa: Fix bind_c_coms.f90 and bind_c_vars.f90 tests on hppa
authorJohn David Anglin <danglin@gcc.gnu.org>
Mon, 8 Jan 2024 20:27:20 +0000 (20:27 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Mon, 8 Jan 2024 20:27:20 +0000 (20:27 +0000)
Commit 6271dd98 changed the default from -fcommon to -fno-common.
This silently changed the alignment of uninitialized BSS data on
hppa where the alignment of common data must be greater or equal
to the alignment of the largest type that will fit in the block.
For example, the alignment of `double d[2];' changed from 16 to 8
on hppa64.

The hppa architecture requires strict alignment and the linker
warns about inconsistent alignment of variables.  This change broke
the gfortran.dg/bind_c_coms.f90 and gfortran.dg/bind_c_vars.f90
tests.  These tests check whether bind_c works between fortran
and C.

Adding the -fcommon option fixes the tests.  Probably, gcc and HP
C are now by default inconsistent but that's water under the bridge.

2024-01-08  John David Anglin  <danglin@gcc.gnu.org>

gcc/testsuite/ChangeLog:

PR testsuite/94253
* gfortran.dg/bind_c_coms.f90: Add -fcommon option on hppa*-*-*.
* gfortran.dg/bind_c_vars.f90: Likewise.

gcc/testsuite/gfortran.dg/bind_c_coms.f90
gcc/testsuite/gfortran.dg/bind_c_vars.f90

index 85ead9fb636a681ce9a0dff0d97c9e3becab5de4..2f9714947c7f43cb1b11051d43e35808dc9b8932 100644 (file)
@@ -3,6 +3,7 @@
 ! { dg-options "-w" }
 ! the -w option is to prevent the warning about long long ints
 module bind_c_coms
+! { dg-additional-options "-fcommon" { target hppa*-*-hpux* } }
   use, intrinsic :: iso_c_binding
   implicit none
 
index 4f4a0cfd795ba6fa0eb8fa653e3ee290a8b0d885..ede3ffd8c21b1080d0943939c3bb71f95768a842 100644 (file)
@@ -1,6 +1,7 @@
 ! { dg-do run }
 ! { dg-additional-sources bind_c_vars_driver.c }
 module bind_c_vars
+! { dg-additional-options "-fcommon" { target hppa*-*-hpux* } }
   use, intrinsic :: iso_c_binding
   implicit none
 
This page took 0.075562 seconds and 5 git commands to generate.