diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-06-06 21:48:22 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-06-06 21:48:22 +0200 |
commit | 6f5bcd24004651c3b92af349fcfa56d7328c8ee4 (patch) | |
tree | 0138cff9c5f695765b4a47c8f04722a3d3d06fe5 /gcc/system.h | |
parent | 158beb4ab3f6adace5f3c328cba3470eb1cc6357 (diff) | |
download | gcc-6f5bcd24004651c3b92af349fcfa56d7328c8ee4.zip gcc-6f5bcd24004651c3b92af349fcfa56d7328c8ee4.tar.gz gcc-6f5bcd24004651c3b92af349fcfa56d7328c8ee4.tar.bz2 |
re PR c++/70847 (exponential time in cp_fold for chained virtual function calls)
PR c++/70847
PR c++/71330
PR c++/71393
* cp-gimplify.c (cp_fold_r): Set *walk_subtrees = 0 and return NULL
right after cp_fold call if cp_fold has returned the same stmt
already in some earlier cp_fold_r call.
(cp_fold_function): Add pset automatic variable, pass its address
to cp_walk_tree.
* g++.dg/opt/pr70847.C: New test.
* g++.dg/ubsan/pr70847.C: New test.
* g++.dg/ubsan/pr71393.C: New test.
Co-Authored-By: Patrick Palka <ppalka@gcc.gnu.org>
From-SVN: r237151
Diffstat (limited to 'gcc/system.h')
0 files changed, 0 insertions, 0 deletions