common.opt (Wlarger-than=): New.
2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * common.opt (Wlarger-than=): New. * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with -Wlarger-than=. * opts.c (common_handle_option): Handle -Wlarger-than=. * optc-gen.awk: Likewise. * opth-gen.awk: Likewise. * stor-layout.c (layout_decl): Use -Wlarger-than= for warning. * tree-optimize.c (tree_rest_of_compilation): Likewise. testsuite/ * gcc.dg/Wlarger-than2.c: New. From-SVN: r132674
This commit is contained in:
parent
185a6cc159
commit
e8fc888de9
@ -1,3 +1,14 @@
|
||||
2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
||||
|
||||
* common.opt (Wlarger-than=): New.
|
||||
* doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
|
||||
-Wlarger-than=.
|
||||
* opts.c (common_handle_option): Handle -Wlarger-than=.
|
||||
* optc-gen.awk: Likewise.
|
||||
* opth-gen.awk: Likewise.
|
||||
* stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
|
||||
* tree-optimize.c (tree_rest_of_compilation): Likewise.
|
||||
|
||||
2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
||||
|
||||
* c-common.c (match_case_to_enum_1): Add appropriate
|
||||
|
@ -127,7 +127,10 @@ Warn when an inlined function cannot be inlined
|
||||
|
||||
Wlarger-than-
|
||||
Common RejectNegative Joined UInteger Warning
|
||||
-Wlarger-than-<number> Warn if an object is larger than <number> bytes
|
||||
|
||||
Wlarger-than=
|
||||
Common RejectNegative Joined UInteger Warning
|
||||
-Wlarger-than=<number> Warn if an object is larger than <number> bytes
|
||||
|
||||
Wlogical-op
|
||||
Common Warning Var(warn_logical_op)
|
||||
|
@ -241,7 +241,7 @@ Objective-C and Objective-C++ Dialects}.
|
||||
-Wimplicit -Wimplicit-function-declaration -Wimplicit-int @gol
|
||||
-Wimport -Wno-import -Winit-self -Winline @gol
|
||||
-Wno-int-to-pointer-cast -Wno-invalid-offsetof @gol
|
||||
-Winvalid-pch -Wlarger-than-@var{len} -Wunsafe-loop-optimizations @gol
|
||||
-Winvalid-pch -Wlarger-than=@var{len} -Wunsafe-loop-optimizations @gol
|
||||
-Wlogical-op -Wlong-long @gol
|
||||
-Wmain -Wmissing-braces -Wmissing-field-initializers @gol
|
||||
-Wmissing-format-attribute -Wmissing-include-dirs @gol
|
||||
@ -3516,7 +3516,8 @@ Do not warn whenever an @samp{#else} or an @samp{#endif} are followed by text.
|
||||
Warn whenever a local variable shadows another local variable, parameter or
|
||||
global variable or whenever a built-in function is shadowed.
|
||||
|
||||
@item -Wlarger-than-@var{len}
|
||||
@item -Wlarger-than=@var{len}
|
||||
@opindex Wlarger-than=@var{len}
|
||||
@opindex Wlarger-than-@var{len}
|
||||
Warn whenever an object of larger than @var{len} bytes is defined.
|
||||
|
||||
|
@ -150,7 +150,7 @@ for (i = 0; i < n_opts; i++) {
|
||||
|
||||
len = length (opts[i]);
|
||||
enum = "OPT_" opts[i]
|
||||
if (opts[i] == "finline-limit=")
|
||||
if (opts[i] == "finline-limit=" || opts[i] == "Wlarger-than=")
|
||||
enum = enum "eq"
|
||||
gsub ("[^A-Za-z0-9]", "_", enum)
|
||||
|
||||
|
@ -160,7 +160,7 @@ for (i = 0; i < n_opts; i++) {
|
||||
|
||||
len = length (opts[i]);
|
||||
enum = "OPT_" opts[i]
|
||||
if (opts[i] == "finline-limit=")
|
||||
if (opts[i] == "finline-limit=" || opts[i] == "Wlarger-than=")
|
||||
enum = enum "eq"
|
||||
gsub ("[^A-Za-z0-9]", "_", enum)
|
||||
|
||||
|
@ -1540,6 +1540,11 @@ common_handle_option (size_t scode, const char *arg, int value,
|
||||
break;
|
||||
|
||||
case OPT_Wlarger_than_:
|
||||
/* This form corresponds to -Wlarger-than-.
|
||||
Kept for backward compatibility.
|
||||
Don't use it as the first argument of warning(). */
|
||||
|
||||
case OPT_Wlarger_than_eq:
|
||||
larger_than_size = value;
|
||||
warn_larger_than = value != -1;
|
||||
break;
|
||||
|
@ -464,9 +464,9 @@ layout_decl (tree decl, unsigned int known_align)
|
||||
int size_as_int = TREE_INT_CST_LOW (size);
|
||||
|
||||
if (compare_tree_int (size, size_as_int) == 0)
|
||||
warning (OPT_Wlarger_than_, "size of %q+D is %d bytes", decl, size_as_int);
|
||||
warning (OPT_Wlarger_than_eq, "size of %q+D is %d bytes", decl, size_as_int);
|
||||
else
|
||||
warning (OPT_Wlarger_than_, "size of %q+D is larger than %wd bytes",
|
||||
warning (OPT_Wlarger_than_eq, "size of %q+D is larger than %wd bytes",
|
||||
decl, larger_than_size);
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,7 @@
|
||||
2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
||||
|
||||
* gcc.dg/Wlarger-than2.c: New.
|
||||
|
||||
2008-02-26 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR c++/35323
|
||||
|
7
gcc/testsuite/gcc.dg/Wlarger-than2.c
Normal file
7
gcc/testsuite/gcc.dg/Wlarger-than2.c
Normal file
@ -0,0 +1,7 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wlarger-than=8" } */
|
||||
static void foo (void)
|
||||
{
|
||||
char buf[9]; /* { dg-warning "size of.*9 bytes" } */
|
||||
}
|
||||
|
@ -427,10 +427,10 @@ tree_rest_of_compilation (tree fndecl)
|
||||
= TREE_INT_CST_LOW (TYPE_SIZE_UNIT (ret_type));
|
||||
|
||||
if (compare_tree_int (TYPE_SIZE_UNIT (ret_type), size_as_int) == 0)
|
||||
warning (OPT_Wlarger_than_, "size of return value of %q+D is %u bytes",
|
||||
warning (OPT_Wlarger_than_eq, "size of return value of %q+D is %u bytes",
|
||||
fndecl, size_as_int);
|
||||
else
|
||||
warning (OPT_Wlarger_than_, "size of return value of %q+D is larger than %wd bytes",
|
||||
warning (OPT_Wlarger_than_eq, "size of return value of %q+D is larger than %wd bytes",
|
||||
fndecl, larger_than_size);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user