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