#include "coretypes.h"
#include "options.h"
#include "gfortran.h"
-#include "diagnostic-core.h"
#include "parse.h"
#include "match.h"
#include "constructor.h"
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;
}
+++ /dev/null
-! { 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