source: translator/SynTree/AddressExpr.cc @ 48e99f2

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newstringwith_gc
Last change on this file since 48e99f2 was 51b7345, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

initial commit

  • Property mode set to 100644
File size: 851 bytes
RevLine 
[51b7345]1/*
2 * This file is part of the Cforall project
3 *
4 * $Id: AddressExpr.cc,v 1.6 2005/08/29 20:59:25 rcbilson Exp $
5 *
6 */
7
8#include "Expression.h"
9#include "Type.h"
10#include "utility.h"
11
12
13AddressExpr::AddressExpr( Expression *arg, Expression *_aname )
14    : Expression( _aname ), arg( arg )
15{
16    for( std::list< Type* >::const_iterator i = arg->get_results().begin(); i != arg->get_results().end(); ++i ) {
17        get_results().push_back( new PointerType( Type::Qualifiers(), (*i)->clone() ) );
18    }
19}
20
21AddressExpr::AddressExpr( const AddressExpr &other )
22    : Expression( other ), arg( maybeClone( other.arg ) )
23{
24}
25
26AddressExpr::~AddressExpr()
27{
28    delete arg;
29}
30
31void 
32AddressExpr::print( std::ostream &os, int indent ) const
33{
34    os << std::string( indent, ' ' ) << "Address of:" << std::endl;
35    if( arg ) {
36        arg->print( os, indent+2 );
37    }
38}
39
40
Note: See TracBrowser for help on using the repository browser.