Make WARN_UNUSED_RESULT a no-op on gcc
Because on gcc, cast to void doesn't silence the warning. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425 Also add an RTC_ prefix to the macro instead of only defining it if it wasn't already defined, to ensure that we always get our own version. BUG=none Review-Url: https://codereview.webrtc.org/2797983003 Cr-Commit-Position: refs/heads/master@{#17563}
This commit is contained in:
@ -118,7 +118,7 @@ class SwapQueue {
|
||||
// When specified, the T given in *input must pass the ItemVerifier() test.
|
||||
// The contents of *input after the call are then also guaranteed to pass the
|
||||
// ItemVerifier() test.
|
||||
bool Insert(T* input) WARN_UNUSED_RESULT {
|
||||
bool Insert(T* input) RTC_WARN_UNUSED_RESULT {
|
||||
RTC_DCHECK(input);
|
||||
|
||||
rtc::CritScope cs(&crit_queue_);
|
||||
@ -151,7 +151,7 @@ class SwapQueue {
|
||||
// empty). When specified, The T given in *output must pass the ItemVerifier()
|
||||
// test and the contents of *output after the call are then also guaranteed to
|
||||
// pass the ItemVerifier() test.
|
||||
bool Remove(T* output) WARN_UNUSED_RESULT {
|
||||
bool Remove(T* output) RTC_WARN_UNUSED_RESULT {
|
||||
RTC_DCHECK(output);
|
||||
|
||||
rtc::CritScope cs(&crit_queue_);
|
||||
|
@ -34,6 +34,6 @@ bool WebRtcIlbcfix_CbConstruct(
|
||||
int16_t* mem, /* (i) Buffer for codevector construction */
|
||||
size_t lMem, /* (i) Length of buffer */
|
||||
size_t veclen /* (i) Length of vector */
|
||||
) WARN_UNUSED_RESULT;
|
||||
) RTC_WARN_UNUSED_RESULT;
|
||||
|
||||
#endif
|
||||
|
@ -33,6 +33,6 @@ int WebRtcIlbcfix_DecodeImpl(
|
||||
structure */
|
||||
int16_t mode /* (i) 0: bad packet, PLC,
|
||||
1: normal */
|
||||
) WARN_UNUSED_RESULT;
|
||||
) RTC_WARN_UNUSED_RESULT;
|
||||
|
||||
#endif
|
||||
|
@ -35,6 +35,6 @@ bool WebRtcIlbcfix_DecodeResidual(
|
||||
int16_t* decresidual, /* (o) decoded residual frame */
|
||||
int16_t* syntdenum /* (i) the decoded synthesis filter
|
||||
coefficients */
|
||||
) WARN_UNUSED_RESULT;
|
||||
) RTC_WARN_UNUSED_RESULT;
|
||||
|
||||
#endif
|
||||
|
@ -31,6 +31,6 @@ bool WebRtcIlbcfix_GetCbVec(
|
||||
size_t index, /* (i) Codebook index */
|
||||
size_t lMem, /* (i) Length of codebook buffer */
|
||||
size_t cbveclen /* (i) Codebook vector length */
|
||||
) WARN_UNUSED_RESULT;
|
||||
) RTC_WARN_UNUSED_RESULT;
|
||||
|
||||
#endif
|
||||
|
@ -65,17 +65,18 @@
|
||||
|
||||
// Annotate a function indicating the caller must examine the return value.
|
||||
// Use like:
|
||||
// int foo() WARN_UNUSED_RESULT;
|
||||
// To explicitly ignore a result, see |ignore_result()| in <base/macros.h>.
|
||||
// TODO(ajm): Hack to avoid multiple definitions until the base/ of webrtc and
|
||||
// libjingle are merged.
|
||||
#if !defined(WARN_UNUSED_RESULT)
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
#define WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__))
|
||||
// int foo() RTC_WARN_UNUSED_RESULT;
|
||||
// To explicitly ignore a result, cast to void.
|
||||
// TODO(kwiberg): Remove when we can use [[nodiscard]] from C++17.
|
||||
#if defined(__clang__)
|
||||
#define RTC_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
|
||||
#elif defined(__GNUC__)
|
||||
// gcc has a __warn_unused_result__ attribute, but you can't quiet it by
|
||||
// casting to void, so we don't use it.
|
||||
#define RTC_WARN_UNUSED_RESULT
|
||||
#else
|
||||
#define WARN_UNUSED_RESULT
|
||||
#define RTC_WARN_UNUSED_RESULT
|
||||
#endif
|
||||
#endif // WARN_UNUSED_RESULT
|
||||
|
||||
// Put after a variable that might not be used, to prevent compiler warnings:
|
||||
// int result ATTRIBUTE_UNUSED = DoSomething();
|
||||
|
Reference in New Issue
Block a user