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

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

?? encoding.c

?? gcc的組件
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Encoding of types for Objective C.   Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000, 2002, 2004   Free Software Foundation, Inc.   Contributed by Kresten Krab Thorup   Bitfield support by Ovidiu PredescuThis file is part of GCC.GCC 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 2, or (at your option)any later version.GCC 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 GCC; see the file COPYING.  If not, write tothe Free Software Foundation, 51 Franklin Street, Fifth Floor,Boston, MA 02110-1301, USA.  *//* As a special exception, if you link this library with files   compiled with GCC to produce an executable, this does not cause   the resulting executable to be covered by the GNU General Public License.   This exception does not however invalidate any other reasons why   the executable file might be covered by the GNU General Public License.  *//* FIXME: This file has no business including tm.h.  */#include "tconfig.h"#include "coretypes.h"#include "tm.h"#include "objc/objc-api.h"#include "objc/encoding.h"#include <stdlib.h>#undef  MAX#define MAX(X, Y)                    \  ({ typeof (X) __x = (X), __y = (Y); \     (__x > __y ? __x : __y); })#undef  MIN#define MIN(X, Y)                    \  ({ typeof (X) __x = (X), __y = (Y); \     (__x < __y ? __x : __y); })#undef  ROUND#define ROUND(V, A) \  ({ typeof (V) __v = (V); typeof (A) __a = (A); \     __a * ((__v+__a - 1)/__a); })/* Various hacks for objc_layout_record. These are used by the target   macros. */#define TREE_CODE(TYPE) *(TYPE)#define TREE_TYPE(TREE) (TREE)#define RECORD_TYPE     _C_STRUCT_B#define UNION_TYPE      _C_UNION_B#define QUAL_UNION_TYPE _C_UNION_B#define ARRAY_TYPE      _C_ARY_B#define REAL_TYPE       _C_DBL#define VECTOR_TYPE	_C_VECTOR#define TYPE_FIELDS(TYPE)     objc_skip_typespec (TYPE)#define DECL_MODE(TYPE) *(TYPE)#define TYPE_MODE(TYPE) *(TYPE)#define DFmode          _C_DBL#define get_inner_array_type(TYPE)      ((TYPE) + 1)/* Some ports (eg ARM) allow the structure size boundary to be   selected at compile-time.  We override the normal definition with   one that has a constant value for this compilation.  */#ifndef BITS_PER_UNIT#define BITS_PER_UNIT 8#endif#undef  STRUCTURE_SIZE_BOUNDARY#define STRUCTURE_SIZE_BOUNDARY (BITS_PER_UNIT * sizeof (struct{char a;}))/* Some ROUND_TYPE_ALIGN macros use TARGET_foo, and consequently   target_flags.  Define a dummy entry here to so we don't die.   We have to rename it because target_flags may already have been   declared extern.  */#define target_flags not_target_flagsstatic int __attribute__ ((__unused__)) not_target_flags = 0;/* Some ROUND_TYPE_ALIGN use ALTIVEC_VECTOR_MODE (rs6000 darwin).   Define a dummy ALTIVEC_VECTOR_MODE so it will not die.  */#undef ALTIVEC_VECTOR_MODE#define ALTIVEC_VECTOR_MODE(MODE) (0)/*  FIXME: while this file has no business including tm.h, this    definitely has no business defining this macro but it    is only way around without really rewritting this file,    should look after the branch of 3.4 to fix this.  */#define rs6000_special_round_type_align(STRUCT, COMPUTED, SPECIFIED)	\  ((TYPE_FIELDS (STRUCT) != 0						\    && DECL_MODE (TYPE_FIELDS (STRUCT)) == DFmode)			\   ? MAX (MAX (COMPUTED, SPECIFIED), 64)				\   : MAX (COMPUTED, SPECIFIED))/*  return the size of an object specified by type*/intobjc_sizeof_type (const char *type){  /* Skip the variable name if any */  if (*type == '"')    {      for (type++; *type++ != '"';)	/* do nothing */;    }  switch (*type) {  case _C_ID:    return sizeof (id);    break;  case _C_CLASS:    return sizeof (Class);    break;  case _C_SEL:    return sizeof (SEL);    break;  case _C_CHR:    return sizeof (char);    break;  case _C_UCHR:    return sizeof (unsigned char);    break;  case _C_SHT:    return sizeof (short);    break;  case _C_USHT:    return sizeof (unsigned short);    break;  case _C_INT:    return sizeof (int);    break;  case _C_UINT:    return sizeof (unsigned int);    break;  case _C_LNG:    return sizeof (long);    break;  case _C_ULNG:    return sizeof (unsigned long);    break;  case _C_LNG_LNG:    return sizeof (long long);    break;  case _C_ULNG_LNG:    return sizeof (unsigned long long);    break;  case _C_FLT:    return sizeof (float);    break;  case _C_DBL:    return sizeof (double);    break;  case _C_VOID:    return sizeof (void);    break;  case _C_PTR:  case _C_ATOM:  case _C_CHARPTR:    return sizeof (char *);    break;  case _C_ARY_B:    {      int len = atoi (type + 1);      while (isdigit ((unsigned char)*++type))	;      return len * objc_aligned_size (type);    }    break;  case _C_BFLD:    {      /* The new encoding of bitfields is: b 'position' 'type' 'size' */      int position, size;      int startByte, endByte;      position = atoi (type + 1);      while (isdigit ((unsigned char)*++type))	;      size = atoi (type + 1);      startByte = position / BITS_PER_UNIT;      endByte = (position + size) / BITS_PER_UNIT;      return endByte - startByte;    }  case _C_STRUCT_B:    {      struct objc_struct_layout layout;      unsigned int size;      objc_layout_structure (type, &layout);      while (objc_layout_structure_next_member (&layout))        /* do nothing */ ;      objc_layout_finish_structure (&layout, &size, NULL);      return size;    }  case _C_UNION_B:    {      int max_size = 0;      while (*type != _C_UNION_E && *type++ != '=')	/* do nothing */;      while (*type != _C_UNION_E)	{	  /* Skip the variable name if any */	  if (*type == '"')	    {	      for (type++; *type++ != '"';)		/* do nothing */;	    }	  max_size = MAX (max_size, objc_sizeof_type (type));	  type = objc_skip_typespec (type);	}      return max_size;    }  default:    {      objc_error (nil, OBJC_ERR_BAD_TYPE, "unknown type %s\n", type);      return 0;    }  }}/*  Return the alignment of an object specified by type*/intobjc_alignof_type (const char *type){  /* Skip the variable name if any */  if (*type == '"')    {      for (type++; *type++ != '"';)	/* do nothing */;    }  switch (*type) {  case _C_ID:    return __alignof__ (id);    break;  case _C_CLASS:    return __alignof__ (Class);    break;  case _C_SEL:    return __alignof__ (SEL);    break;  case _C_CHR:    return __alignof__ (char);    break;  case _C_UCHR:    return __alignof__ (unsigned char);    break;  case _C_SHT:    return __alignof__ (short);    break;  case _C_USHT:    return __alignof__ (unsigned short);    break;  case _C_INT:    return __alignof__ (int);    break;  case _C_UINT:    return __alignof__ (unsigned int);    break;  case _C_LNG:    return __alignof__ (long);    break;  case _C_ULNG:    return __alignof__ (unsigned long);    break;  case _C_LNG_LNG:    return __alignof__ (long long);    break;  case _C_ULNG_LNG:    return __alignof__ (unsigned long long);    break;  case _C_FLT:    return __alignof__ (float);    break;  case _C_DBL:    return __alignof__ (double);    break;  case _C_PTR:  case _C_ATOM:  case _C_CHARPTR:    return __alignof__ (char *);    break;  case _C_ARY_B:    while (isdigit ((unsigned char)*++type))      /* do nothing */;    return objc_alignof_type (type);  case _C_STRUCT_B:    {      struct objc_struct_layout layout;      unsigned int align;      objc_layout_structure (type, &layout);      while (objc_layout_structure_next_member (&layout))        /* do nothing */;      objc_layout_finish_structure (&layout, NULL, &align);      return align;    }  case _C_UNION_B:    {      int maxalign = 0;      while (*type != _C_UNION_E && *type++ != '=')	/* do nothing */;      while (*type != _C_UNION_E)	{	  /* Skip the variable name if any */	  if (*type == '"')	    {	      for (type++; *type++ != '"';)		/* do nothing */;	    }	  maxalign = MAX (maxalign, objc_alignof_type (type));	  type = objc_skip_typespec (type);	}      return maxalign;    }  default:    {      objc_error (nil, OBJC_ERR_BAD_TYPE, "unknown type %s\n", type);      return 0;    }  }}/*  The aligned size if the size rounded up to the nearest alignment.*/intobjc_aligned_size (const char *type){  int size, align;  /* Skip the variable name */  if (*type == '"')    {      for (type++; *type++ != '"';)	/* do nothing */;    }  size = objc_sizeof_type (type);  align = objc_alignof_type (type);  return ROUND (size, align);}/*  The size rounded up to the nearest integral of the wordsize, taken  to be the size of a void *.*/intobjc_promoted_size (const char *type){  int size, wordsize;  /* Skip the variable name */  if (*type == '"')    {      for (type++; *type++ != '"';)	/* do nothing */;    }  size = objc_sizeof_type (type);  wordsize = sizeof (void *);  return ROUND (size, wordsize);}/*  Skip type qualifiers.  These may eventually precede typespecs  occurring in method prototype encodings.*/inline const char *objc_skip_type_qualifiers (const char *type){  while (*type == _C_CONST	 || *type == _C_IN	 || *type == _C_INOUT	 || *type == _C_OUT	 || *type == _C_BYCOPY         || *type == _C_BYREF	 || *type == _C_ONEWAY	 || *type == _C_GCINVISIBLE)    {      type += 1;    }  return type;}/*  Skip one typespec element.  If the typespec is prepended by type  qualifiers, these are skipped as well.*/const char *objc_skip_typespec (const char *type){  /* Skip the variable name if any */  if (*type == '"')    {      for (type++; *type++ != '"';)	/* do nothing */;    }  type = objc_skip_type_qualifiers (type);  switch (*type) {  case _C_ID:    /* An id may be annotated by the actual type if it is known       with the @"ClassName" syntax */    if (*++type != '"')      return type;    else      {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产偷国产偷亚洲高清人白洁 | 精品一区二区在线免费观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美xxx久久| 欧美一区二区三区男人的天堂| 欧美精品18+| 欧美一区二区三区四区五区| 91麻豆精品久久久久蜜臀| 欧美日韩国产小视频在线观看| 欧美视频在线播放| 欧美一三区三区四区免费在线看 | 国产一区 二区| 国产精品主播直播| 国产精品一区二区黑丝| 成人综合婷婷国产精品久久蜜臀| 成人在线综合网| 色综合中文字幕国产 | 欧美一卡2卡3卡4卡| 国产一区在线看| 国产成人精品亚洲午夜麻豆| 不卡的看片网站| 91福利在线导航| 91精品福利在线一区二区三区 | 亚洲欧美激情一区二区| 亚洲宅男天堂在线观看无病毒| 亚洲成人在线网站| 韩国v欧美v亚洲v日本v| 成人午夜av在线| 欧美天堂一区二区三区| 日韩精品一区二区三区在线播放| 久久久亚洲高清| 一区二区激情小说| 麻豆成人av在线| 91同城在线观看| 日韩欧美在线网站| 中文字幕亚洲欧美在线不卡| 亚洲一区二区欧美| 成人一级片在线观看| 欧美日韩国产美| 欧美国产日韩亚洲一区| 日韩黄色免费电影| bt欧美亚洲午夜电影天堂| 欧美日韩国产精选| 国产午夜精品福利| 三级精品在线观看| 99久久99久久精品国产片果冻| 欧美剧在线免费观看网站| 亚洲国产精品二十页| 青青草精品视频| 色欧美乱欧美15图片| 国产午夜久久久久| 免费在线视频一区| 欧洲在线/亚洲| 亚洲欧美自拍偷拍色图| 国产乱码字幕精品高清av | 成人avav影音| 欧美精品一区二区三区高清aⅴ| 一区二区三区在线免费播放| 国产成人午夜电影网| 666欧美在线视频| 亚洲精品中文字幕乱码三区| 国产suv精品一区二区三区| 欧美一区午夜精品| 午夜欧美2019年伦理| 99久久精品99国产精品| 亚洲国产精华液网站w| 韩国三级电影一区二区| 日韩欧美一区二区三区在线| 亚洲电影中文字幕在线观看| 91丝袜国产在线播放| 亚洲欧洲色图综合| 91麻豆福利精品推荐| 国产精品久久久久三级| 成人国产在线观看| 国产精品久久久久aaaa樱花| 成人av在线资源网站| 国产精品你懂的在线| 国产69精品一区二区亚洲孕妇| ww亚洲ww在线观看国产| 麻豆精品久久精品色综合| 日韩一区二区三区视频| 毛片一区二区三区| 精品播放一区二区| 国产成人小视频| 欧美国产精品劲爆| 91免费版在线看| 亚洲成人av中文| 欧美一区二区高清| 麻豆精品一区二区综合av| 久久综合狠狠综合久久综合88 | 国产一二精品视频| 国产欧美日韩一区二区三区在线观看| 极品少妇xxxx精品少妇偷拍| 久久精品亚洲精品国产欧美| 成人晚上爱看视频| 一级日本不卡的影视| 538prom精品视频线放| 精品亚洲成a人在线观看| 国产亚洲婷婷免费| 91欧美激情一区二区三区成人| 亚洲午夜在线电影| 精品日韩av一区二区| 不卡电影一区二区三区| 天天影视涩香欲综合网| 久久新电视剧免费观看| av一区二区三区黑人| 亚洲成在人线免费| 精品国产一区二区在线观看| 99亚偷拍自图区亚洲| 三级久久三级久久| 国产精品沙发午睡系列990531| 91极品美女在线| 国产一区视频网站| 伊人开心综合网| 久久夜色精品国产噜噜av| 91国模大尺度私拍在线视频| 久88久久88久久久| 亚洲激情中文1区| 久久亚洲捆绑美女| 欧美人狂配大交3d怪物一区| 国产精品亚洲综合一区在线观看| 亚洲欧美成人一区二区三区| 欧美v日韩v国产v| 色婷婷av一区二区三区gif| 国产资源在线一区| 亚洲一区二区精品久久av| 日本一区二区在线不卡| 日韩午夜电影在线观看| 欧美午夜精品一区二区三区| 国产成人午夜电影网| 久草精品在线观看| 免费成人结看片| 亚洲一区二区三区精品在线| 亚洲乱码中文字幕综合| 日韩写真欧美这视频| 欧洲一区二区三区免费视频| 成人av资源在线观看| 国产成人h网站| 久久99精品久久久久久久久久久久 | 国产欧美日本一区二区三区| 欧美丰满嫩嫩电影| 欧美性受xxxx黑人xyx性爽| 不卡电影一区二区三区| 粉嫩一区二区三区在线看| 国产综合色精品一区二区三区| 日韩成人精品在线| 五月婷婷色综合| 婷婷国产在线综合| 日韩精品三区四区| 视频一区二区三区在线| 日韩专区一卡二卡| 日韩av网站免费在线| 三级久久三级久久久| 日韩在线一二三区| 日韩国产高清在线| 日韩成人一级大片| 麻豆国产一区二区| 黄色小说综合网站| 精品中文字幕一区二区| 激情综合亚洲精品| 激情五月激情综合网| 国产老肥熟一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 国内成+人亚洲+欧美+综合在线| 蜜臀久久99精品久久久画质超高清 | 91视频com| 欧洲国产伦久久久久久久| 欧美吞精做爰啪啪高潮| 91麻豆精品久久久久蜜臀| 精品国产一区二区三区久久影院| 26uuu国产日韩综合| 亚洲欧美怡红院| 理论片日本一区| 国产成人免费9x9x人网站视频| 国产成人免费在线| 91蜜桃传媒精品久久久一区二区| 在线一区二区视频| 这里只有精品电影| 久久久国产一区二区三区四区小说 | 一本大道久久a久久综合婷婷| 色婷婷久久久久swag精品 | 亚洲视频一区二区在线观看| 亚洲免费电影在线| 奇米色一区二区| 国产成人在线电影| 欧美日韩精品一区二区三区| 日韩美女视频一区二区在线观看| 国产色一区二区| 亚洲成人激情社区| 懂色一区二区三区免费观看| 欧美亚洲一区三区| 久久久亚洲综合| 性做久久久久久| 国产成人免费av在线| 正在播放一区二区| 亚洲色图丝袜美腿| 日本韩国欧美一区二区三区| 欧美一三区三区四区免费在线看 | 久久久久久9999| 亚洲mv在线观看|