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. 7! 8! Based on the contribution from Joost VanderVondele 9! 10module M1 11CONTAINS 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 25END module M1 26 27program P1 28CONTAINS 29! This has the additional wrinkle of a reference to the object. 30 INTEGER FUNCTION F1() 31 NAMELIST /NML3/ F2 ! { dg-error "PROCEDURE attribute conflicts" } 32! Used to ICE here 33 f2 = 1 ! { dg-error "is not a VALUE" } 34 F1=1 35 END FUNCTION 36 INTEGER FUNCTION F2() 37 F2=1 38 END FUNCTION 39END 40 41