Commit 58f30963 by Andris Pavenis Committed by Andris Pavenis

re PR preprocessor/71681 (header.gcc file lookup is broken for -remap)

2016-10-21  Andris Pavenis  <andris.pavenis@iki.fi>

	PR preprocessor/71681
	* files.c (remap_filename): Fix handling -remap in subdirectories.

From-SVN: r241413
parent 810cb191
2016-10-21 Andris Pavenis <andris.pavenis@iki.fi>
PR preprocessor/71681
* files.c (remap_filename): Fix handling -remap in subdirectories.
2016-10-12 Jakub Jelinek <jakub@redhat.com> 2016-10-12 Jakub Jelinek <jakub@redhat.com>
* include/cpplib.h (struct cpp_options): Add * include/cpplib.h (struct cpp_options): Add
......
...@@ -1672,7 +1672,7 @@ static char * ...@@ -1672,7 +1672,7 @@ static char *
remap_filename (cpp_reader *pfile, _cpp_file *file) remap_filename (cpp_reader *pfile, _cpp_file *file)
{ {
const char *fname, *p; const char *fname, *p;
char *new_dir; char *new_dir, *p3;
cpp_dir *dir; cpp_dir *dir;
size_t index, len; size_t index, len;
...@@ -1701,9 +1701,15 @@ remap_filename (cpp_reader *pfile, _cpp_file *file) ...@@ -1701,9 +1701,15 @@ remap_filename (cpp_reader *pfile, _cpp_file *file)
return NULL; return NULL;
len = dir->len + (p - fname + 1); len = dir->len + (p - fname + 1);
new_dir = XNEWVEC (char, len + 1); new_dir = XNEWVEC (char, len + 2);
p3 = new_dir + dir->len;
memcpy (new_dir, dir->name, dir->len); memcpy (new_dir, dir->name, dir->len);
memcpy (new_dir + dir->len, fname, p - fname + 1); if (dir->len && !IS_DIR_SEPARATOR (dir->name[dir->len - 1]))
{
*p3++ = '/';
len++;
}
memcpy (p3, fname, p - fname + 1);
new_dir[len] = '\0'; new_dir[len] = '\0';
dir = make_cpp_dir (pfile, new_dir, dir->sysp); dir = make_cpp_dir (pfile, new_dir, dir->sysp);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment