source:
tests/exceptions/trash.cfa@
9f70a67b
| Last change on this file since 9f70a67b was d00d581, checked in by , 4 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.