twoh created this revision.
twoh added reviewers: rsmith, aaron.ballman.
twoh added a subscriber: cfe-commits.

Add functions declared in ctype.h to builtin function database. All functions 
are annotated with nothrow and const attribute, which enables better 
optimization. 

http://reviews.llvm.org/D18970

Files:
  include/clang/Basic/Builtins.def

Index: include/clang/Basic/Builtins.def
===================================================================
--- include/clang/Basic/Builtins.def
+++ include/clang/Basic/Builtins.def
@@ -773,6 +773,22 @@
 LIBBUILTIN(vscanf, "icC*Ra",      "fS:0:", "stdio.h", ALL_LANGUAGES)
 LIBBUILTIN(vfscanf, "iP*RcC*Ra",  "fS:1:", "stdio.h", ALL_LANGUAGES)
 LIBBUILTIN(vsscanf, "icC*RcC*Ra", "fS:1:", "stdio.h", ALL_LANGUAGES)
+// C99 ctype.h
+LIBBUILTIN(isalnum, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isalpha, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isblank, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(iscntrl, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isdigit, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isgraph, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(islower, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isprint, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(ispunct, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isspace, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isupper, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isxdigit, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(tolower, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(toupper, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+
 // C99
 // In some systems setjmp is a macro that expands to _setjmp. We undefine
 // it here to avoid having two identical LIBBUILTIN entries.


Index: include/clang/Basic/Builtins.def
===================================================================
--- include/clang/Basic/Builtins.def
+++ include/clang/Basic/Builtins.def
@@ -773,6 +773,22 @@
 LIBBUILTIN(vscanf, "icC*Ra",      "fS:0:", "stdio.h", ALL_LANGUAGES)
 LIBBUILTIN(vfscanf, "iP*RcC*Ra",  "fS:1:", "stdio.h", ALL_LANGUAGES)
 LIBBUILTIN(vsscanf, "icC*RcC*Ra", "fS:1:", "stdio.h", ALL_LANGUAGES)
+// C99 ctype.h
+LIBBUILTIN(isalnum, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isalpha, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isblank, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(iscntrl, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isdigit, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isgraph, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(islower, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isprint, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(ispunct, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isspace, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isupper, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(isxdigit, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(tolower, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+LIBBUILTIN(toupper, "ii", "fnc", "ctype.h", ALL_LANGUAGES)
+
 // C99
 // In some systems setjmp is a macro that expands to _setjmp. We undefine
 // it here to avoid having two identical LIBBUILTIN entries.
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to