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

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

?? cplus-dem.c

?? Vxworks OS source code
?? C
?? 第 1 頁 / 共 5 頁
字號:
				 string *));static intdemangle_real_value PARAMS ((struct work_stuff *, const char **, string *));static voiddemangle_arm_hp_template PARAMS ((struct work_stuff *, const char **, int,				  string *));static voidrecursively_demangle PARAMS ((struct work_stuff *, const char **, string *,			      int));static voidgrow_vect PARAMS ((void **, size_t *, size_t, int));/* Translate count to integer, consuming tokens in the process.   Conversion terminates on the first non-digit character.   Trying to consume something that isn't a count results in no   consumption of input and a return of -1.   Overflow consumes the rest of the digits, and returns -1.  */static intconsume_count (type)     const char **type;{  int count = 0;  if (! ISDIGIT ((unsigned char)**type))    return -1;  while (ISDIGIT ((unsigned char)**type))    {      count *= 10;      /* Check for overflow.	 We assume that count is represented using two's-complement;	 no power of two is divisible by ten, so if an overflow occurs	 when multiplying by ten, the result will not be a multiple of	 ten.  */      if ((count % 10) != 0)	{	  while (ISDIGIT ((unsigned char) **type))	    (*type)++;	  return -1;	}      count += **type - '0';      (*type)++;    }  return (count);}/* Like consume_count, but for counts that are preceded and followed   by '_' if they are greater than 10.  Also, -1 is returned for   failure, since 0 can be a valid value.  */static intconsume_count_with_underscores (mangled)     const char **mangled;{  int idx;  if (**mangled == '_')    {      (*mangled)++;      if (!ISDIGIT ((unsigned char)**mangled))	return -1;      idx = consume_count (mangled);      if (**mangled != '_')	/* The trailing underscore was missing. */	return -1;      (*mangled)++;    }  else    {      if (**mangled < '0' || **mangled > '9')	return -1;      idx = **mangled - '0';      (*mangled)++;    }  return idx;}/* C is the code for a type-qualifier.  Return the TYPE_QUAL   corresponding to this qualifier.  */static intcode_for_qualifier (c)  int c;{  switch (c)    {    case 'C':      return TYPE_QUAL_CONST;    case 'V':      return TYPE_QUAL_VOLATILE;    case 'u':      return TYPE_QUAL_RESTRICT;    default:      break;    }  /* C was an invalid qualifier.  */  return TYPE_UNQUALIFIED;}/* Return the string corresponding to the qualifiers given by   TYPE_QUALS.  */static const char*qualifier_string (type_quals)     int type_quals;{  switch (type_quals)    {    case TYPE_UNQUALIFIED:      return "";    case TYPE_QUAL_CONST:      return "const";    case TYPE_QUAL_VOLATILE:      return "volatile";    case TYPE_QUAL_RESTRICT:      return "__restrict";    case TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE:      return "const volatile";    case TYPE_QUAL_CONST | TYPE_QUAL_RESTRICT:      return "const __restrict";    case TYPE_QUAL_VOLATILE | TYPE_QUAL_RESTRICT:      return "volatile __restrict";    case TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE | TYPE_QUAL_RESTRICT:      return "const volatile __restrict";    default:      break;    }  /* TYPE_QUALS was an invalid qualifier set.  */  abort ();}/* C is the code for a type-qualifier.  Return the string   corresponding to this qualifier.  This function should only be   called with a valid qualifier code.  */static const char*demangle_qualifier (c)  int c;{  return qualifier_string (code_for_qualifier (c));}intcplus_demangle_opname (opname, result, options)     const char *opname;     char *result;     int options;{  int len, len1, ret;  string type;  struct work_stuff work[1];  const char *tem;  len = strlen(opname);  result[0] = '\0';  ret = 0;  memset ((char *) work, 0, sizeof (work));  work->options = options;  if (opname[0] == '_' && opname[1] == '_'      && opname[2] == 'o' && opname[3] == 'p')    {      /* ANSI.  */      /* type conversion operator.  */      tem = opname + 4;      if (do_type (work, &tem, &type))	{	  strcat (result, "operator ");	  strncat (result, type.b, type.p - type.b);	  string_delete (&type);	  ret = 1;	}    }  else if (opname[0] == '_' && opname[1] == '_'	   && ISLOWER((unsigned char)opname[2])	   && ISLOWER((unsigned char)opname[3]))    {      if (opname[4] == '\0')	{	  /* Operator.  */	  size_t i;	  for (i = 0; i < ARRAY_SIZE (optable); i++)	    {	      if (strlen (optable[i].in) == 2		  && memcmp (optable[i].in, opname + 2, 2) == 0)		{		  strcat (result, "operator");		  strcat (result, optable[i].out);		  ret = 1;		  break;		}	    }	}      else	{	  if (opname[2] == 'a' && opname[5] == '\0')	    {	      /* Assignment.  */	      size_t i;	      for (i = 0; i < ARRAY_SIZE (optable); i++)		{		  if (strlen (optable[i].in) == 3		      && memcmp (optable[i].in, opname + 2, 3) == 0)		    {		      strcat (result, "operator");		      strcat (result, optable[i].out);		      ret = 1;		      break;		    }		}	    }	}    }  else if (len >= 3	   && opname[0] == 'o'	   && opname[1] == 'p'	   && strchr (cplus_markers, opname[2]) != NULL)    {      /* see if it's an assignment expression */      if (len >= 10 /* op$assign_ */	  && memcmp (opname + 3, "assign_", 7) == 0)	{	  size_t i;	  for (i = 0; i < ARRAY_SIZE (optable); i++)	    {	      len1 = len - 10;	      if ((int) strlen (optable[i].in) == len1		  && memcmp (optable[i].in, opname + 10, len1) == 0)		{		  strcat (result, "operator");		  strcat (result, optable[i].out);		  strcat (result, "=");		  ret = 1;		  break;		}	    }	}      else	{	  size_t i;	  for (i = 0; i < ARRAY_SIZE (optable); i++)	    {	      len1 = len - 3;	      if ((int) strlen (optable[i].in) == len1		  && memcmp (optable[i].in, opname + 3, len1) == 0)		{		  strcat (result, "operator");		  strcat (result, optable[i].out);		  ret = 1;		  break;		}	    }	}    }  else if (len >= 5 && memcmp (opname, "type", 4) == 0	   && strchr (cplus_markers, opname[4]) != NULL)    {      /* type conversion operator */      tem = opname + 5;      if (do_type (work, &tem, &type))	{	  strcat (result, "operator ");	  strncat (result, type.b, type.p - type.b);	  string_delete (&type);	  ret = 1;	}    }  squangle_mop_up (work);  return ret;}/* Takes operator name as e.g. "++" and returns mangled   operator name (e.g. "postincrement_expr"), or NULL if not found.   If OPTIONS & DMGL_ANSI == 1, return the ANSI name;   if OPTIONS & DMGL_ANSI == 0, return the old GNU name.  */const char *cplus_mangle_opname (opname, options)     const char *opname;     int options;{  size_t i;  int len;  len = strlen (opname);  for (i = 0; i < ARRAY_SIZE (optable); i++)    {      if ((int) strlen (optable[i].out) == len	  && (options & DMGL_ANSI) == (optable[i].flags & DMGL_ANSI)	  && memcmp (optable[i].out, opname, len) == 0)	return optable[i].in;    }  return (0);}/* Add a routine to set the demangling style to be sure it is valid and   allow for any demangler initialization that maybe necessary. */enum demangling_stylescplus_demangle_set_style (style)     enum demangling_styles style;{  struct demangler_engine *demangler = libiberty_demanglers;   for (; demangler->demangling_style != unknown_demangling; ++demangler)    if (style == demangler->demangling_style)      {	current_demangling_style = style;	return current_demangling_style;      }  return unknown_demangling;}/* Do string name to style translation */enum demangling_stylescplus_demangle_name_to_style (name)     const char *name;{  struct demangler_engine *demangler = libiberty_demanglers;   for (; demangler->demangling_style != unknown_demangling; ++demangler)    if (strcmp (name, demangler->demangling_style_name) == 0)      return demangler->demangling_style;  return unknown_demangling;}/* char *cplus_demangle (const char *mangled, int options)   If MANGLED is a mangled function name produced by GNU C++, then   a pointer to a malloced string giving a C++ representation   of the name will be returned; otherwise NULL will be returned.   It is the caller's responsibility to free the string which   is returned.   The OPTIONS arg may contain one or more of the following bits:   	DMGL_ANSI	ANSI qualifiers such as `const' and `void' are			included.	DMGL_PARAMS	Function parameters are included.   For example,   cplus_demangle ("foo__1Ai", DMGL_PARAMS)		=> "A::foo(int)"   cplus_demangle ("foo__1Ai", DMGL_PARAMS | DMGL_ANSI)	=> "A::foo(int)"   cplus_demangle ("foo__1Ai", 0)			=> "A::foo"   cplus_demangle ("foo__1Afe", DMGL_PARAMS)		=> "A::foo(float,...)"   cplus_demangle ("foo__1Afe", DMGL_PARAMS | DMGL_ANSI)=> "A::foo(float,...)"   cplus_demangle ("foo__1Afe", 0)			=> "A::foo"   Note that any leading underscores, or other such characters prepended by   the compilation system, are presumed to have already been stripped from   MANGLED.  */char *cplus_demangle (mangled, options)     const char *mangled;     int options;{  char *ret;  struct work_stuff work[1];  memset ((char *) work, 0, sizeof (work));  work->options = options;  if ((work->options & DMGL_STYLE_MASK) == 0)    work->options |= (int) current_demangling_style & DMGL_STYLE_MASK;  /* The V3 ABI demangling is implemented elsewhere.  */  if (GNU_V3_DEMANGLING || AUTO_DEMANGLING)    {      ret = cplus_demangle_v3 (mangled);      if (ret || GNU_V3_DEMANGLING)	return ret;    }  if (GNAT_DEMANGLING)    return ada_demangle(mangled,options);  if (EDG_DEMANGLING)    {       ret = edg_demangle(mangled,options);       if (ret)	 {	    return (ret);	 }    }  ret = internal_cplus_demangle (work, mangled);  squangle_mop_up (work);  return (ret);}/* Assuming *OLD_VECT points to an array of *SIZE objects of size   ELEMENT_SIZE, grow it to contain at least MIN_SIZE objects,   updating *OLD_VECT and *SIZE as necessary.  */static voidgrow_vect (old_vect, size, min_size, element_size)     void **old_vect;     size_t *size;     size_t min_size;     int element_size;{  if (*size < min_size)    {      *size *= 2;      if (*size < min_size)	*size = min_size;      *old_vect = xrealloc (*old_vect, *size * element_size);    }}/* Demangle ada names:   1. Discard final __{DIGIT}+ or ${DIGIT}+   2. Convert other instances of embedded "__" to `.'.   3. Discard leading _ada_.   4. Remove everything after first ___ if it is followed by 'X'.   5. Put symbols that should be suppressed in <...> brackets.   The resulting string is valid until the next call of ada_demangle.  */static char *ada_demangle (mangled, option)     const char *mangled;     int option ATTRIBUTE_UNUSED;{  int i, j;  int len0;  const char* p;  char *demangled = NULL;  int at_start_name;  int changed;  char *demangling_buffer = NULL;  size_t demangling_buffer_size = 0;    changed = 0;  if (strncmp (mangled, "_ada_", 5) == 0)    {      mangled += 5;      changed = 1;    }    if (mangled[0] == '_' || mangled[0] == '<')    goto Suppress;    p = strstr (mangled, "___");  if (p == NULL)    len0 = strlen (mangled);  else    {      if (p[3] == 'X')	{	  len0 = p - mangled;	  changed = 1;	}      else	goto Suppress;    }    /* Make demangled big enough for possible expansion by operator name.  */  grow_vect ((void **) &(demangling_buffer),	     &demangling_buffer_size,  2 * len0 + 1,	     sizeof (char));  demangled = demangling_buffer;    if (ISDIGIT ((unsigned char) mangled[len0 - 1])) {    for (i = len0 - 2; i >= 0 && ISDIGIT ((unsigned char) mangled[i]); i -= 1)      ;    if (i > 1 && mangled[i] == '_' && mangled[i - 1] == '_')      {	len0 = i - 1;	changed = 1;      }    else if (mangled[i] == '$')      {	len0 = i;	changed = 1;      }  }    for (i = 0, j = 0; i < len0 && ! ISALPHA ((unsigned char)mangled[i]);       i += 1, j += 1)    demangled[j] = mangled[i];    at_start_name = 1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av第一页| 欧美激情在线看| 欧美日韩久久久久久| 在线视频欧美区| 欧美午夜免费电影| 欧美亚洲国产一区在线观看网站| 一本高清dvd不卡在线观看 | 337p粉嫩大胆色噜噜噜噜亚洲| 欧美一区二区在线视频| 91精品免费观看| 精品处破学生在线二十三| 欧美mv日韩mv国产网站app| 精品国产自在久精品国产| 欧美sm极限捆绑bd| 国产色婷婷亚洲99精品小说| 国产精品对白交换视频| 亚洲视频在线一区观看| 亚洲伦理在线免费看| 亚洲一区二区三区中文字幕在线| 亚洲午夜三级在线| 麻豆成人久久精品二区三区红 | 国产精品综合久久| 成人黄色小视频| 色婷婷亚洲综合| 在线不卡免费av| 2021久久国产精品不只是精品| 欧美激情自拍偷拍| 亚洲欧洲中文日韩久久av乱码| 亚洲国产日产av| 蜜桃视频在线一区| 成人毛片视频在线观看| 91成人网在线| 欧美精品一区二区三区蜜桃 | 亚洲va天堂va国产va久| 久久成人羞羞网站| 99re在线精品| 欧美精品在线观看一区二区| 久久麻豆一区二区| 一区二区三区日韩在线观看| 精品视频在线免费看| 欧美精品vⅰdeose4hd| 久久久久久久一区| 亚洲免费av高清| 麻豆成人久久精品二区三区红 | 欧美激情中文不卡| 亚洲国产精品久久不卡毛片| 激情久久五月天| 91麻豆国产在线观看| 日韩一区二区电影网| 国产精品免费人成网站| 性做久久久久久久久| 成人小视频免费观看| 这里是久久伊人| 国产精品无人区| 日韩国产精品久久久久久亚洲| 国产91精品欧美| 欧美日韩国产精品成人| 国产精品无圣光一区二区| 日本欧美韩国一区三区| 一本色道久久综合狠狠躁的推荐| 精品欧美一区二区在线观看| 一区2区3区在线看| 国产成人精品免费网站| 欧美精品久久久久久久多人混战| 国产精品毛片无遮挡高清| 日韩精品电影在线| 色欧美日韩亚洲| 国产日韩欧美一区二区三区乱码 | 国产在线播放一区三区四| 欧美日韩在线播| 中文字幕在线不卡视频| 精品系列免费在线观看| 欧美吻胸吃奶大尺度电影| 中文字幕在线不卡一区 | 2023国产精品自拍| 日日摸夜夜添夜夜添国产精品| 91视视频在线观看入口直接观看www | 欧美一级夜夜爽| 一区二区三区四区亚洲| 高清久久久久久| 久久久精品蜜桃| 精品一区精品二区高清| 欧美剧在线免费观看网站| 亚洲免费观看在线观看| 成人午夜激情视频| 久久九九久精品国产免费直播| 青青草精品视频| 56国语精品自产拍在线观看| 一区二区三区四区在线播放| 99久久精品国产精品久久| 欧美国产欧美亚州国产日韩mv天天看完整| 免费高清在线一区| 日韩一区二区免费在线电影| 欧美探花视频资源| 一区二区三区四区中文字幕| 91伊人久久大香线蕉| 国产精品短视频| 99精品热视频| 亚洲欧美中日韩| 99热精品国产| 亚洲欧美区自拍先锋| 9i看片成人免费高清| 国产精品高潮久久久久无| 成人性生交大片免费看视频在线| 国产视频一区二区在线| 国产成人一级电影| 欧美激情在线看| 99精品视频在线观看免费| 亚洲精品伦理在线| 欧美日韩国产一二三| 日韩电影在线免费看| 欧美一级在线免费| 精品一区二区影视| 欧美精品一区二区三区在线播放| 激情综合五月天| 欧美国产1区2区| 99久久久无码国产精品| 一区二区久久久| 91麻豆精品国产91久久久使用方法 | 国产精品成人网| 色婷婷av一区二区三区大白胸| 一区二区三区美女| 日韩一区二区在线免费观看| 狠狠色狠狠色合久久伊人| 欧美韩日一区二区三区| 91蜜桃网址入口| 视频在线在亚洲| 国产亚洲精品中文字幕| 91小视频在线免费看| 亚洲成人精品一区二区| 精品国产a毛片| 9色porny自拍视频一区二区| 亚洲大尺度视频在线观看| 精品区一区二区| 99久久精品免费精品国产| 亚洲成人综合视频| 久久精品视频一区二区| 色94色欧美sute亚洲线路一ni| 丝袜美腿亚洲一区二区图片| 亚洲精品一区二区三区影院| 99在线视频精品| 丝袜美腿亚洲一区二区图片| 久久亚洲精精品中文字幕早川悠里 | 麻豆精品一区二区三区| 中文字幕一区视频| 3d动漫精品啪啪一区二区竹菊 | 日本高清不卡aⅴ免费网站| 美女免费视频一区| 成人免费一区二区三区在线观看| 欧美日韩一区视频| 成人性视频网站| 天堂蜜桃91精品| 国产精品黄色在线观看| 91精品国产一区二区三区蜜臀 | 午夜伊人狠狠久久| 久久久久国产免费免费| 欧美日韩一区高清| 成人综合激情网| 三级一区在线视频先锋| 国产精品国产三级国产a| 日韩亚洲欧美一区| 91色乱码一区二区三区| 久久91精品久久久久久秒播| 亚洲精品中文字幕在线观看| 欧美精品一区二区三区蜜桃视频 | 亚洲欧洲日本在线| 欧美成人一区二区三区| 色94色欧美sute亚洲线路一ni | 91亚洲资源网| 国产一区91精品张津瑜| 午夜影视日本亚洲欧洲精品| 亚洲欧洲日韩女同| 久久精品在这里| 日韩欧美一级片| 欧美手机在线视频| 成人激情午夜影院| 激情欧美日韩一区二区| 亚洲一级二级在线| 中文字幕一区三区| 日本一二三不卡| 久久综合成人精品亚洲另类欧美| 欧美老年两性高潮| 欧美在线视频日韩| 色噜噜狠狠一区二区三区果冻| 成人一区二区视频| 精品一区二区av| 免费xxxx性欧美18vr| 亚洲18影院在线观看| 一区二区三区精品视频在线| 国产精品久久久久国产精品日日| 久久亚洲精华国产精华液| 精品国产伦一区二区三区免费| 欧美男人的天堂一二区| 在线视频你懂得一区| 日本二三区不卡| 色综合久久精品| 91视频免费观看| 在线看日韩精品电影| 91久久一区二区| 91国产视频在线观看|