On Thu, Aug 07, 2025 at 10:02:33PM +0100, Paul Richard Thomas wrote:
> Hi Jerry et al.,
> 
> I attached an earlier version of the patch - apologies!
> 
> Please find the latest attached.
> 

Thanks for taking my comments into account.  The
patch passes regression testing on amf64-*-freebsd.

The only minor cosmetic thing I found is the locus
points to a slightly confusing location.

% gfcx -o z -fmax-errors=1 g1.f90 && ./z
g1.f90:6:30:

    6 |    generic, private :: bar => bak
      |                              1
Error: The access specification at (1) conflicts with that
   already given to 'bar'


If I move 

+  memset (&tbattr, 0, sizeof (tbattr));
+  tbattr.where = gfc_current_locus;

The above line from here ...

+  /* See if we get an access-specifier.  */
+  m = match_binding_attributes (&tbattr, true, false);
+  if (m == MATCH_ERROR)
+    goto error;

... to here, and update the error message

+             if (generic_spec->attr.access != tbattr.access)
+               {
+                 gfc_error ("The access specification at %C conflicts with "
+                            "that already given to %qs", generic_spec->name);
+                 goto error;
+               }

to use %L and &tbattr.where to 

              if (generic_spec->attr.access != tbattr.access)
                {
                  gfc_error ("The access specification at %L conflicts with "
                             "that already given to %qs",
                i            &tbattr.where, generic_spec->name);
                  goto error;
                }

I get a better locus

% gfcx -o z -fmax-errors=1 g1.f90 && ./z
g1.f90:6:19:

    6 |    generic, private :: bar => bak
      |                   1
Error: The access specification at (1) conflicts with
  that already given to 'bar'

Again, it's cosmetic.  I'll leave up to you to decide if you
want to pursue %C to %L changes; otherwise, the patch is OK
with me.

-- 
Steve

Reply via email to