This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

INTERNAL ERROR: Instruction scheduling may be incorrect

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 ]