Changes in src/SynTree/Expression.cc [b4f8808:849720f]
- File:
-
- 1 edited
-
src/SynTree/Expression.cc (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.cc
rb4f8808 r849720f 115 115 assert( var->get_type() ); 116 116 Type * type = var->get_type()->clone(); 117 type->set_lvalue( true ); 117 118 118 119 // xxx - doesn't quite work yet - get different alternatives with the same cost … … 124 125 // long long int value; 125 126 // if ( decl->valueOf( var, value ) ) { 126 // type->set_lvalue( false ); // Would have to move to get_lvalue.127 // type->set_lvalue( false ); 127 128 // } 128 129 // } … … 383 384 sub.apply( res ); 384 385 result = res; 386 result->set_lvalue( true ); 385 387 result->get_qualifiers() |= aggregate->result->get_qualifiers(); 386 388 } … … 431 433 // if references are still allowed in the AST, dereference returns a reference 432 434 ret->set_result( new ReferenceType( Type::Qualifiers(), ret->get_result() ) ); 435 } else { 436 // references have been removed, in which case dereference returns an lvalue of the base type. 437 ret->result->set_lvalue( true ); 433 438 } 434 439 } … … 586 591 CompoundLiteralExpr::CompoundLiteralExpr( Type * type, Initializer * initializer ) : initializer( initializer ) { 587 592 assert( type && initializer ); 593 type->set_lvalue( true ); 588 594 set_result( type ); 589 595 }
Note:
See TracChangeset
for help on using the changeset viewer.