cxxfilt 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/ansidecl.h +436 -0
- data/lib/cxxfilt/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea22cf845953d2190c2c2dfef709c3cb27f28daa85f0b70393932146fdf81257
|
4
|
+
data.tar.gz: f26a7b5f52c4cb702c136c02d08e896a5ee1aeab75f1cf0343d7ffa8c5924832
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c515fedfcafec5eba29204e563576f61e4da6bc5e97237e08bfe3d18c4aa1146d986ce61b0fe7275987cbdb7a9cfaaa7ac0c3f9b71156dd84ae2410f32502cce
|
7
|
+
data.tar.gz: 74d15f43aea79a1fa433a07e6b737ca9001e2526349fa344b157e0226044f18b690782a65ceee09a26f175ae3cb7ab602dbb7f36d061700d04d986ff18e156eb
|
data/Gemfile.lock
CHANGED
data/ansidecl.h
ADDED
@@ -0,0 +1,436 @@
|
|
1
|
+
/* ANSI and traditional C compatability macros
|
2
|
+
Copyright (C) 1991-2020 Free Software Foundation, Inc.
|
3
|
+
This file is part of the GNU C Library.
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with this program; if not, write to the Free Software
|
17
|
+
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
|
18
|
+
|
19
|
+
/* ANSI and traditional C compatibility macros
|
20
|
+
|
21
|
+
ANSI C is assumed if __STDC__ is #defined.
|
22
|
+
|
23
|
+
Macro ANSI C definition Traditional C definition
|
24
|
+
----- ---- - ---------- ----------- - ----------
|
25
|
+
PTR `void *' `char *'
|
26
|
+
const not defined `'
|
27
|
+
volatile not defined `'
|
28
|
+
signed not defined `'
|
29
|
+
|
30
|
+
For ease of writing code which uses GCC extensions but needs to be
|
31
|
+
portable to other compilers, we provide the GCC_VERSION macro that
|
32
|
+
simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
|
33
|
+
wrappers around __attribute__. Also, __extension__ will be #defined
|
34
|
+
to nothing if it doesn't work. See below. */
|
35
|
+
|
36
|
+
#ifndef _ANSIDECL_H
|
37
|
+
#define _ANSIDECL_H 1
|
38
|
+
|
39
|
+
#ifdef __cplusplus
|
40
|
+
extern "C" {
|
41
|
+
#endif
|
42
|
+
|
43
|
+
/* Every source file includes this file,
|
44
|
+
so they will all get the switch for lint. */
|
45
|
+
/* LINTLIBRARY */
|
46
|
+
|
47
|
+
/* Using MACRO(x,y) in cpp #if conditionals does not work with some
|
48
|
+
older preprocessors. Thus we can't define something like this:
|
49
|
+
|
50
|
+
#define HAVE_GCC_VERSION(MAJOR, MINOR) \
|
51
|
+
(__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
|
52
|
+
|
53
|
+
and then test "#if HAVE_GCC_VERSION(2,7)".
|
54
|
+
|
55
|
+
So instead we use the macro below and test it against specific values. */
|
56
|
+
|
57
|
+
/* This macro simplifies testing whether we are using gcc, and if it
|
58
|
+
is of a particular minimum version. (Both major & minor numbers are
|
59
|
+
significant.) This macro will evaluate to 0 if we are not using
|
60
|
+
gcc at all. */
|
61
|
+
#ifndef GCC_VERSION
|
62
|
+
#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
|
63
|
+
#endif /* GCC_VERSION */
|
64
|
+
|
65
|
+
#if defined (__STDC__) || defined(__cplusplus) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32)
|
66
|
+
/* All known AIX compilers implement these things (but don't always
|
67
|
+
define __STDC__). The RISC/OS MIPS compiler defines these things
|
68
|
+
in SVR4 mode, but does not define __STDC__. */
|
69
|
+
/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other
|
70
|
+
C++ compilers, does not define __STDC__, though it acts as if this
|
71
|
+
was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
|
72
|
+
|
73
|
+
#define PTR void *
|
74
|
+
|
75
|
+
#undef const
|
76
|
+
#undef volatile
|
77
|
+
#undef signed
|
78
|
+
|
79
|
+
/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
|
80
|
+
it too, but it's not in C89. */
|
81
|
+
#undef inline
|
82
|
+
#if __STDC_VERSION__ >= 199901L || defined(__cplusplus) || (defined(__SUNPRO_C) && defined(__C99FEATURES__))
|
83
|
+
/* it's a keyword */
|
84
|
+
#else
|
85
|
+
# if GCC_VERSION >= 2007
|
86
|
+
# define inline __inline__ /* __inline__ prevents -pedantic warnings */
|
87
|
+
# else
|
88
|
+
# define inline /* nothing */
|
89
|
+
# endif
|
90
|
+
#endif
|
91
|
+
|
92
|
+
#else /* Not ANSI C. */
|
93
|
+
|
94
|
+
#define PTR char *
|
95
|
+
|
96
|
+
/* some systems define these in header files for non-ansi mode */
|
97
|
+
#undef const
|
98
|
+
#undef volatile
|
99
|
+
#undef signed
|
100
|
+
#undef inline
|
101
|
+
#define const
|
102
|
+
#define volatile
|
103
|
+
#define signed
|
104
|
+
#define inline
|
105
|
+
|
106
|
+
#endif /* ANSI C. */
|
107
|
+
|
108
|
+
/* Define macros for some gcc attributes. This permits us to use the
|
109
|
+
macros freely, and know that they will come into play for the
|
110
|
+
version of gcc in which they are supported. */
|
111
|
+
|
112
|
+
#if (GCC_VERSION < 2007)
|
113
|
+
# define __attribute__(x)
|
114
|
+
#endif
|
115
|
+
|
116
|
+
/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
|
117
|
+
#ifndef ATTRIBUTE_MALLOC
|
118
|
+
# if (GCC_VERSION >= 2096)
|
119
|
+
# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
|
120
|
+
# else
|
121
|
+
# define ATTRIBUTE_MALLOC
|
122
|
+
# endif /* GNUC >= 2.96 */
|
123
|
+
#endif /* ATTRIBUTE_MALLOC */
|
124
|
+
|
125
|
+
/* Attributes on labels were valid as of gcc 2.93 and g++ 4.5. For
|
126
|
+
g++ an attribute on a label must be followed by a semicolon. */
|
127
|
+
#ifndef ATTRIBUTE_UNUSED_LABEL
|
128
|
+
# ifndef __cplusplus
|
129
|
+
# if GCC_VERSION >= 2093
|
130
|
+
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
|
131
|
+
# else
|
132
|
+
# define ATTRIBUTE_UNUSED_LABEL
|
133
|
+
# endif
|
134
|
+
# else
|
135
|
+
# if GCC_VERSION >= 4005
|
136
|
+
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED ;
|
137
|
+
# else
|
138
|
+
# define ATTRIBUTE_UNUSED_LABEL
|
139
|
+
# endif
|
140
|
+
# endif
|
141
|
+
#endif
|
142
|
+
|
143
|
+
/* Similarly to ARG_UNUSED below. Prior to GCC 3.4, the C++ frontend
|
144
|
+
couldn't parse attributes placed after the identifier name, and now
|
145
|
+
the entire compiler is built with C++. */
|
146
|
+
#ifndef ATTRIBUTE_UNUSED
|
147
|
+
#if GCC_VERSION >= 3004
|
148
|
+
# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
149
|
+
#else
|
150
|
+
#define ATTRIBUTE_UNUSED
|
151
|
+
#endif
|
152
|
+
#endif /* ATTRIBUTE_UNUSED */
|
153
|
+
|
154
|
+
/* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the
|
155
|
+
identifier name. */
|
156
|
+
#if ! defined(__cplusplus) || (GCC_VERSION >= 3004)
|
157
|
+
# define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED
|
158
|
+
#else /* !__cplusplus || GNUC >= 3.4 */
|
159
|
+
# define ARG_UNUSED(NAME) NAME
|
160
|
+
#endif /* !__cplusplus || GNUC >= 3.4 */
|
161
|
+
|
162
|
+
#ifndef ATTRIBUTE_NORETURN
|
163
|
+
#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
|
164
|
+
#endif /* ATTRIBUTE_NORETURN */
|
165
|
+
|
166
|
+
/* Attribute `nonnull' was valid as of gcc 3.3. */
|
167
|
+
#ifndef ATTRIBUTE_NONNULL
|
168
|
+
# if (GCC_VERSION >= 3003)
|
169
|
+
# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
|
170
|
+
# else
|
171
|
+
# define ATTRIBUTE_NONNULL(m)
|
172
|
+
# endif /* GNUC >= 3.3 */
|
173
|
+
#endif /* ATTRIBUTE_NONNULL */
|
174
|
+
|
175
|
+
/* Attribute `returns_nonnull' was valid as of gcc 4.9. */
|
176
|
+
#ifndef ATTRIBUTE_RETURNS_NONNULL
|
177
|
+
# if (GCC_VERSION >= 4009)
|
178
|
+
# define ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
|
179
|
+
# else
|
180
|
+
# define ATTRIBUTE_RETURNS_NONNULL
|
181
|
+
# endif /* GNUC >= 4.9 */
|
182
|
+
#endif /* ATTRIBUTE_RETURNS_NONNULL */
|
183
|
+
|
184
|
+
/* Attribute `pure' was valid as of gcc 3.0. */
|
185
|
+
#ifndef ATTRIBUTE_PURE
|
186
|
+
# if (GCC_VERSION >= 3000)
|
187
|
+
# define ATTRIBUTE_PURE __attribute__ ((__pure__))
|
188
|
+
# else
|
189
|
+
# define ATTRIBUTE_PURE
|
190
|
+
# endif /* GNUC >= 3.0 */
|
191
|
+
#endif /* ATTRIBUTE_PURE */
|
192
|
+
|
193
|
+
/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL.
|
194
|
+
This was the case for the `printf' format attribute by itself
|
195
|
+
before GCC 3.3, but as of 3.3 we need to add the `nonnull'
|
196
|
+
attribute to retain this behavior. */
|
197
|
+
#ifndef ATTRIBUTE_PRINTF
|
198
|
+
#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m)
|
199
|
+
#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
|
200
|
+
#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
|
201
|
+
#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
|
202
|
+
#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
|
203
|
+
#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
|
204
|
+
#endif /* ATTRIBUTE_PRINTF */
|
205
|
+
|
206
|
+
/* Use ATTRIBUTE_FPTR_PRINTF when the format attribute is to be set on
|
207
|
+
a function pointer. Format attributes were allowed on function
|
208
|
+
pointers as of gcc 3.1. */
|
209
|
+
#ifndef ATTRIBUTE_FPTR_PRINTF
|
210
|
+
# if (GCC_VERSION >= 3001)
|
211
|
+
# define ATTRIBUTE_FPTR_PRINTF(m, n) ATTRIBUTE_PRINTF(m, n)
|
212
|
+
# else
|
213
|
+
# define ATTRIBUTE_FPTR_PRINTF(m, n)
|
214
|
+
# endif /* GNUC >= 3.1 */
|
215
|
+
# define ATTRIBUTE_FPTR_PRINTF_1 ATTRIBUTE_FPTR_PRINTF(1, 2)
|
216
|
+
# define ATTRIBUTE_FPTR_PRINTF_2 ATTRIBUTE_FPTR_PRINTF(2, 3)
|
217
|
+
# define ATTRIBUTE_FPTR_PRINTF_3 ATTRIBUTE_FPTR_PRINTF(3, 4)
|
218
|
+
# define ATTRIBUTE_FPTR_PRINTF_4 ATTRIBUTE_FPTR_PRINTF(4, 5)
|
219
|
+
# define ATTRIBUTE_FPTR_PRINTF_5 ATTRIBUTE_FPTR_PRINTF(5, 6)
|
220
|
+
#endif /* ATTRIBUTE_FPTR_PRINTF */
|
221
|
+
|
222
|
+
/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL. A
|
223
|
+
NULL format specifier was allowed as of gcc 3.3. */
|
224
|
+
#ifndef ATTRIBUTE_NULL_PRINTF
|
225
|
+
# if (GCC_VERSION >= 3003)
|
226
|
+
# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
|
227
|
+
# else
|
228
|
+
# define ATTRIBUTE_NULL_PRINTF(m, n)
|
229
|
+
# endif /* GNUC >= 3.3 */
|
230
|
+
# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2)
|
231
|
+
# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3)
|
232
|
+
# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4)
|
233
|
+
# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5)
|
234
|
+
# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6)
|
235
|
+
#endif /* ATTRIBUTE_NULL_PRINTF */
|
236
|
+
|
237
|
+
/* Attribute `sentinel' was valid as of gcc 3.5. */
|
238
|
+
#ifndef ATTRIBUTE_SENTINEL
|
239
|
+
# if (GCC_VERSION >= 3005)
|
240
|
+
# define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
|
241
|
+
# else
|
242
|
+
# define ATTRIBUTE_SENTINEL
|
243
|
+
# endif /* GNUC >= 3.5 */
|
244
|
+
#endif /* ATTRIBUTE_SENTINEL */
|
245
|
+
|
246
|
+
|
247
|
+
#ifndef ATTRIBUTE_ALIGNED_ALIGNOF
|
248
|
+
# if (GCC_VERSION >= 3000)
|
249
|
+
# define ATTRIBUTE_ALIGNED_ALIGNOF(m) __attribute__ ((__aligned__ (__alignof__ (m))))
|
250
|
+
# else
|
251
|
+
# define ATTRIBUTE_ALIGNED_ALIGNOF(m)
|
252
|
+
# endif /* GNUC >= 3.0 */
|
253
|
+
#endif /* ATTRIBUTE_ALIGNED_ALIGNOF */
|
254
|
+
|
255
|
+
/* Useful for structures whose layout must match some binary specification
|
256
|
+
regardless of the alignment and padding qualities of the compiler. */
|
257
|
+
#ifndef ATTRIBUTE_PACKED
|
258
|
+
# define ATTRIBUTE_PACKED __attribute__ ((packed))
|
259
|
+
#endif
|
260
|
+
|
261
|
+
/* Attribute `hot' and `cold' was valid as of gcc 4.3. */
|
262
|
+
#ifndef ATTRIBUTE_COLD
|
263
|
+
# if (GCC_VERSION >= 4003)
|
264
|
+
# define ATTRIBUTE_COLD __attribute__ ((__cold__))
|
265
|
+
# else
|
266
|
+
# define ATTRIBUTE_COLD
|
267
|
+
# endif /* GNUC >= 4.3 */
|
268
|
+
#endif /* ATTRIBUTE_COLD */
|
269
|
+
#ifndef ATTRIBUTE_HOT
|
270
|
+
# if (GCC_VERSION >= 4003)
|
271
|
+
# define ATTRIBUTE_HOT __attribute__ ((__hot__))
|
272
|
+
# else
|
273
|
+
# define ATTRIBUTE_HOT
|
274
|
+
# endif /* GNUC >= 4.3 */
|
275
|
+
#endif /* ATTRIBUTE_HOT */
|
276
|
+
|
277
|
+
/* Attribute 'no_sanitize_undefined' was valid as of gcc 4.9. */
|
278
|
+
#ifndef ATTRIBUTE_NO_SANITIZE_UNDEFINED
|
279
|
+
# if (GCC_VERSION >= 4009)
|
280
|
+
# define ATTRIBUTE_NO_SANITIZE_UNDEFINED __attribute__ ((no_sanitize_undefined))
|
281
|
+
# else
|
282
|
+
# define ATTRIBUTE_NO_SANITIZE_UNDEFINED
|
283
|
+
# endif /* GNUC >= 4.9 */
|
284
|
+
#endif /* ATTRIBUTE_NO_SANITIZE_UNDEFINED */
|
285
|
+
|
286
|
+
/* Attribute 'nonstring' was valid as of gcc 8. */
|
287
|
+
#ifndef ATTRIBUTE_NONSTRING
|
288
|
+
# if GCC_VERSION >= 8000
|
289
|
+
# define ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
|
290
|
+
# else
|
291
|
+
# define ATTRIBUTE_NONSTRING
|
292
|
+
# endif
|
293
|
+
#endif
|
294
|
+
|
295
|
+
/* Attribute `alloc_size' was valid as of gcc 4.3. */
|
296
|
+
#ifndef ATTRIBUTE_RESULT_SIZE_1
|
297
|
+
# if (GCC_VERSION >= 4003)
|
298
|
+
# define ATTRIBUTE_RESULT_SIZE_1 __attribute__ ((alloc_size (1)))
|
299
|
+
# else
|
300
|
+
# define ATTRIBUTE_RESULT_SIZE_1
|
301
|
+
#endif
|
302
|
+
#endif
|
303
|
+
|
304
|
+
#ifndef ATTRIBUTE_RESULT_SIZE_2
|
305
|
+
# if (GCC_VERSION >= 4003)
|
306
|
+
# define ATTRIBUTE_RESULT_SIZE_2 __attribute__ ((alloc_size (2)))
|
307
|
+
# else
|
308
|
+
# define ATTRIBUTE_RESULT_SIZE_2
|
309
|
+
#endif
|
310
|
+
#endif
|
311
|
+
|
312
|
+
#ifndef ATTRIBUTE_RESULT_SIZE_1_2
|
313
|
+
# if (GCC_VERSION >= 4003)
|
314
|
+
# define ATTRIBUTE_RESULT_SIZE_1_2 __attribute__ ((alloc_size (1, 2)))
|
315
|
+
# else
|
316
|
+
# define ATTRIBUTE_RESULT_SIZE_1_2
|
317
|
+
#endif
|
318
|
+
#endif
|
319
|
+
|
320
|
+
/* Attribute `warn_unused_result' was valid as of gcc 3.3. */
|
321
|
+
#ifndef ATTRIBUTE_WARN_UNUSED_RESULT
|
322
|
+
# if GCC_VERSION >= 3003
|
323
|
+
# define ATTRIBUTE_WARN_UNUSED_RESULT __attribute__ ((warn_unused_result))
|
324
|
+
# else
|
325
|
+
# define ATTRIBUTE_WARN_UNUSED_RESULT
|
326
|
+
# endif
|
327
|
+
#endif
|
328
|
+
|
329
|
+
/* We use __extension__ in some places to suppress -pedantic warnings
|
330
|
+
about GCC extensions. This feature didn't work properly before
|
331
|
+
gcc 2.8. */
|
332
|
+
#if GCC_VERSION < 2008
|
333
|
+
#define __extension__
|
334
|
+
#endif
|
335
|
+
|
336
|
+
/* This is used to declare a const variable which should be visible
|
337
|
+
outside of the current compilation unit. Use it as
|
338
|
+
EXPORTED_CONST int i = 1;
|
339
|
+
This is because the semantics of const are different in C and C++.
|
340
|
+
"extern const" is permitted in C but it looks strange, and gcc
|
341
|
+
warns about it when -Wc++-compat is not used. */
|
342
|
+
#ifdef __cplusplus
|
343
|
+
#define EXPORTED_CONST extern const
|
344
|
+
#else
|
345
|
+
#define EXPORTED_CONST const
|
346
|
+
#endif
|
347
|
+
|
348
|
+
/* Be conservative and only use enum bitfields with C++ or GCC.
|
349
|
+
FIXME: provide a complete autoconf test for buggy enum bitfields. */
|
350
|
+
|
351
|
+
#ifdef __cplusplus
|
352
|
+
#define ENUM_BITFIELD(TYPE) enum TYPE
|
353
|
+
#elif (GCC_VERSION > 2000)
|
354
|
+
#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE
|
355
|
+
#else
|
356
|
+
#define ENUM_BITFIELD(TYPE) unsigned int
|
357
|
+
#endif
|
358
|
+
|
359
|
+
#if __cpp_constexpr >= 200704
|
360
|
+
#define CONSTEXPR constexpr
|
361
|
+
#else
|
362
|
+
#define CONSTEXPR
|
363
|
+
#endif
|
364
|
+
|
365
|
+
/* C++11 adds the ability to add "override" after an implementation of a
|
366
|
+
virtual function in a subclass, to:
|
367
|
+
(A) document that this is an override of a virtual function
|
368
|
+
(B) allow the compiler to issue a warning if it isn't (e.g. a mismatch
|
369
|
+
of the type signature).
|
370
|
+
|
371
|
+
Similarly, it allows us to add a "final" to indicate that no subclass
|
372
|
+
may subsequently override the vfunc.
|
373
|
+
|
374
|
+
Provide OVERRIDE and FINAL as macros, allowing us to get these benefits
|
375
|
+
when compiling with C++11 support, but without requiring C++11.
|
376
|
+
|
377
|
+
For gcc, use "-std=c++11" to enable C++11 support; gcc 6 onwards enables
|
378
|
+
this by default (actually GNU++14). */
|
379
|
+
|
380
|
+
#if defined __cplusplus
|
381
|
+
# if __cplusplus >= 201103
|
382
|
+
/* C++11 claims to be available: use it. Final/override were only
|
383
|
+
implemented in 4.7, though. */
|
384
|
+
# if GCC_VERSION < 4007
|
385
|
+
# define OVERRIDE
|
386
|
+
# define FINAL
|
387
|
+
# else
|
388
|
+
# define OVERRIDE override
|
389
|
+
# define FINAL final
|
390
|
+
# endif
|
391
|
+
# elif GCC_VERSION >= 4007
|
392
|
+
/* G++ 4.7 supports __final in C++98. */
|
393
|
+
# define OVERRIDE
|
394
|
+
# define FINAL __final
|
395
|
+
# else
|
396
|
+
/* No C++11 support; leave the macros empty. */
|
397
|
+
# define OVERRIDE
|
398
|
+
# define FINAL
|
399
|
+
# endif
|
400
|
+
#else
|
401
|
+
/* No C++11 support; leave the macros empty. */
|
402
|
+
# define OVERRIDE
|
403
|
+
# define FINAL
|
404
|
+
#endif
|
405
|
+
|
406
|
+
/* A macro to disable the copy constructor and assignment operator.
|
407
|
+
When building with C++11 and above, the methods are explicitly
|
408
|
+
deleted, causing a compile-time error if something tries to copy.
|
409
|
+
For C++03, this just declares the methods, causing a link-time
|
410
|
+
error if the methods end up called (assuming you don't
|
411
|
+
define them). For C++03, for best results, place the macro
|
412
|
+
under the private: access specifier, like this,
|
413
|
+
|
414
|
+
class name_lookup
|
415
|
+
{
|
416
|
+
private:
|
417
|
+
DISABLE_COPY_AND_ASSIGN (name_lookup);
|
418
|
+
};
|
419
|
+
|
420
|
+
so that most attempts at copy are caught at compile-time. */
|
421
|
+
|
422
|
+
#if __cplusplus >= 201103
|
423
|
+
#define DISABLE_COPY_AND_ASSIGN(TYPE) \
|
424
|
+
TYPE (const TYPE&) = delete; \
|
425
|
+
void operator= (const TYPE &) = delete
|
426
|
+
#else
|
427
|
+
#define DISABLE_COPY_AND_ASSIGN(TYPE) \
|
428
|
+
TYPE (const TYPE&); \
|
429
|
+
void operator= (const TYPE &)
|
430
|
+
#endif /* __cplusplus >= 201103 */
|
431
|
+
|
432
|
+
#ifdef __cplusplus
|
433
|
+
}
|
434
|
+
#endif
|
435
|
+
|
436
|
+
#endif /* ansidecl.h */
|
data/lib/cxxfilt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cxxfilt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- misson20000
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- Gemfile.lock
|
97
97
|
- README.md
|
98
98
|
- Rakefile
|
99
|
+
- ansidecl.h
|
99
100
|
- bin/console
|
100
101
|
- bin/setup
|
101
102
|
- cxxfilt.gemspec
|
@@ -138,8 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
139
|
- !ruby/object:Gem::Version
|
139
140
|
version: '0'
|
140
141
|
requirements: []
|
141
|
-
|
142
|
-
rubygems_version: 2.7.7
|
142
|
+
rubygems_version: 3.0.1
|
143
143
|
signing_key:
|
144
144
|
specification_version: 4
|
145
145
|
summary: Demangle C++ symbols
|