Unused.h 970 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* vim: set ts=8 sts=2 et sw=2 tw=80: */
  3. /* This Source Code Form is subject to the terms of the Mozilla Public
  4. * License, v. 2.0. If a copy of the MPL was not distributed with this
  5. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  6. #ifndef mozilla_unused_h
  7. #define mozilla_unused_h
  8. #include "mozilla/Types.h"
  9. #ifdef __cplusplus
  10. namespace mozilla {
  11. //
  12. // Suppress GCC warnings about unused return values with
  13. // Unused << SomeFuncDeclaredWarnUnusedReturnValue();
  14. //
  15. struct unused_t
  16. {
  17. template<typename T>
  18. inline void
  19. operator<<(const T& /*unused*/) const {}
  20. };
  21. extern MFBT_DATA const unused_t Unused;
  22. } // namespace mozilla
  23. #endif // __cplusplus
  24. // An alternative to mozilla::Unused for use in (a) C code and (b) code where
  25. // linking with unused.o is difficult.
  26. #define MOZ_UNUSED(expr) \
  27. do { if (expr) { (void)0; } } while (0)
  28. #endif // mozilla_unused_h