Revert "Fortran: Fix diagnostic for ambiguous pointer function assignment [PR80012]"

This reverts commit 84ef494860.
This commit is contained in:
Harald Anlauf
2026-02-21 08:24:20 +01:00
parent b9238d3070
commit d489348037
2 changed files with 11 additions and 26 deletions

View File

@@ -24,7 +24,6 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "options.h"
#include "gfortran.h"
#include "diagnostic-core.h"
#include "parse.h"
#include "match.h"
#include "constructor.h"
@@ -1888,19 +1887,19 @@ gfc_add_procedure (symbol_attribute *attr, procedure_type t,
if (attr->proc != PROC_UNKNOWN && !attr->module_procedure
&& attr->access == ACCESS_UNKNOWN)
{
auto_diagnostic_group d;
gfc_error ("%s procedure at %L is already declared as %s procedure",
gfc_code2string (procedures, t), where,
gfc_code2string (procedures, attr->proc));
if (attr->proc == PROC_ST_FUNCTION && t == PROC_INTERNAL
&& !gfc_notification_std (GFC_STD_F2008))
{
inform (gfc_get_location (where),
"F2008: A pointer function assignment is ambiguous if it is "
"the first executable statement after the specification "
"block. Please add any other kind of executable "
"statement before it");
}
gfc_error ("%s procedure at %L is already declared as %s "
"procedure. \nF2008: A pointer function assignment "
"is ambiguous if it is the first executable statement "
"after the specification block. Please add any other "
"kind of executable statement before it. FIXME",
gfc_code2string (procedures, t), where,
gfc_code2string (procedures, attr->proc));
else
gfc_error ("%s procedure at %L is already declared as %s "
"procedure", gfc_code2string (procedures, t), where,
gfc_code2string (procedures, attr->proc));
return false;
}

View File

@@ -1,14 +0,0 @@
! { dg-do compile }
! { dg-options "-std=gnu" }
! PR fortran/80012
! Test that the error message for ambiguous pointer function assignment
! is split into an error and an informational note, without FIXME.
two() = 7
contains
function two () ! { dg-error "INTERNAL-PROC procedure at .1. is already declared as STATEMENT-PROC procedure" }
! { dg-message "F2008: A pointer function assignment is ambiguous" "" { target *-*-* } 9 }
integer, pointer :: two
allocate(two)
end function two
end