Forum : ST7/STM8
Original Post
| Post Information | Post |
|---|---|
|
June 10, 2010 - 4:28pm
|
Hi, is it possible to generate a compiler warning if an implicit conversion or typecast (promotion/demotion) is performed? Simple example:
#pragma WARNINGLEVEL(2)
void main(){
volatile unsigned int uiVar = 65535; //16bit variable // volatile to suppress optimizing
volatile unsigned char ucVar = 3; //8 bit variable // volatile to suppress optimizing
for(;;){
ucVar++;
uiVar--;
ucVar = uiVar; //Unintentional assignment of a 16bit value to a 8bit variable
//I'd like to be informed that the MSbyte will be cut off.
ucVar++;
uiVar--;
ucVar =(unsigned char) uiVar; //I really want to assign a 16bit value to a 8bit variable
//and I know that the MSbyte will be cut off.
}
}
Of course with standard compiler-settings no warning should appear, since demotion is part of C. But what if I made a mistake (shame on me) and assigned a 16bit value to a 8bit variable? I'd be glad if I could apply a compiler directive, to find more lines probably being responsible for errors. The gcc C-compiler has the "-Wconversion" flag. Is there something similar with the RCSTM8? Thanks, |
Hi DanZ,
This is a good input. We'll add this feature in the compiler, but this will not be in the next release (which is already under validation phase).
Regards,
Bruno