aboutsummaryrefslogtreecommitdiff
path: root/gcc/fixinc
diff options
context:
space:
mode:
authorBruce Korb <bkorb@gnu.org>2001-02-06 22:19:50 +0000
committerBruce Korb <korbb@gcc.gnu.org>2001-02-06 22:19:50 +0000
commitca21b4a51c8e1c6f6f36188dd82be0596ba1722f (patch)
tree61c3341761015a5904b857610bc777c9eb7649a4 /gcc/fixinc
parent3c8465d07749a7f4ce6337d65f609bcef43ef890 (diff)
downloadgcc-ca21b4a51c8e1c6f6f36188dd82be0596ba1722f.zip
gcc-ca21b4a51c8e1c6f6f36188dd82be0596ba1722f.tar.gz
gcc-ca21b4a51c8e1c6f6f36188dd82be0596ba1722f.tar.bz2
do not rely on load_file_data() to close file pointer
From-SVN: r39501
Diffstat (limited to 'gcc/fixinc')
-rw-r--r--gcc/fixinc/fixincl.c14
-rw-r--r--gcc/fixinc/fixlib.c5
-rw-r--r--gcc/fixinc/inclhack.def1
3 files changed, 11 insertions, 9 deletions
diff --git a/gcc/fixinc/fixincl.c b/gcc/fixinc/fixincl.c
index 3f2cb56..bd13425 100644
--- a/gcc/fixinc/fixincl.c
+++ b/gcc/fixinc/fixincl.c
@@ -364,14 +364,13 @@ load_file ( fname )
res = (char*)mmap ((void*)NULL, data_map_size, PROT_READ,
MAP_PRIVATE, data_map_fd, 0);
if (res == (char*)BAD_ADDR)
+#endif
{
+ FILE* fp = fdopen (data_map_fd, "r");
curr_data_mapped = BOOL_FALSE;
- res = load_file_data ( fdopen (data_map_fd, "r"));
+ res = load_file_data (fp);
+ fclose (fp);
}
-#else
- curr_data_mapped = BOOL_FALSE;
- res = load_file_data ( fdopen (data_map_fd, "r"));
-#endif
return res;
}
@@ -1431,8 +1430,9 @@ process ()
read_fd = open (pz_temp_file, O_RDONLY);
if (read_fd < 0)
{
- fprintf (stderr, "error %d (%s) opening output (%s) for read\n",
- errno, xstrerror (errno), pz_temp_file);
+ if (errno != ENOENT)
+ fprintf (stderr, "error %d (%s) opening output (%s) for read\n",
+ errno, xstrerror (errno), pz_temp_file);
}
else
{
diff --git a/gcc/fixinc/fixlib.c b/gcc/fixinc/fixlib.c
index 7bf8cbc..647d2b3 100644
--- a/gcc/fixinc/fixlib.c
+++ b/gcc/fixinc/fixlib.c
@@ -39,6 +39,9 @@ load_file_data (fp)
int space_left = -1; /* allow for terminating NUL */
size_t space_used = 0;
+ if (fp == (FILE*)NULL)
+ return pz_data;
+
do
{
size_t size_read;
@@ -62,7 +65,6 @@ load_file_data (fp)
fprintf (stderr, "error %d (%s) reading input\n", err,
xstrerror (err));
free ((void *) pz_data);
- fclose (fp);
return (char *) NULL;
}
}
@@ -73,7 +75,6 @@ load_file_data (fp)
pz_data = xrealloc ((void*)pz_data, space_used+1 );
pz_data[ space_used ] = NUL;
- fclose (fp);
return pz_data;
}
diff --git a/gcc/fixinc/inclhack.def b/gcc/fixinc/inclhack.def
index 860ec37..4033275 100644
--- a/gcc/fixinc/inclhack.def
+++ b/gcc/fixinc/inclhack.def
@@ -1292,6 +1292,7 @@ fix = {
select = "^extern const ";
c_fix = format;
c_fix_arg = "extern __const ";
+ test_text = "extern const char limit; /* test\n\tlimits */";
};