bitfield-2.m

来自「俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)」· M 代码 · 共 56 行

M
56
字号
/* Check if bitfield ivars are correctly @encode'd when   the NeXT runtime is used.  *//* Contributed by Ziemowit Laski <zlaski@apple.com>.  *//* { dg-options "-fnext-runtime -fsigned-char" } *//* { dg-do run } */struct objc_object { struct objc_class *class_pointer; } *id;extern void abort(void);extern int strcmp(const char *, const char *);#define CHECK_IF(expr) if(!(expr)) abort();@interface Base {    struct objc_class *isa;    int full;    int full2: 32;    int _refs: 8;    int field2: 3;    unsigned f3: 8;    short cc;    unsigned g: 16;    int r2: 8;    int r3: 8;    int r4: 2;    int r5: 8;    char c;}@end@interface Derived: Base{    char d;    int _field3: 6;}@end@implementation Base@end@implementation Derived@endint main(void) {  const char *s1r = "{Base=#ib32b8b3b8sb16b8b8b2b8c}";  const char *s1 = @encode(Base);  const char *s2r = "{Derived=#ib32b8b3b8sb16b8b8b2b8ccb6}";  const char *s2 = @encode(Derived);  CHECK_IF(!strcmp(s1r, s1));  CHECK_IF(!strcmp(s2r, s2));  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?