[Bug tree-optimization/15826] don't use "if" to extract a single bit bit-field.
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 26 23:25:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15826
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |msebor at gcc dot gnu.org
Known to work| |5.1.0, 6.0
Resolution|--- |FIXED
--- Comment #11 from Martin Sebor <msebor at gcc dot gnu.org> ---
It looks to me like the missing optimization now takes place, and has since
5.1. In both foo() and andrew() the bit test is optimized away during cddce2
resulting in the following. The BIT_FIELD_REF is still there, but I assume
that's fine. I'll go ahead, add the test case to the test suite and resolve
this as fixed. Please reopen if I missed something.
foo (struct s * p)
{
unsigned char _4;
_Bool _6;
unsigned int _7;
<bb 2>:
_4 = BIT_FIELD_REF <*p_3(D), 8, 0>;
_6 = (_Bool) _4;
_7 = (unsigned int) _6;
return _7;
}
More information about the Gcc-bugs
mailing list