re PR c/68833 (-Werror=format issues an error now)
PR c/68833 * common.opt (Wmissing-noreturn): Add Warning option. * opts-common.c (control_warning_option): If opt is alias_target with alias_arg, set arg to it. * c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option. * c-c++-common/pr68833-1.c: New test. * c-c++-common/pr68833-2.c: New test. From-SVN: r231624
This commit is contained in:
parent
d84ffc0a56
commit
54d62f5148
9 changed files with 73 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
|||
2015-12-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/68833
|
||||
* common.opt (Wmissing-noreturn): Add Warning option.
|
||||
* opts-common.c (control_warning_option): If opt is
|
||||
alias_target with alias_arg, set arg to it.
|
||||
|
||||
2015-12-14 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
PR target/68865
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-12-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/68833
|
||||
* c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option.
|
||||
|
||||
2014-12-12 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/68815
|
||||
|
|
|
@ -627,7 +627,7 @@ C++ ObjC++ Var(warn_templates) Warning
|
|||
Warn on primary template declaration.
|
||||
|
||||
Wmissing-format-attribute
|
||||
C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
|
||||
C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
|
||||
;
|
||||
|
||||
Wmissing-include-dirs
|
||||
|
@ -678,7 +678,7 @@ C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
|
|||
;
|
||||
|
||||
Wnormalized
|
||||
C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
|
||||
C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
|
||||
;
|
||||
|
||||
Wnormalized=
|
||||
|
|
|
@ -612,7 +612,7 @@ Common Var(warn_unsafe_loop_optimizations) Warning
|
|||
Warn if the loop cannot be optimized due to nontrivial assumptions.
|
||||
|
||||
Wmissing-noreturn
|
||||
Common Alias(Wsuggest-attribute=noreturn)
|
||||
Common Warning Alias(Wsuggest-attribute=noreturn)
|
||||
|
||||
Wodr
|
||||
Common Var(warn_odr_violations) Init(1) Warning
|
||||
|
|
|
@ -1361,7 +1361,13 @@ control_warning_option (unsigned int opt_index, int kind, const char *arg,
|
|||
diagnostic_context *dc)
|
||||
{
|
||||
if (cl_options[opt_index].alias_target != N_OPTS)
|
||||
opt_index = cl_options[opt_index].alias_target;
|
||||
{
|
||||
gcc_assert (!cl_options[opt_index].cl_separate_alias
|
||||
&& !cl_options[opt_index].cl_negative_alias);
|
||||
if (cl_options[opt_index].alias_arg)
|
||||
arg = cl_options[opt_index].alias_arg;
|
||||
opt_index = cl_options[opt_index].alias_target;
|
||||
}
|
||||
if (opt_index == OPT_SPECIAL_ignore)
|
||||
return;
|
||||
if (dc)
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2015-12-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/68833
|
||||
* c-c++-common/pr68833-1.c: New test.
|
||||
* c-c++-common/pr68833-2.c: New test.
|
||||
|
||||
2015-12-14 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/68852
|
||||
|
|
22
gcc/testsuite/c-c++-common/pr68833-1.c
Normal file
22
gcc/testsuite/c-c++-common/pr68833-1.c
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* PR c/68833 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Werror=larger-than-65536 -Werror=format -Werror=missing-noreturn" } */
|
||||
|
||||
int a[131072]; /* { dg-error "size of 'a' is \[1-9]\[0-9]* bytes" } */
|
||||
int b[1024]; /* { dg-bogus "size of 'b' is \[1-9]\[0-9]* bytes" } */
|
||||
|
||||
void
|
||||
f1 (const char *fmt)
|
||||
{
|
||||
__builtin_printf ("%d\n", 1.2); /* { dg-error "expects argument of type" } */
|
||||
__builtin_printf (fmt, 1.2); /* { dg-bogus "format not a string literal, argument types not checked" } */
|
||||
}
|
||||
|
||||
extern void f2 (void);
|
||||
void
|
||||
f2 (void) /* { dg-error "candidate for attribute 'noreturn'" "detect noreturn candidate" } */
|
||||
{
|
||||
__builtin_exit (0);
|
||||
}
|
||||
|
||||
/* { dg-prune-output "treated as errors" } */
|
16
gcc/testsuite/c-c++-common/pr68833-2.c
Normal file
16
gcc/testsuite/c-c++-common/pr68833-2.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* PR c/68833 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Werror=missing-format-attribute" } */
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
void
|
||||
foo (const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start (ap, fmt);
|
||||
__builtin_vprintf (fmt, ap); /* { dg-error "candidate" "printf attribute warning" } */
|
||||
va_end (ap);
|
||||
}
|
||||
|
||||
/* { dg-prune-output "treated as errors" } */
|
7
gcc/testsuite/c-c++-common/pr68833-3.c
Normal file
7
gcc/testsuite/c-c++-common/pr68833-3.c
Normal file
|
@ -0,0 +1,7 @@
|
|||
/* PR c/68833 */
|
||||
/* { dg-do preprocess } */
|
||||
/* { dg-options "-Werror=normalized" } */
|
||||
|
||||
\u0F43 // { dg-error "`.U00000f43' is not in NFC .-Werror=normalized=." }
|
||||
|
||||
/* { dg-prune-output "treated as errors" } */
|
Loading…
Add table
Reference in a new issue