[llvm-bugs] [Bug 30747] Windows x64 SEH __except filter continuing to __finally gets UD2

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Oct 20 10:47:28 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=30747

Reid Kleckner <rnk at google.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |rnk at google.com
         Resolution|---                         |FIXED

--- Comment #1 from Reid Kleckner <rnk at google.com> ---
This doesn't reproduce for me locally with a recent version of clang.

Here's your annotated disassembly:

?dtor$3@?0?f at 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 at 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.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20161020/c04d14e4/attachment.html>


More information about the llvm-bugs mailing list