Menu

#3990 smallserpent failure on stm8-large

open
nobody
None
STM8
5
2 days ago
5 days ago
No

smallserpent fails by infinite loop during compilation for stm8-large.

Discussion

  • Philipp Klaus Krause

    Could you provide more details (sdcc --version output, maybe even check in which function it hangs using gdb or such)? I don't see the problem when I do a quick test using sdcc from trunk on my Debian GNU/Linux testing on amd64 system.

     
  • Gabriele Gorla

    Gabriele Gorla - 2 days ago

    this is from latest SVN [r16545]
    the test is currently disabled in MakeList
    you should be able to repro by enabling it.
    host is debian 13:
    Linux a64 6.12.85+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.85-1 (2026-04-30) x86_64 GNU/Linux

    gorlik@a64:/mnt/scratch/build/sdcc/sdcc-svn/sdcc/support/regression$ gdb ../../src/sdcc 
    GNU gdb (Debian 16.3-1) 16.3
    Copyright (C) 2024 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    Type "show copying" and "show warranty" for details.
    This GDB was configured as "x86_64-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <https://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:
        <http://www.gnu.org/software/gdb/documentation/>.
    
    For help, type "help".
    Type "apropos word" to search for commands related to "word"...
    Reading symbols from ../../src/sdcc...
    warning: File "/mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/sdcc" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
    To enable execution of this file add
        add-auto-load-safe-path /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/sdcc
    line to your configuration file "/home/gorlik/.config/gdb/gdbinit".
    To completely disable this security protection add
        set auto-load safe-path /
    line to your configuration file "/home/gorlik/.config/gdb/gdbinit".
    For more information about this security protection see the
    "Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
        info "(gdb)Auto-loading safe path"
    (gdb) set args --fverbose-asm -DNO_VARARGS --nostdinc -I../.. -mstm8 --model-large --less-pedantic --out-fmt-ihx -I./fwk/include -I./tests -I../../device/include -c cases/smallserpent/smallserpent_op_decrypt.c -o gen/stm8-large/smallserpent/smallserpent_op_decrypt.rel
    (gdb) run
    Starting program: /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/sdcc --fverbose-asm -DNO_VARARGS --nostdinc -I../.. -mstm8 --model-large --less-pedantic --out-fmt-ihx -I./fwk/include -I./tests -I../../device/include -c cases/smallserpent/smallserpent_op_decrypt.c -o gen/stm8-large/smallserpent/smallserpent_op_decrypt.rel
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
    [Detaching after vfork from child process 3282548]
    cases/smallserpent/smallserpent_op_decrypt.c:36: warning: "__STDC_VERSION__" redefined
       36 | #define __STDC_VERSION__ 202512L
          | 
    <built-in>: note: this is the location of the previous definition
    ^C
    Program received signal SIGINT, Interrupt.
    assignment_lospre::operator< (this=0x5555596a6520, a=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:67
    67          if (global[*i] < a.global[*ai])
    (gdb) bt
    #0  assignment_lospre::operator< (this=0x5555596a6520, a=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:67
    #1  std::__detail::_Scratch_list::_Ptr_cmp<std::_List_iterator<assignment_lospre>, void>::operator() (this=<synthetic pointer>, __lhs=0x5555596a6510, __rhs=0x55555c80ee80) at /usr/include/c++/14/bits/stl_list.h:189
    #2  std::__detail::_Scratch_list::merge<std::__detail::_Scratch_list::_Ptr_cmp<std::_List_iterator<assignment_lospre>, void> > (__comp=...,  this=0x7ffffffba900, __x=...) at /usr/include/c++/14/bits/stl_list.h:204
    #3  std::__cxx11::list<assignment_lospre, std::allocator<assignment_lospre> >::sort (this=this@entry=0x7ffff79327f0) at /usr/include/c++/14/bits/list.tcc:515
    #4  0x000055555566cfc0 in tree_dec_lospre_forget<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1487, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:230
    #5  0x000055555566e6c6 in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1487, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:342
    #6  0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=976, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #7  0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1488, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #8  0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=975, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #9  0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1489, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #10 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=974, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #11 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1490, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #12 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=973, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #13 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1491, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #14 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=972, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #15 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1492, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #16 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=971, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #17 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1493, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #18 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=970, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #19 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1494, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #20 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=969, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #21 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1495, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #22 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=968, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #23 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1496, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #24 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=967, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    #25 0x000055555566e67e in tree_dec_lospre_nodes<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, tree_dec_lospre_node, boost::no_property, boost::no_property, boost::listS>, boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, cfg_lospre_node, float, boost::no_property, boost::listS> > (T=..., t=t@entry=1497, G=...) at /mnt/scratch/build/sdcc/sdcc-svn/sdcc/src/SDCClospre.hpp:334
    
     

    Related

    Commit: [r16545]


    Last edit: Gabriele Gorla 2 days ago

Log in to post a comment.

MongoDB Logo MongoDB