> At the risk of going on a tangent, I assumed this was because enums > are really ints, and the "default" is there in case the enum somehow > got assigned to an int without a corresponding value. Either because > of a cast from an int that was out-of-range, or new values that were > obtained from arithmetic or bitwise operations on the declared enum > values, which created undeclared values. See 374166cb381 (grep: catch a missing enum in switch statement, 2017-05-25) or a bit date, but nevertheless an interesting read: b8527d5fa61 (wt-status: fix possible use of uninitialized variable, 2013-03-21) ...compilers these days are just too smart to reason about them :-)