https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102427
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement Keywords| |diagnostic Component|c |middle-end Ever confirmed|0 |1 Last reconfirmed| |2021-09-21 Version|unknown |12.0 Status|UNCONFIRMED |NEW CC| |msebor at gcc dot gnu.org --- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> --- There is some support for issuing overflow warnings in the middle end under -Wstrict-overflow but that option is documented to only trigger in cases when GCC makes codegen decisions based on the absence of overflow, which it doesn't in this case (the overflow wraps around zero). That no warning is issued here is partly a bug/limitation of the implementation of the folder as indicated by the FIXME in wi::mul_internal() in wide-int.cc: if (sgn == SIGNED) { if ((HOST_WIDE_INT) r != sext_hwi (r, prec)) /* FIXME: Signed overflow type is not implemented yet. */ *overflow = OVF_UNKNOWN; and partly also a consequence of simply discarding it when it is set above, by calling drop_tree_overflow(). I don't know why that function is called. But preserving the overflow there still doesn't result in a warning. I do agree that the constness of local variables shouldn't matter and issuing the warning regardless would be helpful. So confirmed as an enhancement request.