pr36187.c

来自「用于进行gcc测试」· C语言 代码 · 共 46 行

C
46
字号
/* { dg-do run } *//* { dg-options "-O2 --param max-aliased-vops=20" } */extern "C" void abort (void);enum SbxDataType { SbxINTEGER, SbxDECIMAL, SbxBYREF = 0x4000 };struct SbxValues {    union {	float nSingle;	float* pSingle;    };    SbxDataType eType;};static bool ImpPutDoubleFoo( SbxValues* p){    bool bRet = false;    SbxValues aTmp;    int count = 0;start:     switch( p->eType )  {  	case SbxINTEGER:	    if (count++ > 0)	      abort ();	    aTmp.pSingle = &p->nSingle; goto direct;	case SbxBYREF | SbxDECIMAL:	    bRet = false;	    break;	direct:	    aTmp.eType = SbxDataType( p->eType | SbxBYREF );	    p = &aTmp; goto start;	case SbxBYREF | SbxINTEGER:	    break;	default:	    bRet =true;    }    return bRet;}int main( int argc, char** argv ){    SbxValues aTmp;    aTmp.eType = SbxINTEGER;    if ( ImpPutDoubleFoo( &aTmp ) )	abort ();    return 0;}

⌨️ 快捷键说明

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