From 00e1eb773cd225b58485e0653eef80205a1e514f Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Thu, 13 Apr 2006 19:19:39 +0000 Subject: Radar 4503682 * c-lex.c (c_lex_with_flags): CPP_BINCL and CPP_EINCL tokens do not block PCH. [cp] * parser.c (cp_lexer_new_main): Eat CPP_BINCL, CPP_EINCL tokens. [testsuite] * g++.dg/pch/R4503682.C: New. * g++.dg/pch/R4503682.Hs: New. * g++.dg/pch/R4503682-1.h: New.[rajkot.apple.com:/Volumes/src/gcc.positron.objdir.g/gcc]$ git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple/trunk@112922 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.apple-ppc | 5 +++++ gcc/c-lex.c | 6 +++++- gcc/cp/ChangeLog.apple-ppc | 5 +++++ gcc/cp/parser.c | 13 ++++++++++++- gcc/testsuite/ChangeLog.apple-ppc | 7 +++++++ gcc/testsuite/g++.dg/pch/R4503682-1.h | 3 +++ gcc/testsuite/g++.dg/pch/R4503682.C | 9 +++++++++ gcc/testsuite/g++.dg/pch/R4503682.Hs | 2 ++ 8 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.dg/pch/R4503682-1.h create mode 100644 gcc/testsuite/g++.dg/pch/R4503682.C create mode 100644 gcc/testsuite/g++.dg/pch/R4503682.Hs diff --git a/gcc/ChangeLog.apple-ppc b/gcc/ChangeLog.apple-ppc index c721822e2a3..8026d56f5ba 100644 --- a/gcc/ChangeLog.apple-ppc +++ b/gcc/ChangeLog.apple-ppc @@ -1,3 +1,8 @@ +2006-04-13 Devang Patel + + Radar 4503682 + * c-lex.c (c_lex_with_flags): CPP_BINCL and CPP_EINCL tokens do not block PCH. + 2006-04-12 Devang Patel Radar 4509280 diff --git a/gcc/c-lex.c b/gcc/c-lex.c index 146b0e7476e..e5d77499496 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -738,7 +738,11 @@ c_lex_with_flags (tree *value, unsigned char *cpp_flags) --c_lex_depth; /* APPLE LOCAL end CW asm blocks */ - if (!no_more_pch) + /* APPLE LOCAL begin 4137741 */ + if (!no_more_pch + && type != CPP_BINCL + && type != CPP_EINCL) + /* APPLE LOCAL end 4137741 */ { no_more_pch = true; c_common_no_more_pch (); diff --git a/gcc/cp/ChangeLog.apple-ppc b/gcc/cp/ChangeLog.apple-ppc index 3bbd90c6c14..5ca373185a8 100644 --- a/gcc/cp/ChangeLog.apple-ppc +++ b/gcc/cp/ChangeLog.apple-ppc @@ -1,3 +1,8 @@ +2006-04-13 Devang Patel + + Radar 4503682 + * parser.c (cp_lexer_new_main): Eat CPP_BINCL, CPP_EINCL tokens. + 2006-04-12 Fariborz Jahanian Radar 4507230 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 4174ec897f8..1cd6ca693d8 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -263,7 +263,18 @@ cp_lexer_new_main (void) as -fpch-preprocess can generate a pragma to load the PCH file in the preprocessed output used by -save-temps. */ cp_lexer_get_preprocessor_token (NULL, &first_token); - + /* APPLE LOCAL begin 4137741 */ + while (first_token.type == CPP_BINCL + || first_token.type == CPP_EINCL) + { + if (first_token.type == CPP_BINCL) + (*debug_hooks->start_source_file) (TREE_INT_CST_LOW (first_token.value), + first_token.location.file); + else + (*debug_hooks->end_source_file) (TREE_INT_CST_LOW (first_token.value)); + cp_lexer_get_preprocessor_token (NULL, &first_token); + } + /* APPLE LOCAL begin 4137741 */ /* Tell cpplib we want CPP_PRAGMA tokens. */ cpp_get_options (parse_in)->defer_pragmas = true; diff --git a/gcc/testsuite/ChangeLog.apple-ppc b/gcc/testsuite/ChangeLog.apple-ppc index b9005fc08d8..fa7e3af582b 100644 --- a/gcc/testsuite/ChangeLog.apple-ppc +++ b/gcc/testsuite/ChangeLog.apple-ppc @@ -1,3 +1,10 @@ +2006-04-13 Devang Patel + + Radar 4503683 + * g++.dg/pch/R4503682.C: New. + * g++.dg/pch/R4503682.Hs: New. + * g++.dg/pch/R4503682-1.h: New. + 2006-04-13 Fariborz Jahanian Radar 4502236 diff --git a/gcc/testsuite/g++.dg/pch/R4503682-1.h b/gcc/testsuite/g++.dg/pch/R4503682-1.h new file mode 100644 index 00000000000..3dfe4195cd6 --- /dev/null +++ b/gcc/testsuite/g++.dg/pch/R4503682-1.h @@ -0,0 +1,3 @@ +/* APPLE LOCAL file bincl eincl */ +#include "R4503682.H" + diff --git a/gcc/testsuite/g++.dg/pch/R4503682.C b/gcc/testsuite/g++.dg/pch/R4503682.C new file mode 100644 index 00000000000..9aa6dade985 --- /dev/null +++ b/gcc/testsuite/g++.dg/pch/R4503682.C @@ -0,0 +1,9 @@ +/* APPLE LOCAL file bincl/eincl */ +#include "R4503682-1.h" +void foo (myint i) +{ +} + + + + diff --git a/gcc/testsuite/g++.dg/pch/R4503682.Hs b/gcc/testsuite/g++.dg/pch/R4503682.Hs new file mode 100644 index 00000000000..bf3ae70810d --- /dev/null +++ b/gcc/testsuite/g++.dg/pch/R4503682.Hs @@ -0,0 +1,2 @@ +/* APPLE LOCAL file bincl eincl */ +typedef int myint; -- cgit v1.2.3