diff options
author | Bruce Korb <bkorb@gnu.org> | 2001-02-06 22:19:50 +0000 |
---|---|---|
committer | Bruce Korb <korbb@gcc.gnu.org> | 2001-02-06 22:19:50 +0000 |
commit | ca21b4a51c8e1c6f6f36188dd82be0596ba1722f (patch) | |
tree | 61c3341761015a5904b857610bc777c9eb7649a4 /gcc/fixinc | |
parent | 3c8465d07749a7f4ce6337d65f609bcef43ef890 (diff) | |
download | gcc-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.c | 14 | ||||
-rw-r--r-- | gcc/fixinc/fixlib.c | 5 | ||||
-rw-r--r-- | gcc/fixinc/inclhack.def | 1 |
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 */"; }; |