亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? objc-act.c

?? gcc-2.95.3 Linux下最常用的C編譯器
?? C
?? 第 1 頁 / 共 5 頁
字號:
	return (TYPED_OBJECT (TREE_TYPE (lhs)) != 0);      else	/* Defer to comptypes .*/	return -1;    }  else if (TREE_CODE (lhs) == RECORD_TYPE && TREE_CODE (rhs) == RECORD_TYPE)    ; /* Fall thru.  This is the case we have been handling all along */  else    /* Defer to comptypes.  */    return -1;  /* `id' = `<class> *', `<class> *' = `id' */  if ((TYPE_NAME (lhs) == objc_object_id && TYPED_OBJECT (rhs))      || (TYPE_NAME (rhs) == objc_object_id && TYPED_OBJECT (lhs)))    return 1;  /* `id' = `Class', `Class' = `id' */  else if ((TYPE_NAME (lhs) == objc_object_id	    && TYPE_NAME (rhs) == objc_class_id)	   || (TYPE_NAME (lhs) == objc_class_id	       && TYPE_NAME (rhs) == objc_object_id))    return 1;  /* `<class> *' = `<class> *' */  else if (TYPED_OBJECT (lhs) && TYPED_OBJECT (rhs))    {      tree lname = TYPE_NAME (lhs);      tree rname = TYPE_NAME (rhs);      tree inter;      if (lname == rname)	return 1;      /* If the left hand side is a super class of the right hand side,	 allow it.  */      for (inter = lookup_interface (rname); inter;	   inter = lookup_interface (CLASS_SUPER_NAME (inter)))	if (lname == CLASS_SUPER_NAME (inter))	  return 1;      /* Allow the reverse when reflexive.  */      if (reflexive)	for (inter = lookup_interface (lname); inter;	     inter = lookup_interface (CLASS_SUPER_NAME (inter)))	  if (rname == CLASS_SUPER_NAME (inter))	    return 1;      return 0;    }  else    /* Defer to comptypes.  */    return -1;}/* Called from c-decl.c before all calls to rest_of_decl_compilation.  */voidobjc_check_decl (decl)     tree decl;{  tree type = TREE_TYPE (decl);  if (TREE_CODE (type) == RECORD_TYPE      && TREE_STATIC_TEMPLATE (type)      && type != constant_string_type)    {      error_with_decl (decl, "`%s' cannot be statically allocated");      fatal ("statically allocated objects not supported");    }}voidmaybe_objc_check_decl (decl)     tree decl;{  if (doing_objc_thang)    objc_check_decl (decl);}/* Implement static typing.  At this point, we know we have an interface.  */treeget_static_reference (interface, protocols)     tree interface;     tree protocols;{  tree type = xref_tag (RECORD_TYPE, interface);  if (protocols)    {      tree t, m = TYPE_MAIN_VARIANT (type);      push_obstacks_nochange ();      end_temporary_allocation ();      t = copy_node (type);      TYPE_BINFO (t) = make_tree_vec (2);      pop_obstacks ();      /* Add this type to the chain of variants of TYPE.  */      TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (m);      TYPE_NEXT_VARIANT (m) = t;      /* Look up protocols and install in lang specific list.  */      TYPE_PROTOCOL_LIST (t) = lookup_and_install_protocols (protocols);      /* This forces a new pointer type to be created later	 (in build_pointer_type)...so that the new template	 we just created will actually be used...what a hack!  */      if (TYPE_POINTER_TO (t))	TYPE_POINTER_TO (t) = 0;      type = t;    }  return type;}treeget_object_reference (protocols)     tree protocols;{  tree type_decl = lookup_name (objc_id_id);  tree type;  if (type_decl && TREE_CODE (type_decl) == TYPE_DECL)    {      type = TREE_TYPE (type_decl);      if (TYPE_MAIN_VARIANT (type) != id_type)	warning ("Unexpected type for `id' (%s)",		gen_declaration (type, errbuf));    }  else    fatal ("Undefined type `id', please import <objc/objc.h>");  /* This clause creates a new pointer type that is qualified with     the protocol specification...this info is used later to do more     elaborate type checking.  */  if (protocols)    {      tree t, m = TYPE_MAIN_VARIANT (type);      push_obstacks_nochange ();      end_temporary_allocation ();      t = copy_node (type);      TYPE_BINFO (t) = make_tree_vec (2);      pop_obstacks ();      /* Add this type to the chain of variants of TYPE.  */      TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (m);      TYPE_NEXT_VARIANT (m) = t;      /* Look up protocols...and install in lang specific list */      TYPE_PROTOCOL_LIST (t) = lookup_and_install_protocols (protocols);      /* This forces a new pointer type to be created later	 (in build_pointer_type)...so that the new template	 we just created will actually be used...what a hack!  */      if (TYPE_POINTER_TO (t))	TYPE_POINTER_TO (t) = NULL;      type = t;    }  return type;}static treelookup_and_install_protocols (protocols)     tree protocols;{  tree proto;  tree prev = NULL;  tree return_value = protocols;  for (proto = protocols; proto; proto = TREE_CHAIN (proto))    {      tree ident = TREE_VALUE (proto);      tree p = lookup_protocol (ident);      if (!p)	{	  error ("Cannot find protocol declaration for `%s'",		 IDENTIFIER_POINTER (ident));	  if (prev)	    TREE_CHAIN (prev) = TREE_CHAIN (proto);	  else	    return_value = TREE_CHAIN (proto);	}      else	{	  /* Replace identifier with actual protocol node.  */	  TREE_VALUE (proto) = p;	  prev = proto;	}    }  return return_value;}/* Create and push a decl for a built-in external variable or field NAME.   CODE says which.   TYPE is its data type.  */static treecreate_builtin_decl (code, type, name)     enum tree_code code;     tree type;     char *name;{  tree decl = build_decl (code, get_identifier (name), type);  if (code == VAR_DECL)    {      TREE_STATIC (decl) = 1;      make_decl_rtl (decl, 0, 1);      pushdecl (decl);    }  DECL_ARTIFICIAL (decl) = 1;  return decl;}/* Purpose: "play" parser, creating/installing representations   of the declarations that are required by Objective-C.   Model: 	type_spec--------->sc_spec 	(tree_list)        (tree_list) 	    |                  | 	    |                  | 	identifier_node    identifier_node  */static voidsynth_module_prologue (){  tree temp_type;  tree super_p;  /* Defined in `objc.h' */  objc_object_id = get_identifier (TAG_OBJECT);  objc_object_reference = xref_tag (RECORD_TYPE, objc_object_id);  id_type = build_pointer_type (objc_object_reference);  objc_id_id = get_identifier (TYPE_ID);  objc_class_id = get_identifier (TAG_CLASS);  objc_class_type = build_pointer_type (xref_tag (RECORD_TYPE, objc_class_id));  protocol_type = build_pointer_type (xref_tag (RECORD_TYPE,				get_identifier (PROTOCOL_OBJECT_CLASS_NAME)));  /* Declare type of selector-objects that represent an operation name.  */#ifdef OBJC_INT_SELECTORS  /* `unsigned int' */  selector_type = unsigned_type_node;#else  /* `struct objc_selector *' */  selector_type    = build_pointer_type (xref_tag (RECORD_TYPE,				    get_identifier (TAG_SELECTOR)));#endif /* not OBJC_INT_SELECTORS */  /* Forward declare type, or else the prototype for msgSendSuper will     complain.  */  super_p = build_pointer_type (xref_tag (RECORD_TYPE,					  get_identifier (TAG_SUPER)));  /* id objc_msgSend (id, SEL, ...); */  temp_type    = build_function_type (id_type,			   tree_cons (NULL_TREE, id_type,				      tree_cons (NULL_TREE, selector_type,						 NULL_TREE)));  if (! flag_next_runtime)    {      umsg_decl = build_decl (FUNCTION_DECL,			      get_identifier (TAG_MSGSEND), temp_type);      DECL_EXTERNAL (umsg_decl) = 1;      TREE_PUBLIC (umsg_decl) = 1;      DECL_INLINE (umsg_decl) = 1;      DECL_ARTIFICIAL (umsg_decl) = 1;      if (flag_traditional && TAG_MSGSEND[0] != '_')	DECL_BUILT_IN_NONANSI (umsg_decl) = 1;      make_decl_rtl (umsg_decl, NULL_PTR, 1);      pushdecl (umsg_decl);    }  else    umsg_decl = builtin_function (TAG_MSGSEND, temp_type, NOT_BUILT_IN, 0);  /* id objc_msgSendSuper (struct objc_super *, SEL, ...); */  temp_type    = build_function_type (id_type,			   tree_cons (NULL_TREE, super_p,				      tree_cons (NULL_TREE, selector_type,						 NULL_TREE)));  umsg_super_decl = builtin_function (TAG_MSGSENDSUPER,				     temp_type, NOT_BUILT_IN, 0);  /* id objc_getClass (const char *); */  temp_type = build_function_type (id_type,			tree_cons (NULL_TREE,				   const_string_type_node,				   tree_cons (NULL_TREE, void_type_node,					      NULL_TREE)));  objc_get_class_decl    = builtin_function (TAG_GETCLASS, temp_type, NOT_BUILT_IN, 0);  /* id objc_getMetaClass (const char *); */  objc_get_meta_class_decl    = builtin_function (TAG_GETMETACLASS, temp_type, NOT_BUILT_IN, 0);  /* static SEL _OBJC_SELECTOR_TABLE[]; */  if (! flag_next_runtime)    {      if (flag_typed_selectors)	{	  /* Suppress outputting debug symbols, because	     dbxout_init hasn'r been called yet.  */	  enum debug_info_type save_write_symbols = write_symbols;	  write_symbols = NO_DEBUG;	  build_selector_template ();	  temp_type = build_array_type (objc_selector_template, NULL_TREE);	  write_symbols = save_write_symbols;	}      else	temp_type = build_array_type (selector_type, NULL_TREE);      layout_type (temp_type);      UOBJC_SELECTOR_TABLE_decl	= create_builtin_decl (VAR_DECL, temp_type,			       "_OBJC_SELECTOR_TABLE");      /* Avoid warning when not sending messages.  */      TREE_USED (UOBJC_SELECTOR_TABLE_decl) = 1;    }  generate_forward_declaration_to_string_table ();  /* Forward declare constant_string_id and constant_string_type.  */  constant_string_id = get_identifier (STRING_OBJECT_CLASS_NAME);  constant_string_type = xref_tag (RECORD_TYPE, constant_string_id);}/* Custom build_string which sets TREE_TYPE!  */static treemy_build_string (len, str)     int len;     char *str;{  int wide_flag = 0;  tree a_string = build_string (len, str);  /* Some code from combine_strings, which is local to c-parse.y.  */  if (TREE_TYPE (a_string) == int_array_type_node)    wide_flag = 1;  TREE_TYPE (a_string)    = build_array_type (wide_flag ? integer_type_node : char_type_node,			build_index_type (build_int_2 (len - 1, 0)));  TREE_CONSTANT (a_string) = 1;	/* Puts string in the readonly segment */  TREE_STATIC (a_string) = 1;  return a_string;}/* Return a newly constructed OBJC_STRING_CST node whose value is   the LEN characters at STR.   The TREE_TYPE is not initialized.  */treebuild_objc_string (len, str)     int len;     const char *str;{  tree s = build_string (len, str);  TREE_SET_CODE (s, OBJC_STRING_CST);  return s;}/* Given a chain of OBJC_STRING_CST's, build a static instance of   NXConstanString which points at the concatenation of those strings.   We place the string object in the __string_objects section of the   __OBJC segment.  The Objective-C runtime will initialize the isa   pointers of the string objects to point at the NXConstandString class   object.  */treebuild_objc_string_object (strings)     tree strings;{  tree string, initlist, constructor;  int length;  if (!doing_objc_thang)    objc_fatal ();  if (lookup_interface (constant_string_id) == NULL_TREE)    {      error ("Cannot find interface declaration for `%s'",	     IDENTIFIER_POINTER (constant_string_id));      return error_mark_node;    }  add_class_reference (constant_string_id);  /* Combine_strings will work for OBJC_STRING_CST's too.  */  string = combine_strings (strings);  TREE_SET_CODE (string, STRING_CST);  length = TREE_STRING_LENGTH (string) - 1;  if (! flag_next_runtime)    {      push_obstacks_nochange ();      end_temporary_allocation ();      if (! TREE_PERMANENT (strings))	string = my_build_string (length + 1,				  TREE_STRING_POINTER (string));    }  /* & ((NXConstantString) {0, string, length})  */  initlist = build_tree_list (NULL_TREE, build_int_2 (0, 0));  initlist    = tree_cons (NULL_TREE, copy_node (build_unary_op (ADDR_EXPR, string, 1)),		 initlist);  initlist = tree_cons (NULL_TREE, build_int_2 (length, 0), initlist);  constructor = build_constructor (constant_string_type, nreverse (initlist));  if (!flag_next_runtime)    {      constructor	= objc_add_static_instance (constructor, constant_string_type);      pop_obstacks ();    }  return (build_unary_op (ADDR_EXPR, constructor, 1));}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线一区二区三区| 欧美一区二视频| 亚洲h在线观看| 亚洲欧美综合网| 国产精品色在线观看| 精品国精品国产尤物美女| 欧美一区二区播放| 亚洲日本在线天堂| 亚洲无人区一区| 日韩精品电影在线观看| 老司机精品视频导航| 久久国产精品色| 欧美综合视频在线观看| 欧美在线看片a免费观看| 久久久三级国产网站| 国产精品久久久久aaaa樱花 | 色婷婷激情综合| 99久久伊人久久99| 色婷婷国产精品久久包臀| 精品国产1区2区3区| 日韩成人dvd| 国产伦精品一区二区三区免费| 国产91在线|亚洲| 色噜噜夜夜夜综合网| 4438成人网| 久久久精品2019中文字幕之3| 午夜精品视频一区| 男女男精品视频网| 成人av电影免费观看| 欧美中文字幕一区二区三区亚洲| 中文字幕av免费专区久久| 日韩不卡一区二区三区| 在线视频一区二区三| 综合欧美一区二区三区| 99国产精品久久| 日韩美女精品在线| 欧美主播一区二区三区| 亚洲成人午夜电影| 在线综合亚洲欧美在线视频| 日韩高清一级片| 日韩一区二区三区三四区视频在线观看 | 免费观看成人av| 欧美一区二视频| 久久av老司机精品网站导航| 精品日本一线二线三线不卡| 亚洲欧美另类在线| 激情成人午夜视频| 欧美日韩你懂得| 国产精品久久久久久久第一福利 | 欧美一级久久久久久久大片| 奇米影视一区二区三区| www久久精品| 三级成人在线视频| 精品国产免费视频| 本田岬高潮一区二区三区| 亚洲综合久久av| 成人激情午夜影院| 亚洲激情av在线| av福利精品导航| 亚洲成人精品一区| 精品少妇一区二区三区视频免付费| 国内精品视频一区二区三区八戒| 国产色婷婷亚洲99精品小说| 青青草原综合久久大伊人精品| 精品1区2区在线观看| 成人午夜在线播放| 欧美激情一区二区三区不卡| 99国产精品久久久久久久久久 | 欧美一区二区三区色| 国产精品99久| 国产欧美日韩久久| 国产宾馆实践打屁股91| 亚洲黄色片在线观看| 日韩欧美成人一区二区| 国产成人高清在线| 91精品国产91久久综合桃花| 国产成人精品三级麻豆| 视频一区二区不卡| 国产精品亲子乱子伦xxxx裸| 7777精品伊人久久久大香线蕉最新版| 国产剧情一区在线| 婷婷激情综合网| 综合av第一页| 久久久久久久久久久久久久久99| 欧美日韩日本视频| 成+人+亚洲+综合天堂| 久久成人免费日本黄色| 亚洲女同一区二区| 国产日韩欧美精品一区| 91精品欧美综合在线观看最新| 99久久国产综合精品色伊| 免费成人在线视频观看| 亚洲最新在线观看| 欧美日韩一区视频| 国产精品伦理一区二区| 日韩电影在线一区二区| 精品国产乱码久久久久久图片 | 欧美一二三四在线| 亚洲成av人片观看| 欧美男生操女生| 欧美日韩午夜在线| 国产婷婷精品av在线| 99久久精品费精品国产一区二区| 韩国视频一区二区| 日本大胆欧美人术艺术动态| 亚洲一二三区在线观看| 亚洲欧美视频在线观看| 国产精品国产自产拍高清av| 国产三级一区二区| 中文字幕亚洲精品在线观看 | 欧美精品丝袜久久久中文字幕| 午夜私人影院久久久久| 亚洲桃色在线一区| 亚洲人吸女人奶水| 亚洲日本护士毛茸茸| 亚洲女同女同女同女同女同69| 国产精品国产精品国产专区不蜜 | av激情综合网| 国产999精品久久久久久绿帽| 国产大陆a不卡| 秋霞影院一区二区| 成人黄色综合网站| 成人午夜av电影| 国产成人精品影视| 国产高清精品网站| 国产福利一区二区三区视频在线| 激情综合色播激情啊| 国产乱人伦偷精品视频免下载| 国产在线精品一区二区三区不卡 | 狠狠色综合日日| 国产精品亚洲а∨天堂免在线| 国产成人精品亚洲777人妖| 久久精品国产99国产精品| 国产一区三区三区| 成人av影视在线观看| 色婷婷精品久久二区二区蜜臂av| 欧美无人高清视频在线观看| 亚州成人在线电影| 七七婷婷婷婷精品国产| 国产一区福利在线| 91麻豆国产精品久久| 国产寡妇亲子伦一区二区| 国产成人av福利| 91麻豆.com| 欧美本精品男人aⅴ天堂| 久久色中文字幕| 国产精品理伦片| 亚洲第一搞黄网站| 国内精品不卡在线| 91在线丨porny丨国产| 欧美日韩激情一区| 国产欧美视频一区二区| 亚洲国产精品一区二区久久恐怖片| 亚洲va国产天堂va久久en| 国产福利一区二区三区视频| 欧美一a一片一级一片| 精品国产不卡一区二区三区| 最新久久zyz资源站| 免费的成人av| 色噜噜久久综合| 国产亚洲一区二区三区四区| 亚洲与欧洲av电影| 成人激情校园春色| 精品国产凹凸成av人导航| 亚洲精品一二三四区| 国产一区二区三区综合| 欧美色网一区二区| 国产精品久久久一本精品| 寂寞少妇一区二区三区| 免费在线观看一区二区三区| 成人做爰69片免费看网站| 91精品国模一区二区三区| 亚洲欧美一区二区三区国产精品| 精品一区二区三区av| 欧美体内she精视频| 一色屋精品亚洲香蕉网站| 九九九精品视频| 欧美区一区二区三区| 亚洲欧美色一区| 不卡高清视频专区| 国产日本欧洲亚洲| 国产精品一线二线三线| 制服.丝袜.亚洲.另类.中文| 亚洲精品少妇30p| 不卡av免费在线观看| 国产三级欧美三级日产三级99| 日本中文字幕一区二区视频| 欧美色图第一页| 一区二区成人在线视频| 一本色道亚洲精品aⅴ| 国产精品看片你懂得| av在线不卡电影| 国产精品色眯眯| 大美女一区二区三区| 亚洲国产岛国毛片在线| 高清在线不卡av| 欧美激情一区二区三区在线| 高清成人免费视频| 中文字幕巨乱亚洲| 99热99精品|