diff --git a/parse.y b/parse.y index 78d3f4ab4c3baf..a5bbb047798222 100644 --- a/parse.y +++ b/parse.y @@ -13917,8 +13917,10 @@ value_expr_check(struct parser_params *p, NODE *node) case NODE_AND: case NODE_OR: - node = RNODE_AND(node)->nd_1st; - break; + /* The left operand was already checked for a value when logop() + * built this node, so stop here instead of re-reporting the same + * void value once per operator in a chain. */ + return NULL; case NODE_LASGN: case NODE_DASGN: