summaryrefslogtreecommitdiff
path: root/gcc/cpplib.c
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2000-12-07 07:14:42 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2000-12-07 07:14:42 +0000
commit41a9aa85e255a4f2cf8d2dcab82a1a7a82429e0b (patch)
tree183c8a37ae0d1cb8f8f4a7c5d3cc009146d70982 /gcc/cpplib.c
parent7943f969d8272002108ef9f24acbd69c7e485eee (diff)
downloadgcc-41a9aa85e255a4f2cf8d2dcab82a1a7a82429e0b.tar.gz
* c-common.c (parse_in): Make a cpp_reader *.
* cppfiles.c (_cpp_fake_include): Remove. * cpphash.h: Similarly. * cpplib.c (do_line): Don't call _cpp_fake_include. A valid #line always creates a callback; FC_RENAME if there are no #line flags. * fix-header.c (read_scan_file): cpp_push_buffer cannot fail. The first EOF must be our get_char buffer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38101 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cpplib.c')
-rw-r--r--gcc/cpplib.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index 26c2ece60b7..537e477f620 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -721,7 +721,7 @@ do_line (pfile)
cpp_buffer *buffer = pfile->buffer;
const char *filename = buffer->nominal_fname;
unsigned int lineno = buffer->lineno;
- enum cpp_fc_reason reason = (enum cpp_fc_reason) -1;
+ enum cpp_fc_reason reason = FC_RENAME;
unsigned long new_lineno;
unsigned int cap;
cpp_token token;
@@ -749,19 +749,14 @@ do_line (pfile)
unsigned int len;
int action_number = 0;
+ /* FIXME: memory leak. */
len = token.val.str.len;
- fname = alloca (len + 1);
+ fname = xmalloc (len + 1);
memcpy (fname, token.val.str.text, len);
fname[len] = '\0';
- if (strcmp (fname, buffer->nominal_fname))
- {
- reason = FC_RENAME;
- if (!strcmp (fname, buffer->inc->name))
- buffer->nominal_fname = buffer->inc->name;
- else
- buffer->nominal_fname = _cpp_fake_include (pfile, fname);
- }
+ _cpp_simplify_pathname (fname);
+ buffer->nominal_fname = fname;
if (read_line_number (pfile, &action_number) != 0)
{
@@ -803,8 +798,7 @@ do_line (pfile)
/* Our line number is incremented after the directive is processed. */
buffer->lineno = new_lineno - 1;
- if (reason != (enum cpp_fc_reason) -1)
- _cpp_do_file_change (pfile, reason, filename, lineno);
+ _cpp_do_file_change (pfile, reason, filename, lineno);
}
/* Arrange the file_change callback. The assumption is that the