diff options
author | Jan Hubicka <jh@suse.cz> | 2013-08-17 20:14:18 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-08-17 18:14:18 +0000 |
commit | 5945bebf44217c25eb47124b66823df7f1ddcb3d (patch) | |
tree | 7420acbccb1aaf6b9fc6cba0db0d8aee83d75a18 /gcc | |
parent | f4fca9d48101c0a7e6073fb280e65f976f582811 (diff) | |
download | gcc-5945bebf44217c25eb47124b66823df7f1ddcb3d.zip gcc-5945bebf44217c25eb47124b66823df7f1ddcb3d.tar.gz gcc-5945bebf44217c25eb47124b66823df7f1ddcb3d.tar.bz2 |
re PR middle-end/58179 (obj_type_ref ICE building libobjc)
PR middle-end/58179
* tree.c (obj_type_ref_class): Do not ICE on non-method calls.
From-SVN: r201817
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 66048e1..6462a05 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-08-16 Jan Hubicka <jh@suse.cz> + + PR middle-end/58179 + * tree.c (obj_type_ref_class): Do not ICE on non-method calls. + 2013-08-16 David Edelsohn <dje.gcc@gmail.com> * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length @@ -11873,7 +11873,11 @@ obj_type_ref_class (tree ref) ref = TREE_TYPE (ref); gcc_checking_assert (TREE_CODE (ref) == POINTER_TYPE); ref = TREE_TYPE (ref); - gcc_checking_assert (TREE_CODE (ref) == METHOD_TYPE); + /* We look for type THIS points to. ObjC also builds + OBJ_TYPE_REF with non-method calls, Their first parameter + ID however also corresponds to class type. */ + gcc_checking_assert (TREE_CODE (ref) == METHOD_TYPE + || TREE_CODE (ref) == FUNCTION_TYPE); ref = TREE_VALUE (TYPE_ARG_TYPES (ref)); gcc_checking_assert (TREE_CODE (ref) == POINTER_TYPE); return TREE_TYPE (ref); |