[Bug fortran/86148] parameterized type compile time error

2024-02-29 Thread alexanderw at gcc dot gnu.org via Gcc-bugs
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

2024-02-28 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
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

2024-01-20 Thread ctechnodev at gmail dot com via Gcc-bugs
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

2021-03-22 Thread van.snyder at sbcglobal dot net via Gcc-bugs
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

2021-03-22 Thread van.snyder at sbcglobal dot net via Gcc-bugs
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

2020-07-13 Thread dominiq at lps dot ens.fr
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

2019-05-15 Thread townsend at astro dot wisc.edu
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

2018-10-19 Thread pault at gcc dot gnu.org
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

2018-06-14 Thread dominiq at lps dot ens.fr
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