summaryrefslogtreecommitdiffstats
path: root/libcpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcpp')
-rw-r--r--libcpp/ChangeLog8
-rw-r--r--libcpp/files.c6
-rw-r--r--libcpp/include/cpplib.h2
3 files changed, 13 insertions, 3 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index b2f4232f81d..e16a9e45ca9 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,11 @@
+2009-03-31 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/15638
+ * files.c (_cpp_find_file): Call open_file_failed after diagnosing
+ invalid PCH.
+ (open_file_failed): Make error for missing file fatal.
+ * include/cpplib.h (CPP_DL_FATAL): Define.
+
2009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net>
PR preprocessor/31932:
diff --git a/libcpp/files.c b/libcpp/files.c
index 007fce77d53..f9e68983a4d 100644
--- a/libcpp/files.c
+++ b/libcpp/files.c
@@ -1,6 +1,6 @@
/* Part of CPP library. File handling.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Written by Per Bothner, 1994.
Based on CCCP program by Paul Rubin, June 1986
@@ -488,7 +488,6 @@ _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, bool f
return file;
}
- open_file_failed (pfile, file, angle_brackets);
if (invalid_pch)
{
cpp_error (pfile, CPP_DL_ERROR,
@@ -497,6 +496,7 @@ _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, bool f
cpp_error (pfile, CPP_DL_ERROR,
"use -Winvalid-pch for more information");
}
+ open_file_failed (pfile, file, angle_brackets);
break;
}
@@ -942,7 +942,7 @@ open_file_failed (cpp_reader *pfile, _cpp_file *file, int angle_brackets)
if (CPP_OPTION (pfile, deps.style) && ! print_dep)
cpp_errno (pfile, CPP_DL_WARNING, file->path);
else
- cpp_errno (pfile, CPP_DL_ERROR, file->path);
+ cpp_errno (pfile, CPP_DL_FATAL, file->path);
}
}
diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
index ffde40eef1a..adc6cf13ede 100644
--- a/libcpp/include/cpplib.h
+++ b/libcpp/include/cpplib.h
@@ -813,6 +813,8 @@ cpp_num cpp_num_sign_extend (cpp_num, size_t);
#define CPP_DL_ICE 0x04
/* An informative note following a warning. */
#define CPP_DL_NOTE 0x05
+/* A fatal error. */
+#define CPP_DL_FATAL 0x06
/* Output a diagnostic of some kind. */
extern bool cpp_error (cpp_reader *, int, const char *msgid, ...)
OpenPOWER on IntegriCloud