Fortran : ProcPtr function results: 'ppr@' in error message PR39695
commiteb069ae8819c3a84d7f78becc5501e21ee3a9554
authorMark Eggleston <markeggleston@gcc.gnu.org>
Thu, 7 May 2020 07:02:02 +0000 (7 08:02 +0100)
committerMark Eggleston <markeggleston@gcc.gnu.org>
Wed, 20 May 2020 13:28:41 +0000 (20 14:28 +0100)
treefa0a916ef7b46b7456bf985868f2f4bda258165f
parent4623a6f2d026b6b6dcd4c9b6f26e96cf5e52b4ac
Fortran  : ProcPtr function results: 'ppr@' in error message PR39695

The value 'ppr@' is set in the name of result symbol, the actual
name of the symbol is in the procedure name symbol pointed
to by the result symbol's namespace (ns). When reporting errors for
symbols that have the proc_pointer attribute check whether the
result attribute is set and set the name accordingly.

2020-05-20  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/fortran/

PR fortran/39695
* resolve.c (resolve_fl_procedure): Set name depending on
whether the result attribute is set.  For PROCEDURE/RESULT
conflict use the name in sym->ns->proc_name->name.
* symbol.c (gfc_add_type): Add check for function and result
attributes use sym->ns->proc_name->name if both are set.
Where the symbol cannot have a type use the name in
sym->ns->proc_name->name.

2020-05-20  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/testsuite/

PR fortran/39695
* gfortran.dg/pr39695_1.f90: New test.
* gfortran.dg/pr39695_2.f90: New test.
* gfortran.dg/pr39695_3.f90: New test.
* gfortran.dg/pr39695_4.f90: New test.
gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/fortran/symbol.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr39695_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/pr39695_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/pr39695_3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/pr39695_4.f90 [new file with mode: 0644]