[Bug fortran/86148] parameterized type compile time error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86148 Alexander Westbrooks changed: What|Removed |Added Status|ASSIGNED|RESOLVED Assignee|pault at gcc dot gnu.org |alexanderw at gcc dot gnu.org Resolution|--- |FIXED --- Comment #8 from Alexander Westbrooks --- Patch has been pushed to the trunk. Marking as fixed.
[Bug fortran/86148] parameterized type compile time error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86148 --- Comment #7 from GCC Commits --- The master branch has been updated by Alexander Westbrooks alexanderw : https://gcc.gnu.org/g:edfe198084338691d0facc86bf8dfa6ede3ca676 commit r14-9229-gedfe198084338691d0facc86bf8dfa6ede3ca676 Author: Alexander Westbrooks Date: Wed Feb 28 20:03:46 2024 -0600 Fortran - Error compiling PDT Type-bound Procedures [PR82943/86148/86268] This patch allows parameterized derived types to compile successfully when typebound procedures are specified in the type specification. Furthermore, it allows function calls for PDTs by setting the f2k_derived space of PDT instances to reference their original template, thereby giving it referential access to the typebound procedures of the template. Lastly, it adds a check for deferred length parameters of PDTs in CLASS declaration statements, and correctly throws an error if such declarations are missing POINTER or ALLOCATABLE attributes. 2024-02-25 Alexander Westbrooks gcc/fortran/ChangeLog: PR fortran/82943 PR fortran/86148 PR fortran/86268 * decl.cc (gfc_get_pdt_instance): Set the PDT instance field 'f2k_derived', if not set already, to point to the given PDT template 'f2k_derived' namespace in order to give the PDT instance referential access to the typebound procedures of the template. * gfortran.h (gfc_pdt_is_instance_of): Add prototype. * resolve.cc (resolve_typebound_procedure): If the derived type does not have the attribute 'pdt_template' set, compare the dummy argument to the 'resolve_bindings_derived' type like usual. If the derived type is a 'pdt_template', then check if the dummy argument is an instance of the PDT template. If the derived type is a PDT template, and the dummy argument is an instance of that template, but the dummy argument 'param_list' is not SPEC_ASSUMED, check if there are any LEN parameters in the dummy argument. If there are no LEN parameters, then this implies that there are only KIND parameters in the dummy argument. If there are LEN parameters, this would be an error, for all LEN parameters for the dummy argument MUST be assumed for typebound procedures of PDTs. (resolve_pdt): Add a check for ALLOCATABLE and POINTER attributes for SPEC_DEFERRED parameters of PDT class symbols. ALLOCATABLE and POINTER attributes for a PDT class symbol are stored in the 'class_pointer' and 'allocatable' attributes of the '_data' component respectively. * symbol.cc (gfc_pdt_is_instance_of): New function. gcc/testsuite/ChangeLog: PR fortran/82943 PR fortran/86148 PR fortran/86268 * gfortran.dg/pdt_4.f03: Update modified error message. * gfortran.dg/pdt_34.f03: New test. * gfortran.dg/pdt_35.f03: New test. * gfortran.dg/pdt_36.f03: New test. * gfortran.dg/pdt_37.f03: New test. Signed-off-by: Alexander Westbrooks
[Bug fortran/86148] parameterized type compile time error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86148 Alexander Westbrooks changed: What|Removed |Added CC||ctechnodev at gmail dot com --- Comment #6 from Alexander Westbrooks --- Created attachment 57177 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57177=edit Proposed Patch to fix PR82943, PR86148, PR86268
[Bug fortran/86148] parameterized type compile time error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86148 --- Comment #5 from van.snyder at sbcglobal dot net --- Actually from gfortran 8.3.0-6, not 8.0.3-6.
[Bug fortran/86148] parameterized type compile time error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86148 van.snyder at sbcglobal dot net changed: What|Removed |Added CC||van.snyder at sbcglobal dot net --- Comment #4 from van.snyder at sbcglobal dot net --- Created attachment 50452 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50452=edit PDT failure to compile 1 Error: Type mismatch in argument ârotationsâ at (1); passed TYPE(Pdtrotations_t_8) to TYPE(pdtrotations_t_8) from gfortran 8.0.3-6. make -f Make-Sort
[Bug fortran/86148] parameterized type compile time error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86148 Dominique d'Humieres changed: What|Removed |Added Status|NEW |ASSIGNED
[Bug fortran/86148] parameterized type compile time error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86148 Rich Townsend changed: What|Removed |Added CC||townsend at astro dot wisc.edu --- Comment #3 from Rich Townsend --- Here's a related test case using a length-type parameter, that also fails for apparently the same reason: Module AA Type :: parent(k) Integer, len :: k contains procedure :: SubA1 end type parent contains Subroutine SubA1(this) Class(parent(*)), Intent(In) :: this end Subroutine SubA1 end Module AA $ gfortran -c AA.f90 foo.f90:5:14: procedure :: A1 => SubA1 1 Error: Argument 'this' of 'suba1' with PASS(this) at (1) must be of the derived-type 'parent' cheers, Rich
[Bug fortran/86148] parameterized type compile time error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86148 Paul Thomas changed: What|Removed |Added CC||pault at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |pault at gcc dot gnu.org --- Comment #2 from Paul Thomas --- I had better take this as the PDT "owner". I have some fairly fundamental work to do on PDT's and so I am not sure when I attend to this. Please be patient. Thanks for the report paul
[Bug fortran/86148] parameterized type compile time error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86148 Dominique d'Humieres changed: What|Removed |Added Priority|P3 |P4 Status|UNCONFIRMED |NEW Last reconfirmed||2018-06-14 Blocks||82173 Ever confirmed|0 |1 --- Comment #1 from Dominique d'Humieres --- Confirmed. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82173 [Bug 82173] [meta-bug] Parameterized derived type errors