From 6eef119a2df45104425835d46ba1f3952cc3eca4 Mon Sep 17 00:00:00 2001 From: ian Date: Wed, 28 Mar 2012 21:33:37 +0000 Subject: [PATCH] compiler: fix crashes. The compiler would crash on: if true || x, y := 1, 2 {} and var s string s = append(s, "hello") Reported in issue 3186. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@185929 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/go/gofrontend/expressions.cc | 2 ++ gcc/go/gofrontend/parse.cc | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 4c493f87665..f2a81de8add 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -7441,6 +7441,8 @@ Builtin_call_expression::check_one_arg() void Builtin_call_expression::do_check_types(Gogo*) { + if (this->is_error_expression()) + return; switch (this->code_) { case BUILTIN_INVALID: diff --git a/gcc/go/gofrontend/parse.cc b/gcc/go/gofrontend/parse.cc index 1a9c153a578..7207db58d0d 100644 --- a/gcc/go/gofrontend/parse.cc +++ b/gcc/go/gofrontend/parse.cc @@ -3971,7 +3971,7 @@ Parse::if_stat() bool saw_simple_stat = false; Expression* cond = NULL; - bool saw_send_stmt; + bool saw_send_stmt = false; if (this->simple_stat_may_start_here()) { cond = this->simple_stat(false, &saw_send_stmt, NULL, NULL); -- 2.11.0