diff options
Diffstat (limited to 'gcc/go/gofrontend/expressions.h')
-rw-r--r-- | gcc/go/gofrontend/expressions.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/expressions.h b/gcc/go/gofrontend/expressions.h index 0ce6f22..77153db 100644 --- a/gcc/go/gofrontend/expressions.h +++ b/gcc/go/gofrontend/expressions.h @@ -103,6 +103,7 @@ class Expression EXPRESSION_HEAP, EXPRESSION_RECEIVE, EXPRESSION_TYPE_DESCRIPTOR, + EXPRESSION_GC_SYMBOL, EXPRESSION_TYPE_INFO, EXPRESSION_SLICE_INFO, EXPRESSION_SLICE_VALUE, @@ -349,6 +350,11 @@ class Expression static Expression* make_type_descriptor(Type* type, Location); + // Make an expression which evaluates to the address of the gc + // symbol for TYPE. + static Expression* + make_gc_symbol(Type* type); + // Make an expression which evaluates to some characteristic of a // type. These are only used for type descriptors, so there is no // location parameter. @@ -1513,6 +1519,10 @@ class Binary_expression : public Expression { return this->left_->is_constant() && this->right_->is_constant(); } bool + do_is_immutable() const + { return this->left_->is_immutable() && this->right_->is_immutable(); } + + bool do_numeric_constant_value(Numeric_constant*) const; bool |