1/* { dg-do compile } */ 2/* { dg-options "-std=gnu99" } */ 3 4/* N1169 7.18a.3 - Precision macros. 5 6 Check if defined fixed-point constants are ok. */ 7 8#include <stdfix.h> 9 10short fract sf = SFRACT_MAX; 11fract f = FRACT_MAX; 12long fract lf = LFRACT_MAX; 13long long fract llf = LLFRACT_MAX; 14 15unsigned short fract usf = USFRACT_MAX; 16unsigned fract uf = UFRACT_MAX; 17unsigned long fract ulf = ULFRACT_MAX; 18unsigned long long fract ullf = ULLFRACT_MAX; 19 20sat short fract Ssf = SFRACT_MAX; 21sat fract Sf = FRACT_MAX; 22sat long fract Slf = LFRACT_MAX; 23sat long long fract Sllf = LLFRACT_MAX; 24 25sat unsigned short fract Susf = USFRACT_MAX; 26sat unsigned fract Suf = UFRACT_MAX; 27sat unsigned long fract Sulf = ULFRACT_MAX; 28sat unsigned long long fract Sullf = ULLFRACT_MAX; 29 30short fract sfm = SFRACT_MIN; 31fract fm = FRACT_MIN; 32long fract lfm = LFRACT_MIN; 33long long fract llfm = LLFRACT_MIN; 34 35unsigned short fract usfm = USFRACT_MIN; 36unsigned fract ufm = UFRACT_MIN; 37unsigned long fract ulfm = ULFRACT_MIN; 38unsigned long long fract ullfm = ULLFRACT_MIN; 39 40sat short fract Ssfm = SFRACT_MIN; 41sat fract Sfm = FRACT_MIN; 42sat long fract Slfm = LFRACT_MIN; 43sat long long fract Sllfm = LLFRACT_MIN; 44 45sat unsigned short fract Susfm = USFRACT_MIN; 46sat unsigned fract Sufm = UFRACT_MIN; 47sat unsigned long fract Sulfm = ULFRACT_MIN; 48sat unsigned long long fract Sullfm = ULLFRACT_MIN; 49 50short fract sfE = SFRACT_EPSILON; 51fract fE = FRACT_EPSILON; 52long fract lfE = LFRACT_EPSILON; 53long long fract llfE = LLFRACT_EPSILON; 54 55unsigned short fract usfE = USFRACT_EPSILON; 56unsigned fract ufE = UFRACT_EPSILON; 57unsigned long fract ulfE = ULFRACT_EPSILON; 58unsigned long long fract ullfE = ULLFRACT_EPSILON; 59 60sat short fract SsfE = SFRACT_EPSILON; 61sat fract SfE = FRACT_EPSILON; 62sat long fract SlfE = LFRACT_EPSILON; 63sat long long fract SllfE = LLFRACT_EPSILON; 64 65sat unsigned short fract SusfE = USFRACT_EPSILON; 66sat unsigned fract SufE = UFRACT_EPSILON; 67sat unsigned long fract SulfE = ULFRACT_EPSILON; 68sat unsigned long long fract SullfE = ULLFRACT_EPSILON; 69 70short accum sk = SACCUM_MAX; 71accum k = ACCUM_MAX; 72long accum lk = LACCUM_MAX; 73long long accum llk = LLACCUM_MAX; 74 75unsigned short accum usk = USACCUM_MAX; 76unsigned accum uk = UACCUM_MAX; 77unsigned long accum ulk = ULACCUM_MAX; 78unsigned long long accum ullk = ULLACCUM_MAX; 79 80sat short accum Ssk = SACCUM_MAX; 81sat accum Sk = ACCUM_MAX; 82sat long accum Slk = LACCUM_MAX; 83sat long long accum Sllk = LLACCUM_MAX; 84 85sat unsigned short accum Susk = USACCUM_MAX; 86sat unsigned accum Suk = UACCUM_MAX; 87sat unsigned long accum Sulk = ULACCUM_MAX; 88sat unsigned long long accum Sullk = ULLACCUM_MAX; 89 90short accum skm = SACCUM_MIN; 91accum km = ACCUM_MIN; 92long accum lkm = LACCUM_MIN; 93long long accum llkm = LLACCUM_MIN; 94 95unsigned short accum uskm = USACCUM_MIN; 96unsigned accum ukm = UACCUM_MIN; 97unsigned long accum ulkm = ULACCUM_MIN; 98unsigned long long accum ullkm = ULLACCUM_MIN; 99 100sat short accum Sskm = SACCUM_MIN; 101sat accum Skm = ACCUM_MIN; 102sat long accum Slkm = LACCUM_MIN; 103sat long long accum Sllkm = LLACCUM_MIN; 104 105sat unsigned short accum Suskm = USACCUM_MIN; 106sat unsigned accum Sukm = UACCUM_MIN; 107sat unsigned long accum Sulkm = ULACCUM_MIN; 108sat unsigned long long accum Sullkm = ULLACCUM_MIN; 109 110short accum skE = SACCUM_EPSILON; 111accum kE = ACCUM_EPSILON; 112long accum lkE = LACCUM_EPSILON; 113long long accum llkE = LLACCUM_EPSILON; 114 115unsigned short accum uskE = USACCUM_EPSILON; 116unsigned accum ukE = UACCUM_EPSILON; 117unsigned long accum ulkE = ULACCUM_EPSILON; 118unsigned long long accum ullkE = ULLACCUM_EPSILON; 119 120sat short accum SskE = SACCUM_EPSILON; 121sat accum SkE = ACCUM_EPSILON; 122sat long accum SlkE = LACCUM_EPSILON; 123sat long long accum SllkE = LLACCUM_EPSILON; 124 125sat unsigned short accum SuskE = USACCUM_EPSILON; 126sat unsigned accum SukE = UACCUM_EPSILON; 127sat unsigned long accum SulkE = ULACCUM_EPSILON; 128sat unsigned long long accum SullkE = ULLACCUM_EPSILON; 129 130int fbit_sf = SFRACT_FBIT; 131int fbit_f = FRACT_FBIT; 132int fbit_lf = LFRACT_FBIT; 133int fbit_llf = LLFRACT_FBIT; 134 135int fbit_usf = USFRACT_FBIT; 136int fbit_uf = UFRACT_FBIT; 137int fbit_ulf = ULFRACT_FBIT; 138int fbit_ullf = ULLFRACT_FBIT; 139 140int fbit_sk = SACCUM_FBIT; 141int fbit_k = ACCUM_FBIT; 142int fbit_lk = LACCUM_FBIT; 143int fbit_llk = LLACCUM_FBIT; 144 145int fbit_usk = USACCUM_FBIT; 146int fbit_uk = UACCUM_FBIT; 147int fbit_ulk = ULACCUM_FBIT; 148int fbit_ullk = ULLACCUM_FBIT; 149 150int ibit_sk = SACCUM_IBIT; 151int ibit_k = ACCUM_IBIT; 152int ibit_lk = LACCUM_IBIT; 153int ibit_llk = LLACCUM_IBIT; 154 155int ibit_usk = USACCUM_IBIT; 156int ibit_uk = UACCUM_IBIT; 157int ibit_ulk = ULACCUM_IBIT; 158int ibit_ullk = ULLACCUM_IBIT; 159