[Bug c++/95686] undefined reference to static local variable within inline function
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jun 16 06:40:19 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95686
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Version|11.0 |9.3.0
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Known to fail| |9.3.0
Last reconfirmed| |2020-06-16
Keywords| |accepts-invalid
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
clang complains
t.C:9:16: error: non-type template argument refers to object 'i' that does not
have linkage
return S<&i>{};
^
t.C:8:26: note: non-type template argument refers to object here
static const int i = 0;
^
so this means your code is ill-formed. I can confirm your observation
with GCC 9.3 but GCC 10.1 rejects the code as well:
t.C: In function ?auto foo()?:
t.C:9:17: error: ?& i? is not a valid template argument of type ?const int*?
because ?i? has no linkage
9 | return S<&i>{};
| ^
More information about the Gcc-bugs
mailing list