aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorManuel López-Ibáñez <manu@gcc.gnu.org>2009-07-10 07:27:32 +0000
committerManuel López-Ibáñez <manu@gcc.gnu.org>2009-07-10 07:27:32 +0000
commit156f545a1bf194040a24f5e54e1ec5ac4eff642f (patch)
treecf4b509067e40cd7e3e96f721aebe6f76de83ac9 /gcc
parent5cec9f5974ed8ab0788179b2afd48eb484f39acb (diff)
downloadgcc-156f545a1bf194040a24f5e54e1ec5ac4eff642f.zip
gcc-156f545a1bf194040a24f5e54e1ec5ac4eff642f.tar.gz
gcc-156f545a1bf194040a24f5e54e1ec5ac4eff642f.tar.bz2
re PR c/25509 (can't disable __attribute__((warn_unused_result)))
2009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org> PR 25509 PR 40614 * c.opt (Wunused-result): New. * doc/invoke.texi: Document it. * c-common.c (c_warn_unused_result): Use it. testsuite/ * g++.dg/warn/unused-result1-Werror.c: New. From-SVN: r149458
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/c-common.c6
-rw-r--r--gcc/c.opt4
-rw-r--r--gcc/doc/invoke.texi9
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/warn/unused-result1-Werror.c10
6 files changed, 40 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 253b5de..4c95fb3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR 25509
+ PR 40614
+ * c.opt (Wunused-result): New.
+ * doc/invoke.texi: Document it.
+ * c-common.c (c_warn_unused_result): Use it.
+
2009-07-09 DJ Delorie <dj@redhat.com>
* targhooks.c (default_target_can_inline_p): Rename from
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 1c883d1..20dac6b 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -8266,11 +8266,13 @@ c_warn_unused_result (gimple_seq seq)
location_t loc = gimple_location (g);
if (fdecl)
- warning_at (loc, 0, "ignoring return value of %qD, "
+ warning_at (loc, OPT_Wunused_result,
+ "ignoring return value of %qD, "
"declared with attribute warn_unused_result",
fdecl);
else
- warning_at (loc, 0, "ignoring return value of function "
+ warning_at (loc, OPT_Wunused_result,
+ "ignoring return value of function "
"declared with attribute warn_unused_result");
}
break;
diff --git a/gcc/c.opt b/gcc/c.opt
index e8a9a31..5ee9a13 100644
--- a/gcc/c.opt
+++ b/gcc/c.opt
@@ -488,6 +488,10 @@ Wunused-macros
C ObjC C++ ObjC++ Warning
Warn about macros defined in the main file that are not used
+Wunused-result
+C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
+Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
+
Wvariadic-macros
C ObjC C++ ObjC++ Warning
Do not warn about using variadic macros when -pedantic
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 7742623..cb51dfb 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -260,7 +260,7 @@ Objective-C and Objective-C++ Dialects}.
-Wsystem-headers -Wtrigraphs -Wtype-limits -Wundef -Wuninitialized @gol
-Wunknown-pragmas -Wno-pragmas -Wunreachable-code @gol
-Wunsuffixed-float-constants -Wunused -Wunused-function @gol
--Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable @gol
+-Wunused-label -Wunused-parameter -Wno-unused-result -Wunused-value -Wunused-variable @gol
-Wvariadic-macros -Wvla @gol
-Wvolatile-register-var -Wwrite-strings}
@@ -3259,6 +3259,13 @@ Warn whenever a function parameter is unused aside from its declaration.
To suppress this warning use the @samp{unused} attribute
(@pxref{Variable Attributes}).
+@item -Wno-unused-result
+@opindex Wunused-result
+@opindex Wno-unused-result
+Do not warn if a caller of a function marked with attribute
+@code{warn_unused_result} (@pxref{Variable Attributes}) does not use
+its return value. The default is @option{-Wunused-result}.
+
@item -Wunused-variable
@opindex Wunused-variable
@opindex Wno-unused-variable
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 48711da..651afbf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR 25509
+ PR 40614
+ * g++.dg/warn/unused-result1-Werror.c: New.
+
2009-07-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39334
diff --git a/gcc/testsuite/g++.dg/warn/unused-result1-Werror.c b/gcc/testsuite/g++.dg/warn/unused-result1-Werror.c
new file mode 100644
index 0000000..033d707
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/unused-result1-Werror.c
@@ -0,0 +1,10 @@
+// PR 40614
+// { dg-options "-Werror=unused-result" }
+class QByteArray {
+public:
+ QByteArray(const QByteArray &);
+};
+class QString {
+ QByteArray toLocal8Bit() const __attribute__ ((warn_unused_result));
+ void fooWarnHere() const { toLocal8Bit(); } // { dg-error "ignoring" }
+};