[cfe-dev] naked attribute
rkotler at mips.com
Fri May 3 09:32:36 PDT 2013
On 05/03/2013 04:57 AM, Rafael Espíndola wrote:
>> Gah! No, I see the warning now. Blasted black-and-white diagnostics.
>> Sorry about all the confusion I've caused.
> I did the same :-(
> Cool, of the support architectures on clang so far we have
> x86-64: warn (except for windows)
> x86: warn (except for windows)
> arm: produce a function ending in unreachable (can someone check
> if that is the case for thumb too?)
> arm64: warn
Just when things seemed simple....
With gcc, the mips target does not support, as I understand it, this
because the Mips maintainer does not like this attribute, in general,
not specifically for Mips.
I would like to see this option available for Mips, even if it meant
having a command line option, -allow-naked so that strict gcc
compatibility is preserved. There could be benign "naked" attributes on
some functions in a C programs being compiled for Mips that are now
being ignored and suddenly we allow it and that code breaks; maybe even
in subtle cases because the program is not saving and restoring callee
saved registers for example.
I have reopened this discussion on the gcc developers list and there is
a lot of interest in it. Anyone from llvm/clang can follow it there.
There is another orthogonal discussion, with various opposing opinions,
taking place in Mips/Imagination on this.
For the sake of the greater community of Mips target users, which is
beyond whatever opinions gcc has or Mips has internally, I think this
important option should be allowed in some form. Others in gcc land
agree with me on this have good experience using it for the Arm platform.
It's not needed all the time but when you need, you can't easily do
For one, you can include whatever little actual assembly code you need
for your app in the C/C++ code. This is particularly important for
My immediate interest in this is that I'm generating stubs for various
things in the Mips llvm/compiler and I wanted exactly the semantics of
the naked attribute for those stubs; though I could invent my own
attribute to use internally in the compiler.
More information about the cfe-dev