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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? objc-act.c

?? gcc庫的原代碼,對編程有很大幫助.
?? C
?? 第 1 頁 / 共 5 頁
字號:
  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;     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));}/* Declare a static instance of CLASS_DECL initialized by CONSTRUCTOR.  */static treeobjc_add_static_instance (constructor, class_decl)     tree constructor, class_decl;{  static int num_static_inst;  tree *chain, decl, decl_spec, decl_expr;  char buf[256];  push_obstacks_nochange ();  end_temporary_allocation ();  /* Find the list of static instances for the CLASS_DECL.  Create one if     not found.  */  for (chain = &objc_static_instances;       *chain && TREE_VALUE (*chain) != class_decl;       chain = &TREE_CHAIN (*chain));  if (!*chain)    {      *chain = tree_cons (NULL_TREE, class_decl, NULL_TREE);      add_objc_string (TYPE_NAME (class_decl), class_names);    }  sprintf (buf, "_OBJC_INSTANCE_%d", num_static_inst++);  decl = build_decl (VAR_DECL, get_identifier (buf), class_decl);  DECL_COMMON (decl) = 1;  TREE_STATIC (decl) = 1;  DECL_ARTIFICIAL (decl) = 1;  pushdecl_top_level (decl);  rest_of_decl_compilation (decl, 0, 1, 0);  /* Do this here so it gets output later instead of possibly     inside something else we are writing.  */  DECL_INITIAL (decl) = constructor;  /* Add the DECL to the head of this CLASS' list.  */  TREE_PURPOSE (*chain) = tree_cons (NULL_TREE, decl, TREE_PURPOSE (*chain));  pop_obstacks ();  return decl;}/* Build a static constant CONSTRUCTOR   with type TYPE and elements ELTS.  */static treebuild_constructor (type, elts)     tree type, elts;{  tree constructor = build (CONSTRUCTOR, type, NULL_TREE, elts);  TREE_CONSTANT (constructor) = 1;  TREE_STATIC (constructor) = 1;  TREE_READONLY (constructor) = 1;  return constructor;}/* Take care of defining and initializing _OBJC_SYMBOLS.  *//* Predefine the following data type:   struct _objc_symtab   {     long sel_ref_cnt;     SEL *refs;     short cls_def_cnt;     short cat_def_cnt;     void *defs[cls_def_cnt + cat_def_cnt];   }; */static voidbuild_objc_symtab_template (){  tree field_decl, field_decl_chain, index;  objc_symtab_template    = start_struct (RECORD_TYPE, get_identifier (UTAG_SYMTAB));  /* long sel_ref_cnt; */  field_decl = create_builtin_decl (FIELD_DECL,				    long_integer_type_node,				    "sel_ref_cnt");  field_decl_chain = field_decl;  /* SEL *refs; */  field_decl = create_builtin_decl (FIELD_DECL,				    build_pointer_type (selector_type),				    "refs");  chainon (field_decl_chain, field_decl);  /* short cls_def_cnt; */  field_decl = create_builtin_decl (FIELD_DECL,				    short_integer_type_node,				    "cls_def_cnt");  chainon (field_decl_chain, field_decl);  /* short cat_def_cnt; */  field_decl = create_builtin_decl (FIELD_DECL,				    short_integer_type_node,				    "cat_def_cnt");  chainon (field_decl_chain, field_decl);  /* void *defs[cls_def_cnt + cat_def_cnt]; */  index = build_index_type (build_int_2 (imp_count + cat_count - 1,					 imp_count == 0 && cat_count == 0					 ? -1 : 0));  field_decl = create_builtin_decl (FIELD_DECL,				    build_array_type (ptr_type_node, index),				    "defs");  chainon (field_decl_chain, field_decl);  finish_struct (objc_symtab_template, field_decl_chain, NULL_TREE);}/* Create the initial value for the `defs' field of _objc_symtab.   This is a CONSTRUCTOR.  */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人美女视频在线观看18| 久久午夜电影网| 在线观看日韩av先锋影音电影院| 96av麻豆蜜桃一区二区| 一本久久a久久免费精品不卡| aaa欧美色吧激情视频| 91一区在线观看| 日本韩国一区二区三区视频| 91蝌蚪porny| 欧美午夜一区二区三区| 91福利在线导航| 在线观看亚洲成人| 欧美日韩不卡在线| 91麻豆精品国产无毒不卡在线观看 | 亚洲丝袜另类动漫二区| 亚洲人精品午夜| 亚洲一区二区黄色| 天涯成人国产亚洲精品一区av| 亚洲福利一二三区| 麻豆一区二区99久久久久| 国产在线不卡视频| 99久久久国产精品| 欧美亚洲一区二区三区四区| 欧美精品日韩综合在线| 精品久久久久久久人人人人传媒| 中文字幕国产一区二区| 亚洲黄色av一区| 男男gaygay亚洲| 国产精品99久久久久| caoporn国产一区二区| 欧洲视频一区二区| 欧美成人一区二区三区| 国产精品美女久久久久aⅴ国产馆| 亚洲欧美欧美一区二区三区| 天堂va蜜桃一区二区三区漫画版| 狠狠色丁香久久婷婷综合丁香| 成人天堂资源www在线| 在线观看日韩电影| 久久久久久久综合| 亚洲男人的天堂av| 久久www免费人成看片高清| 成人av免费在线播放| 欧美日韩另类国产亚洲欧美一级| 日韩欧美黄色影院| ...xxx性欧美| 蜜臀av性久久久久蜜臀aⅴ流畅| 高清不卡在线观看av| 欧美日韩高清一区二区| 久久精品一区二区三区四区| 亚洲欧洲成人av每日更新| 蜜臀a∨国产成人精品| 99re这里只有精品6| 日韩欧美一二区| 亚洲欧美日韩中文播放 | 成人av电影在线网| 欧美放荡的少妇| 中文字幕在线观看一区二区| 免费日本视频一区| 欧美在线免费播放| 国产亚洲欧美一区在线观看| 亚洲成人av一区| 国产剧情一区二区| 欧美一区二区成人6969| 亚洲人成精品久久久久| 国产福利精品一区| 日韩你懂的在线观看| 夜夜夜精品看看| 成人国产精品视频| 精品欧美乱码久久久久久1区2区| 洋洋av久久久久久久一区| 高清beeg欧美| 欧美videossexotv100| 亚洲成人免费影院| 色综合视频一区二区三区高清| 久久久久国产精品麻豆ai换脸 | 欧美天天综合网| 国产精品久久三| 国内精品自线一区二区三区视频| 欧美性色综合网| 国产精品久久久久久久久果冻传媒 | 欧美性生活久久| 国产精品美女一区二区在线观看| 玖玖九九国产精品| 91精品国产一区二区三区蜜臀 | 色综合天天性综合| 国产亚洲午夜高清国产拍精品| 视频精品一区二区| 欧美三级中文字幕在线观看| 国产精品国产自产拍高清av王其| 国产精品资源站在线| 欧美大胆一级视频| 美女网站视频久久| 欧美一二三区在线观看| 午夜精品久久一牛影视| 欧美三日本三级三级在线播放| 亚洲精品视频免费观看| 97久久精品人人做人人爽50路| 国产精品区一区二区三| 成人激情校园春色| 中文字幕日韩一区二区| 91丨国产丨九色丨pron| 亚洲美女少妇撒尿| 欧美影院精品一区| 水野朝阳av一区二区三区| 制服丝袜亚洲色图| 久久综合综合久久综合| 久久综合久久综合九色| 国产精品 欧美精品| 国产精品国产三级国产有无不卡| av电影天堂一区二区在线观看| 亚洲欧美影音先锋| 91丨九色丨蝌蚪富婆spa| 亚洲综合久久久| 911精品国产一区二区在线| 蜜臂av日日欢夜夜爽一区| 26uuuu精品一区二区| 国产成人精品免费看| 成人免费在线观看入口| 欧美综合在线视频| 美女视频黄频大全不卡视频在线播放| 欧美xxxx在线观看| 粉嫩av亚洲一区二区图片| 国产精品午夜电影| 欧美亚日韩国产aⅴ精品中极品| 亚洲第一二三四区| 欧美xxxxx裸体时装秀| 成人不卡免费av| 亚洲第一二三四区| 久久久久免费观看| 91热门视频在线观看| 午夜电影一区二区三区| 亚洲精品在线观看网站| 91丨porny丨蝌蚪视频| 午夜在线电影亚洲一区| 精品国产电影一区二区| 99精品国产视频| 视频一区视频二区在线观看| 国产三级一区二区| 欧美午夜一区二区| 国产在线国偷精品免费看| 最新热久久免费视频| 欧美一二三区在线| 91视频在线看| 日本特黄久久久高潮| 国产精品看片你懂得| 欧美精选一区二区| 国产999精品久久久久久绿帽| 亚洲电影第三页| 国产欧美日韩激情| 欧美另类变人与禽xxxxx| 高清在线观看日韩| 免费在线看成人av| 亚洲天堂免费看| 日韩欧美www| 91福利视频久久久久| 国产一区不卡视频| 亚洲妇女屁股眼交7| 中文字幕成人网| 精品久久国产老人久久综合| 日本精品视频一区二区三区| 国产精品一区一区三区| 性感美女极品91精品| 日韩理论片在线| 久久只精品国产| 欧美日本一区二区三区四区| 不卡av免费在线观看| 国内精品写真在线观看| 亚洲午夜久久久久久久久电影院| 国产精品入口麻豆九色| 精品成人一区二区三区| 欧美日韩国产一级二级| 99v久久综合狠狠综合久久| 国产精品一级二级三级| 日韩国产在线一| 一区二区三区高清不卡| 国产精品麻豆视频| 2017欧美狠狠色| 欧美一二三在线| 7777精品伊人久久久大香线蕉完整版 | 99久久伊人网影院| 精东粉嫩av免费一区二区三区 | 欧美三级日韩在线| 91片在线免费观看| 成人美女在线视频| 国产美女视频91| 激情国产一区二区| 麻豆国产精品777777在线| 天天综合色天天综合色h| 一区二区三区免费看视频| 国产精品视频在线看| 久久久国产一区二区三区四区小说 | 欧美电视剧免费全集观看| 4438成人网| 欧美精品粉嫩高潮一区二区| 色哟哟一区二区| 99国内精品久久| 91在线精品一区二区三区| 91影院在线观看| 在线视频一区二区免费| 欧美图片一区二区三区|