Technical information
Operating Precautions for CPDW9X/NT-CDR-V85X, Y-GHS-MULTI-V800
TM
Customer Notification r20tu0003ed1812 89
No. a81
Missing Compiled Line
Version Information
V4.0.5, V4.0.7, V4.0.7a, V4.2.3, V4.2.4
Details:
To reproduce the bug, there must be the following series of instructions
<instruction which puts a value into X>
AND X, <constant with only 1 bit set>
<instruction which uses the condition code of the AND>
...
cmp X,0
The problem is that the AND is deleted, leaving nothing to set the condition codes for the
instruction which uses the condition.
Example:
void test(volatile char *p) {
unsigned char temp;
temp = (p[0] & 2);
p[1] = (temp == 0);
p[2] = (temp != 0);
}
#pragma pack(1)
struct { int i; } s, *p = &s;
#pragma pack()
Command Line
ccv850e -w -S -Ospace test.c
Workaround
1) Please use option -Z1276 for all V4.x.x compilers.
The problem is fixed in actual V5.1.6C release.










