diff options
author | Russ Cox <rsc@golang.org> | 2009-07-27 16:17:09 -0700 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-07-27 16:17:09 -0700 |
commit | 4dd3e6e22f4a0cdbd0ca115dbcca58ed30a00232 (patch) | |
tree | fc4acd47016ebe1e2a1e02c63fbdc615caa16586 /src | |
parent | 6c393ada8aacd81efc1a01d8c8cbc8b4bad32c85 (diff) | |
download | golang-4dd3e6e22f4a0cdbd0ca115dbcca58ed30a00232.tar.gz |
print(1<<x)
R=ken
OCL=32252
CL=32252
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd/gc/const.c | 2 | ||||
-rw-r--r-- | src/cmd/gc/walk.c | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/cmd/gc/const.c b/src/cmd/gc/const.c index cc58a2c17..73a23bf83 100644 --- a/src/cmd/gc/const.c +++ b/src/cmd/gc/const.c @@ -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; } diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index 31db1e7b4..2402ef3b6 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -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; |