Mercury Bugs - mercury | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0000414 | mercury | Bug | public | 2016-07-25 16:53 | 2016-07-29 03:42 |
Reporter | pbone | ||||
---|---|---|---|---|---|
Assigned To | zs | ||||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | x86_64 | OS | Linux Mint | OS Version | 18 |
Product Version | |||||
Target Version | Fixed in Version | ||||
Summary | 0000414: The switch detection fails to detect this switch | ||||
Description | The switch detection code fails to detect the larger switch, and instead detects a can_fail switch within a disjunction. Replay = Loader ^ loader_replay_options, ( ( Replay = replay_none ; Replay = replay_save(_) ), Prefix = Loader ^ loader_prefix ; Replay = replay_load(_), Prefix = Loader ^ loader_replay_prefix ). When I deconstruct Loader outside of the switch and assignment unifications within the switch things work correctly. | ||||
Steps To Reproduce | $ mmc --allow-stubs --grade asm_fast.gc --compile-to-c testb.m -Dall -dall testb.m:011: Error: invalid determinism for `prefix_locator'(in) = out: testb.m:011: the primary mode of a function cannot be `nondet'. testb.m:011: In `prefix_locator'(in) = out: testb.m:011: error: implicit determinism declaration not satisfied. testb.m:011: Declared `det', inferred `nondet'. testb.m:034: The switch on Replay does not cover testb.m:034: `replay_load'/1. testb.m:037: Disjunction has multiple clauses with solutions. testb.m:038: Unification of `Replay' and `testb.replay_load(V_7)' can fail. For more information, recompile with `-E'. | ||||
Additional Information | Mercury ROTD 2016-07-18 GCC 5.4.0 20160609 | ||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files | testb.m (888) 2016-07-25 16:53 https://bugs.mercurylang.org/file_download.php?file_id=261&type=bug |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
Issue History | |||||
Date Modified | Username | Field | Change | ||
---|---|---|---|---|---|
2016-07-25 16:53 | pbone | New Issue | |||
2016-07-25 16:53 | pbone | File Added: testb.m | |||
2016-07-25 19:33 | zs | Note Added: 0000899 | |||
2016-07-25 19:34 | zs | Assigned To | => zs | ||
2016-07-25 19:34 | zs | Status | new => assigned | ||
2016-07-25 21:31 | pbone | Note Added: 0000900 | |||
2016-07-29 03:42 | zs | Note Added: 0000901 | |||
2016-07-29 03:42 | zs | Status | assigned => resolved | ||
2016-07-29 03:42 | zs | Resolution | open => fixed |