system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Tue, 28 Nov 2000 14:58:08 +0000 (14:58 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 28 Nov 2000 14:58:08 +0000 (09:58 -0500)
* system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
(IS_ABSOLUTE_PATHNAME): New macro.
* gcc.c (find_a_file, process_command, do_spec_1, main): Use it.

From-SVN: r37818

gcc/ChangeLog
gcc/gcc.c
gcc/system.h

index 90bb2352267b93e5c66daa0989dbf6fcfb5fb541..506fae68fafef021231ab3574c1d0b104771f4b1 100644 (file)
@@ -1,3 +1,9 @@
+Tue Nov 28 09:53:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
+       (IS_ABSOLUTE_PATHNAME): New macro.
+       * gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
+
 2000-11-28  Jakub Jelinek  <jakub@redhat.com>
 
        * config/i386/i386.md (truncxfsf2_2): Fix predicate.
index d95b1c4cae203b5243ac12562aed489dee5a1be5..aaf46b962bb9c1aba8e84b8eb00bcf8f9782d0ec 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -2242,7 +2242,7 @@ find_a_file (pprefix, name, mode)
   int len = pprefix->max_len + strlen (name) + strlen (file_suffix) + 1;
 
 #ifdef DEFAULT_ASSEMBLER
-  if (! strcmp(name, "as") && access (DEFAULT_ASSEMBLER, mode) == 0)
+  if (! strcmp (name, "as") && access (DEFAULT_ASSEMBLER, mode) == 0)
     return xstrdup (DEFAULT_ASSEMBLER);
 #endif
 
@@ -2258,12 +2258,7 @@ find_a_file (pprefix, name, mode)
 
   /* Determine the filename to execute (special case for absolute paths).  */
 
-  if (IS_DIR_SEPARATOR (*name)
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
-      /* Check for disk name on MS-DOS-based systems.  */
-      || (name[0] && name[1] == ':' && IS_DIR_SEPARATOR (name[2]))
-#endif
-      )
+  if (IS_ABSOLUTE_PATHNAME (name))
     {
       if (access (name, mode) == 0)
        {
@@ -2918,6 +2913,7 @@ process_command (argc, argv)
   if (gcc_exec_prefix)
     {
       int len = strlen (gcc_exec_prefix);
+
       if (len > (int) sizeof ("/lib/gcc-lib/") - 1
          && (IS_DIR_SEPARATOR (gcc_exec_prefix[len-1])))
        {
@@ -3460,7 +3456,7 @@ process_command (argc, argv)
      directories, so that we can search both the user specified directory
      and the standard place.  */
 
-  if (!IS_DIR_SEPARATOR (*tooldir_prefix))
+  if (!IS_ABSOLUTE_PATHNAME (tooldir_prefix))
     {
       if (gcc_exec_prefix)
        {
@@ -3957,7 +3953,7 @@ do_spec_1 (spec, inswitch, soft_matched_part)
                  /* Relative directories always come from -B,
                     and it is better not to use them for searching
                     at run time.  In particular, stage1 loses.  */
-                 if (!IS_DIR_SEPARATOR (pl->prefix[0]))
+                 if (!IS_ABSOLUTE_PATHNAME (pl->prefix))
                    continue;
 #endif
                  /* Try subdirectory if there is one.  */
@@ -5405,14 +5401,7 @@ main (argc, argv)
         standard_exec_prefix.  This lets us move the installed tree
         as a unit.  If GCC_EXEC_PREFIX is defined, base
         standard_startfile_prefix on that as well.  */
-      if (IS_DIR_SEPARATOR (*standard_startfile_prefix)
-           || *standard_startfile_prefix == '$'
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
-           /* Check for disk name on MS-DOS-based systems.  */
-          || (standard_startfile_prefix[1] == ':'
-             && (IS_DIR_SEPARATOR (standard_startfile_prefix[2])))
-#endif
-         )
+      if (IS_ABSOLUTE_PATHNAME (standard_startfile_prefix))
        add_prefix (&startfile_prefixes, standard_startfile_prefix, "BINUTILS",
                    PREFIX_PRIORITY_LAST, 0, NULL_PTR);
       else
@@ -5440,7 +5429,8 @@ main (argc, argv)
     }
   else
     {
-      if (!IS_DIR_SEPARATOR (*standard_startfile_prefix) && gcc_exec_prefix)
+      if (!IS_ABSOLUTE_PATHNAME (standard_startfile_prefix)
+         && gcc_exec_prefix)
        add_prefix (&startfile_prefixes,
                    concat (gcc_exec_prefix, machine_suffix,
                            standard_startfile_prefix, NULL_PTR),
index 20531ddb4e585ac02a9ec3da58d77d9b329671ce..59caf48f0e5ace5205f15af15317c14b5d048fc8 100644 (file)
@@ -538,12 +538,25 @@ extern void abort PARAMS ((void));
 
 /* Define IS_DIR_SEPARATOR.  */
 #ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+# define IS_DIR_SEPARATOR(CH) ((CH) == DIR_SEPARATOR)
 #else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-       (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+# define IS_DIR_SEPARATOR(CH) \
+       (((CH) == DIR_SEPARATOR) || ((CH) == DIR_SEPARATOR_2))
 #endif /* DIR_SEPARATOR_2 */
 
+/* Say how to test for an absolute pathname.  On Unix systems, this is if
+   it starts with a leading slash or a '$', the latter meaning the value of
+   an environment variable is to be used.  On machien with DOS-based
+   file systems, it is also absolute if it starts with a drive identifier.  */
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+#define IS_ABSOLUTE_PATHNAME(STR) \
+  (IS_DIR_SEPARATOR ((STR)[0]) || (STR)[0] == '$' \
+   || ((STR)[0] != '\0' && (STR)[1] == ':' && IS_DIR_SEPARATOR ((STR)[2])))
+#else
+#define IS_ABSOLUTE_PATHNAME(STR) \
+  (IS_DIR_SEPARATOR ((STR)[0]) || (STR)[0] == '$')
+#endif
+
 /* Get libiberty declarations. */
 #include "libiberty.h"