Switch to strrchr if available instead of rindex
authorMichael Meissner <meissner@cygnus.com>
Mon, 20 Apr 1998 13:11:38 +0000 (13:11 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Mon, 20 Apr 1998 13:11:38 +0000 (13:11 +0000)
From-SVN: r19341

gcc/ChangeLog
gcc/config.in
gcc/configure
gcc/configure.in
gcc/protoize.c

index 8466debe6617e0dcd0bd0849c46d596c204c0907..f998afd4503e2d28c3c38281697aee74d76700c7 100644 (file)
@@ -1,5 +1,17 @@
 Mon Apr 20 14:48:29 1998  Michael Meissner  <meissner@cygnus.com>
 
+       * configure.in (AC_CHECK_FUNCS): Check for strchr and strrchr.
+       * configure: Regenerate.
+       * config.in: Add #undef's for strchr and strrchr.
+
+       * protoize.c (toplevel): If we have rindex, but not strrchr, map
+       rindex to strrchr.
+       (file_could_be_converted): Use strrchr, not rindex since rindex is
+       not defined on Linux systems when _POSIX_SOURCE is defined.
+       (file_normally_convertible): Ditto.
+       (process_aux_info_file): Ditto.
+       (main): Ditto.
+
        * rs6000.md (mov{sf,df} define_splits): When splitting a move of
        a constant to an integer register, don't split the insns that do
        the simple AND and OR operations, rather just split each word, and
index 8d0631a11101335896eebbae1325dd09389a59e1..bf2d02f0bb68c904f9e6cb1f428bd448fa4c495f 100644 (file)
 /* Define if you have the rindex function.  */
 #undef HAVE_RINDEX
 
+/* Define if you have the strchr function.  */
+#undef HAVE_STRCHR
+
 /* Define if you have the setrlimit function.  */
 #undef HAVE_SETRLIMIT
 
 /* Define if you have the strerror function.  */
 #undef HAVE_STRERROR
 
+/* Define if you have the strrchr function.  */
+#undef HAVE_STRRCHR
+
 /* Define if you have the strtoul function.  */
 #undef HAVE_STRTOUL
 
index b68a0c60c3cb31dde1aaca20cde10f279376ce94..5e97fc0b181673bb84d1cd713024205df119c7d0 100755 (executable)
@@ -1676,7 +1676,7 @@ fi
 echo "$ac_t""$gcc_cv_header_inttypes_h" 1>&6
 
 for ac_func in strtoul bsearch strerror putenv popen vprintf bcopy bzero bcmp \
-       index rindex kill getrlimit setrlimit atoll atoq sysconf
+       index rindex strchr strrchr kill getrlimit setrlimit atoll atoq sysconf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 echo "configure:1683: checking for $ac_func" >&5
index 1387ed0e130b79f1e6762fe54027cfae0db24338..61bfc9a9d0aa81ca4c7e3a8b39d629a229f4a652 100644 (file)
@@ -181,7 +181,7 @@ AC_CACHE_VAL(gcc_cv_header_inttypes_h,
 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
 
 AC_CHECK_FUNCS(strtoul bsearch strerror putenv popen vprintf bcopy bzero bcmp \
-       index rindex kill getrlimit setrlimit atoll atoq sysconf)
+       index rindex strchr strrchr kill getrlimit setrlimit atoll atoq sysconf)
 
 GCC_FUNC_PRINTF_PTR
 
index 699bfe683ecdcafd8a6034659981dc8760920a2a..754d6c23ce8d64dde7b2aa095bca26223a043690 100644 (file)
@@ -74,6 +74,16 @@ Boston, MA 02111-1307, USA.  */
 #include <setjmp.h>
 #include "gansidecl.h"
 
+/* Some systems like Linux don't declare rindex if _POSIX_SOURCE is declared,
+   but it normally does declare it.  This means that configure thinks we don't
+   need to declare it.  Favor using strrchr if it is available.  */
+
+#ifndef HAVE_STRRCHR
+#ifdef  HAVE_RINDEX
+#define strrchr rindex
+#endif
+#endif
+
 /* Include getopt.h for the sake of getopt_long.
    We don't need the declaration of getopt, and it could conflict
    with something from a system header file, so effectively nullify that.  */
@@ -897,7 +907,7 @@ file_could_be_converted (const char *path)
     char *dir_last_slash;
 
     strcpy (dir_name, path);
-    dir_last_slash = rindex (dir_name, '/');
+    dir_last_slash = strrchr (dir_name, '/');
     if (dir_last_slash)
       *dir_last_slash = '\0';
     else
@@ -931,7 +941,7 @@ file_normally_convertible (const char *path)
     char *dir_last_slash;
 
     strcpy (dir_name, path);
-    dir_last_slash = rindex (dir_name, '/');
+    dir_last_slash = strrchr (dir_name, '/');
     if (dir_last_slash)
       *dir_last_slash = '\0';
     else
@@ -2370,7 +2380,7 @@ start_over: ;
        char *dir_end;
        aux_info_relocated_name = xmalloc (base_len + (p-invocation_filename));
        strcpy (aux_info_relocated_name, base_source_filename);
-       dir_end = rindex (aux_info_relocated_name, '/');
+       dir_end = strrchr (aux_info_relocated_name, '/');
        if (dir_end)
          dir_end++;
        else
@@ -4575,7 +4585,7 @@ main (argc, argv)
   int c;
   const char *params = "";
 
-  pname = rindex (argv[0], '/');
+  pname = strrchr (argv[0], '/');
   pname = pname ? pname+1 : argv[0];
 
   cwd_buffer = getpwd ();