Speeds up parsing of global declarations in cases where the warning

is switched of by about 0.8% (tested with int i<N>).

Additionally, this puts computing the diagnostic class into the hot
path more when parsing, in preparation for upcoming optimizations
in this area.

llvm-svn: 169976
This commit is contained in:
Manuel Klimek 2012-12-12 13:26:54 +00:00
parent 7d95323047
commit 5704e4e91c
1 changed files with 4 additions and 1 deletions

View File

@ -7233,7 +7233,10 @@ void Sema::CheckCompleteVariableDeclaration(VarDecl *var) {
}
if (var->isThisDeclarationADefinition() &&
var->getLinkage() == ExternalLinkage) {
var->getLinkage() == ExternalLinkage &&
getDiagnostics().getDiagnosticLevel(
diag::warn_missing_variable_declarations,
var->getLocation())) {
// Find a previous declaration that's not a definition.
VarDecl *prev = var->getPreviousDecl();
while (prev && prev->isThisDeclarationADefinition())