view gcc/testsuite/gfortran.dg/loc_1.f90 @ 144:8f4e72ab4e11

fix segmentation fault caused by nothing next cur_op to end
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 21:23:56 +0900
parents 04ced10e8804
children
line wrap: on
line source

! { dg-do run }

! This test is here to prevent a regression in gfc_conv_intrinsic_loc.
! Taking the loc of something in a common block was a special case
! that caused in internal compiler error in gcc/expr.c, in
! expand_expr_addr_expr_1().
program test
  common /targ/targ
  integer targ(10)
  call fn
end program test

subroutine fn
  common /targ/targ
  integer targ(10)
  call foo (loc (targ)) ! Line that caused ICE
end subroutine fn

subroutine foo (ii)
  use iso_c_binding, only: c_intptr_t
  common /targ/targ
  integer targ(10)
  integer(c_intptr_t) ii
  targ(2) = ii
end subroutine foo