Changes in src/AST/Convert.cpp [558d13b:aaeacf4]
- File:
-
- 1 edited
-
src/AST/Convert.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Convert.cpp
r558d13b raaeacf4 579 579 tgtInferParams[srcParam.first] = ParamEntry( 580 580 srcParam.second.decl, 581 get<Declaration>().accept1(srcParam.second.declptr), 581 582 get<Type>().accept1(srcParam.second.actualType), 582 583 get<Type>().accept1(srcParam.second.formalType), … … 2004 2005 tgt[old.first] = ast::ParamEntry( 2005 2006 old.second.decl, 2007 getAccept1<ast::Decl>(old.second.declptr), 2006 2008 getAccept1<ast::Type>(old.second.actualType), 2007 2009 getAccept1<ast::Type>(old.second.formalType), … … 2191 2193 2192 2194 int isStringlikeConstantType(const Type *t) { 2193 const Type *referentType = nullptr;2194 2195 if ( const ArrayType * aty = dynamic_cast< const ArrayType * >( t ) ) { 2195 referentType = aty->base; 2196 } else if ( const PointerType * pty = dynamic_cast< const PointerType * >( t ) ) { 2197 referentType = pty->base; 2198 } 2199 if (referentType) { 2200 if ( const BasicType * bty = dynamic_cast< const BasicType * >( referentType ) ) { 2196 if ( const BasicType * bty = dynamic_cast< const BasicType * >( aty->base ) ) { 2201 2197 if ( bty->kind == BasicType::Kind::Char ) { 2202 2198 return true; … … 2209 2205 virtual void visit( ConstantExpr * old ) override final { 2210 2206 ast::ConstantExpr *rslt = nullptr; 2211 if (isStringlikeConstantType(old->result)) { 2212 rslt = new ast::ConstantExpr( 2213 old->location, 2214 GET_ACCEPT_1(result, Type), 2215 old->constant.get_value(), 2216 0, 2217 ast::ConstantExpr::Kind::String 2218 ); 2219 } else if (isIntlikeConstantType(old->result)) { 2207 if (isIntlikeConstantType(old->result)) { 2220 2208 rslt = new ast::ConstantExpr( 2221 2209 old->location, … … 2231 2219 old->constant.get_value(), 2232 2220 (double) old->constant.get_dval() 2221 ); 2222 } else if (isStringlikeConstantType(old->result)) { 2223 rslt = new ast::ConstantExpr( 2224 old->location, 2225 GET_ACCEPT_1(result, Type), 2226 old->constant.get_value(), 2227 0, 2228 ast::ConstantExpr::Kind::String 2233 2229 ); 2234 2230 }
Note:
See TracChangeset
for help on using the changeset viewer.