+2018-06-08 Cherry Zhang <cherryyz@google.com>
+
+ * go-gcc.cc (class Gcc_backend): Remove
+ stack_allocation_expression method.
+
2018-02-03 Ian Lance Taylor <iant@golang.org>
* go-gcc.cc (Gcc_backend::fill_in_struct): Mark struct types as
const std::vector<Bexpression*>& args,
Bexpression* static_chain, Location);
- Bexpression*
- stack_allocation_expression(int64_t size, Location);
-
// Statements.
Bstatement*
return this->make_expression(ret);
}
-// Return an expression that allocates SIZE bytes on the stack.
-
-Bexpression*
-Gcc_backend::stack_allocation_expression(int64_t size, Location location)
-{
- tree alloca = builtin_decl_explicit(BUILT_IN_ALLOCA);
- tree size_tree = build_int_cst(integer_type_node, size);
- tree ret = build_call_expr_loc(location.gcc_location(), alloca, 1, size_tree);
- tree memset = builtin_decl_explicit(BUILT_IN_MEMSET);
- ret = build_call_expr_loc(location.gcc_location(), memset, 3,
- ret, integer_zero_node, size_tree);
- return this->make_expression(ret);
-}
-
// An expression as a statement.
Bstatement*
const std::vector<Bexpression*>& args,
Bexpression* static_chain, Location) = 0;
- // Return an expression that allocates SIZE bytes on the stack.
- virtual Bexpression*
- stack_allocation_expression(int64_t size, Location) = 0;
-
// Statements.
// Create an error statement. This is used for cases which should