summaryrefslogtreecommitdiff
path: root/src/cmd/gc/walk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/gc/walk.c')
-rw-r--r--src/cmd/gc/walk.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c
index 587119c96..211efaec9 100644
--- a/src/cmd/gc/walk.c
+++ b/src/cmd/gc/walk.c
@@ -180,8 +180,11 @@ walkdef(Node *n)
goto ret;
}
t = n->type;
- if(t != T)
+ if(t != T) {
convlit(&e, t);
+ if(!isint[t->etype] && !isfloat[t->etype] && t->etype != TSTRING)
+ yyerror("invalid constant type %T", t);
+ }
n->val = e->val;
n->type = e->type;
break;