📄 allconv.c
字号:
/* { dg-do compile } *//* { dg-options "-std=gnu99" } *//* C99 6.3 Conversions. Check if all conversions are ok. */#define CONV(TYPE, NAME) \ float NAME ## _to_SF (TYPE a) { return a; } \ float Sat ## NAME ## _to_SF (_Sat TYPE a) { return a; } \ double NAME ## _to_DF (TYPE a) { return a; } \ double Sat ## NAME ## _to_DF (_Sat TYPE a) { return a; } \ TYPE SF_to_ ## NAME (float a) { return a; } \ _Sat TYPE SF_to_Sat ## NAME (float a) { return a; } \ TYPE DF_to_ ## NAME (double a) { return a; } \ _Sat TYPE DF_to_Sat ## NAME (double a) { return a; } \ signed char NAME ## _to_schar (TYPE a) { return a; } \ signed char Sat ## NAME ## _to_schar (_Sat TYPE a) { return a; } \ unsigned char NAME ## _to_uchar (TYPE a) { return a; } \ unsigned char Sat ## NAME ## _to_uchar (_Sat TYPE a) { return a; } \ short NAME ## _to_short (TYPE a) { return a; } \ short _Sat ## NAME ## _to_short (_Sat TYPE a) { return a; } \ unsigned short NAME ## _to_ushort (TYPE a) { return a; } \ unsigned short _Sat ## NAME ## _to_ushort (_Sat TYPE a) { return a; } \ int NAME ## _to_int (TYPE a) { return a; } \ int _Sat ## NAME ## _to_int (_Sat TYPE a) { return a; } \ unsigned int NAME ## _to_uint (TYPE a) { return a; } \ unsigned int _Sat ## NAME ## _to_uint (_Sat TYPE a) { return a; } \ long NAME ## _to_long (TYPE a) { return a; } \ unsigned long NAME ## _to_ulong (TYPE a) { return a; } \ long _Sat ## NAME ## _to_long (TYPE a) { return a; } \ unsigned long _Sat ## NAME ## _to_ulong (TYPE a) { return a; } \ long long NAME ## _to_longlong (TYPE a) { return a; } \ long long _Sat ## NAME ## _to_longlong (TYPE a) { return a; } \ unsigned long long NAME ## _to_ulonglong (TYPE a) { return a; } \ unsigned long long _Sat ## NAME ## _to_ulonglong (TYPE a) { return a; } \ TYPE schar_to_ ## NAME (signed char a) { return a; } \ _Sat TYPE schar_to_Sat ## NAME (signed char a) { return a; } \ TYPE uchar_to_ ## NAME (unsigned char a) { return a; } \ _Sat TYPE uchar_to_Sat ## NAME (unsigned char a) { return a; } \ TYPE short_to_ ## NAME (short a) { return a; } \ TYPE ushort_to_ ## NAME (unsigned short a) { return a; } \ TYPE int_to_ ## NAME (int a) { return a; } \ TYPE uint_to_ ## NAME (unsigned int a) { return a; } \ TYPE long_to_ ## NAME (long a) { return a; } \ TYPE ulong_to_ ## NAME (unsigned long a) { return a; } \ TYPE longlong_to_ ## NAME (long long a) { return a; } \ TYPE ulonglong_to_ ## NAME (unsigned long long a) { return a; } \ _Sat TYPE short_to_Sat ## NAME (short a) { return a; } \ _Sat TYPE ushort_to_Sat ## NAME (unsigned short a) { return a; } \ _Sat TYPE int_to_Sat ## NAME (int a) { return a; } \ _Sat TYPE uint_to_Sat ## NAME (unsigned int a) { return a; } \ _Sat TYPE long_to_Sat ## NAME (long a) { return a; } \ _Sat TYPE ulong_to_Sat ## NAME (unsigned long a) { return a; } \ _Sat TYPE longlong_to_Sat ## NAME (long long a) { return a; } \ _Sat TYPE ulonglong_to_Sat ## NAME (unsigned long long a) { return a; } \ TYPE SFR_to ## NAME (short _Fract a) { return a; } \ TYPE FR_to ## NAME (_Fract a) { return a; } \ TYPE LFR_to ## NAME (long _Fract a) { return a; } \ TYPE LLFR_to ## NAME (long long _Fract a) { return a; } \ TYPE USFR_to ## NAME (unsigned short _Fract a) { return a; } \ TYPE UFR_to ## NAME (unsigned _Fract a) { return a; } \ TYPE ULFR_to ## NAME (unsigned long _Fract a) { return a; } \ TYPE ULLFR_to ## NAME (unsigned long long _Fract a) { return a; } \ TYPE SAC_to ## NAME (short _Accum a) { return a; } \ TYPE AC_to ## NAME (_Accum a) { return a; } \ TYPE LAC_to ## NAME (long _Accum a) { return a; } \ TYPE LLAC_to ## NAME (long long _Accum a) { return a; } \ TYPE USAC_to ## NAME (unsigned short _Accum a) { return a; } \ TYPE UAC_to ## NAME (unsigned _Accum a) { return a; } \ TYPE ULAC_to ## NAME (unsigned long _Accum a) { return a; } \ TYPE ULLAC_to ## NAME (unsigned long long _Accum a) { return a; } \ TYPE SATSFR_to ## NAME (_Sat short _Fract a) { return a; } \ TYPE SATFR_to ## NAME (_Sat _Fract a) { return a; } \ TYPE SATLFR_to ## NAME (_Sat long _Fract a) { return a; } \ TYPE SATLLFR_to ## NAME (_Sat long long _Fract a) { return a; } \ TYPE SATUSFR_to ## NAME (_Sat unsigned short _Fract a) { return a; } \ TYPE SATUFR_to ## NAME (_Sat unsigned _Fract a) { return a; } \ TYPE SATULFR_to ## NAME (_Sat unsigned long _Fract a) { return a; } \ TYPE SATULLFR_to ## NAME (_Sat unsigned long long _Fract a) { return a; } \ TYPE SATSAC_to ## NAME (_Sat short _Accum a) { return a; } \ TYPE SATAC_to ## NAME (_Sat _Accum a) { return a; } \ TYPE SATLAC_to ## NAME (_Sat long _Accum a) { return a; } \ TYPE SATLLAC_to ## NAME (_Sat long long _Accum a) { return a; } \ TYPE SATUSAC_to ## NAME (_Sat unsigned short _Accum a) { return a; } \ TYPE SATUAC_to ## NAME (_Sat unsigned _Accum a) { return a; } \ TYPE SATULAC_to ## NAME (_Sat unsigned long _Accum a) { return a; } \ TYPE SATULLAC_to ## NAME (_Sat unsigned long long _Accum a) { return a; } \ _Sat TYPE SFR_to_SAT ## NAME (short _Fract a) { return a; } \ _Sat TYPE FR_to_SAT ## NAME (_Fract a) { return a; } \ _Sat TYPE LFR_to_SAT ## NAME (long _Fract a) { return a; } \ _Sat TYPE LLFR_to_SAT ## NAME (long long _Fract a) { return a; } \ _Sat TYPE USFR_to_SAT ## NAME (unsigned short _Fract a) { return a; } \ _Sat TYPE UFR_to_SAT ## NAME (unsigned _Fract a) { return a; } \ _Sat TYPE ULFR_to_SAT ## NAME (unsigned long _Fract a) { return a; } \ _Sat TYPE ULLFR_to_SAT ## NAME (unsigned long long _Fract a) { return a; } \ _Sat TYPE SAC_to_SAT ## NAME (short _Accum a) { return a; } \ _Sat TYPE AC_to_SAT ## NAME (_Accum a) { return a; } \ _Sat TYPE LAC_to_SAT ## NAME (long _Accum a) { return a; } \ _Sat TYPE LLAC_to_SAT ## NAME (long long _Accum a) { return a; } \ _Sat TYPE USAC_to_SAT ## NAME (unsigned short _Accum a) { return a; } \ _Sat TYPE UAC_to_SAT ## NAME (unsigned _Accum a) { return a; } \ _Sat TYPE ULAC_to_SAT ## NAME (unsigned long _Accum a) { return a; } \ _Sat TYPE ULLAC_to_SAT ## NAME (unsigned long long _Accum a) { return a; } \ _Sat TYPE SATSFR_to_SAT ## NAME (_Sat short _Fract a) { return a; } \ _Sat TYPE SATFR_to_SAT ## NAME (_Sat _Fract a) { return a; } \ _Sat TYPE SATLFR_to_SAT ## NAME (_Sat long _Fract a) { return a; } \ _Sat TYPE SATLLFR_to_SAT ## NAME (_Sat long long _Fract a) { return a; } \ _Sat TYPE SATUSFR_to_SAT ## NAME (_Sat unsigned short _Fract a) { return a; } \ _Sat TYPE SATUFR_to_SAT ## NAME (_Sat unsigned _Fract a) { return a; } \ _Sat TYPE SATULFR_to_SAT ## NAME (_Sat unsigned long _Fract a) { return a; } \ _Sat TYPE SATULLFR_to_SAT ## NAME (_Sat unsigned long long _Fract a) { return a; } \ _Sat TYPE SATSAC_to_SAT ## NAME (_Sat short _Accum a) { return a; } \ _Sat TYPE SATAC_to_SAT ## NAME (_Sat _Accum a) { return a; } \ _Sat TYPE SATLAC_to_SAT ## NAME (_Sat long _Accum a) { return a; } \ _Sat TYPE SATLLAC_to_SAT ## NAME (_Sat long long _Accum a) { return a; } \ _Sat TYPE SATUSAC_to_SAT ## NAME (_Sat unsigned short _Accum a) { return a; } \ _Sat TYPE SATUAC_to_SAT ## NAME (_Sat unsigned _Accum a) { return a; } \ _Sat TYPE SATULAC_to_SAT ## NAME (_Sat unsigned long _Accum a) { return a; } \ _Sat TYPE SATULLAC_to_SAT ## NAME (_Sat unsigned long long _Accum a) { return a; } \ _Complex int NAME ## _to_CI (TYPE a) { return a; } \ _Complex unsigned int NAME ## _to_CUI (TYPE a) { return a; } \ _Complex float NAME ## _to_CF (TYPE a) { return a; } \ _Complex double NAME ## _to_CD (TYPE a) { return a; } \ TYPE CI_to_ ## NAME (_Complex int a) { return a; } \ TYPE CUI_to_ ## NAME (_Complex unsigned int a) { return a; } \ TYPE CF_to_ ## NAME (_Complex float a) { return a; } \ TYPE CD_to_ ## NAME (_Complex double a) { return a; } \ _Sat TYPE CI_to_SAT ## NAME (_Complex int a) { return a; } \ _Sat TYPE CUI_to_SAT ## NAME (_Complex unsigned int a) { return a; } \ _Sat TYPE CF_to_SAT ## NAME (_Complex float a) { return a; } \ _Sat TYPE CD_to_SAT ## NAME (_Complex double a) { return a; }CONV(short _Fract, sf);CONV(_Fract, f);CONV(long _Fract, lf);CONV(long long _Fract, llf);CONV(unsigned short _Fract, usf);CONV(unsigned _Fract, uf);CONV(unsigned long _Fract, ulf);CONV(unsigned long long _Fract, ullf);CONV(short _Accum, sk);CONV(_Accum, k);CONV(long _Accum, lk);CONV(long long _Accum, llk);CONV(unsigned short _Accum, usk);CONV(unsigned _Accum, uk);CONV(unsigned long _Accum, ulk);CONV(unsigned long long _Accum, ullk);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -