aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2006-04-13 19:19:39 +0000
committerDevang Patel <dpatel@apple.com>2006-04-13 19:19:39 +0000
commit00e1eb773cd225b58485e0653eef80205a1e514f (patch)
treea3bb1f24e9b69c913633164f40f445a464e271e3
parent8dd3a04e41afbec1dfba1d0eb6f67b1643e8e61f (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-ppc5
-rw-r--r--gcc/c-lex.c6
-rw-r--r--gcc/cp/ChangeLog.apple-ppc5
-rw-r--r--gcc/cp/parser.c13
-rw-r--r--gcc/testsuite/ChangeLog.apple-ppc7
-rw-r--r--gcc/testsuite/g++.dg/pch/R4503682-1.h3
-rw-r--r--gcc/testsuite/g++.dg/pch/R4503682.C9
-rw-r--r--gcc/testsuite/g++.dg/pch/R4503682.Hs2
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;