summaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend/expressions.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/go/gofrontend/expressions.h')
-rw-r--r--gcc/go/gofrontend/expressions.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/expressions.h b/gcc/go/gofrontend/expressions.h
index d96df28bbc1..398709ee386 100644
--- a/gcc/go/gofrontend/expressions.h
+++ b/gcc/go/gofrontend/expressions.h
@@ -1632,7 +1632,7 @@ class Call_expression : public Expression
fn_(fn), args_(args), type_(NULL), results_(NULL), call_(NULL),
call_temp_(NULL), expected_result_count_(0), is_varargs_(is_varargs),
varargs_are_lowered_(false), types_are_determined_(false),
- is_deferred_(false), issued_error_(false)
+ is_deferred_(false), issued_error_(false), is_multi_value_arg_(false)
{ }
// The function to call.
@@ -1703,6 +1703,17 @@ class Call_expression : public Expression
bool
issue_error();
+ // Whether this call returns multiple results that are used as an
+ // multi-valued argument.
+ bool
+ is_multi_value_arg() const
+ { return this->is_multi_value_arg_; }
+
+ // Note this call is used as a multi-valued argument.
+ void
+ set_is_multi_value_arg()
+ { this->is_multi_value_arg_ = true; }
+
protected:
int
do_traverse(Traverse*);
@@ -1806,6 +1817,8 @@ class Call_expression : public Expression
// results and uses. This is to avoid producing multiple errors
// when there are multiple Call_result_expressions.
bool issued_error_;
+ // True if this call is used as an argument that returns multiple results.
+ bool is_multi_value_arg_;
};
// An expression which represents a pointer to a function.