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>
* cccp.c: Don't define MIN/MAX anymore.
......
......@@ -2969,17 +2969,25 @@ do_include (pfile, keyword)
break;
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
past the dir in which the containing file was found. */
if (skip_dirs)
/* For #include_next, skip in the search path past the dir in which the
containing file was found. Treat files specified using an absolute path
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;
}
else
{
if (skip_dirs)
cpp_warning (pfile, "#include_next in primary source file");
if (angle_brackets)
search_start = CPP_OPTIONS (pfile)->bracket_include;
else
......@@ -4730,8 +4738,12 @@ cpp_start_read (pfile, fname)
fp = cpp_push_buffer (pfile, NULL, 0);
if (!fp)
return 0;
if (opts->in_fname == NULL || *opts->in_fname == 0)
{
opts->in_fname = fname;
if (opts->in_fname == NULL)
opts->in_fname = "";
}
fp->nominal_fname = fp->fname = opts->in_fname;
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