Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/CommaExpr.cc

    rb4f8808 r14388c1  
    2323CommaExpr::CommaExpr( Expression *arg1, Expression *arg2 )
    2424                : Expression(), arg1( arg1 ), arg2( arg2 ) {
     25        // xxx - result of a comma expression is never an lvalue, so should set lvalue
     26        // to false on all result types. Actually doing this causes some strange things
     27        // to happen in later passes (particularly, Specialize, Lvalue, and Box). This needs to be looked into.
    2528        set_result( maybeClone( arg2->get_result() ) );
     29        // get_type->set_isLvalue( false );
    2630}
    2731
     
    3640
    3741bool CommaExpr::get_lvalue() const {
    38         // This is wrong by C, but the current implementation uses it.
    39         // (ex: Specialize, Lvalue and Box)
    40         return arg2->get_lvalue();
     42        // xxx - as above, shouldn't be an lvalue but that information is used anyways.
     43        return result->get_lvalue();
    4144}
    4245
Note: See TracChangeset for help on using the changeset viewer.