https://sourceforge.net/p/sdcc/code/HEAD/tree/branches/pic14/sdcc/src/pic14/gen.c certainly shows the || PO_IMMEDIATE in line 7995.
I narrowed the issue down to a change between 3.6.0 and 3.7.0 where a condition was modified with dramatic results ... https://sourceforge.net/p/sdcc/code/9836/tree//trunk/sdcc/src/pic14/gen.c?diff=513f4d42271846342871488b:9835 Here the last hunk (and especially the || part with PO_IMMEDIATE seems to be the problem, because the following patch seems to 'fix' the issue: http://vserver.13thfloor.at/Stuff/SDCC/sdcc-pic14-immediate.diff Note that IMHO all pic14 MCUs are affected and I'm really surprised...
struct access on pic14 produces dubious code
%define _disable_ld_no_undefined 1 fixes the problem.
src.rpm (re)build fails on Mageia 5
SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8...
Compiler-assigned variables should not be pinned... This is a bug.
The resulting assembler output.