https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91617
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Author: jakub Date: Mon Sep 2 08:38:13 2019 New Revision: 275299 URL: https://gcc.gnu.org/viewcvs?rev=275299&root=gcc&view=rev Log: PR go/91617 * fold-const.c (range_check_type): For enumeral and boolean type, pass 1 to type_for_size langhook instead of TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever etype isn't TYPE_UNSIGNED INTEGER_TYPE. (build_range_check): Don't call unsigned_type_for for pointer types. * match.pd (X / C1 op C2): Don't call unsigned_type_for on range_check_type result. Modified: trunk/gcc/ChangeLog trunk/gcc/fold-const.c trunk/gcc/match.pd