re PR c++/65071 (ICE on valid, sizeof...() of template template parameter pack in return type)
/cp 2015-07-14 Andrea Azzarone <azzaronea@gmail.com> PR c++/65071 * parser.c (cp_parser_sizeof_pack): Also consider template template parameters. /testsuite 2015-07-14 Andrea Azzarone <azzaronea@gmail.com> PR c++/65071 * g++.dg/cpp0x/vt-65071.C: New. From-SVN: r225793
This commit is contained in:
parent
42e6ab74b6
commit
973590f320
4 changed files with 21 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2015-07-14 Andrea Azzarone <azzaronea@gmail.com>
|
||||
|
||||
PR c++/65071
|
||||
* parser.c (cp_parser_sizeof_pack): Also consider template template
|
||||
parameters.
|
||||
|
||||
2015-07-14 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* call.c (build_new_method_call_1): Call reshape_init.
|
||||
|
|
|
@ -24468,7 +24468,7 @@ cp_parser_sizeof_pack (cp_parser *parser)
|
|||
if (expr == error_mark_node)
|
||||
cp_parser_name_lookup_error (parser, name, expr, NLE_NULL,
|
||||
token->location);
|
||||
if (TREE_CODE (expr) == TYPE_DECL)
|
||||
if (TREE_CODE (expr) == TYPE_DECL || TREE_CODE (expr) == TEMPLATE_DECL)
|
||||
expr = TREE_TYPE (expr);
|
||||
else if (TREE_CODE (expr) == CONST_DECL)
|
||||
expr = DECL_INITIAL (expr);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-07-14 Andrea Azzarone <azzaronea@gmail.com>
|
||||
|
||||
PR c++/65071
|
||||
* g++.dg/cpp0x/vt-65071.C: New.
|
||||
|
||||
2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
|
||||
Cesar Philippidis <cesar@codesourcery.com>
|
||||
Chung-Lin Tang <cltang@codesourcery.com>
|
||||
|
|
9
gcc/testsuite/g++.dg/cpp0x/vt-65071.C
Normal file
9
gcc/testsuite/g++.dg/cpp0x/vt-65071.C
Normal file
|
@ -0,0 +1,9 @@
|
|||
// PR c++/65071
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
template<int> struct S {};
|
||||
|
||||
template<template<int> class... T, int N>
|
||||
S<sizeof...(T)> foo(T<N>...);
|
||||
|
||||
auto x = foo(S<2>{});
|
Loading…
Add table
Reference in a new issue