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

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

?? objc-act.c

?? gcc庫的原代碼,對編程有很大幫助.
?? C
?? 第 1 頁 / 共 5 頁
字號:
      decl_specs = tree_cons (NULL_TREE, ridpointers[(int) RID_CHAR], sc_spec);      expr_decl = build_nt (ARRAY_REF, DECL_NAME (decl), NULL_TREE);      decl = start_decl (expr_decl, decl_specs, 1, NULL_TREE, NULL_TREE);      end_temporary_allocation ();      string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1,				     IDENTIFIER_POINTER (string));      finish_decl (decl, string_expr, NULL_TREE);    }  for (chain = meth_var_names_chain; chain; chain = TREE_CHAIN (chain))    {      string = TREE_VALUE (chain);      decl = TREE_PURPOSE (chain);      sc_spec	= tree_cons (NULL_TREE, ridpointers[(int) RID_STATIC], NULL_TREE);      decl_specs = tree_cons (NULL_TREE, ridpointers[(int) RID_CHAR], sc_spec);      expr_decl = build_nt (ARRAY_REF, DECL_NAME (decl), NULL_TREE);      decl = start_decl (expr_decl, decl_specs, 1, NULL_TREE, NULL_TREE);      string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1,				     IDENTIFIER_POINTER (string));      finish_decl (decl, string_expr, NULL_TREE);    }  for (chain = meth_var_types_chain; chain; chain = TREE_CHAIN (chain))    {      string = TREE_VALUE (chain);      decl = TREE_PURPOSE (chain);      sc_spec	= tree_cons (NULL_TREE, ridpointers[(int) RID_STATIC], NULL_TREE);      decl_specs = tree_cons (NULL_TREE, ridpointers[(int) RID_CHAR], sc_spec);      expr_decl = build_nt (ARRAY_REF, DECL_NAME (decl), NULL_TREE);      decl = start_decl (expr_decl, decl_specs, 1, NULL_TREE, NULL_TREE);      string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1,				IDENTIFIER_POINTER (string));      finish_decl (decl, string_expr, NULL_TREE);    }}static treebuild_selector_reference_decl (name)      tree name;{  tree decl, ident;  char buf[256];  static int idx = 0;  sprintf (buf, "_OBJC_SELECTOR_REFERENCES_%d", idx++);  push_obstacks_nochange ();  end_temporary_allocation ();  ident = get_identifier (buf);  decl = build_decl (VAR_DECL, ident, selector_type);  DECL_EXTERNAL (decl) = 1;  TREE_PUBLIC (decl) = 1;  TREE_USED (decl) = 1;  TREE_READONLY (decl) = 1;  DECL_ARTIFICIAL (decl) = 1;  DECL_CONTEXT (decl) = 0;  make_decl_rtl (decl, 0, 1);  pushdecl_top_level (decl);  pop_obstacks ();  return decl;}/* Just a handy wrapper for add_objc_string.  */static treebuild_selector (ident)     tree ident;{  tree expr = add_objc_string (ident, meth_var_names);  if (flag_typed_selectors)    return expr;  else    return build_c_cast (selector_type, expr); /* cast! */}/* Synthesize the following expr: (char *)&_OBJC_STRINGS[<offset>]   The cast stops the compiler from issuing the following message:   grok.m: warning: initialization of non-const * pointer from const *   grok.m: warning: initialization between incompatible pointer types.  */static treebuild_msg_pool_reference (offset)     int offset;{  tree expr = build_int_2 (offset, 0);  tree cast;  expr = build_array_ref (UOBJC_STRINGS_decl, expr);  expr = build_unary_op (ADDR_EXPR, expr, 0);  cast = build_tree_list (build_tree_list (NULL_TREE,					   ridpointers[(int) RID_CHAR]),			  build1 (INDIRECT_REF, NULL_TREE, NULL_TREE));  TREE_TYPE (expr) = groktypename (cast);  return expr;}static treeinit_selector (offset)     int offset;{  tree expr = build_msg_pool_reference (offset);  TREE_TYPE (expr) = selector_type;  return expr;}static voidbuild_selector_translation_table (){  tree sc_spec, decl_specs;  tree chain, initlist = NULL_TREE;  int offset = 0;  tree decl, var_decl, name;  /* The corresponding pop_obstacks is in finish_decl,     called at the end of this function.  */  if (! flag_next_runtime)    push_obstacks_nochange ();  for (chain = sel_ref_chain; chain; chain = TREE_CHAIN (chain))    {      tree expr;      expr = build_selector (TREE_VALUE (chain));      if (flag_next_runtime)	{	  name = DECL_NAME (TREE_PURPOSE (chain));	  sc_spec = build_tree_list (NULL_TREE, ridpointers[(int) RID_STATIC]);	  /* static SEL _OBJC_SELECTOR_REFERENCES_n = ...; */	  decl_specs = tree_cons (NULL_TREE, selector_type, sc_spec);	  var_decl = name;	  /* The `decl' that is returned from start_decl is the one that we	     forward declared in `build_selector_reference'  */	  decl = start_decl (var_decl, decl_specs, 1, NULL_TREE, NULL_TREE);	}      /* add one for the '\0' character */      offset += IDENTIFIER_LENGTH (TREE_VALUE (chain)) + 1;      if (flag_next_runtime)	finish_decl (decl, expr, NULL_TREE);      else 	{	  if (flag_typed_selectors)	    {	      tree eltlist = NULL_TREE;	      tree encoding = get_proto_encoding (TREE_PURPOSE (chain));	      eltlist = tree_cons (NULL_TREE, expr, NULL_TREE);	      eltlist = tree_cons (NULL_TREE, encoding, eltlist);	      expr = build_constructor (objc_selector_template,					nreverse (eltlist));	    }	  initlist = tree_cons (NULL_TREE, expr, initlist);	  	}    }  if (! flag_next_runtime)    {      /* Cause the variable and its initial value to be actually output.  */      DECL_EXTERNAL (UOBJC_SELECTOR_TABLE_decl) = 0;      TREE_STATIC (UOBJC_SELECTOR_TABLE_decl) = 1;      /* NULL terminate the list and fix the decl for output. */      initlist = tree_cons (NULL_TREE, build_int_2 (0, 0), initlist);      DECL_INITIAL (UOBJC_SELECTOR_TABLE_decl) = (tree) 1;      initlist = build_constructor (TREE_TYPE (UOBJC_SELECTOR_TABLE_decl),				    nreverse (initlist));      finish_decl (UOBJC_SELECTOR_TABLE_decl, initlist, NULL_TREE);      current_function_decl = NULL_TREE;    }}static treeget_proto_encoding (proto)     tree proto;{  tree encoding;  if (proto)    {      tree tmp_decl;      if (! METHOD_ENCODING (proto))	{	    tmp_decl = build_tmp_function_decl ();	    hack_method_prototype (proto, tmp_decl);	    encoding = encode_method_prototype (proto, tmp_decl);	    METHOD_ENCODING (proto) = encoding;	  }      else	encoding = METHOD_ENCODING (proto);      return add_objc_string (encoding, meth_var_types);    }  else    return build_int_2 (0, 0);}/* sel_ref_chain is a list whose "value" fields will be instances of   identifier_node that represent the selector.  */static treebuild_typed_selector_reference (ident, proto)     tree ident, proto;{  tree *chain = &sel_ref_chain;  tree expr;  int index = 0;  while (*chain)    {      if (TREE_PURPOSE (*chain) == ident && TREE_VALUE (*chain) == proto)	goto return_at_index;      index++;      chain = &TREE_CHAIN (*chain);    }  *chain = perm_tree_cons (proto, ident, NULL_TREE); return_at_index:  expr = build_unary_op (ADDR_EXPR,			 build_array_ref (UOBJC_SELECTOR_TABLE_decl,					  build_int_2 (index, 0)),			 1);  return build_c_cast (selector_type, expr);}static treebuild_selector_reference (ident)     tree ident;{  tree *chain = &sel_ref_chain;  tree expr;  int index = 0;  while (*chain)    {      if (TREE_VALUE (*chain) == ident)	return (flag_next_runtime		? TREE_PURPOSE (*chain)		: build_array_ref (UOBJC_SELECTOR_TABLE_decl,				   build_int_2 (index, 0)));      index++;      chain = &TREE_CHAIN (*chain);    }  expr = build_selector_reference_decl (ident);  *chain = perm_tree_cons (expr, ident, NULL_TREE);  return (flag_next_runtime	  ? expr	  : build_array_ref (UOBJC_SELECTOR_TABLE_decl,			     build_int_2 (index, 0)));}static treebuild_class_reference_decl (name)      tree name;{  tree decl, ident;  char buf[256];  static int idx = 0;  sprintf (buf, "_OBJC_CLASS_REFERENCES_%d", idx++);  push_obstacks_nochange ();  end_temporary_allocation ();  ident = get_identifier (buf);  decl = build_decl (VAR_DECL, ident, objc_class_type);  DECL_EXTERNAL (decl) = 1;  TREE_PUBLIC (decl) = 1;  TREE_USED (decl) = 1;  TREE_READONLY (decl) = 1;  DECL_CONTEXT (decl) = 0;  DECL_ARTIFICIAL (decl) = 1;  make_decl_rtl (decl, 0, 1);  pushdecl_top_level (decl);  pop_obstacks ();  return decl;}/* Create a class reference, but don't create a variable to reference   it.  */static voidadd_class_reference (ident)     tree ident;{  tree chain;  if ((chain = cls_ref_chain))    {      tree tail;      do        {	  if (ident == TREE_VALUE (chain))	    return;	  tail = chain;	  chain = TREE_CHAIN (chain);        }      while (chain);      /* Append to the end of the list */      TREE_CHAIN (tail) = perm_tree_cons (NULL_TREE, ident, NULL_TREE);    }  else    cls_ref_chain = perm_tree_cons (NULL_TREE, ident, NULL_TREE);}/* Get a class reference, creating it if necessary.  Also create the   reference variable.  */treeget_class_reference (ident)    tree ident;{  if (flag_next_runtime)    {      tree *chain;      tree decl;      for (chain = &cls_ref_chain; *chain; chain = &TREE_CHAIN (*chain))	if (TREE_VALUE (*chain) == ident)	  {	    if (! TREE_PURPOSE (*chain))	      TREE_PURPOSE (*chain) = build_class_reference_decl (ident);	    return TREE_PURPOSE (*chain);	  }      decl = build_class_reference_decl (ident);      *chain = perm_tree_cons (decl, ident, NULL_TREE);      return decl;    }  else    {      tree params;      add_class_reference (ident);      params = build_tree_list (NULL_TREE,				my_build_string (IDENTIFIER_LENGTH (ident) + 1,						 IDENTIFIER_POINTER (ident)));      assemble_external (objc_get_class_decl);      return build_function_call (objc_get_class_decl, params);    }}/* SEL_REFDEF_CHAIN is a list whose "value" fields will be instances   of identifier_node that represent the selector. It returns the   offset of the selector from the beginning of the _OBJC_STRINGS   pool. This offset is typically used by init_selector during code   generation.   For each string section we have a chain which maps identifier nodes   to decls for the strings. */static treeadd_objc_string (ident, section)     tree ident;     enum string_section section;{  tree *chain, decl;  if (section == class_names)    chain = &class_names_chain;  else if (section == meth_var_names)    chain = &meth_var_names_chain;  else if (section == meth_var_types)    chain = &meth_var_types_chain;  while (*chain)    {      if (TREE_VALUE (*chain) == ident)	return build_unary_op (ADDR_EXPR, TREE_PURPOSE (*chain), 1);      chain = &TREE_CHAIN (*chain);    }  decl = build_objc_string_decl (ident, section);  *chain = perm_tree_cons (decl, ident, NULL_TREE);  return build_unary_op (ADDR_EXPR, decl, 1);}static treebuild_objc_string_decl (name, section)     tree name;     enum string_section section;{  tree decl, ident;  char buf[256];  static int class_names_idx = 0;  static int meth_var_names_idx = 0;  static int meth_var_types_idx = 0;  if (section == class_names)    sprintf (buf, "_OBJC_CLASS_NAME_%d", class_names_idx++);  else if (section == meth_var_names)    sprintf (buf, "_OBJC_METH_VAR_NAME_%d", meth_var_names_idx++);  else if (section == meth_var_types)    sprintf (buf, "_OBJC_METH_VAR_TYPE_%d", meth_var_types_idx++);  push_obstacks_nochange ();  end_temporary_allocation ();  ident = get_identifier (buf);  decl = build_decl (VAR_DECL, ident, build_array_type (char_type_node, 0));  DECL_EXTERNAL (decl) = 1;  TREE_PUBLIC (decl) = 1;  TREE_USED (decl) = 1;  TREE_READONLY (decl) = 1;  TREE_CONSTANT (decl) = 1;  DECL_CONTEXT (decl) = 0;  DECL_ARTIFICIAL (decl) = 1;   make_decl_rtl (decl, 0, 1);  pushdecl_top_level (decl);  pop_obstacks ();  return decl;}voidobjc_declare_alias (alias_ident, class_ident)     tree alias_ident;     tree class_ident;{  if (!doing_objc_thang)    objc_fatal ();  if (is_class_name (class_ident) != class_ident)    warning ("Cannot find class `%s'", IDENTIFIER_POINTER (class_ident));  else if (is_class_name (alias_ident))    warning ("Class `%s' a

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91社区在线播放| 亚洲欧美日韩国产手机在线| 日本系列欧美系列| 欧美色图在线观看| 亚洲va在线va天堂| 日韩欧美在线不卡| 国产麻豆精品theporn| 久久综合久久鬼色| 成人永久免费视频| 亚洲激情图片一区| 91精品国产高清一区二区三区蜜臀| 视频在线在亚洲| 亚洲精品一区二区三区精华液 | 欧美日韩精品免费观看视频| 香蕉加勒比综合久久| 欧美mv日韩mv| 国产高清久久久久| 亚洲欧美激情视频在线观看一区二区三区 | 日韩1区2区日韩1区2区| 日韩视频不卡中文| 国产精品一区二区三区99| 国产精品天天看| 欧美性高清videossexo| 另类欧美日韩国产在线| 国产日本欧洲亚洲| 日本精品裸体写真集在线观看| 日韩国产欧美一区二区三区| 久久久不卡网国产精品一区| av电影在线观看完整版一区二区| 一区2区3区在线看| 亚洲精品一区二区三区在线观看| 一本到三区不卡视频| 日韩国产精品91| 国产精品久久三区| 欧美一区二区三区在线电影| 国产一区二区精品久久| 亚洲尤物在线视频观看| 久久久久久亚洲综合影院红桃 | 欧美揉bbbbb揉bbbbb| 国产一区二区三区在线观看免费视频 | 亚洲精品成人在线| 精品99久久久久久| 欧美日韩一本到| 粉嫩aⅴ一区二区三区四区| 日韩精品一卡二卡三卡四卡无卡| 国产清纯在线一区二区www| 欧美日韩国产片| 99久久精品国产导航| 国产一区二区三区四区五区入口 | 欧美一级一区二区| 91论坛在线播放| 国产成a人亚洲精| 图片区日韩欧美亚洲| 亚洲久草在线视频| 国产亚洲精品免费| 欧美成人a在线| 欧美性高清videossexo| 成人小视频免费观看| 国产在线看一区| 免费在线看一区| 日韩中文字幕91| 亚洲综合色噜噜狠狠| 中文字幕亚洲成人| 国产精品婷婷午夜在线观看| 久久久电影一区二区三区| 欧美一二三区在线| 欧美日韩激情一区二区三区| 91色在线porny| 99精品视频一区二区| 国产精品一级二级三级| 久久成人综合网| 久久99国产精品麻豆| 另类小说欧美激情| 久久er精品视频| 九色综合国产一区二区三区| 首页亚洲欧美制服丝腿| 日韩精品亚洲专区| 日韩精品亚洲一区二区三区免费| 亚洲大片在线观看| 日韩福利电影在线观看| 日韩极品在线观看| 日av在线不卡| 精品一区二区三区久久| 国产在线一区二区| 高清不卡在线观看| 99re成人精品视频| 在线一区二区观看| 欧美亚一区二区| 51精品久久久久久久蜜臀| 69久久夜色精品国产69蝌蚪网| 欧美日韩亚洲另类| 欧美成人一区二区| 久久久夜色精品亚洲| 国产亚洲综合色| 中文字幕在线一区免费| 艳妇臀荡乳欲伦亚洲一区| 亚洲午夜羞羞片| 蜜桃av噜噜一区| 国产成a人亚洲| 色8久久精品久久久久久蜜| 欧美三级日韩三级国产三级| 欧美一区二区三区人| 久久久精品tv| 亚洲人妖av一区二区| 亚洲自拍偷拍av| 久久99久久久欧美国产| 成人免费观看视频| 欧美日韩在线免费视频| 精品va天堂亚洲国产| 中文字幕一区二区三区精华液| 一区二区免费看| 韩国v欧美v亚洲v日本v| 91美女视频网站| 91精品国产手机| 国产精品每日更新| 欧美bbbbb| 99re6这里只有精品视频在线观看| 欧美日韩国产综合一区二区三区| 久久日一线二线三线suv| 一区二区三区欧美在线观看| 久久99久久久欧美国产| 一本大道久久a久久精品综合| 日韩一区二区三区视频在线 | 色偷偷成人一区二区三区91| 在线不卡中文字幕播放| 国产女同性恋一区二区| 亚洲3atv精品一区二区三区| 粉嫩高潮美女一区二区三区| 欧美日韩国产三级| 中文字幕一区二区三区精华液| 日韩黄色免费电影| 懂色av一区二区三区蜜臀| 91精品欧美综合在线观看最新| 国产区在线观看成人精品| 青青国产91久久久久久| 色综合久久久久久久久久久| 久久综合色天天久久综合图片| 亚洲超碰97人人做人人爱| 成人av免费观看| 久久综合久色欧美综合狠狠| 丝袜美腿亚洲一区二区图片| 99r国产精品| 国产日韩欧美精品一区| 麻豆精品在线播放| 欧美日韩国产一二三| 一区二区三区在线观看国产| 国产精品1024| 欧美tk丨vk视频| 日韩黄色一级片| 欧美少妇一区二区| 亚洲激情综合网| 色婷婷av一区二区三区软件 | 日韩欧美国产综合一区 | 蜜桃av噜噜一区| 88在线观看91蜜桃国自产| 亚洲精品你懂的| 91视频免费观看| 亚洲色图欧洲色图婷婷| 成人久久久精品乱码一区二区三区 | 韩国精品久久久| 欧美大片一区二区三区| 日本va欧美va精品| 7777精品伊人久久久大香线蕉经典版下载| 伊人婷婷欧美激情| 色婷婷精品久久二区二区蜜臀av| 亚洲欧美综合在线精品| 99视频在线观看一区三区| 国产精品久久久久四虎| 成人动漫一区二区在线| 亚洲欧洲精品一区二区精品久久久 | 国产一区二区成人久久免费影院| 精品免费一区二区三区| 另类欧美日韩国产在线| 精品人伦一区二区色婷婷| 精品一区精品二区高清| 久久日韩粉嫩一区二区三区| 国产成人av电影| 综合av第一页| 欧美日韩国产高清一区| 亚洲午夜在线视频| 欧美一区二区人人喊爽| 激情另类小说区图片区视频区| 久久影院电视剧免费观看| 国产成人综合视频| 亚洲私人黄色宅男| 欧美写真视频网站| 另类小说视频一区二区| 国产午夜亚洲精品不卡| 国产成人av一区| 1区2区3区欧美| 欧美少妇性性性| 狠狠色丁香婷婷综合| 国产精品午夜在线| 欧美亚洲国产怡红院影院| 蜜桃视频在线观看一区| 中文字幕av资源一区| 欧美视频一区二区| 国产精品一品视频| 亚洲综合在线视频| 日韩一区二区三区视频|