Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

Ticket #100 (closed defect: fixed)

Opened 2 months ago

Last modified 2 months ago

try-finally statement with only a debug statement in finally body causes assertion failure

Reported by: lindquist Assigned to: ChristianK
Priority: major Milestone: Beta
Version: Keywords: eh
Cc:

Description (Last modified by lindquist)

Compiling the tests/mini/tryfinally1.d test case causes assertion failure in the EH code:

llvmdc: ir/irlandingpad.cpp:112: void IRLandingPad::constructLandingPad(llvm::BasicBlock?*): Assertion `it->catchType' failed.

The test case is boiled down from MiniD code, I've tried looking around a bit, but I don't know that code very well yet.

Change History

10/05/08 11:31:08 changed by lindquist

  • description changed.

10/05/08 11:31:58 changed by lindquist

test looks like this:

void main()
{
    try
    {
    }
    finally
    {
        debug {} // the debug statement body can be anything
    }
}

10/05/08 11:46:14 changed by lindquist

it should be noted that the code works when compiled with -debug

10/05/08 16:28:45 changed by ChristianK

  • status changed from new to closed.
  • resolution set to fixed.

Fixed in [652].

This seems to be a general issue with the DMD frontend. For {} finalbody would have been != null, but for { debug {} } it *is* NULL.

Copyright © 2008, LDC Development Team.