diff options
author | Ryan Flynn <pizza@parseerror.com> | 2009-07-30 03:15:39 +0000 |
---|---|---|
committer | Ryan Flynn <pizza@parseerror.com> | 2009-07-30 03:15:39 +0000 |
commit | 7d470f3466c0341334e1e907930d7817b7ba5807 (patch) | |
tree | ec69f77730a541cca47c75c3c865bf8ebe6ae5a5 /clang/lib/Sema/Sema.cpp | |
parent | 874450c4333d1c9fd5e7325369b80336f1fd7ca7 (diff) | |
download | bcm5719-llvm-7d470f3466c0341334e1e907930d7817b7ba5807.tar.gz bcm5719-llvm-7d470f3466c0341334e1e907930d7817b7ba5807.zip |
PR3679 - handle #pragma weak
llvm-svn: 77573
Diffstat (limited to 'clang/lib/Sema/Sema.cpp')
-rw-r--r-- | clang/lib/Sema/Sema.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index 39662511f1a..f0aea430477 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "Sema.h" +#include "llvm/ADT/DenseMap.h" #include "clang/AST/ASTConsumer.h" #include "clang/AST/ASTContext.h" #include "clang/AST/DeclObjC.h" @@ -242,6 +243,15 @@ void Sema::ActOnEndOfTranslationUnit() { // template instantiations earlier. PerformPendingImplicitInstantiations(); + // check for #pragma weak identifiers that were never declared + for (llvm::DenseMap<IdentifierInfo*,WeakInfo>::iterator + I = WeakUndeclaredIdentifiers.begin(), + E = WeakUndeclaredIdentifiers.end(); I != E; ++I) { + if (!I->second.getUsed()) + Diag(I->second.getLocation(), diag::warn_weak_identifier_undeclared) + << I->first; + } + if (!CompleteTranslationUnit) return; |