diff options
author | Richard Biener <rguenther@suse.de> | 2024-03-12 14:00:05 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2024-03-12 15:16:05 +0100 |
commit | 73dac51b32575f980289c073969c6d825963d076 (patch) | |
tree | 8f8c177e6ec6ecad21c83e601c75a9836d4673f9 /libcpp | |
parent | 4aa87b856067d4911de8fb66b3a27659dc75ca6d (diff) | |
download | gcc-73dac51b32575f980289c073969c6d825963d076.zip gcc-73dac51b32575f980289c073969c6d825963d076.tar.gz gcc-73dac51b32575f980289c073969c6d825963d076.tar.bz2 |
tree-optimization/114121 - chrec_fold_{plus,multiply} and recursion
The following addresses endless recursion in the
chrec_fold_{plus,multiply} functions when handling sign-conversions.
We only need to apply tricks when we'd fail (there's a chrec in the
converted operand) and we need to make sure to not turn the other
operand into something worse (for the chrec-vs-chrec case).
PR tree-optimization/114121
* tree-chrec.cc (chrec_fold_plus_1): Guard recursion with
converted operand properly.
(chrec_fold_multiply): Likewise. Handle missed recursion.
* gcc.dg/torture/pr114312.c: New testcase.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions