20040304-1.c

来自「linux下的gcc编译器」· C语言 代码 · 共 46 行

C
46
字号
/* PR optimization/14235 *//* Origin: <senor_fjord@yahoo.com> */typedef signed char        int8_t;typedef short              int16_t;typedef int                int32_t;typedef unsigned long long uint64_t;static const uint64_t LOW_BYTE_MASK    = 0x00000000000000ffULL;static const uint64_t HIGH_BYTE_MASK   = 0x000000000000ff00ULL;static const uint64_t WORD_MASK        = 0x000000000000ffffULL;static const uint64_t DWORD_MASK       = 0x00000000ffffffffULL;extern uint64_t *srca_mask;extern int *assert_thrown;void foo(){  uint64_t tempA = 0; /* actually a bunch of code to set A */   uint64_t tempB = 0; /* actually a bunch of code to set B */   /* cast A to right size */  tempA = (((*srca_mask == LOW_BYTE_MASK) ||             (*srca_mask == HIGH_BYTE_MASK)) ?           ((int8_t)tempA) :            ((*srca_mask == WORD_MASK) ?             ((int16_t)tempA) :             ((*srca_mask == DWORD_MASK) ?              ((int32_t)tempA) :              tempA)));  /* cast B to right size */  tempB = (((*srca_mask == LOW_BYTE_MASK) ||             (*srca_mask == HIGH_BYTE_MASK)) ?            ((int8_t)tempB) :            ((*srca_mask == WORD_MASK) ?             ((int16_t)tempB) :             ((*srca_mask == DWORD_MASK) ?              ((int32_t)tempB) :              tempB)));       if ((int) tempA > (int) tempB) {     *assert_thrown = 1;  }}

⌨️ 快捷键说明

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