aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@gcc.gnu.org>2008-03-20 16:37:47 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2008-03-20 16:37:47 +0000
commit7621f5d5fb2a0f99dc1c218778863053844d262d (patch)
treedb109e002ced660063996b0db54b6059f20aa4f5
parente44013f7fa260c317d604d2499d5e3699e438598 (diff)
downloadgcc-7621f5d5fb2a0f99dc1c218778863053844d262d.zip
gcc-7621f5d5fb2a0f99dc1c218778863053844d262d.tar.gz
gcc-7621f5d5fb2a0f99dc1c218778863053844d262d.tar.bz2
common.opt (Wmudflap): New option.
* 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. * testsuite/libmudflap.c/pass63-frag.c: New test. From-SVN: r133385
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/common.opt4
-rw-r--r--gcc/doc/invoke.texi7
-rw-r--r--gcc/tree-mudflap.c9
-rw-r--r--libmudflap/ChangeLog4
-rw-r--r--libmudflap/testsuite/libmudflap.c/pass63-frag.c6
6 files changed, 35 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 67e924a..8007696 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 74b3255..ae0009c 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 fc5e8dd..1d45490 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 cb0b449..59f4bec 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 cb1ac1c..178c7d0 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 0000000..a5ad8f2
--- /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" } */