diff options
author | JF Bastien <jfbastien@apple.com> | 2019-02-04 20:31:13 +0000 |
---|---|---|
committer | JF Bastien <jfbastien@apple.com> | 2019-02-04 20:31:13 +0000 |
commit | 2df59c50688c122bbcae7467d3eaf862c3ea3088 (patch) | |
tree | 29c9a3e1c54fe76a506ffecc0cc4d8fbaba5cb04 /libcxx/test/std/algorithms/alg.nonmodifying | |
parent | 6fd4e7fe0258ff71fe759535236883ea9060587c (diff) | |
download | bcm5719-llvm-2df59c50688c122bbcae7467d3eaf862c3ea3088.tar.gz bcm5719-llvm-2df59c50688c122bbcae7467d3eaf862c3ea3088.zip |
Support tests in freestanding
Summary:
Freestanding is *weird*. The standard allows it to differ in a bunch of odd
manners from regular C++, and the committee would like to improve that
situation. I'd like to make libc++ behave better with what freestanding should
be, so that it can be a tool we use in improving the standard. To do that we
need to try stuff out, both with "freestanding the language mode" and
"freestanding the library subset".
Let's start with the super basic: run the libc++ tests in freestanding, using
clang as the compiler, and see what works. The easiest hack to do this:
In utils/libcxx/test/config.py add:
self.cxx.compile_flags += ['-ffreestanding']
Run the tests and they all fail.
Why? Because in freestanding `main` isn't special. This "not special" property
has two effects: main doesn't get mangled, and main isn't allowed to omit its
`return` statement. The first means main gets mangled and the linker can't
create a valid executable for us to test. The second means we spew out warnings
(ew) and the compiler doesn't insert the `return` we omitted, and main just
falls of the end and does whatever undefined behavior (if you're luck, ud2
leading to non-zero return code).
Let's start my work with the basics. This patch changes all libc++ tests to
declare `main` as `int main(int, char**` so it mangles consistently (enabling us
to declare another `extern "C"` main for freestanding which calls the mangled
one), and adds `return 0;` to all places where it was missing. This touches 6124
files, and I apologize.
The former was done with The Magic Of Sed.
The later was done with a (not quite correct but decent) clang tool:
https://gist.github.com/jfbastien/793819ff360baa845483dde81170feed
This works for most tests, though I did have to adjust a few places when e.g.
the test runs with `-x c`, macros are used for main (such as for the filesystem
tests), etc.
Once this is in we can create a freestanding bot which will prevent further
regressions. After that, we can start the real work of supporting C++
freestanding fairly well in libc++.
<rdar://problem/47754795>
Reviewers: ldionne, mclow.lists, EricWF
Subscribers: christof, jkorous, dexonsmith, arphaman, miyuki, libcxx-commits
Differential Revision: https://reviews.llvm.org/D57624
llvm-svn: 353086
Diffstat (limited to 'libcxx/test/std/algorithms/alg.nonmodifying')
27 files changed, 81 insertions, 27 deletions
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find.pass.cpp index de03da4ba1d..6d57c5869ab 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find.pass.cpp @@ -30,7 +30,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 2, 0, 1, 2, 3}; const unsigned sa = sizeof(ia)/sizeof(ia[0]); @@ -47,4 +47,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find_pred.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find_pred.pass.cpp index a542cb81f17..c80bc9fff83 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find_pred.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find_pred.pass.cpp @@ -34,7 +34,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 2, 0, 1, 2, 3}; const unsigned sa = sizeof(ia)/sizeof(ia[0]); @@ -54,4 +54,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.all_of/all_of.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.all_of/all_of.pass.cpp index 61f6c2ceede..5c49878f6a4 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.all_of/all_of.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.all_of/all_of.pass.cpp @@ -36,7 +36,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { { int ia[] = {2, 4, 6, 8}; @@ -58,4 +58,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.any_of/any_of.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.any_of/any_of.pass.cpp index ea9f8a4c8d1..22ae581d64b 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.any_of/any_of.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.any_of/any_of.pass.cpp @@ -36,7 +36,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { { int ia[] = {2, 4, 6, 8}; @@ -66,4 +66,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp index f2e93719e5a..d864080df8d 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp @@ -29,7 +29,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 2, 0, 1, 2, 3}; const unsigned sa = sizeof(ia)/sizeof(ia[0]); @@ -43,4 +43,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp index 7f6be6a278f..978f5fcdbe5 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp @@ -36,7 +36,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 2, 0, 1, 2, 3}; const unsigned sa = sizeof(ia)/sizeof(ia[0]); @@ -53,4 +53,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp index 81d46ce62f1..afd57491a40 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp @@ -44,7 +44,7 @@ TEST_CONSTEXPR bool test_constexpr() { #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 3, 4, 5}; const unsigned s = sizeof(ia)/sizeof(ia[0]); @@ -88,4 +88,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal_pred.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal_pred.pass.cpp index 03de33a6b3f..2b9619b73ee 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal_pred.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal_pred.pass.cpp @@ -58,7 +58,7 @@ bool counting_equals ( const T &a, const T &b ) { return a == b; } -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 3, 4, 5}; const unsigned s = sizeof(ia)/sizeof(ia[0]); @@ -114,4 +114,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/find_end.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/find_end.pass.cpp index 36633ee12f4..3060528a8e8 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/find_end.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/find_end.pass.cpp @@ -62,7 +62,7 @@ test() assert(std::find_end(Iter1(ia), Iter1(ia), Iter2(b), Iter2(b+1)) == Iter1(ia)); } -int main() +int main(int, char**) { test<forward_iterator<const int*>, forward_iterator<const int*> >(); test<forward_iterator<const int*>, bidirectional_iterator<const int*> >(); @@ -77,4 +77,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/find_end_pred.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/find_end_pred.pass.cpp index 2b3ca1b0404..7358cf5f701 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/find_end_pred.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/find_end_pred.pass.cpp @@ -92,7 +92,7 @@ test() assert(count_equal::count <= 0); } -int main() +int main(int, char**) { test<forward_iterator<const int*>, forward_iterator<const int*> >(); test<forward_iterator<const int*>, bidirectional_iterator<const int*> >(); @@ -107,4 +107,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of.pass.cpp index 1df8c1b8270..04468f74103 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of.pass.cpp @@ -38,7 +38,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 3, 0, 1, 2, 3}; const unsigned sa = sizeof(ia)/sizeof(ia[0]); @@ -69,4 +69,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of_pred.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of_pred.pass.cpp index cb64ee80acb..3c32aee0e24 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of_pred.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of_pred.pass.cpp @@ -40,7 +40,7 @@ constexpr bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 3, 0, 1, 2, 3}; const unsigned sa = sizeof(ia)/sizeof(ia[0]); @@ -75,4 +75,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp index de7a4181c2d..9dc265f1854 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp @@ -29,7 +29,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 3, 4, 5}; const unsigned s = sizeof(ia)/sizeof(ia[0]); @@ -42,4 +42,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp index 7b0ae435a88..6151a55b8f6 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp @@ -37,7 +37,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 3, 4, 5}; const unsigned s = sizeof(ia)/sizeof(ia[0]); @@ -53,4 +53,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp index 90e952171d4..36a75426999 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp @@ -37,7 +37,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 3, 4, 5}; const unsigned s = sizeof(ia)/sizeof(ia[0]); @@ -53,4 +53,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each_n.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each_n.pass.cpp index b43acc13a57..f4dcd2d577a 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each_n.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each_n.pass.cpp @@ -40,7 +40,7 @@ struct for_each_test void operator()(int& i) {++i; ++count;} }; -int main() +int main(int, char**) { typedef input_iterator<int*> Iter; int ia[] = {0, 1, 2, 3, 4, 5}; @@ -76,4 +76,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/test.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/test.pass.cpp index 66336b2f9fa..4d129e75578 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/test.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/test.pass.cpp @@ -37,7 +37,7 @@ struct for_each_test void operator()(int& i) {++i; ++count;} }; -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 3, 4, 5}; const unsigned s = sizeof(ia)/sizeof(ia[0]); @@ -51,4 +51,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation.pass.cpp index 3173276d190..2a2c796caac 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation.pass.cpp @@ -35,7 +35,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { { const int ia[] = {0}; @@ -618,4 +618,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation_pred.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation_pred.pass.cpp index 914eccdcd02..ea4270ec409 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation_pred.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation_pred.pass.cpp @@ -55,7 +55,7 @@ struct eq { }; -int main() +int main(int, char**) { { const int ia[] = {0}; @@ -769,4 +769,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.none_of/none_of.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.none_of/none_of.pass.cpp index c77ffb220b5..f3a4fea9022 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.none_of/none_of.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.none_of/none_of.pass.cpp @@ -36,7 +36,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { { int ia[] = {2, 4, 6, 8}; @@ -66,4 +66,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search.pass.cpp index a3fedafdc85..5aaa832ded0 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search.pass.cpp @@ -95,7 +95,7 @@ test() assert(std::search(Iter1(ij), Iter1(ij+sj), Iter2(ik), Iter2(ik+sk)) == Iter1(ij+6)); } -int main() +int main(int, char**) { test<forward_iterator<const int*>, forward_iterator<const int*> >(); test<forward_iterator<const int*>, bidirectional_iterator<const int*> >(); @@ -121,4 +121,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp index 50d710e6735..3c86127f38b 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp @@ -79,7 +79,7 @@ test() (void)std::search_n(Iter(ic), Iter(ic+sc), UserDefinedIntegral<unsigned>(0), 0); } -int main() +int main(int, char**) { test<forward_iterator<const int*> >(); test<bidirectional_iterator<const int*> >(); @@ -88,4 +88,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp index befa432bf28..13568939099 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp @@ -158,7 +158,7 @@ test() count_equal::count = 0; } -int main() +int main(int, char**) { test<forward_iterator<const int*> >(); test<bidirectional_iterator<const int*> >(); @@ -167,4 +167,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_pred.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_pred.pass.cpp index e61f7f9f0f6..f835d2f0945 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_pred.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_pred.pass.cpp @@ -110,7 +110,7 @@ test() assert(count_equal::count <= sh*3); } -int main() +int main(int, char**) { test<forward_iterator<const int*>, forward_iterator<const int*> >(); test<forward_iterator<const int*>, bidirectional_iterator<const int*> >(); @@ -125,4 +125,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/mismatch/mismatch.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/mismatch/mismatch.pass.cpp index 74502d63156..72281b47fd7 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/mismatch/mismatch.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/mismatch/mismatch.pass.cpp @@ -58,7 +58,7 @@ TEST_CONSTEXPR bool test_constexpr() { } #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 2, 0, 1, 2, 3}; const unsigned sa = sizeof(ia)/sizeof(ia[0]); @@ -89,4 +89,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp index 2b21daab0b8..15edec03a25 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp @@ -68,7 +68,7 @@ TEST_CONSTEXPR bool test_constexpr() { #define HAS_FOUR_ITERATOR_VERSION #endif -int main() +int main(int, char**) { int ia[] = {0, 1, 2, 2, 0, 1, 2, 3}; const unsigned sa = sizeof(ia)/sizeof(ia[0]); @@ -114,4 +114,6 @@ int main() #if TEST_STD_VER > 17 static_assert(test_constexpr()); #endif + + return 0; } diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/nothing_to_do.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/nothing_to_do.pass.cpp index f77636c8475..1f764da05d6 100644 --- a/libcxx/test/std/algorithms/alg.nonmodifying/nothing_to_do.pass.cpp +++ b/libcxx/test/std/algorithms/alg.nonmodifying/nothing_to_do.pass.cpp @@ -6,6 +6,8 @@ // //===----------------------------------------------------------------------===// -int main() +int main(int, char**) { + + return 0; } |