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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210819 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bob Wilson 2014-06-12 20:40:33 +00:00
parent c7147a3b6d
commit 4cea00282f

View File

@ -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: