From 4cea00282fe0a94b9f7d057fe084f4a6a84ca265 Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Thu, 12 Jun 2014 20:40:33 +0000 Subject: [PATCH] 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 --- docs/LangRef.rst | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/LangRef.rst b/docs/LangRef.rst index 434bcbe6655..ee95cb9f850 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:: [@ =] [Linkage] [Visibility] [DLLStorageClass] [ThreadLocal] [unnamed_addr] [AddrSpace] [ExternallyInitialized] - [ - [, section "name"] [, align ]] + [] + [, section "name"] [, align ] For example, the following defines a global in a numbered address space with an initializer, section, and alignment: