aboutsummaryrefslogtreecommitdiff
path: root/final/ABI-Testsuite/test/s3_3_5/s1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'final/ABI-Testsuite/test/s3_3_5/s1.cpp')
-rwxr-xr-xfinal/ABI-Testsuite/test/s3_3_5/s1.cpp154
1 files changed, 154 insertions, 0 deletions
diff --git a/final/ABI-Testsuite/test/s3_3_5/s1.cpp b/final/ABI-Testsuite/test/s3_3_5/s1.cpp
new file mode 100755
index 00000000..499739a5
--- /dev/null
+++ b/final/ABI-Testsuite/test/s3_3_5/s1.cpp
@@ -0,0 +1,154 @@
+// 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
+// RUN: cxx_compiler %s -c -o %t.o
+// RUN: linker %t.o -o %t%exeext
+// RUN: runtool %t%exeext | tee %t.out | FileCheck %s
+
+// section 1: testing number of functions registered with atexit()
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int global_counter = 0;
+
+void fn01() { printf("%s()\n", __FUNCTION__); }
+void fn02() { printf("%s()\n", __FUNCTION__); }
+void fn03() { printf("%s()\n", __FUNCTION__); }
+void fn04() { printf("%s()\n", __FUNCTION__); }
+void fn05() { printf("%s()\n", __FUNCTION__); }
+void fn06() { printf("%s()\n", __FUNCTION__); }
+void fn07() { printf("%s()\n", __FUNCTION__); }
+void fn08() { printf("%s()\n", __FUNCTION__); }
+void fn09() { printf("%s()\n", __FUNCTION__); }
+void fn10() { printf("%s()\n", __FUNCTION__); }
+
+void fn11() { printf("%s()\n", __FUNCTION__); }
+void fn12() { printf("%s()\n", __FUNCTION__); }
+void fn13() { printf("%s()\n", __FUNCTION__); }
+void fn14() { printf("%s()\n", __FUNCTION__); }
+void fn15() { printf("%s()\n", __FUNCTION__); }
+void fn16() { printf("%s()\n", __FUNCTION__); }
+void fn17() { printf("%s()\n", __FUNCTION__); }
+void fn18() { printf("%s()\n", __FUNCTION__); }
+void fn19() { printf("%s()\n", __FUNCTION__); }
+void fn20() { printf("%s()\n", __FUNCTION__); }
+
+void fn21() { printf("%s()\n", __FUNCTION__); }
+void fn22() { printf("%s()\n", __FUNCTION__); }
+void fn23() { printf("%s()\n", __FUNCTION__); }
+void fn24() { printf("%s()\n", __FUNCTION__); }
+void fn25() { printf("%s()\n", __FUNCTION__); }
+void fn26() { printf("%s()\n", __FUNCTION__); }
+void fn27() { printf("%s()\n", __FUNCTION__); }
+void fn28() { printf("%s()\n", __FUNCTION__); }
+void fn29() { printf("%s()\n", __FUNCTION__); }
+void fn30() { printf("%s()\n", __FUNCTION__); }
+
+void fn31() { printf("%s()\n", __FUNCTION__); }
+void fn32() { printf("%s()\n", __FUNCTION__); }
+void fn33() { printf("%s()\n", __FUNCTION__); }
+void fn34() { printf("%s()\n", __FUNCTION__); }
+void fn35() { printf("%s()\n", __FUNCTION__); }
+void fn36() { printf("%s()\n", __FUNCTION__); }
+void fn37() { printf("%s()\n", __FUNCTION__); }
+void fn38() { printf("%s()\n", __FUNCTION__); }
+void fn39() { printf("%s()\n", __FUNCTION__); }
+void fn40() { printf("%s()\n", __FUNCTION__); }
+
+void call_me_at_exit() { printf("global_counter = %d\n", ++global_counter); }
+
+int main(int argc, char *argv[]) {
+ // CHECK: In main()
+ printf("In main()\n");
+
+ // CHECK: fn40()
+ // CHECK: fn39()
+ // CHECK: fn38()
+ // CHECK: fn37()
+ // CHECK: fn36()
+ // CHECK: fn35()
+ // CHECK: fn34()
+ // CHECK: fn33()
+ // CHECK: fn32()
+ // CHECK: fn31()
+
+ // CHECK: fn30()
+ // CHECK: fn29()
+ // CHECK: fn28()
+ // CHECK: fn27()
+ // CHECK: fn26()
+ // CHECK: fn25()
+ // CHECK: fn24()
+ // CHECK: fn23()
+ // CHECK: fn22()
+ // CHECK: fn21()
+
+ // CHECK: fn20()
+ // CHECK: fn19()
+ // CHECK: fn18()
+ // CHECK: fn17()
+ // CHECK: fn16()
+ // CHECK: fn15()
+ // CHECK: fn14()
+ // CHECK: fn13()
+ // CHECK: fn12()
+ // CHECK: fn11()
+
+ // CHECK: fn10()
+ // CHECK: fn09()
+ // CHECK: fn08()
+ // CHECK: fn07()
+ // CHECK: fn06()
+ // CHECK: fn05()
+ // CHECK: fn04()
+ // CHECK: fn03()
+ // CHECK: fn02()
+ // CHECK: fn01()
+
+ atexit(fn01);
+ atexit(fn02);
+ atexit(fn03);
+ atexit(fn04);
+ atexit(fn05);
+ atexit(fn06);
+ atexit(fn07);
+ atexit(fn08);
+ atexit(fn09);
+ atexit(fn10);
+
+ atexit(fn11);
+ atexit(fn12);
+ atexit(fn13);
+ atexit(fn14);
+ atexit(fn15);
+ atexit(fn16);
+ atexit(fn17);
+ atexit(fn18);
+ atexit(fn19);
+ atexit(fn20);
+
+ atexit(fn21);
+ atexit(fn22);
+ atexit(fn23);
+ atexit(fn24);
+ atexit(fn25);
+ atexit(fn26);
+ atexit(fn27);
+ atexit(fn28);
+ atexit(fn29);
+ atexit(fn30);
+
+ atexit(fn31);
+ atexit(fn32);
+ atexit(fn33);
+ atexit(fn34);
+ atexit(fn35);
+ atexit(fn36);
+ atexit(fn37);
+ atexit(fn38);
+ atexit(fn39);
+ atexit(fn40);
+
+ return 0;
+}