Re: [pcre-dev] PCRE1 8.39-RC1 test release

Αρχική Σελίδα
Delete this message
Συντάκτης: Petr Pisar
Ημερομηνία:  
Προς: pcre-dev
Αντικείμενο: Re: [pcre-dev] PCRE1 8.39-RC1 test release
On Mon, May 23, 2016 at 04:24:21PM +0100, ph10@??? wrote:
> I have put a test release of PCRE1 here:
>

All tests pass for me on these GNU/Linux plaforms with JIT enabled where
supported:

aarch64
armv7hl
i686
ppc
ppc64
ppc64le
s390
s390x
x86_64

A new GCC 6.0.0 reports two kinds of warnings (not new to pcre-8.39-RC1,
I only noticed now):

(1) The pcrecpp.cc misindents conditions. It's probably not a real bug, but
it would be nice to get rid of the noise:

pcrecpp.cc: In member function 'bool pcrecpp::RE::FullMatch(const pcrecpp::StringPiece&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&, const pcrecpp::Arg&) const':
pcrecpp.cc:171:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   if (&ptr1  == &no_arg) goto done; args[n++] = &ptr1;
   ^~
pcrecpp.cc:171:37: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
   if (&ptr1  == &no_arg) goto done; args[n++] = &ptr1;
                                     ^~~~
The warning repeats for lines 171--186 and 213--228 and 253--270 and 303--318.



(2) There is an always true expression in pcre_jit_test.c:

pcre_jit_test.c:1564:62: warning: self-comparison always evaluates to false [-Wtautological-compare]
       if (ovector16_1[i] != ovector16_2[i] || ovector16_1[i] != ovector16_1[i] || ovector16_1[i] != ovector16_2[i]) {
                                                              ^~


The whole condition is suspitious because the first and third comparisons are
identical. Actually the whole code block (if defined SUPPORT_PCRE16 && defined
SUPPORT_PCRE16) is probably a copy-and-paste typo where the second "16" should
be "32".

-- Petr