
Whenever, possible, use ASSERT_SAME_TYPE instead of static_assert along with std::is_same in the depr header tests. This prevents dragging in multiple headers unrelated to the header being tested, which can (and has) hidden issues. Also, add a couple of tests to ensure that basic declarations in <stddef.h> and <stdint.h> are available when including just those headers, since the rest of the tests for those types require pulling in additional dependencies. Differential Revision: https://reviews.llvm.org/D145116
48 lines
950 B
C++
48 lines
950 B
C++
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// UNSUPPORTED: no-localization
|
|
|
|
// <locale.h>
|
|
|
|
#include <locale.h>
|
|
|
|
#include "test_macros.h"
|
|
|
|
#ifndef LC_ALL
|
|
#error LC_ALL not defined
|
|
#endif
|
|
|
|
#ifndef LC_COLLATE
|
|
#error LC_COLLATE not defined
|
|
#endif
|
|
|
|
#ifndef LC_CTYPE
|
|
#error LC_CTYPE not defined
|
|
#endif
|
|
|
|
#ifndef LC_MONETARY
|
|
#error LC_MONETARY not defined
|
|
#endif
|
|
|
|
#ifndef LC_NUMERIC
|
|
#error LC_NUMERIC not defined
|
|
#endif
|
|
|
|
#ifndef LC_TIME
|
|
#error LC_TIME not defined
|
|
#endif
|
|
|
|
#ifndef NULL
|
|
#error NULL not defined
|
|
#endif
|
|
|
|
lconv lc;
|
|
ASSERT_SAME_TYPE(char*, decltype(setlocale(0, "")));
|
|
ASSERT_SAME_TYPE(lconv*, decltype(localeconv()));
|