diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2013-11-26 10:12:30 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2013-11-26 10:12:30 +0000 |
commit | d2504d682b036c369b6068ed2bf471161464aef0 (patch) | |
tree | bab7c9238ed7c2ef897e1e1b7b47414a0ec2c78e | |
parent | 793c28b87fbb215df23a3e72d33a4ffa07899044 (diff) | |
download | gcc-d2504d682b036c369b6068ed2bf471161464aef0.zip gcc-d2504d682b036c369b6068ed2bf471161464aef0.tar.gz gcc-d2504d682b036c369b6068ed2bf471161464aef0.tar.bz2 |
cvt.c (cp_convert_and_check): Avoid calling cp_convert unnecessarily.
2013-11-26 Paolo Carlini <paolo.carlini@oracle.com>
* cvt.c (cp_convert_and_check): Avoid calling cp_convert
unnecessarily.
From-SVN: r205387
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/cvt.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 64f9a23..143885c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2013-11-26 Paolo Carlini <paolo.carlini@oracle.com> + + * cvt.c (cp_convert_and_check): Avoid calling cp_convert + unnecessarily. + 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54485 diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c index c1dfdcf..ecec24a 100644 --- a/gcc/cp/cvt.c +++ b/gcc/cp/cvt.c @@ -630,7 +630,8 @@ cp_convert_and_check (tree type, tree expr, tsubst_flags_t complain) { tree folded = maybe_constant_value (expr); tree stripped = folded; - tree folded_result = cp_convert (type, folded, complain); + tree folded_result + = folded != expr ? cp_convert (type, folded, complain) : result; /* maybe_constant_value wraps an INTEGER_CST with TREE_OVERFLOW in a NOP_EXPR so that it isn't TREE_CONSTANT anymore. */ |