From 2c8df1f3733844f313dc855d93f746466384a526 Mon Sep 17 00:00:00 2001 From: rguenth Date: Thu, 9 Apr 2015 13:37:53 +0000 Subject: 2015-04-09 Richard Biener PR pch/65550 * files.c (pch_open_file): Allow main and pre-included files when trying to open a PCH. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221949 138bc75d-0d04-0410-961f-82ee72b054a4 --- libcpp/files.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'libcpp/files.c') diff --git a/libcpp/files.c b/libcpp/files.c index a995071ad06..2f491224c6f 100644 --- a/libcpp/files.c +++ b/libcpp/files.c @@ -291,11 +291,13 @@ pch_open_file (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch) /* If the file is not included as first include from either the toplevel file or the command-line it is not a valid use of PCH. */ - if (pfile->all_files - && pfile->all_files->next_file - && !(pfile->all_files->implicit_preinclude - || pfile->all_files->next_file->implicit_preinclude)) - return false; + for (_cpp_file *f = pfile->all_files; f; f = f->next_file) + if (f->implicit_preinclude) + continue; + else if (f->main_file) + break; + else + return false; flen = strlen (path); len = flen + sizeof (extension); -- cgit v1.2.1