On 25 February 2013 13:33, demerphq <[email protected]> wrote:
> On 23 February 2013 19:41, John Goodyear <[email protected]> wrote:
>>
>> >> Finding dependencies for regexec.o.
>> >> ERROR CCN3287 regexec.c:35    The parameter list on the definition of
>> >> macro LOAD_UTF8_CHARCLASS_DEBUG_TEST is not complete.
>> >> ERROR CCN3287 regexec.c:75    The parameter list on the definition of
>> >> macro REXEC_TRIE_READ_CHAR is not complete.
>>
>> For the errors above, I see that cppstdin is invoke with these arguments:
>>
>> $finc='', -I., $cppflags='', $cppminus=''
>>
>> This being the case, is it simply that when  cppflags or cppminus are
>> empty some macros aren't being defined?
>> As you indicated, this could be happening on other platforms, but is
>> getting hidden since stderr is handled differently.
>
>
> REXEC_TRIE_READ_CHAR() is mine.
>
> I suspect it is because someone, maybe me, wrapped the argument list:
>
> #define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len,
> \
> uvc, charid, foldlen, foldbuf, uniflags) STMT_START {
> \
>
> I will push a patch to unwrap this, as I bet it is confusing your CPP.

Ive been irresponsible and pushed a fix for this without testing if it
breaks anything. I sure as heck hope not.

commit fd3249ee224079ac3a7b66dc335d7a6e6ca22d36
Author: Yves Orton <[email protected]>
Date:   Mon Feb 25 13:34:52 2013 +0100

    unwrap #define argument list for REXEC_TRIE_READ_CHAR

    Apparently this breaks the z/OS 1.13 c preprocessor. (Yay, now I
can say I have written code for z/OS!)

diff --git a/regexec.c b/regexec.c
index ec6886a..d376e26 100644
--- a/regexec.c
+++ b/regexec.c
@@ -1226,8 +1226,8 @@ Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV
*sv, char *strpos,
                               ? (utf8_target ? trie_utf8 : trie_plain) \
                               : (utf8_target ? trie_utf8_fold :
trie_latin_utf8_fold))

-#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan,
len,          \
-uvc, charid, foldlen, foldbuf, uniflags) STMT_START {
              \
+#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan,
len, uvc, charid, foldlen, foldbuf, uniflags) \
+STMT_START {                               \
     STRLEN skiplen;
              \
     switch (trie_type) {
              \
     case trie_utf8_fold:
              \



-- 
perl -Mre=debug -e "/just|another|perl|hacker/"

Reply via email to