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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |wrong-code
   Last reconfirmed|                            |2018-03-20
          Component|c                           |tree-optimization
                 CC|                            |jakub at gcc dot gnu.org
     Ever confirmed|0                           |1
            Summary|logically inverting bools   |[8 Regression] logically
                   |into local array results in |inverting bools into local
                   |bitwise negation            |array results in bitwise
                   |                            |negation
   Target Milestone|---                         |8.0

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  store-merging at play.

@@ -8,14 +12,17 @@
   _Bool _2;
   _Bool _3;
   _Bool _4;
+  unsigned short _11;
+  unsigned short _12;

   <bb 2> [local count: 1073741825]:
   _1 = t_6(D)->a;
   _2 = ~_1;
-  flags[0] = _2;
   _3 = t_6(D)->b;
   _4 = ~_3;
-  flags[1] = _4;
+  _11 = MEM[(_Bool *)t_6(D)];
+  _12 = ~_11;
+  MEM[(_Bool *)&flags] = _12;

Reply via email to