On Fri, Aug 5, 2011 at 1:48 PM, Chad Versace <c...@chad-versace.us> wrote:
> On 08/04/2011 06:18 PM, Chad Versace wrote:
>> On 08/04/2011 01:29 PM, Eric Anholt wrote:
>>> On Thu,  4 Aug 2011 12:59:35 +0900, Chia-I Wu <olva...@gmail.com> wrote:
>>>> From: Chia-I Wu <o...@lunarg.com>
>>>>
>>>> Unlike C++, empty declarations such as
>>>>
>>>>   float;
>>>>
>>>> should be valid.  The spec is not explicit about this actually.
>>>>
>>>> Some apps that generate their shader sources may rely on this.  This was
>>>> noted when porting one of them to Linux from Windows.
>>>
>>> Ew.  Looking the GLSL 1.20 spec, I see:
>>>
>>> statement:
>>>         declaration_statement
>>>
>>> declaration_statement:
>>>         declaration
>>>
>>> declaration:
>>>         init_declarator_list SEMICOLON
>>>
>>> init_declarator_list:
>>>         single_declaration
>>>
>>> single_declaration:
>>>         fully_specified_type
>>>         fully_specified_type IDENTIFIER
>>>
>>> so it looks like that is actually valid code.  That's awful.
>>
>> I first suspected that this was a spec grammar bug. But it is still present 
>> in
>> the GLSL 4.10 spec, so it's unlikely to be a bug.
>>
>> Surprisingly, C also allows empty declarations. Compiling this
>>     float;
>>     int main() { return 0; }
>> with `gcc --std=c99` succeeds and emits this warning:
>>      warning: useless type name in empty declaration [enabled by default]
>>
>> I hate to say this, but I believe the spec grammar intentionally allows empty
>> declarations. C allows it, and GLSL tries to mimic C.
>>
>> Even though I don't like empty declarations, this patch is
>> Reviewed-by: Chad Versace <c...@chad-versace.us>
>
>
> Also, please update the commit message to say that `gcc --std=c99` allows 
> empty
> declrations and include the appropriate quotation from the GLSL 1.20 spec's
> grammar. Without that extra info, someone may stumble onto this commit and 
> say WTF.
Oops.  I've already committed it...
> --
> Chad Versace
> c...@chad-versace.us
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>



-- 
o...@lunarg.com
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to