On Wed, 18 Nov 2020 11:46:02 -0800 Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote: > 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. I also said that this is limited to only functions that have void return. -- Steve