aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@apple.com>2004-06-22 07:23:25 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2004-06-22 00:23:25 -0700
commitf6bf7bb617bc7d39715803f8915c6b77316eac25 (patch)
tree4e65ff5f531d93f5021d2b551966a514f88a7b43
parent058b15c1dc2199a810e4f8793993dc4ede61bb0a (diff)
downloadgcc-f6bf7bb617bc7d39715803f8915c6b77316eac25.zip
gcc-f6bf7bb617bc7d39715803f8915c6b77316eac25.tar.gz
gcc-f6bf7bb617bc7d39715803f8915c6b77316eac25.tar.bz2
Radar #: 3701874
2004-06-21 Andrew Pinski <apinski@apple.com> Radar #: 3701874 * c-decl.c (push_file_scope): Return early if we already have a file scope. 2004-06-21 Andrew Pinski <apinski@apple.com> * gcc.dg/pch/struct-1.c: New. * gcc.dg/pch/struct-1.hs: New. From-SVN: r83483
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-decl.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pch/struct-1.c11
-rw-r--r--gcc/testsuite/gcc.dg/pch/struct-1.hs3
5 files changed, 28 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 88a9d95..8826c97 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-06-21 Andrew Pinski <apinski@apple.com>
+
+ Radar #: 3701874
+ * c-decl.c (push_file_scope): Return early if we already
+ have a file scope.
+
2004-06-21 Geoffrey Keating <geoffk@apple.com>
* c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 4735dab..1f0db19 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -810,6 +810,9 @@ push_file_scope (void)
{
tree decl;
+ if (file_scope)
+ return;
+
push_scope ();
file_scope = current_scope;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cbc1a4b..5a41644 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-06-21 Andrew Pinski <apinski@apple.com>
+
+ * gcc.dg/pch/struct-1.c: New.
+ * gcc.dg/pch/struct-1.hs: New.
+
2004-06-21 Geoffrey Keating <geoffk@apple.com>
* gcc.dg/pch/save-temps-1.c: New file.
diff --git a/gcc/testsuite/gcc.dg/pch/struct-1.c b/gcc/testsuite/gcc.dg/pch/struct-1.c
new file mode 100644
index 0000000..d6c03e7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pch/struct-1.c
@@ -0,0 +1,11 @@
+#include "struct-1.h"
+
+struct ChainSearchRecord {
+ int identity;
+};
+typedef struct ChainSearchRecord ChainSearchRecord;
+void foo (ChainSearchPtr s)
+{
+ s->identity = 0x6a73616d;
+}
+
diff --git a/gcc/testsuite/gcc.dg/pch/struct-1.hs b/gcc/testsuite/gcc.dg/pch/struct-1.hs
new file mode 100644
index 0000000..055353a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pch/struct-1.hs
@@ -0,0 +1,3 @@
+struct ChainSearchRecord;
+typedef struct ChainSearchRecord *ChainSearchPtr;
+