return statement in a function with the naked attribute
reed kotler
rkotler@mips.com
Fri May 3 04:05:00 GMT 2013
On 05/02/2013 08:41 PM, Chung-Ju Wu wrote:
> 2013/5/3 reed kotler <rkotler@mips.com>:
>> Should a return statement be emitted in a function that has the naked
>> attribute.
>>
>> There seems to be some confusion here and apparently disagreement between
>> various
>> gcc compilers.
>>
> IMHO, it depends on how you define the word 'naked' for a function
> and how you expect one writing functions with 'naked' attribute.
>
> If you think one is supposed to have *complete* control in the function
> (i.e. only inline assembly code, without using any C statement and variables),
> then the asm 'ret' can be omitted. Porgrammers must explicitly
> emit 'ret' in the inline asm.
>
> If you allow user using C statement in the function with 'naked' attribute,
> the asm 'ret' is still required. Because compiler may produce a branch
> to the epilogue position where 'ret' is expected to exist.
>
> AFAIK, there is no standard defining what 'naked' behavior should be.
> So gcc leaves it to back-end developers.
>
>
> Best regards,
> jasonwucj
I think that the compiler should respect any return statements you
explicitly enter, but should not create any that are implied as in
reaching the end of the function.
More information about the Gcc
mailing list