re PR c++/37004 ([C++ only] Wconversion warns for short y = 0x7fff; short z = (short...
authorManuel López-Ibáñez <manu@gcc.gnu.org>
Sun, 19 Oct 2008 22:53:01 +0000 (22:53 +0000)
committerManuel López-Ibáñez <manu@gcc.gnu.org>
Sun, 19 Oct 2008 22:53:01 +0000 (22:53 +0000)
commit98f2f3a24f2706623b054a6f9b38cfd706f20ed4
treeefc7e715925fd1cb536642887f046421f2e8cfc7
parent641afcff1d00be2cabd95d589a66a5d87ed1edda
re PR c++/37004 ([C++ only] Wconversion warns for short y = 0x7fff; short z = (short) x & y;)

2008-10-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c++/37004
cp/
* typeck.c (cp_common_type): New. The same as
type_after_usual_arithmetic_conversions but without promotions.
(type_after_usual_arithmetic_conversions): Do the promotions and
call cp_common_type.
(common_type): Make it behave like the C version of this
function. Do not handle pointer types.
(common_pointer_type): Move handling of pointer types from
common_type to here.
(cp_build_binary_op): Use common_pointer_type instead of
common_type in call to pointer_diff.
Use cp_common_type instead of common_type.
* cp-tree.h (common_pointer_type): Declare.
testsuite/
* g++.dg/warn/Wconversion-pr34389.C: Remove XFAIL.

From-SVN: r141233
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/warn/Wconversion-pr34389.C