This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Rename internal macros in warnings.h
authorKarl Williamson <khw@cpan.org>
Thu, 8 Oct 2020 00:27:05 +0000 (18:27 -0600)
committerKarl Williamson <khw@cpan.org>
Thu, 8 Oct 2020 01:29:06 +0000 (19:29 -0600)
This header defines 3 macros that are visible to XS code, but not for
direct use of that code (they are not API).  At least two of them are
so short and generic that they could quite possibly conflict with
symbols in that code 'Bit' and 'Off'.  The third is somewhat less
likely, 'IsSet', but not great.

Rename them so that they contain 'Perl', so don't pollute the XS
namespace.

regen/warnings.pl
warnings.h

index 99a765a..cf07974 100644 (file)
@@ -317,9 +317,9 @@ my ($index, $warn_size);
 
   print $warn <<'EOM';
 
-#define Off(x)                 ((x) / 8)
-#define Bit(x)                 (1 << ((x) % 8))
-#define IsSet(a, x)            ((a)[Off(x)] & Bit(x))
+#define Perl_Warn_Off_(x)           ((x) / 8)
+#define Perl_Warn_Bit_(x)           (1 << ((x) % 8))
+#define PerlWarnIsSet_(a, x)        ((a)[Perl_Warn_Off_(x)] & Perl_Warn_Bit_(x))
 
 
 #define G_WARN_OFF             0       /* $^W == 0 */
@@ -383,8 +383,8 @@ EOM
 #define isLEXWARN_off \
        cBOOL(!PL_curcop || PL_curcop->cop_warnings == pWARN_STD)
 #define isWARN_ONCE    (PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
-#define isWARN_on(c,x) (IsSet((U8 *)(c + 1), 2*(x)))
-#define isWARNf_on(c,x)        (IsSet((U8 *)(c + 1), 2*(x)+1))
+#define isWARN_on(c,x) (PerlWarnIsSet_((U8 *)(c + 1), 2*(x)))
+#define isWARNf_on(c,x)        (PerlWarnIsSet_((U8 *)(c + 1), 2*(x)+1))
 
 #define DUP_WARNINGS(p) Perl_dup_warnings(aTHX_ p)
 
index f2008fe..4d5b3ef 100644 (file)
@@ -5,9 +5,9 @@
  */
 
 
-#define Off(x)                 ((x) / 8)
-#define Bit(x)                 (1 << ((x) % 8))
-#define IsSet(a, x)            ((a)[Off(x)] & Bit(x))
+#define Perl_Warn_Off_(x)           ((x) / 8)
+#define Perl_Warn_Bit_(x)           (1 << ((x) % 8))
+#define PerlWarnIsSet_(a, x)        ((a)[Perl_Warn_Off_(x)] & Perl_Warn_Bit_(x))
 
 
 #define G_WARN_OFF             0       /* $^W == 0 */
 #define isLEXWARN_off \
        cBOOL(!PL_curcop || PL_curcop->cop_warnings == pWARN_STD)
 #define isWARN_ONCE    (PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
-#define isWARN_on(c,x) (IsSet((U8 *)(c + 1), 2*(x)))
-#define isWARNf_on(c,x)        (IsSet((U8 *)(c + 1), 2*(x)+1))
+#define isWARN_on(c,x) (PerlWarnIsSet_((U8 *)(c + 1), 2*(x)))
+#define isWARNf_on(c,x)        (PerlWarnIsSet_((U8 *)(c + 1), 2*(x)+1))
 
 #define DUP_WARNINGS(p) Perl_dup_warnings(aTHX_ p)