Commit e1b81f2b by Jakub Jelinek Committed by Jakub Jelinek

re PR preprocessor/69543 (_Pragma does not apply within macro)

	PR preprocessor/69543
	PR c/69558
	* c-pragma.c (handle_pragma_diagnostic): Pass input_location
	instead of loc to control_warning_option.

	* gcc.dg/pr69543.c: New test.
	* gcc.dg/pr69558.c: New test.

From-SVN: r233058
parent bf672ee5
2016-02-01 Jakub Jelinek <jakub@redhat.com>
PR preprocessor/69543
PR c/69558
* c-pragma.c (handle_pragma_diagnostic): Pass input_location
instead of loc to control_warning_option.
2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
* c.opt (fopenacc-dim=): New option.
......
......@@ -817,9 +817,12 @@ handle_pragma_diagnostic(cpp_reader *ARG_UNUSED(dummy))
const char *arg = NULL;
if (cl_options[option_index].flags & CL_JOINED)
arg = option_string + 1 + cl_options[option_index].opt_len;
/* FIXME: input_location isn't the best location here, but it is
what we used to do here before and changing it breaks e.g.
PR69543 and PR69558. */
control_warning_option (option_index, (int) kind,
arg, kind != DK_IGNORED,
loc, lang_mask, &handlers,
input_location, lang_mask, &handlers,
&global_options, &global_options_set,
global_dc);
}
......
2016-02-01 Jakub Jelinek <jakub@redhat.com>
PR preprocessor/69543
PR c/69558
* gcc.dg/pr69543.c: New test.
* gcc.dg/pr69558.c: New test.
2016-02-01 Uros Bizjak <ubizjak@gmail.com>
PR testsuite/65940
......
/* PR preprocessor/69543 */
/* { dg-do compile } */
/* { dg-options "-O2 -Wuninitialized" } */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
void test (char yylval)
{
char *yyvsp;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
/* PR c/69558 */
/* { dg-do compile } */
/* { dg-options "-Wdeprecated-declarations" } */
#define A \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
#define B \
_Pragma ("GCC diagnostic pop")
#define C(x) \
A \
static inline void bar (void) { x (); } \
B
__attribute__((deprecated)) void foo (void); /* { dg-bogus "declared here" } */
C (foo) /* { dg-bogus "is deprecated" } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment