re PR c++/51852 ([c++11] tree check: expected tree_list, have HßèMÕþÿøtxøtsø)
PR c++/51852 * pt.c (tsubst_pack_expansion): Delete and restore local_specialization whenever need_local_specialization, not just when saved_local_specializations is non-NULL. * g++.dg/other/gc5.C: New test. From-SVN: r183637
This commit is contained in:
parent
b6c71f7771
commit
8c71382973
@ -1,3 +1,10 @@
|
||||
2012-01-27 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/51852
|
||||
* pt.c (tsubst_pack_expansion): Delete and restore
|
||||
local_specialization whenever need_local_specialization, not just
|
||||
when saved_local_specializations is non-NULL.
|
||||
|
||||
2012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/51370
|
||||
|
@ -9582,7 +9582,7 @@ tsubst_pack_expansion (tree t, tree args, tsubst_flags_t complain,
|
||||
}
|
||||
}
|
||||
|
||||
if (saved_local_specializations)
|
||||
if (need_local_specializations)
|
||||
{
|
||||
htab_delete (local_specializations);
|
||||
local_specializations = saved_local_specializations;
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-01-27 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/51852
|
||||
* g++.dg/other/gc5.C: New test.
|
||||
|
||||
2012-01-27 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/50444
|
||||
|
27
gcc/testsuite/g++.dg/other/gc5.C
Normal file
27
gcc/testsuite/g++.dg/other/gc5.C
Normal file
@ -0,0 +1,27 @@
|
||||
// PR c++/51852
|
||||
// { dg-do compile }
|
||||
// { dg-options "-std=gnu++11 --param ggc-min-heapsize=0 --param ggc-min-expand=0" }
|
||||
|
||||
template <typename, typename>
|
||||
class transformed {};
|
||||
|
||||
template <class R, class F>
|
||||
transformed<F, R> transform (R r, F f);
|
||||
|
||||
template <typename, typename>
|
||||
class joined {};
|
||||
|
||||
template <typename T, typename U>
|
||||
joined<T, U> join (T t, U u);
|
||||
|
||||
template <typename T, typename U, typename V, typename... Rest>
|
||||
auto join (T t, U u, V v, Rest... rest) -> decltype (join (join (t, u), v, rest...));
|
||||
|
||||
template <typename F, typename... Rs>
|
||||
auto polymorphic_transform (F f, Rs... rs) -> decltype (join (transform(rs, f)...));
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
polymorphic_transform (0, 0, 0);
|
||||
}
|
Loading…
Reference in New Issue
Block a user