The code from bug 3408654 crashes inside Boost when compiled with a recent snapshot #6854.
I just did a clean checkout of sdcc revision #6854, configured and compiled.
The attached file compiles fine for me using
sdcc -mz80 bug3410415.c. Did you use any special options? On which platform did you observe the bug?
P.S.: Could your problem have been caused by #3401455?
I also did a fresh checkout of #6863 and rebuilt it with MSVC 2010 Express. First I tried a Release build and it passed. Then I used a Debug build and it failed as reported. I have Boost 1.44 installed. I'll try to investigate a bit deeper.
Installing Boost 1.47 did not make any difference.
I checked out snapshot 6854 under cygwin, did (a clean) build, but did not get a crash when running:
sdcc -mz80 -c bug3410415.c
It was built using "gcc (GCC) 4.3.4 20090804 (release) 1"
Maarten, does it crash also if you use the snapshot build WIN32 binaries?
No, it doesn't crash with the MINGW32 built binary snapshot.
It only crashes with a Microsoft Visual C Debug-build. A Release-build works fine. I also guess that all GCC builds are fine based on the replies here. I have a strong feeling the problem lies in the boost code or in Visual C++ although I cannot rule out improper use of boost by the sdcc code.
I lowered the priority as this only impounds those debugging SDCC itself with Visual C++.
Can you get a backtrace of this issue? Did sdcc emit any warning or error messages prior to crashing?
Is this issue still there in current sdcc?
call stack trace
Unfortunately yes. I've installed Boost 1.50 and this is what I get now:
Debug Assertion Failed!
Expression: Invalid operator <
I've attached a call stack trace.
It seems to be triggered by calling sort on the list alist in tree_dec_ralloc_forget.
I'm pretty sure this was not tested on MSVC again when it was set to "works-for-me". It still fails as explained with boost 1.55.0 on MSVC 2012 (Express) for a Debug build only.
The data structures used in the register allocator changed quite a bit about a month ago. We also now require an newer MSVC due to C++11.
What is the situation with current SDCC and MSVC 2017?
Thanks for the reminder. I'll check again.
Log in to post a comment.