bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/4] Port unwind protection to C23


From: Martin D Kealey
Subject: Re: [PATCH 3/4] Port unwind protection to C23
Date: Tue, 28 Mar 2023 08:36:29 +1000

On Mon, 27 Mar 2023 at 18:35, Paul Eggert <eggert@cs.ucla.edu> wrote:

> The problem can also occur on platforms where calling conventions differ
> depending on type even if the two types have the same representation, and
> this can (and has) occurred on platforms with linear address spaces.
>

Indeed, this is *normally* true when you overlap the placement of varargs
and fixed args, since varargs generally get passed on the stack (and
afterwards popped by the caller) to make it easier to iterate them, while
passing the first *k>0* fixed arguments in registers is routine.

And on some platforms it's the callee who pops args that are passed on the
stack, provided there's no varargs involved.

Furthermore, pointer, int, and double might be passed in different classes
of registers, and char, short and float *fixed* args might *not* get
promoted.

It's all a really gnarly mess, and keeping function types clear is really
important.

-Martin


reply via email to

[Prev in Thread] Current Thread [Next in Thread]