]> git.cworth.org Git - vogl/blob - src/extlib/clang_warnings/clang_warnings.h
Initial vogl checkin
[vogl] / src / extlib / clang_warnings / clang_warnings.h
1 /*******************************************************************************
2  * Copyright (c) 2011, Jean-David Gadina - www.xs-labs.com
3  * Distributed under the Boost Software License, Version 1.0.
4  *
5  * Boost Software License - Version 1.0 - August 17th, 2003
6  *
7  * Permission is hereby granted, free of charge, to any person or organization
8  * obtaining a copy of the software and accompanying documentation covered by
9  * this license (the "Software") to use, reproduce, display, distribute,
10  * execute, and transmit the Software, and to prepare derivative works of the
11  * Software, and to permit third-parties to whom the Software is furnished to
12  * do so, all subject to the following:
13  *
14  * The copyright notices in the Software and this entire statement, including
15  * the above license grant, this restriction and the following disclaimer,
16  * must be included in all copies of the Software, in whole or in part, and
17  * all derivative works of the Software, unless such copies or derivative
18  * works are solely in the form of machine-executable object code generated by
19  * a source language processor.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
24  * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
25  * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
26  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  ******************************************************************************/
29
30 /* $Id$ */
31
32 /*!
33  * @header          clang-warnings.h
34  * @copyright       (c) 2011, XS-Labs
35  * @author          Jean-David Gadina - www.xs-labs.com
36  */
37
38 #ifndef EOS_CLANG_WARNINGS_H
39 #define EOS_CLANG_WARNINGS_H
40
41 #ifdef __clang__
42
43 // TODO: How to fix this?
44 #pragma clang diagnostic ignored "-Wc++11-long-long"
45
46 #pragma clang diagnostic warning "-Wabi"
47 #pragma clang diagnostic warning "-Waddress-of-temporary"
48 #pragma clang diagnostic warning "-Waddress"
49 #pragma clang diagnostic warning "-Waggregate-return"
50 #pragma clang diagnostic warning "-Wall"
51 #pragma clang diagnostic warning "-Wambiguous-member-template"
52 #pragma clang diagnostic warning "-Warc-abi"
53 #pragma clang diagnostic warning "-Warc-non-pod-memaccess"
54 #pragma clang diagnostic warning "-Warc-retain-cycles"
55 #pragma clang diagnostic warning "-Warc-unsafe-retained-assign"
56 #pragma clang diagnostic warning "-Warc"
57 #pragma clang diagnostic warning "-Watomic-properties"
58 #pragma clang diagnostic warning "-Wattributes"
59 #pragma clang diagnostic warning "-Wavailability"
60 #pragma clang diagnostic warning "-Wbad-function-cast"
61 #pragma clang diagnostic warning "-Wbind-to-temporary-copy"
62 #pragma clang diagnostic warning "-Wbitwise-op-parentheses"
63 #pragma clang diagnostic warning "-Wbool-conversions"
64 #pragma clang diagnostic warning "-Wbuiltin-macro-redefined"
65
66 #pragma clang diagnostic warning "-Wc++-compat"
67 #pragma clang diagnostic warning "-Wc++0x-compat"
68 //#pragma clang diagnostic warning "-Wc++0x-extensions"
69
70 // This one is insane
71 //#pragma clang diagnostic warning "-Wcast-align"
72
73 #pragma clang diagnostic warning "-Wcast-qual"
74 #pragma clang diagnostic warning "-Wchar-align"
75 #pragma clang diagnostic warning "-Wchar-subscripts"
76
77 #pragma clang diagnostic warning "-Wcomment"
78 #pragma clang diagnostic warning "-Wcomments"
79
80 #pragma clang diagnostic warning "-Wconditional-uninitialized"
81
82 // Would love to fix this, but it would be a ton of work
83 //#pragma clang diagnostic warning "-Wconversion"
84
85 #pragma clang diagnostic warning "-Wshorten-64-to-32"
86
87 // TODO - try enabling these one at a time..
88 #pragma clang diagnostic warning "-Wctor-dtor-privacy"
89 #pragma clang diagnostic warning "-Wcustom-atomic-properties"
90 #pragma clang diagnostic warning "-Wdeclaration-after-statement"
91 //#pragma clang diagnostic warning "-Wdefault-arg-special-member"
92 #pragma clang diagnostic warning "-Wdelegating-ctor-cycles"
93 #pragma clang diagnostic warning "-Wdelete-non-virtual-dtor"
94 #pragma clang diagnostic warning "-Wdeprecated-declarations"
95 #pragma clang diagnostic warning "-Wdeprecated-implementations"
96 #pragma clang diagnostic warning "-Wdeprecated-writable-strings"
97 #pragma clang diagnostic warning "-Wdeprecated"
98 #pragma clang diagnostic warning "-Wdisabled-optimization"
99
100 #pragma clang diagnostic warning "-Wdiscard-qual"
101 #pragma clang diagnostic warning "-Wdiv-by-zero"
102 #pragma clang diagnostic warning "-Wduplicate-method-arg"
103 #pragma clang diagnostic warning "-Weffc++"
104 #pragma clang diagnostic warning "-Wempty-body"
105 #pragma clang diagnostic warning "-Wendif-labels"
106
107 // Can see this being useful to find global objects
108 //#pragma clang diagnostic warning "-Wexit-time-destructors"
109
110 #pragma clang diagnostic warning "-Wextra-tokens"
111 #pragma clang diagnostic warning "-Wextra"
112
113 //#pragma clang diagnostic warning "-Wformat-nonliteral"
114 #pragma clang diagnostic warning "-Wformat-extra-args"
115 #pragma clang diagnostic warning "-Wformat-zero-length"
116 #pragma clang diagnostic warning "-Wformat"
117 //#pragma clang diagnostic warning "-Wformat=2"
118 #pragma clang diagnostic warning "-Wfour-char-constants"
119 //#pragma clang diagnostic warning "-Wglobal-constructors"
120 #pragma clang diagnostic warning "-Wgnu-designator"
121 //#pragma clang diagnostic warning "-Wgnu"
122
123 // TODO: complains of using voglcore in one of my headers
124 //#pragma clang diagnostic warning "-Wheader-hygiene"
125
126 #pragma clang diagnostic warning "-Widiomatic-parentheses"
127 #pragma clang diagnostic warning "-Wignored-qualifiers"
128 #pragma clang diagnostic warning "-Wimplicit-atomic-properties"
129 #pragma clang diagnostic warning "-Wimplicit-function-declaration"
130 #pragma clang diagnostic warning "-Wimplicit-int"
131 #pragma clang diagnostic warning "-Wimplicit"
132 #pragma clang diagnostic warning "-Wimport"
133 #pragma clang diagnostic warning "-Wincompatible-pointer-types"
134
135 #pragma clang diagnostic warning "-Winit-self"
136 #pragma clang diagnostic warning "-Winitializer-overrides"
137 #pragma clang diagnostic warning "-Winline"
138 #pragma clang diagnostic warning "-Wint-to-pointer-cast"
139 #pragma clang diagnostic warning "-Winvalid-offsetof"
140 #pragma clang diagnostic warning "-Winvalid-pch"
141 #pragma clang diagnostic warning "-Wlarge-by-value-copy"
142 #pragma clang diagnostic warning "-Wliteral-range"
143 #pragma clang diagnostic warning "-Wlocal-type-template-args"
144 #pragma clang diagnostic warning "-Wlogical-op-parentheses"
145
146 // Dunno how to fix this yet
147 //#pragma clang diagnostic warning "-Wlong-long"
148
149 #pragma clang diagnostic warning "-Wmain"
150 #pragma clang diagnostic warning "-Wmicrosoft"
151 #pragma clang diagnostic warning "-Wmismatched-tags"
152 #pragma clang diagnostic warning "-Wmissing-braces"
153 #pragma clang diagnostic warning "-Wmissing-declarations"
154 #pragma clang diagnostic warning "-Wmissing-field-initializers"
155 #pragma clang diagnostic warning "-Wmissing-format-attribute"
156 #pragma clang diagnostic warning "-Wmissing-include-dirs"
157 #pragma clang diagnostic warning "-Wmissing-noreturn"
158
159 #pragma clang diagnostic warning "-Wmost"
160
161 #pragma clang diagnostic warning "-Wmultichar"
162 #pragma clang diagnostic warning "-Wnested-externs"
163 #pragma clang diagnostic warning "-Wnewline-eof"
164
165 //#pragma clang diagnostic warning "-Wnon-gcc"
166 #pragma clang diagnostic warning "-Wnon-virtual-dtor"
167 #pragma clang diagnostic warning "-Wnonnull"
168 #pragma clang diagnostic warning "-Wnonportable-cfstrings"
169
170 #pragma clang diagnostic warning "-Wnull-dereference"
171 #pragma clang diagnostic warning "-Wobjc-nonunified-exceptions"
172 #pragma clang diagnostic warning "-Wold-style-cast"
173 #pragma clang diagnostic warning "-Wold-style-definition"
174 #pragma clang diagnostic warning "-Wout-of-line-declaration"
175 #pragma clang diagnostic warning "-Woverflow"
176 #pragma clang diagnostic warning "-Woverlength-strings"
177 #pragma clang diagnostic warning "-Woverloaded-virtual"
178 #pragma clang diagnostic warning "-Wpacked"
179
180 // Seems useless
181 //#pragma clang diagnostic warning "-Wpadded"
182
183 #pragma clang diagnostic warning "-Wparentheses"
184 #pragma clang diagnostic warning "-Wpointer-arith"
185 #pragma clang diagnostic warning "-Wpointer-to-int-cast"
186 #pragma clang diagnostic warning "-Wprotocol"
187 #pragma clang diagnostic warning "-Wreadonly-setter-attrs"
188 #pragma clang diagnostic warning "-Wredundant-decls"
189 #pragma clang diagnostic warning "-Wreorder"
190 #pragma clang diagnostic warning "-Wreturn-type"
191 #pragma clang diagnostic warning "-Wself-assign"
192 #pragma clang diagnostic warning "-Wsemicolon-before-method-body"
193 #pragma clang diagnostic warning "-Wsequence-point"
194
195 // TODO: Would like to enable this eventually
196 //#pragma clang diagnostic warning "-Wshadow"
197
198 #pragma clang diagnostic warning "-Wshorten-64-to-32"
199 #pragma clang diagnostic warning "-Wsign-compare"
200 #pragma clang diagnostic warning "-Wsign-promo"
201 #pragma clang diagnostic warning "-Wsizeof-array-argument"
202 #pragma clang diagnostic warning "-Wstack-protector"
203 #pragma clang diagnostic warning "-Wstrict-aliasing"
204 #pragma clang diagnostic warning "-Wstrict-overflow"
205 #pragma clang diagnostic warning "-Wstrict-prototypes"
206 #pragma clang diagnostic warning "-Wstrict-selector-match"
207 #pragma clang diagnostic warning "-Wsuper-class-method-mismatch"
208
209 #pragma clang diagnostic warning "-Wswitch-default"
210
211 // Too chatty
212 //#pragma clang diagnostic warning "-Wswitch-enum"
213
214 #pragma clang diagnostic warning "-Wswitch"
215 #pragma clang diagnostic warning "-Wsynth"
216 #pragma clang diagnostic warning "-Wtautological-compare"
217 #pragma clang diagnostic warning "-Wtrigraphs"
218 #pragma clang diagnostic warning "-Wtype-limits"
219 #pragma clang diagnostic warning "-Wundeclared-selector"
220 #pragma clang diagnostic warning "-Wuninitialized"
221 #pragma clang diagnostic warning "-Wunknown-pragmas"
222 #pragma clang diagnostic warning "-Wunnamed-type-template-args"
223 #pragma clang diagnostic warning "-Wunneeded-internal-declaration"
224 #pragma clang diagnostic warning "-Wunneeded-member-function"
225
226 #pragma clang diagnostic warning "-Wunused-argument"
227 #pragma clang diagnostic warning "-Wunused-exception-parameter"
228 #pragma clang diagnostic warning "-Wunused-function"
229 #pragma clang diagnostic warning "-Wunused-label"
230 #pragma clang diagnostic warning "-Wunused-member-function"
231 #pragma clang diagnostic warning "-Wunused-parameter"
232 #pragma clang diagnostic warning "-Wunused-value"
233 #pragma clang diagnostic warning "-Wunused-variable"
234 #pragma clang diagnostic warning "-Wunused"
235 #pragma clang diagnostic warning "-Wused-but-marked-unused"
236
237 // Seems useless
238 //#pragma clang diagnostic warning "-Wvariadic-macros"
239
240 #pragma clang diagnostic warning "-Wvector-conversions"
241 #pragma clang diagnostic warning "-Wvla"
242 #pragma clang diagnostic warning "-Wvolatile-register-var"
243 #pragma clang diagnostic warning "-Wwrite-strings"
244
245
246 /* Not wanted:
247  *
248  * #pragma clang diagnostic warning "-Wselector"
249  */
250
251
252
253 #endif
254
255 #endif /* EOS_CLANG_WARNINGS_H */