aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>2001-02-19 04:06:51 +0000
committerKriang Lerdsuwanakij <lerdsuwa@gcc.gnu.org>2001-02-19 04:06:51 +0000
commit612164eb464933b98366aeb4c4cf2b59861d4607 (patch)
tree2651f744840bd6d5ea8b45976f756323300045d4
parent3d1c8788547414de4fefbec44a1c014b77781fcf (diff)
downloadgcc-612164eb464933b98366aeb4c4cf2b59861d4607.zip
gcc-612164eb464933b98366aeb4c4cf2b59861d4607.tar.gz
gcc-612164eb464933b98366aeb4c4cf2b59861d4607.tar.bz2
optimize.c (expand_call_inline): Don't walk subtrees of type nodes.
* optimize.c (expand_call_inline): Don't walk subtrees of type nodes. * g++.old-deja/g++.other/inline19.c: Remove XFAIL. From-SVN: r39873
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/optimize.c6
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/inline19.C2
4 files changed, 16 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 0f94cec..cf3d059 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ * optimize.c (expand_call_inline): Don't walk subtrees of type
+ nodes.
+
2001-02-18 Mark Mitchell <mark@codesourcery.com>
* class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index 9d700f6..115b467 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -673,6 +673,12 @@ expand_call_inline (tp, walk_subtrees, data)
return NULL_TREE;
}
+ if (TREE_CODE_CLASS (TREE_CODE (t)) == 't')
+ /* Because types were not copied in copy_body, CALL_EXPRs beneath
+ them should not be expanded. This can happen if the type is a
+ dynamic array type, for example. */
+ *walk_subtrees = 0;
+
/* From here on, we're only interested in CALL_EXPRs. */
if (TREE_CODE (t) != CALL_EXPR)
return NULL_TREE;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ff6cea8..998ef71 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ * g++.old-deja/g++.other/inline19.c: Remove XFAIL.
+
2001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
* g++.old-deja/g++.other/decl9.C: New test.
diff --git a/gcc/testsuite/g++.old-deja/g++.other/inline19.C b/gcc/testsuite/g++.old-deja/g++.other/inline19.C
index 8770eb3..c27aa53 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/inline19.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/inline19.C
@@ -2,7 +2,7 @@
// Origin: Scott Snyder <snyder@fnal.gov> via PR 1733.
// Special g++ Options: -O1
//
-// crash test - XFAIL *-*-*
+// crash test
struct TBtItem
{