mirror of
https://github.com/ThePhD/sol2.git
synced 2024-03-22 13:10:44 +08:00
35 lines
1.0 KiB
C++
35 lines
1.0 KiB
C++
#include <cstddef>
|
|
|
|
using f_ptr = unsigned int();
|
|
|
|
extern unsigned int regression_1000();
|
|
extern unsigned int regression_1008();
|
|
extern unsigned int regression_1067();
|
|
extern unsigned int regression_1072();
|
|
extern unsigned int regression_1087();
|
|
extern unsigned int regression_1095();
|
|
extern unsigned int regression_1096();
|
|
extern unsigned int regression_1149();
|
|
|
|
static f_ptr* const regression_tests_regressions[]
|
|
= { ®ression_1008, ®ression_1000, ®ression_1067, ®ression_1072, ®ression_1087, ®ression_1095, ®ression_1096, ®ression_1149 };
|
|
static const int regression_tests_sizeof_regressions = sizeof(regression_tests_regressions) / sizeof(regression_tests_regressions[0]);
|
|
|
|
int trampoline(f_ptr* f) {
|
|
try {
|
|
return f();
|
|
}
|
|
catch (...) {
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
int main(int, char*[]) {
|
|
int r = 0;
|
|
for (std::size_t i = 0; i < regression_tests_sizeof_regressions; ++i) {
|
|
f_ptr* f = regression_tests_regressions[i];
|
|
r += static_cast<int>(trampoline(f) != 0u);
|
|
}
|
|
return r;
|
|
}
|