From: krebbel Date: Wed, 14 Oct 2015 06:53:54 +0000 (+0000) Subject: Fix "#pragma GCC pop_options" X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0cb9d971fdaf6de30d7ad6de9c74a2ed87ae33c3;p=thirdparty%2Fgcc.git Fix "#pragma GCC pop_options" gcc/ChangeLog * targhooks.c (default_target_option_pragma_parse): Do not warn if called on behalf of "#pragma GCC pop_options". gcc/testsuite/ChangeLog * gcc.dg/pragma-pop_options-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228794 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9ef5de998562..0e9ce3f43927 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-10-14 Dominik Vogt + + * targhooks.c (default_target_option_pragma_parse): Do not warn if + called on behalf of "#pragma GCC pop_options". + 2015-10-14 Tom de Vries * cfganal.c (verify_no_unreachable_blocks): New function. diff --git a/gcc/targhooks.c b/gcc/targhooks.c index 7238c8f8013c..5077ec97de1b 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -1305,8 +1305,12 @@ bool default_target_option_pragma_parse (tree ARG_UNUSED (args), tree ARG_UNUSED (pop_target)) { - warning (OPT_Wpragmas, - "#pragma GCC target is not supported for this machine"); + /* If args is NULL the caller is handle_pragma_pop_options (). In that case, + emit no warning because "#pragma GCC pop_target" is valid on targets that + do not have the "target" pragma. */ + if (args) + warning (OPT_Wpragmas, + "#pragma GCC target is not supported for this machine"); return false; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c4fd225d4a05..da0015284be2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-10-14 Dominik Vogt + + * gcc.dg/pragma-pop_options-1.c: New test. + 2015-10-13 Jakub Jelinek Aldy Hernandez diff --git a/gcc/testsuite/gcc.dg/pragma-pop_options-1.c b/gcc/testsuite/gcc.dg/pragma-pop_options-1.c new file mode 100644 index 000000000000..4e969de6c90b --- /dev/null +++ b/gcc/testsuite/gcc.dg/pragma-pop_options-1.c @@ -0,0 +1,7 @@ +/* Check warnings produced by #pragma GCC push/pop/reset_options. */ +/* { dg-do assemble } */ + +#pragma push_options +#pragma pop_options + +int foo;