(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
opt/
pr82577.C
// { dg-additional-options "-O2" }
// PR c++/82577 ICE when optimizing

#if __cplusplus > 201500L
// register is no longer a keyword in C++17.
#define register
#endif

class a {
public:
  int *b();
};
struct c {
  int d;
  a e;
} f;
void fn1(register c *g) {
  register int *h;
  do
    (h) = g->e.b() + (g)->d;
  while (&f);
}