aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@cygnus.com>1998-04-20 13:11:38 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1998-04-20 13:11:38 +0000
commitf55b1ca872b959ba97a662f2bec0308ba1ba0dc9 (patch)
treea5c1277b2489ed619b408b287e3425dd9537a16c
parent0cd355fe9da1827a55ea871238a988adcadf6f93 (diff)
downloadgcc-f55b1ca872b959ba97a662f2bec0308ba1ba0dc9.zip
gcc-f55b1ca872b959ba97a662f2bec0308ba1ba0dc9.tar.gz
gcc-f55b1ca872b959ba97a662f2bec0308ba1ba0dc9.tar.bz2
Switch to strrchr if available instead of rindex
From-SVN: r19341
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config.in6
-rwxr-xr-xgcc/configure2
-rw-r--r--gcc/configure.in2
-rw-r--r--gcc/protoize.c18
5 files changed, 34 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8466deb..f998afd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config.in b/gcc/config.in
index 8d0631a..bf2d02f 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -92,12 +92,18 @@
/* 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
diff --git a/gcc/configure b/gcc/configure
index b68a0c6..5e97fc0 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -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
diff --git a/gcc/configure.in b/gcc/configure.in
index 1387ed0..61bfc9a 100644
--- a/gcc/configure.in
+++ b/gcc/configure.in
@@ -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
diff --git a/gcc/protoize.c b/gcc/protoize.c
index 699bfe6..754d6c2 100644
--- a/gcc/protoize.c
+++ b/gcc/protoize.c
@@ -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 ();