source:
tests/exceptions/trash.cfa
@
bebfc2e
Last change on this file since bebfc2e was d00d581, checked in by , 3 years ago | |
---|---|
|
|
File size: 480 bytes |
Rev | Line | |
---|---|---|
[980fb4e] | 1 | // Make sure throw-catch during unwind does not trash internal data. |
2 | ||
[d00d581] | 3 | exception yin {}; |
4 | exception yang {}; | |
[980fb4e] | 5 | |
[d00d581] | 6 | vtable(yin) yin_vt; |
7 | vtable(yang) yang_vt; | |
[980fb4e] | 8 | |
9 | int main(int argc, char * argv[]) { | |
10 | try { | |
11 | try { | |
[ecfd758] | 12 | throw (yin){&yin_vt}; |
[980fb4e] | 13 | } finally { |
14 | try { | |
[ecfd758] | 15 | throw (yang){&yang_vt}; |
[980fb4e] | 16 | } catch (yin *) { |
17 | printf("inner yin\n"); | |
18 | } catch (yang *) { | |
19 | printf("inner yang\n"); | |
20 | } | |
21 | } | |
22 | } catch (yin *) { | |
23 | printf("outer yin\n"); | |
24 | } catch (yang *) { | |
25 | printf("outer yang\n"); | |
26 | } | |
27 | } |
Note: See TracBrowser
for help on using the repository browser.