fixed problem with 'if (array)'
authorceriel <none@none>
Thu, 4 Aug 1988 14:37:06 +0000 (14:37 +0000)
committerceriel <none@none>
Thu, 4 Aug 1988 14:37:06 +0000 (14:37 +0000)
lang/cem/cemcom/arith.c

index e07a2dc..ea9dc32 100644 (file)
@@ -357,13 +357,20 @@ opnd2logical(expp, oper)
        register struct expr **expp;
        int oper;
 {
-       int fund;
-
-       if ((*expp)->ex_type->tp_fund == FUNCTION)
-               function2pointer(*expp);
+       int fund = (*expp)->ex_type->tp_fund;
+
+       if (fund == FUNCTION || fund == ARRAY) {
+               expr_warning(*expp, "%s operand to %s",
+                       symbol2str(fund),
+                       symbol2str(oper));
+               if (fund == FUNCTION) {
+                       function2pointer(*expp);
+               }
+               else    array2pointer(*expp);
+       }
 #ifndef NOBITFIELD
        else
-       if ((*expp)->ex_type->tp_fund == FIELD)
+       if (fund == FIELD)
                field2arith(expp);
 #endif NOBITFIELD
        switch (fund = (*expp)->ex_type->tp_fund) {