Files
mercury/tests/par_conj/bug_130_should_push_signal.exp
Paul Bone e405339c4e Fix bug 130.
compiler/par_conj_dep.m:
    Check the determinism of goals before inserting a signal in them of testing
    if we should insert a signal in them.

    Create a new constructor symbol in the cost_after_signal type that is
    returned by should_we_push_signal when the code that we would normally
    insert a signal into is unreachable.

    Use an instantiation sub type to list the values of cost_after_signal that
    are valid inputs to the should_we_push_signal predicate.

    In should_we_push_signal: Replace some if-then-else goals with switches,
    this ensures that the determinism checker can alert us when there are
    uncovered values in the switches.

    Merge the results of should_we_push_signal after branching code.

tests/par_conj/bug_130_unreachable.m:
    This was originally bug_130.m except that it doesn't test for bug 130 but a
    similar bug with the same symptom.

    Simplified this test case, this still triggers the bug in unpatched
    compilers.

tests/par_conj/bug_130_unreachable.exp:
    The expected output for bug_130_unreachable.

tests/par_conj/bug_130_should_push_signal.m:
tests/par_conj/bug_130_should_push_signal.exp:
    Discovered another bug when should_we_push_signal/4 seems to get confused
    around erroneous code.

tests/par_conj/bug_130.m:
tests/par_conj/bug_130.exp:
    Removed this test case since it's a duplicate of bug_130_unreachable.
2010-02-11 05:20:55 +00:00

1 line
12 B
Plaintext