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

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

?? print-tree.c

?? 這是完整的gcc源代碼
?? C
字號:
/* Prints out tree in human readable form - GNU C-compiler   Copyright (C) 1990 Free Software Foundation, Inc.This file is part of GNU CC.GNU CC is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 1, or (at your option)any later version.GNU CC is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU CC; see the file COPYING.  If not, write tothe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */#include "config.h"#include "tree.h"#include <stdio.h>/* Names of tree components.   Used for printing out the tree and error messages.  */#define DEFTREECODE(SYM, NAME, TYPE, LEN) NAME,char *tree_code_name[] = {#include "tree.def"};#undef DEFTREECODE/* Indexed by enum tree_code, contains a character which is   '<' for a comparison expression, '1', for a unary arithmetic   expression, '2' for a binary arithmetic expression, `e' for   other types of expressions, `r' for a reference, `c' for a   constant, `d' for a decl, `t' for a type, `s' for a statement,   and `x' for anything else (TREE_LIST, IDENTIFIER, etc).  */#define TREE_CODE_CLASS(CODE)	(*tree_code_type[(int) (CODE)])extern char *mode_name[];void print_node ();/* Define the hash table of nodes already seen.   Such nodes are not repeated; brief cross-references are used.  */#define HASH_SIZE 37struct bucket{  tree node;  struct bucket *next;};static struct bucket **table;/* Print the node NODE on standard error, for debugging.   Most nodes referred to by this one are printed recursively   down to a depth of six.  */voiddebug_tree (node)     tree node;{  char *object = (char *) oballoc (0);  table = (struct bucket **) oballoc (HASH_SIZE * sizeof (struct bucket *));  bzero (table, HASH_SIZE * sizeof (struct bucket *));  print_node (stderr, "", node, 0);  table = 0;  obfree (object);  fprintf (stderr, "\n");}/* Print a node in brief fashion, with just the code, address and name.  */voidprint_node_brief (file, prefix, node, indent)     FILE *file;     char *prefix;     tree node;     int indent;{  char class;  if (node == 0)    return;  class = TREE_CODE_CLASS (TREE_CODE (node));  /* Always print the slot this node is in, and its code, address and     name if any.  */  if (indent > 0)    fprintf (file, " ");  fprintf (file, "%s <%s %x", prefix,	   tree_code_name[(int) TREE_CODE (node)], (int) node);  if (class == 'd')    {      if (DECL_NAME (node))	fprintf (file, " %s", IDENTIFIER_POINTER (DECL_NAME (node)));    }  else if (class == 't')    {      if (TYPE_NAME (node))	{	  if (TREE_CODE (TYPE_NAME (node)) == IDENTIFIER_NODE)	    fprintf (file, " %s", IDENTIFIER_POINTER (TYPE_NAME (node)));	  else if (TREE_CODE (TYPE_NAME (node)) == TYPE_DECL		   && DECL_NAME (TYPE_NAME (node)))	    fprintf (file, " %s",		     IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (node))));	}    }  if (TREE_CODE (node) == IDENTIFIER_NODE)    fprintf (file, " %s", IDENTIFIER_POINTER (node));  /* We might as well always print the value of an integer.  */  if (TREE_CODE (node) == INTEGER_CST)    {      if (TREE_INT_CST_HIGH (node) == 0)	fprintf (file, " %1u", TREE_INT_CST_LOW (node));      else if (TREE_INT_CST_HIGH (node) == -1	       && TREE_INT_CST_LOW (node) != 0)	fprintf (file, " -%1u", -TREE_INT_CST_LOW (node));      else	fprintf (file, " 0x%x%08x",		 TREE_INT_CST_HIGH (node),		 TREE_INT_CST_LOW (node));    }  if (TREE_CODE (node) == REAL_CST)    {#ifndef REAL_IS_NOT_DOUBLE      fprintf (file, " %e", TREE_REAL_CST (node));#else      {	int i;	char *p = (char *) &TREE_REAL_CST (node);	fprintf (file, " 0x");	for (i = 0; i < sizeof TREE_REAL_CST (node); i++)	  fprintf (file, "%02x", *p++);	fprintf (file, "");      }#endif /* REAL_IS_NOT_DOUBLE */    }  fprintf (file, ">");}voidindent_to (file, column)     FILE *file;     int column;{  int i;  /* Since this is the long way, indent to desired column.  */  if (column > 0)    fprintf (file, "\n");  for (i = 0; i < column; i++)    fprintf (file, " ");}/* Print the node NODE in full on file FILE, preceded by PREFIX,   starting in column INDENT.  */voidprint_node (file, prefix, node, indent)     FILE *file;     char *prefix;     tree node;     int indent;{  int hash;  struct bucket *b;  enum machine_mode mode;  char class;  int len;  int first_rtl;  int i;  if (node == 0)    return;  class = TREE_CODE_CLASS (TREE_CODE (node));  /* Don't get too deep in nesting.  If the user wants to see deeper,     it is easy to use the address of a lowest-level node     as an argument in another call to debug_tree.  */  if (indent > 24)    {      print_node_brief (file, prefix, node, indent);      return;    }  if (indent > 8 && (class == 't' || class == 'd'))    {      print_node_brief (file, prefix, node, indent);      return;    }  hash = ((int) node & ~(1 << (HOST_BITS_PER_INT - 1))) % HASH_SIZE;  /* If node is in the table, just mention its address.  */  for (b = table[hash]; b; b = b->next)    if (b->node == node)      {	print_node_brief (file, prefix, node, indent);	return;      }  /* Add this node to the table.  */  b = (struct bucket *) oballoc (sizeof (struct bucket));  b->node = node;  b->next = table[hash];  table[hash] = b;  /* Indent to the specified column, since this is the long form.  */  indent_to (file, indent);  /* Print the slot this node is in, and its code, and address.  */  fprintf (file, "%s <%s %x", prefix,	   tree_code_name[(int) TREE_CODE (node)], (int) node);  /* Print the name, if any.  */  if (class == 'd')    {      if (DECL_NAME (node))	fprintf (file, " %s", IDENTIFIER_POINTER (DECL_NAME (node)));    }  else if (class == 't')    {      if (TYPE_NAME (node))	{	  if (TREE_CODE (TYPE_NAME (node)) == IDENTIFIER_NODE)	    fprintf (file, " %s", IDENTIFIER_POINTER (TYPE_NAME (node)));	  else if (TREE_CODE (TYPE_NAME (node)) == TYPE_DECL		   && DECL_NAME (TYPE_NAME (node)))	    fprintf (file, " %s",		     IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (node))));	}    }  if (TREE_CODE (node) == IDENTIFIER_NODE)    fprintf (file, " %s", IDENTIFIER_POINTER (node));  if (TREE_CODE (node) == INTEGER_CST)    {      if (indent <= 4)	print_node_brief (file, "type", TREE_TYPE (node), indent + 4);    }  else    {      print_node (file, "type", TREE_TYPE (node), indent + 4);      if (TREE_TYPE (node))	indent_to (file, indent + 3);    }  if (TREE_EXTERNAL (node))    fprintf (file, " external");  if (TREE_PUBLIC (node))    fprintf (file, " public");  if (TREE_STATIC (node))    fprintf (file, " static");  if (TREE_VOLATILE (node))    fprintf (file, " volatile");  if (TREE_PACKED (node))    fprintf (file, " packed");  if (TREE_READONLY (node))    fprintf (file, " readonly");  if (TREE_LITERAL (node))    fprintf (file, " literal");  if (TREE_NONLOCAL (node))    fprintf (file, " nonlocal");  if (TREE_PERMANENT (node))    fprintf (file, " permanent");  if (TREE_ADDRESSABLE (node))    fprintf (file, " addressable");  if (TREE_REGDECL (node))    fprintf (file, " regdecl");  if (TREE_THIS_VOLATILE (node))    fprintf (file, " this_vol");  if (TREE_UNSIGNED (node))    fprintf (file, " unsigned");  if (TREE_ASM_WRITTEN (node))    fprintf (file, " asm_written");  if (TREE_INLINE (node))    fprintf (file, " inline");  if (TREE_USED (node))    fprintf (file, " used");  if (TREE_LANG_FLAG_1 (node))    fprintf (file, " lang_flag_1");  if (TREE_LANG_FLAG_2 (node))    fprintf (file, " lang_flag_2");  if (TREE_LANG_FLAG_3 (node))    fprintf (file, " lang_flag_3");  if (TREE_LANG_FLAG_4 (node))    fprintf (file, " lang_flag_4");  switch (TREE_CODE_CLASS (TREE_CODE (node)))    {    case 'd':      mode = DECL_MODE (node);      fprintf (file, " %s", mode_name[(int) mode]);      fprintf (file, " file %s line %d",	       DECL_SOURCE_FILE (node), DECL_SOURCE_LINE (node));      print_node (file, "size", DECL_SIZE (node), indent + 4);      indent_to (file, indent + 3);      fprintf (file, " align %d", DECL_ALIGN (node));      fprintf (file, " size_unit %d", DECL_SIZE_UNIT (node));      fprintf (file, " offset %d", DECL_OFFSET (node));      print_node_brief (file, "context", DECL_CONTEXT (node), indent + 4);      print_node_brief (file, "voffset", DECL_VOFFSET (node), indent + 4);      print_node (file, "arguments", DECL_ARGUMENTS (node), indent + 4);      print_node (file, "result", DECL_RESULT (node), indent + 4);      print_node_brief (file, "initial", DECL_INITIAL (node), indent + 4);      /* Print the decl chain only if decl is at second level.  */      if (indent == 4)	print_node (file, "chain", TREE_CHAIN (node), indent + 4);      else	print_node_brief (file, "chain", TREE_CHAIN (node), indent + 4);      break;    case 't':      mode = TYPE_MODE (node);      fprintf (file, " %s", mode_name[(int) mode]);      print_node (file, "size", TYPE_SIZE (node), indent + 4);      indent_to (file, indent + 3);      fprintf (file, " align %d", TYPE_ALIGN (node));      fprintf (file, " size_unit %d", TYPE_SIZE_UNIT (node));      fprintf (file, " sep_unit %d", TYPE_SEP_UNIT (node));      fprintf (file, " symtab %d", TYPE_SYMTAB_ADDRESS (node));      print_node (file, "sep", TYPE_SEP (node), indent + 4);      if (TREE_CODE (node) == ARRAY_TYPE || TREE_CODE (node) == SET_TYPE)	print_node (file, "domain", TYPE_DOMAIN (node), indent + 4);      else if (TREE_CODE (node) == INTEGER_TYPE)	{	  fprintf (file, " precision %d", TYPE_PRECISION (node));	  print_node (file, "min", TYPE_MIN_VALUE (node), indent + 4);	  print_node (file, "max", TYPE_MAX_VALUE (node), indent + 4);	}      else if (TREE_CODE (node) == ENUMERAL_TYPE)	{	  fprintf (file, " precision %d", TYPE_PRECISION (node));	  print_node (file, "min", TYPE_MIN_VALUE (node), indent + 4);	  print_node (file, "max", TYPE_MAX_VALUE (node), indent + 4);	  print_node (file, "values", TYPE_VALUES (node));	}      else if (TREE_CODE (node) == REAL_TYPE)	fprintf (file, " precision %d", TYPE_PRECISION (node));      else if (TREE_CODE (node) == RECORD_TYPE || TREE_CODE (node) == UNION_TYPE)	print_node (file, "fields", TYPE_FIELDS (node), indent + 4);      else if (TREE_CODE (node) == FUNCTION_TYPE || TREE_CODE (node) == METHOD_TYPE)	print_node (file, "arg-types", TYPE_ARG_TYPES (node), indent + 4);      if (TYPE_POINTER_TO (node) || TREE_CHAIN (node))	indent_to (file, indent + 3);      print_node_brief (file, "pointer_to_this", TYPE_POINTER_TO (node), indent + 4);      print_node_brief (file, "reference_to_this", TYPE_REFERENCE_TO (node), indent + 4);      print_node_brief (file, "chain", TREE_CHAIN (node), indent + 4);      break;    case 'e':    case '<':    case '1':    case '2':    case 'r':      first_rtl = len = tree_code_length[(int) TREE_CODE (node)];      /* These kinds of nodes contain rtx's, not trees,	 after a certain point.  Print the rtx's as rtx's.  */      switch (TREE_CODE (node))	{	case SAVE_EXPR:	  first_rtl = 1;	  break;	case CALL_EXPR:	  first_rtl = 2;	  break;	case METHOD_CALL_EXPR:	  first_rtl = 3;	  break;	case WITH_CLEANUP_EXPR:	  /* Should be defined to be 2.  */	  first_rtl = 1;	  break;	case RTL_EXPR:	  first_rtl = 0;	}      for (i = 0; i < len; i++)	{	  if (i >= first_rtl)	    {	      if (TREE_OPERAND (node, i))		print_rtl (file, TREE_OPERAND (node, i));	      else		fprintf (file, "(nil)");	      fprintf (file, "\n");	    }	  else	    {	      char temp[10];	      sprintf (temp, "arg %d", i);	      print_node (file, temp, TREE_OPERAND (node, i), indent + 4);	    }	}      break;    case 's':      fprintf (file, " file %s line %d",	       STMT_SOURCE_FILE (node), STMT_SOURCE_LINE (node));      switch (TREE_CODE (node))	{	case IF_STMT:	  print_node (file, "cond", STMT_COND (node), indent + 4);	  print_node (file, "then", STMT_THEN (node), indent + 4);	  print_node (file, "else", STMT_ELSE (node), indent + 4);	  break;	case LET_STMT:	case WITH_STMT:	  print_node (file, "vars", STMT_VARS (node), indent + 4);	  print_node (file, "tags", STMT_TYPE_TAGS (node), indent + 4);	  print_node (file, "supercontext", STMT_SUPERCONTEXT (node), indent + 4);	  print_node (file, "body", STMT_BODY (node), indent + 4);	  print_node (file, "subblocks", STMT_SUBBLOCKS (node), indent + 4);	  break;	case CASE_STMT:	  print_node (file, "index", STMT_CASE_INDEX (node), indent + 4);	  print_node (file, "list", STMT_CASE_LIST (node), indent + 4);	  break;	default:	  print_node (file, "body", STMT_BODY (node), indent + 4);	  break;	}      print_node (file, "chain", TREE_CHAIN (node), indent + 4);      break;    case 'c':    case 'x':      switch (TREE_CODE (node))	{	case INTEGER_CST:	  if (TREE_INT_CST_HIGH (node) == 0)	    fprintf (file, " %1u", TREE_INT_CST_LOW (node));	  else if (TREE_INT_CST_HIGH (node) == -1		   && TREE_INT_CST_LOW (node) != 0)	    fprintf (file, " -%1u", -TREE_INT_CST_LOW (node));	  else	    fprintf (file, " 0x%x%08x",		     TREE_INT_CST_HIGH (node),		     TREE_INT_CST_LOW (node));	  break;	case REAL_CST:#ifndef REAL_IS_NOT_DOUBLE	  fprintf (file, " %e", TREE_REAL_CST (node));#else	  {	    char *p = (char *) &TREE_REAL_CST (node);	    fprintf (file, " 0x");	    for (i = 0; i < sizeof TREE_REAL_CST (node); i++)	      fprintf (file, "%02x", *p++);	    fprintf (file, "");	  }#endif /* REAL_IS_NOT_DOUBLE */	  break;	case COMPLEX_CST:	  print_node (file, "real", TREE_REALPART (node), indent + 4);	  print_node (file, "imag", TREE_IMAGPART (node), indent + 4);	  break;	case STRING_CST:	  fprintf (file, " \"%s\"", TREE_STRING_POINTER (node));	  break;	case IDENTIFIER_NODE:	  print_lang_identifier (file, node, indent);	  break;	case TREE_LIST:	  print_node (file, "purpose", TREE_PURPOSE (node), indent + 4);	  print_node (file, "value", TREE_VALUE (node), indent + 4);	  print_node (file, "chain", TREE_CHAIN (node), indent + 4);	  break;	case OP_IDENTIFIER:	  print_node (file, "op1", TREE_PURPOSE (node), indent + 4);	  print_node (file, "op2", TREE_VALUE (node), indent + 4);	}      print_node (file, "chain", TREE_CHAIN (node), indent + 4);      break;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品一区二区| 337p亚洲精品色噜噜噜| 99riav久久精品riav| 在线观看日韩一区| 精品日产卡一卡二卡麻豆| 国产农村妇女精品| 日韩电影在线观看网站| 国产在线精品国自产拍免费| 97久久超碰国产精品电影| 91精品国产全国免费观看| 中文字幕精品一区二区三区精品| 亚洲夂夂婷婷色拍ww47| 99re视频精品| 欧美大片免费久久精品三p| 亚洲第一会所有码转帖| 欧美大白屁股肥臀xxxxxx| 国产精品短视频| 国产麻豆视频精品| 欧美精品一二三四| 欧美乱妇23p| 亚洲一区影音先锋| 99久久亚洲一区二区三区青草| 日韩美女视频在线| 婷婷中文字幕综合| 99re热这里只有精品免费视频| 国产欧美一区二区三区网站| 日本成人在线电影网| 制服.丝袜.亚洲.中文.综合| 最新不卡av在线| 国产精选一区二区三区| 精品日韩欧美一区二区| 日本欧美一区二区三区乱码| 欧美二区乱c少妇| 一区二区三区国产精华| 成人91在线观看| 国产精品久久久久久久久久久免费看| 久久69国产一区二区蜜臀 | 中文字幕一区二区三区在线观看 | 色婷婷久久久亚洲一区二区三区| 精品1区2区在线观看| 免费成人在线视频观看| 欧美精品久久天天躁| 亚洲午夜日本在线观看| 色狠狠av一区二区三区| 中文字幕一区二区三区四区| 福利91精品一区二区三区| 久久久亚洲精品一区二区三区| 久久精品国产99久久6| 51精品国自产在线| 午夜久久久久久电影| 在线视频一区二区三| 一区二区三区资源| 91免费国产视频网站| 亚洲免费在线观看视频| 色哟哟国产精品免费观看| 中文字幕亚洲欧美在线不卡| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美国产精品专区| 99久久99久久久精品齐齐| 亚洲青青青在线视频| 在线观看日韩国产| 日韩有码一区二区三区| 色综合激情五月| 亚洲精品v日韩精品| 欧美三级三级三级| 亚洲乱码中文字幕| 欧美色男人天堂| 视频一区欧美日韩| 欧美电影免费观看完整版| 国产精品1区二区.| 中文字幕亚洲一区二区av在线| 欧美精品九九99久久| 韩国在线一区二区| 亚洲国产一区二区在线播放| 日韩区在线观看| 岛国一区二区在线观看| 日日摸夜夜添夜夜添精品视频| 日韩欧美成人激情| 99久久国产免费看| 亚洲激情自拍视频| 精品国产乱码久久久久久久| 成人午夜激情片| 日韩综合在线视频| 精品理论电影在线观看| 99久久伊人久久99| 国产麻豆午夜三级精品| 亚洲电影在线播放| 欧美成人猛片aaaaaaa| a级高清视频欧美日韩| 国产精品人妖ts系列视频| 欧美日韩精品一区二区三区四区| 国产传媒欧美日韩成人| 免费黄网站欧美| 成人免费一区二区三区在线观看| 久久久久久久网| 欧美另类videos死尸| 国产99久久久国产精品免费看| 国产69精品久久久久777| 性做久久久久久久免费看| 国产欧美日本一区视频| 欧美日韩成人综合在线一区二区| 国产盗摄精品一区二区三区在线| 日韩激情一区二区| 亚洲黄色小视频| 欧美极品aⅴ影院| 日韩三级伦理片妻子的秘密按摩| 欧美性猛片xxxx免费看久爱| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 欧美亚洲一区二区在线| www.66久久| 国产精品亚洲一区二区三区妖精| 久久91精品久久久久久秒播| 婷婷夜色潮精品综合在线| 精品欧美乱码久久久久久| 一本高清dvd不卡在线观看| 国产高清不卡一区| 九九**精品视频免费播放| 水蜜桃久久夜色精品一区的特点| 一区二区在线电影| 亚洲精品视频自拍| 国产精品热久久久久夜色精品三区 | 久久综合久久综合久久综合| 欧美高清激情brazzers| 欧美这里有精品| 97se狠狠狠综合亚洲狠狠| 成人自拍视频在线观看| 国产尤物一区二区在线| 精品中文字幕一区二区| 麻豆精品在线视频| 日本欧美韩国一区三区| 日韩精品欧美精品| 午夜影视日本亚洲欧洲精品| 亚洲一区二区三区四区五区黄 | 日韩高清一区二区| 香蕉乱码成人久久天堂爱免费| 亚洲最大色网站| 午夜精品久久久久久久99水蜜桃| 亚洲一二三级电影| 婷婷久久综合九色综合绿巨人| 亚洲成av人片一区二区梦乃 | 国产精品福利av| 亚洲人成网站影音先锋播放| 中文字幕一区二区在线观看| 亚洲欧美日韩一区二区| 亚洲三级小视频| 亚洲一区二区在线免费观看视频| 亚洲狠狠爱一区二区三区| 婷婷开心久久网| 激情文学综合丁香| jlzzjlzz亚洲日本少妇| 成人一区二区三区| 国产激情精品久久久第一区二区| 麻豆精品在线观看| 成人精品高清在线| 色偷偷成人一区二区三区91| 欧美色手机在线观看| 欧美一区二区三区小说| 精品1区2区在线观看| 中文字幕在线播放不卡一区| 亚洲午夜在线电影| 韩国欧美一区二区| 成人v精品蜜桃久久一区| 在线视频国产一区| 欧美精品一区二区三区蜜臀 | 一区二区在线观看视频| 亚洲图片一区二区| 日产欧产美韩系列久久99| 成人一道本在线| 欧美日韩久久久久久| 国产日韩精品一区二区三区在线| 亚洲男女毛片无遮挡| 精品制服美女丁香| 色女孩综合影院| 精品国产伦一区二区三区免费| 国产精品久久久久天堂| 日本亚洲免费观看| 91一区二区三区在线观看| 欧美一级欧美三级在线观看| 国产精品女同一区二区三区| 日韩精品一级二级| 波多野结衣中文字幕一区二区三区| 91国产免费观看| 国产日本欧美一区二区| 日韩中文欧美在线| 色婷婷亚洲一区二区三区| 精品国产免费一区二区三区四区| 一区二区三区不卡视频| 韩国女主播一区| 91精品国产高清一区二区三区蜜臀| 日本一区二区成人在线| 麻豆成人91精品二区三区| 欧美色倩网站大全免费| **欧美大码日韩| 国产一区二区电影| 欧美日本免费一区二区三区| 亚洲女与黑人做爰| 国产成人精品午夜视频免费| 日韩一级二级三级| 天天操天天干天天综合网| 91香蕉视频在线|