X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Fnan.h;h=eb5fd95931edbdb3290056fcdb75faecd1738f16;hb=3b693f40840ff09b1965b9626d3220466daa95d6;hp=8aa8bf002d13bee20ece0aa6c4dea2ba3837422d;hpb=ecab4471c7da5d367a62c8db75ee54ed6d948e40;p=gnulib.git diff --git a/tests/nan.h b/tests/nan.h index 8aa8bf002..eb5fd9593 100644 --- a/tests/nan.h +++ b/tests/nan.h @@ -1,5 +1,5 @@ /* Macros for not-a-number. - Copyright (C) 2007-2009 Free Software Foundation, Inc. + Copyright (C) 2007-2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,8 +17,9 @@ /* NaNf () returns a 'float' not-a-number. */ -/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */ -#ifdef __DECC +/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke + on the expression 0.0 / 0.0. */ +#if defined __DECC || defined _MSC_VER static float NaNf () { @@ -32,8 +33,9 @@ NaNf () /* NaNd () returns a 'double' not-a-number. */ -/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */ -#ifdef __DECC +/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke + on the expression 0.0 / 0.0. */ +#if defined __DECC || defined _MSC_VER static double NaNd () { @@ -48,13 +50,21 @@ NaNd () /* NaNl () returns a 'long double' not-a-number. */ /* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the - runtime type conversion. */ + runtime type conversion. + The Microsoft MSVC 9 compiler chokes on the expression 0.0L / 0.0L. */ #ifdef __sgi static long double NaNl () { double zero = 0.0; return zero / zero; } +#elif defined _MSC_VER +static long double +NaNl () +{ + static long double zero = 0.0L; + return zero / zero; +} #else # define NaNl() (0.0L / 0.0L) #endif