From fbcf676a65ea13d4c7c24e4942b583658d5fbc2b Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Thu, 31 Jan 2008 02:13:57 +0000 Subject: [PATCH] Make CallExpr::isBuiltinConstantExpr slightly more efficient. llvm-svn: 46594 --- clang/AST/Expr.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/clang/AST/Expr.cpp b/clang/AST/Expr.cpp index 88c1b236e8ec..f02e817f0659 100644 --- a/clang/AST/Expr.cpp +++ b/clang/AST/Expr.cpp @@ -130,9 +130,16 @@ bool CallExpr::isBuiltinConstantExpr() const { if (!DRE) return false; - // We have a DeclRefExpr. - if (strcmp(DRE->getDecl()->getName(), - "__builtin___CFStringMakeConstantString") == 0) + const FunctionDecl *FDecl = dyn_cast(DRE->getDecl()); + if (!FDecl) + return false; + + unsigned builtinID = FDecl->getIdentifier()->getBuiltinID(); + if (!builtinID) + return false; + + // We have a builtin that is a constant expression + if (builtinID == Builtin::BI__builtin___CFStringMakeConstantString) return true; return false; }