re PR middle-end/28473 (with -O, casting result of round(x) to uint64_t produces...
authorRoger Sayle <roger@eyesopen.com>
Tue, 25 Jul 2006 23:21:56 +0000 (23:21 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Tue, 25 Jul 2006 23:21:56 +0000 (23:21 +0000)
commit738764ef1e4321a6e385b30cf52f8ae1d9eb43b1
treefe2cca2c97ebff50cdce92939507476d43dba1e2
parentcdc30c457970d9876af28cdfe7e3a90d590e55ae
re PR middle-end/28473 (with -O, casting result of round(x) to uint64_t produces wrong values for x > INT_MAX)

PR middle-end/28473
* convert.c (convert_to_integer): When transforming (T)foo(x) into
bar(x) check that bar's result type can represent all the values of T.

* gcc.dg/fold-convround-1.c: New test case.

From-SVN: r115742
gcc/ChangeLog
gcc/convert.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/fold-convround-1.c [new file with mode: 0644]