-OoDEADSTORE takes on too much, chapter Ⅳ.
I just found that compiling my application with and without `-OoDEADSTORE` and diffing `-al` assembler outputs yields **exclusively** `-OoDEADSTORE` bugs, maybe because I dislike to write the code that would be affected by `-OoDEADSTORE` in the first place...
This code compiled with `-O4 -OoDEADSTORE` drops `chosen := -10`. Funny thing is that doing **something at all** in `then` makes the bug disappear, not to speak of negating `if` condition and moving `break` into `then`.
```pascal
{$mode objfpc}
function ChooseMinus10: SizeInt;
var
chosen: SizeInt;
begin
chosen := -10;
repeat
if random(1) = 0 then else break;
exit(chosen);
until false;
result := -20;
end;
begin
writeln('Must be -10: ', ChooseMinus10);
end.
```
Possible output:
```
Must be -10: 857404
```
issue