From: Chris Lattner
These severities are mapped into a smaller set (the Diagnostic::Level enum, {Ignored, Note, Warning, -Error }) of output levels by the diagnostics subsystem based +Error, Fatal }) of output levels by the diagnostics +subsystem based on various configuration options. For example, if the user specifies -pedantic, EXTENSION maps to Warning, if they specify -pedantic-errors, it turns into Error. Clang also internally supports a fully fine grained mapping mechanism that allows you to map any diagnostic that doesn't have ERRROR severity to any output level that you want. This is used to implement options like -Wunused_macros, --Wundef etc.
+-Wundef etc. Fatal errors are considered so severe that diagnostics +that occur after them are supressed as "almost certainly useless".