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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169976 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Manuel Klimek 2012-12-12 13:26:54 +00:00
Родитель 04ee66e1fe
Коммит acaf110ec9
1 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -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())