Re: violating function pointer signature
From: Alexei Starovoitov
Date: Wed Nov 18 2020 - 14:46:38 EST
On Wed, Nov 18, 2020 at 6:22 AM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> Thus, all functions will be non-variadic in these cases.
That's not the only case where it will blow up.
Try this on sparc:
struct foo {
int a;
};
struct foo foo_struct(void) {
struct foo f = {};
return f;
}
int foo_int(void) {
return 0;
}
or this link:
https://godbolt.org/z/EdM47b
Notice:
jmp %i7+12
The function that returns small struct will jump to a different
instruction in the caller.
I think none of the tracepoints return structs and void foo(void) is
fine on x86.
Just pointing out that it's more than just variadic.