:ADDPATCH: The fix for PR c++/34198 used get_narrowed. By using get_unwidened the code is much simpler and easier to understand. Jakub mentions this alternative here: http://gcc.gnu.org/ml/gcc-patches/2007-11/msg01227.html > But get_narrower has the advantage of getting through multiple > conversions of the same precision, in case we decide e.g. to > further optimize away the warning for BIT_AND_EXPR where > one of the operands is INTEGER_CST mask which fits into > type. I don't see this as much as an advantage at the present moment since we are not looking inside expressions (and it seems unlikely that we will do it in the near future). And if we do it, all that code (including the narrowing magic) would be better in a separate function. So I think it is better to keep the code as simpler as possible. Bootstrapped and regression tested. 2007-11-24 Manuel Lopez-Ibanez * c-common.c (conversion_warning): Use get_unwidened instead of get_narrower.