Technical information

Operating Precautions for CPDW9X/NT-CDR-V85X, Y-GHS-MULTI-V800
TM
Customer Notification r20tu0003ed1812 60
No. a44
When compiling with Ospace, the operator | is replaced with ||. This implies that the
second expression is skipped if the first one is true.
Version Information
V4.0.5
Details
When compiling with Ospace, it may happen that the operator | is replaced with ||. This implies
that the second expression ‘(2!=b++)’ is skipped if the first one is true and this even if the second
member has side effect on the rest of the code. The exact condition is shown below. The
condition is not met, if the first expression is hold simple and does not contain an operation with
Boolean expressions.
Example:
test.c
int main(void)
{
int a =1;
int b = 0;
a = (a !=0) | (2 != b++) ? 10:20;
return b;
} // In this example, the increment ‘b++’ is not done.
Command Sequence
ccv850 -Ospace
ccv850e -Ospace
Workaround
A new compiler Version 4.05c, which fixes this problem, can be downloaded from the NEC WEB
page(s) at http://www.renesas.eu/updates?id=443