Menu

#3711 FATAL Compiler Internal Error in file 'gen.c' with sdcc ver 4.4.0

closed-fixed
None
MCS51
5
2024-03-04
2024-02-28
Skip Hansen
No

I switched from version 4.3.0 to 4.4.0 for my project yesterday. It seemed to be working, but this AM
I'm getting an fatal internal error. 4.3.0 continues to build the code.

skip@Dell-7040:~/esl/OpenEPaperLink/Chroma_Tag_FW/OEPL$ sdcc -v
SDCC : mcs51/r800 TD- 4.4.0 #14620 (Linux)
published under GNU General Public License (GPL)
skip@Dell-7040:~/esl/OpenEPaperLink/Chroma_Tag_FW/OEPL$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
skip@Dell-7040:~/esl/OpenEPaperLink/Chroma_Tag_FW/OEPL$ make
if [ ! -e /home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/builds/chroma74y ]; then mkdir -p /home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/builds/chroma74y; fi
sdcc -c main.c -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/board/chroma74y -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/soc/cc111x -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/cpu/8051 -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/common -I. -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/../zbs243_shared --code-size 0x8000 --xram-loc 0xf000 --xram-size 0xda2 --model-medium -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/cpu/8051 -mmcs51 --std-c2x --opt-code-size --fomit-frame-pointer -DPROXY_BUILD -I. -MD -DLEAN_VERSION -DSFDP_DISABLED -o /home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/builds/chroma74y/main.rel
main.c:204: warning 112: function 'adcSampleTemperature' implicit declaration
...
[deleted]
...
sdcc -c /home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/board/chroma74y/screen.c -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/board/chroma74y -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/soc/cc111x -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/cpu/8051 -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/common -I. -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/../zbs243_shared --code-size 0x8000 --xram-loc 0xf000 --xram-size 0xda2 --model-medium -I/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/cpu/8051 -mmcs51 --std-c2x --opt-code-size --fomit-frame-pointer -DPROXY_BUILD -I. -MD -DLEAN_VERSION -DSFDP_DISABLED -o /home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/builds/chroma74y/screen.rel
/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/board/chroma74y/screen.c:354: warning 112: function 'adcSampleTemperature' implicit declaration
/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/board/chroma74y/screen.c:354: warning 84: 'auto' variable 'adcSampleTemperature' may be used before initialization
/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/board/chroma74y/screen.c:570: error 9: FATAL Compiler Internal Error in file 'gen.c' line number '3691' : code generator internal error
Contact Author with source code
/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/board/chroma74y/screen.c:570: error 9: FATAL Compiler Internal Error in file 'gen.c' line number '1465' : code generator internal error
Contact Author with source code
Caught signal 11: SIGSEGV
make: *** [/home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/make/rules.mk:6: /home/skip/esl/OpenEPaperLink/Chroma_Tag_FW/builds/chroma74y/screen.rel] Error 1
skip@Dell-7040:~/esl/OpenEPaperLink/Chroma_Tag_FW/OEPL$

Source and build logs for 4.3.0 and 4.4.0 are attached.

4 Attachments

Related

Bugs: #3712

Discussion

  • Philipp Klaus Krause

    I can reproduce the issue in current trunk on my Debian GNU/Linux testing system. Apparently, calls to __reentrant functions with __bit parameters are broken for mcs51. This code reproduces the issue:

    void f(__bit bit) __reentrant;
    
    void g(void)
    {
        f(0);
    }
    
     

    Last edit: Philipp Klaus Krause 2024-02-29
  • Philipp Klaus Krause

    • status: open --> closed-fixed
    • assigned_to: Philipp Klaus Krause
     
  • Philipp Klaus Krause

    Fixed in [r14692].

     

    Related

    Commit: [r14692]

  • Skip Hansen

    Skip Hansen - 2024-03-04

    Thanks for the QUICK fix guys! I'll give it a try.

     

Log in to post a comment.