Menu ▾ ▴

#4241 Regression: pic regression tests can no longer be run

open
nobody
None
other
5
1 day ago
2 days ago
No

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

Related

Feature Requests: #1041
Wiki: SDCC 4.7.0 Release

Discussion

  • zeynelsagcan

    zeynelsagcan - 2 days ago

    I am looking into the matter.

     
  • Gabriele Gorla

    Gabriele Gorla - 2 days ago

    last working is [r16499]

     

    Related

    Commit: [r16499]

    • Philipp Klaus Krause

      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]

  • zeynelsagcan

    zeynelsagcan - 1 day ago

    I have completed additional validation of the proposed fix for #4241.

    The underlying issue is that _sdcpp_skip_asm_block() consumes the matching __endasm while producing a single CPP_ASM token. Consequently, no separate token remains to carry EXIT_ASM, allowing the assembly output state to persist into ordinary C code.

    The patch adds EXIT_ASM to this combined token in support/cpp/libcpp/lex.cc.

    Validation results:

    • PIC14 and PIC16 regression support.c preprocessing: no stray 0x87 bytes.
    • PIC14: successfully compiled and assembled support.c with SDCC r17110 and gputils r1333.
    • PIC16: successfully compiled and assembled support.c with SDCC r16998 and gputils r1333.
    • The patched preprocessor was built from r17110 sources and used in both tests.
    • The patch applies successfully to the unmodified r17110 reference source.

    The complete PIC14/PIC16 regression suites have not yet been run.

    I have attached the minimal patch for review.

     

Log in to post a comment.