forked from OSchip/llvm-project
LangRef: clarify that global declarations can have section and alignment info.
I'm not sure what it means to set a section for a declaration in another translation unit, but there are some tests in the tree that do it so it seems to be legal now regardless. llvm-svn: 210819
This commit is contained in:
parent
8895c52a63
commit
85b24f2b36
|
@ -519,12 +519,14 @@ Global Variables
|
|||
Global variables define regions of memory allocated at compilation time
|
||||
instead of run-time.
|
||||
|
||||
Global variables definitions must be initialized, may have an explicit section
|
||||
to be placed in, and may have an optional explicit alignment specified.
|
||||
Global variables definitions must be initialized.
|
||||
|
||||
Global variables in other translation units can also be declared, in which
|
||||
case they don't have an initializer.
|
||||
|
||||
Either global variable definitions or declarations may have an explicit section
|
||||
to be placed in and may have an optional explicit alignment specified.
|
||||
|
||||
A variable may be defined as a global ``constant``, which indicates that
|
||||
the contents of the variable will **never** be modified (enabling better
|
||||
optimization, allowing the global data to be placed in the read-only
|
||||
|
@ -589,8 +591,8 @@ Syntax::
|
|||
|
||||
[@<GlobalVarName> =] [Linkage] [Visibility] [DLLStorageClass] [ThreadLocal]
|
||||
[unnamed_addr] [AddrSpace] [ExternallyInitialized]
|
||||
<global | constant> <Type> [<InitializerConstant>
|
||||
[, section "name"] [, align <Alignment>]]
|
||||
<global | constant> <Type> [<InitializerConstant>]
|
||||
[, section "name"] [, align <Alignment>]
|
||||
|
||||
For example, the following defines a global in a numbered address space
|
||||
with an initializer, section, and alignment:
|
||||
|
|
Loading…
Reference in New Issue