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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-02-09
                 CC|                            |ebotcazou at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> What is the purpose of the test case, what does a failure mean and what can
> be done to determine its cause?

The purpose is to check that pointer-to-nested-functions no longer use stack
trampolines in Ada, which then force it to be made executable; the failure
means that they still use it.  The cause is a missing definition of:

 -- Target Hook: int TARGET_CUSTOM_FUNCTION_DESCRIPTORS
     This hook should be defined to a power of 2 if the target will
     benefit from the use of custom descriptors for nested functions
     instead of the standard trampolines.  Such descriptors are created
     at run time on the stack and made up of data only, but they are
     non-standard so the generated code must be prepared to deal with
     them.  This hook should be defined to 0 if the target uses
     function descriptors for its standard calling sequence, like for
     example HP-PA or IA-64.  Using descriptors for nested functions
     eliminates the need for trampolines that reside on the stack and
     require it to be made executable.

     The value of the macro is used to parameterize the run-time
     identification scheme implemented to distinguish descriptors from
     function addresses: it gives the number of bytes by which their
     address is misaligned compared with function addresses.  The value
     of 1 will generally work, unless it is already reserved by the
     target for another purpose, like for example on ARM.

Reply via email to