Skip to content

[ARM][Windows] try/catch(...) around a call returning a large struct asserts in BranchFolding: "MBB is part of two scopes!" #239929

Open

Description

@YuanchengJiang

The following code:

struct Large { int cs[32]; };
Large getLarge();
void f() { try { getLarge(); } catch (...) {} }

Resulted in this output:

clang++: /root/llvm-project/llvm/lib/CodeGen/Analysis.cpp:859: void collectEHScopeMembers(llvm::DenseMap<const llvm::MachineBasicBlock*, int>&, int, const llvm::MachineBasicBlock*): Assertion `P.first->second == EHScope && "MBB is part of two scopes!"' failed.

Trunk reproducer (--target=thumbv7-windows): https://godbolt.org/z/efqhnWPa5

Activity

  1. added
    crashPrefer [crash-on-valid] or [crash-on-invalid]
    generated by fuzzerRegression test generated by fuzzing or AI analysis - not a real world code snippet
    on Nov 7, 2026
  2. llvmorg-github-actions commented on Nov 7, 2026

    @llvmorg-github-actions

    @llvm/issue-subscribers-backend-arm

    Author: Jiang Yuancheng (YuanchengJiang)

    Details The following code: ```cpp struct Large { int cs[32]; }; Large getLarge(); void f() { try { getLarge(); } catch (...) {} } ```

    Resulted in this output:

    clang++: /root/llvm-project/llvm/lib/CodeGen/Analysis.cpp:859: void collectEHScopeMembers(llvm::DenseMap&lt;const llvm::MachineBasicBlock*, int&gt;&amp;, int, const llvm::MachineBasicBlock*): Assertion `P.first-&gt;second == EHScope &amp;&amp; "MBB is part of two scopes!"' failed.
    

    Trunk reproducer (--target=thumbv7-windows): https://godbolt.org/z/efqhnWPa5

  3. added
    confirmedVerified by a second party
    and removed
    crashPrefer [crash-on-valid] or [crash-on-invalid]
    on Nov 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions