https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69455

            Bug ID: 69455
           Summary: [5/6 Regression] Linking error(s) when using intrinsic
                    modules in two BLOCK
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dominiq at lps dot ens.fr
  Target Milestone: ---

When linking the following code

block
  use, intrinsic :: iso_c_binding, only: wp => c_float, ik => c_int
  print *, ik, wp
end block

block
  use, intrinsic :: iso_c_binding, only: wp => c_double, ik => c_long
  print *, ik, wp
end block

end

with gfortran 5.3.0  or trunk (6.0), I get the following error on
x86_64-apple-darwin14

/var/folders/8q/sh_swgz96r7f5vnn08f7fxr00000gn/T//ccR0DlmQ.s:95:29: error:
invalid symbol redefinition
        .zerofill __DATA,__pu_bss2,_____iso_c_binding_MOD_wp,4,2
                                   ^
/var/folders/8q/sh_swgz96r7f5vnn08f7fxr00000gn/T//ccR0DlmQ.s:97:29: error:
invalid symbol redefinition
        .zerofill __DATA,__pu_bss2,_____iso_c_binding_MOD_ik,4,2
                                   ^

The change occurred on trunk between revisions r229482 (2015-10-28, OK) and
r229608 (2015-10-30, errors), possibly r229540 (pr67885).

Comparing the assembly between the two revisions I see

-       .globl _____iso_c_binding_MOD_wp
-       .zerofill __DATA,__pu_bss2,_____iso_c_binding_MOD_wp,4,2
-       .globl _____iso_c_binding_MOD_ik
-       .zerofill __DATA,__pu_bss2,_____iso_c_binding_MOD_ik,4,2
-       .globl _____iso_c_binding_MOD_wp
-       .zerofill __DATA,__pu_bss2,_____iso_c_binding_MOD_wp,4,2
-       .globl _____iso_c_binding_MOD_ik
-       .zerofill __DATA,__pu_bss2,_____iso_c_binding_MOD_ik,4,2

where the '-' were for r229608.

Reply via email to