re PR c++/37439 (ICE using auto return-type in template function)
PR c++/37439 * pt.c (tsubst_copy) [PARM_DECL]: Don't abort if the parm has DECL_CONTEXT set. From-SVN: r140176
This commit is contained in:
parent
07ebe945c7
commit
18802917af
@ -1,3 +1,9 @@
|
||||
2008-09-09 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/37439
|
||||
* pt.c (tsubst_copy) [PARM_DECL]: Don't abort if the parm has
|
||||
DECL_CONTEXT set.
|
||||
|
||||
2008-09-09 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/37389
|
||||
|
@ -9809,7 +9809,7 @@ tsubst_copy (tree t, tree args, tsubst_flags_t complain, tree in_decl)
|
||||
Replace it with an arbitrary expression with the same type
|
||||
(*(T*)0). This should only occur in an unevaluated context
|
||||
(i.e. decltype). */
|
||||
gcc_assert (skip_evaluation && DECL_CONTEXT (t) == NULL_TREE);
|
||||
gcc_assert (skip_evaluation);
|
||||
r = non_reference (TREE_TYPE (t));
|
||||
r = tsubst (r, args, complain, in_decl);
|
||||
r = build_pointer_type (r);
|
||||
|
@ -6,7 +6,10 @@ auto f() -> int
|
||||
}
|
||||
|
||||
template<class T, class U>
|
||||
auto add(T t, U u) -> decltype (t+u);
|
||||
auto add(T t, U u) -> decltype (t+u)
|
||||
{
|
||||
return t+u;
|
||||
}
|
||||
|
||||
template<class T, class U>
|
||||
decltype(T()+U()) add2(T t, U u);
|
||||
|
Loading…
Reference in New Issue
Block a user