On 1/10/20, Jason Merrill <ja...@redhat.com> wrote:
> Back in 2009 Manuel sent a patch to avoid useless -Wconversion warnings
> on compound assignment of types that get promoted to int:
>
> https://gcc.gnu.org/ml/gcc-patches/2009-08/msg00582.html
>
> Joseph argued that those warnings are sometimes useful, and that they
> should be controlled by a separate flag.  So this patch introduces
> -Warith-conversion, which is off by default in this patch.
>
> Joseph, is that default OK with you?  If not, can you explain your
> reasoning more about why the warnings are desirable?  It seems to me
> that even in cases where you don't know the ranges involved, it's wrong
> for e.g. 'mychar += 1' to warn when 'myint += 1' doesn't.  In both
> cases, the addition might overflow the range of the target type, but
> that isn't about the conversion; the result is the same as if the
> operation had been done in the operand/target type rather than the
> promoted type.
>
> The change to cp/typeck.c is a placeholder to use if the default setting
> changes; even if we end up warning by default for mychar = mychar + 1, I
> really don't want to warn about mychar += 1.
>
> sign.diff is a prerequisite tidying that moves the warnings from
> unsafe_conversion_p back into conversion_warning with the others.
>
> rshift.diff restores the short_shift code to the C++ front end so that C
> and C++ give the same warnings with -Warith-conversion.
>
> Tested x86_64-pc-linux-gnu.  Comments?
>

Hi Jason, thanks for this new flag. Now that GCC 10 has been released
I was checking the release notes to review everything new in GCC 10,
and I didn't see any mention of -Warith-conversion on it. Could you
add a quick note about -Warith-conversion to changes.html please?

Thanks,
Eric

Reply via email to