1#include <unistd.h>
2
3#ifdef CHECK_STACK_ALIGNMENT
4#include <stdlib.h>
5
6extern "C" int check_stack_alignment(void);
7#endif
8
9class Test {
10public:
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
37Test test;
38