https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61725
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2014-07-07 CC| |jakub at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org Target Milestone|--- |4.9.1 Summary|[4.9 Regression] |[4.9/4.10 Regression] |__builtin_ffs(0) leads to |__builtin_ffs(0) leads to |wrong code generation |wrong code generation Ever confirmed|0 |1 --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This started with my r200731. I've been assuming and documentation agrees with me that __builtin_ffs similarly to __builtin_{popcount,parity,clz,ctz} have unsigned argument, but apparently builtins.def was defining __builtin_ffs with signed argument, so the check for range that doesn't include zero I've added to tree-vrp.c for ffs/popcount is only correct for popcount and not for ffs.