File 1832-Suppress-warnings-about-obsolete-boolean-operators.patch of Package erlang
From 8ba14e903f99dc8a738f7f735f6bde05fa362c27 Mon Sep 17 00:00:00 2001
From: Richard Carlsson <carlsson.richard@gmail.com>
Date: Mon, 24 Nov 2025 19:02:27 +0100
Subject: [PATCH 2/3] Suppress warnings about obsolete boolean operators
---
erts/preloaded/src/prim_zip.erl | 2 ++
lib/common_test/src/Makefile | 2 +-
lib/common_test/src/ct_framework.erl | 2 ++
lib/common_test/src/ct_groups.erl | 2 ++
lib/common_test/src/ct_logs.erl | 2 ++
lib/common_test/src/ct_run.erl | 2 ++
lib/common_test/src/ct_slave.erl | 2 ++
lib/common_test/src/ct_telnet.erl | 2 ++
lib/common_test/src/ct_testspec.erl | 2 ++
lib/common_test/src/test_server_ctrl.erl | 2 ++
lib/compiler/src/Makefile | 2 +-
lib/compiler/src/beam_dict.erl | 2 ++
lib/compiler/src/beam_ssa_opt.erl | 2 ++
lib/compiler/src/beam_types.erl | 2 ++
lib/compiler/src/cerl_inline.erl | 2 ++
lib/compiler/src/sys_pre_attributes.erl | 2 ++
lib/compiler/src/v3_core.erl | 2 ++
lib/dialyzer/src/Makefile | 2 +-
lib/dialyzer/src/dialyzer_dataflow.erl | 2 ++
lib/dialyzer/src/dialyzer_utils.erl | 2 ++
lib/dialyzer/src/erl_types.erl | 2 ++
lib/diameter/src/Makefile | 2 +-
lib/diameter/src/info/diameter_info.erl | 2 ++
lib/et/examples/et_demo.erl | 2 ++
lib/et/src/Makefile | 2 +-
lib/eunit/src/Makefile | 2 +-
lib/eunit/src/eunit_data.erl | 2 ++
lib/inets/src/http_client/httpc_response.erl | 2 ++
lib/inets/src/http_lib/http_chunk.erl | 2 ++
lib/inets/src/http_server/httpd_request_handler.erl | 1 +
lib/inets/src/http_server/mod_cgi.erl | 2 ++
lib/inets/src/http_server/mod_esi.erl | 2 ++
lib/inets/src/inets_app/inets.mk | 2 +-
lib/kernel/src/Makefile | 4 ++--
lib/kernel/src/application.erl | 2 ++
lib/kernel/src/disk_log_server.erl | 2 ++
lib/kernel/src/file_io_server.erl | 1 +
lib/kernel/src/inet_dns.erl | 2 ++
lib/kernel/src/os.erl | 1 +
lib/megaco/src/app/megaco.erl | 2 ++
lib/megaco/src/app/megaco.mk | 2 +-
lib/megaco/src/engine/megaco_config.erl | 2 ++
lib/megaco/src/engine/megaco_digit_map.erl | 2 ++
lib/megaco/src/engine/megaco_erl_dist_encoder.erl | 2 ++
lib/megaco/src/engine/megaco_messenger.erl | 2 ++
lib/megaco/src/engine/megaco_messenger_misc.erl | 2 ++
lib/megaco/src/engine/megaco_sdp.erl | 1 +
lib/megaco/src/engine/megaco_timer.erl | 2 ++
lib/megaco/src/flex/megaco_flex_scanner.erl | 2 ++
lib/megaco/src/text/megaco_text_gen_v2.hrl | 2 ++
lib/megaco/src/text/megaco_text_gen_v3.hrl | 2 ++
lib/megaco/src/text/megaco_text_scanner.erl | 2 ++
lib/mnesia/src/Makefile | 2 +-
lib/mnesia/src/mnesia_controller.erl | 1 +
lib/mnesia/src/mnesia_dumper.erl | 2 ++
lib/mnesia/src/mnesia_loader.erl | 2 ++
lib/mnesia/src/mnesia_monitor.erl | 2 ++
lib/mnesia/src/mnesia_recover.erl | 2 ++
lib/mnesia/src/mnesia_schema.erl | 2 ++
lib/mnesia/src/mnesia_tm.erl | 2 ++
lib/parsetools/src/Makefile | 2 +-
lib/parsetools/src/leex.erl | 2 ++
lib/parsetools/src/yecc.erl | 2 ++
lib/public_key/src/Makefile | 2 +-
lib/public_key/src/pubkey_cert.erl | 2 ++
lib/public_key/src/pubkey_crl.erl | 2 ++
lib/public_key/src/pubkey_pbe.erl | 2 ++
lib/snmp/src/agent/snmpa_conf.erl | 2 ++
lib/snmp/src/agent/snmpa_get.erl | 1 +
lib/snmp/src/agent/snmpa_supervisor.erl | 2 ++
lib/snmp/src/app/Makefile | 2 +-
lib/snmp/src/misc/snmp_config.erl | 2 ++
lib/snmp/src/misc/snmp_log.erl | 1 +
lib/ssh/src/Makefile | 2 +-
lib/ssh/src/ssh_connection.erl | 2 ++
lib/ssh/src/ssh_connection_handler.erl | 2 ++
lib/ssh/src/ssh_lib.erl | 2 ++
lib/ssl/src/Makefile | 2 +-
lib/ssl/src/ssl_cipher.erl | 2 ++
lib/ssl/src/ssl_gen_statem.erl | 2 ++
lib/ssl/src/ssl_handshake.erl | 2 ++
lib/stdlib/examples/erl_id_trans.erl | 2 ++
lib/stdlib/src/Makefile | 2 +-
lib/stdlib/src/dets.erl | 1 +
lib/stdlib/src/dets_v9.erl | 1 +
lib/stdlib/src/erl_error.erl | 2 ++
lib/stdlib/src/erl_eval.erl | 1 +
lib/stdlib/src/erl_lint.erl | 2 ++
lib/stdlib/src/erl_pp.erl | 2 ++
lib/stdlib/src/erl_stdlib_errors.erl | 2 ++
lib/stdlib/src/erl_tar.erl | 2 ++
lib/stdlib/src/escript.erl | 2 ++
lib/stdlib/src/filename.erl | 2 ++
lib/stdlib/src/io_lib_fread.erl | 1 +
lib/stdlib/src/io_lib_pretty.erl | 2 ++
lib/stdlib/src/ms_transform.erl | 1 +
lib/stdlib/src/proc_lib.erl | 1 +
lib/stdlib/src/qlc.erl | 1 +
lib/stdlib/src/qlc_pt.erl | 1 +
lib/stdlib/src/shell.erl | 1 +
lib/stdlib/src/shell_docs.erl | 2 ++
lib/stdlib/src/sofs.erl | 1 +
lib/stdlib/src/unicode.erl | 1 +
lib/syntax_tools/src/Makefile | 2 +-
lib/syntax_tools/src/erl_prettypr.erl | 1 +
lib/syntax_tools/src/erl_syntax.erl | 1 +
lib/syntax_tools/src/erl_syntax_lib.erl | 1 +
lib/syntax_tools/src/prettypr.erl | 2 ++
lib/tftp/src/Makefile | 2 +-
lib/tftp/src/tftp_lib.erl | 2 ++
lib/wx/examples/simple/menu.erl | 2 ++
lib/wx/examples/sudoku/sudoku_game.erl | 2 ++
lib/wx/src/Makefile | 2 +-
lib/xmerl/src/Makefile | 2 +-
lib/xmerl/src/xmerl_scan.erl | 2 ++
lib/xmerl/src/xmerl_xpath_pred.erl | 2 ++
116 files changed, 192 insertions(+), 21 deletions(-)
diff --git a/erts/preloaded/src/prim_zip.erl b/erts/preloaded/src/prim_zip.erl
index 06eb5cc2b3..102d98faeb 100644
--- a/erts/preloaded/src/prim_zip.erl
+++ b/erts/preloaded/src/prim_zip.erl
@@ -41,6 +41,8 @@
-include_lib("stdlib/include/zip.hrl"). % #zip_file, #zip_comment
-include("zip_internal.hrl"). % #cd_file_header etc
+-compile(nowarn_obsolete_bool_op).
+
%% max bytes read from files and archives (and fed to zlib)
-define(READ_BLOCK_SIZE, 16*1024).
diff --git a/lib/common_test/src/Makefile b/lib/common_test/src/Makefile
index c8d48e48c5..3683d2e792 100644
--- a/lib/common_test/src/Makefile
+++ b/lib/common_test/src/Makefile
@@ -117,7 +117,7 @@ DTD_FILES = \
# FLAGS
# ----------------------------------------------------
ERL_COMPILE_FLAGS += -pa ../ebin -I../include -I $(ERL_TOP)/lib/snmp/include/ \
- -I../../xmerl/inc/ -I $(ERL_TOP)/lib/kernel/include -Werror
+ -I../../xmerl/inc/ -I $(ERL_TOP)/lib/kernel/include -Werror +warn_obsolete_bool_op
# ----------------------------------------------------
# Targets
diff --git a/lib/common_test/src/ct_framework.erl b/lib/common_test/src/ct_framework.erl
index 242fd3ce1e..bd083e5a43 100644
--- a/lib/common_test/src/ct_framework.erl
+++ b/lib/common_test/src/ct_framework.erl
@@ -36,6 +36,8 @@
-export([error_in_suite/1, init_per_suite/1, end_per_suite/1,
init_per_group/2, end_per_group/2]).
+-compile(nowarn_obsolete_bool_op).
+
-include("ct.hrl").
-include("ct_event.hrl").
-include("ct_util.hrl").
diff --git a/lib/common_test/src/ct_groups.erl b/lib/common_test/src/ct_groups.erl
index ab970eada8..416d0b8a57 100644
--- a/lib/common_test/src/ct_groups.erl
+++ b/lib/common_test/src/ct_groups.erl
@@ -32,6 +32,8 @@
-export([delete_subs/2]).
-export([expand_groups/3, search_and_override/3]).
+-compile(nowarn_obsolete_bool_op).
+
-define(val(Key, List), proplists:get_value(Key, List)).
-define(val(Key, List, Def), proplists:get_value(Key, List, Def)).
-define(rev(L), lists:reverse(L)).
diff --git a/lib/common_test/src/ct_logs.erl b/lib/common_test/src/ct_logs.erl
index 10b9718eef..9ca5a9eebe 100644
--- a/lib/common_test/src/ct_logs.erl
+++ b/lib/common_test/src/ct_logs.erl
@@ -54,6 +54,8 @@
%% Simulate logger process for use without ct environment running
-export([simulate/0]).
+-compile(nowarn_obsolete_bool_op).
+
-include("ct.hrl").
-include("ct_event.hrl").
-include("ct_util.hrl").
diff --git a/lib/common_test/src/ct_run.erl b/lib/common_test/src/ct_run.erl
index 43a535230f..cc55dcd325 100644
--- a/lib/common_test/src/ct_run.erl
+++ b/lib/common_test/src/ct_run.erl
@@ -33,6 +33,8 @@
%% Misc internal API functions
-export([variables_file_name/1,script_start1/2,run_test2/1, run_make/3]).
+-compile(nowarn_obsolete_bool_op).
+
-include("ct.hrl").
-include("ct_event.hrl").
-include("ct_util.hrl").
diff --git a/lib/common_test/src/ct_slave.erl b/lib/common_test/src/ct_slave.erl
index e29c074f4c..09e1fd890e 100644
--- a/lib/common_test/src/ct_slave.erl
+++ b/lib/common_test/src/ct_slave.erl
@@ -36,6 +36,8 @@ term in the Test Specification.
""".
-moduledoc(#{since => "OTP R14B"}).
+-compile(nowarn_obsolete_bool_op).
+
-export([start/1, start/2, start/3, stop/1, stop/2]).
-export([slave_started/2, slave_ready/2, monitor_master/1]).
diff --git a/lib/common_test/src/ct_telnet.erl b/lib/common_test/src/ct_telnet.erl
index ec85b254dd..c7c393d6ab 100644
--- a/lib/common_test/src/ct_telnet.erl
+++ b/lib/common_test/src/ct_telnet.erl
@@ -173,6 +173,8 @@ suite() ->
format_data/2]).
-export([start_gen_log/1, end_gen_log/0, log/3, log/4]).
+-compile(nowarn_obsolete_bool_op).
+
-define(RECONNS,3).
-define(RECONN_TIMEOUT,5000).
-define(DEFAULT_TIMEOUT,10000).
diff --git a/lib/common_test/src/ct_testspec.erl b/lib/common_test/src/ct_testspec.erl
index 5033bd13d6..14bbeb286e 100644
--- a/lib/common_test/src/ct_testspec.erl
+++ b/lib/common_test/src/ct_testspec.erl
@@ -35,6 +35,8 @@ This module exports help functions for parsing of test specifications.
-export([testspec_rec2list/1, testspec_rec2list/2]).
+-compile(nowarn_obsolete_bool_op).
+
-include("ct_util.hrl").
-define(testspec_fields, record_info(fields, testspec)).
diff --git a/lib/common_test/src/test_server_ctrl.erl b/lib/common_test/src/test_server_ctrl.erl
index eeefc2af45..47251e2832 100644
--- a/lib/common_test/src/test_server_ctrl.erl
+++ b/lib/common_test/src/test_server_ctrl.erl
@@ -83,6 +83,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-compile(nowarn_obsolete_bool_op).
+
-include("test_server_internal.hrl").
-include_lib("kernel/include/file.hrl").
-define(suite_ext, "_SUITE").
diff --git a/lib/compiler/src/Makefile b/lib/compiler/src/Makefile
index 00d1792227..631f76e3ee 100644
--- a/lib/compiler/src/Makefile
+++ b/lib/compiler/src/Makefile
@@ -140,7 +140,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# FLAGS
# ----------------------------------------------------
-ERL_COMPILE_FLAGS += -Werror +warn_deprecated_catch
+ERL_COMPILE_FLAGS += -Werror +warn_deprecated_catch +warn_obsolete_bool_op
ERL_COMPILE_FLAGS += +inline +warn_unused_import \
-I../../stdlib/include -I$(EGEN) -W +warn_missing_spec
diff --git a/lib/compiler/src/beam_dict.erl b/lib/compiler/src/beam_dict.erl
index b129da09cb..acc18c8a4e 100644
--- a/lib/compiler/src/beam_dict.erl
+++ b/lib/compiler/src/beam_dict.erl
@@ -32,6 +32,8 @@
string_table/1,lambda_table/1,literal_table/1,
line_table/1,type_table/1,debug_table/1]).
+-compile(nowarn_obsolete_bool_op).
+
-include("beam_types.hrl").
-type label() :: beam_asm:label().
diff --git a/lib/compiler/src/beam_ssa_opt.erl b/lib/compiler/src/beam_ssa_opt.erl
index dbf4ec96b2..ac7243a076 100644
--- a/lib/compiler/src/beam_ssa_opt.erl
+++ b/lib/compiler/src/beam_ssa_opt.erl
@@ -40,6 +40,8 @@
-moduledoc false.
-export([module/2]).
+-compile(nowarn_obsolete_bool_op).
+
-include("beam_ssa_opt.hrl").
-import(lists, [all/2,append/1,droplast/1,duplicate/2,flatten/1,foldl/3,
diff --git a/lib/compiler/src/beam_types.erl b/lib/compiler/src/beam_types.erl
index 500f13bec7..d2fb473519 100644
--- a/lib/compiler/src/beam_types.erl
+++ b/lib/compiler/src/beam_types.erl
@@ -23,6 +23,8 @@
-module(beam_types).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-define(BEAM_TYPES_INTERNAL, true).
-include("beam_types.hrl").
diff --git a/lib/compiler/src/cerl_inline.erl b/lib/compiler/src/cerl_inline.erl
index b1b2e32467..7b11a5afce 100644
--- a/lib/compiler/src/cerl_inline.erl
+++ b/lib/compiler/src/cerl_inline.erl
@@ -39,6 +39,8 @@
-module(cerl_inline).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([core_transform/2, transform/1, transform/2]).
-import(cerl, [abstract/1, alias_pat/1, alias_var/1, apply_args/1,
diff --git a/lib/compiler/src/sys_pre_attributes.erl b/lib/compiler/src/sys_pre_attributes.erl
index e984ef7841..03cc1d6d8d 100644
--- a/lib/compiler/src/sys_pre_attributes.erl
+++ b/lib/compiler/src/sys_pre_attributes.erl
@@ -24,6 +24,8 @@
-module(sys_pre_attributes).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([parse_transform/2]).
-define(OPTION_TAG, attributes).
diff --git a/lib/compiler/src/v3_core.erl b/lib/compiler/src/v3_core.erl
index 98b4f26cbc..06151bff64 100644
--- a/lib/compiler/src/v3_core.erl
+++ b/lib/compiler/src/v3_core.erl
@@ -82,6 +82,8 @@
-module(v3_core).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([module/2,format_error/1]).
-import(lists, [all/2,any/2,append/1,droplast/1,duplicate/2,
diff --git a/lib/dialyzer/src/Makefile b/lib/dialyzer/src/Makefile
index d607ce4f35..6d7062a7f8 100644
--- a/lib/dialyzer/src/Makefile
+++ b/lib/dialyzer/src/Makefile
@@ -97,7 +97,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# ----------------------------------------------------
ERL_COMPILE_FLAGS += -Werror
-ERL_COMPILE_FLAGS += +warn_export_vars +warn_unused_import +warn_missing_spec
+ERL_COMPILE_FLAGS += +warn_export_vars +warn_unused_import +warn_missing_spec +warn_obsolete_bool_op
# ----------------------------------------------------
# Targets
diff --git a/lib/dialyzer/src/dialyzer_dataflow.erl b/lib/dialyzer/src/dialyzer_dataflow.erl
index ad18673d7e..624e9c1c63 100644
--- a/lib/dialyzer/src/dialyzer_dataflow.erl
+++ b/lib/dialyzer/src/dialyzer_dataflow.erl
@@ -32,6 +32,8 @@
-module(dialyzer_dataflow).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([get_fun_types/5, get_warnings/5, format_args/3]).
-include("dialyzer.hrl").
diff --git a/lib/dialyzer/src/dialyzer_utils.erl b/lib/dialyzer/src/dialyzer_utils.erl
index d1bfdd5531..09e736d78e 100644
--- a/lib/dialyzer/src/dialyzer_utils.erl
+++ b/lib/dialyzer/src/dialyzer_utils.erl
@@ -31,6 +31,8 @@
-module(dialyzer_utils).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([
format_sig/1,
format_sig/2,
diff --git a/lib/dialyzer/src/erl_types.erl b/lib/dialyzer/src/erl_types.erl
index dbe15d73be..76f0f4e5f8 100644
--- a/lib/dialyzer/src/erl_types.erl
+++ b/lib/dialyzer/src/erl_types.erl
@@ -36,6 +36,8 @@
-module(erl_types).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([any_none/1,
any_none_or_unit/1,
lookup_record/3,
diff --git a/lib/diameter/src/Makefile b/lib/diameter/src/Makefile
index 4656325076..0cd3c95634 100644
--- a/lib/diameter/src/Makefile
+++ b/lib/diameter/src/Makefile
@@ -109,7 +109,7 @@ endif
# ----------------------------------------------------
ifeq ($(TYPE),debug)
-ERL_COMPILE_FLAGS += -Ddebug
+ERL_COMPILE_FLAGS += -Ddebug +warn_obsolete_bool_op
endif
# The "warn" flag is on by default, so unless we add the
diff --git a/lib/diameter/src/info/diameter_info.erl b/lib/diameter/src/info/diameter_info.erl
index b2bfed26e1..ab245fd9c2 100644
--- a/lib/diameter/src/info/diameter_info.erl
+++ b/lib/diameter/src/info/diameter_info.erl
@@ -28,6 +28,8 @@
-module(diameter_info).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([usage/1,
format/1,
format/2,
diff --git a/lib/et/examples/et_demo.erl b/lib/et/examples/et_demo.erl
index 0234afcfba..a80b946c01 100644
--- a/lib/et/examples/et_demo.erl
+++ b/lib/et/examples/et_demo.erl
@@ -25,6 +25,8 @@
-module(et_demo).
+-compile(nowarn_obsolete_bool_op).
+
-export([
sim_trans/0, sim_trans/1,
live_trans/0, live_trans/1,
diff --git a/lib/et/src/Makefile b/lib/et/src/Makefile
index 977620bd2a..279e733c17 100644
--- a/lib/et/src/Makefile
+++ b/lib/et/src/Makefile
@@ -23,7 +23,7 @@
#
include $(ERL_TOP)/make/target.mk
-ERL_COMPILE_FLAGS += -W +warn_unused_vars
+ERL_COMPILE_FLAGS += -W +warn_unused_vars +warn_obsolete_bool_op
ifeq ($(TYPE),debug)
ERL_COMPILE_FLAGS += -Ddebug
diff --git a/lib/eunit/src/Makefile b/lib/eunit/src/Makefile
index b5dc06dc82..e08fad6c02 100644
--- a/lib/eunit/src/Makefile
+++ b/lib/eunit/src/Makefile
@@ -53,7 +53,7 @@ EBIN = ../ebin
INCLUDE=../include
ERL_COMPILE_FLAGS += -pa $(EBIN) -pa ../../stdlib/ebin -I$(INCLUDE) \
- +warn_deprecated_catch +warn_unused_import -Werror
+ +warn_deprecated_catch +warn_obsolete_bool_op +warn_unused_import -Werror
PARSE_TRANSFORM = eunit_autoexport.erl
diff --git a/lib/eunit/src/eunit_data.erl b/lib/eunit/src/eunit_data.erl
index 2bb842082e..cb8750c5f8 100644
--- a/lib/eunit/src/eunit_data.erl
+++ b/lib/eunit/src/eunit_data.erl
@@ -34,6 +34,8 @@
-module(eunit_data).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-include("eunit.hrl").
-include("eunit_internal.hrl").
diff --git a/lib/inets/src/http_client/httpc_response.erl b/lib/inets/src/http_client/httpc_response.erl
index 38049d8e0b..03adef44bc 100644
--- a/lib/inets/src/http_client/httpc_response.erl
+++ b/lib/inets/src/http_client/httpc_response.erl
@@ -26,6 +26,8 @@
-include_lib("inets/src/http_lib/http_internal.hrl").
-include("httpc_internal.hrl").
+-compile(nowarn_obsolete_bool_op).
+
%% API
%% Avoid warning for local function error/2 clashing with autoimported BIF.
-compile({no_auto_import,[error/2]}).
diff --git a/lib/inets/src/http_lib/http_chunk.erl b/lib/inets/src/http_lib/http_chunk.erl
index d64f590e00..38b60ffa4e 100644
--- a/lib/inets/src/http_lib/http_chunk.erl
+++ b/lib/inets/src/http_lib/http_chunk.erl
@@ -25,6 +25,8 @@
-module(http_chunk).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-include("http_internal.hrl").
%% API
diff --git a/lib/inets/src/http_server/httpd_request_handler.erl b/lib/inets/src/http_server/httpd_request_handler.erl
index 0da2c2fd04..a18c09a59d 100644
--- a/lib/inets/src/http_server/httpd_request_handler.erl
+++ b/lib/inets/src/http_server/httpd_request_handler.erl
@@ -26,6 +26,7 @@
-module(httpd_request_handler).
-moduledoc false.
-compile(nowarn_deprecated_callback).
+-compile(nowarn_obsolete_bool_op).
-behaviour(gen_server).
%% Application internal API
diff --git a/lib/inets/src/http_server/mod_cgi.erl b/lib/inets/src/http_server/mod_cgi.erl
index 98fff7e4db..a7867842cf 100644
--- a/lib/inets/src/http_server/mod_cgi.erl
+++ b/lib/inets/src/http_server/mod_cgi.erl
@@ -30,6 +30,8 @@
%%% Callback API
-export([do/1, store/2]).
+-compile(nowarn_obsolete_bool_op).
+
-include("http_internal.hrl").
-include("httpd_internal.hrl").
-include("httpd.hrl").
diff --git a/lib/inets/src/http_server/mod_esi.erl b/lib/inets/src/http_server/mod_esi.erl
index 85f25a3106..ed0cc9475f 100644
--- a/lib/inets/src/http_server/mod_esi.erl
+++ b/lib/inets/src/http_server/mod_esi.erl
@@ -40,6 +40,8 @@ them as common CGI scripts.
-export_type([session_id/0]).
+-compile(nowarn_obsolete_bool_op).
+
-include("httpd.hrl").
-include("httpd_internal.hrl").
-include_lib("kernel/include/logger.hrl").
diff --git a/lib/inets/src/inets_app/inets.mk b/lib/inets/src/inets_app/inets.mk
index b463078161..95fd563588 100644
--- a/lib/inets/src/inets_app/inets.mk
+++ b/lib/inets/src/inets_app/inets.mk
@@ -38,5 +38,5 @@ INETS_APP_VSN_COMPILE_FLAGS = \
INETS_ERL_COMPILE_FLAGS += \
-pa $(ERL_TOP)/lib/inets/ebin \
- $(INETS_APP_VSN_COMPILE_FLAGS)
+ $(INETS_APP_VSN_COMPILE_FLAGS) +warn_obsolete_bool_op
diff --git a/lib/kernel/src/Makefile b/lib/kernel/src/Makefile
index c5c8a225ea..e868f5c58d 100644
--- a/lib/kernel/src/Makefile
+++ b/lib/kernel/src/Makefile
@@ -189,7 +189,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# FLAGS
# ----------------------------------------------------
-ERL_COMPILE_FLAGS += -Werror +warn_deprecated_catch
+ERL_COMPILE_FLAGS += -Werror +warn_deprecated_catch +warn_obsolete_bool_op
ERL_COMPILE_FLAGS += -I../include
diff --git a/lib/kernel/src/application.erl b/lib/kernel/src/application.erl
index 02be8ae1d1..1f6ec86265 100644
--- a/lib/kernel/src/application.erl
+++ b/lib/kernel/src/application.erl
@@ -64,6 +64,8 @@ For details about applications and behaviours, see
-export_type([start_type/0, restart_type/0]).
+-compile(nowarn_obsolete_bool_op).
+
%%%-----------------------------------------------------------------
-doc "The reason for the application to be started on the current node.".
diff --git a/lib/kernel/src/disk_log_server.erl b/lib/kernel/src/disk_log_server.erl
index 105f756f19..a432843b54 100644
--- a/lib/kernel/src/disk_log_server.erl
+++ b/lib/kernel/src/disk_log_server.erl
@@ -23,6 +23,8 @@
-moduledoc false.
-behaviour(gen_server).
+-compile(nowarn_obsolete_bool_op).
+
-export([start_link/0, start/0, open/1, close/1,
get_log_pid/1, all/0]).
diff --git a/lib/kernel/src/file_io_server.erl b/lib/kernel/src/file_io_server.erl
index ebc836433b..3e2efdf23b 100644
--- a/lib/kernel/src/file_io_server.erl
+++ b/lib/kernel/src/file_io_server.erl
@@ -22,6 +22,7 @@
-module(file_io_server).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
%% A simple file server for io to one file instance per server instance.
diff --git a/lib/kernel/src/inet_dns.erl b/lib/kernel/src/inet_dns.erl
index c2ff62a6ea..05f89e736b 100644
--- a/lib/kernel/src/inet_dns.erl
+++ b/lib/kernel/src/inet_dns.erl
@@ -43,6 +43,8 @@
-import(lists, [reverse/1]).
+-compile(nowarn_obsolete_bool_op).
+
-include("inet_int.hrl").
-include("inet_dns.hrl").
diff --git a/lib/kernel/src/os.erl b/lib/kernel/src/os.erl
index 6418c5f4d0..1043bc7041 100644
--- a/lib/kernel/src/os.erl
+++ b/lib/kernel/src/os.erl
@@ -35,6 +35,7 @@ a program to run on most platforms.
> Types" section.
""".
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
%% Provides a common operating system interface.
diff --git a/lib/megaco/src/app/megaco.erl b/lib/megaco/src/app/megaco.erl
index a44d59e5a1..c9700105ef 100644
--- a/lib/megaco/src/app/megaco.erl
+++ b/lib/megaco/src/app/megaco.erl
@@ -32,6 +32,8 @@ Main API of the Megaco application
Interface module for the Megaco application
""".
+-compile(nowarn_obsolete_bool_op).
+
%%-----------------------------------------------------------------
%% Public interface
%%-----------------------------------------------------------------
diff --git a/lib/megaco/src/app/megaco.mk b/lib/megaco/src/app/megaco.mk
index a188764659..acd2472282 100644
--- a/lib/megaco/src/app/megaco.mk
+++ b/lib/megaco/src/app/megaco.mk
@@ -57,5 +57,5 @@ MEGACO_APP_VSN_COMPILE_FLAGS = \
MEGACO_ERL_COMPILE_FLAGS += \
-pa $(ERL_TOP)/lib/et/ebin \
-pa $(ERL_TOP)/lib/megaco/ebin \
- $(MEGACO_APP_VSN_COMPILE_FLAGS)
+ $(MEGACO_APP_VSN_COMPILE_FLAGS) +warn_obsolete_bool_op
diff --git a/lib/megaco/src/engine/megaco_config.erl b/lib/megaco/src/engine/megaco_config.erl
index 2e8d2654aa..ca9658d787 100644
--- a/lib/megaco/src/engine/megaco_config.erl
+++ b/lib/megaco/src/engine/megaco_config.erl
@@ -28,6 +28,8 @@
-module(megaco_config).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-behaviour(gen_server).
%% Application internal exports
diff --git a/lib/megaco/src/engine/megaco_digit_map.erl b/lib/megaco/src/engine/megaco_digit_map.erl
index 845886f182..78607b82f5 100644
--- a/lib/megaco/src/engine/megaco_digit_map.erl
+++ b/lib/megaco/src/engine/megaco_digit_map.erl
@@ -70,6 +70,8 @@ but as of 27.0, its also documented.
""".
-moduledoc(#{since => "OTP 27.0"}).
+-compile(nowarn_obsolete_bool_op).
+
-export([parse/1, eval/1, eval/2, report/2, test/2]). % Public
-export([test_eval/2]). % Internal
diff --git a/lib/megaco/src/engine/megaco_erl_dist_encoder.erl b/lib/megaco/src/engine/megaco_erl_dist_encoder.erl
index 37a639978f..aaa6fdde2a 100644
--- a/lib/megaco/src/engine/megaco_erl_dist_encoder.erl
+++ b/lib/megaco/src/engine/megaco_erl_dist_encoder.erl
@@ -28,6 +28,8 @@
-module(megaco_erl_dist_encoder).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-behaviour(megaco_encoder).
-export([encode_message/3, decode_message/3,
diff --git a/lib/megaco/src/engine/megaco_messenger.erl b/lib/megaco/src/engine/megaco_messenger.erl
index 969bf3a493..b6f1eaa74f 100644
--- a/lib/megaco/src/engine/megaco_messenger.erl
+++ b/lib/megaco/src/engine/megaco_messenger.erl
@@ -28,6 +28,8 @@
-module(megaco_messenger).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
%% Application internal export
-export([
process_received_message/4, process_received_message/5,
diff --git a/lib/megaco/src/engine/megaco_messenger_misc.erl b/lib/megaco/src/engine/megaco_messenger_misc.erl
index 395f1caa29..eeffb56c7d 100644
--- a/lib/megaco/src/engine/megaco_messenger_misc.erl
+++ b/lib/megaco/src/engine/megaco_messenger_misc.erl
@@ -30,6 +30,8 @@
-module(megaco_messenger_misc).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
%% Application internal export
-export([encode_body/3,
encode_trans_request/2,
diff --git a/lib/megaco/src/engine/megaco_sdp.erl b/lib/megaco/src/engine/megaco_sdp.erl
index 1be74eeb2a..ce59f5cbf7 100644
--- a/lib/megaco/src/engine/megaco_sdp.erl
+++ b/lib/megaco/src/engine/megaco_sdp.erl
@@ -38,6 +38,7 @@ but as of 27.0 its also documented.
""".
-moduledoc(#{since => "OTP 27.0"}).
+-compile(nowarn_obsolete_bool_op).
%%----------------------------------------------------------------------
%% Include files
diff --git a/lib/megaco/src/engine/megaco_timer.erl b/lib/megaco/src/engine/megaco_timer.erl
index 37a68e1c3a..de09509713 100644
--- a/lib/megaco/src/engine/megaco_timer.erl
+++ b/lib/megaco/src/engine/megaco_timer.erl
@@ -28,6 +28,8 @@
-module(megaco_timer).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
%% Application internal export
-export([
init/1,
diff --git a/lib/megaco/src/flex/megaco_flex_scanner.erl b/lib/megaco/src/flex/megaco_flex_scanner.erl
index 1b9953f22e..69b7c75cc5 100644
--- a/lib/megaco/src/flex/megaco_flex_scanner.erl
+++ b/lib/megaco/src/flex/megaco_flex_scanner.erl
@@ -45,6 +45,8 @@ explicitly disable this even when flex support this. Use
`--disable-megaco-reentrant-flex-scanner` when configuring the application.
""".
+-compile(nowarn_obsolete_bool_op).
+
-export([is_enabled/0, is_reentrant_enabled/0, is_scanner_port/2]).
-export([start/0, start/1, stop/1, scan/2]).
diff --git a/lib/megaco/src/text/megaco_text_gen_v2.hrl b/lib/megaco/src/text/megaco_text_gen_v2.hrl
index 9460a1d3c7..586de901e9 100644
--- a/lib/megaco/src/text/megaco_text_gen_v2.hrl
+++ b/lib/megaco/src/text/megaco_text_gen_v2.hrl
@@ -20,6 +20,8 @@
%% %CopyrightEnd%
%%
+-compile(nowarn_obsolete_bool_op).
+
%%
%%----------------------------------------------------------------------
%% Purpose: Encode V2 Megaco/H.248 text messages from internal form
diff --git a/lib/megaco/src/text/megaco_text_gen_v3.hrl b/lib/megaco/src/text/megaco_text_gen_v3.hrl
index 8f9661bc43..429e0b15c8 100644
--- a/lib/megaco/src/text/megaco_text_gen_v3.hrl
+++ b/lib/megaco/src/text/megaco_text_gen_v3.hrl
@@ -20,6 +20,8 @@
%% %CopyrightEnd%
%%
+-compile(nowarn_obsolete_bool_op).
+
%%
%%----------------------------------------------------------------------
%% Purpose: Encode V3 Megaco/H.248 text messages from internal form
diff --git a/lib/megaco/src/text/megaco_text_scanner.erl b/lib/megaco/src/text/megaco_text_scanner.erl
index 7fc292ed0b..026f599a5b 100644
--- a/lib/megaco/src/text/megaco_text_scanner.erl
+++ b/lib/megaco/src/text/megaco_text_scanner.erl
@@ -27,6 +27,8 @@
-module('megaco_text_scanner').
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([scan/1, skip_sep_chars/2]).
-include_lib("megaco/include/megaco.hrl").
diff --git a/lib/mnesia/src/Makefile b/lib/mnesia/src/Makefile
index d2f7548f85..103f09a260 100644
--- a/lib/mnesia/src/Makefile
+++ b/lib/mnesia/src/Makefile
@@ -98,7 +98,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# FLAGS
# ----------------------------------------------------
ERL_COMPILE_FLAGS += \
- -Werror \
+ -Werror +warn_obsolete_bool_op \
+'{parse_transform,sys_pre_attributes}' \
+'{attribute,insert,vsn,"mnesia_$(MNESIA_VSN)"}'
diff --git a/lib/mnesia/src/mnesia_controller.erl b/lib/mnesia/src/mnesia_controller.erl
index f5030e4cd0..7ab6c648ce 100644
--- a/lib/mnesia/src/mnesia_controller.erl
+++ b/lib/mnesia/src/mnesia_controller.erl
@@ -43,6 +43,7 @@
-module(mnesia_controller).
-moduledoc false.
-compile([{nowarn_deprecated_function, [{erlang,phash,2}]}]).
+-compile(nowarn_obsolete_bool_op).
-behaviour(gen_server).
diff --git a/lib/mnesia/src/mnesia_dumper.erl b/lib/mnesia/src/mnesia_dumper.erl
index 1947c2de6c..e9a7dc5393 100644
--- a/lib/mnesia/src/mnesia_dumper.erl
+++ b/lib/mnesia/src/mnesia_dumper.erl
@@ -57,6 +57,8 @@
-import(mnesia_lib, [fatal/2, dbg_out/2]).
+-compile(nowarn_obsolete_bool_op).
+
-define(REGULATOR_NAME, mnesia_dumper_load_regulator).
-define(DumpToEtsMultiplier, 4).
diff --git a/lib/mnesia/src/mnesia_loader.erl b/lib/mnesia/src/mnesia_loader.erl
index f4d3846688..4910ac69f6 100644
--- a/lib/mnesia/src/mnesia_loader.erl
+++ b/lib/mnesia/src/mnesia_loader.erl
@@ -37,6 +37,8 @@
-include("mnesia.hrl").
+-compile(nowarn_obsolete_bool_op).
+
%% Local function in order to avoid external function call
val(Var) ->
case ?catch_val_and_stack(Var) of
diff --git a/lib/mnesia/src/mnesia_monitor.erl b/lib/mnesia/src/mnesia_monitor.erl
index 98f137043f..fbe6d4956f 100644
--- a/lib/mnesia/src/mnesia_monitor.erl
+++ b/lib/mnesia/src/mnesia_monitor.erl
@@ -24,6 +24,8 @@
-module(mnesia_monitor).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-behaviour(gen_server).
%% Public exports
diff --git a/lib/mnesia/src/mnesia_recover.erl b/lib/mnesia/src/mnesia_recover.erl
index 4a6c7fa200..229ad82c7d 100644
--- a/lib/mnesia/src/mnesia_recover.erl
+++ b/lib/mnesia/src/mnesia_recover.erl
@@ -24,6 +24,8 @@
-module(mnesia_recover).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-behaviour(gen_server).
-export([
diff --git a/lib/mnesia/src/mnesia_schema.erl b/lib/mnesia/src/mnesia_schema.erl
index dfa9efb265..62df7ed7e3 100644
--- a/lib/mnesia/src/mnesia_schema.erl
+++ b/lib/mnesia/src/mnesia_schema.erl
@@ -31,6 +31,8 @@
-module(mnesia_schema).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([
add_backend_type/2,
do_add_backend_type/2,
diff --git a/lib/mnesia/src/mnesia_tm.erl b/lib/mnesia/src/mnesia_tm.erl
index 3432bcbd67..9dfd8263fb 100644
--- a/lib/mnesia/src/mnesia_tm.erl
+++ b/lib/mnesia/src/mnesia_tm.erl
@@ -24,6 +24,8 @@
-module(mnesia_tm).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([
start/0,
init/1,
diff --git a/lib/parsetools/src/Makefile b/lib/parsetools/src/Makefile
index 8f4d905f04..736b1a3cb9 100644
--- a/lib/parsetools/src/Makefile
+++ b/lib/parsetools/src/Makefile
@@ -62,7 +62,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# FLAGS
# ----------------------------------------------------
ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/stdlib/include \
- -Werror
+ -Werror +warn_obsolete_bool_op
# ----------------------------------------------------
# Targets
diff --git a/lib/parsetools/src/leex.erl b/lib/parsetools/src/leex.erl
index 84af62f409..dcf44e9d63 100644
--- a/lib/parsetools/src/leex.erl
+++ b/lib/parsetools/src/leex.erl
@@ -250,6 +250,8 @@ Floats (\+|-)?[0-9]+\.[0-9]+((E|e)(\+|-)?[0-9]+)?
> current version of `leex` and generates a parse error.
""".
+-compile(nowarn_obsolete_bool_op).
+
-export([compile/3,file/1,file/2,format_error/1]).
-import(lists, [member/2,reverse/1,sort/1,keysort/2,
diff --git a/lib/parsetools/src/yecc.erl b/lib/parsetools/src/yecc.erl
index 8782d29e6d..c9d2b681af 100644
--- a/lib/parsetools/src/yecc.erl
+++ b/lib/parsetools/src/yecc.erl
@@ -487,6 +487,8 @@ lib/parsetools/include/yeccpre.hrl
* Kernighan & Pike: The UNIX programming environment, 1984.
""".
+-compile(nowarn_obsolete_bool_op).
+
-export([compile/3, file/1, file/2, format_error/1]).
-export_type([option/0, yecc_ret/0]).
diff --git a/lib/snmp/src/agent/snmpa_conf.erl b/lib/snmp/src/agent/snmpa_conf.erl
index 3428e1cc5d..0582cc522e 100644
--- a/lib/snmp/src/agent/snmpa_conf.erl
+++ b/lib/snmp/src/agent/snmpa_conf.erl
@@ -29,6 +29,8 @@ manipulating (write/read/append) the config files of the SNMP agent.
""".
+-compile(nowarn_obsolete_bool_op).
+
-include("snmp_internal.hrl").
diff --git a/lib/snmp/src/agent/snmpa_get.erl b/lib/snmp/src/agent/snmpa_get.erl
index 011d4701cf..fd63feb1c5 100644
--- a/lib/snmp/src/agent/snmpa_get.erl
+++ b/lib/snmp/src/agent/snmpa_get.erl
@@ -25,6 +25,7 @@
-behaviour(snmpa_get_mechanism).
+-compile(nowarn_obsolete_bool_op).
%%%-----------------------------------------------------------------
%%% snmpa_get_mechanism exports
diff --git a/lib/snmp/src/agent/snmpa_supervisor.erl b/lib/snmp/src/agent/snmpa_supervisor.erl
index a4aef7cd15..4c581f24d3 100644
--- a/lib/snmp/src/agent/snmpa_supervisor.erl
+++ b/lib/snmp/src/agent/snmpa_supervisor.erl
@@ -30,6 +30,8 @@ sub-agent).
-behaviour(supervisor).
+-compile(nowarn_obsolete_bool_op).
+
%% External exports
-export([start_link/2, stop/0, stop/1]).
-export([start_sub_sup/1, start_master_sup/1]).
diff --git a/lib/snmp/src/app/Makefile b/lib/snmp/src/app/Makefile
index 1c8a146e35..0be416888f 100644
--- a/lib/snmp/src/app/Makefile
+++ b/lib/snmp/src/app/Makefile
@@ -82,7 +82,7 @@ endif
# FLAGS
# ----------------------------------------------------
-ERL_COMPILE_FLAGS += -pa $(ERL_TOP)/lib/snmp/ebin
+ERL_COMPILE_FLAGS += -pa $(ERL_TOP)/lib/snmp/ebin +warn_obsolete_bool_op
ifeq ($(SNMP_WARNING_AS_ERROR),)
ERL_COMPILE_FLAGS += -Werror
diff --git a/lib/snmp/src/misc/snmp_config.erl b/lib/snmp/src/misc/snmp_config.erl
index 9b1b2bb751..180debd363 100644
--- a/lib/snmp/src/misc/snmp_config.erl
+++ b/lib/snmp/src/misc/snmp_config.erl
@@ -28,6 +28,8 @@
-include("snmp_usm.hrl").
-include("snmp_internal.hrl").
+-compile(nowarn_obsolete_bool_op).
+
%% Avoid warning for local function error/1 clashing with autoimported BIF.
-compile({no_auto_import,[error/1]}).
-export([config/0]).
diff --git a/lib/snmp/src/misc/snmp_log.erl b/lib/snmp/src/misc/snmp_log.erl
index 39b3b56562..0082be5cbe 100644
--- a/lib/snmp/src/misc/snmp_log.erl
+++ b/lib/snmp/src/misc/snmp_log.erl
@@ -23,6 +23,7 @@
-module(snmp_log).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
-export([
create/4, create/5, create/6, open/1, open/2,
diff --git a/lib/ssh/src/Makefile b/lib/ssh/src/Makefile
index b63a10710f..9a9b6d9c0f 100644
--- a/lib/ssh/src/Makefile
+++ b/lib/ssh/src/Makefile
@@ -128,7 +128,7 @@ INTERNAL_HRL_FILES = \
# ----------------------------------------------------
# FLAGS
# ----------------------------------------------------
-EXTRA_ERLC_FLAGS = +warn_unused_vars +nowarn_deprecated_callback
+EXTRA_ERLC_FLAGS = +warn_unused_vars +nowarn_deprecated_callback +warn_obsolete_bool_op
ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/kernel/src \
-pz $(EBIN) \
-pz $(ERL_TOP)/lib/public_key/ebin \
diff --git a/lib/ssh/src/ssh_connection.erl b/lib/ssh/src/ssh_connection.erl
index a3a6c49618..2de793e0c0 100644
--- a/lib/ssh/src/ssh_connection.erl
+++ b/lib/ssh/src/ssh_connection.erl
@@ -45,6 +45,8 @@ these messages are handled by
[handle_ssh_msg/2](`c:ssh_client_channel:handle_ssh_msg/2`).
""".
+-compile(nowarn_obsolete_bool_op).
+
-include_lib("kernel/include/logger.hrl").
-include("ssh.hrl").
diff --git a/lib/ssh/src/ssh_connection_handler.erl b/lib/ssh/src/ssh_connection_handler.erl
index d7cb8dc381..0dba52ffff 100644
--- a/lib/ssh/src/ssh_connection_handler.erl
+++ b/lib/ssh/src/ssh_connection_handler.erl
@@ -31,6 +31,8 @@
-module(ssh_connection_handler).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-behaviour(gen_statem).
-include("ssh.hrl").
diff --git a/lib/ssh/src/ssh_lib.erl b/lib/ssh/src/ssh_lib.erl
index b9a8169efd..5f522a6038 100644
--- a/lib/ssh/src/ssh_lib.erl
+++ b/lib/ssh/src/ssh_lib.erl
@@ -27,6 +27,8 @@
-module(ssh_lib).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-export([
format_address_port/2, format_address_port/1,
format_address/1,
diff --git a/lib/ssl/src/Makefile b/lib/ssl/src/Makefile
index 95961af988..1898a43204 100644
--- a/lib/ssl/src/Makefile
+++ b/lib/ssl/src/Makefile
@@ -163,7 +163,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# ----------------------------------------------------
# FLAGS
# ----------------------------------------------------
-EXTRA_ERLC_FLAGS = +warn_unused_vars -Werror +nowarn_deprecated_callback
+EXTRA_ERLC_FLAGS = +warn_unused_vars -Werror +nowarn_deprecated_callback +warn_obsolete_bool_op
ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/kernel/src \
-pz $(EBIN) \
-pz $(ERL_TOP)/lib/public_key/ebin \
diff --git a/lib/ssl/src/ssl_cipher.erl b/lib/ssl/src/ssl_cipher.erl
index 98729356a3..8744eb5714 100644
--- a/lib/ssl/src/ssl_cipher.erl
+++ b/lib/ssl/src/ssl_cipher.erl
@@ -29,6 +29,8 @@
-module(ssl_cipher).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-include("ssl_internal.hrl").
-include("ssl_record.hrl").
-include("ssl_cipher.hrl").
diff --git a/lib/ssl/src/ssl_gen_statem.erl b/lib/ssl/src/ssl_gen_statem.erl
index 5bcd279495..57fe7579ce 100644
--- a/lib/ssl/src/ssl_gen_statem.erl
+++ b/lib/ssl/src/ssl_gen_statem.erl
@@ -28,6 +28,8 @@
-module(ssl_gen_statem).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-include("ssl_api.hrl").
-include("ssl_internal.hrl").
-include("ssl_connection.hrl").
diff --git a/lib/ssl/src/ssl_handshake.erl b/lib/ssl/src/ssl_handshake.erl
index 851625412a..4bd24db2fc 100644
--- a/lib/ssl/src/ssl_handshake.erl
+++ b/lib/ssl/src/ssl_handshake.erl
@@ -27,6 +27,8 @@
-module(ssl_handshake).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
-include("ssl_handshake.hrl").
-include("ssl_record.hrl").
-include("ssl_cipher.hrl").
diff --git a/lib/stdlib/examples/erl_id_trans.erl b/lib/stdlib/examples/erl_id_trans.erl
index aa1ec94821..fa98cb4371 100644
--- a/lib/stdlib/examples/erl_id_trans.erl
+++ b/lib/stdlib/examples/erl_id_trans.erl
@@ -60,6 +60,8 @@ code is then transformed into other Erlang code.
%% N.B. if this module is to be used as a basis for transforms then
%% all the error cases must be handled otherwise this module just crashes!
+-compile(nowarn_obsolete_bool_op).
+
-export([parse_transform/2, parse_transform_info/0]).
-doc "Performs an identity transformation on Erlang forms, as an example.".
diff --git a/lib/stdlib/src/Makefile b/lib/stdlib/src/Makefile
index 9e4ab9edd4..6a4379af37 100644
--- a/lib/stdlib/src/Makefile
+++ b/lib/stdlib/src/Makefile
@@ -176,7 +176,7 @@ endif
# FLAGS
# ----------------------------------------------------
-ERL_COMPILE_FLAGS += -Werror +warn_deprecated_catch
+ERL_COMPILE_FLAGS += -Werror +warn_deprecated_catch +warn_obsolete_bool_op
ERL_COMPILE_FLAGS += -I../include -I../../kernel/include
ifeq ($(ERL_DETERMINISTIC),yes)
diff --git a/lib/stdlib/src/dets.erl b/lib/stdlib/src/dets.erl
index 10456a06cd..2e3baeb954 100644
--- a/lib/stdlib/src/dets.erl
+++ b/lib/stdlib/src/dets.erl
@@ -88,6 +88,7 @@ message.
`m:ets`, `m:mnesia`, `m:qlc`
""".
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
%% Disk based linear hashing lookup dictionary.
diff --git a/lib/stdlib/src/dets_v9.erl b/lib/stdlib/src/dets_v9.erl
index dd0f952cd8..e7bd4b2782 100644
--- a/lib/stdlib/src/dets_v9.erl
+++ b/lib/stdlib/src/dets_v9.erl
@@ -23,6 +23,7 @@
-moduledoc false.
-compile([{nowarn_deprecated_function, [{erlang,phash,2}]}]).
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
%% Dets files, implementation part. This module handles version 9.
diff --git a/lib/stdlib/src/erl_error.erl b/lib/stdlib/src/erl_error.erl
index 8bcb3e1370..e41862369e 100644
--- a/lib/stdlib/src/erl_error.erl
+++ b/lib/stdlib/src/erl_error.erl
@@ -35,6 +35,8 @@ The following functions are to be exported from an Error Info handler.
""".
-moduledoc(#{since => "OTP 24.0"}).
+-compile(nowarn_obsolete_bool_op).
+
%% Supported and documented exported functions in this module.
-export([format_exception/3, format_exception/4]).
diff --git a/lib/stdlib/src/erl_eval.erl b/lib/stdlib/src/erl_eval.erl
index acdbe6b44e..b72fb6b415 100644
--- a/lib/stdlib/src/erl_eval.erl
+++ b/lib/stdlib/src/erl_eval.erl
@@ -127,6 +127,7 @@ the local function handler argument. A possible use is to call
to be called.
""".
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
%% An evaluator for Erlang abstract syntax.
diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl
index f21c4f7ea9..a1ef3078d9 100644
--- a/lib/stdlib/src/erl_lint.erl
+++ b/lib/stdlib/src/erl_lint.erl
@@ -86,6 +86,8 @@ Module:format_error(ErrorDescriptor)
map/2,mapfoldl/3,member/2,
reverse/1]).
+-compile(nowarn_obsolete_bool_op).
+
%% Removed functions
-removed([{modify_line,2,"use erl_parse:map_anno/2 instead"}]).
diff --git a/lib/stdlib/src/erl_pp.erl b/lib/stdlib/src/erl_pp.erl
index 688534b064..49018be811 100644
--- a/lib/stdlib/src/erl_pp.erl
+++ b/lib/stdlib/src/erl_pp.erl
@@ -59,6 +59,8 @@ expressions.
-import(erl_parse, [inop_prec/1,preop_prec/1,func_prec/0,max_prec/0,
type_inop_prec/1, type_preop_prec/1]).
+-compile(nowarn_obsolete_bool_op).
+
-define(DEFAULT_LINEWIDTH, 72).
-define(DEFAULT_INDENT, 4).
diff --git a/lib/stdlib/src/erl_stdlib_errors.erl b/lib/stdlib/src/erl_stdlib_errors.erl
index 31503da214..af88403410 100644
--- a/lib/stdlib/src/erl_stdlib_errors.erl
+++ b/lib/stdlib/src/erl_stdlib_errors.erl
@@ -24,6 +24,8 @@
-moduledoc false.
-export([format_error/2]).
+-compile(nowarn_obsolete_bool_op).
+
-spec format_error(Reason, StackTrace) -> ErrorMap when
Reason :: term(),
StackTrace :: erlang:stacktrace(),
diff --git a/lib/stdlib/src/erl_tar.erl b/lib/stdlib/src/erl_tar.erl
index c760a0da20..5b663d9933 100644
--- a/lib/stdlib/src/erl_tar.erl
+++ b/lib/stdlib/src/erl_tar.erl
@@ -109,6 +109,8 @@ opens a tar file on a remote machine using an SFTP channel.
add/3, add/4,
format_error/1]).
+-compile(nowarn_obsolete_bool_op).
+
-include_lib("kernel/include/file.hrl").
-include("erl_tar.hrl").
diff --git a/lib/stdlib/src/escript.erl b/lib/stdlib/src/escript.erl
index f370b45b4c..a65fae62b2 100644
--- a/lib/stdlib/src/escript.erl
+++ b/lib/stdlib/src/escript.erl
@@ -33,6 +33,8 @@ for more details on how to use escripts.
%% Internal API.
-export([start/0, start/1, parse_file/1]).
+-compile(nowarn_obsolete_bool_op).
+
%%-----------------------------------------------------------------------
-define(SHEBANG, "/usr/bin/env escript").
diff --git a/lib/stdlib/src/filename.erl b/lib/stdlib/src/filename.erl
index 5afcb29d82..e4ed474ac9 100644
--- a/lib/stdlib/src/filename.erl
+++ b/lib/stdlib/src/filename.erl
@@ -121,6 +121,8 @@ the `m:file` module.
%% Undocumented and unsupported exports.
-export([append/2]).
+-compile(nowarn_obsolete_bool_op).
+
-include_lib("kernel/include/file.hrl").
-define(IS_DRIVELETTER(Letter),
diff --git a/lib/stdlib/src/io_lib_fread.erl b/lib/stdlib/src/io_lib_fread.erl
index f26e81325e..df58b8c384 100644
--- a/lib/stdlib/src/io_lib_fread.erl
+++ b/lib/stdlib/src/io_lib_fread.erl
@@ -22,6 +22,7 @@
-module(io_lib_fread).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
%% Formatted input functions of io library.
diff --git a/lib/stdlib/src/io_lib_pretty.erl b/lib/stdlib/src/io_lib_pretty.erl
index 5793258c79..c74ac4f961 100644
--- a/lib/stdlib/src/io_lib_pretty.erl
+++ b/lib/stdlib/src/io_lib_pretty.erl
@@ -22,6 +22,8 @@
-module(io_lib_pretty).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
%%% Pretty printing Erlang terms
%%%
%%% In this module "print" means the formatted printing while "write"
diff --git a/lib/stdlib/src/ms_transform.erl b/lib/stdlib/src/ms_transform.erl
index a196940e9d..ea86858d8f 100644
--- a/lib/stdlib/src/ms_transform.erl
+++ b/lib/stdlib/src/ms_transform.erl
@@ -22,6 +22,7 @@
-module(ms_transform).
-moduledoc({file, "../doc/src/ms_transform.md"}).
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
-export([format_error/1,transform_from_shell/3,
diff --git a/lib/stdlib/src/proc_lib.erl b/lib/stdlib/src/proc_lib.erl
index 1c7faf8f9e..b6470e7d4c 100644
--- a/lib/stdlib/src/proc_lib.erl
+++ b/lib/stdlib/src/proc_lib.erl
@@ -62,6 +62,7 @@ processes that terminate as a result of this process terminating.
`m:logger`
""".
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
%% This module is used to set some initial information
diff --git a/lib/stdlib/src/qlc.erl b/lib/stdlib/src/qlc.erl
index e4fd42df44..227b324343 100644
--- a/lib/stdlib/src/qlc.erl
+++ b/lib/stdlib/src/qlc.erl
@@ -28,6 +28,7 @@
%% External exports
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
%% Avoid warning for local function error/1 clashing with autoimported BIF.
diff --git a/lib/stdlib/src/qlc_pt.erl b/lib/stdlib/src/qlc_pt.erl
index 188e63846c..5533c52d89 100644
--- a/lib/stdlib/src/qlc_pt.erl
+++ b/lib/stdlib/src/qlc_pt.erl
@@ -22,6 +22,7 @@
-module(qlc_pt).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
%%% Purpose: Implements the qlc Parse Transform.
diff --git a/lib/stdlib/src/shell.erl b/lib/stdlib/src/shell.erl
index 177803730c..bbefefaaa3 100644
--- a/lib/stdlib/src/shell.erl
+++ b/lib/stdlib/src/shell.erl
@@ -22,6 +22,7 @@
-module(shell).
-moduledoc({file, "../doc/src/shell.md"}).
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
-export([start/0, start/1, start/2, server/1, server/2, history/1, results/1]).
diff --git a/lib/stdlib/src/shell_docs.erl b/lib/stdlib/src/shell_docs.erl
index 2f169ea2c1..6d6e9f1e3c 100644
--- a/lib/stdlib/src/shell_docs.erl
+++ b/lib/stdlib/src/shell_docs.erl
@@ -64,6 +64,8 @@ be rendered as is.
-include_lib("kernel/include/eep48.hrl").
+-compile(nowarn_obsolete_bool_op).
+
-export([render/2, render/3, render/4, render/5]).
-export([render_type/2, render_type/3, render_type/4, render_type/5]).
-export([render_callback/2, render_callback/3, render_callback/4, render_callback/5]).
diff --git a/lib/stdlib/src/sofs.erl b/lib/stdlib/src/sofs.erl
index e0b2be7f9c..ba896e69a7 100644
--- a/lib/stdlib/src/sofs.erl
+++ b/lib/stdlib/src/sofs.erl
@@ -22,6 +22,7 @@
-module(sofs).
-moduledoc({file, "../doc/src/sofs.md"}).
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
-export([from_term/1, from_term/2, from_external/2, empty_set/0,
diff --git a/lib/stdlib/src/unicode.erl b/lib/stdlib/src/unicode.erl
index 7186770a60..92f32f9656 100644
--- a/lib/stdlib/src/unicode.erl
+++ b/lib/stdlib/src/unicode.erl
@@ -59,6 +59,7 @@ normalization can be found in the
[Unicode FAQ](http://unicode.org/faq/normalization.html).
""".
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
-export([characters_to_list/1, characters_to_list_int/2,
diff --git a/lib/syntax_tools/src/Makefile b/lib/syntax_tools/src/Makefile
index 21b94557e4..1f72ba920c 100644
--- a/lib/syntax_tools/src/Makefile
+++ b/lib/syntax_tools/src/Makefile
@@ -53,7 +53,7 @@ INCLUDE=../include
ERL_COMPILE_FLAGS += -pa $(EBIN) -pa ./ -I$(INCLUDE)
-ERL_COMPILE_FLAGS += +warn_deprecated_catch +warn_unused_import -Werror # +warn_missing_spec +warn_untyped_record
+ERL_COMPILE_FLAGS += +warn_deprecated_catch +warn_obsolete_bool_op +warn_unused_import -Werror # +warn_missing_spec +warn_untyped_record
SOURCES=erl_syntax.erl erl_prettypr.erl erl_syntax_lib.erl \
erl_comment_scan.erl erl_recomment.erl epp_dodger.erl \
diff --git a/lib/syntax_tools/src/erl_prettypr.erl b/lib/syntax_tools/src/erl_prettypr.erl
index 0ff00ef5cb..88edc6f089 100644
--- a/lib/syntax_tools/src/erl_prettypr.erl
+++ b/lib/syntax_tools/src/erl_prettypr.erl
@@ -38,6 +38,7 @@ This module is a front end to the pretty-printing library module `prettypr`, for
text formatting of abstract syntax trees defined by the module `erl_syntax`.
""".
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
-export([format/1, format/2, best/1, best/2, layout/1, layout/2,
diff --git a/lib/syntax_tools/src/erl_syntax.erl b/lib/syntax_tools/src/erl_syntax.erl
index b17aeb2a08..ba4eafc9de 100644
--- a/lib/syntax_tools/src/erl_syntax.erl
+++ b/lib/syntax_tools/src/erl_syntax.erl
@@ -66,6 +66,7 @@ list `[]`. This can be relied on when writing functions that operate on syntax
trees.
""".
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
-export([type/1,
diff --git a/lib/syntax_tools/src/erl_syntax_lib.erl b/lib/syntax_tools/src/erl_syntax_lib.erl
index 8ab68f60ff..ce66c8d7e5 100644
--- a/lib/syntax_tools/src/erl_syntax_lib.erl
+++ b/lib/syntax_tools/src/erl_syntax_lib.erl
@@ -38,6 +38,7 @@ This module contains utility functions for working with the abstract data type
defined in the module `m:erl_syntax`.
""".
+-compile(nowarn_obsolete_bool_op).
-compile(nowarn_deprecated_catch).
-export([analyze_application/1, analyze_attribute/1,
diff --git a/lib/syntax_tools/src/prettypr.erl b/lib/syntax_tools/src/prettypr.erl
index 3a44150057..cb94470e3a 100644
--- a/lib/syntax_tools/src/prettypr.erl
+++ b/lib/syntax_tools/src/prettypr.erl
@@ -53,6 +53,8 @@ the `text_par/2` function, as in the following example:
```
""".
+-compile(nowarn_obsolete_bool_op).
+
-export([above/2, beside/2, best/3, break/1, empty/0, floating/1,
floating/3, follow/2, follow/3, format/1, format/2, format/3,
nest/2, par/1, par/2, sep/1, text/1, null_text/1, text_par/1,
diff --git a/lib/tftp/src/Makefile b/lib/tftp/src/Makefile
index 1158d2f3ae..97f6079a67 100644
--- a/lib/tftp/src/Makefile
+++ b/lib/tftp/src/Makefile
@@ -71,7 +71,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
# ----------------------------------------------------
# FLAGS
# ----------------------------------------------------
-EXTRA_ERLC_FLAGS = +warn_unused_vars +nowarn_missing_spec_documented
+EXTRA_ERLC_FLAGS = +warn_unused_vars +nowarn_missing_spec_documented +warn_obsolete_bool_op
ERL_COMPILE_FLAGS += \
-pz $(EBIN) \
$(EXTRA_ERLC_FLAGS)
diff --git a/lib/tftp/src/tftp_lib.erl b/lib/tftp/src/tftp_lib.erl
index 4a343560b3..d30d6277db 100644
--- a/lib/tftp/src/tftp_lib.erl
+++ b/lib/tftp/src/tftp_lib.erl
@@ -32,6 +32,8 @@
-module(tftp_lib).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
%%-------------------------------------------------------------------
%% Interface
%%-------------------------------------------------------------------
diff --git a/lib/wx/examples/simple/menu.erl b/lib/wx/examples/simple/menu.erl
index dc225abd06..8abdd2145e 100644
--- a/lib/wx/examples/simple/menu.erl
+++ b/lib/wx/examples/simple/menu.erl
@@ -32,6 +32,8 @@
-export([start/0]).
+-compile(nowarn_obsolete_bool_op).
+
%%%Lots of IDs to declare!
-define(menuID_FILE_QUIT, ?wxID_EXIT).
-define(menuID_FILE_CLEAR_LOG, 100).
diff --git a/lib/wx/examples/sudoku/sudoku_game.erl b/lib/wx/examples/sudoku/sudoku_game.erl
index fb57ef51ca..4acea4c9c8 100644
--- a/lib/wx/examples/sudoku/sudoku_game.erl
+++ b/lib/wx/examples/sudoku/sudoku_game.erl
@@ -25,6 +25,8 @@
indx/1, rcm/1, level/1]).
-include("sudoku.hrl").
+-compile(nowarn_obsolete_bool_op).
+
init(GFX) ->
Empty = empty_table(#s{}),
Add = fun({Butt,Val},SN) ->
diff --git a/lib/wx/src/Makefile b/lib/wx/src/Makefile
index e627ad1cb7..daec466c49 100644
--- a/lib/wx/src/Makefile
+++ b/lib/wx/src/Makefile
@@ -28,7 +28,7 @@ EGEN = gen
EBIN = ../ebin
ERLC = erlc
ERLINC = ../include
-ERL_COMPILE_FLAGS += -I$(ERLINC) -I${ERL_TOP}/lib +warn_unused_vars +nowarn_missing_doc
+ERL_COMPILE_FLAGS += -I$(ERLINC) -I${ERL_TOP}/lib +warn_unused_vars +nowarn_missing_doc +warn_obsolete_bool_op
ifeq ($(CAN_BUILD_DRIVER), true)
ERL_COMPILE_FLAGS += -DCAN_BUILD_DRIVER
diff --git a/lib/xmerl/src/Makefile b/lib/xmerl/src/Makefile
index a90c61da37..37fdbe6bc5 100644
--- a/lib/xmerl/src/Makefile
+++ b/lib/xmerl/src/Makefile
@@ -127,7 +127,7 @@ TARGET_FILES = $(MODULES:%=$(EBIN)/%.$(EMULATOR)) $(APP_TARGET) $(APPUP_TARGET)
# ----------------------------------------------------
ERL_COMPILE_FLAGS += \
-I ../include \
- +warn_unused_vars
+ +warn_unused_vars +warn_obsolete_bool_op
# +bin_opt_info
diff --git a/lib/xmerl/src/xmerl_scan.erl b/lib/xmerl/src/xmerl_scan.erl
index 57e78fbe25..9cb09275c8 100644
--- a/lib/xmerl/src/xmerl_scan.erl
+++ b/lib/xmerl/src/xmerl_scan.erl
@@ -53,6 +53,8 @@ See also the
-export_type([xmlElement/0, document/0]).
+-compile(nowarn_obsolete_bool_op).
+
%-define(debug, 1).
-include("xmerl.hrl"). % record def, macros
-include("xmerl_internal.hrl").
diff --git a/lib/xmerl/src/xmerl_xpath_pred.erl b/lib/xmerl/src/xmerl_xpath_pred.erl
index 20d9e76130..a3f83fb44a 100644
--- a/lib/xmerl/src/xmerl_xpath_pred.erl
+++ b/lib/xmerl/src/xmerl_xpath_pred.erl
@@ -25,6 +25,8 @@
-module(xmerl_xpath_pred).
-moduledoc false.
+-compile(nowarn_obsolete_bool_op).
+
%% API
-export([eval/2]).
--
2.51.0