diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Sema/Sema.cpp | 9 | ||||
-rw-r--r-- | clang/lib/Sema/Sema.h | 15 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 20 |
3 files changed, 2 insertions, 42 deletions
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index 19155b6cc34..a5b30cc72ac 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -161,15 +161,6 @@ Sema::Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer, GlobalNewDeleteDeclared(false), CompleteTranslationUnit(CompleteTranslationUnit) { - // Get IdentifierInfo objects for known functions for which we - // do extra checking. - IdentifierTable &IT = PP.getIdentifierTable(); - - KnownFunctionIDs[id_NSLog] = &IT.get("NSLog"); - KnownFunctionIDs[id_NSLogv] = &IT.get("NSLogv"); - KnownFunctionIDs[id_asprintf] = &IT.get("asprintf"); - KnownFunctionIDs[id_vasprintf] = &IT.get("vasprintf"); - StdNamespace = 0; TUScope = 0; if (getLangOptions().CPlusPlus) diff --git a/clang/lib/Sema/Sema.h b/clang/lib/Sema/Sema.h index e8c69c2f5f6..5a53374033d 100644 --- a/clang/lib/Sema/Sema.h +++ b/clang/lib/Sema/Sema.h @@ -243,21 +243,6 @@ public: IdentifierResolver IdResolver; - // Enum values used by KnownFunctionIDs (see below). - enum { - id_NSLog, - id_NSLogv, - id_asprintf, - id_vasprintf, - id_num_known_functions - }; - - /// KnownFunctionIDs - This is a list of IdentifierInfo objects to a set - /// of known functions used by the semantic analysis to do various - /// kinds of checking (e.g. checking format string errors in printf calls). - /// This list is populated upon the creation of a Sema object. - IdentifierInfo* KnownFunctionIDs[id_num_known_functions]; - /// Translation Unit Scope - useful to Objective-C actions that need /// to lookup file scope declarations in the "ordinary" C decl namespace. /// For example, user-defined classes, built-in "id" type, etc. diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index abde26ae533..040c5467ac5 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -3114,31 +3114,15 @@ void Sema::AddKnownFunctionAttributes(FunctionDecl *FD) { } else return; - unsigned KnownID; - for (KnownID = 0; KnownID != id_num_known_functions; ++KnownID) - if (KnownFunctionIDs[KnownID] == Name) - break; - - switch (KnownID) { - case id_NSLog: - case id_NSLogv: + if (Name->isStr("NSLog") || Name->isStr("NSLogv")) { if (const FormatAttr *Format = FD->getAttr<FormatAttr>()) { // FIXME: We known better than our headers. const_cast<FormatAttr *>(Format)->setType("printf"); } else FD->addAttr(::new (Context) FormatAttr("printf", 1, 2)); - break; - - case id_asprintf: - case id_vasprintf: + } else if (Name->isStr("asprintf") || Name->isStr("vasprintf")) { if (!FD->getAttr<FormatAttr>()) FD->addAttr(::new (Context) FormatAttr("printf", 2, 3)); - break; - - default: - // Unknown function or known function without any attributes to - // add. Do nothing. - break; } } |