This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/18193] New: GCC source code does not conform to 3.3.2.2 of C89 C-standard


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]