diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2007-04-07 23:08:23 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2007-04-07 23:08:23 +0000 |
commit | 270c60bb5f93889717d18a7835069897a7ce3e16 (patch) | |
tree | 52566fdbb0b084676aa3532c776e0d3c48a44aae /gcc/tree.c | |
parent | ee57a66148bae672e53312950c296ef81294f064 (diff) | |
download | gcc-270c60bb5f93889717d18a7835069897a7ce3e16.zip gcc-270c60bb5f93889717d18a7835069897a7ce3e16.tar.gz gcc-270c60bb5f93889717d18a7835069897a7ce3e16.tar.bz2 |
2007-04-07 Daniel Berlin <dberlin@dberlin.org>
Revert change removing staticp.
From-SVN: r123650
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -1986,7 +1986,10 @@ staticp (tree arg) return arg; case COMPONENT_REF: - gcc_assert (TREE_CODE (TREE_OPERAND (arg, 1)) == FIELD_DECL); + /* If the thing being referenced is not a field, then it is + something language specific. */ + if (TREE_CODE (TREE_OPERAND (arg, 1)) != FIELD_DECL) + return (*lang_hooks.staticp) (arg); /* If we are referencing a bitfield, we can't evaluate an ADDR_EXPR at compile time and so it isn't a constant. */ @@ -2012,10 +2015,11 @@ staticp (tree arg) return false; default: - /* All language specific tree codes should have been lowered by - now. */ - gcc_assert_lowered (arg); - return NULL; + if ((unsigned int) TREE_CODE (arg) + >= (unsigned int) LAST_AND_UNUSED_TREE_CODE) + return lang_hooks.staticp (arg); + else + return NULL; } } |