]> granicus.if.org Git - clang/commitdiff
[AST] FunctionDecl::getBuiltinID() - Eliminate spurious calls to getASTContext
authorDaniel Dunbar <daniel@zuster.org>
Tue, 6 Mar 2012 23:52:37 +0000 (23:52 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Tue, 6 Mar 2012 23:52:37 +0000 (23:52 +0000)
-- which is very much not free -- in the common case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152165 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/Decl.cpp

index 03b2794c0eb42de7e2013dabc0156420fab63458..1942e1e85299a3c4585975bd38cd603e33f8c84c 100644 (file)
@@ -1796,11 +1796,14 @@ void FunctionDecl::setStorageClass(StorageClass SC) {
 /// value of type \c Builtin::ID if in the target-independent range
 /// \c [1,Builtin::First), or a target-specific builtin value.
 unsigned FunctionDecl::getBuiltinID() const {
-  ASTContext &Context = getASTContext();
-  if (!getIdentifier() || !getIdentifier()->getBuiltinID())
+  if (!getIdentifier())
     return 0;
 
   unsigned BuiltinID = getIdentifier()->getBuiltinID();
+  if (!BuiltinID)
+    return 0;
+
+  ASTContext &Context = getASTContext();
   if (!Context.BuiltinInfo.isPredefinedLibFunction(BuiltinID))
     return BuiltinID;