[llvm-bugs] [Bug 28938] New: X86: MachineBasicBlock::getFirstTerminator returns end() in llvm::getFuncletMembership

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Aug 11 08:27:26 PDT 2016


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

            Bug ID: 28938
           Summary: X86: MachineBasicBlock::getFirstTerminator returns
                    end() in llvm::getFuncletMembership
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: dexonsmith at apple.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

If you add an assertion after the call to MachineBasicBlock::getFirstTerminator
in llvm::getFuncletMembership that it's not the end() iterator, 48 X86
testcases fail.  IIUC, every MachineBasicBlock should end with a terminator, so
this seems like a bug in X86.

I'm about to commit a patch that papers over this by checking for end() (to
avoid dereferencing it) to unblock my work on bug 26753.

Here are the tests that fail locally for me if you use an assertion instead:
--
Failing Tests (48):
    LLVM :: CodeGen/WinEH/wineh-nested-unwind.ll
    LLVM :: CodeGen/WinEH/wineh-noret-cleanup.ll
    LLVM :: CodeGen/X86/branchfolding-catchpads.ll
    LLVM :: CodeGen/X86/catchpad-dynamic-alloca.ll
    LLVM :: CodeGen/X86/catchpad-lifetime.ll
    LLVM :: CodeGen/X86/catchpad-realign-savexmm.ll
    LLVM :: CodeGen/X86/catchpad-regmask.ll
    LLVM :: CodeGen/X86/catchpad-weight.ll
    LLVM :: CodeGen/X86/catchret-empty-fallthrough.ll
    LLVM :: CodeGen/X86/catchret-fallthrough.ll
    LLVM :: CodeGen/X86/catchret-regmask.ll
    LLVM :: CodeGen/X86/cleanuppad-inalloca.ll
    LLVM :: CodeGen/X86/cleanuppad-large-codemodel.ll
    LLVM :: CodeGen/X86/cleanuppad-realign.ll
    LLVM :: CodeGen/X86/deopt-bundles.ll
    LLVM :: CodeGen/X86/funclet-layout.ll
    LLVM :: CodeGen/X86/late-address-taken.ll
    LLVM :: CodeGen/X86/pr26757.ll
    LLVM :: CodeGen/X86/pr27501.ll
    LLVM :: CodeGen/X86/regalloc-spill-at-ehpad.ll
    LLVM :: CodeGen/X86/seh-catch-all-win32.ll
    LLVM :: CodeGen/X86/seh-catch-all.ll
    LLVM :: CodeGen/X86/seh-catchpad.ll
    LLVM :: CodeGen/X86/seh-except-finally.ll
    LLVM :: CodeGen/X86/seh-exception-code.ll
    LLVM :: CodeGen/X86/seh-finally.ll
    LLVM :: CodeGen/X86/seh-safe-div-win32.ll
    LLVM :: CodeGen/X86/seh-safe-div.ll
    LLVM :: CodeGen/X86/seh-stack-realign.ll
    LLVM :: CodeGen/X86/tail-dup-catchret.ll
    LLVM :: CodeGen/X86/tail-merge-wineh.ll
    LLVM :: CodeGen/X86/win-catchpad-csrs.ll
    LLVM :: CodeGen/X86/win-catchpad-nested-cxx.ll
    LLVM :: CodeGen/X86/win-catchpad-nested.ll
    LLVM :: CodeGen/X86/win-catchpad-varargs.ll
    LLVM :: CodeGen/X86/win-catchpad.ll
    LLVM :: CodeGen/X86/win-cleanuppad.ll
    LLVM :: CodeGen/X86/win-funclet-cfi.ll
    LLVM :: CodeGen/X86/win-mixed-ehpersonality.ll
    LLVM :: CodeGen/X86/win32-eh-states.ll
    LLVM :: CodeGen/X86/win32-eh.ll
    LLVM :: CodeGen/X86/win32-seh-catchpad-realign.ll
    LLVM :: CodeGen/X86/win32-seh-catchpad.ll
    LLVM :: CodeGen/X86/win32-seh-nested-finally.ll
    LLVM :: CodeGen/X86/wineh-coreclr.ll
    LLVM :: CodeGen/X86/wineh-exceptionpointer.ll
    LLVM :: DebugInfo/COFF/comdat.ll
    LLVM :: Transforms/IndVarSimplify/iv-widen-elim-ext.ll
--

-- 
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/20160811/1ff4bd12/attachment-0001.html>


More information about the llvm-bugs mailing list