https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125061

--- Comment #6 from Surya Kumari Jangala <jskumari at gcc dot gnu.org> ---
(In reply to uecker from comment #5)
> 
> So what would be the right test? I guess 
> 
> { dg-require-effective-target trampolines }
> 
> would not work. The following?
> 
> { dg-skip-if "" { powerpc*-*-* s390*-*-* } } 
> 
> I notice Wtrampolines.c has
> 
> /* { dg-warning "trampoline generated for nested function 'b'" "standard
> descriptors" { xfail { { ia64-*-* *-*-aix* } || { powerpc*-*-* && lp64 } } }
> } */
> 
> which does not make sense to me.

PowerPC 32bit (ppc32) follows the System V ABI. This ABI does not specify
function descriptors for function pointers. Instead, the function pointer is a
scalar 32bit value.
The testcase Wtrampolines-3.c works fine when compiled with -m32. Hence the
correct fix would be:
{ xfail { powerpc*-*-* && lp64 } }

Reply via email to