diff options
author | Devang Patel <dpatel@apple.com> | 2006-04-13 19:19:39 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2006-04-13 19:19:39 +0000 |
commit | 00e1eb773cd225b58485e0653eef80205a1e514f (patch) | |
tree | a3bb1f24e9b69c913633164f40f445a464e271e3 | |
parent | 8dd3a04e41afbec1dfba1d0eb6f67b1643e8e61f (diff) |
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
-rw-r--r-- | gcc/ChangeLog.apple-ppc | 5 | ||||
-rw-r--r-- | gcc/c-lex.c | 6 | ||||
-rw-r--r-- | gcc/cp/ChangeLog.apple-ppc | 5 | ||||
-rw-r--r-- | gcc/cp/parser.c | 13 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog.apple-ppc | 7 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/pch/R4503682-1.h | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/pch/R4503682.C | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/pch/R4503682.Hs | 2 |
8 files changed, 48 insertions, 2 deletions
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 <dpatel@apple.com> + + Radar 4503682 + * c-lex.c (c_lex_with_flags): CPP_BINCL and CPP_EINCL tokens do not block PCH. + 2006-04-12 Devang Patel <dpatel@apple.com> 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 <dpatel@apple.com> + + Radar 4503682 + * parser.c (cp_lexer_new_main): Eat CPP_BINCL, CPP_EINCL tokens. + 2006-04-12 Fariborz Jahanian <fjahanian@apple.com> 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 <dpatel@apple.com> + + 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 <fjahanian@apple.com> 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; |