1 1.1 joerg #include <unistd.h> 2 1.1 joerg 3 1.2 joerg #ifdef CHECK_STACK_ALIGNMENT 4 1.2 joerg #include <stdlib.h> 5 1.2 joerg 6 1.2 joerg extern "C" int check_stack_alignment(void); 7 1.2 joerg #endif 8 1.2 joerg 9 1.1 joerg class Test2 { 10 1.1 joerg public: 11 1.1 joerg Test2() 12 1.1 joerg { 13 1.1 joerg static const char msg[] = "constructor2 executed\n"; 14 1.1 joerg write(STDOUT_FILENO, msg, sizeof(msg) - 1); 15 1.2 joerg #ifdef CHECK_STACK_ALIGNMENT 16 1.2 joerg if (!check_stack_alignment()) { 17 1.2 joerg static const char msg2[] = "stack unaligned \n"; 18 1.2 joerg write(STDOUT_FILENO, msg2, sizeof(msg2) - 1); 19 1.2 joerg exit(1); 20 1.2 joerg } 21 1.2 joerg #endif 22 1.1 joerg } 23 1.1 joerg ~Test2() 24 1.1 joerg { 25 1.1 joerg static const char msg[] = "destructor2 executed\n"; 26 1.1 joerg write(STDOUT_FILENO, msg, sizeof(msg) - 1); 27 1.2 joerg #ifdef CHECK_STACK_ALIGNMENT 28 1.2 joerg if (!check_stack_alignment()) { 29 1.2 joerg static const char msg2[] = "stack unaligned \n"; 30 1.2 joerg write(STDOUT_FILENO, msg2, sizeof(msg2) - 1); 31 1.2 joerg exit(1); 32 1.2 joerg } 33 1.2 joerg #endif 34 1.1 joerg } 35 1.1 joerg }; 36 1.1 joerg 37 1.1 joerg Test2 test2; 38