aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend/expressions.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2011-04-05 05:57:39 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2011-04-05 05:57:39 +0000
commitd56e667993d46456e38c70d7e36c9be3c4dbf37f (patch)
tree577d44ef128d82982e60ea0b47f375eebb0187b5 /gcc/go/gofrontend/expressions.cc
parent566475c80091b451af0513f2144d853b702eb73b (diff)
downloadgcc-d56e667993d46456e38c70d7e36c9be3c4dbf37f.zip
gcc-d56e667993d46456e38c70d7e36c9be3c4dbf37f.tar.gz
gcc-d56e667993d46456e38c70d7e36c9be3c4dbf37f.tar.bz2
Use backend interface for labels and goto statements.
* go-gcc.c (class Blabel): Define. (Gcc_backend::make_expression): New function. (get_identifier_from_string): New function. (Gcc_backend::label): New function. (Gcc_backend::label_definition_statement): New function. (Gcc_backend::goto_statement): New function. (Gcc_backend::label_address): New function. (expression_to_tree): New function. * Make-lang.in (go/expressions.o): Depend on go/gofrontend/backend.h. (go/gogo.o): Likewise. From-SVN: r171968
Diffstat (limited to 'gcc/go/gofrontend/expressions.cc')
-rw-r--r--gcc/go/gofrontend/expressions.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index a0cfcfc..afd2191 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -33,6 +33,7 @@ extern "C"
#include "import.h"
#include "statements.h"
#include "lex.h"
+#include "backend.h"
#include "expressions.h"
// Class Expression.
@@ -12595,8 +12596,11 @@ class Label_addr_expression : public Expression
{ return new Label_addr_expression(this->label_, this->location()); }
tree
- do_get_tree(Translate_context*)
- { return this->label_->get_addr(this->location()); }
+ do_get_tree(Translate_context* context)
+ {
+ return expression_to_tree(this->label_->get_addr(context,
+ this->location()));
+ }
private:
// The label whose address we are taking.