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.