* src/pic16/pcode.c: fixed bug which may produce error in non-GNU
compilers
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3584
4a8a32a2-be11-0410-ad9d-
d568d2c75423
pCode *pc_prev = NULL;
pCode *pc_next = NULL;
pBlock *pb;
pCode *pc_prev = NULL;
pCode *pc_next = NULL;
pBlock *pb;
int opt=0, toofar=0, jumptabs=0, opt_cond = 0, cond_toofar=0, opt_reorder = 0;
if (!the_pFile) return;
int opt=0, toofar=0, jumptabs=0, opt_cond = 0, cond_toofar=0, opt_reorder = 0;
if (!the_pFile) return;
int condBraType = isSkipOnStatus(pc_prev);
int dist = findpCodeLabel(pc, label, MAX_DIST_BRA);
if (dist < 0) dist = -dist;
int condBraType = isSkipOnStatus(pc_prev);
int dist = findpCodeLabel(pc, label, MAX_DIST_BRA);
if (dist < 0) dist = -dist;
//fprintf (stderr, "distance: %d (", dist); pc->print(stderr, pc);fprintf (stderr, ")\n");
if (condBraType != -1 && hasNoLabel(pc)) {
//fprintf (stderr, "distance: %d (", dist); pc->print(stderr, pc);fprintf (stderr, ")\n");
if (condBraType != -1 && hasNoLabel(pc)) {
// now just turn GOTO into BRA
if (!isJumptable(pc, pc_prev, pc_next)) {
if (dist < MAX_DIST_BRA) {
// now just turn GOTO into BRA
if (!isJumptable(pc, pc_prev, pc_next)) {
if (dist < MAX_DIST_BRA) {
pCode *newBra = pic16_newpCode (POC_BRA, PCI(pc)->pcop);
pCode *newBra = pic16_newpCode (POC_BRA, PCI(pc)->pcop);
PCI(newBra)->label = PCI(pc)->label;
pic16_pCodeInsertAfter (pc, newBra);
pic16_pCodeInsertAfter(pc_prev, pic16_newpCodeCharP("goto-optimization 3"));
PCI(newBra)->label = PCI(pc)->label;
pic16_pCodeInsertAfter (pc, newBra);
pic16_pCodeInsertAfter(pc_prev, pic16_newpCodeCharP("goto-optimization 3"));