1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
%% -*- erlang-indent-level: 2 -*-
%%--------------------------------------------------------------------
%% Date: Mon, 7 Jun 2004 13:07:39 +0300
%% From: Einar Karttunen
%% To: Erlang ML <[email protected]>
%% Subject: Apparent binary matching bug with native compilation
%%
%% 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 5/4/2004.
%%--------------------------------------------------------------------
-module(bs_bugs_R09).
-export([test/0]).
test() ->
["rei",".",[]] = pp(<<3,$r,$e,$i,0>>),
ok.
pp(Bin) ->
%% io:format("PP with ~p~n", [Bin]),
case Bin of
<<>> ->
["."];
<<_:2, Len:6, Part:Len/binary>> ->
[binary_to_list(Part)];
<<_: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)]
end.
|