diff options
author | Richard Guenther <rguenther@suse.de> | 2011-12-12 08:37:22 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-12-12 08:37:22 +0000 |
commit | 7e529795d0c6a2c9441bb233a140e4b8ec2cf521 (patch) | |
tree | 6f5a02687aca26e6c6406af5bcc191022965ecf2 | |
parent | 0a5a95f20443fb1677300138e00249ea86c894eb (diff) | |
download | gcc-7e529795d0c6a2c9441bb233a140e4b8ec2cf521.zip gcc-7e529795d0c6a2c9441bb233a140e4b8ec2cf521.tar.gz gcc-7e529795d0c6a2c9441bb233a140e4b8ec2cf521.tar.bz2 |
re PR debug/51262 (ICE: SIGSEGV in primary_template_instantiation_p (pt.c:2874) with -flto -g)
2011-12-12 Richard Guenther <rguenther@suse.de>
PR lto/51262
* tree.c (cp_free_lang_data): No longer clear anonymous names.
* g++.dg/opt/pr51262.C: New testcase.
From-SVN: r182221
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/tree.c | 11 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/opt/pr51262.C | 21 |
4 files changed, 31 insertions, 11 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8090030..1ba9f34 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2011-12-12 Richard Guenther <rguenther@suse.de> + + PR lto/51262 + * tree.c (cp_free_lang_data): No longer clear anonymous names. + 2011-12-09 Jason Merrill <jason@redhat.com> PR c++/51151 diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 8d179d8..7899397 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -3479,17 +3479,6 @@ cp_free_lang_data (tree t) DECL_EXTERNAL (t) = 1; TREE_STATIC (t) = 0; } - if (CP_AGGREGATE_TYPE_P (t) - && TYPE_NAME (t)) - { - tree name = TYPE_NAME (t); - if (TREE_CODE (name) == TYPE_DECL) - name = DECL_NAME (name); - /* Drop anonymous names. */ - if (name != NULL_TREE - && ANON_AGGRNAME_P (name)) - TYPE_NAME (t) = NULL_TREE; - } if (TREE_CODE (t) == NAMESPACE_DECL) { /* The list of users of a namespace isn't useful for the middle-end diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ba6d3c4..1d78adf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-12-12 Richard Guenther <rguenther@suse.de> + + PR lto/51262 + * g++.dg/opt/pr51262.C: New testcase. + 2011-12-12 Revital Eres <revital.eres@linaro.org> PR rtl-optimization/47013 diff --git a/gcc/testsuite/g++.dg/opt/pr51262.C b/gcc/testsuite/g++.dg/opt/pr51262.C new file mode 100644 index 0000000..d0e8d78 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr51262.C @@ -0,0 +1,21 @@ +// { dg-do compile } +// { dg-require-effective-target lto } +// { dg-options "-flto -g" } + +template < typename > void * +bar (int *p) +{ + union + { + int *p; + } + u; + u.p = p; + return u.p; +} + +void +foo (int *p) +{ + bar < void >(p); +} |