<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:rnk@google.com" title="Reid Kleckner <rnk@google.com>"> <span class="fn">Reid Kleckner</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Windows x64 SEH __except filter continuing to __finally gets UD2"
   href="https://llvm.org/bugs/show_bug.cgi?id=30747">bug 30747</a>
        <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
                
           </td>
           <td>rnk@google.com
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Windows x64 SEH __except filter continuing to __finally gets UD2"
   href="https://llvm.org/bugs/show_bug.cgi?id=30747#c1">Comment # 1</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Windows x64 SEH __except filter continuing to __finally gets UD2"
   href="https://llvm.org/bugs/show_bug.cgi?id=30747">bug 30747</a>
              from <span class="vcard"><a class="email" href="mailto:rnk@google.com" title="Reid Kleckner <rnk@google.com>"> <span class="fn">Reid Kleckner</span></a>
</span></b>
        <pre>This doesn't reproduce for me locally with a recent version of clang.

Here's your annotated disassembly:

?dtor$3@?0?f@4HA:                        This is a filter function with zero
handlercont, i.e. a clean-up.
  0040:   mov   qword ptr [rsp+10h],rdx  save rdx
  0045:   push  rbp
  0046:   sub   rsp,20h
  004A:   lea   rbp,[rdx+30h]
  004E:   ud2                             ??? ???


Assembly produced by clang locally:

"?dtor$3@?0??f@@YAHXZ@4HA":
        movq    %rdx, 16(%rsp)
        pushq   %rbp
        subq    $32, %rsp
        leaq    48(%rdx), %rbp
        incl    ".L?f@@YAHXZ$frame_escape_0"(%rbp)
        addq    $32, %rsp
        popq    %rbp
        retq                            # CLEANUPRET

I think this has been fixed some time between 3.8 and now.

A ud2 instruction usually indicates that reaching it would be an error,
something like falling off the end of a function without returning or calling a
function with the wrong calling convention. I'm not sure why 3.8 had this
problem, but it doesn't seem present today. Please reopen if you still have
issues with 3.9 or 4.0.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>