The goal of this patch is to make -verify easier to use when testing libc++. The notes attached to compile error diagnostics are numerous and relatively unstable when they reference libc++ header internals. This patch allows libc++ to write stable compilation failure tests by allowing unexpected diagnostic messages to be ignored where they are not relevant.
This patch adds a new CC1 flag called -verify-ignore-unexpected. -verify-ignore-unexpected tells VerifyDiagnosticsConsumer to ignore *all* unexpected diagnostic messages. -verify-ignore-unexpected=<LevelList> can be used to only ignore certain diagnostic levels. <LevelList> is a comma separated list of diagnostic levels to ignore. The supported levels are note, remark, warning and error.
I would add operator&(Enum, Enum), operator|(Enum, Enum) and `~operator(
I would prefer to use a enum class but there are a couple of problems: