File 0574-stdlib-Fix-a-bug-in-the-Erlang-Pretty-Printer.patch of Package erlang

From 9502b4256d5c310fcac7355c71c3024851ad6751 Mon Sep 17 00:00:00 2001
From: Hans Bolinder <hasse@erlang.org>
Date: Mon, 18 Feb 2019 15:34:22 +0100
Subject: [PATCH] stdlib: Fix a bug in the Erlang Pretty Printer

Long atom names in combination with <c><<>></c> could cause a crash.
---
 lib/stdlib/src/erl_pp.erl        |  4 +++-
 lib/stdlib/test/erl_pp_SUITE.erl | 11 ++++++++---
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/lib/stdlib/src/erl_pp.erl b/lib/stdlib/src/erl_pp.erl
index dd302a2880..ada3ff5de3 100644
--- a/lib/stdlib/src/erl_pp.erl
+++ b/lib/stdlib/src/erl_pp.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 1996-2018. All Rights Reserved.
+%% Copyright Ericsson AB 1996-2019. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -697,6 +697,8 @@ fun_info(Extra) ->
 
 %% BITS:
 
+bit_grp([], _Opts) ->
+    leaf("<<>>");
 bit_grp(Fs, Opts) ->
     append([['<<'], [bit_elems(Fs, Opts)], ['>>']]).
 
diff --git a/lib/stdlib/test/erl_pp_SUITE.erl b/lib/stdlib/test/erl_pp_SUITE.erl
index dda8d0a12e..f5d80e7e68 100644
--- a/lib/stdlib/test/erl_pp_SUITE.erl
+++ b/lib/stdlib/test/erl_pp_SUITE.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2006-2018. All Rights Reserved.
+%% Copyright Ericsson AB 2006-2019. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -51,7 +51,7 @@
 	  otp_6321/1, otp_6911/1, otp_6914/1, otp_8150/1, otp_8238/1,
 	  otp_8473/1, otp_8522/1, otp_8567/1, otp_8664/1, otp_9147/1,
           otp_10302/1, otp_10820/1, otp_11100/1, otp_11861/1, pr_1014/1,
-          otp_13662/1, otp_14285/1]).
+          otp_13662/1, otp_14285/1, otp_15592/1]).
 
 %% Internal export.
 -export([ehook/6]).
@@ -81,7 +81,7 @@ groups() ->
       [otp_6321, otp_6911, otp_6914, otp_8150, otp_8238,
        otp_8473, otp_8522, otp_8567, otp_8664, otp_9147,
        otp_10302, otp_10820, otp_11100, otp_11861, pr_1014, otp_13662,
-       otp_14285]}].
+       otp_14285, otp_15592]}].
 
 init_per_suite(Config) ->
     Config.
@@ -1167,6 +1167,11 @@ otp_14285(_Config) ->
                                   [{encoding,latin1}])),
     ok.
 
+otp_15592(_Config) ->
+    ok = pp_expr(<<"long12345678901234567890123456789012345678901234"
+                   "56789012345678901234:f(<<>>)">>),
+    ok.
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 compile(Config, Tests) ->
-- 
2.16.4

openSUSE Build Service is sponsored by