Changes in / [522f71c:f886608]
- Files:
-
- 2 deleted
- 2 edited
-
libcfa/prelude/prelude-gen.cc (modified) (4 diffs)
-
src/BasicTypes-gen.cpp (modified) (5 diffs)
-
tests/.expect/ArithmeticConversions.x86.txt (deleted)
-
tests/ArithmeticConversions.cfa (deleted)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/prelude/prelude-gen.cc
r522f71c rf886608 10 10 // Created On : Sat Feb 16 08:44:58 2019 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Jan 12 20:28:33 202513 // Update Count : 5312 // Last Modified On : Thu Feb 2 11:40:01 2023 13 // Update Count : 38 14 14 // 15 15 … … 24 24 const string name; 25 25 bool isFloat; 26 bool hasComparison; // CANNOT COMPARE COMPLEX NUMBERS!!!26 bool hasComparison; 27 27 } basicTypes[] = { 28 { "char" , false, true,},29 { "signed char" , false, true,},30 { "unsigned char" , false, true,},31 { "signed short" , false, true,},32 { "unsigned short" , false, true,},33 { "signed int" , false, true,},34 { "unsigned int" , false, true,},35 { "signed long int" , false, true,},36 { "unsigned long int" , false, true,},37 { "signed long long int" , false, true,},38 { "unsigned long long int", false, true,},39 { "float" , true , true,},40 { "double" , true, true,},41 { "long double" , true, true,},42 { "float _Complex" , true,false, },43 { "double _Complex" , true,false, },44 { "long double _Complex" , true,false, },28 { "char" , false, true , }, 29 { "signed char" , false, true , }, 30 { "unsigned char" , false, true , }, 31 { "signed short" , false, true , }, 32 { "unsigned short" , false, true , }, 33 { "signed int" , false, true , }, 34 { "unsigned int" , false, true , }, 35 { "signed long int" , false, true , }, 36 { "unsigned long int" , false, true , }, 37 { "signed long long int" , false, true , }, 38 { "unsigned long long int", false, true , }, 39 { "float" , true , true , }, 40 { "double" , true , true , }, 41 { "long double" , true , true , }, 42 { "float _Complex" , true , false, }, 43 { "double _Complex" , true , false, }, 44 { "long double _Complex" , true , false, }, 45 45 #if defined(__SIZEOF_INT128__) 46 { "__int128" , false, true,},47 { "unsigned __int128" , false, true,},46 { "__int128" , false, true , }, 47 { "unsigned __int128" , false, true , }, 48 48 #endif 49 49 #if defined(__i386__) || defined(__ia64__) || defined(__x86_64__) 50 { "__float80", true, true, }, 51 { "__float128", true, true, }, 52 { "_Float128", true, true, }, 53 { "_Float128 _Complex", true, false, }, 54 // { "_Float128x", true, true, }, // add declarations if type supported 55 // { "_Float128x _Complex", true, false, }, 50 { "__float80" , true , true , }, 51 { "__float128" , true , true , }, 56 52 #endif 57 53 }; … … 64 60 bool isEqual = false; 65 61 } arithmeticOperators[] = { 66 { "?++" , true, true,false, false },67 { "?--" , true, true,false, false },68 { "++?" , true, true,false, false },69 { "--?" , true, true,false, false },70 { "+?" , false, true,false, false },71 { "-?" , false, true,false, false },72 { "~?" ,false, false, false, false },73 { "!?" , false, true,false, true },74 { "?*?" , false, true,false, false },75 { "?/?" , false, true,false, false },76 { "?%?" ,false, false, false, false },77 { "?+?" , false, true,false, false },78 { "?-?" , false, true,false, false },79 { "?<<?" ,false, false, false, false },80 { "?>>?" ,false, false, false, false },81 { "?<?" , false, true, true,false },82 { "?<=?" , false, true, true,true },83 { "?>?" , false, true, true,false },84 { "?>=?" , false, true, true,true },85 { "?==?" , false, true,false, true },86 { "?!=?" , false, true,false, true },87 { "?&?" ,false, false, false, false },88 { "?^?" ,false, false, false, false },89 { "?|?" ,false, false, false, false },90 { "?=?" , true, true,false, false },91 { "?+=?" , true, true,false, false },92 { "?-=?" , true, true,false, false },93 { "?*=?" , true, true,false, false },94 { "?/=?" , true, true,false, false },95 { "?%=?" , true,false, false, false },96 { "?<<=?", true,false, false, false },97 { "?>>=?", true,false, false, false },98 { "?&=?" , true,false, false, false },99 { "?|=?" , true,false, false, false },100 { "?^=?" , true,false, false, false },62 { "?++" , true , true, false, false }, 63 { "?--" , true , true, false, false }, 64 { "++?" , true , true, false, false }, 65 { "--?" , true , true, false, false }, 66 { "+?" , false, true , false, false }, 67 { "-?" , false, true , false, false }, 68 { "~?" , false, false, false, false }, 69 { "!?" , false, true , false, true }, 70 { "?*?" , false, true , false, false }, 71 { "?/?" , false, true , false, false }, 72 { "?%?" , false, false, false, false }, 73 { "?+?" , false, true , false, false }, 74 { "?-?" , false, true , false, false }, 75 { "?<<?" , false, false, false, false }, 76 { "?>>?" , false, false, false, false }, 77 { "?<?" , false, true , true , false }, 78 { "?<=?" , false, true , true , true }, 79 { "?>?" , false, true , true , false }, 80 { "?>=?" , false, true , true , true }, 81 { "?==?" , false, true , false, true }, 82 { "?!=?" , false, true , false, true }, 83 { "?&?" , false, false, false, false }, 84 { "?^?" , false, false, false, false }, 85 { "?|?" , false, false, false, false }, 86 { "?=?" , true , true , false, false }, 87 { "?+=?" , true , true , false, false }, 88 { "?-=?" , true , true , false, false }, 89 { "?*=?" , true , true , false, false }, 90 { "?/=?" , true , true , false, false }, 91 { "?%=?" , true , false, false, false }, 92 { "?<<=?", true , false, false, false }, 93 { "?>>=?", true , false, false, false }, 94 { "?&=?" , true , false, false, false }, 95 { "?|=?" , true , false, false, false }, 96 { "?^=?" , true , false, false, false }, 101 97 }; 102 98 … … 110 106 string sized; 111 107 } pointerOperators[] = { 112 { "?++", true, "", Normal," | sized(DT)" },113 { "?--", true, "", Normal," | sized(DT)" },114 { "++?", true, "", Normal," | sized(DT)" },115 { "--?", true, "", Normal," | sized(DT)" },116 { "!?" , false, "int", Normal,"" },117 { "?<?", false, "signed int", Normal,"" },118 { "?<=?", false, "signed int", Normal,"" },119 { "?>?", false, "signed int", Normal,"" },120 { "?>=?", false, "signed int", Normal,"" },121 { "?==?", false, "signed int", Normal,"" },122 { "?!=?", false, "signed int", Normal,"" },123 { "?=?", true, "", Normal,"" }, // void * LHS, zero_t RHS ???124 // { "*?", false, "&", Normal," | sized(DT)" }, // & ???125 { "*?", false, "&", Normal,"" }, // & ???126 127 { "?-?", false, "ptrdiff_t", Normal," | sized(DT)" },128 { "?-?", false, "", PtrDiff," | sized(DT)" },129 { "?-=?", true, "", PtrDiff," | sized(DT)" },130 131 { "?+?", false, "", CommPtrDiff," | sized(DT)" },132 { "?[?]", false, "&", CommPtrDiff," | sized(DT)" }, // & ???133 { "?+=?" , true, "", PtrDiff," | sized(DT)" },108 { "?++", true, "", Normal, " | sized(DT)" }, 109 { "?--", true, "", Normal, " | sized(DT)" }, 110 { "++?", true, "", Normal, " | sized(DT)" }, 111 { "--?", true, "", Normal, " | sized(DT)" }, 112 { "!?" , false, "int", Normal, "" }, 113 { "?<?", false, "signed int", Normal, "" }, 114 { "?<=?", false, "signed int", Normal, "" }, 115 { "?>?", false, "signed int", Normal, "" }, 116 { "?>=?", false, "signed int", Normal, "" }, 117 { "?==?", false, "signed int", Normal, "" }, 118 { "?!=?", false, "signed int", Normal, "" }, 119 { "?=?", true, "", Normal, "" }, // void * LHS, zero_t RHS ??? 120 // { "*?", false, "&", Normal, " | sized(DT)" }, // & ??? 121 { "*?", false, "&", Normal, "" }, // & ??? 122 123 { "?-?", false, "ptrdiff_t", Normal, " | sized(DT)" }, 124 { "?-?", false, "", PtrDiff, " | sized(DT)" }, 125 { "?-=?", true, "", PtrDiff, " | sized(DT)" }, 126 127 { "?+?", false, "", CommPtrDiff, " | sized(DT)" }, 128 { "?[?]", false, "&", CommPtrDiff, " | sized(DT)" }, // & ??? 129 { "?+=?" , true, "", PtrDiff, " | sized(DT)" }, 134 130 }; 135 131 -
src/BasicTypes-gen.cpp
r522f71c rf886608 45 45 Float64xComplex, 46 46 Float80, 47 Float128, 48 Float128Complex, 49 uuFloat128, 47 50 LongDouble, 48 51 LongDoubleComplex, 49 uuFloat128,50 Float128,51 Float128Complex,52 52 Float128x, 53 53 Float128xComplex, … … 113 113 { DoubleComplex, "DoubleComplex", "DC", "double _Complex", "Cd", Floating, Float64xComplex, -1, -1, 12 }, 114 114 { Float64x, "Float64x", "_FDX", "_Float64x", "DF64x_", Floating, Float80, Float64xComplex, -1, 13 }, 115 { Float64xComplex, "Float64xComplex", "_FDXC", "_Float64x _Complex", "CDF64x_", Floating, LongDoubleComplex, -1, -1, 13 },116 117 { Float80, "Float80", "_F80", "__float80", "Dq", Floating, LongDouble, LongDoubleComplex, -1, 14 },115 { Float64xComplex, "Float64xComplex", "_FDXC", "_Float64x _Complex", "CDF64x_", Floating, Float128Complex, -1, -1, 13 }, 116 117 { Float80, "Float80", "_F80", "__float80", "Dq", Floating, Float128, Float64xComplex, -1, 14 }, 118 118 // __float80 _Complex, no complex counterpart 119 // gcc implements long double as float80 (12 bytes) 120 { LongDouble, "LongDouble", "LD", "long double", "e", Floating, uuFloat128, LongDoubleComplex, -1, 15 }, 121 { LongDoubleComplex, "LongDoubleComplex", "LDC", "long double _Complex", "Ce", Floating, Float128Complex, -1, -1, 15 }, 122 123 { uuFloat128, "uuFloat128", "__FLD", "__float128", "g", Floating, Float128, Float128Complex, -1, 16 }, 119 120 { Float128, "Float128", "_FLD", "_Float128", "DF128_", Floating, uuFloat128, Float128Complex, -1, 15 }, 121 { Float128Complex, "Float128Complex", "_FLDC", "_Float128 _Complex", "CDF128_", Floating, LongDoubleComplex, -1, -1, 15 }, 122 { uuFloat128, "uuFloat128", "__FLD", "__float128", "g", Floating, LongDouble, Float128Complex, -1, 16 }, 124 123 // __float128 _Complex, no complex counterpart 125 { Float128, "Float128", "_FLD", "_Float128", "DF128_", Floating, Float128x, Float128Complex, -1, 17 },126 { Float128Complex, "Float128Complex", "_FLDC", "_Float128 _Complex", "CDF128_", Floating, Float128xComplex, -1, -1, 17 },124 { LongDouble, "LongDouble", "LD", "long double", "e", Floating, Float128x, LongDoubleComplex, -1, 17 }, 125 { LongDoubleComplex, "LongDoubleComplex", "LDC", "long double _Complex", "Ce", Floating, Float128xComplex, -1, -1, 17 }, 127 126 128 127 // may not be supported … … 135 134 static Kind commonTypeMatrix[NUMBER_OF_BASIC_TYPES][NUMBER_OF_BASIC_TYPES]; 136 135 137 // Fangren explain shortest cost algorithm.138 136 void generateCosts( int row ) { 139 137 bool seen[NUMBER_OF_BASIC_TYPES] = { false /*, ... */ }; … … 176 174 177 175 // traverse children 178 // Fangren explain "max"179 176 int i = graph[col].left; 180 177 if ( i == -1 ) continue; // leaf … … 191 188 } // generateCosts 192 189 193 // Fangren explain this routine if you can.194 190 void generateCommonType( int row, int col ) { // row <= col 195 191 if ( costMatrix[row][col] >= 0 ) {
Note:
See TracChangeset
for help on using the changeset viewer.