* Makefile.in (cppexp.o): Depend on cpphash.h.
commitc9d838e1b04b415abd94999e4ee58784d36d34d6
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Sep 1999 04:00:37 +0000 (9 04:00 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Sep 1999 04:00:37 +0000 (9 04:00 +0000)
treeadfb849ae0813b5bacab43fb7a7ab5ec23bc7fb6
parenta1b0969c8ccf097c88117250206750efcfe92f86
* Makefile.in (cppexp.o): Depend on cpphash.h.
* cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
Include cpphash.h.
* cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
* cpplib.c (do_define): Generalise to handle poisoned definitions,
redefining poisoned identifiers, etc.
(do_undef): Don't allow poisoned identifiers to be undefined.
(do_pragma): Add #pragma poison.
(do_xifdef): Handle `#ifdef xxx' for poisoned xxx.

* cccp.c: Add T_POISON node type.
(special_symbol): Handle `defined(xxx)' and plain `xxx' for
poisoned xxx.
(do_define): Generalise to handle poisoned definitions,
redefining poisoned identifiers, etc.
(do_undef): Don't allow poisoned identifiers to be undefined.
(do_pragma): Add #pragma poison.
(do_xifdef): Handle `#ifdef xxx' for poisoned xxx.

* c-pragma.c (handle_pragma_token): Ignore #pragma poison.
* c-pragma.h: Add ps_poison state.  We now always have generic
pragmas.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29224 138bc75d-0d04-0410-961f-82ee72b054a4
13 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/c-pragma.c
gcc/c-pragma.h
gcc/cccp.c
gcc/cpp.texi
gcc/cppexp.c
gcc/cpphash.c
gcc/cpplib.c
gcc/cpplib.h
gcc/testsuite/gcc.c-torture/ChangeLog
gcc/testsuite/gcc.c-torture/noncompile/noncompile.exp
gcc/testsuite/gcc.c-torture/noncompile/poison-1.c [new file with mode: 0644]