Changes in src/AST/Expr.cpp [d5631b3:490fb92e]
- File:
-
- 1 edited
-
src/AST/Expr.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Expr.cpp
rd5631b3 r490fb92e 67 67 // --- UntypedExpr 68 68 69 UntypedExpr * UntypedExpr::createDeref( const CodeLocation & loc, Expr * arg ) {69 UntypedExpr * UntypedExpr::createDeref( const CodeLocation & loc, const Expr * arg ) { 70 70 assert( arg ); 71 71 … … 92 92 } 93 93 94 UntypedExpr * UntypedExpr::createAssign( const CodeLocation & loc, Expr * lhs,Expr * rhs ) {94 UntypedExpr * UntypedExpr::createAssign( const CodeLocation & loc, const Expr * lhs, const Expr * rhs ) { 95 95 assert( lhs && rhs ); 96 96 … … 102 102 } 103 103 return ret; 104 }105 106 // --- VariableExpr107 108 VariableExpr::VariableExpr( const CodeLocation & loc )109 : Expr( loc ), var( nullptr ) {}110 111 VariableExpr::VariableExpr( const CodeLocation & loc, const DeclWithType * v )112 : Expr( loc ), var( v ) {113 assert( var );114 assert( var->get_type() );115 result = shallowCopy( var->get_type() );116 }117 118 bool VariableExpr::get_lvalue() const {119 // It isn't always an lvalue, but it is never an rvalue.120 return true;121 }122 123 VariableExpr * VariableExpr::functionPointer(124 const CodeLocation & loc, const FunctionDecl * decl ) {125 // wrap usually-determined result type in a pointer126 VariableExpr * funcExpr = new VariableExpr{ loc, decl };127 funcExpr->result = new PointerType{ funcExpr->result };128 return funcExpr;129 104 } 130 105 … … 263 238 } 264 239 240 // --- VariableExpr 241 242 VariableExpr::VariableExpr( const CodeLocation & loc ) 243 : Expr( loc ), var( nullptr ) {} 244 245 VariableExpr::VariableExpr( const CodeLocation & loc, const DeclWithType * v ) 246 : Expr( loc ), var( v ) { 247 assert( var ); 248 assert( var->get_type() ); 249 result = shallowCopy( var->get_type() ); 250 } 251 252 bool VariableExpr::get_lvalue() const { 253 // It isn't always an lvalue, but it is never an rvalue. 254 return true; 255 } 256 257 VariableExpr * VariableExpr::functionPointer( 258 const CodeLocation & loc, const FunctionDecl * decl ) { 259 // wrap usually-determined result type in a pointer 260 VariableExpr * funcExpr = new VariableExpr{ loc, decl }; 261 funcExpr->result = new PointerType{ funcExpr->result }; 262 return funcExpr; 263 } 264 265 265 // --- ConstantExpr 266 266
Note:
See TracChangeset
for help on using the changeset viewer.