From 8b06e1880ef8583a2aca30f0f5d414061b7da603 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 4 Nov 2014 17:49:01 +0000 Subject: [PATCH] compiler: Logical operators should yield untyped bool for untyped operands. Fixes issue 6671 for gccgo. From-SVN: r217094 --- gcc/go/gofrontend/expressions.cc | 9 --------- gcc/testsuite/go.test/test/fixedbugs/issue3924.go | 6 +++--- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 6f2b07ca97a..712464639a5 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -5314,15 +5314,6 @@ Binary_expression::do_determine_type(const Type_context* context) subcontext.type = NULL; } - if (this->op_ == OPERATOR_ANDAND || this->op_ == OPERATOR_OROR) - { - // For a logical operation, the context does not determine the - // types of the operands. The operands must be some boolean - // type but if the context has a boolean type they do not - // inherit it. See http://golang.org/issue/3924. - subcontext.type = NULL; - } - // Set the context for the left hand operand. if (is_shift_op) { diff --git a/gcc/testsuite/go.test/test/fixedbugs/issue3924.go b/gcc/testsuite/go.test/test/fixedbugs/issue3924.go index d4739b21c90..eb7a665bdc1 100644 --- a/gcc/testsuite/go.test/test/fixedbugs/issue3924.go +++ b/gcc/testsuite/go.test/test/fixedbugs/issue3924.go @@ -1,4 +1,4 @@ -// errorcheck +// compile // Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style @@ -9,5 +9,5 @@ package foo type mybool bool var x, y = 1, 2 -var _ mybool = x < y && x < y // ERROR "cannot use" -var _ mybool = x < y || x < y // ERROR "cannot use" +var _ mybool = x < y && x < y +var _ mybool = x < y || x < y -- 2.30.2