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