• Nico Weber's avatar
    Fix Wbitwise-instead-of-logical warnings · bc4ea5e0
    Nico Weber authored
    `a && b` only evaluates b if a is true. `a & b` always evaluates
    both a and b. If a and b are of type bool, `&&` is usually what you
    want, so clang now warns on `&` where both arguments are of type bool.
    
    This warning fires twice in v8.
    
    1. In branch-elimination.cc, we have the rare case where we _want_
       to evaluate both branches so that both reduced_ and node_conditions_
       are always updated. To make this more obvious, reorder the code a
       bit. (The warning can also be suppressed by casting one of the two
       expressions to int, but the reordering seems clearer.)
    
    2. The other case is an actual (inconsequential) typo, so use || here.
    
    Bug: chromium:1255745
    Change-Id: I62ba45451ee2642265574d28c646d85f5a18670b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212891
    Auto-Submit: Nico Weber <thakis@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77314}
    bc4ea5e0
branch-elimination.cc 20.5 KB