Apparent binary matching bug with native compilation

Einar Karttunen ekarttun@REDACTED
Mon Jun 7 12:07:39 CEST 2004


It seems that there is a problem with binary matching when 
compiling native code. A length prefixed field matches one
byte too short in the native case. 

The test module works when compiled with no options, but 
crashes with case_clause when compiled with [native].
This has been confirmed with R9C-0 and hipe snapshot

- Einar Karttunen


crash() ->

pp(Bin) ->
    io:format("PP with ~p~n", [Bin]),
    case Bin of 
	<<>> -> 
	<<_:2, Len:6, Part:Len/binary>> ->
	<<_:2, Len:6, Part:Len/binary, Rest/binary>> ->
	    io:format("Len ~p Part ~p Rest ~p~n", [Len,Part,Rest]),
	    [binary_to_list(Part), "." | pp(Rest)]

More information about the erlang-questions mailing list