ignore_wundef.h 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. /*
  2. * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
  3. *
  4. * Use of this source code is governed by a BSD-style license
  5. * that can be found in the LICENSE file in the root of the source
  6. * tree. An additional intellectual property rights grant can be found
  7. * in the file PATENTS. All contributing project authors may
  8. * be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #ifndef RTC_BASE_IGNORE_WUNDEF_H_
  11. #define RTC_BASE_IGNORE_WUNDEF_H_
  12. // If a header file uses #if on possibly undefined macros (and it's for some
  13. // reason not possible to just fix the header file), include it like this:
  14. //
  15. // RTC_PUSH_IGNORING_WUNDEF()
  16. // #include "misbehaving_header.h"
  17. // RTC_POP_IGNORING_WUNDEF()
  18. //
  19. // This will cause the compiler to not emit -Wundef warnings for that file.
  20. #ifdef __clang__
  21. #define RTC_PUSH_IGNORING_WUNDEF() \
  22. _Pragma("clang diagnostic push") \
  23. _Pragma("clang diagnostic ignored \"-Wundef\"")
  24. #define RTC_POP_IGNORING_WUNDEF() _Pragma("clang diagnostic pop")
  25. #else
  26. #define RTC_PUSH_IGNORING_WUNDEF()
  27. #define RTC_POP_IGNORING_WUNDEF()
  28. #endif // __clang__
  29. #endif // RTC_BASE_IGNORE_WUNDEF_H_