Re: SWITCH question
- Posted by irv Jan 06, 2018
- 1839 views
In be_execute.c, around line 1616 or so, in function analyze_switch():
else if( !IS_ATOM_INT( new_values->base[i] ) || IS_ATOM_INT( second_val ) ){ //c = (0 == compare( new_values->base[i], second_val ) ); -- commenting this out avoids the crash ?
Anyone else want to make that change and recompile, to see if it fixes the sig 11 crash when interpreted?
In addition, see if you can find anything that breaks due to removing it.
-- test case: include std/dll.e switch 1 do case C_HANDLE then case C_POINTER, C_HANDLE then end switch
Former results: A machine-level exception occurred during execution of this statement (signal 11)
Current results: duplicate values in a switch: C_HANDLE and C_HANDLE (which is exactly correct)
Edit: Note, this only handles one source of the sig 11 - there are others, depending upon which test you run. Currently working on those.