https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93582

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization

--- Comment #13 from Martin Sebor <msebor at gcc dot gnu.org> ---
So the question is whether the test in the following simplified test case
should be folded to false earlier:

$ cat pr93582.c && gcc -O2 -S -Wall -fdump-tree-optimized=/dev/stdout pr93582.c
struct S { unsigned b:1; };

void f (void)
{
  struct S s;
  s.b = 0;

  if (s.b)
    __builtin_abort ();
}

;; Function f (f, funcdef_no=0, decl_uid=1933, cgraph_uid=1, symbol_order=0)

f ()
{
  struct S s;
  unsigned char _1;
  unsigned char _2;

  <bb 2> [local count: 1073741824]:
  s.b = 0;
  _1 = BIT_FIELD_REF <s, 8, 0>;
  _2 = _1 & 1;
  if (_2 != 0)
    goto <bb 3>; [0.00%]
  else
    goto <bb 4>; [100.00%]

  <bb 3> [count: 0]:
  __builtin_abort ();

  <bb 4> [local count: 1073741824]:
  s ={v} {CLOBBER};
  return;

}

Reply via email to