diff --git a/gcc/cp/init.cc b/gcc/cp/init.cc index 1a341f7e606..d2586fad86b 100644 --- a/gcc/cp/init.cc +++ b/gcc/cp/init.cc @@ -4258,7 +4258,7 @@ create_temporary_var (tree type) TREE_USED (decl) = 1; DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; - DECL_CONTEXT (decl) = current_function_decl; + DECL_CONTEXT (decl) = current_scope (); return decl; } diff --git a/gcc/testsuite/g++.dg/modules/pr114005_a.C b/gcc/testsuite/g++.dg/modules/pr114005_a.C new file mode 100644 index 00000000000..404683484ec --- /dev/null +++ b/gcc/testsuite/g++.dg/modules/pr114005_a.C @@ -0,0 +1,8 @@ +// { dg-additional-options "-fmodules-ts" } +// { dg-module-cmi M } + +module; +#include + +export module M; +export constexpr std::initializer_list foo{ 1, 2, 3 }; diff --git a/gcc/testsuite/g++.dg/modules/pr114005_b.C b/gcc/testsuite/g++.dg/modules/pr114005_b.C new file mode 100644 index 00000000000..88317ce11f8 --- /dev/null +++ b/gcc/testsuite/g++.dg/modules/pr114005_b.C @@ -0,0 +1,7 @@ +// { dg-additional-options "-fmodules-ts" } + +import M; + +int main() { + return foo.size(); +}