I cannot run the pic14 or pci16 regression tests in current trunk. This used to "work" (with many tests failing, and the results being reported. Even with pic14 and pic16 currently unmaintained, I'D like to see at least the test infrastructure still working, so anyone trying to pick up pic work has at least a starting point.
Output for pic16 (pic14 looks nearly the same):
philipp@notebook7:~/sdcc-trunk/sdcc/support/regression$ LANG=C make test-pic16
@@#
@@@:c/c-lang.cc:76:do_pragma_preproc_asm
@@#
@@@:lex.cc:1731:_sdcpp_skip_asm_block
@@#
@@@:lex.cc:3041:_sdcpp_save_asm
@@#
@@@:lex.cc:3052:_sdcpp_save_asm
@@#
@@@:lex.cc:3060:_sdcpp_save_asm
@@#
@@@:lex.cc:3066:_sdcpp_save_asm
@@#
@@@:lex.cc:1731:_sdcpp_skip_asm_block
@@#
@@@:lex.cc:3041:_sdcpp_save_asm
@@#
@@@:lex.cc:3052:_sdcpp_save_asm
@@#
@@@:lex.cc:3060:_sdcpp_save_asm
@@#
@@@:lex.cc:3066:_sdcpp_save_asm
ports/pic16/support.c:66: error 329: stray character at column 2
ports/pic16/support.c:67: error 329: stray character at column 2
ports/pic16/support.c:69: error 329: stray character at column 2
ports/pic16/support.c:70: error 329: stray character at column 2
ports/pic16/support.c:75: error 329: stray character at column 2
ports/pic16/support.c:76: error 329: stray character at column 2
ports/pic16/support.c:80: error 329: stray character at column 2
ports/pic16/support.c:87: error 329: stray character at column 2
ports/pic16/support.c:93: error 329: stray character at column 0
ports/pic16/support.c:96: error 329: stray character at column 0
ports/pic16/support.c:97: error 329: stray character at column 0
ports/pic16/support.c:98: error 329: stray character at column 0
ports/pic16/support.c:100: error 329: stray character at column 2
ports/pic16/support.c:101: error 329: stray character at column 4
ports/pic16/support.c:104: error 329: stray character at column 2
ports/pic16/support.c:109: error 329: stray character at column 0
make[2]: *** [Makefile:437: gen/pic16/support.o] Error 1
make[1]: *** [Makefile:370: test-port] Error 2
make: *** [Makefile:202: test-pic16] Error 2
I tried as old as [r14500] and I could not get the pic14 regression to behave.
The pic16 regression broke between [r16000] and [r16500]
Related
Commit: [r14500]
Commit: [r16000]
Commit: [r16500]
I am looking into the matter.
last working is [r16499]
Related
Commit: [r16499]
Thanks. Odd though, as [r16500] should have been just a minor preprocessor update, I wonder how this could result in problems specific to the pic ports.
Related
Commit: [r16500]
I have completed additional validation of the proposed fix for #4241.
The underlying issue is that
_sdcpp_skip_asm_block()consumes the matching__endasmwhile producing a singleCPP_ASMtoken. Consequently, no separate token remains to carryEXIT_ASM, allowing the assembly output state to persist into ordinary C code.The patch adds
EXIT_ASMto this combined token insupport/cpp/libcpp/lex.cc.Validation results:
support.cpreprocessing: no stray0x87bytes.support.cwith SDCC r17110 and gputils r1333.support.cwith SDCC r16998 and gputils r1333.The complete PIC14/PIC16 regression suites have not yet been run.
I have attached the minimal patch for review.