aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend/backend.h
diff options
context:
space:
mode:
authorChris Manghane <cmang@google.com>2014-05-06 19:28:03 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2014-05-06 19:28:03 +0000
commit6f7e0b570ab9ab1c6bbc2cb598284e2e5202e027 (patch)
treed260b1bb70995d642f35a870ceae7f566c5f052a /gcc/go/gofrontend/backend.h
parent3379b71f51c36c499ca5ce4ec877bd70b96a580e (diff)
downloadgcc-6f7e0b570ab9ab1c6bbc2cb598284e2e5202e027.zip
gcc-6f7e0b570ab9ab1c6bbc2cb598284e2e5202e027.tar.gz
gcc-6f7e0b570ab9ab1c6bbc2cb598284e2e5202e027.tar.bz2
compiler: Use backend interface for expressions.
* go-gcc.cc (Gcc_backend::nil_pointer_expression): New method. (Gcc_backend::boolean_constant_expression): New method. (Gcc_backend::zero_expression): Use this->make_expression rather than tree_to_expr. (Gcc_backend::var_expression): Likewise. (Gcc_backend::integer_constant_expression): Likewise. (Gcc_backend::float_constant_expression): Likewise. (Gcc_backend::complex_constant_expression): Likewise. (Gcc_backend::struct_field_expression): Likewise. (tree_to_type, tree_to_expr, tree_to_stat): Remove functions. (tree_to_function, tree_to_block): Remove functions. (type_to_tree, expr_to_tree, stat_to_tree): Remove functions. (block_to_tree, var_to_tree, function_to_tree): Remove functions. From-SVN: r210122
Diffstat (limited to 'gcc/go/gofrontend/backend.h')
-rw-r--r--gcc/go/gofrontend/backend.h23
1 files changed, 8 insertions, 15 deletions
diff --git a/gcc/go/gofrontend/backend.h b/gcc/go/gofrontend/backend.h
index 95f494a..fdcfd28 100644
--- a/gcc/go/gofrontend/backend.h
+++ b/gcc/go/gofrontend/backend.h
@@ -247,6 +247,10 @@ class Backend
virtual Bexpression*
error_expression() = 0;
+ // Create a nil pointer expression.
+ virtual Bexpression*
+ nil_pointer_expression() = 0;
+
// Create a reference to a variable.
virtual Bexpression*
var_expression(Bvariable* var, Location) = 0;
@@ -281,6 +285,10 @@ class Backend
virtual Bexpression*
string_constant_expression(const std::string& val) = 0;
+ // Return an expression for the boolean value VAL.
+ virtual Bexpression*
+ boolean_constant_expression(bool val) = 0;
+
// Return an expression for the real part of BCOMPLEX.
virtual Bexpression*
real_part_expression(Bexpression* bcomplex, Location) = 0;
@@ -687,19 +695,4 @@ class Backend
extern Backend* go_get_backend();
-// FIXME: Temporary helper functions while converting to new backend
-// interface.
-
-extern Btype* tree_to_type(tree);
-extern Bexpression* tree_to_expr(tree);
-extern Bstatement* tree_to_stat(tree);
-extern Bfunction* tree_to_function(tree);
-extern Bblock* tree_to_block(tree);
-extern tree type_to_tree(Btype*);
-extern tree expr_to_tree(Bexpression*);
-extern tree stat_to_tree(Bstatement*);
-extern tree block_to_tree(Bblock*);
-extern tree var_to_tree(Bvariable*);
-extern tree function_to_tree(Bfunction*);
-
#endif // !defined(GO_BACKEND_H)