--- pcre-8.38/pcre_jit_test.c.bak 2015-08-29 18:22:49.000000000 +0300 +++ pcre-8.38/pcre_jit_test.c 2015-11-24 15:23:53.635336451 +0200 @@ -1234,14 +1234,15 @@ static int regression_tests(void) printf("\n8 bit: Cannot study pattern: %s\n", current->pattern); pcre_free(re8); re8 = NULL; + } else { + if (!(extra8->flags & PCRE_EXTRA_EXECUTABLE_JIT)) { + printf("\n8 bit: JIT compiler does not support: %s\n", current->pattern); + pcre_free_study(extra8); + pcre_free(re8); + re8 = NULL; + } + extra8->flags |= PCRE_EXTRA_MARK; } - else if (!(extra8->flags & PCRE_EXTRA_EXECUTABLE_JIT)) { - printf("\n8 bit: JIT compiler does not support: %s\n", current->pattern); - pcre_free_study(extra8); - pcre_free(re8); - re8 = NULL; - } - extra8->flags |= PCRE_EXTRA_MARK; } else if (((utf && ucp) || is_ascii) && !(current->start_offset & F_NO8)) printf("\n8 bit: Cannot compile pattern \"%s\": %s\n", current->pattern, error); #endif @@ -1265,14 +1266,15 @@ static int regression_tests(void) printf("\n16 bit: Cannot study pattern: %s\n", current->pattern); pcre16_free(re16); re16 = NULL; + } else { + if (!(extra16->flags & PCRE_EXTRA_EXECUTABLE_JIT)) { + printf("\n16 bit: JIT compiler does not support: %s\n", current->pattern); + pcre16_free_study(extra16); + pcre16_free(re16); + re16 = NULL; + } + extra16->flags |= PCRE_EXTRA_MARK; } - else if (!(extra16->flags & PCRE_EXTRA_EXECUTABLE_JIT)) { - printf("\n16 bit: JIT compiler does not support: %s\n", current->pattern); - pcre16_free_study(extra16); - pcre16_free(re16); - re16 = NULL; - } - extra16->flags |= PCRE_EXTRA_MARK; } else if (((utf && ucp) || is_ascii) && !(current->start_offset & F_NO16)) printf("\n16 bit: Cannot compile pattern \"%s\": %s\n", current->pattern, error); #endif @@ -1296,14 +1298,15 @@ static int regression_tests(void) printf("\n32 bit: Cannot study pattern: %s\n", current->pattern); pcre32_free(re32); re32 = NULL; + } else { + if (!(extra32->flags & PCRE_EXTRA_EXECUTABLE_JIT)) { + printf("\n32 bit: JIT compiler does not support: %s\n", current->pattern); + pcre32_free_study(extra32); + pcre32_free(re32); + re32 = NULL; + } + extra32->flags |= PCRE_EXTRA_MARK; } - if (!(extra32->flags & PCRE_EXTRA_EXECUTABLE_JIT)) { - printf("\n32 bit: JIT compiler does not support: %s\n", current->pattern); - pcre32_free_study(extra32); - pcre32_free(re32); - re32 = NULL; - } - extra32->flags |= PCRE_EXTRA_MARK; } else if (((utf && ucp) || is_ascii) && !(current->start_offset & F_NO32)) printf("\n32 bit: Cannot compile pattern \"%s\": %s\n", current->pattern, error); #endif