https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98672
Bug ID: 98672
Summary: constexpr function - for loop with return statement
doesn't get recognized as constexpr subexpression
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ryan_greenblatt at brown dot edu
Target Milestone: ---
https://godbolt.org/z/bEaWhj
```
void not_constexpr() {}
static constexpr int constexpr_loop() {
for (int i = 0; i < 1; ++i) {
return i;
}
// builds fine with just this:
// __builtin_unreachable();
// but not with this:
not_constexpr();
}
constexpr unsigned i = constexpr_loop();
```
fails with c++14/17/20 on all versions of gcc I tried