summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2014-06-12 20:40:33 +0000
committerBob Wilson <bob.wilson@apple.com>2014-06-12 20:40:33 +0000
commit4cea00282fe0a94b9f7d057fe084f4a6a84ca265 (patch)
treeccf665ed30aaf2b685487b71c7bea8f60505fce4 /docs
parentc7147a3b6d63bba3dfac29e446847e69956a3f90 (diff)
downloadllvm-4cea00282fe0a94b9f7d057fe084f4a6a84ca265.tar.gz
llvm-4cea00282fe0a94b9f7d057fe084f4a6a84ca265.tar.bz2
llvm-4cea00282fe0a94b9f7d057fe084f4a6a84ca265.tar.xz
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
Diffstat (limited to 'docs')
-rw-r--r--docs/LangRef.rst10
1 files changed, 6 insertions, 4 deletions
diff --git a/docs/LangRef.rst b/docs/LangRef.rst
index 434bcbe665..ee95cb9f85 100644
--- a/docs/LangRef.rst
+++ b/docs/LangRef.rst
@@ -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: