diff options
author | Douglas B Rupp <rupp@gnat.com> | 2004-04-29 15:28:42 +0000 |
---|---|---|
committer | Douglas Rupp <rupp@gcc.gnu.org> | 2004-04-29 15:28:42 +0000 |
commit | 8fd583973e51d76536f33d0d57120bf69e43f408 (patch) | |
tree | 7cc52a06db61f0e92a9c98a34aa14fcf0072b299 /gcc | |
parent | d935a36e27c5a15e05cabdc6b6e9b6d68538a14f (diff) | |
download | gcc-8fd583973e51d76536f33d0d57120bf69e43f408.zip gcc-8fd583973e51d76536f33d0d57120bf69e43f408.tar.gz gcc-8fd583973e51d76536f33d0d57120bf69e43f408.tar.bz2 |
gcc.c (DELETE_IF_ORDINARY): New macro default definition.
* gcc.c (DELETE_IF_ORDINARY): New macro default definition.
(delete_if_ordinary): Use above macro.
* config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
Update copyright.
* doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
* libiberty/mkstemps.c (mkstemps) [VMS]: Remove special open option.
Update copyright.
From-SVN: r81290
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/alpha/xm-vms.h | 14 | ||||
-rw-r--r-- | gcc/doc/hostconfig.texi | 9 | ||||
-rw-r--r-- | gcc/gcc.c | 16 |
4 files changed, 42 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9630090..68ee9a5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-04-29 Douglas B Rupp <rupp@gnat.com> + + * gcc.c (DELETE_IF_ORDINARY): New macro default definition. + (delete_if_ordinary): Use above macro. + * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition. + Update copyright. + * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro. + 2004-04-29 Richard Earnshaw <rearnsha@arm.com> * c-decl.c (get_parm_info): Use the correct tag keywords when diff --git a/gcc/config/alpha/xm-vms.h b/gcc/config/alpha/xm-vms.h index bdac52e..cf18b2f 100644 --- a/gcc/config/alpha/xm-vms.h +++ b/gcc/config/alpha/xm-vms.h @@ -1,5 +1,5 @@ /* Configuration for GNU C-compiler for openVMS/Alpha. - Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2001, 2004 Free Software Foundation, Inc. Contributed by Klaus Kaempf (kkaempf@progis.de). This file is part of GCC. @@ -43,3 +43,15 @@ Boston, MA 02111-1307, USA. */ #define HOST_OBJECT_SUFFIX ".obj" #define DUMPFILE_FORMAT "_%02d_" + +#define DELETE_IF_ORDINARY(NAME,ST,VERBOSE_FLAG) \ +do \ + { \ + while (stat (NAME, &ST) >= 0 && S_ISREG (ST.st_mode)) \ + if (unlink (NAME) < 0) \ + { \ + if (VERBOSE_FLAG) \ + perror_with_name (NAME); \ + break; \ + } \ + } while (0) diff --git a/gcc/doc/hostconfig.texi b/gcc/doc/hostconfig.texi index e5387e1..c97b41b 100644 --- a/gcc/doc/hostconfig.texi +++ b/gcc/doc/hostconfig.texi @@ -147,6 +147,15 @@ unique to each dump file kind, e.g. @samp{rtl}. If you do not define this macro, GCC will use @samp{.%02d.}. You should define this macro if using the default will create an invalid file name. + +@item DELETE_IF_ORDINARY +Define this macro to be a C statement (sans semicolon) that performs +host-dependent removal of ordinary temp files in the compilation driver. + +If you do not define this macro, GCC will use the default version. You +should define this macro if the default version does not reliably remove +the temp file as, for example, on VMS which allows multiple versions +of a file. @end ftable @node Host Misc @@ -2245,6 +2245,17 @@ record_temp_file (const char *filename, int always_delete, int fail_delete) /* Delete all the temporary files whose names we previously recorded. */ +#ifndef DELETE_IF_ORDINARY +#define DELETE_IF_ORDINARY(NAME,ST,VERBOSE_FLAG) \ +do \ + { \ + if (stat (NAME, &ST) >= 0 && S_ISREG (ST.st_mode)) \ + if (unlink (NAME) < 0) \ + if (VERBOSE_FLAG) \ + perror_with_name (NAME); \ + } while (0) +#endif + static void delete_if_ordinary (const char *name) { @@ -2261,10 +2272,7 @@ delete_if_ordinary (const char *name) if (i == 'y' || i == 'Y') #endif /* DEBUG */ - if (stat (name, &st) >= 0 && S_ISREG (st.st_mode)) - if (unlink (name) < 0) - if (verbose_flag) - perror_with_name (name); + DELETE_IF_ORDINARY (name, st, verbose_flag); } static void |