Summary: Because `locale.h` isn't part of the libc++ modules the class definitions it provides are exported as part of `__locale` (since it happens to be build first). This breaks `<clocale>` which exports `std::lconv` without including `<__locale>`. This patch implements `locale.h` to fix this issue, it also adds support for testing libc++ with modules. Reviewers: mclow.lists, rsmith, EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26826 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@287413 91177308-0d34-0410-b5e6-96231b3b80d8
24 lines
605 B
C++
24 lines
605 B
C++
//===----------------------------------------------------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is dual licensed under the MIT and the University of Illinois Open
|
|
// Source Licenses. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// REQUIRES: modules-support
|
|
|
|
// RUN: %build_module
|
|
|
|
#include <clocale>
|
|
|
|
#define TEST(...) do { using T = decltype( __VA_ARGS__ ); } while(false)
|
|
|
|
int main() {
|
|
std::lconv l; ((void)l);
|
|
|
|
TEST(std::setlocale(0, ""));
|
|
TEST(std::localeconv());
|
|
}
|