mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-01 15:54:17 +08:00
re PR c++/34619 (ICE with "-fmudflap" and templates)
PR c++/34619 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL before returning. * testsuite/libmudflap.c++/pass61-frag.cxx: New test. From-SVN: r131302
This commit is contained in:
parent
e0658eda3c
commit
cac67c0835
@ -1,5 +1,9 @@
|
||||
2008-01-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/34619
|
||||
* cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
|
||||
before returning.
|
||||
|
||||
PR tree-optimization/29484
|
||||
* tree-inline.c (inline_forbidden_p_2): New function.
|
||||
(inline_forbidden_p): Disallow inlining if some static var
|
||||
|
@ -1,5 +1,6 @@
|
||||
/* Callgraph based interprocedural optimizations.
|
||||
Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Jan Hubicka
|
||||
|
||||
This file is part of GCC.
|
||||
@ -1515,6 +1516,7 @@ cgraph_build_static_cdtor (char which, tree body, int priority)
|
||||
|
||||
cgraph_add_new_function (decl, false);
|
||||
cgraph_mark_needed_node (cgraph_node (decl));
|
||||
set_cfun (NULL);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-01-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/34619
|
||||
* testsuite/libmudflap.c++/pass61-frag.cxx: New test.
|
||||
|
||||
2008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
|
||||
|
||||
PR libmudflap/26442
|
||||
|
20
libmudflap/testsuite/libmudflap.c++/pass61-frag.cxx
Normal file
20
libmudflap/testsuite/libmudflap.c++/pass61-frag.cxx
Normal file
@ -0,0 +1,20 @@
|
||||
// PR c++/34619
|
||||
// { dg-do compile }
|
||||
|
||||
template <typename> struct A
|
||||
{
|
||||
typedef int X;
|
||||
static const int N = 1;
|
||||
};
|
||||
|
||||
template <typename T> struct B
|
||||
{
|
||||
typedef typename A <int [A <T>::N]>::X Y;
|
||||
template <typename U> B (Y, U) {}
|
||||
};
|
||||
|
||||
int main ()
|
||||
{
|
||||
}
|
||||
|
||||
B <int>b (0, 0);
|
Loading…
Reference in New Issue
Block a user