On 03/18/2015 11:21 AM, Matt Turner wrote:
On Wed, Mar 18, 2015 at 10:18 AM, Matt Turner <matts...@gmail.com> wrote:
diff --git a/src/glsl/s_expression.cpp b/src/glsl/s_expression.cpp
index 7eaa491..f82e155 100644
--- a/src/glsl/s_expression.cpp
+++ b/src/glsl/s_expression.cpp
@@ -70,7 +70,7 @@ read_atom(void *ctx, const char *&src, char *&symbol_buffer)
     // 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());
+      expr = new(ctx) s_float(INFINITY);
     } else {
        // Check if the atom is a number.
        char *float_end = NULL;
--

There's a comment here seen at the top of this hunk that says

// Check for the special symbol '+INF', which means +Infinity.  Note: C99
// requires strtof to parse '+INF' as +Infinity, but we still support some
// non-C99-compliant compilers (e.g. MSVC).

could an MSVC user test if strof properly parses +INF with the
required versions of MSVC?

I had to fix that problem in piglit a while ago:

commit dc2e8e59819beee6018770272761c136063c3e0b
Author: Brian Paul <bri...@vmware.com>
Date:   Tue Jul 15 08:17:29 2014 -0600

    shader_runner: wrap strtod() to parse "inf" with MSVC

    MSVC's strtod() function does not parse "inf" or "-inf" so add a
    wrapper function to do that.  Several generated shader tests use
    inf uniforms.


And Jose had a follow-on patch:
commit 4fbad1b5b5cc99f4118b5840d758e21f9dd5829d
Author: José Fonseca <jfons...@vmware.com>
Date:   Fri Nov 7 12:37:05 2014 +0000

    tests/util: INFINITY/NAN are defined on MSVC 2013.

    Reviewed-by: Emil Velikov <emil.l.veli...@gmail.com>

But I think the underlying strtod() problem (and I bet strtof()) remains AFIAK.

-Brian

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

Reply via email to