[Mesa-dev] [PATCH] fix compilation of glsl_lexer.ll with msvc

Ian Romanick idr at freedesktop.org
Mon Oct 31 12:33:56 PDT 2011


On 10/29/2011 02:50 AM, Kenneth Graunke wrote:
> On 10/29/2011 01:42 AM, Morgan Armand wrote:
>> strtoull is not supported on msvc (as there is no C99 support).
>>
>> ---
>>   src/glsl/glsl_lexer.ll |    4 ++++
>>   1 files changed, 4 insertions(+), 0 deletions(-)
>>
>> diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll
>> index e444536..00065d5 100644
>> --- a/src/glsl/glsl_lexer.ll
>> +++ b/src/glsl/glsl_lexer.ll
>> @@ -93,7 +93,11 @@ literal_integer(char *text, int len, struct
>> _mesa_glsl_parse_state *state,
>>      if (base == 16)
>>         digits += 2;
>>
>> +#ifdef _MSC_VER
>> +   __int64 value = _strtoui64(digits, NULL, base);
>
> Presumably this should be "unsigned __int64" to match the code below?
>
>> +#else
>>      unsigned long long value = strtoull(digits, NULL, base);
>> +#endif
>>
>>      lval->n = (int)value;
>
> I kind of wish we just had c99.c/c99.h files with #ifdef MSVC guards
> that defined the necessary missing C99 functions, with their normal
> names and arguments, in terms of their MSVC equivalent.  Then we
> wouldn't need to litter the code with workarounds.

We already have a bunch of stuff like that in src/mesa/main/imports.h, 
and this should join the others.

> Though, that's something for a later time.


More information about the mesa-dev mailing list