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()
+{
+}

Reply via email to