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

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

?? objc-act.c

?? GCC編譯器源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
      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;     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);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品福利av导航| 在线观看国产91| 91啪九色porn原创视频在线观看| 播五月开心婷婷综合| 色噜噜狠狠色综合中国| 欧美一区二区三区婷婷月色| 国产亚洲精品7777| 一区二区三区加勒比av| 久久99精品国产麻豆婷婷| 成人免费视频播放| 欧美日韩一区二区三区在线 | 免费一级片91| 99re亚洲国产精品| 欧美va亚洲va国产综合| 中文字幕一区二区三区不卡 | 日韩免费观看2025年上映的电影| 国产精品污网站| 亚洲电影在线免费观看| 国产成人精品免费看| 欧美系列亚洲系列| 久久久久久久久久久久久久久99 | 91福利在线导航| 久久日韩精品一区二区五区| 一区二区三区成人| 亚洲精品乱码久久久久久久久| 蜜桃视频在线观看一区| 色国产综合视频| 久久久综合九色合综国产精品| 亚洲一卡二卡三卡四卡五卡| 国产伦精一区二区三区| 欧美精品v国产精品v日韩精品| 国产精品美女久久久久久久 | 亚洲精品在线观看视频| 亚洲一区二区综合| 成人中文字幕电影| 日韩欧美中文字幕一区| 亚洲乱码国产乱码精品精的特点 | 亚洲一区二区av在线| 成人黄色小视频在线观看| 日韩视频一区二区三区在线播放| 亚洲美女免费在线| 国产精品系列在线播放| 欧美一级理论片| 亚洲综合在线电影| 成人app在线观看| 久久久久久久综合色一本| 天堂在线一区二区| 91亚洲精品久久久蜜桃| 国产日韩av一区| 国内精品伊人久久久久av一坑| 欧美精品777| 亚洲五码中文字幕| 色婷婷综合激情| 亚洲欧洲av在线| youjizz久久| 国产亚洲精品aa午夜观看| 精品在线亚洲视频| 欧美一级久久久久久久大片| 亚洲一区在线看| 欧洲在线/亚洲| 亚洲精品国产成人久久av盗摄| 成人久久视频在线观看| 久久亚区不卡日本| 国产一区二区三区av电影| 亚洲精品一区二区三区影院 | 欧美成人欧美edvon| 视频一区二区三区在线| 欧美日韩在线一区二区| 亚洲精品欧美激情| 色94色欧美sute亚洲13| 亚洲人亚洲人成电影网站色| 成人网页在线观看| 欧美激情在线看| 风流少妇一区二区| 国产欧美精品一区aⅴ影院 | 国产精品二区一区二区aⅴ污介绍| 国产毛片精品一区| 久久久久国产精品厨房| 国产精品99久久不卡二区| 国产三级精品在线| 成人视屏免费看| 亚洲女与黑人做爰| 欧美在线免费观看亚洲| 天天做天天摸天天爽国产一区 | 日本成人在线一区| 日韩一区二区在线免费观看| 日韩黄色一级片| 欧美va亚洲va在线观看蝴蝶网| 韩国一区二区三区| 国产精品日韩精品欧美在线| 99久久婷婷国产综合精品电影| 国产精品国产三级国产专播品爱网| 99麻豆久久久国产精品免费 | 欧美日韩一区二区不卡| 日韩**一区毛片| 久久综合狠狠综合| 99精品欧美一区| 亚洲午夜电影网| 精品蜜桃在线看| av中文字幕亚洲| 亚洲综合色成人| 日韩欧美二区三区| 丁香婷婷深情五月亚洲| 亚洲天堂av一区| 宅男在线国产精品| 国产福利一区在线观看| 亚洲特级片在线| 91精品国产一区二区三区香蕉| 国产一区二区三区最好精华液| 国产精品国产三级国产有无不卡 | 亚洲电影视频在线| 久久综合色天天久久综合图片| 成人午夜激情在线| 亚洲成在人线免费| 久久精品欧美一区二区三区麻豆| 色天使久久综合网天天| 精品一区二区在线免费观看| 久久久久久久久伊人| 欧洲精品一区二区三区在线观看| 久久成人精品无人区| 亚洲欧美日本在线| 欧美电影精品一区二区| 99re热这里只有精品视频| 男人的天堂久久精品| 亚洲欧美视频在线观看视频| 91精品一区二区三区久久久久久| 高清在线观看日韩| 亚洲成人高清在线| 中日韩免费视频中文字幕| 欧美日韩一级大片网址| 成人一区二区三区视频| 首页欧美精品中文字幕| 国产精品乱人伦| 日韩三级在线免费观看| 色综合天天综合网天天看片| 精品一二三四在线| 亚洲一卡二卡三卡四卡| 亚洲国产精品ⅴa在线观看| 在线成人免费观看| 91浏览器打开| 国产一区二区不卡老阿姨| 亚洲午夜av在线| 中文字幕日韩一区| 精品成人一区二区三区| 欧美日韩一级大片网址| 9色porny自拍视频一区二区| 黄页视频在线91| 天堂资源在线中文精品| 国产精品福利电影一区二区三区四区 | 久久久久久久久免费| 欧美高清dvd| 色呦呦网站一区| 99久免费精品视频在线观看| 国模大尺度一区二区三区| 日韩国产精品大片| 亚洲地区一二三色| 亚洲人快播电影网| 国产精品久久久久久久裸模| 欧美精品一区在线观看| 日韩一区二区三区观看| 欧美无砖专区一中文字| 色av成人天堂桃色av| 成人午夜免费电影| 国产91高潮流白浆在线麻豆| 极品尤物av久久免费看| 日韩国产精品大片| 肉色丝袜一区二区| 亚洲一区二区黄色| 一区二区三区不卡在线观看| 亚洲欧美在线高清| 中文字幕在线观看不卡视频| 国产日韩欧美不卡在线| 国产午夜精品一区二区| 久久久亚洲高清| ww久久中文字幕| 精品国产一区二区亚洲人成毛片| 日韩一区二区中文字幕| 欧美一区二区三区视频在线| 欧美精品久久一区| 欧美电影在线免费观看| 欧美电影一区二区| 日韩一级免费观看| 精品久久国产97色综合| 欧美第一区第二区| 日韩午夜三级在线| 欧美tickling挠脚心丨vk| 亚洲精品在线一区二区| 久久―日本道色综合久久| 久久久久久久网| 日本一区二区三区国色天香 | av色综合久久天堂av综合| gogogo免费视频观看亚洲一| 成人污污视频在线观看| 不卡一区二区三区四区| 99久久精品免费看| 色欧美88888久久久久久影院| 色丁香久综合在线久综合在线观看| 欧美在线制服丝袜| 欧美电影一区二区三区| 日韩你懂的在线观看|