• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements.  See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership.  The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License.  You may obtain a copy of the License at
9  *
10  *  http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied.  See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  */
19 
20 #ifndef H_IGNORE_
21 #define H_IGNORE_
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /**
28  * These macros prevent the "set but not used" warnings for log writes below
29  * the log level.
30  */
31 
32 #define IGN_1(X) ((void)(X))
33 #define IGN_2(X, ...) ((void)(X));IGN_1(__VA_ARGS__)
34 #define IGN_3(X, ...) ((void)(X));IGN_2(__VA_ARGS__)
35 #define IGN_4(X, ...) ((void)(X));IGN_3(__VA_ARGS__)
36 #define IGN_5(X, ...) ((void)(X));IGN_4(__VA_ARGS__)
37 #define IGN_6(X, ...) ((void)(X));IGN_5(__VA_ARGS__)
38 #define IGN_7(X, ...) ((void)(X));IGN_6(__VA_ARGS__)
39 #define IGN_8(X, ...) ((void)(X));IGN_7(__VA_ARGS__)
40 #define IGN_9(X, ...) ((void)(X));IGN_8(__VA_ARGS__)
41 #define IGN_10(X, ...) ((void)(X));IGN_9(__VA_ARGS__)
42 #define IGN_11(X, ...) ((void)(X));IGN_10(__VA_ARGS__)
43 #define IGN_12(X, ...) ((void)(X));IGN_11(__VA_ARGS__)
44 #define IGN_13(X, ...) ((void)(X));IGN_12(__VA_ARGS__)
45 #define IGN_14(X, ...) ((void)(X));IGN_13(__VA_ARGS__)
46 #define IGN_15(X, ...) ((void)(X));IGN_14(__VA_ARGS__)
47 #define IGN_16(X, ...) ((void)(X));IGN_15(__VA_ARGS__)
48 #define IGN_17(X, ...) ((void)(X));IGN_16(__VA_ARGS__)
49 #define IGN_18(X, ...) ((void)(X));IGN_17(__VA_ARGS__)
50 #define IGN_19(X, ...) ((void)(X));IGN_18(__VA_ARGS__)
51 #define IGN_20(X, ...) ((void)(X));IGN_19(__VA_ARGS__)
52 
53 #define GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, \
54                   _13, _14, _15, _16, _17, _18, _19, _20, NAME, ...) NAME
55 #define IGNORE(...) \
56     GET_MACRO(__VA_ARGS__, IGN_20, IGN_19, IGN_18, IGN_17, IGN_16, IGN_15, \
57               IGN_14, IGN_13, IGN_12, IGN_11, IGN_10, IGN_9, IGN_8, IGN_7, \
58               IGN_6, IGN_5, IGN_4, IGN_3, IGN_2, IGN_1)(__VA_ARGS__)
59 
60 #ifdef __cplusplus
61 }
62 #endif
63 
64 #endif
65