[Mesa-dev] [PATCH] glsl/glcpp: allow undefining __VERSION__ and GL_

Ilia Mirkin imirkin at alum.mit.edu
Wed Aug 26 00:14:53 PDT 2015


Looks like the change happened as of 4.40. I checked as far back as
GLSL 1.50, and it was the older "you can do whatever" wording
everywhere there:

"""
All macro names containing two consecutive underscores ( __ ) are
reserved for future use as predefined
macro names. All macro names prefixed with “GL_” (“GL” followed by a
single underscore) are also
reserved
"""

It never says it's an error to use these. Oh well.

  -ilia

On Wed, Aug 26, 2015 at 3:01 AM, Dave Airlie <airlied at gmail.com> wrote:
> On 26 August 2015 at 16:55, Dave Airlie <airlied at gmail.com> wrote:
>> On 26 August 2015 at 16:48, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>>> On Wed, Aug 26, 2015 at 2:38 AM, Dave Airlie <airlied at gmail.com> wrote:
>>>> From: Dave Airlie <airlied at redhat.com>
>>>>
>>>> GL33-CTS.shaders.preprocessor.definitions.*
>>>> has 4 tests the undefine these,
>>>>
>>>> I can't find anything in the spec saying that isn't correct.
>>>>
>>>> Signed-off-by: Dave Airlie <airlied at redhat.com>
>>>> ---
>>>>  src/glsl/glcpp/glcpp-parse.y | 4 +---
>>>>  1 file changed, 1 insertion(+), 3 deletions(-)
>>>>
>>>> diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
>>>> index 18e50af..77010b4 100644
>>>> --- a/src/glsl/glcpp/glcpp-parse.y
>>>> +++ b/src/glsl/glcpp/glcpp-parse.y
>>>> @@ -289,9 +289,7 @@ control_line_success:
>>>>         } IDENTIFIER NEWLINE {
>>>>                 macro_t *macro;
>>>>                 if (strcmp("__LINE__", $4) == 0
>>>> -                   || strcmp("__FILE__", $4) == 0
>>>> -                   || strcmp("__VERSION__", $4) == 0
>>>> -                   || strncmp("GL_", $4, 3) == 0)
>>>
>>> From GLSL 4.50 page 12, section 3.3:
>>>
>>> All macro
>>> names prefixed with “GL_” (“GL” followed by a single underscore) are
>>> also reserved, and defining such a
>>> name results in a compile-time error. That said I don't see anything
>>> about redefining __FILE__.
>>
>> Okay that must be new language brought it at some point, at least 4.2
>> has older language
>> which means it should be conditional on #version on whether GL_ can be done.
>>
>> uggh, maybe I can try again :-)
>
> Ah it's all a mess, I'll run away and put the tests on the need work list.
>
> Dave.


More information about the mesa-dev mailing list