This is the mail archive of the gcc@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]

PROMOTE_PROTOTYPES nonstandard ?


ISO/IEC 9899:1999 - 6.5.2.2  Function calls

       [#7] If the expression that denotes the called function  has
       a  type  that  does  include  a prototype, the arguments are
       implicitly converted, as if by assignment, to the  types  of
       the  corresponding  parameters,  taking  the  type  of  each
       parameter to be the  unqualified  version  of  its  declared
       type.    The  ellipsis  notation  in  a  function  prototype
       declarator causes argument type conversion to stop after the
       last  declared  parameter.   The default argument promotions
       are performed on trailing arguments.

       [#8] No  other  conversions  are  performed  implicitly;

gccint.texi
`PROMOTE_PROTOTYPES'
     A C expression whose value is nonzero if an argument declared in a
     prototype as an integral type smaller than `int' should actually
     be passed as an `int'.  

Does that mean that targets, which #define PROMOTE_PROTOTYPES 1
(almost all) are non iso9899:1999 compliant ?

~velco


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