mirror of git://gcc.gnu.org/git/gcc.git
re PR preprocessor/28165 (_Pragma GCC system_header broken)
libcpp PR preprocessor/28165: * internal.h (cpp_in_primary_file): New function. * directives.c (do_include_next): Use cpp_in_primary_file. (do_pragma_once): Likewise. (do_pragma_system_header): Likewise. gcc/testsuite PR preprocessor/28165: * gcc.dg/cpp/pr28165.c: New file. From-SVN: r120441
This commit is contained in:
parent
79e6eaeb8f
commit
705e2d28a1
|
|
@ -1,3 +1,8 @@
|
||||||
|
2007-01-04 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
PR preprocessor/28165:
|
||||||
|
* gcc.dg/cpp/pr28165.c: New file.
|
||||||
|
|
||||||
2007-01-03 Josh Conner <jconner@apple.com>
|
2007-01-03 Josh Conner <jconner@apple.com>
|
||||||
|
|
||||||
PR middle-end/29683
|
PR middle-end/29683
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
/* Copyright (C) 2007 Free Software Foundation, Inc. */
|
||||||
|
/* PR preprocessor/28165 */
|
||||||
|
|
||||||
|
/* { dg-do preprocess } */
|
||||||
|
#pragma GCC system_header /* { dg-warning "system_header" "ignored" } */
|
||||||
|
_Pragma ("GCC system_header") /* { dg-warning "system_header" "ignored" } */
|
||||||
|
|
@ -1,3 +1,11 @@
|
||||||
|
2007-01-04 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
PR preprocessor/28165:
|
||||||
|
* internal.h (cpp_in_primary_file): New function.
|
||||||
|
* directives.c (do_include_next): Use cpp_in_primary_file.
|
||||||
|
(do_pragma_once): Likewise.
|
||||||
|
(do_pragma_system_header): Likewise.
|
||||||
|
|
||||||
2006-12-29 Ian Lance Taylor <iant@google.com>
|
2006-12-29 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
* lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't
|
* lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
/* CPP Library. (Directive handling.)
|
/* CPP Library. (Directive handling.)
|
||||||
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||||
1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||||
|
2007 Free Software Foundation, Inc.
|
||||||
Contributed by Per Bothner, 1994-95.
|
Contributed by Per Bothner, 1994-95.
|
||||||
Based on CCCP program by Paul Rubin, June 1986
|
Based on CCCP program by Paul Rubin, June 1986
|
||||||
Adapted to ANSI C, Richard Stallman, Jan 1987
|
Adapted to ANSI C, Richard Stallman, Jan 1987
|
||||||
|
|
@ -772,7 +773,7 @@ do_include_next (cpp_reader *pfile)
|
||||||
|
|
||||||
/* If this is the primary source file, warn and use the normal
|
/* If this is the primary source file, warn and use the normal
|
||||||
search logic. */
|
search logic. */
|
||||||
if (! pfile->buffer->prev)
|
if (cpp_in_primary_file (pfile))
|
||||||
{
|
{
|
||||||
cpp_error (pfile, CPP_DL_WARNING,
|
cpp_error (pfile, CPP_DL_WARNING,
|
||||||
"#include_next in primary source file");
|
"#include_next in primary source file");
|
||||||
|
|
@ -1346,7 +1347,7 @@ do_pragma (cpp_reader *pfile)
|
||||||
static void
|
static void
|
||||||
do_pragma_once (cpp_reader *pfile)
|
do_pragma_once (cpp_reader *pfile)
|
||||||
{
|
{
|
||||||
if (pfile->buffer->prev == NULL)
|
if (cpp_in_primary_file (pfile))
|
||||||
cpp_error (pfile, CPP_DL_WARNING, "#pragma once in main file");
|
cpp_error (pfile, CPP_DL_WARNING, "#pragma once in main file");
|
||||||
|
|
||||||
check_eol (pfile);
|
check_eol (pfile);
|
||||||
|
|
@ -1396,9 +1397,7 @@ do_pragma_poison (cpp_reader *pfile)
|
||||||
static void
|
static void
|
||||||
do_pragma_system_header (cpp_reader *pfile)
|
do_pragma_system_header (cpp_reader *pfile)
|
||||||
{
|
{
|
||||||
cpp_buffer *buffer = pfile->buffer;
|
if (cpp_in_primary_file (pfile))
|
||||||
|
|
||||||
if (buffer->prev == 0)
|
|
||||||
cpp_error (pfile, CPP_DL_WARNING,
|
cpp_error (pfile, CPP_DL_WARNING,
|
||||||
"#pragma system_header ignored outside include file");
|
"#pragma system_header ignored outside include file");
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/* Part of CPP library.
|
/* Part of CPP library.
|
||||||
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
This program is free software; you can redistribute it and/or modify it
|
||||||
|
|
@ -488,6 +488,13 @@ cpp_in_system_header (cpp_reader *pfile)
|
||||||
#define CPP_PEDANTIC(PF) CPP_OPTION (PF, pedantic)
|
#define CPP_PEDANTIC(PF) CPP_OPTION (PF, pedantic)
|
||||||
#define CPP_WTRADITIONAL(PF) CPP_OPTION (PF, warn_traditional)
|
#define CPP_WTRADITIONAL(PF) CPP_OPTION (PF, warn_traditional)
|
||||||
|
|
||||||
|
static inline int cpp_in_primary_file (cpp_reader *);
|
||||||
|
static inline int
|
||||||
|
cpp_in_primary_file (cpp_reader *pfile)
|
||||||
|
{
|
||||||
|
return pfile->line_table->depth == 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* In errors.c */
|
/* In errors.c */
|
||||||
extern int _cpp_begin_message (cpp_reader *, int,
|
extern int _cpp_begin_message (cpp_reader *, int,
|
||||||
source_location, unsigned int);
|
source_location, unsigned int);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue