From ba841ef875de313d62028a0b3f8af3f006767142 Mon Sep 17 00:00:00 2001 From: geoffk Date: Tue, 4 Jan 2005 02:13:56 +0000 Subject: [PATCH] Index: libcpp/ChangeLog 2005-01-03 Geoffrey Keating * files.c (_cpp_find_file): Add files found by search_path_exhausted to the list of all files. Index: gcc/testsuite/ChangeLog 2005-01-03 Geoffrey Keating Robert Bowdidge * gcc.dg/cpp/subframework1.c: New. * gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/A.h: New. * gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/B.h: New. * gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h: New. * gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92883 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 9 +++++++++ .../one.framework/Frameworks/OneSub.framework/Headers/A.h | 1 + .../one.framework/Frameworks/OneSub.framework/Headers/B.h | 1 + .../one.framework/Frameworks/OneSub.framework/Headers/C.h | 4 ++++ .../cpp/frame/one.framework/Headers/one-includeSubs.h | 2 ++ gcc/testsuite/gcc.dg/cpp/subframework1.c | 15 +++++++++++++++ libcpp/ChangeLog | 5 +++++ libcpp/files.c | 10 +++++++++- 8 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/A.h create mode 100644 gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/B.h create mode 100644 gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h create mode 100644 gcc/testsuite/gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h create mode 100644 gcc/testsuite/gcc.dg/cpp/subframework1.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f74a542b2b4..a55eb0249ee 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,4 +1,13 @@ 2005-01-03 Geoffrey Keating + Robert Bowdidge + + * gcc.dg/cpp/subframework1.c: New. + * gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/A.h: New. + * gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/B.h: New. + * gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h: New. + * gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h: New. + +2005-01-03 Geoffrey Keating * gcc.dg/darwin-weakimport-1.c: Remove check for variables producing warning. diff --git a/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/A.h b/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/A.h new file mode 100644 index 00000000000..5573729516d --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/A.h @@ -0,0 +1 @@ +#import diff --git a/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/B.h b/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/B.h new file mode 100644 index 00000000000..5573729516d --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/B.h @@ -0,0 +1 @@ +#import diff --git a/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h b/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h new file mode 100644 index 00000000000..5afd8050cfb --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h @@ -0,0 +1,4 @@ +#ifdef ONESUB_C_INCLUDED +#error should only be imported once +#endif +#define ONESUB_C_INCLUDED 1 diff --git a/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h b/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h new file mode 100644 index 00000000000..adaeb95ad8f --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h @@ -0,0 +1,2 @@ +#import +#import diff --git a/gcc/testsuite/gcc.dg/cpp/subframework1.c b/gcc/testsuite/gcc.dg/cpp/subframework1.c new file mode 100644 index 00000000000..fd560faad4c --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/subframework1.c @@ -0,0 +1,15 @@ +/* Copyright (C) 2004 Free Software Foundation, Inc. */ + +/* { dg-do preprocess } */ +/* { dg-options "-F$srcdir/gcc.dg/cpp/frame" } */ + +/* Contributed by Robert Bowdidge */ +/* include a file from a subframework that will import two files that + both look at the same file. Make sure we only include that file once; + if so, the program will compile fine. If not, we'll get redefinition + errors */ + +#include +#ifndef ONESUB_C_INCLUDED +#error C.h not included +#endif diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 88e5b8f312b..fb3e9284341 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,8 @@ +2005-01-03 Geoffrey Keating + + * files.c (_cpp_find_file): Add files found by search_path_exhausted + to the list of all files. + 2005-01-01 Gabriel Dos Reis * internal.h: Update references to Cpp lib filenames. diff --git a/libcpp/files.c b/libcpp/files.c index bd5f8dd5114..df5d9d7c972 100644 --- a/libcpp/files.c +++ b/libcpp/files.c @@ -438,7 +438,15 @@ _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, bool f if (file->dir == NULL) { if (search_path_exhausted (pfile, fname, file)) - return file; + { + /* Although this file must not go in the cache, because + the file found might depend on things (like the current file) + that aren't represented in the cache, it still has to go in + the list of all files so that #import works. */ + file->next_file = pfile->all_files; + pfile->all_files = file; + return file; + } open_file_failed (pfile, file); if (invalid_pch) -- 2.11.4.GIT