C++ fail with KeywordRPN
Zefram [Sat, 7 Nov 2009 13:02:33 +0000 (13:02 +0000)]
A smoke using g++ has revealed:

>KeywordRPN.c: In function 'void XS_XS__APItest__KeywordRPN_import(CV*)':
>KeywordRPN.c:320: error: expected unqualified-id before 'class'
>KeywordRPN.c:320: error: expected initializer before 'class'
>KeywordRPN.c: In function 'void XS_XS__APItest__KeywordRPN_unimport(CV*)':
>KeywordRPN.c:357: error: expected unqualified-id before 'class'
>KeywordRPN.c:357: error: expected initializer before 'class'
>make[1]: *** [KeywordRPN.o] Error 1
>Unsuccessful make(ext/XS-APItest-KeywordRPN): code=512 at make_ext.pl line 449.
>make: *** [lib/auto/XS/APItest/KeywordRPN/KeywordRPN.so] Error 25

I used "class" as a variable name, but in C++ it's a keyword.  Patch
attached.  Someone should also add a note about C++ compatibility to
perlhack.pod.

-zefram

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>

ext/XS-APItest-KeywordRPN/KeywordRPN.pm
ext/XS-APItest-KeywordRPN/KeywordRPN.xs

index 085d3f6..7b8b8fb 100644 (file)
@@ -84,7 +84,7 @@ package XS::APItest::KeywordRPN;
 use warnings;
 use strict;
 
-our $VERSION = "0.000";
+our $VERSION = "0.001";
 
 require XSLoader;
 XSLoader::load(__PACKAGE__, $VERSION);
index 219d6ac..32b6998 100644 (file)
@@ -247,7 +247,7 @@ BOOT:
        PL_keyword_plugin = my_keyword_plugin;
 
 void
-import(SV *class, ...)
+import(SV *classname, ...)
 PREINIT:
        int i;
 PPCODE:
@@ -265,7 +265,7 @@ PPCODE:
        }
 
 void
-unimport(SV *class, ...)
+unimport(SV *classname, ...)
 PREINIT:
        int i;
 PPCODE: