Building the below code under 6.4.7 builds fine. If I attempt to build under 6.4.9 I get the error shown below. Also, if I turn off optimization on 6.4.9 it works ok. The failure occurs with Global Optimization on. I narrowed it down to the first dereference and increment within an 'if' statement. If I move that line outside of the conditional it will build.
void noteToString(int note, char* dest)
{
const char* notename = getNoteName(note);
int octave = (note / 12) - 1;
*dest++ = notename[0];
if (notename[1])
*dest++ = notename[1];
if (octave > 9)
*dest++ = '>';
else if (octave < 0)
*dest++ = '<';
else
*dest++ = octave + '0';
*dest++ = 0;
}
Generated compiler error:
==================================================(0x016C3214)
$C$C12:
SymDebug --> SYMBOL:$O$C1
SymDebug --> SYMBOL:_octave
SymDebug --> SYMBOL:_notename
SymDebug --> SYMBOL:_dest
SymDebug --> SYMBOL:_note
SymDebug --> CFA OFFSET:-2
SymDebug --> REG SAVE:RPC
MOVL *SP++,XAR2 ; []
SymDebug --> REG SAVE:XAR2
SymDebug --> CFA OFFSET:-4
------CU_LIST---------------------------
_1 (3) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[1 9 ]
CU ANK_FPU_$CPU_$4_$FPU R: (1)[3 ] (4)[4 5 ]
CU ANK_FPU_$CPU_$5_$FPU R: (1)[6 ] (4)[7 8 ]
C:(2 0 5 -1) (2 1 5 -1)
MOVL XAR2,XAR4 ; [] |567|
------CU_LIST---------------------------
_1 (3) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[1 9 ]
CU ANK_FPU_$CPU_$4_$FPU R: (1)[3 ] (4)[4 5 ]
CU ANK_FPU_$CPU_$5_$FPU R: (1)[6 ] (4)[7 8 ]
C:(2 0 5 -1) (2 1 5 -1)
MOV T,AL ; [] |567|
------CU_LIST---------------------------
_1 (3) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[1 ]
CU ANK_FPU_$CPU_$4_$FPU R: (1)[3 ] (4)[4 ]
CU ANK_FPU_$CPU_$5_$FPU R: (1)[6 ] (4)[7 ]
C:(2 0 4 -1)
LCR #_getNoteName__Fi ; [] |568|
------CU_LIST---------------------------
_1 (1) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ]
; call occurs [#_getNoteName__Fi] ; [] |568|
------CU_LIST---------------------------
_1 (1) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ]
_1 (1) :
CU ANK_FPU_$CPU_$3_$ARAU R: (1)[12 ]
MOV AL,T ; [CPU_] |570|
------CU_LIST---------------------------
_1 (3) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[1 ]
CU ANK_FPU_$CPU_$4_$FPU R: (1)[3 ] (4)[4 ]
CU ANK_FPU_$CPU_$5_$FPU R: (1)[6 ] (4)[7 ]
C:(2 0 4 -1)
MOVB AH,#12 ; [] |570|
------CU_LIST---------------------------
_1 (3) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[1 ]
CU ANK_FPU_$CPU_$4_$FPU R: (1)[3 ] (4)[10 ]
CU ANK_FPU_$CPU_$5_$FPU R: (1)[6 ] (4)[11 ]
C:(1 0 4 -1)
FFC XAR7,#I$$DIV ; [] |570|
------CU_LIST---------------------------
_1 (1) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ]
MOVL XAR7,XAR4 ; [CPU_] |568|
------CU_LIST---------------------------
_1 (3) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[1 9 ]
CU ANK_FPU_$CPU_$4_$FPU R: (1)[3 ] (4)[4 5 ]
CU ANK_FPU_$CPU_$5_$FPU R: (1)[6 ] (4)[7 8 ]
C:(2 0 5 -1) (2 1 5 -1)
; call occurs [#I$$DIV] ; [] |570|
------CU_LIST---------------------------
_1 (1) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ]
_1 (1) :
CU ANK_FPU_$CPU_$3_$ARAU R: (1)[12 ]
MOVL XAR4,XAR2 ; [CPU_] |567|
------CU_LIST---------------------------
_1 (3) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[1 9 ]
CU ANK_FPU_$CPU_$4_$FPU R: (1)[3 ] (4)[4 5 ]
CU ANK_FPU_$CPU_$5_$FPU R: (1)[6 ] (4)[7 8 ]
C:(2 0 5 -1) (2 1 5 -1)
PREAD *XAR4++,*XAR7 ; [CPU_] |572|
------CU_LIST---------------------------
_1 (1) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ]
_1 (1) :
CU ANK_FPU_$CPU_$4_$FPU R: (1)[3 ]
_1 (1) :
CU ANK_FPU_$CPU_$5_$FPU R: (1)[6 ]
MOV AH,*+XAR7[1] ; [CPU_] |573|
------CU_LIST---------------------------
_1 (3) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[1 9 ]
CU ANK_FPU_$CPU_$4_$FPU R: (1)[3 ] (4)[4 5 ]
CU ANK_FPU_$CPU_$5_$FPU R: (1)[6 ] (4)[7 8 ]
C:(1 0 5 -1) (1 1 5 -1)
>> INTERNAL ERROR: Instruction scheduling may be incorrect
This may be a serious problem. Please contact customer support with a
description of this problem and a sample of the source files that caused this
INTERNAL ERROR message to appear.
Cannot continue compilation - ABORTING!
ADDB AL,#-1 ; [CPU_] |570|
------CU_LIST---------------------------
_1 (1) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[2 ]
C:(1 0 4 -1)
CMPB AH,#0 ; [CPU_] |573|
------CU_LIST---------------------------
_1 (1) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ] (4)[1 ]
C:(0 0 4 -1)
BF $C$P2,EQ ; [CPU_] |573|
------CU_LIST---------------------------
_1 (1) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ]
; branchcc occurs ; [] |573|
------CU_LIST---------------------------
_1 (1) :
CU ANK_FPU_$CPU_$2_$ALU R: (1)[0 ]
_1 (1) :
CU ANK_FPU_$CPU_$3_$ARAU R: (1)[12 ]