builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Sat, 26 Mar 2005 02:25:30 +0000 (02:25 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Sat, 26 Mar 2005 02:25:30 +0000 (02:25 +0000)
* builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
* builtins.def (BUILT_IN_STRNDUP): New.

testsuite:
* gcc.dg/nonnull-3.c: Also test __builtin_strndup.

From-SVN: r97077

gcc/ChangeLog
gcc/builtin-types.def
gcc/builtins.def
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/nonnull-3.c

index 71e4822bf089a54852554ca2cfafd889783c7f97..fb5ac8639e0d8a0f9668121c1368b6ca9e9d0ac3 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
+       * builtins.def (BUILT_IN_STRNDUP): New.
+
 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
 
        PR tree-optimization/20470
index 845863108b09eaf82b0c57a16a4882e93106cd57..a3c804c9181086c2d7a9639da63a6f1efcccd70c 100644 (file)
@@ -172,6 +172,8 @@ DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
                     BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
                     BT_STRING, BT_CONST_STRING, BT_INT)
+DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
+                    BT_STRING, BT_CONST_STRING, BT_SIZE)
 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
                     BT_INT, BT_CONST_STRING, BT_FILEPTR)
 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
index d324e01a584a02c13a8e47461fe4240e75f8d69c..394723e3cd5f2e3511e7222ca63dc852256c625a 100644 (file)
@@ -468,6 +468,7 @@ DEF_LIB_BUILTIN        (BUILT_IN_STRCMP, "strcmp", BT_FN_INT_CONST_STRING_CONST_
 DEF_LIB_BUILTIN        (BUILT_IN_STRCPY, "strcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL)
 DEF_LIB_BUILTIN        (BUILT_IN_STRCSPN, "strcspn", BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL)
 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_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)
index 9e5cdf9fedc37a596671d280472eb4a7ac60d618..03e5d9b3a6734bbe74c5630c17fd85d4aa816b8f 100644 (file)
@@ -1,3 +1,7 @@
+2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gcc.dg/nonnull-3.c: Also test __builtin_strndup.
+
 2005-03-25  Mark Mitchell  <mark@codesourcery.com>
 
        * lib/g++.exp (g++_link_flags): Use gcc-set-multilib-library-path.
index 3b53eaf7b957fb1dee539000a892d87533ef8ea8..e8725cf12d2f788660673f19c3c6e41fe97fbadb 100644 (file)
@@ -51,6 +51,7 @@ foo (void *p, char *s)
   __builtin_strchr (NULL, 16);  /* { dg-warning "null" "null pointer check" } */
   __builtin_strrchr (NULL, 16);  /* { dg-warning "null" "null pointer check" } */
   __builtin_strdup (NULL);  /* { dg-warning "null" "null pointer check" } */
+  __builtin_strndup (NULL, 16);  /* { dg-warning "null" "null pointer check" } */
 
   __builtin_nan (NULL);  /* { dg-warning "null" "null pointer check" } */
   __builtin_nanf (NULL);  /* { dg-warning "null" "null pointer check" } */