[Bug c/83397] New: void f() { } has zero arguments

izaberina at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Dec 12 16:20:00 GMT 2017


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

            Bug ID: 83397
           Summary: void f() { } has zero arguments
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: izaberina at gmail dot com
  Target Milestone: ---

https://godbolt.org/g/8ZcWKk

according to c11 6.7.6.3, function prototypes without arguments don't specify
anything about their parameters

gcc is assuming that f1 takes an unspecified number of arguments, and as such
it's treating it as potentially vararg, and that's (probably) why it clears eax
before calling it

in my understanding, this requirement only applies to prototypes and not to
function definitions

furthermore, the function is static and gcc is definitely able to see what it
does so it's not needed either way


More information about the Gcc-bugs mailing list