2005-01-03 Geoffrey Keating <geoffk@apple.com>
+ Robert Bowdidge <bowdidge@apple.com>
+
+ * 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 <geoffk@apple.com>
* gcc.dg/darwin-weakimport-1.c: Remove check for variables
producing warning.
--- /dev/null
+#import <OneSub/C.h>
--- /dev/null
+#import <OneSub/C.h>
--- /dev/null
+#ifdef ONESUB_C_INCLUDED
+#error should only be imported once
+#endif
+#define ONESUB_C_INCLUDED 1
--- /dev/null
+#import <OneSub/A.h>
+#import <OneSub/B.h>
--- /dev/null
+/* Copyright (C) 2004 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+/* { dg-options "-F$srcdir/gcc.dg/cpp/frame" } */
+
+/* Contributed by Robert Bowdidge <bowdidge@apple.com> */
+/* 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 <one/one-includeSubs.h>
+#ifndef ONESUB_C_INCLUDED
+#error C.h not included
+#endif
+2005-01-03 Geoffrey Keating <geoffk@apple.com>
+
+ * files.c (_cpp_find_file): Add files found by search_path_exhausted
+ to the list of all files.
+
2005-01-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
* internal.h: Update references to Cpp lib filenames.
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)