1*40ed6ba0SPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1 2*40ed6ba0SPeter Klausler! Every other Fortran compiler (but one) interprets the names of parent 3*40ed6ba0SPeter Klausler! components like this when the names of their types are the product of 4*40ed6ba0SPeter Klausler! USE association with renaming. 5*40ed6ba0SPeter Klausler 6*40ed6ba0SPeter Klauslermodule m1 7*40ed6ba0SPeter Klausler type originalName 8*40ed6ba0SPeter Klausler integer m 9*40ed6ba0SPeter Klausler end type 10*40ed6ba0SPeter Klauslerend 11*40ed6ba0SPeter Klausler 12*40ed6ba0SPeter Klauslermodule m2 13*40ed6ba0SPeter Klausler use m1, newName => originalName 14*40ed6ba0SPeter Klausler type, extends(newName) :: extended 15*40ed6ba0SPeter Klausler integer n 16*40ed6ba0SPeter Klausler end type 17*40ed6ba0SPeter Klausler type, extends(newName) :: extended2 18*40ed6ba0SPeter Klausler integer originalName ! ok 19*40ed6ba0SPeter Klausler end type 20*40ed6ba0SPeter Klausler contains 21*40ed6ba0SPeter Klausler subroutine s1 22*40ed6ba0SPeter Klausler type(extended) x 23*40ed6ba0SPeter Klausler type(extended2) x2 24*40ed6ba0SPeter Klausler print *, x%newName%m ! ok 25*40ed6ba0SPeter Klausler !ERROR: Component 'originalname' not found in derived type 'extended' 26*40ed6ba0SPeter Klausler print *, x%originalName 27*40ed6ba0SPeter Klausler print *, extended(newName=newName(m=1),n=2) ! ok 28*40ed6ba0SPeter Klausler !ERROR: Structure constructor lacks a value for component 'm' 29*40ed6ba0SPeter Klausler !ERROR: Keyword 'originalname=' does not name a component of derived type 'extended' 30*40ed6ba0SPeter Klausler !ERROR: Keyword 'm=' may not appear in a reference to a procedure with an implicit interface 31*40ed6ba0SPeter Klausler print *, extended(originalName=originalName(m=1),n=2) 32*40ed6ba0SPeter Klausler !ERROR: Value in structure constructor of type 'REAL(4)' is incompatible with component 'newname' of type 'newname' 33*40ed6ba0SPeter Klausler !ERROR: Keyword 'm=' may not appear in a reference to a procedure with an implicit interface 34*40ed6ba0SPeter Klausler print *, extended(newName=originalName(m=1),n=2) 35*40ed6ba0SPeter Klausler !ERROR: Structure constructor lacks a value for component 'm' 36*40ed6ba0SPeter Klausler !ERROR: Keyword 'originalname=' does not name a component of derived type 'extended' 37*40ed6ba0SPeter Klausler print *, extended(originalName=newName(m=1),n=2) 38*40ed6ba0SPeter Klausler print *, x2%newName%m ! ok 39*40ed6ba0SPeter Klausler print *, x2%originalName ! ok 40*40ed6ba0SPeter Klausler print *, extended2(newName=newName(m=1),originalName=2) ! ok 41*40ed6ba0SPeter Klausler end 42*40ed6ba0SPeter Klauslerend 43*40ed6ba0SPeter Klausler 44*40ed6ba0SPeter Klauslermodule m3 45*40ed6ba0SPeter Klausler use m2 46*40ed6ba0SPeter Klausler contains 47*40ed6ba0SPeter Klausler ! Same as above, but not in the same module as the derived 48*40ed6ba0SPeter Klausler ! types' definitions. 49*40ed6ba0SPeter Klausler subroutine s2 50*40ed6ba0SPeter Klausler type(extended) x 51*40ed6ba0SPeter Klausler type(extended2) x2 52*40ed6ba0SPeter Klausler print *, x%newName%m ! ok 53*40ed6ba0SPeter Klausler !ERROR: Component 'originalname' not found in derived type 'extended' 54*40ed6ba0SPeter Klausler print *, x%originalName 55*40ed6ba0SPeter Klausler print *, extended(newName=newName(m=1),n=2) ! ok 56*40ed6ba0SPeter Klausler !ERROR: Structure constructor lacks a value for component 'm' 57*40ed6ba0SPeter Klausler !ERROR: Keyword 'originalname=' does not name a component of derived type 'extended' 58*40ed6ba0SPeter Klausler !ERROR: Keyword 'm=' may not appear in a reference to a procedure with an implicit interface 59*40ed6ba0SPeter Klausler print *, extended(originalName=originalName(m=1),n=2) 60*40ed6ba0SPeter Klausler !ERROR: Value in structure constructor of type 'REAL(4)' is incompatible with component 'newname' of type 'newname' 61*40ed6ba0SPeter Klausler !ERROR: Keyword 'm=' may not appear in a reference to a procedure with an implicit interface 62*40ed6ba0SPeter Klausler print *, extended(newName=originalName(m=1),n=2) 63*40ed6ba0SPeter Klausler !ERROR: Structure constructor lacks a value for component 'm' 64*40ed6ba0SPeter Klausler !ERROR: Keyword 'originalname=' does not name a component of derived type 'extended' 65*40ed6ba0SPeter Klausler print *, extended(originalName=newName(m=1),n=2) 66*40ed6ba0SPeter Klausler print *, x2%newName%m ! ok 67*40ed6ba0SPeter Klausler print *, x2%originalName ! ok 68*40ed6ba0SPeter Klausler print *, extended2(newName=newName(m=1),originalName=2) ! ok 69*40ed6ba0SPeter Klausler end 70*40ed6ba0SPeter Klauslerend 71