https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108357
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |NEW --- Comment #25 from H.J. Lu <hjl.tools at gmail dot com> --- One difference of signed vs unsigned char comes from: static ccp_prop_value_t get_value_for_expr (tree expr, bool for_bits_p) { ... if (val.lattice_val == VARYING && INTEGRAL_TYPE_P (TREE_TYPE (expr)) && TYPE_UNSIGNED (TREE_TYPE (expr))) val.mask = wi::zext (val.mask, TYPE_PRECISION (TREE_TYPE (expr))); return val; }