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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
%% From: Matthias Radestock <[email protected]>
%% Date: 19 August 2007
%%
%% when I run dialyzer on my code it throws the following error:
%%
%% Analysis failed with error report:
%% {{case_clause,any},
%% [{dialyzer_dataflow,bind_guard,5},
%% {dialyzer_dataflow,bind_guard_case_clauses,6},
%% {dialyzer_dataflow,bind_guard,5},
%% {dialyzer_dataflow,bind_guard_case_clauses,6},
%% {dialyzer_dataflow,bind_guard,5},
%% {dialyzer_dataflow,bind_eqeq_guard_lit_other,6},
%% {dialyzer_dataflow,bind_guard,...},
%% {dialyzer_dataflow,...}]}
%%
%% This is happening with the R11B-5 version of dialyzer when
%% analyzing the attached file.
%%--------------------------------------------------------------------
-module(not_guard_crash).
-export([match_ticket/2]).
-record(ticket, {passive_flag, active_flag, write_flag, read_flag}).
%%--------------------------------------------------------------------
match_ticket(#ticket{passive_flag = PP,
active_flag = PA,
write_flag = PW,
read_flag = PR},
#ticket{passive_flag = TP,
active_flag = TA,
write_flag = TW,
read_flag = TR}) ->
if
%% Matches if either we're not requesting passive access, or
%% passive access is permitted, and ...
(not(TP) orelse PP) andalso
(not(TA) orelse PA) andalso
(not(TW) orelse PW) andalso
(not(TR) orelse PR) ->
match;
true ->
no_match
end.
%%--------------------------------------------------------------------
|