Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Migration Guide

IBM2804: suboptimal compares

This I-level message alerts you to a poor programming practice and possible error:

  IBM2804I I Boolean is compared with something other than ’1’b or ’0’b.

A boolean is a result of a comparison of two expressions or the result of anding, oring or negating booleans. As such, a boolean can have only the values ’1’b or ’0’b. If your code compares a boolean with something other than one of these values, it may reflect a problem (for instance, maybe the expression (a > b) = c was meant to be (a + b) = c ).

Note that the compiler will produce this message even if you compare a boolean to a value declared as BIT(1) STATIC INIT(’1’b). In this situation there is no programming error, but the compiler cannot generate as good as code as it would generate if the value were declared as BIT(1) VALUE(’1’b).


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)