mirror of
https://github.com/facebook/rocksdb.git
synced 2026-11-06 19:12:36 -05:00
Summary: Pull Request resolved: https://github.com/meta/rocksdb/pull/15560 ## Summary clang's `-Wswitch-enum` warning (`clang-diagnostic-switch-enum`) fires when a `switch` over an enum doesn't name every enumerator, even if the switch has a `default:`. A full clang-tidy scan reports 79 such switches in existing code, and they get flagged whenever nearby lines change. Naming the remaining enumerators also means that a newly added enumerator triggers the warning, instead of silently falling into `default:`. This diff fixes 47 of them by adding the missing `case X:` labels right before the existing `default:` (or next to the branch that already handles them). Behavior is unchanged: no existing case is reordered and no branch body changes. `default:` is kept wherever the value can come from disk, a cast, or user options, so out-of-range values are still handled as before. Examples: cache entry roles and admission policies in `SecondaryCacheAdapter`, `FileType` in `corruption_test`, `ChecksumType` in `ComputeBuiltinChecksum*` (with `kNoChecksum` now named explicitly), and trace/IO enums in several tools. Not changed (31; upstream has since removed one): switches where listing everything would hurt readability and `default:` is the intended handler. That covers `ValueType` switches on the read path (`DBIter`, `MemTable::SaveValue`, `GetContext`) with about 20 unhandled values each, `CompressionType` and `IOActivity` switches with more than 100 custom/reserved values, and test trace handlers that accept one `TraceType`. Upstream has since added two more test trace switches (five and three `TraceType`s) in `db_etc2_test`, also left unchanged. Reviewed By: xingbowang Differential Revision: D123186312 fbshipit-source-id: 5f6571bb68e28f1caa201bb20524714da18cc63d