1
0
mirror of https://github.com/golang/go synced 2024-11-22 00:54:43 -07:00

cmd/gc: add missing case for OCOM in defaultlit()

Fixes #3765.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6349064
This commit is contained in:
Shenghou Ma 2012-07-02 09:33:22 +08:00
parent 91e56e6486
commit a732cbb593
2 changed files with 16 additions and 1 deletions

View File

@ -1012,12 +1012,13 @@ defaultlit(Node **np, Type *t)
} }
n->type = t; n->type = t;
return; return;
case OCOM:
case ONOT: case ONOT:
defaultlit(&n->left, t); defaultlit(&n->left, t);
n->type = n->left->type; n->type = n->left->type;
return; return;
default: default:
if(n->left == N) { if(n->left == N || n->right == N) {
dump("defaultlit", n); dump("defaultlit", n);
fatal("defaultlit"); fatal("defaultlit");
} }

14
test/fixedbugs/bug445.go Normal file
View File

@ -0,0 +1,14 @@
// compile
// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Issue 3765
package main
func f(x uint) uint {
m := ^(1 << x)
return uint(m)
}