/* Convert string to double, using the C locale.
- Copyright (C) 2003-2004, 2006, 2009-2010 Free Software Foundation, Inc.
+ Copyright (C) 2003-2004, 2006, 2009-2013 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
# define STRTOD strtod
#endif
-#ifdef LC_ALL_MASK
+#if defined LC_ALL_MASK && (LONG ? HAVE_STRTOLD_L : HAVE_STRTOD_L)
/* Cache for the C locale object.
Marked volatile so that different threads see the same value
/* Return the C locale object, or (locale_t) 0 with errno set
if it cannot be created. */
-static inline locale_t
+static locale_t
c_locale (void)
{
if (!c_locale_cache)
{
DOUBLE r;
-#ifdef LC_ALL_MASK
+#if defined LC_ALL_MASK && (LONG ? HAVE_STRTOLD_L : HAVE_STRTOD_L)
locale_t locale = c_locale ();
if (!locale)