GCC主要数据结构之c_typespec

 

/* A kind of type specifier.  Note that this information is currently    only used to distinguish tag definitions, tag references and typeof    uses.  */ enum c_typespec_kind {   /* No typespec.  This appears only in struct c_declspec.  */   ctsk_none,   /* A reserved keyword type specifier.  */   ctsk_resword,   /* A reference to a tag, previously declared, such as "struct foo".      This includes where the previous declaration was as a different      kind of tag, in which case this is only valid if shadowing that      tag in an inner scope.  */   ctsk_tagref,   /* A reference to a tag, not previously declared in a visible      scope.  */   ctsk_tagfirstref,   /* A definition of a tag such as "struct foo { int a; }".  */   ctsk_tagdef,   /* A typedef name.  */   ctsk_typedef,   /* An ObjC-specific kind of type specifier.  */   ctsk_objc,   /* A typeof specifier, or _Atomic ( type-name ).  */   ctsk_typeof };

/* A type specifier: this structure is created in the parser and    passed to declspecs_add_type only.  */ struct c_typespec {   /* What kind of type specifier this is.  */   enum c_typespec_kind kind;   /* Whether the expression has operands suitable for use in constant      expressions.  */   bool expr_const_operands;   /* The specifier itself.  */   tree spec;   /* An expression to be evaluated before the type specifier, in the      case of typeof specifiers, or NULL otherwise or if no such      expression is required for a particular typeof specifier.  In      particular, when typeof is applied to an expression of variably      modified type, that expression must be evaluated in order to      determine array sizes that form part of the type, but the      expression itself (as opposed to the array sizes) forms no part      of the type and so needs to be recorded separately.  */   tree expr; };

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值