Erlang/OTP R10B-10 patches for Dialyzer v1.4.0

Note that Dialyzer 1.4.0 requires patching one file of Erlang/OTP R10B-10 in order to work properly.
These patches are relatively small. They affect the file: If you have compiled Erlang/OTP R10B-10 from source, one alternative is to apply the patches by hand.
The patch is to add the following code in function rewrite_call/5 (line 364, after the line that reads "of"):
                {yes, ?PRIMOP_IS_RECORD} ->
                    %% Needs additional testing
                    [_, Tag, Arity] = As,
                    case (cerl:is_c_atom(Tag) andalso
                          cerl:is_c_int(Arity)) of
                        true ->
                            %% The primop might need further handling
                            N1 = cerl:c_atom(?PRIMOP_IS_RECORD),
                            E1 = cerl:update_c_primop(E, N1, As),
                            rewrite_primop(E1, N1, As, S);
                        false ->
                            cerl:update_c_call(E, M, F, As)
                    end;
and before the line that reads "{yes, N} ->".
Then, on the top directory of Erlang/OTP, you can issue a "make hlib" command, possibly followed by a "make install" command.

Alternatively, you can get the following .erl and .beam file and put them in the appropriate place in your Erlang/OTP R10B-10 system:


Tobias Lindahl / tobiasl@it.uu.se
Kostis Sagonas / kostis@it.uu.se
Last modified: 12 Mar 06.