summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-02 16:29:46 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-02 16:29:46 +0000
commit68faebf45b95738cc003189a646a6c9bfa1d1ee0 (patch)
tree2f3f5d24ede7076f17367de0a1945c6a8e563d8f /gcc/testsuite
parent0d0bca5f11706b6cdcf1b1e113ece57c9145d221 (diff)
downloadppe42-gcc-68faebf45b95738cc003189a646a6c9bfa1d1ee0.tar.gz
ppe42-gcc-68faebf45b95738cc003189a646a6c9bfa1d1ee0.zip
* cppfiles.c (struct _cpp_file): Rename once_only_next to
next_file. Remove import and pragma_once, add once_only. (find_file): Add new file structures to the all_files list. (should_stack_file): Mark #import-ed files once-only, and don't stack them if the file has already been stacked. (_cp_mark_file_once_only): Simplify. * cpphash.h (struct cpp_reader): Rename once_only_files to all_files. Rename saw_pragma_once to seen_once_only. (_cpp_mark_file_once_only): Update prototype. * cpplib.c (do_pragma_once): Update. testsuite: * import1.c, import2.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70106 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/import1.c16
-rw-r--r--gcc/testsuite/gcc.dg/cpp/import1.h6
-rw-r--r--gcc/testsuite/gcc.dg/cpp/import2.c11
-rw-r--r--gcc/testsuite/gcc.dg/cpp/import2.h4
5 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3bcb80febe8..9b982ee16b2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2003-08-02 Neil Booth <neil@daikokuya.co.uk>
+
+ * import1.c, import2.c: New tests.
+
2003-08-01 Jakub Jelinek <jakub@redhat.com>
* g++.dg/eh/crossjump1.C: New test.
diff --git a/gcc/testsuite/gcc.dg/cpp/import1.c b/gcc/testsuite/gcc.dg/cpp/import1.c
new file mode 100644
index 00000000000..d118d7fb051
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/import1.c
@@ -0,0 +1,16 @@
+/* Copyright (C) 2003 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+/* { dg-options "" } */
+
+/* This tests that our eagerness to apply the multiple include guard
+ optimization to the #import doesn't stop us marking the file
+ once-only.
+
+ Neil Booth, 2 August 2003. */
+
+#include "import1.h"
+#import "import1.h"
+#undef IMPORT1_H
+#define BUG
+#include "import1.h"
diff --git a/gcc/testsuite/gcc.dg/cpp/import1.h b/gcc/testsuite/gcc.dg/cpp/import1.h
new file mode 100644
index 00000000000..936c525eb7f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/import1.h
@@ -0,0 +1,6 @@
+#ifndef IMPORT1_H
+#define IMPORT1_H
+#ifdef BUG
+#error Should not happen
+#endif
+#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/import2.c b/gcc/testsuite/gcc.dg/cpp/import2.c
new file mode 100644
index 00000000000..5c32523880e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/import2.c
@@ -0,0 +1,11 @@
+/* Copyright (C) 2003 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+/* { dg-options "" } */
+
+/* This tests that the file is only included once
+ Neil Booth, 2 August 2003. */
+
+#include "import2.h"
+#import "import2.h"
+#include "import2.h"
diff --git a/gcc/testsuite/gcc.dg/cpp/import2.h b/gcc/testsuite/gcc.dg/cpp/import2.h
new file mode 100644
index 00000000000..c6a0fa5978a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/import2.h
@@ -0,0 +1,4 @@
+#ifdef BUG
+#error Should not happen!
+#endif
+#define BUG
OpenPOWER on IntegriCloud