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>
|
2012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
PR c++/51370
|
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);
|
htab_delete (local_specializations);
|
||||||
local_specializations = saved_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>
|
2012-01-27 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/50444
|
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