commit 9ebcb2b5403980ec25429c3f43bf951fae5772f8
Author: Jason Merrill <jason@redhat.com>
Date: Wed May 23 15:29:18 2018 -0400
PR c++/85864 - literal template and default template arg.
* pt.c (instantiation_dependent_r): Handle NONTYPE_ARGUMENT_PACK.
@@ -25212,6 +25212,7 @@ instantiation_dependent_r (tree *tp, int *walk_subtrees,
TREE_TYPE. */
case TREE_LIST:
case TREE_VEC:
+ case NONTYPE_ARGUMENT_PACK:
return NULL_TREE;
case TEMPLATE_PARM_INDEX:
new file mode 100644
@@ -0,0 +1,23 @@
+// PR c++/85864
+// { dg-do compile { target c++14 } }
+
+template<class T, T... S> struct String_template {};
+
+template<class C, C... S>
+constexpr String_template<C, S...> operator""_template() {
+ return String_template<C, S...> {};
+}
+
+template<class prefix = decltype("0x"_template), class T>
+int hex(T v) { return 1; }
+
+template<int v>
+void tt2() {
+ // auto h2 = hex<decltype("0x"_template)>(1);
+ auto h = hex(2);
+}
+
+int main() {
+ // auto h = hex(2);
+ // return h;
+}