diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 67e924abaf997948488c2023ed0691fbc04aa38a..800769650c0d2863355d20bb4fdcd3353a1ea0ce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,12 @@ -2008-03-20 Kai Tietz <kai.tietz@onevision.com> +2008-03-20 Volker Reichelt <v.reichelt@netcologne.de> + + * common.opt (Wmudflap): New option. + * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap. + (mx_register_decls): Likewise. + (mudflap_finish_file): Likewise. + * doc/invoke.texi: Document -Wno-mudflap. + +2008-03-20 Kai Tietz <kai.tietz@onevision.com> * c-format.c (replace_format_name_to_system_name): New. (cmp_attribs): New. diff --git a/gcc/common.opt b/gcc/common.opt index 74b3255afc78eaa9dea770b0ca4e95d445e277c1..ae0009cf446f35d9cdcef32d56353440b7ad9c64 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -144,6 +144,10 @@ Wmissing-noreturn Common Var(warn_missing_noreturn) Warning Warn about functions which might be candidates for __attribute__((noreturn)) +Wmudflap +Common Var(warn_mudflap) Init(1) Warning +Warn about constructs not instrumented by -fmudflap + Woverflow Common Var(warn_overflow) Init(1) Warning Warn about overflow in arithmetic expressions diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index fc5e8dd99b8a0a09841ca1fa232bcb9db4583442..1d45490c21ba9689bcbe63813b9720e58972994e 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -245,7 +245,7 @@ Objective-C and Objective-C++ Dialects}. -Wlogical-op -Wlong-long @gol -Wmain -Wmissing-braces -Wmissing-field-initializers @gol -Wmissing-format-attribute -Wmissing-include-dirs @gol --Wmissing-noreturn @gol +-Wmissing-noreturn -Wno-mudflap @gol -Wno-multichar -Wnonnull -Wno-overflow @gol -Woverlength-strings -Wpacked -Wpadded @gol -Wparentheses -Wpointer-arith -Wno-pointer-to-int-cast @gol @@ -4052,6 +4052,11 @@ This option is only supported for C and Objective-C@. It is implied by This option is only active when @option{-fstack-protector} is active. It warns about functions that will not be protected against stack smashing. +@item -Wno-mudflap +@opindex Wno-mudflap +Suppress warnings about constructs that cannot be instrumented by +@option{-fmudflap}. + @item -Woverlength-strings @opindex Woverlength-strings @opindex Wno-overlength-strings diff --git a/gcc/tree-mudflap.c b/gcc/tree-mudflap.c index cb0b44936016d55559d1d3bd710939ac968bb693..59f4beca2b0d4f2f53c437122f2641d22a3b4ab7 100644 --- a/gcc/tree-mudflap.c +++ b/gcc/tree-mudflap.c @@ -857,7 +857,8 @@ mf_xform_derefs_1 (block_stmt_iterator *iter, tree *tp, break; case ARRAY_RANGE_REF: - warning (0, "mudflap checking not yet implemented for ARRAY_RANGE_REF"); + warning (OPT_Wmudflap, + "mudflap checking not yet implemented for ARRAY_RANGE_REF"); return; case BIT_FIELD_REF: @@ -1043,7 +1044,8 @@ mx_register_decls (tree decl, tree *stmt_list) if (tsi_end_p (initially_stmts)) { if (!DECL_ARTIFICIAL (decl)) - warning (0, "mudflap cannot track %qs in stub function", + warning (OPT_Wmudflap, + "mudflap cannot track %qs in stub function", IDENTIFIER_POINTER (DECL_NAME (decl))); } else @@ -1272,7 +1274,8 @@ mudflap_finish_file (void) if (! COMPLETE_TYPE_P (TREE_TYPE (obj))) { - warning (0, "mudflap cannot track unknown size extern %qs", + warning (OPT_Wmudflap, + "mudflap cannot track unknown size extern %qs", IDENTIFIER_POINTER (DECL_NAME (obj))); continue; } diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog index cb1ac1cf413fd8184653dbaf469baec0fa3fa358..178c7d0e1732fbe5672852d74b027cf07c5df2b6 100644 --- a/libmudflap/ChangeLog +++ b/libmudflap/ChangeLog @@ -1,3 +1,7 @@ +2008-03-20 Volker Reichelt <v.reichelt@netcologne.de> + + * testsuite/libmudflap.c/pass63-frag.c: New test. + 2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> * aclocal.m4: Regenerate. diff --git a/libmudflap/testsuite/libmudflap.c/pass63-frag.c b/libmudflap/testsuite/libmudflap.c/pass63-frag.c new file mode 100644 index 0000000000000000000000000000000000000000..a5ad8f26b08f3058854a03e63167ce35b1f2f766 --- /dev/null +++ b/libmudflap/testsuite/libmudflap.c/pass63-frag.c @@ -0,0 +1,6 @@ +/* Check -Wno-mudflap flag */ +/* { dg-do compile } */ +/* { dg-options "-fmudflap -Wno-mudflap" } */ + +extern char x[]; +int main() { return x[3]; } /* { dg-bogus "mudflap cannot track" } */