Technical information

Operating Precautions for CPDW9X/NT-CDR-V85X, Y-GHS-MULTI-V800
TM
Customer Notification r20tu0003ed1812 56
No. a40
In the expression, int a %=(1+~(unsigned b)), only the % is done.
Version Information
V3.5, V4.0.5
Details
Wrong code is generated for int a %= (1 + ~(unsigned b))
Example:
test.c
void sub(unsigned b)
{
int a = 29970;a%= (1 + ~b);}
Command Sequence
ccv850 Ospace
ccv850e Ospace
Generated ASM-Code:
-- int a = 29970;
movea 29970,zero,r17
-- a%= (1 + ~b);
divu r6,r17,r2
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