forked from OSchip/llvm-project
[runtimes] Use int main(int, char**) consistently in tests
This is needed when running the tests in Freestanding mode, where main() isn't treated specially. In Freestanding, main() doesn't get mangled as extern "C", so whatever runtime we're using fails to find the entry point. One way to solve this problem is to define a symbol alias from __Z4mainiPPc to _main, however this requires all definitions of main() to have the same mangling. Hence this commit.
This commit is contained in:
parent
2b0c5d76a6
commit
504bc07d1a
|
@ -24,5 +24,3 @@
|
|||
# error M_PI not defined
|
||||
# endif
|
||||
#endif
|
||||
|
||||
int main() { }
|
||||
|
|
|
@ -261,5 +261,3 @@
|
|||
#ifndef UINTMAX_C
|
||||
#error UINTMAX_C not defined
|
||||
#endif
|
||||
|
||||
int main() { }
|
||||
|
|
|
@ -258,5 +258,3 @@
|
|||
#ifndef UINTMAX_C
|
||||
#error UINTMAX_C not defined
|
||||
#endif
|
||||
|
||||
int main() { }
|
||||
|
|
|
@ -32,12 +32,13 @@ void register2();
|
|||
#elif defined(MAIN)
|
||||
std::vector<std::type_index> registry;
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
register1();
|
||||
register2();
|
||||
|
||||
assert(registry.size() == 2);
|
||||
assert(registry[0] != registry[1]);
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
# error
|
||||
|
|
|
@ -32,12 +32,13 @@ void register2();
|
|||
#elif defined(MAIN)
|
||||
std::vector<std::type_index> registry;
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
register1();
|
||||
register2();
|
||||
|
||||
assert(registry.size() == 2);
|
||||
assert(registry[0] == registry[1]);
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
# error
|
||||
|
|
|
@ -285,5 +285,3 @@ TEST_MACROS();
|
|||
TEST_MACROS();
|
||||
#include <ext/hash_set>
|
||||
TEST_MACROS();
|
||||
|
||||
int main() { }
|
||||
|
|
|
@ -170,5 +170,3 @@
|
|||
#ifdef assert
|
||||
#error "Do not include cassert or assert.h in standard header files"
|
||||
#endif
|
||||
|
||||
int main() { }
|
||||
|
|
|
@ -77,7 +77,7 @@ void test_float() {
|
|||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
test<short>();
|
||||
test<unsigned short>();
|
||||
test<int>();
|
||||
|
@ -87,4 +87,5 @@ int main() {
|
|||
test_float<short>();
|
||||
test_float<int>();
|
||||
test_float<long long>();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
struct Foo { };
|
||||
typedef Foo::x x;
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -10,4 +10,4 @@
|
|||
|
||||
// Make sure the test DOES NOT pass if it succeeds at compile-time
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -13,4 +13,4 @@
|
|||
struct Foo { };
|
||||
typedef Foo::x x;
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -8,4 +8,4 @@
|
|||
|
||||
// Make sure the test passes if it succeeds to compile
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
extern void this_is_an_undefined_symbol();
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
this_is_an_undefined_symbol();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,6 @@
|
|||
|
||||
// Make sure the test passes even if there's a runtime error, i.e. it isn't run.
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -13,4 +13,4 @@
|
|||
|
||||
// UNSUPPORTED: verify-support
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -16,4 +16,4 @@
|
|||
// Note: For the purpose of this test, make sure the file would otherwise
|
||||
// compile to make sure we really fail due to a lack of markup.
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -14,4 +14,4 @@
|
|||
struct Foo { };
|
||||
typedef Foo::x x; // expected-error{{no type named 'x' in 'Foo'}}
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -15,4 +15,4 @@
|
|||
struct Foo { };
|
||||
typedef Foo::x x; // expected-error{{this is not found in the errors}}
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -13,4 +13,4 @@
|
|||
struct Foo { };
|
||||
typedef Foo::x x;
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
extern void this_is_an_undefined_symbol();
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
this_is_an_undefined_symbol();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -10,4 +10,4 @@
|
|||
|
||||
// Make sure the test DOES NOT pass if it succeeds to link.
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -13,4 +13,4 @@
|
|||
struct Foo { };
|
||||
typedef Foo::x x;
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
extern void this_is_an_undefined_symbol();
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
this_is_an_undefined_symbol();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -8,4 +8,4 @@
|
|||
|
||||
// Make sure the test passes if it succeeds to link.
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
// Make sure the test passes if it succeeds to link, even though it would have
|
||||
// failed at runtime.
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -13,4 +13,4 @@
|
|||
struct Foo { };
|
||||
typedef Foo::x x;
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
extern void this_is_an_undefined_symbol();
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
this_is_an_undefined_symbol();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
|
||||
// Make sure the test DOES NOT pass if it fails at runtime.
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,6 @@
|
|||
|
||||
// Make sure the test passes pass if it succeeds at runtime.
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,6 @@
|
|||
// TODO: We don't enable -Werror on GCC right now, because too many tests fail.
|
||||
// UNSUPPORTED: gcc
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
int foo;
|
||||
}
|
||||
|
|
|
@ -15,4 +15,4 @@
|
|||
struct Foo { };
|
||||
typedef Foo::x x;
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
extern void this_is_an_undefined_symbol();
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
this_is_an_undefined_symbol();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,6 @@
|
|||
# error "arc should not be enabled by default"
|
||||
#endif
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -12,6 +12,6 @@
|
|||
|
||||
// Make sure the test DOES NOT pass if it fails at runtime.
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
|
||||
// Make sure the test passes pass if it succeeds at runtime.
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,6 @@
|
|||
@interface Foo
|
||||
@end
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,6 @@
|
|||
struct Foo { };
|
||||
typedef Foo::x x;
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
extern void this_is_an_undefined_symbol();
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
this_is_an_undefined_symbol();
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,6 @@
|
|||
|
||||
// Make sure the test passes if it fails at runtime.
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
|
||||
// Make sure the test DOES NOT pass if it succeeds at runtime.
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
// RUN: %{build} -Wunused-variable
|
||||
// RUN: %{run}
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
int foo;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -14,4 +14,4 @@
|
|||
// Note: For the purpose of this test, make sure the file would otherwise
|
||||
// compile to make sure we really fail due to a lack of markup.
|
||||
|
||||
int main() { }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
// ADDITIONAL_COMPILE_FLAGS: -Wunused-variable
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
int foo; // expected-warning {{unused variable}}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -14,8 +14,9 @@
|
|||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
std::string s1(10u, '-', std::allocator<char>()); (void)s1;
|
||||
std::string s2("hello", std::allocator<char>()); (void)s2;
|
||||
std::string s3("hello"); (void)s3;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -38,8 +38,9 @@ Func CreateFunc() {
|
|||
return f;
|
||||
}
|
||||
#else
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
Func f = CreateFunc();
|
||||
f(42);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include <functional>
|
||||
#include "test_macros.h"
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
// Note:
|
||||
// We use sizeof() to require it to be a complete type. We don't create a
|
||||
// variable because otherwise we get two warnings for each variable (the
|
||||
|
@ -25,4 +25,5 @@ int main() {
|
|||
(void)sizeof(std::function<void (int)>); // expected-warning {{'function<void (int)>' is deprecated}}
|
||||
(void)sizeof(std::function<void (int, int)>); // expected-warning {{'function<void (int, int)>' is deprecated}}
|
||||
(void)sizeof(std::function<void (int, int, int)>); // expected-warning {{'function<void (int, int, int)>' is deprecated}}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -112,7 +112,8 @@ static_assert(__COUNTER__ >= 1000, "");
|
|||
void fn1(T1 x) { DoNotOptimize(&x); }
|
||||
void fn2(typename std::invoke_result_t<T1, int, int>::type x) { DoNotOptimize(&x); }
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
DoNotOptimize(&fn1);
|
||||
DoNotOptimize(&fn2);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ public:
|
|||
BadUserNoCookie& operator=(const BadUserNoCookie&) = default;
|
||||
};
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
// expected-error@memory:* 2 {{"The specified type does not meet the requirements of Cpp17MoveInsertable"}}
|
||||
|
||||
// Other diagnostics that might be seen as Clang tries to continue compiling:
|
||||
|
@ -47,5 +47,5 @@ int main() {
|
|||
BadUserNoCookie<2> c;
|
||||
x.push_back(c);
|
||||
}
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ struct Checker {
|
|||
|
||||
static Checker check;
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
assert(std::memcmp(check.cerr_mem_dump, (char const*)&std::cerr, sizeof(std::cerr)) == 0);
|
||||
assert(std::memcmp(check.cin_mem_dump, (char const*)&std::cin, sizeof(std::cin)) == 0);
|
||||
assert(std::memcmp(check.cout_mem_dump, (char const*)&std::cout, sizeof(std::cout)) == 0);
|
||||
|
@ -85,4 +85,5 @@ int main() {
|
|||
assert(std::memcmp(check.wcin_mem_dump, (char const*)&std::wcin, sizeof(std::wcin)) == 0);
|
||||
assert(std::memcmp(check.wcout_mem_dump, (char const*)&std::wcout, sizeof(std::wcout)) == 0);
|
||||
assert(std::memcmp(check.wclog_mem_dump, (char const*)&std::wclog, sizeof(std::wclog)) == 0);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -67,11 +67,12 @@ void A::operator delete(A* a, std::destroying_delete_t) {
|
|||
# endif
|
||||
#endif
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
// Ensure that we call the destroying delete and not the destructor.
|
||||
A* ap = A::New();
|
||||
assert(A_constructed);
|
||||
delete ap;
|
||||
assert(!A_destroyed);
|
||||
assert(A_destroying_deleted);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -42,11 +42,12 @@ constexpr bool test_constexpr(std::destroying_delete_t) {
|
|||
return true;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
static_assert(std::is_default_constructible<std::destroying_delete_t>::value, "");
|
||||
static_assert(!test_convertible<std::destroying_delete_t>(), "");
|
||||
constexpr std::destroying_delete_t dd{};
|
||||
static_assert((dd, true), "");
|
||||
static_assert(&dd != &std::destroying_delete, "");
|
||||
static_assert(test_constexpr(std::destroying_delete), "");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -144,7 +144,7 @@ WIstreamManipFunction* get_wistreammanip_tu2(std::string func)
|
|||
|
||||
|
||||
#ifdef TU2
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
assert(get_formatflag_tu1("boolalpha") == get_formatflag_tu2("boolalpha"));
|
||||
assert(get_formatflag_tu1("noboolalpha") == get_formatflag_tu2("noboolalpha"));
|
||||
assert(get_formatflag_tu1("showbase") == get_formatflag_tu2("showbase"));
|
||||
|
@ -181,5 +181,7 @@ WIstreamManipFunction* get_wistreammanip_tu2(std::string func)
|
|||
assert(get_istreammanip_tu1("ws") == get_istreammanip_tu2("ws"));
|
||||
|
||||
assert(get_wistreammanip_tu1("ws") == get_wistreammanip_tu2("ws"));
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -31,7 +31,7 @@ constexpr bool toobig()
|
|||
return 0 == std::ceil2(std::numeric_limits<T>::max());
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
// Make sure we generate a compile-time error for UB
|
||||
static_assert(toobig<unsigned char>(), ""); // expected-error {{static_assert expression is not an integral constant expression}}
|
||||
|
@ -47,4 +47,6 @@ int main()
|
|||
static_assert(toobig<size_t>(), ""); // expected-error {{static_assert expression is not an integral constant expression}}
|
||||
static_assert(toobig<uintmax_t>(), ""); // expected-error {{static_assert expression is not an integral constant expression}}
|
||||
static_assert(toobig<uintptr_t>(), ""); // expected-error {{static_assert expression is not an integral constant expression}}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -62,7 +62,7 @@ void runtime_test()
|
|||
assert( std::ceil2(T(69)) == T(128));
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -145,4 +145,6 @@ int main()
|
|||
#ifndef _LIBCPP_HAS_NO_INT128
|
||||
runtime_test<__uint128_t>();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ void runtime_test()
|
|||
assert( std::floor2(T(130)) == T(128));
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -161,4 +161,5 @@ int main()
|
|||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ void runtime_test()
|
|||
assert(!std::ispow2(T(130)));
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -159,4 +159,5 @@ int main()
|
|||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ void runtime_test()
|
|||
assert( std::log2p1(T(130)) == T(8));
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -174,4 +174,5 @@ int main()
|
|||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ void runtime_test()
|
|||
assert( std::countl_one(T(~130)) == dig - 8);
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
{
|
||||
auto lambda = [](auto x) -> decltype(std::countl_one(x)) {};
|
||||
|
@ -162,4 +162,5 @@ int main()
|
|||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ void runtime_test()
|
|||
assert( std::countl_zero(T(130)) == dig - 8);
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -169,4 +169,5 @@ int main()
|
|||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ void runtime_test()
|
|||
assert( std::countr_one(T(130)) == 0);
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -167,4 +167,5 @@ int main()
|
|||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ void runtime_test()
|
|||
assert( std::countr_zero(T(130)) == 1);
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -166,4 +166,5 @@ int main()
|
|||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ void runtime_test()
|
|||
assert( std::popcount(T(130)) == 2);
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -164,4 +164,6 @@ int main()
|
|||
assert( std::popcount(val+1) == 2);
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ void runtime_test()
|
|||
assert( std::rotl(val, 7) == T((val << 7) + 127));
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -164,4 +164,5 @@ int main()
|
|||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -80,7 +80,7 @@ void runtime_test()
|
|||
assert( std::rotr(val, 7) == T((val >> 7) + uppers[7]));
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
|
||||
{
|
||||
|
@ -178,4 +178,6 @@ int main()
|
|||
assert( std::rotr(val, 166) == 84);
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -78,4 +78,7 @@ constexpr bool tests() {
|
|||
|
||||
static_assert(tests());
|
||||
|
||||
int main() { tests(); }
|
||||
int main(int, char**) {
|
||||
tests();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -26,4 +26,4 @@ int inv_sqrt3{std::numbers::inv_sqrt3_v<int>};
|
|||
int egamma{std::numbers::egamma_v<int>};
|
||||
int phi{std::numbers::phi_v<int>};
|
||||
|
||||
int main() { return 0; }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -79,4 +79,7 @@ constexpr bool tests() {
|
|||
|
||||
static_assert(tests());
|
||||
|
||||
int main() { tests(); }
|
||||
int main(int, char**) {
|
||||
tests();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -54,4 +54,4 @@ user std::numbers::egamma_v<user>{};
|
|||
template <>
|
||||
user std::numbers::phi_v<user>{};
|
||||
|
||||
int main() { return 0; }
|
||||
int main(int, char**) { return 0; }
|
||||
|
|
|
@ -83,4 +83,7 @@ constexpr bool tests() {
|
|||
|
||||
static_assert(tests());
|
||||
|
||||
int main() { tests(); }
|
||||
int main(int, char**) {
|
||||
tests();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include <regex>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
char str1[] = "\na";
|
||||
auto str1_scnd = str1 + 1;
|
||||
// Assert that match_prev_avail disables match_not_bol and this matches
|
||||
|
|
|
@ -21,6 +21,4 @@ struct HasDecl : std::false_type {};
|
|||
template <class SV>
|
||||
struct HasDecl<SV, decltype(static_cast<void>(std::declval<std::ostream&>() << std::declval<SV&>()))> : std::true_type {};
|
||||
|
||||
int main() {
|
||||
static_assert(HasDecl<std::string_view>::value, "streaming operator declaration not present");
|
||||
}
|
||||
static_assert(HasDecl<std::string_view>::value, "streaming operator declaration not present");
|
|
@ -22,8 +22,7 @@
|
|||
|
||||
std::mutex m;
|
||||
|
||||
int main()
|
||||
{
|
||||
int main(int, char**) {
|
||||
{
|
||||
m.lock();
|
||||
std::lock_guard<std::mutex> lg(m, std::adopt_lock);
|
||||
|
|
|
@ -25,8 +25,7 @@
|
|||
|
||||
std::mutex m;
|
||||
|
||||
int main()
|
||||
{
|
||||
int main(int, char**) {
|
||||
{
|
||||
std::lock_guard<std::mutex> lg(m);
|
||||
assert(m.try_lock() == false);
|
||||
|
|
|
@ -27,8 +27,9 @@ struct R { };
|
|||
struct f0 { R operator()() && { return {}; } };
|
||||
struct f1 { R operator()(int, ...) { return {}; } };
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
std::function f = f0{}; // expected-error{{no viable constructor or deduction guide for deduction of template arguments of 'function'}}
|
||||
std::function g = f1{}; // expected-error{{no viable constructor or deduction guide for deduction of template arguments of 'function'}}
|
||||
std::function h = nullptr; // expected-error{{no viable constructor or deduction guide for deduction of template arguments of 'function'}}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ DECLARE_FUNCTIONS_WITH_QUALS(13, const & noexcept);
|
|||
DECLARE_FUNCTIONS_WITH_QUALS(14, volatile & noexcept);
|
||||
DECLARE_FUNCTIONS_WITH_QUALS(15, const volatile & noexcept);
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
#define CHECK_FUNCTIONS(N) \
|
||||
do { \
|
||||
/* implicit */ \
|
||||
|
@ -114,6 +114,8 @@ int main() {
|
|||
CHECK_FUNCTIONS(13);
|
||||
CHECK_FUNCTIONS(14);
|
||||
CHECK_FUNCTIONS(15);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Make sure we fail in a SFINAE-friendly manner when we try to deduce
|
||||
|
|
|
@ -32,7 +32,7 @@ R f2(A1, A2) { return {}; }
|
|||
R f3(A1, A2, A3) { return {}; }
|
||||
R f4(A1 = {}) { return {}; }
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
{
|
||||
// implicit
|
||||
std::function a = f0;
|
||||
|
@ -109,4 +109,6 @@ int main() {
|
|||
std::function d{&f4};
|
||||
ASSERT_SAME_TYPE(decltype(d), std::function<R(A1)>);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ Foo& get_foo() {
|
|||
return foo;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
test();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ Foo& get_foo() {
|
|||
return foo;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
test();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ Foo& get_foo() {
|
|||
return foo;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
test();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ void test() {
|
|||
struct Foo { void operator()(int) const { } };
|
||||
Foo& get_foo() { static Foo foo; return foo; }
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
test();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ void call1(size_t* ntraced, bool do_throw) {
|
|||
call2(ntraced, do_throw);
|
||||
}
|
||||
|
||||
int main() {
|
||||
int main(int, char**) {
|
||||
size_t throw_ntraced = 0;
|
||||
size_t nothrow_ntraced = 0;
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
typedef char Array[4];
|
||||
Array a = {'H', 'i', '!', 0};
|
||||
|
@ -31,4 +31,6 @@ int main()
|
|||
catch (...)
|
||||
{
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
typedef char Array[4];
|
||||
Array a = {'H', 'i', '!', 0};
|
||||
|
@ -27,4 +27,6 @@ int main()
|
|||
{
|
||||
assert(false);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ void f2()
|
|||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -56,4 +56,6 @@ int main()
|
|||
assert(a.id_ == 3);
|
||||
}
|
||||
assert(A::count == 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ void f2()
|
|||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -81,4 +81,6 @@ int main()
|
|||
}
|
||||
assert(A::count == 0);
|
||||
assert(B::count == 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -181,7 +181,7 @@ void f4()
|
|||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -195,4 +195,6 @@ int main()
|
|||
assert(C1::count == 0);
|
||||
assert(C2::count == 0);
|
||||
assert(B::count == 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -204,7 +204,7 @@ void f5()
|
|||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -218,4 +218,6 @@ int main()
|
|||
assert(C1::count == 0);
|
||||
assert(C2::count == 0);
|
||||
assert(B::count == 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -136,12 +136,13 @@ void test6() {}
|
|||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
int main(int, char**) {
|
||||
test1();
|
||||
test2();
|
||||
test3();
|
||||
test4();
|
||||
test5();
|
||||
test6();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ bool can_convert(...) { return false; }
|
|||
|
||||
void f() {}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
typedef void Function();
|
||||
assert(!can_convert<Function&>(&f));
|
||||
|
@ -48,4 +48,6 @@ int main()
|
|||
{
|
||||
assert(false);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
void f() {}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
typedef void Function();
|
||||
try
|
||||
|
@ -28,4 +28,6 @@ int main()
|
|||
{
|
||||
assert(false);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -53,11 +53,13 @@ void check_deep() {
|
|||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
check<false, false>();
|
||||
check<false, true>();
|
||||
check<true, false>();
|
||||
check<true, true>();
|
||||
check_deep();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -30,7 +30,9 @@ void f1() noexcept
|
|||
assert(false);
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
f1();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -164,11 +164,13 @@ void test5()
|
|||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
test1();
|
||||
test2();
|
||||
test3();
|
||||
test4();
|
||||
test5();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -161,10 +161,12 @@ void test_void()
|
|||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
test1();
|
||||
test2();
|
||||
test_derived();
|
||||
test_void();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -60,11 +60,13 @@ void check_deep() {
|
|||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
check<false, false>();
|
||||
check<false, true>();
|
||||
check<true, false>();
|
||||
check<true, true>();
|
||||
check_deep();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -67,8 +67,10 @@ void test2()
|
|||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
test1();
|
||||
test2();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -130,7 +130,7 @@ struct generate_tests_imp<Throw, Catch, 0, first> {
|
|||
template <class Throw, class Catch, int level>
|
||||
struct generate_tests : generate_tests_imp<Throw, Catch, level, true> {};
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
generate_tests<int, int, 3>()();
|
||||
generate_tests<Base, Derived, 2>()();
|
||||
|
@ -141,4 +141,6 @@ int main()
|
|||
generate_tests<int A::*, int A::*, 3>()();
|
||||
generate_tests<int A::*, void, 2>()();
|
||||
generate_tests<void, int A::*, 2>()();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ void catch_nullptr_test() {
|
|||
}
|
||||
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
// catch naked nullptrs
|
||||
test1();
|
||||
|
@ -72,4 +72,6 @@ int main()
|
|||
catch_nullptr_test<int A::*>();
|
||||
catch_nullptr_test<const int A::*>();
|
||||
catch_nullptr_test<int A::**>();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -427,7 +427,7 @@ void f13()
|
|||
assert_cannot_catch<const volatile Base * const volatile &, Protected *, Protected>();
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
f1();
|
||||
f2();
|
||||
|
@ -442,4 +442,6 @@ int main()
|
|||
f11();
|
||||
f12();
|
||||
f13();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -176,7 +176,7 @@ void f5()
|
|||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int, char**)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -186,4 +186,6 @@ int main()
|
|||
catch (...)
|
||||
{
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue