Tested on Linux x86_64 2019-06-04 Nina Dinka Ranns <dinka.ra...@gmail.com> gcc/cp
PR c++/63149 * pt.c (listify_autos): use non cv qualified auto_node in std::initializer_list<auto> testsuite/ PR c++/63149 * g++.dg/cpp0x/initlist-deduce.C: New
Index: gcc/cp/pt.c =================================================================== --- gcc/cp/pt.c (revision 271709) +++ gcc/cp/pt.c (working copy) @@ -26836,7 +26836,7 @@ static tree listify_autos (tree type, tree auto_node) { - tree init_auto = listify (auto_node); + tree init_auto = listify (strip_top_quals(auto_node)); tree argvec = make_tree_vec (1); TREE_VEC_ELT (argvec, 0) = init_auto; if (processing_template_decl) Index: gcc/testsuite/g++.dg/cpp0x/initlist-deduce2.C =================================================================== --- gcc/testsuite/g++.dg/cpp0x/initlist-deduce2.C (nonexistent) +++ gcc/testsuite/g++.dg/cpp0x/initlist-deduce2.C (working copy) @@ -0,0 +1,12 @@ +// Test for PR63149 +// { dg-do run { target c++11 } } + +#include <initializer_list> + +const auto r = { 1, 2, 3 }; +using X = decltype(r); +using X = const std::initializer_list<int>; + +int main() +{ +}