summaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorlerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-19 04:06:51 +0000
committerlerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-19 04:06:51 +0000
commitce394707032867ede924a11fabab8836ec3a9c67 (patch)
tree2651f744840bd6d5ea8b45976f756323300045d4 /gcc/cp
parent07cf116c2ac5213d39f52b27b34a55f8abc524e9 (diff)
downloadgcc-ce394707032867ede924a11fabab8836ec3a9c67.tar.gz
* optimize.c (expand_call_inline): Don't walk subtrees of type
nodes. * g++.old-deja/g++.other/inline19.c: Remove XFAIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39873 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/optimize.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 0f94cec1354..cf3d059f82f 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 9d700f60904..115b4670adb 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;