diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2009-07-10 07:27:32 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2009-07-10 07:27:32 +0000 |
commit | 156f545a1bf194040a24f5e54e1ec5ac4eff642f (patch) | |
tree | cf4b509067e40cd7e3e96f721aebe6f76de83ac9 /gcc | |
parent | 5cec9f5974ed8ab0788179b2afd48eb484f39acb (diff) | |
download | gcc-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/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/c-common.c | 6 | ||||
-rw-r--r-- | gcc/c.opt | 4 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/unused-result1-Werror.c | 10 |
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; @@ -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" } +}; |