aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/go/ChangeLog5
-rw-r--r--gcc/go/go-gcc.cc3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog
index 7292b2b..b6d1e9f 100644
--- a/gcc/go/ChangeLog
+++ b/gcc/go/ChangeLog
@@ -1,3 +1,8 @@
+2016-10-06 Chris Manghane <cmang@google.com>
+
+ * go-gcc.cc (Gcc_backend::stack_allocation_expression): Clear the
+ returned memory.
+
2016-09-27 Than McIntosh <thanm@google.com>
* go-linemap.cc (Gcc_linemap::to_string): New method.
diff --git a/gcc/go/go-gcc.cc b/gcc/go/go-gcc.cc
index 57c2bee..b3701bf 100644
--- a/gcc/go/go-gcc.cc
+++ b/gcc/go/go-gcc.cc
@@ -2048,6 +2048,9 @@ 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);
}