gcc/libcpp
Ben Elliston 5950c3c9a7 cpplib.h (NODE_CONDITIONAL): New.
libcpp/
	* include/cpplib.h (NODE_CONDITIONAL): New.
	(struct cpp_callbacks): New macro_to_expand field.
	(struct cpp_hashnode): Adjust size of flags and type fields.
	(cpp_peek_token): Prototype.
	* lex.c (cpp_peek_token): New function.
	(_cpp_temp_token): Protect pre-existing lookaheads.
	* macro.c (cpp_get_token): Expand any conditional macros.
	(_cpp_backup_tokens_direct): New.
	(_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
	(warn_of_redefinition): Silently allow redefined conditional
	macros.
	(_cpp_create_definition): Remove the conditional flag when a user
	defines one of the conditional macros.
	* internal.h (_cpp_backup_tokens_direct): New prototype.

gcc/
	* c-common.h (C_CPP_HASHNODE): New macro.
	* coretypes.h (struct cpp_token): Forward declare.
	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
	the context-sensitive keyword method.
	* config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
	__pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
	expand_bool_pixel): New.
	(altivec_categorize_keyword): New function.
	(init_vector_keywords): New function.
	(rs6000_macro_to_expand): Likewise.
	(rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
	compiling an ISO C dialect.

gcc/testsuite/
	* gcc.target/powerpc/altivec-macros.c: New test.
	* gcc.target/powerpc/altviec-26.c: Likewise.
	* gcc.dg/vmx/1b-06.c: Remove bool variable.
	* gcc.dg/vmx/1b-07.c: Likewise.
	* gcc.dg/vmx/1b-06-ansi.c: New test for the pre-define method.
	* gcc.dg/vmx/1b-07-ansi.c: Likewise.

From-SVN: r137775
2008-07-14 15:09:48 +10:00
..
include cpplib.h (NODE_CONDITIONAL): New. 2008-07-14 15:09:48 +10:00
po * fr.po: Update. 2008-03-28 02:07:37 +00:00
aclocal.m4 re PR other/35457 (Error building GCC trunk on CELL SPU) 2008-04-18 10:28:53 +00:00
ChangeLog cpplib.h (NODE_CONDITIONAL): New. 2008-07-14 15:09:48 +10:00
charset.c re PR preprocessor/36479 (Short buffer in libcpp) 2008-06-12 10:03:41 -07:00
config.in ( 5) 2007-12-03 21:04:47 +00:00
configure Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
configure.ac MAINTAINERS (mt port): Remove. 2008-06-07 19:00:15 +01:00
directives-only.c
directives.c re PR preprocessor/36320 (Required diagnosis of syntax error missed) 2008-05-30 14:25:09 +00:00
errors.c re PR preprocessor/27777 (Bad diagnostic emission when #error contains a trigraph) 2008-05-21 21:52:57 +00:00
expr.c re PR preprocessor/36320 (Required diagnosis of syntax error missed) 2008-05-30 14:25:09 +00:00
files.c re PR preprocessor/33415 (Can't compile .cpp file with UTF-8 BOM.) 2008-04-21 14:02:00 +00:00
identifiers.c traditional.c (lex_identifier): Use CPP_HASHNODE. 2008-02-20 02:16:43 +00:00
init.c cpp-id-data.h (UC): Was U, conflicts with U... 2008-04-18 09:58:08 -04:00
internal.h cpplib.h (NODE_CONDITIONAL): New. 2008-07-14 15:09:48 +10:00
lex.c cpplib.h (NODE_CONDITIONAL): New. 2008-07-14 15:09:48 +10:00
line-map.c traditional.c (lex_identifier): Use CPP_HASHNODE. 2008-02-20 02:16:43 +00:00
macro.c cpplib.h (NODE_CONDITIONAL): New. 2008-07-14 15:09:48 +10:00
makedepend.c
Makefile.in Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
makeucnid.c
mkdeps.c re PR preprocessor/35458 (Dependency generation (-M) does not quote '#' in filenames) 2008-03-06 18:08:40 +00:00
pch.c
symtab.c symtab.h (HT_ALLOCED): Remove. 2008-05-21 15:00:59 +00:00
system.h
traditional.c traditional.c (lex_identifier): Use CPP_HASHNODE. 2008-02-20 02:16:43 +00:00
ucnid.h
ucnid.tab