summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Sema.cpp
diff options
context:
space:
mode:
authorRyan Flynn <pizza@parseerror.com>2009-07-30 03:15:39 +0000
committerRyan Flynn <pizza@parseerror.com>2009-07-30 03:15:39 +0000
commit7d470f3466c0341334e1e907930d7817b7ba5807 (patch)
treeec69f77730a541cca47c75c3c865bf8ebe6ae5a5 /clang/lib/Sema/Sema.cpp
parent874450c4333d1c9fd5e7325369b80336f1fd7ca7 (diff)
downloadbcm5719-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.cpp10
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;
OpenPOWER on IntegriCloud