Hi,
exactly like the recently fixed c++/17212. Tested x86_64-linux.
Ok for mainline?
Thanks,
Paolo.
/////////////////////////
/gcc
2011-10-17 Paolo Carlini <[email protected]>
PR c++/50757
* c-family/c.opt ([Wnonnull]): Add C++ and Objective-C++.
* doc/invoke.texi: Update.
/testsuite
2011-10-17 Paolo Carlini <[email protected]>
PR c++/50757
* g++.dg/warn/format7.C: New.
* obj-c++.dg/warn7.mm: Likewise.
Index: doc/invoke.texi
===================================================================
--- doc/invoke.texi (revision 180100)
+++ doc/invoke.texi (working copy)
@@ -3223,7 +3222,7 @@ Enable @option{-Wformat} plus format checks not in
@option{-Wformat}. Currently equivalent to @samp{-Wformat
-Wformat-nonliteral -Wformat-security -Wformat-y2k}.
-@item -Wnonnull @r{(C and Objective-C only)}
+@item -Wnonnull
@opindex Wnonnull
@opindex Wno-nonnull
Warn about passing a null pointer for arguments marked as
Index: c-family/c.opt
===================================================================
--- c-family/c.opt (revision 180100)
+++ c-family/c.opt (working copy)
@@ -510,7 +510,7 @@ C++ ObjC++ Var(warn_nonvdtor) Warning
Warn about non-virtual destructors
Wnonnull
-C ObjC Var(warn_nonnull) Warning
+C ObjC C++ ObjC++ Var(warn_nonnull) Warning
Warn about NULL being passed to argument slots marked as requiring non-NULL
Wnormalized=
Index: testsuite/g++.dg/warn/format7.C
===================================================================
--- testsuite/g++.dg/warn/format7.C (revision 0)
+++ testsuite/g++.dg/warn/format7.C (revision 0)
@@ -0,0 +1,10 @@
+// PR c++/50757
+// { dg-options "-Wformat -Wno-nonnull" }
+
+extern void *f (void *__s) __attribute__ ((__nonnull__ (1)));
+
+int main()
+{
+ void* const s = 0;
+ f(s);
+}
Index: testsuite/obj-c++.dg/warn7.mm
===================================================================
--- testsuite/obj-c++.dg/warn7.mm (revision 0)
+++ testsuite/obj-c++.dg/warn7.mm (revision 0)
@@ -0,0 +1,10 @@
+// PR c++/50757
+// { dg-options "-Wformat -Wno-nonnull" }
+
+extern void *f (void *__s) __attribute__ ((__nonnull__ (1)));
+
+int main()
+{
+ void* const s = 0;
+ f(s);
+}