Re: SWITCH question

new topic     » goto parent     » topic index » view thread      » older message » newer message

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.

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu