亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
在线播放一区二区三区| 国产乱一区二区| 国产精品污网站| 91精品国产入口| 一本到三区不卡视频| 国产精品一区二区三区四区 | 国产三级欧美三级| 精品88久久久久88久久久| 精品区一区二区| 久久久久久久性| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 色婷婷亚洲精品| 综合激情成人伊人| 欧美日产国产精品| 日韩精品专区在线| 国产视频在线观看一区二区三区| 午夜激情一区二区三区| 国产区在线观看成人精品| 欧美群妇大交群的观看方式 | 国产日韩在线不卡| 波多野结衣精品在线| 亚洲制服丝袜一区| 日韩一二在线观看| 97se亚洲国产综合自在线不卡 | 91麻豆精品国产91久久久 | 午夜久久久久久| 国产日韩精品一区二区三区在线| 本田岬高潮一区二区三区| 亚洲一区成人在线| 国产无人区一区二区三区| 99久久久无码国产精品| 蜜桃久久久久久久| 自拍偷拍国产精品| 欧美大胆一级视频| 99精品视频在线免费观看| 日本视频免费一区| 依依成人精品视频| 欧美经典一区二区| 91麻豆精品国产综合久久久久久| 成人综合婷婷国产精品久久 | 亚洲精品国久久99热| 久久综合久久鬼色| 欧美日韩在线免费视频| 粉嫩绯色av一区二区在线观看| 亚洲国产精品久久人人爱蜜臀| 国产午夜精品一区二区三区视频 | 99久久精品免费看国产免费软件| 视频一区欧美日韩| 亚洲欧洲另类国产综合| 久久一区二区视频| 日韩视频国产视频| 欧美三区在线观看| 91日韩精品一区| 国产91丝袜在线播放| 久久99久久99精品免视看婷婷| 亚洲午夜电影网| 亚洲视频在线观看三级| 久久嫩草精品久久久精品| 日韩欧美亚洲国产精品字幕久久久| 欧美中文字幕不卡| 91在线观看视频| av不卡在线观看| 国产91高潮流白浆在线麻豆| 久久成人免费日本黄色| 日本视频一区二区三区| 香蕉加勒比综合久久| 亚洲国产一区在线观看| 亚洲国产精品久久人人爱蜜臀| |精品福利一区二区三区| 国产精品视频九色porn| 国产欧美一区二区精品婷婷| 久久人人97超碰com| 久久在线观看免费| 国产欧美日韩视频在线观看| 国产日产欧美一区二区视频| 国产欧美日韩在线| 国产精品传媒入口麻豆| 最新久久zyz资源站| 亚洲视频免费观看| 亚洲一二三四久久| 日本最新不卡在线| 麻豆精品久久精品色综合| 免费成人在线视频观看| 久久99精品国产麻豆不卡| 精品在线免费观看| 97久久精品人人做人人爽50路| 国产高清无密码一区二区三区| 国内精品国产成人国产三级粉色| 狠狠色丁香久久婷婷综合丁香| 国产真实乱偷精品视频免| 国产乱码精品一区二区三区忘忧草 | 亚洲图片欧美综合| 日本欧美久久久久免费播放网| 久久99国产精品免费网站| 国产精品一区二区三区网站| fc2成人免费人成在线观看播放| zzijzzij亚洲日本少妇熟睡| 色综合久久88色综合天天 | 日韩一区二区三区电影在线观看 | 日本成人在线看| 国产精品伊人色| av电影在线观看不卡| 在线视频国内一区二区| 欧美福利一区二区| 久久久久久综合| 亚洲激情网站免费观看| 久久99热狠狠色一区二区| 波多野结衣在线aⅴ中文字幕不卡| 欧洲精品一区二区三区在线观看| 91精品国产入口在线| 欧美国产激情一区二区三区蜜月| 亚洲欧美另类综合偷拍| 久热成人在线视频| 99麻豆久久久国产精品免费| 欧美精品视频www在线观看| 久久综合久色欧美综合狠狠| 亚洲日本va午夜在线影院| 蜜桃av噜噜一区二区三区小说| 成人午夜激情片| 欧美一区二区三区爱爱| 亚洲欧洲性图库| 久久av资源站| 欧美午夜不卡在线观看免费| 国产亚洲一区二区在线观看| 午夜欧美一区二区三区在线播放| 激情欧美一区二区| 91精品1区2区| 国产日产精品一区| 免费成人在线观看视频| 色屁屁一区二区| 国产亚洲自拍一区| 日本不卡免费在线视频| 在线精品视频免费播放| 日本一区二区视频在线| 日本不卡不码高清免费观看| 日本道色综合久久| 国产女主播视频一区二区| 三级成人在线视频| 色老综合老女人久久久| 国产精品久久久久四虎| 国产伦精一区二区三区| 91麻豆精品国产91久久久使用方法 | 国产成人精品综合在线观看 | 国产亚洲va综合人人澡精品 | 国产日韩精品久久久| 久久激情综合网| 制服丝袜在线91| 亚洲一二三四区不卡| 一本久久a久久精品亚洲| 国产日韩三级在线| 久久超碰97人人做人人爱| 69堂国产成人免费视频| 免费成人美女在线观看.| 欧美亚洲丝袜传媒另类| 亚洲色图一区二区| www.亚洲国产| 亚洲国产电影在线观看| 国产成人啪免费观看软件| 国产亚洲一二三区| 国产成人综合亚洲91猫咪| 2017欧美狠狠色| 国产一区二区在线免费观看| 欧美成va人片在线观看| 看片的网站亚洲| 日韩欧美中文字幕制服| 免费高清在线视频一区·| 欧美大片一区二区| 男人的j进女人的j一区| 欧美电影免费观看完整版| 久久国产尿小便嘘嘘| 精品福利一区二区三区| 国模无码大尺度一区二区三区| 精品精品欲导航| 精品无码三级在线观看视频| 久久久久国色av免费看影院| 国产精品一区二区三区网站| 欧美激情一区二区三区| 不卡一二三区首页| 日韩理论在线观看| 91国产丝袜在线播放| 天天爽夜夜爽夜夜爽精品视频| 欧美精品久久天天躁| 老司机精品视频在线| 26uuu色噜噜精品一区| 国产成人8x视频一区二区| 中文字幕av一区 二区| 色综合一区二区三区| 天堂一区二区在线免费观看| 欧美大片国产精品| 成人的网站免费观看| 亚洲综合在线第一页| 欧美一级片在线看| 成人综合婷婷国产精品久久蜜臀 | 国产欧美精品一区二区三区四区| jlzzjlzz欧美大全| 午夜一区二区三区在线观看| 精品乱人伦一区二区三区| 成人久久18免费网站麻豆 | 91日韩在线专区| 日本欧美肥老太交大片|