mirror of
https://github.com/golang/go
synced 2024-11-18 21:54:49 -07:00
minor bugs
R=r OCL=14702 CL=14702
This commit is contained in:
parent
33ee52727f
commit
a7f1af81bd
@ -102,10 +102,10 @@ dowidth(Type *t)
|
|||||||
{
|
{
|
||||||
uint32 w;
|
uint32 w;
|
||||||
|
|
||||||
w = 0;
|
|
||||||
if(t == T)
|
if(t == T)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
w = 0;
|
||||||
switch(t->etype) {
|
switch(t->etype) {
|
||||||
default:
|
default:
|
||||||
fatal("dowidth: unknown type: %E", t->etype);
|
fatal("dowidth: unknown type: %E", t->etype);
|
||||||
@ -123,13 +123,13 @@ dowidth(Type *t)
|
|||||||
case TINT32:
|
case TINT32:
|
||||||
case TUINT32:
|
case TUINT32:
|
||||||
case TFLOAT32:
|
case TFLOAT32:
|
||||||
case TPTR32:
|
case TPTR32: // note lack of recursion
|
||||||
w = 4;
|
w = 4;
|
||||||
break;
|
break;
|
||||||
case TINT64:
|
case TINT64:
|
||||||
case TUINT64:
|
case TUINT64:
|
||||||
case TFLOAT64:
|
case TFLOAT64:
|
||||||
case TPTR64:
|
case TPTR64: // note lack of recursion
|
||||||
w = 8;
|
w = 8;
|
||||||
break;
|
break;
|
||||||
case TFLOAT80:
|
case TFLOAT80:
|
||||||
@ -158,11 +158,8 @@ dowidth(Type *t)
|
|||||||
w = wptr;
|
w = wptr;
|
||||||
break;
|
break;
|
||||||
case TARRAY:
|
case TARRAY:
|
||||||
if(t->bound < 0)
|
|
||||||
fatal("width of a dynamic array");
|
|
||||||
if(t->type == T)
|
|
||||||
break;
|
|
||||||
dowidth(t->type);
|
dowidth(t->type);
|
||||||
|
if(t->bound >= 0 && t->type != T)
|
||||||
w = t->bound * t->type->width;
|
w = t->bound * t->type->width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -943,6 +943,7 @@ Atype:
|
|||||||
| Afntypeh
|
| Afntypeh
|
||||||
| '*' Atype
|
| '*' Atype
|
||||||
{
|
{
|
||||||
|
dowidth($2);
|
||||||
$$ = ptrto($2);
|
$$ = ptrto($2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -966,6 +967,7 @@ Btype:
|
|||||||
| Bfntypeh
|
| Bfntypeh
|
||||||
| '*' Btype
|
| '*' Btype
|
||||||
{
|
{
|
||||||
|
dowidth($2);
|
||||||
$$ = ptrto($2);
|
$$ = ptrto($2);
|
||||||
}
|
}
|
||||||
| '*' lname
|
| '*' lname
|
||||||
|
@ -29,7 +29,7 @@ pow(arg1,arg2 float64) float64
|
|||||||
|
|
||||||
temp = floor(arg2);
|
temp = floor(arg2);
|
||||||
if temp != arg2 {
|
if temp != arg2 {
|
||||||
panic sys.NaN();
|
panic(sys.NaN());
|
||||||
}
|
}
|
||||||
|
|
||||||
l = long(temp);
|
l = long(temp);
|
||||||
|
@ -49,9 +49,11 @@ sqrt(arg float64) float64
|
|||||||
exp = exp + 60;
|
exp = exp + 60;
|
||||||
}
|
}
|
||||||
if exp >= 0 {
|
if exp >= 0 {
|
||||||
temp = temp * float64(1 << (exp/2));
|
exp = 1 << uint(exp/2);
|
||||||
|
temp = temp * float64(exp);
|
||||||
} else {
|
} else {
|
||||||
temp = temp / float64(1 << (-exp/2));
|
exp = 1 << uint(-exp/2);
|
||||||
|
temp = temp / float64(exp);
|
||||||
}
|
}
|
||||||
|
|
||||||
for i=0; i<=4; i=i+1 {
|
for i=0; i<=4; i=i+1 {
|
||||||
|
@ -60,7 +60,7 @@ tan(arg float64) float64
|
|||||||
|
|
||||||
if flag {
|
if flag {
|
||||||
if(temp == 0) {
|
if(temp == 0) {
|
||||||
panic sys.NaN();
|
panic(sys.NaN());
|
||||||
}
|
}
|
||||||
temp = 1/temp;
|
temp = 1/temp;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user