Skip to content

Incorrect post-dominators with multiple returns #1470

@sunfishcode

Description

@sunfishcode
Bugzilla Link 1098
Resolution FIXED
Resolved on May 04, 2008 17:55
Version trunk
OS All
CC @asl,@nlewycky

Extended Description

In some test cases with multiple return statements, the post-dominator passes
return incorrect information.

For this test case:

define void %foo(bool %x) {
entry:
br bool %x, label %bb1, label %bb0
bb0:
ret void
bb1:
br label %bb2
bb2:
ret void
}

The `entry' block's immediate post-dominator should be the exit node, but the
immediate post-dominator pass's print() output is

Immediate Dominator For Basic Block: %entry is: %bb0
Immediate Dominator For Basic Block: %bb0 is: <>
Immediate Dominator For Basic Block: %bb1 is: %bb2
Immediate Dominator For Basic Block: %bb2 is: <>

The post-dominator tree and post-dominator set passes exhibit similar
behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzilla

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions