Index: cvt.c =================================================================== --- cvt.c (revision 204536) +++ cvt.c (working copy) @@ -629,7 +629,8 @@ cp_convert_and_check (tree type, tree expr, tsubst { 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. */