<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 12, 2014 at 1:03 PM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5"><br>
> On 2014-Jun-12, at 11:42, Bob Wilson <<a href="mailto:bob.wilson@apple.com">bob.wilson@apple.com</a>> wrote:<br>
><br>
> Author: bwilson<br>
> Date: Thu Jun 12 13:42:55 2014<br>
> New Revision: 210808<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=210808&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=210808&view=rev</a><br>
> Log:<br>
> Add missing "InitializerConstant" to global variable syntax in LangRef.<br>
><br>
> The syntax for Global Variables in LangRef is missing the initializer.<br>
> This syntax section was added in r199218 along with changes to the<br>
> dllexport/dllimport handling, and I guess it was just an oversight to omit the<br>
> initializer values. I’ve marked the initializer as optional because this syntax<br>
> is used for both declarations and definitions.<br>
><br>
> Modified:<br>
>    llvm/trunk/docs/LangRef.rst<br>
><br>
> Modified: llvm/trunk/docs/LangRef.rst<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.rst?rev=210808&r1=210807&r2=210808&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.rst?rev=210808&r1=210807&r2=210808&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/docs/LangRef.rst (original)<br>
> +++ llvm/trunk/docs/LangRef.rst Thu Jun 12 13:42:55 2014<br>
> @@ -589,8 +589,8 @@ Syntax::<br>
><br>
>     [@<GlobalVarName> =] [Linkage] [Visibility] [DLLStorageClass] [ThreadLocal]<br>
>                          [unnamed_addr] [AddrSpace] [ExternallyInitialized]<br>
> -                         <global | constant> <Type><br>
> -                         [, section "name"] [, align <Alignment>]<br>
> +                         <global | constant> <Type> [<InitializerConstant><br>
> +                         [, section "name"] [, align <Alignment>]]<br>
<br>
</div></div>Was it intentional to require an InitializerConstant any time there's a<br>
section name and/or an Alignment?  In particular, it seems unlikely that<br>
a declaration (without a value) can't specify the alignment.</blockquote><div><br></div><div>I tried to check LLParser.cpp to answer this question when I reviewed the change, but I misread it.  You're right, we do accept this:</div>
<div><div>@y = external global i32*, align 4</div></div><div><br></div><div>You can have alignment and section without an initializer.</div></div></div></div>