Displaying 1 result from an estimated 1 matches for "maythrow2".
Did you mean:
maythrow
2020 Jan 26
2
[RFC] Replacing inalloca with llvm.call.setup and preallocated
...n the call setup region, the newly
established SP must be saved into the EH record when a call is setup.
Consider
the case below of inlining try / catch into a call region:
```c++
struct Foo {
Foo(int x);
Foo(const Foo &o);
~Foo();
int x, y, z;
};
void use_callsetup(int, Foo, Foo);
int maythrow2();
static inline int maythrow() {
try { return maythrow2(); } catch (int) {}
return 0;
}
Foo getf();
int main() {
use_callsetup(maythrow(), getf(), getf());
}
```
The backend should be able to detect whether SP must be saved or not by
checking if there are any invokes reachable along normal...