Commit 692b872e by Zack Weinberg Committed by Dave Brolley

cpplib.c (do_include): Treat #include_next in the primary source file as #include plus warning.

1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
	* cpplib.c (do_include): Treat #include_next in the
	primary source file as #include plus warning.  Treat
	#include_next in a file included by absolute path as an
	error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.

From-SVN: r24340
parent 36b8337d
1998-12-16 Zack Weinberg <zack@rabi.phys.columbia.edu>
* cpplib.c (do_include): Treat #include_next in the
primary source file as #include plus warning. Treat
#include_next in a file included by absolute path as an
error. fp == CPP_NULL_BUFFER is a fatal inconsistency.
Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* cccp.c: Don't define MIN/MAX anymore. * cccp.c: Don't define MIN/MAX anymore.
......
...@@ -2969,17 +2969,25 @@ do_include (pfile, keyword) ...@@ -2969,17 +2969,25 @@ do_include (pfile, keyword)
break; break;
if (fp == CPP_NULL_BUFFER (pfile)) if (fp == CPP_NULL_BUFFER (pfile))
fp = NULL; {
cpp_fatal (pfile, "cpp internal error: fp == NULL_BUFFER in do_include");
return 1;
}
/* For #include_next, skip in the search path /* For #include_next, skip in the search path past the dir in which the
past the dir in which the containing file was found. */ containing file was found. Treat files specified using an absolute path
if (skip_dirs) as if there are no more directories to search. Treat the primary source
file like any other included source, but generate a warning. */
if (skip_dirs && CPP_PREV_BUFFER(fp) != CPP_NULL_BUFFER (pfile))
{ {
if (fp) if (fp->ihash->foundhere != ABSOLUTE_PATH)
search_start = fp->ihash->foundhere->next; search_start = fp->ihash->foundhere->next;
} }
else else
{ {
if (skip_dirs)
cpp_warning (pfile, "#include_next in primary source file");
if (angle_brackets) if (angle_brackets)
search_start = CPP_OPTIONS (pfile)->bracket_include; search_start = CPP_OPTIONS (pfile)->bracket_include;
else else
...@@ -4730,8 +4738,12 @@ cpp_start_read (pfile, fname) ...@@ -4730,8 +4738,12 @@ cpp_start_read (pfile, fname)
fp = cpp_push_buffer (pfile, NULL, 0); fp = cpp_push_buffer (pfile, NULL, 0);
if (!fp) if (!fp)
return 0; return 0;
if (opts->in_fname == NULL) if (opts->in_fname == NULL || *opts->in_fname == 0)
opts->in_fname = ""; {
opts->in_fname = fname;
if (opts->in_fname == NULL)
opts->in_fname = "";
}
fp->nominal_fname = fp->fname = opts->in_fname; fp->nominal_fname = fp->fname = opts->in_fname;
fp->lineno = 0; fp->lineno = 0;
......
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