1! { dg-do run }
2
3! This test is here to prevent a regression in gfc_conv_intrinsic_loc.
4! Taking the loc of something in a common block was a special case
5! that caused in internal compiler error in gcc/expr.c, in
6! expand_expr_addr_expr_1().
7program test
8  common /targ/targ
9  integer targ(10)
10  call fn
11end program test
12
13subroutine fn
14  common /targ/targ
15  integer targ(10)
16  call foo (loc (targ)) ! Line that caused ICE
17end subroutine fn
18
19subroutine foo (ii)
20  use iso_c_binding, only: c_intptr_t
21  common /targ/targ
22  integer targ(10)
23  integer(c_intptr_t) ii
24  targ(2) = ii
25end subroutine foo
26
27