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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|11.3.1, 12.2.1, 13.0        |11.1.0
      Known to work|10.4.1                      |10.4.0
   Target Milestone|---                         |11.4
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |ice-checking,
                   |                            |ice-on-valid-code,
                   |                            |needs-bisection
            Summary|[11/12/13 regression]       |[11/12/13 Regression]
                   |Checking ICE with canonical |Checking ICE with canonical
                   |types differ for identical  |types differ for identical
                   |types ‘UBYTE [7]’ {aka      |types ‘UBYTE [7]’ {aka
                   |‘unsigned char [7]’} and    |‘unsigned char [7]’} and
                   |‘unsigned char [7]’         |‘unsigned char [7]’
   Last reconfirmed|                            |2023-04-15

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced:
```
struct vector
{
  vector&       operator=(vector&& __x)
  {
    return *this;
  }
};
struct tree_node {
  vector childs;
  unsigned char pad[7];
  tree_node(){}
};
tree_node mcts_root;
void find_Horner_MCTS_expand_tree () {
    mcts_root =  tree_node();
}
```
Compile at -O2 -Wall is enough to reproduce the failure.
Note using unsigned short or unsigned int instead of unsigned char allows it to
work.

Reply via email to