In the file gcc/recog.h the struct "insn_data" has a member "genfun" which is
of type "insn_gen_fn". This type is defined as
"typedef rtx (*insn_gen_fn) (rtx, ...);" which is a pointer to a function which
has an ellipsis as its second argument. The actual implementations of the
functions are however not implemented with this ellipsis, and does not use
the va_arg stuff in <stdarg.h> in order to get the anonymous argumenst. I think
some of these functions are generated from the *.md file by the genemit program.
For hosts which does have an ABI in where anonymous arguments are passed in a
different manner than named arguments (Which is legal c-code according to C89)
the compilation of gcc can produce a non-working gcc executable.
--
Summary: GCC source code does not conform to 3.3.2.2 of C89 C-
standard
Product: gcc
Version: 3.4.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rpedersen at atmel dot com
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18193