#define _LIBCPP___LOCALE
#include <__config>
-
-#if defined(_LIBCPP_HAS_NO_LOCALIZATION)
-# error "Localization is not supported by this configuration of libc++"
-#endif
-
#include <string>
#include <memory>
#include <utility>
#include <__config>
+#if defined(_LIBCPP_HAS_NO_LOCALIZATION)
+# error "Localization is not supported by this configuration of libc++"
+#endif
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-#pragma GCC system_header
+# pragma GCC system_header
#endif
#include_next <locale.h>
// is ill-formed (no diagnostic required), per [using.headers]p3, but we permit
// it as an extension.
+#include <__config>
+
extern "C" {
#include <assert.h>
// complex.h is not supported in extern "C".
#include <inttypes.h>
#include <iso646.h>
#include <limits.h>
-#include <locale.h>
+#ifndef _LIBCPP_HAS_NO_LOCALIZATION
+# include <locale.h>
+#endif
#include <math.h>
#include <setjmp.h>
#include <signal.h>
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: libcpp-has-no-localization
+
// <locale.h>
#include <locale.h>
#include <cinttypes>
#include <ciso646>
#include <climits>
-#include <clocale>
#include <cmath>
#include <compare>
#include <complex>
#include <limits>
#include <limits.h>
#include <list>
-#include <locale.h>
#include <map>
#include <math.h>
#include <memory>
#include <wctype.h>
#ifndef _LIBCPP_HAS_NO_LOCALIZATION
+# include <clocale>
# include <codecvt>
# include <fstream>
# include <iomanip>
# include <ios>
# include <iostream>
# include <istream>
+# include <locale.h>
# include <locale>
# include <ostream>
# include <regex>
// RUN: %{cxx} -c -xc %s -fsyntax-only %{flags} %{compile_flags} -std=c99
+#include <__config>
+
#include <complex.h>
#include <ctype.h>
#include <errno.h>
#include <float.h>
#include <inttypes.h>
#include <limits.h>
-#include <locale.h>
+#ifndef _LIBCPP_HAS_NO_LOCALIZATION
+# include <locale.h>
+#endif
#include <math.h>
#include <setjmp.h>
#include <stdbool.h>
TEST_MACROS();
#include <climits>
TEST_MACROS();
-#include <clocale>
-TEST_MACROS();
#include <cmath>
TEST_MACROS();
#include <complex>
TEST_MACROS();
#include <list>
TEST_MACROS();
-#include <locale.h>
-TEST_MACROS();
#include <map>
TEST_MACROS();
#include <math.h>
TEST_MACROS();
#ifndef _LIBCPP_HAS_NO_LOCALIZATION
+# include <clocale>
+ TEST_MACROS();
# include <codecvt>
TEST_MACROS();
# include <fstream>
TEST_MACROS();
# include <locale>
TEST_MACROS();
+# include <locale.h>
+ TEST_MACROS();
# include <ostream>
TEST_MACROS();
# include <regex>
#include <cinttypes>
#include <ciso646>
#include <climits>
-#include <clocale>
#include <cmath>
#include <compare>
#include <complex>
#include <limits>
#include <limits.h>
#include <list>
-#include <locale.h>
#include <map>
#include <math.h>
#include <memory>
#include <wctype.h>
#ifndef _LIBCPP_HAS_NO_LOCALIZATION
+# include <clocale>
# include <codecvt>
# include <fstream>
# include <iomanip>
# include <iostream>
# include <istream>
# include <locale>
+# include <locale.h>
# include <ostream>
# include <regex>
# include <sstream>
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: libcpp-has-no-localization
+
// <locale.h>
#include <locale.h>
static_assert((std::is_same<decltype(setlocale(0, "")), char*>::value), "");
static_assert((std::is_same<decltype(localeconv()), lconv*>::value), "");
- return 0;
+ return 0;
}