// { 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); | |
} |