--- cci/usr/src/lib/fpcc/local.c 2019/07/28 12:24:19 1.1 +++ cci/usr/src/lib/fpcc/local.c 2019/07/28 12:24:52 1.1.1.2 @@ -92,7 +92,7 @@ clocal(p) register NODE *p; { ml = p->in.left->in.type; if(m == FLOAT || m == DOUBLE) { if(p->in.left->in.op==SCONV && - (ml == FLOAT || ml == DOUBLE) && + ml == DOUBLE && p->in.left->in.left->in.type==m) { p->in.op = p->in.left->in.op = FREE; return(p->in.left->in.left); @@ -151,6 +151,7 @@ clocal(p) register NODE *p; { /* clobber conversion */ if( tlen(p) == tlen(p->in.left) ) goto inherit; + if (m == USHORT && ml == CHAR) return(p); p->in.op = FREE; return( p->in.left ); /* conversion gets clobbered */ @@ -240,7 +241,7 @@ cisreg( t ) TWORD t; { /* is an automati #ifdef REG_CHAR || t==CHAR || t==UCHAR || t==SHORT || t==USHORT /* tbl */ #endif - || ISPTR(t)) return (1); /* wnj */ + || ISPTR(t) || t == FLOAT) return (1); /* wnj */ return(0); }