cpplib bugfixes

Zack Weinberg zack@rabi.columbia.edu
Thu Feb 11 06:56:00 GMT 1999


This patch eliminates the remaining testsuite regressions for
--enable-c-cpplib versus the default configuration.  --enable-cpplib
may still have problems with line numbering, I'm not sure.

Bugs fixed are:
- do_line could corrupt the include hash table and/or attempt to free
non-malloced memory.  I'd appreciate someone reviewing the logic in
do_line, I'm not sure it's correct even now.

- cpp_get_token would segfault if called after CPP_EOF was returned.

- The wrapper macros in c-lex.c and c-common.c would attempt to push
back EOF, leading to parse errors.

Unlike the previous patch for these bugs, this one doesn't have a
performance problem.

zw


1999-02-11 09:46 -0500  Zack Weinberg  <zack@rabi.columbia.edu>

	* c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF.
	* c-lex.c: Likewise.
	* cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked
	list in malloced memory for the buffer stack.
	(cpp_get_token): Don't pop the last buffer off the stack.
	Calls after CPP_EOF has been returned produce CPP_EOF with no
	state change.
	(cpp_finish): Pop last buffer here.
	(do_line): Don't free ip->last_nominal_fname if it is equal to
	ip->fname.
	* cpplib.h (struct cpp_buffer): Remove unused fields, add prev
	buffer pointer.
	(struct cpp_reader): Remove buffer_stack.  Add
	buffer_stack_depth.
	(CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a
	linked list.

begin-base64 644 bugs.diff.gz
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
Vf7W0L0n638voYDe1RYAAA==
====


More information about the Gcc-patches mailing list