summaryrefslogtreecommitdiffstats
path: root/lib/AST/Decl.cpp
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-01-17 00:37:07 +0000
committerAnna Zaks <ganna@apple.com>2012-01-17 00:37:07 +0000
commit0a151a137a68bb656acbcce7ff2407613bb80cfc (patch)
tree129f7d790b7cec9541c6d152fd876f451dd2c131 /lib/AST/Decl.cpp
parent022b3f4490bbdcde7b3f18ce0498f9a73b6cbf53 (diff)
Use Builtin ID as the return value
for FunctionDecl::getMemoryFunctionKind(). This is a follow up on the Chris's review for r148142: We don't want to pollute FunctionDecl with an extra enum. (To make this work, added memcmp and family to the library builtins.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148267 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Decl.cpp')
-rw-r--r--lib/AST/Decl.cpp49
1 files changed, 26 insertions, 23 deletions
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp
index 96766dca5b..195136313b 100644
--- a/lib/AST/Decl.cpp
+++ b/lib/AST/Decl.cpp
@@ -2290,80 +2290,83 @@ SourceRange FunctionDecl::getSourceRange() const {
return SourceRange(getOuterLocStart(), EndRangeLoc);
}
-FunctionDecl::MemoryFunctionKind FunctionDecl::getMemoryFunctionKind() {
+unsigned FunctionDecl::getMemoryFunctionKind() {
IdentifierInfo *FnInfo = getIdentifier();
if (!FnInfo)
- return MFK_Invalid;
+ return 0;
// Builtin handling.
switch (getBuiltinID()) {
case Builtin::BI__builtin_memset:
case Builtin::BI__builtin___memset_chk:
case Builtin::BImemset:
- return MFK_Memset;
+ return Builtin::BImemset;
case Builtin::BI__builtin_memcpy:
case Builtin::BI__builtin___memcpy_chk:
case Builtin::BImemcpy:
- return MFK_Memcpy;
+ return Builtin::BImemcpy;
case Builtin::BI__builtin_memmove:
case Builtin::BI__builtin___memmove_chk:
case Builtin::BImemmove:
- return MFK_Memmove;
+ return Builtin::BImemmove;
case Builtin::BIstrlcpy:
- return MFK_Strlcpy;
+ return Builtin::BIstrlcpy;
case Builtin::BIstrlcat:
- return MFK_Strlcat;
+ return Builtin::BIstrlcat;
case Builtin::BI__builtin_memcmp:
- return MFK_Memcmp;
+ case Builtin::BImemcmp:
+ return Builtin::BImemcmp;
case Builtin::BI__builtin_strncpy:
case Builtin::BI__builtin___strncpy_chk:
case Builtin::BIstrncpy:
- return MFK_Strncpy;
+ return Builtin::BIstrncpy;
case Builtin::BI__builtin_strncmp:
- return MFK_Strncmp;
+ case Builtin::BIstrncmp:
+ return Builtin::BIstrncmp;
case Builtin::BI__builtin_strncasecmp:
- return MFK_Strncasecmp;
+ case Builtin::BIstrncasecmp:
+ return Builtin::BIstrncasecmp;
case Builtin::BI__builtin_strncat:
case Builtin::BIstrncat:
- return MFK_Strncat;
+ return Builtin::BIstrncat;
case Builtin::BI__builtin_strndup:
case Builtin::BIstrndup:
- return MFK_Strndup;
+ return Builtin::BIstrndup;
default:
if (isExternC()) {
if (FnInfo->isStr("memset"))
- return MFK_Memset;
+ return Builtin::BImemset;
else if (FnInfo->isStr("memcpy"))
- return MFK_Memcpy;
+ return Builtin::BImemcpy;
else if (FnInfo->isStr("memmove"))
- return MFK_Memmove;
+ return Builtin::BImemmove;
else if (FnInfo->isStr("memcmp"))
- return MFK_Memcmp;
+ return Builtin::BImemcmp;
else if (FnInfo->isStr("strncpy"))
- return MFK_Strncpy;
+ return Builtin::BIstrncpy;
else if (FnInfo->isStr("strncmp"))
- return MFK_Strncmp;
+ return Builtin::BIstrncmp;
else if (FnInfo->isStr("strncasecmp"))
- return MFK_Strncasecmp;
+ return Builtin::BIstrncasecmp;
else if (FnInfo->isStr("strncat"))
- return MFK_Strncat;
+ return Builtin::BIstrncat;
else if (FnInfo->isStr("strndup"))
- return MFK_Strndup;
+ return Builtin::BIstrndup;
}
break;
}
- return MFK_Invalid;
+ return 0;
}
//===----------------------------------------------------------------------===//