c: Fix up pointer types to may_alias structures [PR114493]
[official-gcc.git] / gcc / testsuite / gfortran.dg / namelist_4.f90
blobe6681fd3b554207a0710c127d0750211b3df8810
1 ! { dg-do compile }
2 ! This tests the fix for PR25089 in which it was noted that a
3 ! NAMELIST member that is an internal(or module) procedure gave
4 ! no error if the NAMELIST declaration appeared before the
5 ! procedure declaration. Not mentioned in the PR is that any
6 ! reference to the NAMELIST object would cause a segfault.
8 ! Based on the contribution from Joost VanderVondele
10 module M1
11 CONTAINS
12 ! This is the original PR
13 INTEGER FUNCTION G1()
14 NAMELIST /NML1/ G2 ! { dg-error "PROCEDURE attribute conflicts" }
15 G1=1
16 END FUNCTION
17 INTEGER FUNCTION G2()
18 G2=1
19 END FUNCTION
20 ! This has always been picked up - namelist after function
21 INTEGER FUNCTION G3()
22 NAMELIST /NML2/ G1 ! { dg-error "PROCEDURE attribute conflicts" }
23 G3=1
24 END FUNCTION
25 END module M1
27 program P1
28 implicit none
29 CONTAINS
30 ! This has the additional wrinkle of a reference to the object.
31 INTEGER FUNCTION F1()
32 NAMELIST /NML3/ F2 ! { dg-error "PROCEDURE attribute conflicts" }
33 ! Used to ICE here
34 f2 = 1 ! { dg-error "is not a VALUE" }
35 F1=1
36 END FUNCTION
37 INTEGER FUNCTION F2()
38 F2=1
39 END FUNCTION
40 END