[PATCH] D151209: [Verifier] Check catchpad for MSVC_CXX Personality

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 23 09:00:04 PDT 2023


rnk accepted this revision.
rnk added a subscriber: akhuang.
rnk added a comment.
This revision is now accepted and ready to land.

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 at 8", i32 0, ptr %13], !dbg !19

So, this will break builds using ASan and WinEH, but they are already known to be incompatible. + at akhuang


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D151209/new/

https://reviews.llvm.org/D151209



More information about the llvm-commits mailing list