Changeset 3f3bfe5a for src/AST/Expr.cpp
- Timestamp:
- Oct 11, 2019, 2:23:30 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 396b830
- Parents:
- cf32116 (diff), 70b4ea20 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Expr.cpp
rcf32116 r3f3bfe5a 10 10 // Created On : Wed May 15 17:00:00 2019 11 11 // Last Modified By : Andrew Beach 12 // Created On : Thr Jun 26 12:12:00 201913 // Update Count : 312 // Created On : Fri Oct 4 15:34:00 2019 13 // Update Count : 4 14 14 // 15 15 … … 82 82 // base type 83 83 ret->result = base; 84 add_qualifiers( ret->result, CV::Lvalue );85 84 } 86 85 } … … 131 130 // lvalue, retains all levels of reference, and gains a pointer inside the references 132 131 Type * res = addrType( arg->result ); 133 res->set_lvalue( false ); // result of & is never an lvalue134 132 result = res; 135 133 } else { … … 138 136 dynamic_cast< const ReferenceType * >( arg->result.get() ) ) { 139 137 Type * res = addrType( refType->base ); 140 res->set_lvalue( false ); // result of & is never an lvalue141 138 result = res; 142 139 } else { … … 230 227 // substitute aggregate generic parameters into member type 231 228 genericSubstitution( aggregate->result ).apply( result ); 232 // ensure lvalue andappropriate restrictions from aggregate type233 add_qualifiers( result, aggregate->result->qualifiers | CV::Lvalue);229 // ensure appropriate restrictions from aggregate type 230 add_qualifiers( result, aggregate->result->qualifiers ); 234 231 } 235 232 … … 257 254 assert( var ); 258 255 assert( var->get_type() ); 259 auto r = shallowCopy( var->get_type() ); 260 r->qualifiers |= CV::Lvalue; 261 result = r; 256 result = shallowCopy( var->get_type() ); 262 257 } 263 258 … … 376 371 assert( t && i ); 377 372 result = t; 378 add_qualifiers( result, CV::Lvalue );379 373 } 380 374 … … 397 391 // like MemberExpr, TupleIndexExpr is always an lvalue 398 392 result = type->types[ index ]; 399 add_qualifiers( result, CV::Lvalue );400 393 } 401 394
Note: See TracChangeset
for help on using the changeset viewer.