mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-15 08:10:28 +08:00
re PR preprocessor/15638 (gcc should have option to treat missing headers as fatal)
PR preprocessor/15638 gcc: * c-common.c (c_cpp_error): Handle CPP_DL_FATAL. gcc/fortran: * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL. gcc/testsuite: * gcc.dg/cpp/missing-header-1.c: New test. * gcc.dg/cpp/include2.c: Only test #include <>. Expect "compilation terminated" message. * gcc.dg/cpp/include2a.c: New test. Copy of include2.c but only test #include "". * gcc.dg/pch/counter-2.c, gcc.dg/pch/valid-1.c, gcc.dg/pch/valid-2.c, gcc.dg/pch/warn-1.c: Expect "compilation terminated" message. libcpp: * 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. From-SVN: r145341
This commit is contained in:
parent
ba4d8f9d37
commit
47580d22b2
@ -1,3 +1,8 @@
|
||||
2009-03-31 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR preprocessor/15638
|
||||
* c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
|
||||
|
||||
2009-03-31 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/23401
|
||||
|
@ -8009,6 +8009,9 @@ c_cpp_error (cpp_reader *pfile ATTRIBUTE_UNUSED, int level,
|
||||
case CPP_DL_NOTE:
|
||||
dlevel = DK_NOTE;
|
||||
break;
|
||||
case CPP_DL_FATAL:
|
||||
dlevel = DK_FATAL;
|
||||
break;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-03-31 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR preprocessor/15638
|
||||
* cpp.c (cb_cpp_error): Handle CPP_DL_FATAL.
|
||||
|
||||
2009-03-30 Steven G. Kargl <kargls@comcast.net>
|
||||
|
||||
PR fortran/38389
|
||||
|
@ -997,6 +997,9 @@ cb_cpp_error (cpp_reader *pfile ATTRIBUTE_UNUSED, int level,
|
||||
case CPP_DL_NOTE:
|
||||
dlevel = DK_NOTE;
|
||||
break;
|
||||
case CPP_DL_FATAL:
|
||||
dlevel = DK_FATAL;
|
||||
break;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
@ -1,3 +1,15 @@
|
||||
2009-03-31 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR preprocessor/15638
|
||||
* gcc.dg/cpp/missing-header-1.c: New test.
|
||||
* gcc.dg/cpp/include2.c: Only test #include <>. Expect
|
||||
"compilation terminated" message.
|
||||
* gcc.dg/cpp/include2a.c: New test. Copy of include2.c but only
|
||||
test #include "".
|
||||
* gcc.dg/pch/counter-2.c, gcc.dg/pch/valid-1.c,
|
||||
gcc.dg/pch/valid-2.c, gcc.dg/pch/warn-1.c: Expect "compilation
|
||||
terminated" message.
|
||||
|
||||
2009-03-31 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/23401
|
||||
|
@ -8,9 +8,8 @@
|
||||
/* Source: Neil Booth, 4 Nov 2000. */
|
||||
|
||||
#include <silly\>> /* { dg-error "extra tokens" "" } */
|
||||
#include "silly\"" /* { dg-error "extra tokens" "" } */
|
||||
|
||||
/* These error is No such file or directory, just once. However, this
|
||||
message is locale-dependent, so don't test for it. */
|
||||
/* { dg-error "silly" "" { target *-*-* } 10 } */
|
||||
/* { dg-error "missing" "" { target *-*-* } 11 } */
|
||||
/* { dg-message "terminated" "" { target *-*-* } 0 } */
|
||||
|
16
gcc/testsuite/gcc.dg/cpp/include2a.c
Normal file
16
gcc/testsuite/gcc.dg/cpp/include2a.c
Normal file
@ -0,0 +1,16 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation, Inc. */
|
||||
|
||||
/* { dg-do preprocess } */
|
||||
|
||||
/* Tests that #include does not allow the terminating '>' or '"' to be
|
||||
escaped, as per the standard. */
|
||||
|
||||
/* Source: Neil Booth, 4 Nov 2000. */
|
||||
|
||||
#include "silly\"" /* { dg-error "extra tokens" "" } */
|
||||
|
||||
/* These error is No such file or directory, just once. However, this
|
||||
message is locale-dependent, so don't test for it. */
|
||||
/* { dg-error "silly" "" { target *-*-* } 10 } */
|
||||
/* { dg-error "missing" "" { target *-*-* } 10 } */
|
||||
/* { dg-message "terminated" "" { target *-*-* } 0 } */
|
9
gcc/testsuite/gcc.dg/cpp/missing-header-1.c
Normal file
9
gcc/testsuite/gcc.dg/cpp/missing-header-1.c
Normal file
@ -0,0 +1,9 @@
|
||||
/* Test that missing headers are fatal errors. PR 15638. */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "" } */
|
||||
|
||||
#include "nonexistent.h" /* { dg-error "nonexistent.h" } */
|
||||
/* { dg-message "terminated" "" { target *-*-* } 0 } */
|
||||
|
||||
/* This declaration should not receive any diagnostic. */
|
||||
foo bar;
|
@ -10,6 +10,7 @@
|
||||
#include "counter-2.h" /* { dg-warning "not used because `__COUNTER__' is invalid" } */
|
||||
/* { dg-error "counter-2.h: No such file or directory" "no such file" { target *-*-* } 10 } */
|
||||
/* { dg-error "one or more PCH files were found, but they were invalid" "invalid files" { target *-*-* } 10 } */
|
||||
/* { dg-message "terminated" "" { target *-*-* } 0 } */
|
||||
|
||||
int main(void)
|
||||
{
|
||||
|
@ -3,5 +3,6 @@
|
||||
#include "valid-1.h"/* { dg-warning "created with -gnone, but used with -g" } */
|
||||
/* { dg-error "No such file" "no such file" { target *-*-* } 3 } */
|
||||
/* { dg-error "they were invalid" "invalid files" { target *-*-* } 3 } */
|
||||
/* { dg-message "terminated" "" { target *-*-* } 0 } */
|
||||
|
||||
int x;
|
||||
|
@ -3,4 +3,5 @@
|
||||
#include "valid-2.h" /* { dg-warning "settings for -fexceptions do not match" } */
|
||||
/* { dg-error "No such file" "no such file" { target *-*-* } 3 } */
|
||||
/* { dg-error "they were invalid" "invalid files" { target *-*-* } 3 } */
|
||||
/* { dg-message "terminated" "" { target *-*-* } 0 } */
|
||||
int x;
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include "warn-1.h"/* { dg-warning "not used because .DEFINED_VALUE. is defined" } */
|
||||
/* { dg-error "No such file" "no such file" { target *-*-* } 5 } */
|
||||
/* { dg-error "they were invalid" "invalid files" { target *-*-* } 5 } */
|
||||
/* { dg-message "terminated" "" { target *-*-* } 0 } */
|
||||
|
||||
|
||||
int main(void)
|
||||
|
@ -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:
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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, ...)
|
||||
|
Loading…
x
Reference in New Issue
Block a user