From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/objc/objc-next-metadata-tags.h | 172 +++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 gcc/objc/objc-next-metadata-tags.h (limited to 'gcc/objc/objc-next-metadata-tags.h') diff --git a/gcc/objc/objc-next-metadata-tags.h b/gcc/objc/objc-next-metadata-tags.h new file mode 100644 index 000000000..db0026ec6 --- /dev/null +++ b/gcc/objc/objc-next-metadata-tags.h @@ -0,0 +1,172 @@ +/* Declarations for meta-data attribute tags. + Copyright (C) 2011 Free Software Foundation, Inc. + Contributed by Iain Sandoe + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +/* These are identifiers used to flag meta-data attributes such that they + survive LTO and might be placed in correct sections for the target. */ + +enum objc_runtime_tree_index +{ + OCTI_RT_OBJC_META, + OCTI_RT_META_BASE, + + OCTI_RT_META_CLASS, + OCTI_RT_META_METACLASS, + OCTI_RT_META_CATEGORY, + OCTI_RT_META_PROTOCOL, + + OCTI_RT_META_CLASS_CLS_VARS, + OCTI_RT_META_CLASS_NST_VARS, + + OCTI_RT_META_CLASS_CLS_METH, + OCTI_RT_META_CLASS_NST_METH, + OCTI_RT_META_CATEG_CLS_METH, + OCTI_RT_META_CATEG_NST_METH, + OCTI_RT_META_PROTO_CLS_METH, + OCTI_RT_META_PROTO_NST_METH, + + OCTI_RT_META_CLASS_PROT, + OCTI_RT_META_CATEG_PROT, + OCTI_RT_META_PROT_REFS, + + OCTI_RT_META_MSG_REFS, + OCTI_RT_META_SEL_REFS, + + OCTI_RT_META_CLSLST_REFS, + OCTI_RT_META_CLASS_REF, + OCTI_RT_META_SUPER_REF, + OCTI_RT_META_CLSLST_NLZY_LAB, + OCTI_RT_META_CLSLST_LAB, + OCTI_RT_META_LAB_PROTOLIST, + OCTI_RT_META_LAB_NLZY_CAT, + OCTI_RT_META_LAB_CAT, + + OCTI_RT_META_PROPERTY_LIST, + OCTI_RT_META_PROTOCOL_EXT, + OCTI_RT_META_CLASS_EXT, + + OCTI_RT_META_CLASS_NAME, + OCTI_RT_META_METHD_NAME, + OCTI_RT_META_METHD_TYPE, + OCTI_RT_META_PROPN_ATTR, + + OCTI_RT_META_MODULES, + OCTI_RT_META_SYMTAB, + OCTI_RT_META_INFO, + + OCTI_RT_META_EHTYPE, + + OCTI_RT_META_CONST_STR, + + OCTI_RT_META_MAX +}; + +/* Tags for the META data so that the backend can put them in the correct + sections for targets/runtimes (Darwin/NeXT) that require this. + This information also survives LTO - which might produce mixed language + output. */ + +/* Objective-C meta data attribute tag */ +#define objc_meta objc_rt_trees[OCTI_RT_OBJC_META] +/* Attribute values, base = default section. */ +#define meta_base objc_rt_trees[OCTI_RT_META_BASE] + + /* CLASS. */ +#define meta_class objc_rt_trees[OCTI_RT_META_CLASS] + /* METACLASS. */ +#define meta_metaclass objc_rt_trees[OCTI_RT_META_METACLASS] + /* CLASS. */ +#define meta_category objc_rt_trees[OCTI_RT_META_CATEGORY] + /* PROTOCOL. */ +#define meta_protocol objc_rt_trees[OCTI_RT_META_PROTOCOL] + + /* Class class vars section. */ +#define meta_clac_vars objc_rt_trees[OCTI_RT_META_CLASS_CLS_VARS] + /* Class instance vars section. */ +#define meta_clai_vars objc_rt_trees[OCTI_RT_META_CLASS_NST_VARS] + /* Class class methods section. */ +#define meta_clac_meth objc_rt_trees[OCTI_RT_META_CLASS_CLS_METH] + /* Class instance methods section. */ +#define meta_clai_meth objc_rt_trees[OCTI_RT_META_CLASS_NST_METH] + /* Category class methods section. */ +#define meta_catc_meth objc_rt_trees[OCTI_RT_META_CATEG_CLS_METH] + /* Category instance methods section. */ +#define meta_cati_meth objc_rt_trees[OCTI_RT_META_CATEG_NST_METH] +#define meta_proto_cls_meth \ + objc_rt_trees[OCTI_RT_META_PROTO_CLS_METH] +#define meta_proto_nst_meth \ + objc_rt_trees[OCTI_RT_META_PROTO_NST_METH] + + /* Class protocols. */ +#define meta_clas_prot objc_rt_trees[OCTI_RT_META_CLASS_PROT] + /* Category protocols. */ +#define meta_catg_prot objc_rt_trees[OCTI_RT_META_CATEG_PROT] + /* Protocol references. */ +#define meta_proto_ref objc_rt_trees[OCTI_RT_META_PROT_REFS] + + /* Message refs. */ +#define meta_mref objc_rt_trees[OCTI_RT_META_MSG_REFS] + /* Selector refs. */ +#define meta_sel_refs objc_rt_trees[OCTI_RT_META_SEL_REFS] + + /* Class list refs. */ +#define meta_class_ref objc_rt_trees[OCTI_RT_META_CLSLST_REFS] +#define meta_class_reference \ + objc_rt_trees[OCTI_RT_META_CLASS_REF] +#define meta_superclass_ref \ + objc_rt_trees[OCTI_RT_META_SUPER_REF] + /* Class list Label. */ +#define meta_label_classlist \ + objc_rt_trees[OCTI_RT_META_CLSLST_LAB] + /* Class list Label (non lazy). */ +#define meta_label_nonlazy_classlist \ + objc_rt_trees[OCTI_RT_META_CLSLST_NLZY_LAB] +#define meta_label_categorylist \ + objc_rt_trees[OCTI_RT_META_LAB_CAT] +#define meta_label_nonlazy_categorylist \ + objc_rt_trees[OCTI_RT_META_LAB_NLZY_CAT] + +#define meta_label_protocollist \ + objc_rt_trees[OCTI_RT_META_LAB_PROTOLIST] + + +/* V1 - property list. */ +#define meta_proplist objc_rt_trees[OCTI_RT_META_PROPERTY_LIST] +#define meta_protocol_extension \ + objc_rt_trees[OCTI_RT_META_PROTOCOL_EXT] +#define meta_class_extension \ + objc_rt_trees[OCTI_RT_META_CLASS_EXT] + /* String sections. */ +#define meta_class_name objc_rt_trees[OCTI_RT_META_CLASS_NAME] +#define meta_meth_name objc_rt_trees[OCTI_RT_META_METHD_NAME] +#define meta_meth_type objc_rt_trees[OCTI_RT_META_METHD_TYPE] +#define meta_prop_name_attr \ + objc_rt_trees[OCTI_RT_META_PROPN_ATTR] + +#define meta_modules objc_rt_trees[OCTI_RT_META_MODULES] +#define meta_symtab objc_rt_trees[OCTI_RT_META_SYMTAB] +#define meta_info objc_rt_trees[OCTI_RT_META_INFO] + +#define meta_ehtype objc_rt_trees[OCTI_RT_META_EHTYPE] + +#define meta_const_str objc_rt_trees[OCTI_RT_META_CONST_STR] + +#define OBJCMETA(DECL,VERS,KIND) \ + if (VERS) \ + DECL_ATTRIBUTES (DECL) = build_tree_list ((VERS), (KIND)); -- cgit v1.2.3