This patch adds support for a new attribute that will be used to distinguish between extensible and inextensible enums. The attribute was discussed on cfe-dev a few weeks ago and I've made a few modifications to the original proposal based on the feedback I received.
http://lists.llvm.org/pipermail/cfe-dev/2017-February/052748.html
In this patch, I didn't include the command line option for setting the default enum style for unannotated enums since I wasn't sure it's something we absolutely need. If it turns the warnings are too noisy, I'll consider adding a command line option for silencing the false positive warnings in a follow-up patch.