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

            Bug ID: 117217
           Summary: ICE in tree-sra when copying struct with a union of
                    packed structs with bitfields
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: llvm at rifkin dot dev
  Target Milestone: ---

This ICEs gcc trunk and has done so since at least gcc 4.8:

struct [[gnu::packed]] A {
  int i;
  bool b;
};

struct [[gnu::packed]] B {
  int i;
  bool b : 1;
};

struct E {
  union Data {
    A a;
    B b;
    Data(const B &b) : b(b) {}
  } data;
};

extern B copy;

int main() {
  E e{{B()}};
  copy = e.data.b; // NEEDED FOR ICE
}



https://godbolt.org/z/WzK4cTPGd

Initially found by Mark Polyakov

Reply via email to