aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-11-27 22:50:20 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2007-11-27 22:50:20 +0100
commit62cbbe84cf173c2759c437610f051935663d3e64 (patch)
tree1844218597b8807c6ec29ff423ba800519ac6f15
parent908a22351801ee5f0f364d14a55ae38f546565b4 (diff)
downloadgcc-62cbbe84cf173c2759c437610f051935663d3e64.zip
gcc-62cbbe84cf173c2759c437610f051935663d3e64.tar.gz
gcc-62cbbe84cf173c2759c437610f051935663d3e64.tar.bz2
re PR tree-optimization/34181 (FAIL: g++.dg/opt/anchor1.C (internal compiler error))
PR tree-optimization/34181 * method.c (use_thunk): Don't inline the call in the thunk. From-SVN: r130474
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/method.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 37e7a3c..ea87688 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
2007-11-27 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/34181
+ * method.c (use_thunk): Don't inline the call in the thunk.
+
PR c++/34213
* tree.c (decl_linkage): Static data members and static member
functions in anonymous ns classes are lk_external.
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 05e21ba..3ef73fb 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -481,6 +481,7 @@ use_thunk (tree thunk_fndecl, bool emit_p)
argarray[i] = a;
t = build_call_a (alias, i, argarray);
CALL_FROM_THUNK_P (t) = 1;
+ CALL_CANNOT_INLINE_P (t) = 1;
if (VOID_TYPE_P (TREE_TYPE (t)))
finish_expr_stmt (t);