diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/parsetools/src/yecc.erl | 8 | ||||
-rw-r--r-- | lib/parsetools/test/yecc_SUITE.erl | 37 | ||||
-rw-r--r-- | lib/ssl/doc/src/ssl.xml | 6 |
3 files changed, 43 insertions, 8 deletions
diff --git a/lib/parsetools/src/yecc.erl b/lib/parsetools/src/yecc.erl index 53292b037a..f9207d926e 100644 --- a/lib/parsetools/src/yecc.erl +++ b/lib/parsetools/src/yecc.erl @@ -2106,8 +2106,8 @@ output_state_actions(St0, State, State, {Actions, Jump}, SI) -> output_state_actions(St, State, JState, _XActions, _SI) -> fwrite(St, <<"%% yeccpars2_~w: see yeccpars2_~w\n\n">>, [State, JState]). -output_state_actions1(St, State, [], _IsFirst, normal, _SI) -> - output_state_actions_fini(State, St); +output_state_actions1(St, State, [], IsFirst, normal, _SI) -> + output_state_actions_fini(State, IsFirst, St); output_state_actions1(St0, State, [], IsFirst, {to, ToS}, _SI) -> St = delim(St0, IsFirst), fwrite(St, @@ -2151,9 +2151,9 @@ output_call_to_includefile(NewState, St) -> fwrite(St, <<" yeccpars1(S, ~w, Ss, Stack, T, Ts, Tzr)">>, [NewState]). -output_state_actions_fini(State, St0) -> +output_state_actions_fini(State, IsFirst, St0) -> %% Backward compatible. - St10 = delim(St0, false), + St10 = delim(St0, IsFirst), St = fwrite(St10, <<"yeccpars2_~w(_, _, _, _, T, _, _) ->\n">>, [State]), fwrite(St, <<" yeccerror(T).\n\n">>, []). diff --git a/lib/parsetools/test/yecc_SUITE.erl b/lib/parsetools/test/yecc_SUITE.erl index 3d66a2a525..9c865a1ec6 100644 --- a/lib/parsetools/test/yecc_SUITE.erl +++ b/lib/parsetools/test/yecc_SUITE.erl @@ -49,7 +49,7 @@ otp_5369/1, otp_6362/1, otp_7945/1, otp_8483/1, otp_8486/1, - otp_7292/1, otp_7969/1, otp_8919/1, otp_10302/1]). + otp_7292/1, otp_7969/1, otp_8919/1, otp_10302/1, otp_11269/1]). % Default timetrap timeout (set in init_per_testcase). -define(default_timeout, ?t:minutes(1)). @@ -76,7 +76,8 @@ groups() -> [empty, prec, yeccpre, lalr, old_yecc, other_examples]}, {bugs, [], [otp_5369, otp_6362, otp_7945, otp_8483, otp_8486]}, - {improvements, [], [otp_7292, otp_7969, otp_8919, otp_10302]}]. + {improvements, [], [otp_7292, otp_7969, otp_8919, otp_10302, + otp_11269]}]. init_per_suite(Config) -> Config. @@ -1963,6 +1964,38 @@ otp_10302(Config) when is_list(Config) -> run(Config, Ts), ok. +otp_11269(doc) -> + "OTP-11269. A bug."; +otp_11269(suite) -> []; +otp_11269(Config) when is_list(Config) -> + Dir = ?privdir, + Filename = filename:join(Dir, "OTP-11269.yrl"), + Ret = [return, {report, false}], + Pai = <<"Nonterminals + list list0 list1 newline_list. + + Terminals + '\n' semi. + + Rootsymbol list. + + Endsymbol '$end'. + + list -> newline_list list0 : '$2'. + + list0 -> list1 '\n' newline_list : '$1'. + + list1 -> list1 semi newline_list list1 : + {command_connect, '$1', '$4', semi}. + + newline_list -> newline_list '\n' : nil.">>, + ok = file:write_file(Filename, Pai), + {ok,ErlFile,[{_YrlFile,[{none,yecc,{conflicts,1,0}}]}]} = + yecc:file(Filename, Ret), + Opts = [return, warn_unused_vars,{outdir,Dir}], + {ok,'OTP-11269',_Warnings} = compile:file(ErlFile, Opts), + ok. + yeccpre_size() -> yeccpre_size(default_yeccpre()). diff --git a/lib/ssl/doc/src/ssl.xml b/lib/ssl/doc/src/ssl.xml index 1645eb15f3..6029a09730 100644 --- a/lib/ssl/doc/src/ssl.xml +++ b/lib/ssl/doc/src/ssl.xml @@ -86,7 +86,8 @@ {user_lookup_fun, {fun(), term()}}, {psk_identity, string()}, {srp_identity, {string(), string()}} | {ssl_imp, ssl_imp()} | {reuse_sessions, boolean()} | {reuse_session, fun()} {next_protocols_advertised, [binary()]} | - {client_preferred_next_protocols, client | server, [binary()]} + {client_preferred_next_protocols, client | server, [binary()]} | + {log_alert, boolean()} </c></p> <p><c>transportoption() = {cb_info, {CallbackModule::atom(), DataTag::atom(), ClosedTag::atom(), ErrTag:atom()}} @@ -446,7 +447,8 @@ fun(srp, Username :: string(), UserState :: term()) -> <tag>{psk_identity, string()}</tag> <item>Specifies the server identity hint the server presents to the client. </item> - + <tag>{log_alert, boolean()}</tag> + <item>If false, error reports will not be displayed.</item> </taglist> </section> |