• Nico Weber's avatar
    Remove use of GOOGLE_FALLTHROUGH_INTENDED from protobuf. · c66dd6c2
    Nico Weber authored
    Chrome is running into two issues with the use of this macro
    in open-source protobuf (https://crbug.com/809157):
    
    1. GOOGLE_FALLTHROUGH_INTENDED is defined to nothing on __APPLE__
       platforms, which blocks us from enabling -Wimplicit-fallthrough
       on Mac and iOS. (We use a hermetic self-built modern clang,
       so whatever Xcode bug that exclusion might be for doesn't apply
       to us.)
    
    2. It's in a public header file, and it's included in a public header file.
       When clang suggests adding [[clang::fallthrough]], it checks if it knows of
       a macro expanding to that and if so, suggests inserting that. Since lots of
       chrome code includes protobuf headers, it often suggests inserting
       GOOGLE_FALLTHROUGH_INTENDED (from protobuf) instead of the correct
       FALLTHROUGH (from chrome's base).
    
    Since the fallthrough doens't do anyting useful, just remove it.
    Long ago, this might have had perf impact, but d64a2d99 added a
    parsing fast path that calls this switch as slow fallback, so it should
    be off the hot path nowadays.
    
    No intended behavior change.
    
    This is the public version of internal change 184824132.
    c66dd6c2
Name
Last commit
Last update
benchmarks Loading commit data...
cmake Loading commit data...
conformance Loading commit data...
csharp Loading commit data...
docs Loading commit data...
editors Loading commit data...
examples Loading commit data...
java Loading commit data...
javanano Loading commit data...
jenkins Loading commit data...
js Loading commit data...
kokoro Loading commit data...
m4 Loading commit data...
more_tests Loading commit data...
objectivec Loading commit data...
php Loading commit data...
protoc-artifacts Loading commit data...
python Loading commit data...
ruby Loading commit data...
src Loading commit data...
third_party Loading commit data...
util/python Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.travis.yml Loading commit data...
BUILD Loading commit data...
CHANGES.txt Loading commit data...
CONTRIBUTORS.txt Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
Protobuf.podspec Loading commit data...
README.md Loading commit data...
WORKSPACE Loading commit data...
appveyor.bat Loading commit data...
appveyor.yml Loading commit data...
autogen.sh Loading commit data...
composer.json Loading commit data...
configure.ac Loading commit data...
generate_changelog.py Loading commit data...
generate_descriptor_proto.sh Loading commit data...
gmock.BUILD Loading commit data...
post_process_dist.sh Loading commit data...
protobuf-lite.pc.in Loading commit data...
protobuf.bzl Loading commit data...
protobuf.pc.in Loading commit data...
six.BUILD Loading commit data...
tests.sh Loading commit data...
update_file_lists.sh Loading commit data...