This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
bug in change#3602 (cpp conditionals not allowed inside macro args)
[perl5.git] / sv.c
diff --git a/sv.c b/sv.c
index e44c533..a61d2ea 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -1217,14 +1217,13 @@ Perl_sv_2iv(pTHX_ register SV *sv)
            SvNVX(sv) = d;
            (void)SvNOK_on(sv);
            (void)SvIOK_on(sv);
-           DEBUG_c(PerlIO_printf(Perl_debug_log,
 #if defined(USE_LONG_DOUBLE)
-                                 "0x%lx 2nv(%Lg)\n",
+           DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%Lg)\n",
+                                 (unsigned long)sv, SvNVX(sv)));
 #else
-                                 "0x%lx 2nv(%g)\n",
+           DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%g)\n",
+                                 (unsigned long)sv, SvNVX(sv)));
 #endif
-                                 (unsigned long)sv,
-                                 SvNVX(sv)));
            if (SvNVX(sv) < (NV)IV_MAX + 0.5)
                SvIVX(sv) = I_V(SvNVX(sv));
            else {
@@ -1362,14 +1361,13 @@ Perl_sv_2uv(pTHX_ register SV *sv)
            SvNVX(sv) = d;
            (void)SvNOK_on(sv);
            (void)SvIOK_on(sv);
-           DEBUG_c(PerlIO_printf(Perl_debug_log,
 #if defined(USE_LONG_DOUBLE)
-                                 "0x%lx 2nv(%Lg)\n",
+           DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%Lg)\n",
+                                 (unsigned long)sv, SvNVX(sv)));
 #else
-                                 "0x%lx 2nv(%g)\n",
+           DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%g)\n",
+                                 (unsigned long)sv, SvNVX(sv)));
 #endif
-                                 (unsigned long)sv,
-                                 SvNVX(sv)));
            if (SvNVX(sv) < -0.5) {
                SvIVX(sv) = I_V(SvNVX(sv));
                goto ret_zero;
@@ -1490,17 +1488,21 @@ Perl_sv_2nv(pTHX_ register SV *sv)
            sv_upgrade(sv, SVt_PVNV);
        else
            sv_upgrade(sv, SVt_NV);
+#if defined(USE_LONG_DOUBLE)
        DEBUG_c({
            RESTORE_NUMERIC_STANDARD();
-           PerlIO_printf(Perl_debug_log,
-#if defined(USE_LONG_DOUBLE)
-                         "0x%lx num(%Lg)\n",
+           PerlIO_printf(Perl_debug_log, "0x%lx num(%Lg)\n",
+                         (unsigned long)sv, SvNVX(sv));
+           RESTORE_NUMERIC_LOCAL();
+       });
 #else
-                         "0x%lx num(%g)\n",
-#endif
-                         (unsigned long)sv,SvNVX(sv)));
+       DEBUG_c({
+           RESTORE_NUMERIC_STANDARD();
+           PerlIO_printf(Perl_debug_log, "0x%lx num(%g)\n",
+                         (unsigned long)sv, SvNVX(sv));
            RESTORE_NUMERIC_LOCAL();
        });
+#endif
     }
     else if (SvTYPE(sv) < SVt_PVNV)
        sv_upgrade(sv, SVt_PVNV);
@@ -1525,17 +1527,21 @@ Perl_sv_2nv(pTHX_ register SV *sv)
        return 0.0;
     }
     SvNOK_on(sv);
+#if defined(USE_LONG_DOUBLE)
     DEBUG_c({
        RESTORE_NUMERIC_STANDARD();
-       PerlIO_printf(Perl_debug_log,
-#if defined(USE_LONG_DOUBLE)
-                     "0x%lx 2nv(%Lg)\n",
+       PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%Lg)\n",
+                     (unsigned long)sv, SvNVX(sv));
+       RESTORE_NUMERIC_LOCAL();
+    });
 #else
-                     "0x%lx 1nv(%g)\n",
-#endif
-                     (unsigned long)sv,SvNVX(sv)));
+    DEBUG_c({
+       RESTORE_NUMERIC_STANDARD();
+       PerlIO_printf(Perl_debug_log, "0x%lx 1nv(%g)\n",
+                     (unsigned long)sv, SvNVX(sv));
        RESTORE_NUMERIC_LOCAL();
     });
+#endif
     return SvNVX(sv);
 }