aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter/src/compiler/diameter_nowarn.erl
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2011-12-09 11:35:37 +0100
committerAnders Svensson <[email protected]>2011-12-09 11:35:37 +0100
commit23c1d8c8dafc9094e462f7b220f9faec5eec3ad8 (patch)
tree1c6f180487ae1a2c8a4e2e28ece5e226eb5f1f88 /lib/diameter/src/compiler/diameter_nowarn.erl
parent2ead2d78f94bda90309077080c6b6d7a5bb72d9c (diff)
parent57d5564fca1f6d5e57199e1dcdca1d64284ecae8 (diff)
downloadotp-23c1d8c8dafc9094e462f7b220f9faec5eec3ad8.tar.gz
otp-23c1d8c8dafc9094e462f7b220f9faec5eec3ad8.tar.bz2
otp-23c1d8c8dafc9094e462f7b220f9faec5eec3ad8.zip
Merge branch 'anders/diameter/suites_and_dialyzer/OTP-9781'
* anders/diameter/suites_and_dialyzer/OTP-9781: Tell dialyzer not to warn about unused functions Add compiler testcases for generation and compilation to beam Fix semantic checks on AVP qualifiers Minor codegen/debug fix Deal with crypto:start() failure in TLS suite Don't assume empty sndrcvinfo in diameter_sctp
Diffstat (limited to 'lib/diameter/src/compiler/diameter_nowarn.erl')
-rw-r--r--lib/diameter/src/compiler/diameter_nowarn.erl41
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/diameter/src/compiler/diameter_nowarn.erl b/lib/diameter/src/compiler/diameter_nowarn.erl
new file mode 100644
index 0000000000..6c17af6563
--- /dev/null
+++ b/lib/diameter/src/compiler/diameter_nowarn.erl
@@ -0,0 +1,41 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2010-2011. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+%%
+%% A parse transform to work around dialyzer currently not
+%% understanding nowarn_unused_function except on individual
+%% functions. The include of diameter_gen.hrl by generated dictionary
+%% modules contains code that may not be called depending on the
+%% dictionary. (The relay dictionary for example.)
+%%
+%% Even called functions may contain cases that aren't used for a
+%% particular dictionary. This also causes dialyzer to complain but
+%% there's no way to silence it in this case.
+%%
+
+-module(diameter_nowarn).
+
+-export([parse_transform/2]).
+
+parse_transform(Forms, _Options) ->
+ [{attribute, ?LINE, compile, {nowarn_unused_function, {F,A}}}
+ || {function, _, F, A, _} <- Forms]
+ ++ Forms.
+%% Note that dialyzer also doesn't understand {nowarn_unused_function, FAs}
+%% with FAs a list of tuples.