mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 19:06:04 +00:00
In r149662, setDiagnosticMapping was modified to not allow warnings mapped to
MAP_ERROR to be remapped to MAP_WARNING. These new APIs are being added to allow the diagnostic mapping's "no Werror" bit to be set, and potentially downgrade anything already mapped to be a warning. llvm-svn: 150001
This commit is contained in:
parent
09d20eefaa
commit
4c17fa7620
@ -464,12 +464,20 @@ public:
|
||||
bool setDiagnosticGroupMapping(StringRef Group, diag::Mapping Map,
|
||||
SourceLocation Loc = SourceLocation());
|
||||
|
||||
/// \brief Set the warning-as-error flag for the given diagnostic. This
|
||||
/// function always only operates on the current diagnostic state.
|
||||
void setDiagnosticWarningAsError(diag::kind Diag, bool Enabled);
|
||||
|
||||
/// \brief Set the warning-as-error flag for the given diagnostic group. This
|
||||
/// function always only operates on the current diagnostic state.
|
||||
///
|
||||
/// \returns True if the given group is unknown, false otherwise.
|
||||
bool setDiagnosticGroupWarningAsError(StringRef Group, bool Enabled);
|
||||
|
||||
/// \brief Set the error-as-fatal flag for the given diagnostic. This function
|
||||
/// always only operates on the current diagnostic state.
|
||||
void setDiagnosticErrorAsFatal(diag::kind Diag, bool Enabled);
|
||||
|
||||
/// \brief Set the error-as-fatal flag for the given diagnostic group. This
|
||||
/// function always only operates on the current diagnostic state.
|
||||
///
|
||||
|
@ -243,6 +243,24 @@ bool DiagnosticsEngine::setDiagnosticGroupMapping(
|
||||
return false;
|
||||
}
|
||||
|
||||
void DiagnosticsEngine::setDiagnosticWarningAsError(diag::kind Diag,
|
||||
bool Enabled) {
|
||||
// If we are enabling this feature, just set the diagnostic mappings to map to
|
||||
// errors.
|
||||
if (Enabled)
|
||||
setDiagnosticMapping(Diag, diag::MAP_ERROR, SourceLocation());
|
||||
|
||||
// Otherwise, we want to set the diagnostic mapping's "no Werror" bit, and
|
||||
// potentially downgrade anything already mapped to be a warning.
|
||||
DiagnosticMappingInfo &Info = GetCurDiagState()->getOrAddMappingInfo(Diag);
|
||||
|
||||
if (Info.getMapping() == diag::MAP_ERROR ||
|
||||
Info.getMapping() == diag::MAP_FATAL)
|
||||
Info.setMapping(diag::MAP_WARNING);
|
||||
|
||||
Info.setNoWarningAsError(true);
|
||||
}
|
||||
|
||||
bool DiagnosticsEngine::setDiagnosticGroupWarningAsError(StringRef Group,
|
||||
bool Enabled) {
|
||||
// If we are enabling this feature, just set the diagnostic mappings to map to
|
||||
@ -273,6 +291,23 @@ bool DiagnosticsEngine::setDiagnosticGroupWarningAsError(StringRef Group,
|
||||
return false;
|
||||
}
|
||||
|
||||
void DiagnosticsEngine::setDiagnosticErrorAsFatal(diag::kind Diag,
|
||||
bool Enabled) {
|
||||
// If we are enabling this feature, just set the diagnostic mappings to map to
|
||||
// errors.
|
||||
if (Enabled)
|
||||
setDiagnosticMapping(Diag, diag::MAP_FATAL, SourceLocation());
|
||||
|
||||
// Otherwise, we want to set the diagnostic mapping's "no Werror" bit, and
|
||||
// potentially downgrade anything already mapped to be a warning.
|
||||
DiagnosticMappingInfo &Info = GetCurDiagState()->getOrAddMappingInfo(Diag);
|
||||
|
||||
if (Info.getMapping() == diag::MAP_FATAL)
|
||||
Info.setMapping(diag::MAP_ERROR);
|
||||
|
||||
Info.setNoErrorAsFatal(true);
|
||||
}
|
||||
|
||||
bool DiagnosticsEngine::setDiagnosticGroupErrorAsFatal(StringRef Group,
|
||||
bool Enabled) {
|
||||
// If we are enabling this feature, just set the diagnostic mappings to map to
|
||||
|
Loading…
x
Reference in New Issue
Block a user