[D] Fix failing EH execution test on i386.
authorIain Buclaw <ibuclaw@gdcproject.org>
Wed, 16 Jan 2019 20:40:21 +0000 (20:40 +0000)
committerIain Buclaw <ibuclaw@gcc.gnu.org>
Wed, 16 Jan 2019 20:40:21 +0000 (20:40 +0000)
commite42589bd629d1c4b38aee2c8fcb924c37c6889b7
tree2f95df85510265503e64860bcdb0ea6023da1ee6
parent15b93db9ca258710e3abb43e2378ef3601e3a697
[D] Fix failing EH execution test on i386.

Turn off partitioning unless it was explicitly requested, as it doesn't
work with D exception chaining, where personality routines use LSDA to
determine whether two thrown exceptions are in the same context.

The following distills what was failing in the D testsuite.
```
try {
  try {
    fn();  // throws "1"
  }
  finally {
    throw new Exception("2");
  }
}
catch (Exception e) {
  assert(e.msg == "1");
  assert(e.next.msg == "2");
}
```

gcc/d/ChangeLog:

PR d/87824
* d-lang.cc (d_post_options): Disable implicit
-forder-blocks-and-partition.

From-SVN: r267985
gcc/d/ChangeLog
gcc/d/d-lang.cc