title: llvm error: Found more than one landing-pad successor
body: <p>llvm has a <code>MachineVerifier</code> pass which checks a <code>MachineFunction</code> for correctness based on different parameters like: <em>liveness</em>, <em>dead Basic Block</em>, <em>correct register class</em> etc. Recently I came across this error from the MachineVerifier pass. 
  I'm wondering why is it not okay to have multiple landing pad successors?
  In the example I am getting this error the layout (IR) is like this;</p>
  
  <pre><code>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.
  </code></pre>
  
  <p>Does it mean that if an exception occurs, exception handling will be ambiguous. Can someone please explain. Thanks.</p>