diff options
author | Mark Mitchell <mark@codesourcery.com> | 2007-03-10 19:35:03 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2007-03-10 19:35:03 +0000 |
commit | 222725d08ca78dd64283f9df2ac43d4fc661b2c5 (patch) | |
tree | f6e878e3b43babf76962c20ef1fc4e81865839f4 /gcc/tree.c | |
parent | 89132ebc4c9e2bd960520dbbd8469d956794a7dd (diff) | |
download | gcc-222725d08ca78dd64283f9df2ac43d4fc661b2c5.zip gcc-222725d08ca78dd64283f9df2ac43d4fc661b2c5.tar.gz gcc-222725d08ca78dd64283f9df2ac43d4fc661b2c5.tar.bz2 |
re PR target/20924 (inline float divide does not set correct fpu status flags)
PR c++/20924
* tree.c (walk_type_fields): Recurse into the element type of
ARRAY_TYPEs if there is a pointer set.
PR c++/20924
* g++.dg/template/array18.C: New test.
From-SVN: r122801
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -7942,10 +7942,12 @@ walk_type_fields (tree type, walk_tree_fn func, void *data, break; case ARRAY_TYPE: - /* Don't follow this nodes's type if a pointer for fear that we'll - have infinite recursion. Those types are uninteresting anyway. */ - if (!POINTER_TYPE_P (TREE_TYPE (type)) - && TREE_CODE (TREE_TYPE (type)) != OFFSET_TYPE) + /* Don't follow this nodes's type if a pointer for fear that + we'll have infinite recursion. If we have a PSET, then we + need not fear. */ + if (pset + || (!POINTER_TYPE_P (TREE_TYPE (type)) + && TREE_CODE (TREE_TYPE (type)) != OFFSET_TYPE)) WALK_SUBTREE (TREE_TYPE (type)); WALK_SUBTREE (TYPE_DOMAIN (type)); break; |