diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2000-11-13 02:14:05 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2000-11-13 02:14:05 +0000 |
commit | c7b6c6cd4791c3003397feea31482c3d19419fe2 (patch) | |
tree | e2619415f3516210288dc043ad4cdec1be4247a5 /gcc/c-common.c | |
parent | 34f6fbdb65c5e2a8ff1c6553592503532ef0141f (diff) | |
download | gcc-c7b6c6cd4791c3003397feea31482c3d19419fe2.zip gcc-c7b6c6cd4791c3003397feea31482c3d19419fe2.tar.gz gcc-c7b6c6cd4791c3003397feea31482c3d19419fe2.tar.bz2 |
builtins.c (expand_builtin): Handle BUILT_IN_INDEX and BUILT_IN_RINDEX.
* builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
BUILT_IN_RINDEX. Add missing checks for BUILT_IN_STRCHR and
BUILT_IN_STRRCHR.
* builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
* c-common.c (c_common_nodes_and_builtins): Declare index and
rindex when nonansi builtins are allowed.
* extend.texi (index, rindex): Document new builtins.
testsuite:
* gcc.c-torture/execute/string-opt-3.c: Also test builtin rindex.
* gcc.c-torture/execute/string-opt-4.c: Also test builtin index.
From-SVN: r37416
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r-- | gcc/c-common.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c index c8e9c12..fdc2875 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -5045,6 +5045,12 @@ c_common_nodes_and_builtins () /* Suppress error if redefined as a non-function. */ DECL_BUILT_IN_NONANSI (temp) = 1; + temp = builtin_function ("index", string_ftype_string_int, + BUILT_IN_INDEX, BUILT_IN_NORMAL, NULL_PTR); + DECL_BUILT_IN_NONANSI (temp) = 1; + temp = builtin_function ("rindex", string_ftype_string_int, + BUILT_IN_RINDEX, BUILT_IN_NORMAL, NULL_PTR); + DECL_BUILT_IN_NONANSI (temp) = 1; /* The system prototypes for these functions have many variations, so don't specify parameters to avoid conflicts. The expand_* functions check the argument types anyway. */ @@ -5175,6 +5181,10 @@ c_common_nodes_and_builtins () BUILT_IN_BZERO, BUILT_IN_NORMAL, "bzero"); builtin_function ("__builtin_bcmp", bcmp_ftype, BUILT_IN_BCMP, BUILT_IN_NORMAL, "bcmp"); + builtin_function ("__builtin_index", string_ftype_string_int, + BUILT_IN_INDEX, BUILT_IN_NORMAL, "index"); + builtin_function ("__builtin_rindex", string_ftype_string_int, + BUILT_IN_RINDEX, BUILT_IN_NORMAL, "rindex"); builtin_function ("__builtin_strcmp", int_ftype_string_string, BUILT_IN_STRCMP, BUILT_IN_NORMAL, "strcmp"); builtin_function ("__builtin_strstr", string_ftype_string_string, |