]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/netbsd-tests/lib/csu/h_initfini_common.cxx
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / netbsd-tests / lib / csu / h_initfini_common.cxx
1 #include <unistd.h>
2
3 #ifdef CHECK_STACK_ALIGNMENT
4 #include <stdlib.h>
5
6 extern "C" int check_stack_alignment(void);
7 #endif
8
9 class Test {
10 public:
11         Test()
12         {
13                 static const char msg[] = "constructor executed\n";
14                 write(STDOUT_FILENO, msg, sizeof(msg) - 1);
15 #ifdef CHECK_STACK_ALIGNMENT
16                 if (!check_stack_alignment()) {
17                         static const char msg2[] = "stack unaligned \n";
18                         write(STDOUT_FILENO, msg2, sizeof(msg2) - 1);
19                         exit(1);
20                 }
21 #endif
22         }
23         ~Test()
24         {
25                 static const char msg[] = "destructor executed\n";
26                 write(STDOUT_FILENO, msg, sizeof(msg) - 1);
27 #ifdef CHECK_STACK_ALIGNMENT
28                 if (!check_stack_alignment()) {
29                         static const char msg2[] = "stack unaligned \n";
30                         write(STDOUT_FILENO, msg2, sizeof(msg2) - 1);
31                         exit(1);
32                 }
33 #endif
34         }
35 };
36
37 Test test;