aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/c-family/ChangeLog8
-rw-r--r--gcc/c-family/c-format.c6
-rw-r--r--gcc/c-family/c.opt8
-rw-r--r--gcc/c-typeck.c12
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/call.c4
-rw-r--r--gcc/cp/typeck.c14
-rw-r--r--gcc/doc/invoke.texi57
9 files changed, 77 insertions, 46 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f90cceb..5d5149e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * doc/invoke.texi (Wmissing-format-attribute): Document as an
+ alias of Wsuggest-attribute=format.
+ * c-typeck.c (convert_for_assignment): Replace
+ Wmissing-format-attribute with Wsuggest-attribute=format.
+ (digest_init): Likewise.
+
2012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
* opts.c (finish_options): Do not handle -Wmissing-noreturn here.
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 2082ff6..0185841 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,11 @@
+2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * c.opt (Wsuggest-attribute=format): New. Alias of
+ Wmissing-format-attribute.
+ * c-format.c (decode_format_type): Replace
+ Wmissing-format-attribute with Wsuggest-attribute=format.
+ (check_function_format): Likewise.
+
2012-04-27 Ollie Wild <aaw@google.com>
* c-common.c: Add CPP_W_LITERAL_SUFFIX mapping.
diff --git a/gcc/c-family/c-format.c b/gcc/c-family/c-format.c
index 158e8dc..2d1ed81 100644
--- a/gcc/c-family/c-format.c
+++ b/gcc/c-family/c-format.c
@@ -1005,7 +1005,7 @@ decode_format_type (const char *s)
/* Check the argument list of a call to printf, scanf, etc.
ATTRS are the attributes on the function type. There are NARGS argument
values in the array ARGARRAY.
- Also, if -Wmissing-format-attribute,
+ Also, if -Wsuggest-attribute=format,
warn for calls to vprintf or vscanf in functions with no such format
attribute themselves. */
@@ -1033,7 +1033,7 @@ check_function_format (tree attrs, int nargs, tree *argarray)
params = tree_cons (NULL_TREE, argarray[i], params);
check_format_info (&info, params);
}
- if (warn_missing_format_attribute && info.first_arg_num == 0
+ if (warn_suggest_attribute_format && info.first_arg_num == 0
&& (format_types[info.format_type].flags
& (int) FMT_FLAG_ARG_CONVERT))
{
@@ -1063,7 +1063,7 @@ check_function_format (tree attrs, int nargs, tree *argarray)
break;
}
if (args != 0)
- warning (OPT_Wmissing_format_attribute, "function might "
+ warning (OPT_Wsuggest_attribute_format, "function might "
"be possible candidate for %qs format attribute",
format_types[info.format_type].name);
}
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index db8ca81..ff8ce94 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -477,10 +477,14 @@ Wmissing-field-initializers
C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1) Warning
Warn about missing fields in struct initializers
-Wmissing-format-attribute
-C ObjC C++ ObjC++ Var(warn_missing_format_attribute) Warning
+Wsuggest-attribute=format
+C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
Warn about functions which might be candidates for format attributes
+Wmissing-format-attribute
+C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
+;
+
Wmissing-include-dirs
C ObjC C++ ObjC++ Warning
Warn about user-specified include directories that do not exist
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index e87cb87..5e18a98 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -5594,29 +5594,29 @@ convert_for_assignment (location_t location, tree type, tree rhs,
/* Check if the right-hand side has a format attribute but the
left-hand side doesn't. */
- if (warn_missing_format_attribute
+ if (warn_suggest_attribute_format
&& check_missing_format_attribute (type, rhstype))
{
switch (errtype)
{
case ic_argpass:
- warning_at (location, OPT_Wmissing_format_attribute,
+ warning_at (location, OPT_Wsuggest_attribute_format,
"argument %d of %qE might be "
"a candidate for a format attribute",
parmnum, rname);
break;
case ic_assign:
- warning_at (location, OPT_Wmissing_format_attribute,
+ warning_at (location, OPT_Wsuggest_attribute_format,
"assignment left-hand side might be "
"a candidate for a format attribute");
break;
case ic_init:
- warning_at (location, OPT_Wmissing_format_attribute,
+ warning_at (location, OPT_Wsuggest_attribute_format,
"initialization left-hand side might be "
"a candidate for a format attribute");
break;
case ic_return:
- warning_at (location, OPT_Wmissing_format_attribute,
+ warning_at (location, OPT_Wsuggest_attribute_format,
"return type might be "
"a candidate for a format attribute");
break;
@@ -6335,7 +6335,7 @@ digest_init (location_t init_loc, tree type, tree init, tree origtype,
pedwarn_init (init_loc, 0,
"initializer element is not a constant expression");
- /* Added to enable additional -Wmissing-format-attribute warnings. */
+ /* Added to enable additional -Wsuggest-attribute=format warnings. */
if (TREE_CODE (TREE_TYPE (inside_init)) == POINTER_TYPE)
inside_init = convert_for_assignment (init_loc, type, inside_init,
origtype,
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index db8bf72..541e725e 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * typeck.c (convert_for_assignment): Replace
+ Wmissing-format-attribute with Wsuggest-attribute=format.
+ * call.c (convert_for_arg_passing): Likewise.
+
2012-04-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53096
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index f9a7f08..2207f42 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -6321,7 +6321,7 @@ convert_for_arg_passing (tree type, tree val, tsubst_flags_t complain)
TYPE_SIZE (integer_type_node)))
val = perform_integral_promotions (val);
if ((complain & tf_warning)
- && warn_missing_format_attribute)
+ && warn_suggest_attribute_format)
{
tree rhstype = TREE_TYPE (val);
const enum tree_code coder = TREE_CODE (rhstype);
@@ -6329,7 +6329,7 @@ convert_for_arg_passing (tree type, tree val, tsubst_flags_t complain)
if ((codel == POINTER_TYPE || codel == REFERENCE_TYPE)
&& coder == codel
&& check_missing_format_attribute (type, rhstype))
- warning (OPT_Wmissing_format_attribute,
+ warning (OPT_Wsuggest_attribute_format,
"argument of function call might be a candidate for a format attribute");
}
return val;
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index fb2f1bc..142402a 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -7624,7 +7624,7 @@ convert_for_assignment (tree type, tree rhs,
return error_mark_node;
}
}
- if (warn_missing_format_attribute)
+ if (warn_suggest_attribute_format)
{
const enum tree_code codel = TREE_CODE (type);
if ((codel == POINTER_TYPE || codel == REFERENCE_TYPE)
@@ -7636,31 +7636,31 @@ convert_for_assignment (tree type, tree rhs,
case ICR_ARGPASS:
case ICR_DEFAULT_ARGUMENT:
if (fndecl)
- warning (OPT_Wmissing_format_attribute,
+ warning (OPT_Wsuggest_attribute_format,
"parameter %qP of %qD might be a candidate "
"for a format attribute", parmnum, fndecl);
else
- warning (OPT_Wmissing_format_attribute,
+ warning (OPT_Wsuggest_attribute_format,
"parameter might be a candidate "
"for a format attribute");
break;
case ICR_CONVERTING:
- warning (OPT_Wmissing_format_attribute,
+ warning (OPT_Wsuggest_attribute_format,
"target of conversion might be a candidate "
"for a format attribute");
break;
case ICR_INIT:
- warning (OPT_Wmissing_format_attribute,
+ warning (OPT_Wsuggest_attribute_format,
"target of initialization might be a candidate "
"for a format attribute");
break;
case ICR_RETURN:
- warning (OPT_Wmissing_format_attribute,
+ warning (OPT_Wsuggest_attribute_format,
"return type might be a candidate "
"for a format attribute");
break;
case ICR_ASSIGN:
- warning (OPT_Wmissing_format_attribute,
+ warning (OPT_Wsuggest_attribute_format,
"left-hand side of assignment might be a candidate "
"for a format attribute");
break;
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index bd7ea3b..c6ee28f 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -255,7 +255,7 @@ Objective-C and Objective-C++ Dialects}.
-Winvalid-pch -Wlarger-than=@var{len} -Wunsafe-loop-optimizations @gol
-Wlogical-op -Wlong-long @gol
-Wmain -Wmaybe-uninitialized -Wmissing-braces -Wmissing-field-initializers @gol
--Wmissing-format-attribute -Wmissing-include-dirs @gol
+-Wmissing-include-dirs @gol
-Wno-mudflap @gol
-Wno-multichar -Wnonnull -Wno-overflow @gol
-Woverlength-strings -Wpacked -Wpacked-bitfield-compat -Wpadded @gol
@@ -266,7 +266,8 @@ Objective-C and Objective-C++ Dialects}.
-Wsign-compare -Wsign-conversion -Wstack-protector @gol
-Wstack-usage=@var{len} -Wstrict-aliasing -Wstrict-aliasing=n @gol
-Wstrict-overflow -Wstrict-overflow=@var{n} @gol
--Wsuggest-attribute=@r{[}pure@r{|}const@r{|}noreturn@r{]} @gol
+-Wsuggest-attribute=@r{[}pure@r{|}const@r{|}noreturn@r{|}format@r{]} @gol
+-Wmissing-format-attribute @gol
-Wswitch -Wswitch-default -Wswitch-enum -Wsync-nand @gol
-Wsystem-headers -Wtrampolines -Wtrigraphs -Wtype-limits -Wundef @gol
-Wuninitialized -Wunknown-pragmas -Wno-pragmas @gol
@@ -3860,7 +3861,7 @@ comparisons, so this warning level gives a very large number of
false positives.
@end table
-@item -Wsuggest-attribute=@r{[}pure@r{|}const@r{|}noreturn@r{]}
+@item -Wsuggest-attribute=@r{[}pure@r{|}const@r{|}noreturn@r{|}format@r{]}
@opindex Wsuggest-attribute=
@opindex Wno-suggest-attribute=
Warn for cases where adding an attribute may be beneficial. The
@@ -3885,6 +3886,33 @@ returns normally if it doesn't contain an infinite loop nor returns abnormally
by throwing, calling @code{abort()} or trapping. This analysis requires option
@option{-fipa-pure-const}, which is enabled by default at @option{-O} and
higher. Higher optimization levels improve the accuracy of the analysis.
+
+@item -Wsuggest-attribute=format
+@itemx -Wmissing-format-attribute
+@opindex Wsuggest-attribute=format
+@opindex Wmissing-format-attribute
+@opindex Wno-suggest-attribute=format
+@opindex Wno-missing-format-attribute
+@opindex Wformat
+@opindex Wno-format
+
+Warn about function pointers that might be candidates for @code{format}
+attributes. Note these are only possible candidates, not absolute ones.
+GCC guesses that function pointers with @code{format} attributes that
+are used in assignment, initialization, parameter passing or return
+statements should have a corresponding @code{format} attribute in the
+resulting type. I.e.@: the left-hand side of the assignment or
+initialization, the type of the parameter variable, or the return type
+of the containing function respectively should also have a @code{format}
+attribute to avoid the warning.
+
+GCC also warns about function definitions that might be
+candidates for @code{format} attributes. Again, these are only
+possible candidates. GCC guesses that @code{format} attributes
+might be appropriate for any function that calls a function like
+@code{vprintf} or @code{vscanf}, but this might not always be the
+case, and some functions for which @code{format} attributes are
+appropriate may not be detected.
@end table
@item -Warray-bounds
@@ -4424,29 +4452,6 @@ struct s x = @{ .f = 3, .g = 4 @};
This warning is included in @option{-Wextra}. To get other @option{-Wextra}
warnings without this one, use @option{-Wextra -Wno-missing-field-initializers}.
-@item -Wmissing-format-attribute
-@opindex Wmissing-format-attribute
-@opindex Wno-missing-format-attribute
-@opindex Wformat
-@opindex Wno-format
-Warn about function pointers that might be candidates for @code{format}
-attributes. Note these are only possible candidates, not absolute ones.
-GCC guesses that function pointers with @code{format} attributes that
-are used in assignment, initialization, parameter passing or return
-statements should have a corresponding @code{format} attribute in the
-resulting type. I.e.@: the left-hand side of the assignment or
-initialization, the type of the parameter variable, or the return type
-of the containing function respectively should also have a @code{format}
-attribute to avoid the warning.
-
-GCC also warns about function definitions that might be
-candidates for @code{format} attributes. Again, these are only
-possible candidates. GCC guesses that @code{format} attributes
-might be appropriate for any function that calls a function like
-@code{vprintf} or @code{vscanf}, but this might not always be the
-case, and some functions for which @code{format} attributes are
-appropriate may not be detected.
-
@item -Wno-multichar
@opindex Wno-multichar
@opindex Wmultichar