[cfe-dev] naked attribute
Rafael EspĂndola
rafael.espindola at gmail.com
Mon May 6 08:08:17 PDT 2013
On 3 May 2013 15:55, Reed Kotler <rkotler at mips.com> wrote:
> My original main post was on the idea of not emitting implicit "return"
> statements, and instead to emit implicit "unreachable".
>
> However if the code contains an explicit "return", clang should honor that.
I tested
__attribute__((naked)) void f1(void) {
}
__attribute__((naked)) void f2(void) {
return;
}
__attribute__((naked)) int f3(void) {
}
__attribute__((naked)) int f4(void) {
return 42;
}
void g(void);
__attribute__((naked)) void f5(int a) {
if (a)
return;
g();
}
on ARM and gcc only produces return instructions when there is a value
involved (f4). Given that this is fairly insane and documented to not
be safe, I think your proposal is OK. Always producing an unreachable
would also be I think.
Anton, the lack of documentation makes the stronger point for warning,
no? Reed, -allow-naked would be redundant with a -Werror if we do
implement the warning, no?
Cheers,
Rafael
More information about the cfe-dev
mailing list