11.1Sjoerg#include <unistd.h>
21.1Sjoerg
31.2Sjoerg#ifdef CHECK_STACK_ALIGNMENT
41.2Sjoerg#include <stdlib.h>
51.2Sjoerg
61.2Sjoergextern "C" int check_stack_alignment(void);
71.2Sjoerg#endif
81.2Sjoerg
91.1Sjoergclass Test {
101.1Sjoergpublic:
111.1Sjoerg	Test()
121.1Sjoerg	{
131.1Sjoerg		static const char msg[] = "constructor executed\n";
141.1Sjoerg		write(STDOUT_FILENO, msg, sizeof(msg) - 1);
151.2Sjoerg#ifdef CHECK_STACK_ALIGNMENT
161.2Sjoerg		if (!check_stack_alignment()) {
171.2Sjoerg			static const char msg2[] = "stack unaligned \n";
181.2Sjoerg			write(STDOUT_FILENO, msg2, sizeof(msg2) - 1);
191.2Sjoerg			exit(1);
201.2Sjoerg		}
211.2Sjoerg#endif
221.1Sjoerg	}
231.1Sjoerg	~Test()
241.1Sjoerg	{
251.1Sjoerg		static const char msg[] = "destructor executed\n";
261.1Sjoerg		write(STDOUT_FILENO, msg, sizeof(msg) - 1);
271.2Sjoerg#ifdef CHECK_STACK_ALIGNMENT
281.2Sjoerg		if (!check_stack_alignment()) {
291.2Sjoerg			static const char msg2[] = "stack unaligned \n";
301.2Sjoerg			write(STDOUT_FILENO, msg2, sizeof(msg2) - 1);
311.2Sjoerg			exit(1);
321.2Sjoerg		}
331.2Sjoerg#endif
341.1Sjoerg	}
351.1Sjoerg};
361.1Sjoerg
371.1SjoergTest test;
38