Viewing file: pr40493.c (1.78 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
extern void abort (void);
typedef union i386_operand_type { struct { unsigned int reg8:1; unsigned int reg16:1; unsigned int reg32:1; unsigned int reg64:1; unsigned int floatreg:1; unsigned int regmmx:1; unsigned int regxmm:1; unsigned int regymm:1; unsigned int control:1; unsigned int debug:1; unsigned int test:1; unsigned int sreg2:1; unsigned int sreg3:1; unsigned int imm1:1; unsigned int imm8:1; unsigned int imm8s:1; unsigned int imm16:1; unsigned int imm32:1; unsigned int imm32s:1; unsigned int imm64:1; unsigned int disp8:1; unsigned int disp16:1; unsigned int disp32:1; unsigned int disp32s:1; unsigned int disp64:1; unsigned int acc:1; unsigned int floatacc:1; unsigned int baseindex:1; unsigned int inoutportreg:1; unsigned int shiftcount:1; unsigned int jumpabsolute:1; unsigned int esseg:1; unsigned int regmem:1; unsigned int mem:1; unsigned int byte:1; unsigned int word:1; unsigned int dword:1; unsigned int fword:1; unsigned int qword:1; unsigned int tbyte:1; unsigned int xmmword:1; unsigned int ymmword:1; unsigned int unspecified:1; unsigned int anysize:1; } bitfield; unsigned int array[2]; } i386_operand_type;
unsigned int x00, x01, y00, y01;
int main (int argc, char *argv[]) { i386_operand_type a,b,c,d;
a.bitfield.reg16 = 1; a.bitfield.imm16 = 0; a.array[1] = 22;
b = a; x00 = b.array[0]; x01 = b.array[1];
c = b; y00 = c.array[0]; y01 = c.array[1];
d = c; if (d.bitfield.reg16 != 1) abort(); if (d.bitfield.imm16 != 0) abort(); if (d.array[1] != 22) abort();
return 0; }
|