diff options
-rw-r--r-- | gcc/go/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/go/go-gcc.cc | 3 |
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); } |