FCL
0.6.0
Flexible Collision Library
Main Page
Related Pages
Namespaces
Classes
Files
File List
warning.h
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2016, Open Source Robotics Foundation
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of CNRS-LAAS and AIST nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*/
34
36
37
#ifndef FCL_COMMON_WARNING_H
38
#define FCL_COMMON_WARNING_H
39
40
#include "fcl/config.h"
41
42
// We define two convenient macros that can be used to suppress
43
// deprecated-warnings for a specific code block rather than a whole project.
44
// This macros would be useful when you need to call deprecated function for
45
// some reason (e.g., for backward compatibility) but don't want warnings.
46
//
47
// Example code:
48
//
49
// deprecated_function() // warning
50
//
51
// FCL_SUPPRESS_DEPRECATED_BEGIN
52
// deprecated_function() // okay, no warning
53
// FCL_SUPPRESS_DEPRECATED_END
54
//
55
#if defined (FCL_COMPILER_GCC)
56
57
#define FCL_SUPPRESS_DEPRECATED_BEGIN \
58
_Pragma("GCC diagnostic push") \
59
_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
60
61
#define FCL_SUPPRESS_DEPRECATED_END \
62
_Pragma("GCC diagnostic pop")
63
64
#define FCL_SUPPRESS_UNINITIALIZED_BEGIN \
65
_Pragma("GCC diagnostic push") \
66
_Pragma("GCC diagnostic ignored \"-Wuninitialized\"")
67
68
#define FCL_SUPPRESS_UNINITIALIZED_END \
69
_Pragma("GCC diagnostic pop")
70
71
#define FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN \
72
_Pragma("GCC diagnostic push") \
73
_Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
74
75
#define FCL_SUPPRESS_MAYBE_UNINITIALIZED_END \
76
_Pragma("GCC diagnostic pop")
77
78
#elif defined (FCL_COMPILER_CLANG)
79
80
#define FCL_SUPPRESS_DEPRECATED_BEGIN \
81
_Pragma("clang diagnostic push") \
82
_Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
83
84
#define FCL_SUPPRESS_DEPRECATED_END \
85
_Pragma("clang diagnostic pop")
86
87
#define FCL_SUPPRESS_UNINITIALIZED_BEGIN \
88
_Pragma("clang diagnostic push") \
89
_Pragma("clang diagnostic ignored \"-Wuninitialized\"")
90
91
#define FCL_SUPPRESS_UNINITIALIZED_END \
92
_Pragma("clang diagnostic pop")
93
94
#define FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN \
95
_Pragma("clang diagnostic push") \
96
_Pragma("clang diagnostic ignored \"-Wmaybe-uninitialized\"")
97
98
#define FCL_SUPPRESS_MAYBE_UNINITIALIZED_END \
99
_Pragma("clang diagnostic pop")
100
101
#elif defined (FCL_COMPILER_MSVC)
102
103
#define FCL_SUPPRESS_DEPRECATED_BEGIN \
104
__pragma(warning(push)) \
105
__pragma(warning(disable:4996))
106
107
#define FCL_SUPPRESS_DEPRECATED_END \
108
__pragma(warning(pop))
109
110
#define FCL_SUPPRESS_UNINITIALIZED_BEGIN // TODO
111
112
#define FCL_SUPPRESS_UNINITIALIZED_END // TODO
113
114
#define FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN // TODO
115
116
#define FCL_SUPPRESS_MAYBE_UNINITIALIZED_END // TODO
117
118
#endif
119
120
#endif // FCL_COMMON_WARNING_H
include
fcl
common
warning.h
Generated by
1.8.11