print(1<<x)

R=ken
OCL=32252
CL=32252
This commit is contained in:
Russ Cox 2009-07-27 16:17:09 -07:00
parent 30228a3bc6
commit 059bbdd340
3 changed files with 17 additions and 4 deletions

View file

@ -94,7 +94,7 @@ convlit1(Node **np, Type *t, int explicit)
break;
case OLSH:
case ORSH:
convlit(&n->left, t);
convlit1(&n->left, t, explicit);
n->type = n->left->type;
return;
}

View file

@ -858,7 +858,8 @@ reswitch:
defaultlit(&n->right, types[TUINT]);
if(n->left->type == T || n->right->type == T)
goto ret;
if(issigned[n->right->type->etype] || !isint[n->right->type->etype])
et = n->right->type->etype;
if(issigned[et] || !isint[et])
goto badt;
// check of n->left->type happens in second switch.
break;
@ -2500,14 +2501,14 @@ prcompat(NodeList *all, int fmt, int dopanic)
switch(n->val.ctype) {
case CTINT:
defaultlit(&n, types[TINT64]);
l->n = n;
break;
case CTFLT:
defaultlit(&n, types[TFLOAT64]);
l->n = n;
break;
}
}
defaultlit(&n, nil);
l->n = n;
if(n->type == T)
continue;

12
test/fixedbugs/bug174.go Normal file
View file

@ -0,0 +1,12 @@
// $G $D/$F.go || echo BUG: bug174
// Copyright 2009 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.
package main
func main() {
var x uint;
println(1<<x);
}