makecontext and its arguments

Jakub Jelinek jakub@redhat.com
Mon Aug 5 13:19:00 GMT 2002


On Mon, Aug 05, 2002 at 10:15:06PM +0200, Andreas Schwab wrote:
> Ulrich Drepper <drepper@redhat.com> writes:
> 
> |> Andreas Jaeger wrote:
> |> > That interpretation of long causes problems for x86-64 since ints are
> |> > not sign extented when passed in varargs...
> |> 
> |> How about fixing this mistake in the compiler with a function attribute?
> 
> ???  There is no way to find out the right type in va_arg.  Either the
> types match, or you get undefined behaviour.  If you pass an int and
> retrieve it as a long all bets are off.

Adding __attribute__((sane_x86_64_varargs)) to makecontext and make gcc
promote all varargs into DImode when calling vararg functions with
this attribute?

	Jakub



More information about the Libc-hacker mailing list