1e903671bSAmir Ayupov #include <stdio.h> 2e903671bSAmir Ayupov 3e903671bSAmir Ayupov class ExcA {}; 4e903671bSAmir Ayupov class ExcB {}; 5e903671bSAmir Ayupov class ExcC {}; 6e903671bSAmir Ayupov class ExcD {}; 7e903671bSAmir Ayupov class ExcE {}; 8e903671bSAmir Ayupov class ExcF {}; 9e903671bSAmir Ayupov class ExcG {}; 10e903671bSAmir Ayupov foo(int a)11e903671bSAmir Ayupovvoid foo(int a) 12e903671bSAmir Ayupov { 13e903671bSAmir Ayupov if (a > 1) 14e903671bSAmir Ayupov throw ExcG(); 15e903671bSAmir Ayupov else 16e903671bSAmir Ayupov throw ExcC(); 17e903671bSAmir Ayupov } 18e903671bSAmir Ayupov main(int argc,char ** argv)19e903671bSAmir Ayupovint main(int argc, char **argv) 20e903671bSAmir Ayupov { 21e903671bSAmir Ayupov asm volatile ("nop;nop;nop;nop;nop"); 22e903671bSAmir Ayupov try { 23e903671bSAmir Ayupov try { 24e903671bSAmir Ayupov asm volatile ("nop;nop;nop;nop;nop"); 25e903671bSAmir Ayupov throw ExcA(); 26e903671bSAmir Ayupov } catch (ExcA) { 27e903671bSAmir Ayupov asm volatile ("nop;nop;nop;nop;nop"); 28e903671bSAmir Ayupov printf("catch 2\n"); 29e903671bSAmir Ayupov throw new int(); 30e903671bSAmir Ayupov } 31e903671bSAmir Ayupov } catch (...) { 32e903671bSAmir Ayupov asm volatile ("nop;nop;nop;nop;nop"); 33e903671bSAmir Ayupov printf("catch 1\n"); 34e903671bSAmir Ayupov } 35e903671bSAmir Ayupov 36e903671bSAmir Ayupov try { 37e903671bSAmir Ayupov asm volatile ("nop;nop;nop;nop;nop"); 38e903671bSAmir Ayupov try { 39e903671bSAmir Ayupov asm volatile ("nop;nop;nop;nop;nop"); 40*a80e1e49SAmir Ayupov foo(argc); 41e903671bSAmir Ayupov } catch (ExcC) { 42e903671bSAmir Ayupov asm volatile ("nop;nop;nop;nop;nop"); 43e903671bSAmir Ayupov printf("caught ExcC\n"); 44e903671bSAmir Ayupov } 45e903671bSAmir Ayupov } catch (ExcG) { 46e903671bSAmir Ayupov asm volatile ("nop;nop;nop;nop;nop"); 47e903671bSAmir Ayupov printf("caught ExcG\n"); 48e903671bSAmir Ayupov } 49e903671bSAmir Ayupov 50e903671bSAmir Ayupov return 0; 51e903671bSAmir Ayupov } 52