blob: 156409646485f270fe06b404b1c6ff677e7674b9 [file] [log] [blame]
kwiberg77eab702016-09-28 17:42:01 -07001/*
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
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef RTC_BASE_IGNORE_WUNDEF_H_
12#define RTC_BASE_IGNORE_WUNDEF_H_
kwiberg77eab702016-09-28 17:42:01 -070013
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020014// If a header file uses #if on possibly undefined macros (and it's for some
15// reason not possible to just fix the header file), include it like this:
16//
17// RTC_PUSH_IGNORING_WUNDEF()
18// #include "misbehaving_header.h"
19// RTC_POP_IGNORING_WUNDEF()
20//
21// This will cause the compiler to not emit -Wundef warnings for that file.
kwiberg77eab702016-09-28 17:42:01 -070022
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020023#ifdef __clang__
24#define RTC_PUSH_IGNORING_WUNDEF() \
25 _Pragma("clang diagnostic push") \
26 _Pragma("clang diagnostic ignored \"-Wundef\"")
27#define RTC_POP_IGNORING_WUNDEF() _Pragma("clang diagnostic pop")
28#else
29#define RTC_PUSH_IGNORING_WUNDEF()
30#define RTC_POP_IGNORING_WUNDEF()
31#endif // __clang__
kwiberg77eab702016-09-28 17:42:01 -070032
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020033#endif // RTC_BASE_IGNORE_WUNDEF_H_