+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
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)
-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
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.
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)
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)
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;
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);
}
}
+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
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-Wlarger-than=8" } */
+static void foo (void)
+{
+ char buf[9]; /* { dg-warning "size of.*9 bytes" } */
+}
+
= 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);
}
}