diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2019-08-28 19:21:33 +0000 |
---|---|---|
committer | Iain Sandoe <iains@gcc.gnu.org> | 2019-08-28 19:21:33 +0000 |
commit | d098d5b487cf4f892c7e670cc9b4c849b75c4b16 (patch) | |
tree | b294124390efc49b69a730095d5454f2ca958c5c /gcc/objc/objc-act.h | |
parent | 86a03e9cc6c2b80339b24d3bdd148a8f8e520507 (diff) | |
download | gcc-d098d5b487cf4f892c7e670cc9b4c849b75c4b16.zip gcc-d098d5b487cf4f892c7e670cc9b4c849b75c4b16.tar.gz gcc-d098d5b487cf4f892c7e670cc9b4c849b75c4b16.tar.bz2 |
[ObjC] Recognise 'instancetype' as equivalent to 'id'.
This is primarily about fixing a number of testsuite fails, it
implements the parsing of 'instancetype' but doesn't alter the
code gen (relative to using id in the same position). It is
part of the work-arounds for PR90709.
gcc/objc/
2019-08-28 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* objc/objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New.
(objc_global_trees): Add instance type and name.
(INSTANCE_TYPEDEF_NAME): New.
* objc/objc-act.c (synth_module_prologue): Build decls for
objc_instancetype_type and objc_instancetype_name.
gcc/testsuite/
2019-08-28 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* objc.dg/instancetype-0.m: New.
From-SVN: r275001
Diffstat (limited to 'gcc/objc/objc-act.h')
-rw-r--r-- | gcc/objc/objc-act.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/objc/objc-act.h b/gcc/objc/objc-act.h index 4bae555..2865485 100644 --- a/gcc/objc/objc-act.h +++ b/gcc/objc/objc-act.h @@ -313,6 +313,7 @@ enum objc_tree_index OCTI_SUPER_TYPE, OCTI_SEL_TYPE, OCTI_ID_TYPE, + OCTI_INSTANCE_TYPE, OCTI_CLS_TYPE, OCTI_NST_TYPE, OCTI_PROTO_TYPE, @@ -368,6 +369,7 @@ enum objc_tree_index OCTI_OBJ_ID, OCTI_CLS_ID, OCTI_ID_NAME, + OCTI_INSTANCETYPE_NAME, OCTI_CLASS_NAME, OCTI_CNST_STR_ID, OCTI_CNST_STR_TYPE, @@ -443,6 +445,7 @@ extern GTY(()) tree objc_global_trees[OCTI_MAX]; #define objc_super_type objc_global_trees[OCTI_SUPER_TYPE] #define objc_selector_type objc_global_trees[OCTI_SEL_TYPE] #define objc_object_type objc_global_trees[OCTI_ID_TYPE] +#define objc_instancetype_type objc_global_trees[OCTI_INSTANCE_TYPE] #define objc_class_type objc_global_trees[OCTI_CLS_TYPE] #define objc_instance_type objc_global_trees[OCTI_NST_TYPE] #define objc_protocol_type objc_global_trees[OCTI_PROTO_TYPE] @@ -570,7 +573,8 @@ extern GTY(()) tree objc_global_trees[OCTI_MAX]; #define objc_object_id objc_global_trees[OCTI_OBJ_ID] #define objc_class_id objc_global_trees[OCTI_CLS_ID] -#define objc_object_name objc_global_trees[OCTI_ID_NAME] +#define objc_object_name objc_global_trees[OCTI_ID_NAME] +#define objc_instancetype_name objc_global_trees[OCTI_INSTANCETYPE_NAME] #define objc_class_name objc_global_trees[OCTI_CLASS_NAME] /* Constant string classes. */ @@ -608,6 +612,7 @@ extern GTY(()) tree objc_global_trees[OCTI_MAX]; /* Reserved tag definitions. */ #define OBJECT_TYPEDEF_NAME "id" +#define INSTANCE_TYPEDEF_NAME "instancetype" #define CLASS_TYPEDEF_NAME "Class" #define TAG_OBJECT "objc_object" |