https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113165

--- Comment #2 from kargl at gcc dot gnu.org ---
With the attached example code and the patch at the end of this
message, gfortran can be changes to identify both lines of code.
Fixing the run-on errors when -fimplicit-none is used is left as
an exercise for a new contributor or will be ignored until such
time as someone closes this bug report.

% gfcx -c e.f90
e.f90:3:30:

    3 |       double precision a,b,c,d,f,g
      |                              1
    4 |       integer i,j,k,l
    5 |       double precision d,q,r  ! 'd' was already declared as double
prec.
      |                        2      
Error: Symbol ā€˜d’ declared at (1) already has basic type of REAL and cannot
appear in the declaration at (2)



diff --git a/gcc/fortran/symbol.cc b/gcc/fortran/symbol.cc
index a6078bc608a..7fa1839323b 100644
--- a/gcc/fortran/symbol.cc
+++ b/gcc/fortran/symbol.cc
@@ -2015,8 +2015,9 @@ gfc_add_type (gfc_symbol *sym, gfc_typespec *ts, locus
*where)
        gfc_error ("Symbol %qs at %L already has basic type of %s",
                   sym->ns->proc_name->name, where, gfc_basic_typename (type));
       else
-       gfc_error ("Symbol %qs at %L already has basic type of %s", sym->name,
-                  where, gfc_basic_typename (type));
+       gfc_error ("Symbol %qs declared at %L already has basic type of %s "
+                  "and cannot appear in the declaration at %L", sym->name,
+                  &sym->declared_at, gfc_basic_typename (type), where);
       return false;
     }

Reply via email to