0

llvm には、livenessdead Basic Block正しいレジスタ クラスなどのさまざまなパラメーターに基づいて正確性をMachineVerifierチェックするパスがあります。最近、MachineVerifier パスからこのエラーに遭遇しました。ランディングパッドの後継者が複数いるのはなぜいけないのだろう?このエラーが発生している例では、レイアウト (IR) は次のようになっています。MachineFunction

BB0: 
...
succ: BB1


BB1: EH_LANDING_PAD
pred: BB0, BB1
...
succ: BB1, BB2


BB2: EH_LANDING_PAD
...

 Bad machine code: MBB has more than one landing pad successor ***
   - function:    _Z7ex_testv
   - basic block: BB#1 lpad (0x1bf7c90)
   LLVM ERROR: Found 1 machine code errors.

例外が発生すると、例外処理があいまいになるということですか。誰か説明してくれませんか。ありがとう。

4

1 に答える 1