diff options
| author | ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-03 22:08:12 +0000 |
|---|---|---|
| committer | ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-03 22:08:12 +0000 |
| commit | 989d048f58348b57a047e99be5a2ed0f31f4e843 (patch) | |
| tree | 0e143875b137f913f71d7d321b1c7974b63d6eeb | |
| parent | 338c728c05f6cd78ef45b903832d424001ae02de (diff) | |
| download | ppe42-gcc-989d048f58348b57a047e99be5a2ed0f31f4e843.tar.gz ppe42-gcc-989d048f58348b57a047e99be5a2ed0f31f4e843.zip | |
* builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
BUILT_IN_STRNCASECMP): New.
* doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
and strndup.
testsuite:
* gcc.dg/nonnull-3.c: Also test __builtin_stpncpy,
__builtin_strcasecmp and __builtin_strncasecmp.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97498 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/builtins.def | 3 | ||||
| -rw-r--r-- | gcc/doc/extend.texi | 11 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/nonnull-3.c | 6 |
5 files changed, 29 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 96e632e911f..330c4b2fada 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP, + BUILT_IN_STRNCASECMP): New. + * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp + and strndup. + 2005-04-03 Richard Earnshaw <richard.earnshaw@arm.com> PR target/14812 diff --git a/gcc/builtins.def b/gcc/builtins.def index 394723e3cd5..c7cfb083ec4 100644 --- a/gcc/builtins.def +++ b/gcc/builtins.def @@ -462,6 +462,8 @@ DEF_EXT_LIB_BUILTIN (BUILT_IN_MEMPCPY, "mempcpy", BT_FN_PTR_PTR_CONST_PTR_SIZ DEF_LIB_BUILTIN (BUILT_IN_MEMSET, "memset", BT_FN_PTR_PTR_INT_SIZE, ATTR_NOTHROW_NONNULL) DEF_EXT_LIB_BUILTIN (BUILT_IN_RINDEX, "rindex", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL) DEF_EXT_LIB_BUILTIN (BUILT_IN_STPCPY, "stpcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL) +DEF_EXT_LIB_BUILTIN (BUILT_IN_STPNCPY, "stpncpy", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL) +DEF_EXT_LIB_BUILTIN (BUILT_IN_STRCASECMP, "strcasecmp", BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL) DEF_LIB_BUILTIN (BUILT_IN_STRCAT, "strcat", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL) DEF_LIB_BUILTIN (BUILT_IN_STRCHR, "strchr", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL) DEF_LIB_BUILTIN (BUILT_IN_STRCMP, "strcmp", BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL) @@ -470,6 +472,7 @@ DEF_LIB_BUILTIN (BUILT_IN_STRCSPN, "strcspn", BT_FN_SIZE_CONST_STRING_CON DEF_EXT_LIB_BUILTIN (BUILT_IN_STRDUP, "strdup", BT_FN_STRING_CONST_STRING, ATTR_MALLOC_NOTHROW_NONNULL) DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNDUP, "strndup", BT_FN_STRING_CONST_STRING_SIZE, ATTR_MALLOC_NOTHROW_NONNULL) DEF_LIB_BUILTIN (BUILT_IN_STRLEN, "strlen", BT_FN_SIZE_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL) +DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNCASECMP, "strncasecmp", BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL) DEF_LIB_BUILTIN (BUILT_IN_STRNCAT, "strncat", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL) DEF_LIB_BUILTIN (BUILT_IN_STRNCMP, "strncmp", BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL) DEF_LIB_BUILTIN (BUILT_IN_STRNCPY, "strncpy", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL) diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 48784af48b7..06d700e896e 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -4880,6 +4880,8 @@ identifier, or a sequence of member accesses and array references. @findex sqrtl @findex sscanf @findex stpcpy +@findex stpncpy +@findex strcasecmp @findex strcat @findex strchr @findex strcmp @@ -4889,9 +4891,11 @@ identifier, or a sequence of member accesses and array references. @findex strfmon @findex strftime @findex strlen +@findex strncasecmp @findex strncat @findex strncmp @findex strncpy +@findex strndup @findex strpbrk @findex strrchr @findex strspn @@ -4963,9 +4967,10 @@ Outside strict ISO C mode (@option{-ansi}, @option{-std=c89} or @code{scalb}, @code{signbit}, @code{signbitf}, @code{signbitl}, @code{significandf}, @code{significandl}, @code{significand}, @code{sincosf}, @code{sincosl}, @code{sincos}, @code{stpcpy}, -@code{strdup}, @code{strfmon}, @code{toascii}, @code{y0f}, @code{y0l}, -@code{y0}, @code{y1f}, @code{y1l}, @code{y1}, @code{ynf}, @code{ynl} and -@code{yn} +@code{stpncpy}, @code{strcasecmp}, @code{strdup}, @code{strfmon}, +@code{strncasecmp}, @code{strndup}, @code{toascii}, @code{y0f}, +@code{y0l}, @code{y0}, @code{y1f}, @code{y1l}, @code{y1}, @code{ynf}, +@code{ynl} and @code{yn} may be handled as built-in functions. All these functions have corresponding versions prefixed with @code{__builtin_}, which may be used even in strict C89 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7191f88e7df..57946bdbe1d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * gcc.dg/nonnull-3.c: Also test __builtin_stpncpy, + __builtin_strcasecmp and __builtin_strncasecmp. + 2005-04-03 Nathan Sidwell <nathan@codesourcery.com> PR c++/20723 diff --git a/gcc/testsuite/gcc.dg/nonnull-3.c b/gcc/testsuite/gcc.dg/nonnull-3.c index e8725cf12d2..040248c53aa 100644 --- a/gcc/testsuite/gcc.dg/nonnull-3.c +++ b/gcc/testsuite/gcc.dg/nonnull-3.c @@ -33,10 +33,16 @@ foo (void *p, char *s) __builtin_strncat (s, NULL, 16); /* { dg-warning "null" "null pointer check" } */ __builtin_stpcpy (NULL, s); /* { dg-warning "null" "null pointer check" } */ __builtin_stpcpy (s, NULL); /* { dg-warning "null" "null pointer check" } */ + __builtin_stpncpy (NULL, s, 16); /* { dg-warning "null" "null pointer check" } */ + __builtin_stpncpy (s, NULL, 16); /* { dg-warning "null" "null pointer check" } */ __builtin_strcpy (NULL, s); /* { dg-warning "null" "null pointer check" } */ __builtin_strcpy (s, NULL); /* { dg-warning "null" "null pointer check" } */ __builtin_strncpy (NULL, s, 16); /* { dg-warning "null" "null pointer check" } */ __builtin_strncpy (s, NULL, 16); /* { dg-warning "null" "null pointer check" } */ + __builtin_strcasecmp (NULL, s); /* { dg-warning "null" "null pointer check" } */ + __builtin_strcasecmp (s, NULL); /* { dg-warning "null" "null pointer check" } */ + __builtin_strncasecmp (NULL, s, 16); /* { dg-warning "null" "null pointer check" } */ + __builtin_strncasecmp (s, NULL, 16); /* { dg-warning "null" "null pointer check" } */ __builtin_strcmp (NULL, s); /* { dg-warning "null" "null pointer check" } */ __builtin_strcmp (s, NULL); /* { dg-warning "null" "null pointer check" } */ __builtin_strncmp (NULL, s, 16); /* { dg-warning "null" "null pointer check" } */ |

