From dbc9c91513baa428008d05122f046052a2adc647 Mon Sep 17 00:00:00 2001 From: David Mitchell Date: Sun, 26 Feb 2023 15:35:09 +0000 Subject: [PATCH] pp_goto: fix macro-in-macro compile error Turns out MSVC 1.42 doesn't like FOO(bar, #ifdef X 1 #else 0 #endif ); where FOO is a macro. --- pp_ctl.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pp_ctl.c b/pp_ctl.c index d91759e438..78206ab27a 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -3292,18 +3292,19 @@ PP(pp_goto) } else sv = AvARRAY(arg)[index]; - +#ifdef PERL_RC_STACK rpp_push_1( sv - ? -#ifdef PERL_RC_STACK - sv + ? sv : newSVavdefelem(arg, index, 1) -#else - (r ? SvREFCNT_inc_NN(sv_2mortal(sv)) : sv) - : sv_2mortal(newSVavdefelem(arg, index, 1)) -#endif ); +#else + rpp_push_1( + sv + ? (r ? SvREFCNT_inc_NN(sv_2mortal(sv)) : sv) + : sv_2mortal(newSVavdefelem(arg, index, 1)) + ); +#endif } }