diff options
author | Ian Lance Taylor <iant@google.com> | 2011-04-05 05:57:39 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-04-05 05:57:39 +0000 |
commit | d56e667993d46456e38c70d7e36c9be3c4dbf37f (patch) | |
tree | 577d44ef128d82982e60ea0b47f375eebb0187b5 /gcc/go/gofrontend/expressions.cc | |
parent | 566475c80091b451af0513f2144d853b702eb73b (diff) | |
download | gcc-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.cc | 8 |
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. |