[Bug c++/96184] [9/10 Regression] GCC treats "use of local variable with automatic storage from containing function" differently in versions
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 10 06:56:08 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96184
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Keywords| |rejects-valid
Ever confirmed|0 |1
Summary|GCC treats "use of local |[9/10 Regression] GCC
|variable with automatic |treats "use of local
|storage from containing |variable with automatic
|function" differently in |storage from containing
|versions |function" differently in
| |versions
Target Milestone|--- |9.5
Last reconfirmed| |2021-09-10
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So I think it is legal because if we have:
int main(){
int a = 10;
int const b = 10;
static constexpr int d = b ? 0 : a = b;
auto p1 = [ ] () noexcept ( d) { return d;};
return d;
}
the d is a constexpr at this point and a valid one and was even accepted before
in GCC 8.5.0.
So this is only a regression in GCC 9 and GCC 10.
More information about the Gcc-bugs
mailing list