Changes in src/Parser/ExpressionNode.cc [beec62c:7b1d5ec]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ExpressionNode.cc
rbeec62c r7b1d5ec 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Sep 12 10:00:29201713 // Update Count : 6 7212 // Last Modified On : Mon Sep 11 16:06:42 2017 13 // Update Count : 666 14 14 // 15 15 … … 49 49 // type. 50 50 51 extern const Type::Qualifiers noQualifiers; 51 extern const Type::Qualifiers noQualifiers; // no qualifiers on constants 52 52 53 53 static inline bool checkH( char c ) { return c == 'h' || c == 'H'; } … … 79 79 80 80 bool dec = true, Unsigned = false; // decimal, unsigned constant 81 int size; // 0 => short, 1 => char, 2 => int, 3 => long int, 4 => long long int, 5 => size_t81 int size; // 0 => int, 1 => long, 2 => long long 82 82 unsigned long long int v; // converted integral value 83 83 size_t last = str.length() - 1; // last character of constant … … 163 163 str.erase( last - size, size + 1 ); // remove 'h'/"hh" 164 164 } else if ( checkZ( str[last] ) ) { // suffix 'z' ? 165 size = 5;166 165 str.erase( last, 1 ); // remove 'z' 167 166 } // if … … 169 168 ret = new ConstantExpr( Constant( new BasicType( noQualifiers, kind[Unsigned][size] ), str, v ) ); 170 169 if ( Unsigned && size < 2 ) { // less than int ? 171 // int i = -1uh => 65535 not -1, so cast is necessary for unsigned, which eliminates warnings for large values. 170 // int i = -1uh => 65535 not -1, so cast is necessary for unsigned, which eliminates some warnings for large 171 // values. 172 172 ret = new CastExpr( ret, new BasicType( Type::Qualifiers(), kind[Unsigned][size] ) ); 173 } else if ( size == 5 ) { // explicit cast to size_t174 ret = new CastExpr( ret, new TypeInstType( Type::Qualifiers(), "size_t", false ) );175 173 } // if 176 174 CLEANUP:
Note: See TracChangeset
for help on using the changeset viewer.