glsl: use glsl_strtof() instead of glsl_strtod()
Since the result of those calls is always assigned to a float. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -399,23 +399,23 @@ layout {
|
||||
}
|
||||
|
||||
[0-9]+\.[0-9]+([eE][+-]?[0-9]+)?[fF]? {
|
||||
yylval->real = glsl_strtod(yytext, NULL);
|
||||
yylval->real = glsl_strtof(yytext, NULL);
|
||||
return FLOATCONSTANT;
|
||||
}
|
||||
\.[0-9]+([eE][+-]?[0-9]+)?[fF]? {
|
||||
yylval->real = glsl_strtod(yytext, NULL);
|
||||
yylval->real = glsl_strtof(yytext, NULL);
|
||||
return FLOATCONSTANT;
|
||||
}
|
||||
[0-9]+\.([eE][+-]?[0-9]+)?[fF]? {
|
||||
yylval->real = glsl_strtod(yytext, NULL);
|
||||
yylval->real = glsl_strtof(yytext, NULL);
|
||||
return FLOATCONSTANT;
|
||||
}
|
||||
[0-9]+[eE][+-]?[0-9]+[fF]? {
|
||||
yylval->real = glsl_strtod(yytext, NULL);
|
||||
yylval->real = glsl_strtof(yytext, NULL);
|
||||
return FLOATCONSTANT;
|
||||
}
|
||||
[0-9]+[fF] {
|
||||
yylval->real = glsl_strtod(yytext, NULL);
|
||||
yylval->real = glsl_strtof(yytext, NULL);
|
||||
return FLOATCONSTANT;
|
||||
}
|
||||
|
||||
|
@@ -66,18 +66,18 @@ read_atom(void *ctx, const char *&src, char *&symbol_buffer)
|
||||
return NULL; // no atom
|
||||
|
||||
// Check for the special symbol '+INF', which means +Infinity. Note: C99
|
||||
// requires strtod to parse '+INF' as +Infinity, but we still support some
|
||||
// requires strtof to parse '+INF' as +Infinity, but we still support some
|
||||
// non-C99-compliant compilers (e.g. MSVC).
|
||||
if (n == 4 && strncmp(src, "+INF", 4) == 0) {
|
||||
expr = new(ctx) s_float(std::numeric_limits<float>::infinity());
|
||||
} else {
|
||||
// Check if the atom is a number.
|
||||
char *float_end = NULL;
|
||||
double f = glsl_strtod(src, &float_end);
|
||||
float f = glsl_strtof(src, &float_end);
|
||||
if (float_end != src) {
|
||||
char *int_end = NULL;
|
||||
int i = strtol(src, &int_end, 10);
|
||||
// If strtod matched more characters, it must have a decimal part
|
||||
// If strtof matched more characters, it must have a decimal part
|
||||
if (float_end > int_end)
|
||||
expr = new(ctx) s_float(f);
|
||||
else
|
||||
|
Reference in New Issue
Block a user