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 11 #ifndef RTC_BASE_IGNORE_WUNDEF_H_ 12 #define RTC_BASE_IGNORE_WUNDEF_H_ 13 14 // 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. 22 23 #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__ 32 33 #endif // RTC_BASE_IGNORE_WUNDEF_H_ 34