diff options
Diffstat (limited to 'bcc/exptree.c')
-rw-r--r-- | bcc/exptree.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/bcc/exptree.c b/bcc/exptree.c index 0f95439..d3e6386 100644 --- a/bcc/exptree.c +++ b/bcc/exptree.c @@ -940,8 +940,13 @@ struct nodestruct *nodeptr; } nodeptr->left.nodeptr = left = unconvert(left); nodeptr->right = right = unconvert(right); - if ((targtype = left->nodetype) == right->nodetype) - return targtype; /* XXX - reduced from promote(targtype) */ + if ( +#ifdef I80386 + i386_32 || +#endif + ((targtype = left->nodetype)->scalar & FLOAT ) == 0) + if (targtype == right->nodetype) + return targtype; /* XXX - reduced from promote(targtype) */ if ((lscalar = targtype->scalar) != 0 && (rscalar = right->nodetype->scalar) != 0) { |