Changeset bf4b4cf for src/SynTree/Expression.cc
- Timestamp:
- Oct 2, 2017, 4:53:32 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- d29fa5f
- Parents:
- 50377a4
- git-author:
- Rob Schluntz <rschlunt@…> (10/02/17 16:53:28)
- git-committer:
- Rob Schluntz <rschlunt@…> (10/02/17 16:53:32)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.cc
r50377a4 rbf4b4cf 33 33 #include "GenPoly/Lvalue.h" 34 34 35 Expression::Expression( Expression *_aname ) : result( 0 ), env( 0 ), argName( _aname) {}36 37 Expression::Expression( const Expression &other ) : BaseSyntaxNode( other ), result( maybeClone( other.result ) ), env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ),extension( other.extension ) {35 Expression::Expression() : result( 0 ), env( 0 ) {} 36 37 Expression::Expression( const Expression &other ) : BaseSyntaxNode( other ), result( maybeClone( other.result ) ), env( maybeClone( other.env ) ), extension( other.extension ) { 38 38 } 39 39 40 40 Expression::~Expression() { 41 41 delete env; 42 delete argName; // xxx -- there's a problem in cloning ConstantExpr I still don't know how to fix43 42 delete result; 44 43 } … … 55 54 } 56 55 57 ConstantExpr::ConstantExpr( Constant _c , Expression *_aname ) : Expression( _aname), constant( _c ) {56 ConstantExpr::ConstantExpr( Constant _c ) : Expression(), constant( _c ) { 58 57 set_result( constant.get_type()->clone() ); 59 58 } … … 70 69 } 71 70 72 VariableExpr::VariableExpr( DeclarationWithType *_var , Expression *_aname ) : Expression( _aname), var( _var ) {71 VariableExpr::VariableExpr( DeclarationWithType *_var ) : Expression(), var( _var ) { 73 72 assert( var ); 74 73 assert( var->get_type() ); … … 97 96 } 98 97 99 SizeofExpr::SizeofExpr( Expression *expr_ , Expression *_aname) :100 Expression( _aname), expr(expr_), type(0), isType(false) {98 SizeofExpr::SizeofExpr( Expression *expr_ ) : 99 Expression(), expr(expr_), type(0), isType(false) { 101 100 set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) ); 102 101 } 103 102 104 SizeofExpr::SizeofExpr( Type *type_ , Expression *_aname) :105 Expression( _aname), expr(0), type(type_), isType(true) {103 SizeofExpr::SizeofExpr( Type *type_ ) : 104 Expression(), expr(0), type(type_), isType(true) { 106 105 set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) ); 107 106 } … … 123 122 } 124 123 125 AlignofExpr::AlignofExpr( Expression *expr_ , Expression *_aname) :126 Expression( _aname), expr(expr_), type(0), isType(false) {124 AlignofExpr::AlignofExpr( Expression *expr_ ) : 125 Expression(), expr(expr_), type(0), isType(false) { 127 126 set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) ); 128 127 } 129 128 130 AlignofExpr::AlignofExpr( Type *type_ , Expression *_aname) :131 Expression( _aname), expr(0), type(type_), isType(true) {129 AlignofExpr::AlignofExpr( Type *type_ ) : 130 Expression(), expr(0), type(type_), isType(true) { 132 131 set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) ); 133 132 } … … 149 148 } 150 149 151 UntypedOffsetofExpr::UntypedOffsetofExpr( Type *type, const std::string &member , Expression *_aname) :152 Expression( _aname), type(type), member(member) {150 UntypedOffsetofExpr::UntypedOffsetofExpr( Type *type, const std::string &member ) : 151 Expression(), type(type), member(member) { 153 152 assert( type ); 154 153 set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) ); … … 168 167 } 169 168 170 OffsetofExpr::OffsetofExpr( Type *type, DeclarationWithType *member , Expression *_aname) :171 Expression( _aname), type(type), member(member) {169 OffsetofExpr::OffsetofExpr( Type *type, DeclarationWithType *member ) : 170 Expression(), type(type), member(member) { 172 171 assert( member ); 173 172 assert( type ); … … 188 187 } 189 188 190 OffsetPackExpr::OffsetPackExpr( StructInstType *type , Expression *aname_ ) : Expression( aname_), type( type ) {189 OffsetPackExpr::OffsetPackExpr( StructInstType *type ) : Expression(), type( type ) { 191 190 assert( type ); 192 191 set_result( new ArrayType( Type::Qualifiers(), new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), 0, false, false ) ); … … 203 202 } 204 203 205 AttrExpr::AttrExpr( Expression *attr, Expression *expr_ , Expression *_aname) :206 Expression( _aname), attr( attr ), expr(expr_), type(0), isType(false) {207 } 208 209 AttrExpr::AttrExpr( Expression *attr, Type *type_ , Expression *_aname) :210 Expression( _aname), attr( attr ), expr(0), type(type_), isType(true) {204 AttrExpr::AttrExpr( Expression *attr, Expression *expr_ ) : 205 Expression(), attr( attr ), expr(expr_), type(0), isType(false) { 206 } 207 208 AttrExpr::AttrExpr( Expression *attr, Type *type_ ) : 209 Expression(), attr( attr ), expr(0), type(type_), isType(true) { 211 210 } 212 211 … … 232 231 } 233 232 234 CastExpr::CastExpr( Expression *arg_, Type *toType , Expression *_aname ) : Expression( _aname), arg(arg_) {233 CastExpr::CastExpr( Expression *arg_, Type *toType ) : Expression(), arg(arg_) { 235 234 set_result(toType); 236 235 } 237 236 238 CastExpr::CastExpr( Expression *arg_ , Expression *_aname ) : Expression( _aname), arg(arg_) {237 CastExpr::CastExpr( Expression *arg_ ) : Expression(), arg(arg_) { 239 238 set_result( new VoidType( Type::Qualifiers() ) ); 240 239 } … … 284 283 } 285 284 286 UntypedMemberExpr::UntypedMemberExpr( Expression * member, Expression *aggregate , Expression *_aname) :287 Expression( _aname), member(member), aggregate(aggregate) {285 UntypedMemberExpr::UntypedMemberExpr( Expression * member, Expression *aggregate ) : 286 Expression(), member(member), aggregate(aggregate) { 288 287 assert( aggregate ); 289 288 } … … 321 320 322 321 323 MemberExpr::MemberExpr( DeclarationWithType *member, Expression *aggregate , Expression *_aname) :324 Expression( _aname), member(member), aggregate(aggregate) {322 MemberExpr::MemberExpr( DeclarationWithType *member, Expression *aggregate ) : 323 Expression(), member(member), aggregate(aggregate) { 325 324 assert( member ); 326 325 assert( aggregate ); … … 351 350 } 352 351 353 UntypedExpr::UntypedExpr( Expression * _function, const std::list<Expression *> &_args, Expression *_aname) :354 Expression( _aname ), function(_function), args(_args) {}352 UntypedExpr::UntypedExpr( Expression *function, const std::list<Expression *> &args ) : 353 Expression(), function(function), args(args) {} 355 354 356 355 UntypedExpr::UntypedExpr( const UntypedExpr &other ) : … … 402 401 } 403 402 404 NameExpr::NameExpr( std::string name , Expression *_aname ) : Expression( _aname), name(name) {403 NameExpr::NameExpr( std::string name ) : Expression(), name(name) { 405 404 assertf(name != "0", "Zero is not a valid name"); 406 405 assertf(name != "1", "One is not a valid name"); … … 417 416 } 418 417 419 LogicalExpr::LogicalExpr( Expression *arg1_, Expression *arg2_, bool andp , Expression *_aname) :420 Expression( _aname), arg1(arg1_), arg2(arg2_), isAnd(andp) {418 LogicalExpr::LogicalExpr( Expression *arg1_, Expression *arg2_, bool andp ) : 419 Expression(), arg1(arg1_), arg2(arg2_), isAnd(andp) { 421 420 set_result( new BasicType( Type::Qualifiers(), BasicType::SignedInt ) ); 422 421 } … … 439 438 } 440 439 441 ConditionalExpr::ConditionalExpr( Expression * arg1, Expression * arg2, Expression * arg3 , Expression *_aname) :442 Expression( _aname), arg1(arg1), arg2(arg2), arg3(arg3) {}440 ConditionalExpr::ConditionalExpr( Expression * arg1, Expression * arg2, Expression * arg3 ) : 441 Expression(), arg1(arg1), arg2(arg2), arg3(arg3) {} 443 442 444 443 ConditionalExpr::ConditionalExpr( const ConditionalExpr &other ) :
Note: See TracChangeset
for help on using the changeset viewer.