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]

Re: Strange RTL problem



> This is really strange... does anyone have any idea what could be going
> wrong here?  How are integral promotions different for vararg functions
> than they are for other function calls?

One thing I should have mentioned before is that my target does not define
_any_ of the PROMOTE_* macros at all.  In particular, the description of
PROMOTE_PROTOTYPES sounds like it could be relevant:

"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. In addition to avoiding errors in certain cases of mismatch,
 it also makes for better code on certain machines. If the macro is not
 defined in target header files, it defaults to 0."

Now I don't have any mismatch going on here, and I don't really want
values to be promoted that shouldn't be, so what is the best course of
action here?  Are all values passed through varargs considered to be a
mismatch of an argument (since there IS effectively no prototype for those
parameters?)

Thanks,

-Chris

http://www.nondot.org/~sabre/os/
http://www.nondot.org/~sabre/Projects/


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