Build libunwind, enable exceptions in libcxxabi and libcxx

This requires manually enabling sjlj exceptions, since libunwind
doesn't support the other exception handling mechanisms on windows
(yet).

Don't enable exceptions on aarch64 yet, since no exception handling
mechanism is implemented for windows on aarch64 yet.
This commit is contained in:
Martin Storsjö authored and Martin Storsjo committed 2017-10-04 09:14:02 +03:00
1 parent 1767090a94
commit ed1d1497a7
2 files changed
+109 -20

No files matched your search

+49
View File
@@ -0,0 +1,49 @@
#include <iostream>
#include <stdio.h>
class Hello {
public:
Hello() {
printf("Hello ctor\n");
}
~Hello() {
printf("Hello dtor\n");
}
};
Hello global_h;
class RecurseClass {
public:
RecurseClass(int v) : val(v) {
printf("ctor %d\n", val);
}
~RecurseClass() {
printf("dtor %d\n", val);
}
private:
int val;
};
void recurse(int val) {
RecurseClass obj(val);
if (val == 0) {
throw std::exception();
}
if (val == 5) {
try {
recurse(val - 1);
} catch (std::exception& e) {
printf("caught exception at %d\n", val);
}
} else {
recurse(val - 1);
}
printf("finishing function recurse %d\n", val);
}
int main(int argc, char* argv[]) {
std::cout<<"Hello world C++"<<std::endl;
recurse(10);
return 0;
}