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

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

?? objc-act.c

?? gcc庫的原代碼,對編程有很大幫助.
?? C
?? 第 1 頁 / 共 5 頁
字號:
extern enum debug_info_type write_symbols;/* Data imported from toplev.c.  */extern char *dump_base_name;/* Generate code for GNU or NeXT runtime environment.  */#ifdef NEXT_OBJC_RUNTIMEint flag_next_runtime = 1;#elseint flag_next_runtime = 0;#endifint flag_typed_selectors;/* Open and close the file for outputting class declarations, if requested.  */int flag_gen_declaration = 0;FILE *gen_declaration_file;/* Warn if multiple methods are seen for the same selector, but with   different argument types. */int warn_selector = 0;/* Warn if methods required by a protocol are not implemented in the    class adopting it.  When turned off, methods inherited to that   class are also considered implemented */int flag_warn_protocol = 1;/* Tells "encode_pointer/encode_aggregate" whether we are generating   type descriptors for instance variables (as opposed to methods).   Type descriptors for instance variables contain more information   than methods (for static typing and embedded structures). This   was added to support features being planned for dbkit2. */static int generating_instance_variables = 0;voidlang_init (){  /* The beginning of the file is a new line; check for #.     With luck, we discover the real source file's name from that     and put it in input_filename.  */  ungetc (check_newline (), finput);  /* The line number can be -1 if we had -g3 and the input file     had a directive specifying line 0.  But we want predefined     functions to have a line number of 0, not -1.  */  if (lineno == -1)    lineno = 0;  /* If gen_declaration desired, open the output file.  */  if (flag_gen_declaration)    {      int dump_base_name_length = strlen (dump_base_name);      register char *dumpname = (char *) xmalloc (dump_base_name_length + 7);      strcpy (dumpname, dump_base_name);      strcat (dumpname, ".decl");      gen_declaration_file = fopen (dumpname, "w");      if (gen_declaration_file == 0)	pfatal_with_name (dumpname);    }  if (flag_next_runtime)    {      TAG_GETCLASS = "objc_getClass";      TAG_GETMETACLASS = "objc_getMetaClass";      TAG_MSGSEND = "objc_msgSend";      TAG_MSGSENDSUPER = "objc_msgSendSuper";      TAG_EXECCLASS = "__objc_execClass";    }  else    {      TAG_GETCLASS = "objc_get_class";      TAG_GETMETACLASS = "objc_get_meta_class";      TAG_MSGSEND = "objc_msg_lookup";      TAG_MSGSENDSUPER = "objc_msg_lookup_super";      TAG_EXECCLASS = "__objc_exec_class";      flag_typed_selectors = 1;    }  if (doing_objc_thang)    init_objc ();}static voidobjc_fatal (){  fatal ("Objective-C text in C source file");}voidfinish_file (){  if (doing_objc_thang)    finish_objc ();		/* Objective-C finalization */  if (gen_declaration_file)    fclose (gen_declaration_file);}voidlang_finish (){}char *lang_identify (){  return "objc";}intlang_decode_option (p)     char *p;{  if (!strcmp (p, "-lang-objc"))    doing_objc_thang = 1;  else if (!strcmp (p, "-gen-decls"))    flag_gen_declaration = 1;  else if (!strcmp (p, "-Wselector"))    warn_selector = 1;  else if (!strcmp (p, "-Wno-selector"))    warn_selector = 0;  else if (!strcmp (p, "-Wprotocol"))    flag_warn_protocol = 1;  else if (!strcmp (p, "-Wno-protocol"))    flag_warn_protocol = 0;  else if (!strcmp (p, "-fgnu-runtime"))    flag_next_runtime = 0;  else if (!strcmp (p, "-fno-next-runtime"))    flag_next_runtime = 0;  else if (!strcmp (p, "-fno-gnu-runtime"))    flag_next_runtime = 1;  else if (!strcmp (p, "-fnext-runtime"))    flag_next_runtime = 1;  else    return c_decode_option (p);  return 1;}static treedefine_decl (declarator, declspecs)     tree declarator;     tree declspecs;{  tree decl = start_decl (declarator, declspecs, 0, NULL_TREE, NULL_TREE);  finish_decl (decl, NULL_TREE, NULL_TREE);  return decl;}/* Return 1 if LHS and RHS are compatible types for assignment or   various other operations.  Return 0 if they are incompatible, and   return -1 if we choose to not decide.  When the operation is   REFLEXIVE, check for compatibility in either direction.   For statically typed objects, an assignment of the form `a' = `b'   is permitted if:   `a' is of type "id",   `a' and `b' are the same class type, or   `a' and `b' are of class types A and B such that B is a descendant of A.  */intmaybe_objc_comptypes (lhs, rhs, reflexive)     tree lhs, rhs;     int reflexive;{  if (doing_objc_thang)    return objc_comptypes (lhs, rhs, reflexive);  return -1;}static treelookup_method_in_protocol_list (rproto_list, sel_name, class_meth)   tree rproto_list;   tree sel_name;   int class_meth;{   tree rproto, p;   tree fnd = 0;   for (rproto = rproto_list; rproto; rproto = TREE_CHAIN (rproto))     {        p = TREE_VALUE (rproto);	if (TREE_CODE (p) == PROTOCOL_INTERFACE_TYPE)	  {	    if ((fnd = lookup_method (class_meth				      ? PROTOCOL_CLS_METHODS (p)				      : PROTOCOL_NST_METHODS (p), sel_name)))	      ;	    else if (PROTOCOL_LIST (p))	      fnd = lookup_method_in_protocol_list (PROTOCOL_LIST (p),						    sel_name, class_meth);	  }	else	  ; /* An identifier...if we could not find a protocol.  */	if (fnd)	  return fnd;     }   return 0;}static treelookup_protocol_in_reflist (rproto_list, lproto)   tree rproto_list;   tree lproto;{   tree rproto, p;   /* Make sure the protocol is support by the object on the rhs. */   if (TREE_CODE (lproto) == PROTOCOL_INTERFACE_TYPE)     {       tree fnd = 0;       for (rproto = rproto_list; rproto; rproto = TREE_CHAIN (rproto))	 {	   p = TREE_VALUE (rproto);	   if (TREE_CODE (p) == PROTOCOL_INTERFACE_TYPE)	     {	       if (lproto == p)		 fnd = lproto;	       else if (PROTOCOL_LIST (p))		 fnd = lookup_protocol_in_reflist (PROTOCOL_LIST (p), lproto);	     }	   if (fnd)	     return fnd;	 }     }   else     ; /* An identifier...if we could not find a protocol. */   return 0;}/* Return 1 if LHS and RHS are compatible types for assignment   or various other operations.  Return 0 if they are incompatible,   and return -1 if we choose to not decide.  When the operation   is REFLEXIVE, check for compatibility in either direction.  */intobjc_comptypes (lhs, rhs, reflexive)     tree lhs;     tree rhs;     int reflexive;{  /* New clause for protocols. */  if (TREE_CODE (lhs) == POINTER_TYPE      && TREE_CODE (TREE_TYPE (lhs)) == RECORD_TYPE      && TREE_CODE (rhs) == POINTER_TYPE      && TREE_CODE (TREE_TYPE (rhs)) == RECORD_TYPE)    {      int lhs_is_proto = IS_PROTOCOL_QUALIFIED_ID (lhs);      int rhs_is_proto = IS_PROTOCOL_QUALIFIED_ID (rhs);      if (lhs_is_proto)        {	  tree lproto, lproto_list = TYPE_PROTOCOL_LIST (lhs);	  tree rproto, rproto_list;	  tree p;	  if (rhs_is_proto)	    {	      rproto_list = TYPE_PROTOCOL_LIST (rhs);	      /* Make sure the protocol is supported by the object		 on the rhs.  */	      for (lproto = lproto_list; lproto; lproto = TREE_CHAIN (lproto))		{		  p = TREE_VALUE (lproto);		  rproto = lookup_protocol_in_reflist (rproto_list, p);		  if (!rproto)		    warning ("object does not conform to the `%s' protocol",			     IDENTIFIER_POINTER (PROTOCOL_NAME (p)));		}	    }	  else if (TYPED_OBJECT (TREE_TYPE (rhs)))	    {	      tree rname = TYPE_NAME (TREE_TYPE (rhs));	      tree rinter;	      /* Make sure the protocol is supported by the object		 on the rhs.  */	      for (lproto = lproto_list; lproto; lproto = TREE_CHAIN (lproto))		{		  p = TREE_VALUE (lproto);		  rproto = 0;		  rinter = lookup_interface (rname);		  while (rinter && !rproto)		    {		      tree cat;		      rproto_list = CLASS_PROTOCOL_LIST (rinter);		      rproto = lookup_protocol_in_reflist (rproto_list, p);		      /* Check for protocols adopted by categories. */		      cat = CLASS_CATEGORY_LIST (rinter);		      while (cat && !rproto)			{			  rproto_list = CLASS_PROTOCOL_LIST (cat);			  rproto = lookup_protocol_in_reflist (rproto_list, p);			  cat = CLASS_CATEGORY_LIST (cat);			}		      rinter = lookup_interface (CLASS_SUPER_NAME (rinter));		    }		  if (!rproto)		    warning ("class `%s' does not implement the `%s' protocol",	                     IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (rhs))),		             IDENTIFIER_POINTER (PROTOCOL_NAME (p)));		}	    }	  /* May change...based on whether there was any mismatch */          return 1;        }      else if (rhs_is_proto)	/* Lhs is not a protocol...warn if it is statically typed */	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;{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区加勒比av| 精品欧美乱码久久久久久1区2区| 欧美日韩亚洲不卡| 日韩一区二区在线看| 久久久精品国产免费观看同学| 国产精品激情偷乱一区二区∴| 一区二区在线看| 老汉av免费一区二区三区| 国产成人免费网站| 欧美私人免费视频| 久久亚洲二区三区| 亚洲美女屁股眼交| 黄色日韩网站视频| 色八戒一区二区三区| 精品久久久久久久久久久久久久久久久| 亚洲欧美综合另类在线卡通| 石原莉奈一区二区三区在线观看| 国产成人精品亚洲777人妖| 欧美性猛交xxxx黑人交| 久久综合狠狠综合| 亚洲电影视频在线| 成人综合婷婷国产精品久久蜜臀| 欧美日韩一二三区| 国产精品久久久久久亚洲伦| 免费看欧美美女黄的网站| 不卡av电影在线播放| 欧美一级高清片在线观看| 亚洲欧美在线视频| 国产在线精品一区二区不卡了| 日本精品裸体写真集在线观看| www欧美成人18+| 日韩成人午夜精品| 在线一区二区三区| 中文乱码免费一区二区| 美国一区二区三区在线播放| 欧美在线制服丝袜| 国产精品久久久久久久久晋中| 久久电影国产免费久久电影| 欧美主播一区二区三区美女| 国产精品嫩草影院com| 精品制服美女丁香| 欧美一三区三区四区免费在线看| 一区二区三区日韩欧美精品 | 欧美三级日本三级少妇99| 国产色爱av资源综合区| 蜜桃久久久久久| 欧美视频三区在线播放| 亚洲品质自拍视频| 99热精品国产| 欧美国产国产综合| 国产精品77777| 日韩免费视频线观看| 日韩综合小视频| 欧美少妇bbb| 亚洲午夜免费福利视频| 91免费视频大全| 亚洲欧美日韩国产一区二区三区| 国产宾馆实践打屁股91| 26uuu久久天堂性欧美| 另类综合日韩欧美亚洲| 欧美一区二区三区免费| 日韩高清欧美激情| 欧美精品久久天天躁| 亚洲影院理伦片| 91久久香蕉国产日韩欧美9色| 中文字幕视频一区二区三区久| 国产盗摄视频一区二区三区| 久久免费电影网| 国产精品中文有码| 国产欧美一区二区三区沐欲| 国产成人在线视频网址| 国产欧美日韩综合| 高清不卡一区二区在线| 国产视频在线观看一区二区三区 | 337p日本欧洲亚洲大胆精品| 毛片基地黄久久久久久天堂| 日韩三级中文字幕| 麻豆成人久久精品二区三区小说| 日韩女优毛片在线| 国产精品一区二区黑丝| 日本一区二区三区高清不卡| 成人精品国产一区二区4080| 国产精品免费视频观看| 日本韩国一区二区三区视频| 亚洲国产一区二区在线播放| 欧美日韩免费不卡视频一区二区三区| 性做久久久久久久免费看| 8x8x8国产精品| 久久精品国产精品亚洲精品| 久久在线观看免费| 成人性视频免费网站| 自拍偷在线精品自拍偷无码专区 | 亚洲专区一二三| 欧美美女直播网站| 久久不见久久见免费视频7| 久久久久久久久久久久电影| aaa欧美色吧激情视频| 亚洲自拍偷拍综合| 欧美一区二视频| 国产一区91精品张津瑜| 自拍视频在线观看一区二区| 欧美在线三级电影| 久久精品久久综合| 国产精品天干天干在观线| 色婷婷狠狠综合| 麻豆精品一二三| 国产精品卡一卡二卡三| 欧美三级中文字幕在线观看| 蜜臀av在线播放一区二区三区| 久久综合色婷婷| aaa欧美色吧激情视频| 日韩精品1区2区3区| 久久精品夜夜夜夜久久| 91久久精品一区二区二区| 奇米色777欧美一区二区| 26uuu色噜噜精品一区二区| 91视视频在线直接观看在线看网页在线看| 亚洲高清免费观看| 久久久精品中文字幕麻豆发布| 色婷婷av一区二区三区gif | 欧美精品一区二区三区蜜桃| av不卡免费在线观看| 日本欧美肥老太交大片| 国产精品国产成人国产三级 | 久久aⅴ国产欧美74aaa| 国产精品福利在线播放| 5566中文字幕一区二区电影 | 中文字幕日本不卡| 日韩视频永久免费| 色综合久久综合网| 国产一区二三区好的| 一区二区视频免费在线观看| 精品国产凹凸成av人网站| 日本韩国欧美国产| 国产精品69毛片高清亚洲| 日欧美一区二区| 亚洲人成亚洲人成在线观看图片| 日韩一区和二区| 91国内精品野花午夜精品| 国产在线麻豆精品观看| 亚洲成人自拍偷拍| 国产精品视频一二| 日韩三级电影网址| 欧美午夜寂寞影院| 99精品黄色片免费大全| 国产在线不卡一区| 日韩精品电影在线观看| 亚洲欧美日韩成人高清在线一区| 精品日产卡一卡二卡麻豆| 欧美久久久久免费| 日本韩国精品一区二区在线观看| 懂色中文一区二区在线播放| 麻豆国产精品一区二区三区| 亚洲午夜三级在线| 亚洲精品欧美在线| 国产精品欧美一区二区三区| 久久色.com| 日韩欧美不卡一区| 91精品国产免费| 欧美日韩精品一区二区三区四区 | 一区二区高清在线| 一区在线观看免费| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美一区二区三区影视| 欧美亚洲综合在线| 一本到不卡免费一区二区| 成人黄色免费短视频| 国产精品白丝av| 经典一区二区三区| 另类专区欧美蜜桃臀第一页| 免费不卡在线视频| 日韩国产精品久久久久久亚洲| 亚洲成a人v欧美综合天堂| 亚洲一区在线电影| 亚洲一区免费视频| 亚洲一区二区欧美日韩| 亚洲一区二区免费视频| 一区二区三区视频在线看| 亚洲激情图片小说视频| 亚洲免费av观看| 亚洲男人的天堂在线aⅴ视频| 亚洲精品亚洲人成人网| 亚洲免费观看高清完整版在线观看熊 | 亚洲精品免费一二三区| 亚洲人亚洲人成电影网站色| 最新欧美精品一区二区三区| 亚洲欧洲另类国产综合| 亚洲人午夜精品天堂一二香蕉| 亚洲人成网站影音先锋播放| 亚洲狠狠丁香婷婷综合久久久| 亚洲一区二区三区视频在线| 亚洲国产精品一区二区久久恐怖片| 亚洲综合在线观看视频| 亚洲成av人片在线| 美女一区二区久久| 国产一区二三区| 成人国产视频在线观看 | 一区二区三区欧美久久| 亚洲电影中文字幕在线观看| 日韩国产精品久久久久久亚洲|