re PR c++/24924 (front end and preprocessor pedantic_errors settings should agree)

2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/24924
	* c-opts.c (c_common_post_options): Handle C++ post-processing here.
	Set also -pedantic-errors by default for the  preprocessor unless
	-fpermissive is given.
cp/
	* decl.c (cxx_init_decl_processing): Move command-line options
	processing to c-opts.c.
testsuite/
	* g++.dg/cpp/pedantic-errors.C: New.
	* g++.dg/cpp/permissive.C: New.

From-SVN: r122961
This commit is contained in:
Manuel López-Ibáñez 2007-03-15 22:24:42 +00:00
parent 71afac1da3
commit 9b439fe168
7 changed files with 46 additions and 11 deletions

View File

@ -1,3 +1,10 @@
2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/24924
* c-opts.c (c_common_post_options): Handle C++ post-processing here.
Set also -pedantic-errors by default for the preprocessor unless
-fpermissive is given.
2007-03-15 Richard Guenther <rguenther@suse.de>
PR middle-end/29719

View File

@ -1077,6 +1077,23 @@ c_common_post_options (const char **pfilename)
if (warn_overlength_strings == -1 || c_dialect_cxx ())
warn_overlength_strings = 0;
/* Adjust various flags for C++ based on command-line settings. */
if (c_dialect_cxx ())
{
if (!flag_permissive)
{
flag_pedantic_errors = 1;
cpp_opts->pedantic_errors = 1;
}
if (!flag_no_inline)
{
flag_inline_trees = 1;
flag_no_inline = 1;
}
if (flag_inline_functions)
flag_inline_trees = 2;
}
/* Special format checking options don't work without -Wformat; warn if
they are used. */
if (!warn_format)

View File

@ -1,3 +1,9 @@
2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/24924
* decl.c (cxx_init_decl_processing): Move command-line options
processing to c-opts.c.
2007-03-15 Douglas Gregor <doug.gregor@gmail.com>
* ptree.c (cxx_print_type): Use formatting markup for integers

View File

@ -3143,17 +3143,6 @@ cxx_init_decl_processing (void)
current_lang_name = NULL_TREE;
/* Adjust various flags based on command-line settings. */
if (!flag_permissive)
flag_pedantic_errors = 1;
if (!flag_no_inline)
{
flag_inline_trees = 1;
flag_no_inline = 1;
}
if (flag_inline_functions)
flag_inline_trees = 2;
/* Force minimum function alignment if using the least significant
bit of function pointers to store the virtual bit. */
if (TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_pfn

View File

@ -1,3 +1,9 @@
2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/24924
* g++.dg/cpp/pedantic-errors.C: New.
* g++.dg/cpp/permissive.C: New.
2007-03-15 Richard Sandiford <richard@codesourcery.com>
* g++.dg/opt/mmx1.C: Only use the PIC options for fpic targets.

View File

@ -0,0 +1,5 @@
/* { dg-do preprocess } */
/* { dg-options "-std=c++98" } */
#if 1
#endif 1 /* { dg-error "error: extra tokens at end of #endif directive" } */

View File

@ -0,0 +1,5 @@
/* { dg-do preprocess } */
/* { dg-options "-std=c++98 -fpermissive" } */
#if 1
#endif 1 /* { dg-warning "warning: extra tokens at end of #endif directive" } */