[gcc r14-7015] hppa: Fix bind_c_coms.f90 and bind_c_vars.f90 tests on hppa

John David Anglin danglin@gcc.gnu.org
Mon Jan 8 20:28:04 GMT 2024


https://gcc.gnu.org/g:932b8d077c23986da5279bf8b5d84875de1fb826

commit r14-7015-g932b8d077c23986da5279bf8b5d84875de1fb826
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Mon Jan 8 20:27:20 2024 +0000

    hppa: Fix bind_c_coms.f90 and bind_c_vars.f90 tests on hppa
    
    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.

Diff:
---
 gcc/testsuite/gfortran.dg/bind_c_coms.f90 | 1 +
 gcc/testsuite/gfortran.dg/bind_c_vars.f90 | 1 +
 2 files changed, 2 insertions(+)

diff --git a/gcc/testsuite/gfortran.dg/bind_c_coms.f90 b/gcc/testsuite/gfortran.dg/bind_c_coms.f90
index 85ead9fb636..2f9714947c7 100644
--- a/gcc/testsuite/gfortran.dg/bind_c_coms.f90
+++ b/gcc/testsuite/gfortran.dg/bind_c_coms.f90
@@ -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
 
diff --git a/gcc/testsuite/gfortran.dg/bind_c_vars.f90 b/gcc/testsuite/gfortran.dg/bind_c_vars.f90
index 4f4a0cfd795..ede3ffd8c21 100644
--- a/gcc/testsuite/gfortran.dg/bind_c_vars.f90
+++ b/gcc/testsuite/gfortran.dg/bind_c_vars.f90
@@ -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


More information about the Gcc-cvs mailing list