mirror of
https://git.FreeBSD.org/src.git
synced 2024-11-29 08:08:37 +00:00
Avoid "cc1: warning: is shorter than expected" when using GNU cpp in
combination with dtrace scripts, which have "#!/usr/sbin/dtrace -Cs" shebang lines. This is because dtrace positions the file pointer after the shebang line, before passing the file to GNU cpp. To fix the warning, adjust the size downwards by the current position, after a bit of sanity checking. Suggested by: avg MFC after: 1 week
This commit is contained in:
parent
fedda9c678
commit
d592e78278
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=263775
@ -546,6 +546,7 @@ static bool
|
||||
read_file_guts (cpp_reader *pfile, _cpp_file *file)
|
||||
{
|
||||
ssize_t size, total, count;
|
||||
off_t offset;
|
||||
uchar *buf;
|
||||
bool regular;
|
||||
|
||||
@ -573,6 +574,21 @@ read_file_guts (cpp_reader *pfile, _cpp_file *file)
|
||||
}
|
||||
|
||||
size = file->st.st_size;
|
||||
|
||||
if ((offset = lseek(file->fd, 0, SEEK_CUR)) < 0)
|
||||
{
|
||||
cpp_error (pfile, CPP_DL_ERROR, "%s has no current position",
|
||||
file->path);
|
||||
return false;
|
||||
}
|
||||
else if (offset > INTTYPE_MAXIMUM (ssize_t) || (ssize_t)offset > size)
|
||||
{
|
||||
cpp_error (pfile, CPP_DL_ERROR, "current position of %s is too large",
|
||||
file->path);
|
||||
return false;
|
||||
}
|
||||
|
||||
size -= (ssize_t)offset;
|
||||
}
|
||||
else
|
||||
/* 8 kilobytes is a sensible starting size. It ought to be bigger
|
||||
|
Loading…
Reference in New Issue
Block a user