summaryrefslogtreecommitdiff
path: root/src/cmd/cc
diff options
context:
space:
mode:
authorKen Thompson <ken@golang.org>2010-02-09 17:26:04 -0800
committerKen Thompson <ken@golang.org>2010-02-09 17:26:04 -0800
commitb07eb5f7acdf58ef956cf93dc0b3d73093eea738 (patch)
tree3f2e56305e857157ad5d97af7e4d569152e92ce6 /src/cmd/cc
parent60920f0e461ceceaf9be7402605883ac425cb061 (diff)
downloadgolang-b07eb5f7acdf58ef956cf93dc0b3d73093eea738.tar.gz
bug fix in 6c/8c/5c mis-aligned
function arguments. R=rsc CC=golang-dev http://codereview.appspot.com/206054
Diffstat (limited to 'src/cmd/cc')
-rw-r--r--src/cmd/cc/com.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/cmd/cc/com.c b/src/cmd/cc/com.c
index af2509c5f..5cbe8b77c 100644
--- a/src/cmd/cc/com.c
+++ b/src/cmd/cc/com.c
@@ -801,7 +801,19 @@ tcoma(Node *l, Node *n, Type *t, int f)
n->type, t, l);
return 1;
}
- switch(t->etype) {
+// switch(t->etype) {
+// case TCHAR:
+// case TSHORT:
+// t = types[TINT];
+// break;
+//
+// case TUCHAR:
+// case TUSHORT:
+// t = types[TUINT];
+// break;
+// }
+ } else {
+ switch(n->type->etype) {
case TCHAR:
case TSHORT:
t = types[TINT];
@@ -811,23 +823,12 @@ tcoma(Node *l, Node *n, Type *t, int f)
case TUSHORT:
t = types[TUINT];
break;
- }
- } else
- switch(n->type->etype)
- {
- case TCHAR:
- case TSHORT:
- t = types[TINT];
- break;
- case TUCHAR:
- case TUSHORT:
- t = types[TUINT];
- break;
-
- case TFLOAT:
- t = types[TDOUBLE];
+ case TFLOAT:
+ t = types[TDOUBLE];
+ }
}
+
if(t != T && !sametype(t, n->type)) {
n1 = new1(OXXX, Z, Z);
*n1 = *n;