Commit 01a0fba6 by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/91355 (optimized code does not call destructor while…

re PR tree-optimization/91355 (optimized code does not call destructor while unwinding after exception)

	PR tree-optimization/91355
	* tree-ssa-sink.c (select_best_block): Use >= rather than >
	for early_bb scaled count with best_bb count comparison.

	* g++.dg/torture/pr91355.C: New test.

From-SVN: r278548
parent 141793d5
2019-11-21 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/91355
* tree-ssa-sink.c (select_best_block): Use >= rather than >
for early_bb scaled count with best_bb count comparison.
* ipa-fnsummary.h (enum ipa_hints_vals): Fix comment typo,
preffer -> prefer.
* ipa-inline.c (edge_badness): Likewise.
2019-11-21 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/91355
* g++.dg/torture/pr91355.C: New test.
2019-11-21 Iain Sandoe <iain@sandoe.co.uk>
* gcc.dg/gnu2x-attrs-1.c: Expect an error for the alias case
......
// PR tree-optimization/91355
// { dg-do run }
// { dg-options "-std=c++14" }
unsigned int d = 0;
struct S {
S () { d++; }
S (const S &) { d++; }
~S () { d--; }
};
void
foo (int i) throw (int) // { dg-warning "dynamic exception specifications are deprecated" }
{
if (i == 0)
throw 3;
S d;
throw 3;
}
int
main ()
{
try { foo (1); } catch (...) {}
if (d)
__builtin_abort ();
}
......@@ -228,7 +228,7 @@ select_best_block (basic_block early_bb,
/* If result of comparsion is unknown, prefer EARLY_BB.
Thus use !(...>=..) rather than (...<...) */
&& !(best_bb->count.apply_scale (100, 1)
> (early_bb->count.apply_scale (threshold, 1))))
>= early_bb->count.apply_scale (threshold, 1)))
return best_bb;
/* No better block found, so return EARLY_BB, which happens to be the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment