• Hans Wennborg's avatar
    Fix the no-op definitions of GOOGLE_PREDICT_{TRUE,FALSE} · fcf1b575
    Hans Wennborg authored
    Updating to the current protobuf version caused the following build errors in
    Chromium when using Clang on Windows:
    
    ..\..\third_party\protobuf\src\google/protobuf/stubs/fastmem.h(67,43) :  error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
      if (GOOGLE_PREDICT_FALSE(n_rounded_down == 0)) {  // n <= 7
                               ~~~~~~~~~~~~~~~^~~~
    
    The problem is that on Windows, GOOGLE_PREDICT_FALSE is #defined to nothing, so
    the code expands to 'if ((n_rounded_down == 0))', which Clang warns about.
    
    Clang would not have warned if the extra parentheses came from the macro,
    but in this case they don't because the macro is just dropped.
    
    Fix this by making the macros behave as an identity function instead of just
    getting dropped.
    
    This is closer to what these macros look like in stubs/port.h internally.
    fcf1b575
Name
Last commit
Last update
..
google/protobuf Loading commit data...
solaris Loading commit data...
Makefile.am Loading commit data...