Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Expression.h

    re612146c rea6332d  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Sep  3 19:23:46 2017
    13 // Update Count     : 48
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Fri Aug  8 11:54:00 2017
     13// Update Count     : 44
    1414//
    15 
    1615#pragma once
    1716
     
    2524#include "Constant.h"             // for Constant
    2625#include "Initializer.h"          // for Designation (ptr only), Initializer
    27 #include "Label.h"                // for Label
    2826#include "Mutator.h"              // for Mutator
    2927#include "SynTree.h"              // for UniqueId
     
    175173};
    176174
    177 // GCC &&label
    178 // https://gcc.gnu.org/onlinedocs/gcc-3.4.2/gcc/Labels-as-Values.html
     175// xxx - this doesn't appear to actually be hooked in anywhere. We should use this instead of the "&&"" UntypedExpr hack
    179176class LabelAddressExpr : public Expression {
    180177  public:
    181         Label arg;
    182 
    183         LabelAddressExpr( const Label &arg );
     178        Expression * arg;
     179
     180        LabelAddressExpr( Expression * arg );
    184181        LabelAddressExpr( const LabelAddressExpr & other );
    185182        virtual ~LabelAddressExpr();
     183
     184        Expression * get_arg() const { return arg; }
     185        void set_arg(Expression * newValue ) { arg = newValue; }
    186186
    187187        virtual LabelAddressExpr * clone() const { return new LabelAddressExpr( * this ); }
     
    283283        DeclarationWithType * get_var() const { return var; }
    284284        void set_var( DeclarationWithType * newValue ) { var = newValue; }
    285 
    286         static VariableExpr * functionPointer( FunctionDecl * decl );
    287285
    288286        virtual VariableExpr * clone() const { return new VariableExpr( * this ); }
     
    540538  public:
    541539        Expression * inout;
    542         Expression * constraint;
     540        ConstantExpr * constraint;
    543541        Expression * operand;
    544542
    545         AsmExpr( Expression * inout, Expression * constraint, Expression * operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}
     543        AsmExpr( Expression * inout, ConstantExpr * constraint, Expression * operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}
    546544        AsmExpr( const AsmExpr & other );
    547545        virtual ~AsmExpr() { delete inout; delete constraint; delete operand; };
     
    550548        void set_inout( Expression * newValue ) { inout = newValue; }
    551549
    552         Expression * get_constraint() const { return constraint; }
    553         void set_constraint( Expression * newValue ) { constraint = newValue; }
     550        ConstantExpr * get_constraint() const { return constraint; }
     551        void set_constraint( ConstantExpr * newValue ) { constraint = newValue; }
    554552
    555553        Expression * get_operand() const { return operand; }
Note: See TracChangeset for help on using the changeset viewer.