This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Using the asm suffix


On Mon, Aug 17, 2015 at 09:55:48PM -0700, David Wohlferd wrote:
> >>  On systems where an underscore is normally prepended to the name of a C
> >>-function or variable, this feature allows you to define names for the
> >>+variable, this feature allows you to define names for the
> >>  linker that do not start with an underscore.
> >Why remove this?
> 
> This doc section (Controlling Names Used in Assembler Code) describes 
> how the asm suffix affects both data and functions. However, it jumbles 
> the two descriptions together.

Probably because they are the same thing...

> My intent here is to break this clearly into two @subsubheadings: 
> 'Assembler names for data' and 'Assembler names for functions'. Since 
> data is the first section, I removed the word 'function' here.

I missed that, sorry.  Or, did you forget to add the same text to the
"function" description?

This patch would be much easier to review if you did one change per patch.

> >>  It does not make sense to use this feature with a non-static local
> >>  variable since such variables do not have assembler names.  If you are
> >>  trying to put the variable in a particular register, see @ref{Explicit
> >>-Reg Vars}.  GCC presently accepts such code with a warning, but will
> >>-probably be changed to issue an error, rather than a warning, in the
> >>-future.
> >>+Reg Vars}.
> >And this?
> 
> Vague statements about possible changes that may or not ever be written 
> are not helpful in docs.  In this case the statement is particularly 
> unhelpful since even the warning appears to be gone.

I don't agree it is a vague statement about possible future changes; it
is more like a statement of intent.  It tells the reader "don't write
code like this".

And the warning is still there ("ignoring asm-specifier for non-static
local variable").

> >>-Also, you must not use a
> >>-register name; that would produce completely invalid assembler code.  GCC
> >>-does not as yet have the ability to store static variables in registers.
> >>-Perhaps that will be added.
> >And why remove these?
> 
> Again with the vague statements about possible future changes. Also, 
> whether or not static variables can be stored in registers has nothing 
> to do with Asm Labels.  If this is still true, it belongs in Explicit 
> Reg Vars.

The first part ("must not use a register name") is an important warning.

The second part (about statics) might well be better moved, but it should
not be _re_moved just like that!  And it is still true (gives an error,
"multiple storage classes").


Segher


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]