Technical information

Operating Precautions for CPDW9X/NT-CDR-V85X, Y-GHS-MULTI-V800
TM
Customer Notification r20tu0003ed1812 110
No. a112
P26: TOOLS-20948 write to global variable was wrongly moved before __DI
Version Information
V6.1.4/2013.5.5
Details:
TOOLS-20948 write to global variable was wrongly moved before __DI
The problem here is that the write to variable “Glob between the DI/EI pair is moved
outside the DI/EI by the codemotion optimization.
Example:
#include <stdio.h>
volatile int Flag=1;
volatile int Glob=0;
int a = 1;
int main() {
if (Flag==1) {
__DI();
Glob=a;
__EI();
} else
Glob=a;
printf("Hello world. %d \n", Glob);
return 0;
}
Command Line
ccrh850 cpu=rh860 c -O
Workaround
For V6.1.4/2013.5.5, please use latest patch
Y-GHS-MULTI-V800-FULL-V614_2013.5.5-PATCH02
plus v800-v2013.5.5-comp-P26 or later