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

            Bug ID: 117865
           Summary: "error: too many arguments to function" with C23
                    doesn't show function pointer location
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sjames at gcc dot gnu.org
  Target Milestone: ---

```
# gcc ./paths.i
paths.c: In function ‘t1_Loc’:
paths.c:219:9: error: too many arguments to function ‘S->convert’
  219 |        (*S->convert)(&r->dest, S, x, y);
      |        ~^~~~~~~~~~~~
paths.c: In function ‘t1_ILoc’:
paths.c:240:9: error: too many arguments to function ‘S->iconvert’
  240 |        (*S->iconvert)(&r->dest, S, (int32_t) x, (int32_t) y);
      |        ~^~~~~~~~~~~~~
paths.c: In function ‘t1_Hint’:
paths.c:374:17: error: too many arguments to function ‘S->convert’
  374 |                (*S->convert)(&r->ref, S, 0.0, ref);
      |                ~^~~~~~~~~~~~
paths.c:375:17: error: too many arguments to function ‘S->convert’
  375 |                (*S->convert)(&r->width, S, 0.0, width);
      |                ~^~~~~~~~~~~~
paths.c:378:17: error: too many arguments to function ‘S->convert’
  378 |                (*S->convert)(&r->ref, S, ref, 0.0);
      |                ~^~~~~~~~~~~~
paths.c:379:17: error: too many arguments to function ‘S->convert’
  379 |                (*S->convert)(&r->width, S, width, 0.0);
      |                ~^~~~~~~~~~~~
paths.c: In function ‘t1_PathXform’:
paths.c:945:17: error: too many arguments to function ‘S->iconvert’
  945 |                (*S->iconvert)(&p->dest, S, p->dest.x + oldx, p->dest.y
+ oldy);
      |                ~^~~~~~~~~~~~~
paths.c:959:25: error: too many arguments to function ‘S->iconvert’
  959 |                        (*S->iconvert)(&cp->M, S, cp->M.x + oldx,
cp->M.y + oldy);
      |                        ~^~~~~~~~~~~~~
paths.c:973:25: error: too many arguments to function ‘S->iconvert’
  973 |                        (*S->iconvert)(&bp->B, S, bp->B.x + oldx,
bp->B.y + oldy);
      |                        ~^~~~~~~~~~~~~
paths.c:976:25: error: too many arguments to function ‘S->iconvert’
  976 |                        (*S->iconvert)(&bp->C, S, bp->C.x + oldx,
bp->C.y + oldy);
      |                        ~^~~~~~~~~~~~~
paths.c:986:25: error: too many arguments to function ‘S->iconvert’
  986 |                        (*S->iconvert)(&hp->ref, S, hp->ref.x + oldx,
hp->ref.y + oldy);
      |                        ~^~~~~~~~~~~~~
paths.c:989:25: error: too many arguments to function ‘S->iconvert’
  989 |                        (*S->iconvert)(&hp->width, S, hp->width.x, hp-
>width.y);
      |                        ~^~~~~~~~~~~~~
```

Couldn't we show the location of convert, iconvert?

Reply via email to