diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /gcc/testsuite/gcc.dg/fixed-point/allconv.c | |
download | cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2 cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig;
imported gcc-4.6.4 source tree from verified upstream tarball.
downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.
if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
Diffstat (limited to 'gcc/testsuite/gcc.dg/fixed-point/allconv.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/fixed-point/allconv.c | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/fixed-point/allconv.c b/gcc/testsuite/gcc.dg/fixed-point/allconv.c new file mode 100644 index 000000000..e0440dac2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/fixed-point/allconv.c @@ -0,0 +1,150 @@ +/* { 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); |