I wrote:
> Huh. 7.3.1 shows the bug.
Wait, scratch that, I misread it. The gcov output on 7.3.1 looks like
4127: 478: case CLASS_ATOM:
-: 479:
-: 480: /*
-: 481: * atom => atom is the base case
-: 482: */
-: 483: return
4127: 484: predicate_implied_by_simple_clause((Expr *\
) predicate,
call 0 returned 100%
-: 485: \
clause,
-: 486: \
weak);
-: 487: }
#####: 488: break;
-: 489: }
-: 490:
-: 491: /* can't get here */
#####: 492: elog(ERROR, "predicate_classify returned a bogus value");
call 0 never executed
call 1 never executed
call 2 never executed
-: 493: return false;
-: 494:}
-: 495:
-: 496:/*----------
-: 497: * predicate_refuted_by_recurse
which is correct: it's showing that the elog line is never executed.
So apparently, this bug is specific to gcc 6.3.0 and maybe a few
versions on either side of that.
regards, tom lane