An alternative to D143739.
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
lgtm, thanks!
This will, for example, prevent a pass like ASan from moving the catch object into the dynamic stack allocation. And, it looks like we have that exact bug:
https://gcc.godbolt.org/z/3aveP3rbj
See the IR, which uses a catch object based on the dynamic alloca:
store i64 %11, ptr %asan_local_stack_base, align 8 %12 = add i64 %11, 32 %13 = inttoptr i64 %12 to ptr ... catch: ; preds = %catch.dispatch %24 = catchpad within %23 [ptr @"??_R0H@8", i32 0, ptr %13], !dbg !19
So, this will break builds using ASan and WinEH, but they are already known to be incompatible. +@akhuang