File 5422-compiler-Fix-deprecation-handling-in-beam_doc.patch of Package erlang

From bad85ce0eaf1347c0860666eb2c3ff363e0231e7 Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Wed, 28 Feb 2024 13:34:01 +0100
Subject: [PATCH 2/6] compiler: Fix deprecation handling in beam_doc

---
 bootstrap/lib/compiler/ebin/beam_doc.beam     | Bin 18516 -> 21636 bytes
 lib/compiler/src/beam_doc.erl                 |  10 ++++++++++
 .../test/beam_doc_SUITE_data/deprecated.erl   |   4 ++--
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/compiler/src/beam_doc.erl b/lib/compiler/src/beam_doc.erl
index 94270a263b..f4c6ed46a9 100644
--- a/lib/compiler/src/beam_doc.erl
+++ b/lib/compiler/src/beam_doc.erl
@@ -287,6 +287,16 @@ preprocessing(AST, State) ->
                        end,
    foldl(PreprocessingFuns, State, AST).
 
+extract_deprecated({attribute, Anno, deprecated, Deprecations}, State)
+  when is_list(Deprecations) ->
+    lists:foldl(fun(D, S) ->
+                        extract_deprecated({attribute, Anno, deprecated, D}, S)
+                end, State, Deprecations);
+extract_deprecated({attribute, Anno, deprecated_type, Deprecations}, State)
+  when is_list(Deprecations) ->
+    lists:foldl(fun(D, S) ->
+                        extract_deprecated({attribute, Anno, deprecated_type, D}, S)
+                end, State, Deprecations);
 extract_deprecated({attribute, Anno, deprecated, {F, A}}, State) ->
     extract_deprecated({attribute, Anno, deprecated, {F, A, undefined}}, State);
 extract_deprecated({attribute, _, deprecated, {F, A, Reason}}, State) ->
diff --git a/lib/compiler/test/beam_doc_SUITE_data/deprecated.erl b/lib/compiler/test/beam_doc_SUITE_data/deprecated.erl
index a2edfec1b0..4a4147b46f 100644
--- a/lib/compiler/test/beam_doc_SUITE_data/deprecated.erl
+++ b/lib/compiler/test/beam_doc_SUITE_data/deprecated.erl
@@ -20,7 +20,7 @@
 -ifdef(ALL_WILDCARD).
 -deprecated({'_', '_', ?REASON}).
 -else.
--deprecated({test, 1, ?REASON}).
+-deprecated([{test, 1, ?REASON}]).
 -endif.
 -endif.
 -deprecated({test, 0}).
@@ -31,7 +31,7 @@
 -ifdef(ALL_WILDCARD).
 -deprecated_type({'_', '_', ?TREASON}).
 -else.
--deprecated_type({test, 1, ?TREASON}).
+-deprecated_type([{test, 1, ?TREASON}]).
 -endif.
 -endif.
 -deprecated_type({test, 0}).
-- 
2.35.3

openSUSE Build Service is sponsored by