gccxml_gem 0.9.3-x86-darwin-11
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +84 -0
- data/bin/gccxml +0 -0
- data/bin/gccxml_cc1plus +0 -0
- data/gccxml.rb +57 -0
- data/share/doc/gccxml-0.9/Copyright.txt +55 -0
- data/share/doc/gccxml-0.9/gccxml.html +168 -0
- data/share/doc/gccxml-0.9/gccxml.txt +293 -0
- data/share/gccxml-0.9/GCC/2.95/algorithm +76 -0
- data/share/gccxml-0.9/GCC/2.95/bitset +17 -0
- data/share/gccxml-0.9/GCC/2.95/cctype +24 -0
- data/share/gccxml-0.9/GCC/2.95/clocale +14 -0
- data/share/gccxml-0.9/GCC/2.95/cmath +33 -0
- data/share/gccxml-0.9/GCC/2.95/complex +38 -0
- data/share/gccxml-0.9/GCC/2.95/csetjmp +13 -0
- data/share/gccxml-0.9/GCC/2.95/csignal +14 -0
- data/share/gccxml-0.9/GCC/2.95/cstdarg +12 -0
- data/share/gccxml-0.9/GCC/2.95/cstddef +13 -0
- data/share/gccxml-0.9/GCC/2.95/cstdio +55 -0
- data/share/gccxml-0.9/GCC/2.95/cstdlib +66 -0
- data/share/gccxml-0.9/GCC/2.95/cstring +34 -0
- data/share/gccxml-0.9/GCC/2.95/ctime +24 -0
- data/share/gccxml-0.9/GCC/2.95/cwchar +65 -0
- data/share/gccxml-0.9/GCC/2.95/cwctype +31 -0
- data/share/gccxml-0.9/GCC/2.95/deque +19 -0
- data/share/gccxml-0.9/GCC/2.95/exception +20 -0
- data/share/gccxml-0.9/GCC/2.95/fstream +23 -0
- data/share/gccxml-0.9/GCC/2.95/functional +64 -0
- data/share/gccxml-0.9/GCC/2.95/gccxml_bitset +1066 -0
- data/share/gccxml-0.9/GCC/2.95/iomanip +20 -0
- data/share/gccxml-0.9/GCC/2.95/iosfwd +20 -0
- data/share/gccxml-0.9/GCC/2.95/iostream +27 -0
- data/share/gccxml-0.9/GCC/2.95/iterator +39 -0
- data/share/gccxml-0.9/GCC/2.95/list +19 -0
- data/share/gccxml-0.9/GCC/2.95/map +20 -0
- data/share/gccxml-0.9/GCC/2.95/memory +21 -0
- data/share/gccxml-0.9/GCC/2.95/new +13 -0
- data/share/gccxml-0.9/GCC/2.95/numeric +15 -0
- data/share/gccxml-0.9/GCC/2.95/pthread.h +16 -0
- data/share/gccxml-0.9/GCC/2.95/queue +20 -0
- data/share/gccxml-0.9/GCC/2.95/set +20 -0
- data/share/gccxml-0.9/GCC/2.95/sstream +24 -0
- data/share/gccxml-0.9/GCC/2.95/stack +19 -0
- data/share/gccxml-0.9/GCC/2.95/std/bastring.cc +524 -0
- data/share/gccxml-0.9/GCC/2.95/std/complext.h +397 -0
- data/share/gccxml-0.9/GCC/2.95/std/dcomplex.h +92 -0
- data/share/gccxml-0.9/GCC/2.95/std/fcomplex.h +88 -0
- data/share/gccxml-0.9/GCC/2.95/std/gslice_array.h +170 -0
- data/share/gccxml-0.9/GCC/2.95/std/indirect_array.h +157 -0
- data/share/gccxml-0.9/GCC/2.95/std/ldcomplex.h +96 -0
- data/share/gccxml-0.9/GCC/2.95/std/mask_array.h +154 -0
- data/share/gccxml-0.9/GCC/2.95/std/slice_array.h +156 -0
- data/share/gccxml-0.9/GCC/2.95/std/std_valarray.h +728 -0
- data/share/gccxml-0.9/GCC/2.95/std/straits.h +162 -0
- data/share/gccxml-0.9/GCC/2.95/std/valarray_meta.h +1035 -0
- data/share/gccxml-0.9/GCC/2.95/stdexcept +17 -0
- data/share/gccxml-0.9/GCC/2.95/stl_alloc.h +1057 -0
- data/share/gccxml-0.9/GCC/2.95/stl_bvector.h +836 -0
- data/share/gccxml-0.9/GCC/2.95/stl_deque.h +1699 -0
- data/share/gccxml-0.9/GCC/2.95/stl_list.h +843 -0
- data/share/gccxml-0.9/GCC/2.95/stl_tree.h +1331 -0
- data/share/gccxml-0.9/GCC/2.95/stl_vector.h +828 -0
- data/share/gccxml-0.9/GCC/2.95/string +26 -0
- data/share/gccxml-0.9/GCC/2.95/strstream +23 -0
- data/share/gccxml-0.9/GCC/2.95/typeinfo +11 -0
- data/share/gccxml-0.9/GCC/2.95/utility +25 -0
- data/share/gccxml-0.9/GCC/2.95/valarray +52 -0
- data/share/gccxml-0.9/GCC/2.95/vector +19 -0
- data/share/gccxml-0.9/GCC/2.96/sstream +305 -0
- data/share/gccxml-0.9/GCC/3.0/pthread.h +16 -0
- data/share/gccxml-0.9/GCC/3.1/pthread.h +16 -0
- data/share/gccxml-0.9/GCC/3.2/bits/fstream.tcc +500 -0
- data/share/gccxml-0.9/GCC/3.2/bits/gthr-default.h +585 -0
- data/share/gccxml-0.9/GCC/3.2/bits/istream.tcc +1207 -0
- data/share/gccxml-0.9/GCC/3.2/bits/locale_facets.h +1810 -0
- data/share/gccxml-0.9/GCC/3.2/bits/locale_facets.tcc +2397 -0
- data/share/gccxml-0.9/GCC/3.2/bits/messages_members.h +108 -0
- data/share/gccxml-0.9/GCC/3.2/bits/ostream.tcc +713 -0
- data/share/gccxml-0.9/GCC/3.2/bits/sstream.tcc +241 -0
- data/share/gccxml-0.9/GCC/3.2/bits/stl_deque.h +1682 -0
- data/share/gccxml-0.9/GCC/3.2/bits/stl_list.h +989 -0
- data/share/gccxml-0.9/GCC/3.2/bits/stl_tree.h +1462 -0
- data/share/gccxml-0.9/GCC/3.2/bits/stl_vector.h +1085 -0
- data/share/gccxml-0.9/GCC/3.2/bits/valarray_meta.h +1063 -0
- data/share/gccxml-0.9/GCC/3.2/fstream +579 -0
- data/share/gccxml-0.9/GCC/3.2/pthread.h +16 -0
- data/share/gccxml-0.9/GCC/3.2/sstream +384 -0
- data/share/gccxml-0.9/GCC/3.3/bits/fstream.tcc +530 -0
- data/share/gccxml-0.9/GCC/3.3/bits/list.tcc +378 -0
- data/share/gccxml-0.9/GCC/3.3/bits/locale_facets.h +2050 -0
- data/share/gccxml-0.9/GCC/3.3/bits/messages_members.h +108 -0
- data/share/gccxml-0.9/GCC/3.3/bits/sstream.tcc +243 -0
- data/share/gccxml-0.9/GCC/3.3/bits/stl_deque.h +1603 -0
- data/share/gccxml-0.9/GCC/3.3/bits/stl_list.h +1167 -0
- data/share/gccxml-0.9/GCC/3.3/bits/stl_tree.h +1462 -0
- data/share/gccxml-0.9/GCC/3.3/bits/stl_vector.h +992 -0
- data/share/gccxml-0.9/GCC/3.3/bits/valarray_meta.h +1135 -0
- data/share/gccxml-0.9/GCC/3.3/fstream +842 -0
- data/share/gccxml-0.9/GCC/3.3/gccxml_builtins.h +22 -0
- data/share/gccxml-0.9/GCC/3.3/sstream +638 -0
- data/share/gccxml-0.9/GCC/3.4/bits/gthr-default.h +669 -0
- data/share/gccxml-0.9/GCC/3.4/gccxml_builtins.h +91 -0
- data/share/gccxml-0.9/GCC/4.0/emmintrin.h +5 -0
- data/share/gccxml-0.9/GCC/4.0/gccxml_apple_emmintrin.h +1037 -0
- data/share/gccxml-0.9/GCC/4.0/gccxml_apple_mmintrin.h +669 -0
- data/share/gccxml-0.9/GCC/4.0/gccxml_apple_xmmintrin.h +870 -0
- data/share/gccxml-0.9/GCC/4.0/gccxml_builtins.h +128 -0
- data/share/gccxml-0.9/GCC/4.0/gccxml_gnu_emmintrin.h +977 -0
- data/share/gccxml-0.9/GCC/4.0/gccxml_gnu_mmintrin.h +636 -0
- data/share/gccxml-0.9/GCC/4.0/gccxml_gnu_xmmintrin.h +833 -0
- data/share/gccxml-0.9/GCC/4.0/mmintrin.h +5 -0
- data/share/gccxml-0.9/GCC/4.0/xmmintrin.h +5 -0
- data/share/gccxml-0.9/GCC/4.1/bits/gthr-default.h +622 -0
- data/share/gccxml-0.9/GCC/4.1/emmintrin.h +5 -0
- data/share/gccxml-0.9/GCC/4.1/gccxml_apple_emmintrin.h +1509 -0
- data/share/gccxml-0.9/GCC/4.1/gccxml_apple_mmintrin.h +942 -0
- data/share/gccxml-0.9/GCC/4.1/gccxml_apple_xmmintrin.h +1192 -0
- data/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h +131 -0
- data/share/gccxml-0.9/GCC/4.1/gccxml_gnu_emmintrin.h +1004 -0
- data/share/gccxml-0.9/GCC/4.1/gccxml_gnu_mmintrin.h +637 -0
- data/share/gccxml-0.9/GCC/4.1/gccxml_gnu_xmmintrin.h +834 -0
- data/share/gccxml-0.9/GCC/4.1/mmintrin.h +5 -0
- data/share/gccxml-0.9/GCC/4.1/xmmintrin.h +5 -0
- data/share/gccxml-0.9/GCC/4.2/emmintrin.h +5 -0
- data/share/gccxml-0.9/GCC/4.2/gccxml_apple_emmintrin.h +1509 -0
- data/share/gccxml-0.9/GCC/4.2/gccxml_apple_mmintrin.h +942 -0
- data/share/gccxml-0.9/GCC/4.2/gccxml_apple_xmmintrin.h +1192 -0
- data/share/gccxml-0.9/GCC/4.2/gccxml_builtins.h +131 -0
- data/share/gccxml-0.9/GCC/4.2/gccxml_gnu_emmintrin.h +1013 -0
- data/share/gccxml-0.9/GCC/4.2/gccxml_gnu_mmintrin.h +663 -0
- data/share/gccxml-0.9/GCC/4.2/gccxml_gnu_xmmintrin.h +860 -0
- data/share/gccxml-0.9/GCC/4.2/mmintrin.h +5 -0
- data/share/gccxml-0.9/GCC/4.2/xmmintrin.h +5 -0
- data/share/gccxml-0.9/GCC/4.3/emmintrin.h +1043 -0
- data/share/gccxml-0.9/GCC/4.3/gccxml_builtins.h +183 -0
- data/share/gccxml-0.9/GCC/4.3/mmintrin.h +663 -0
- data/share/gccxml-0.9/GCC/4.3/xmmintrin.h +867 -0
- data/share/gccxml-0.9/GCC/4.4/bits/c++config.h +1431 -0
- data/share/gccxml-0.9/GCC/4.4/emmintrin.h +1041 -0
- data/share/gccxml-0.9/GCC/4.4/gccxml_builtins.h +153 -0
- data/share/gccxml-0.9/GCC/4.4/mmintrin.h +662 -0
- data/share/gccxml-0.9/GCC/4.4/xmmintrin.h +864 -0
- data/share/gccxml-0.9/GCC/4.5/gccxml_builtins.h +154 -0
- data/share/gccxml-0.9/GCC/4.5/iomanip +349 -0
- data/share/gccxml-0.9/GCC/COPYING.RUNTIME +73 -0
- data/share/gccxml-0.9/GCC/COPYING3 +674 -0
- data/share/gccxml-0.9/IBM/8.0/adapt_headers.sh +34 -0
- data/share/gccxml-0.9/IBM/8.0/stdlib.h.patch +27 -0
- data/share/gccxml-0.9/IBM/8.0/xstring.patch +19 -0
- data/share/gccxml-0.9/IBM/README +8 -0
- data/share/gccxml-0.9/IBM/find_flags +51 -0
- data/share/gccxml-0.9/IBM/find_flags_common +48 -0
- data/share/gccxml-0.9/Intel/find_flags +56 -0
- data/share/gccxml-0.9/Intel/pthread.h +16 -0
- data/share/gccxml-0.9/MIPSpro/7.3/exception +9 -0
- data/share/gccxml-0.9/MIPSpro/7.3/gccxml_mpro_internals.h +21 -0
- data/share/gccxml-0.9/MIPSpro/7.3/iomanip +161 -0
- data/share/gccxml-0.9/MIPSpro/7.3/ostream +9 -0
- data/share/gccxml-0.9/MIPSpro/7.3/stddef.h +9 -0
- data/share/gccxml-0.9/MIPSpro/7.3/stl_config.h +9 -0
- data/share/gccxml-0.9/MIPSpro/7.3/stl_locale.h +17 -0
- data/share/gccxml-0.9/MIPSpro/7.3/stl_monetary.h +14 -0
- data/share/gccxml-0.9/MIPSpro/7.3/stl_numeric_facets.h +13 -0
- data/share/gccxml-0.9/MIPSpro/7.3/stl_threads.h +11 -0
- data/share/gccxml-0.9/MIPSpro/7.3/string +18 -0
- data/share/gccxml-0.9/MIPSpro/find_flags +70 -0
- data/share/gccxml-0.9/MIPSpro/mipspro_defs.cxx +63 -0
- data/share/gccxml-0.9/Sun/5.8/Cstd.patch +156 -0
- data/share/gccxml-0.9/Sun/5.8/adapt_headers.sh +32 -0
- data/share/gccxml-0.9/Sun/5.8/std-5.10.patch +22 -0
- data/share/gccxml-0.9/Sun/README +8 -0
- data/share/gccxml-0.9/Sun/find_flags +51 -0
- data/share/gccxml-0.9/Sun/find_flags_common +42 -0
- data/share/gccxml-0.9/gccxml_config +2 -0
- data/share/gccxml-0.9/gccxml_identify_compiler.cc +13 -0
- data/share/man/man1/gccxml.1 +246 -0
- metadata +243 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
#ifdef _BOOL
|
2
|
+
D_BOOL _BOOL
|
3
|
+
#endif
|
4
|
+
#ifdef _EXPLICIT_IS_KEYWORD
|
5
|
+
D_EXPLICIT_IS_KEYWORD _EXPLICIT_IS_KEYWORD
|
6
|
+
#endif
|
7
|
+
#ifdef _LIBC_IN_NAMESPACE_STD_
|
8
|
+
D_LIBC_IN_NAMESPACE_STD_ _LIBC_IN_NAMESPACE_STD_
|
9
|
+
#endif
|
10
|
+
#ifdef _MEMBER_TEMPLATES
|
11
|
+
D_MEMBER_TEMPLATES _MEMBER_TEMPLATES
|
12
|
+
#endif
|
13
|
+
#ifdef _MUTABLE_IS_KEYWORD
|
14
|
+
D_MUTABLE_IS_KEYWORD _MUTABLE_IS_KEYWORD
|
15
|
+
#endif
|
16
|
+
#ifdef _NAMESPACES
|
17
|
+
D_NAMESPACES _NAMESPACES
|
18
|
+
#endif
|
19
|
+
#ifdef _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES
|
20
|
+
D_PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES
|
21
|
+
#endif
|
22
|
+
#ifdef _STANDARD_C_PLUS_PLUS
|
23
|
+
D_STANDARD_C_PLUS_PLUS _STANDARD_C_PLUS_PLUS
|
24
|
+
#endif
|
25
|
+
#ifdef _TYPENAME_IS_KEYWORD
|
26
|
+
D_TYPENAME_IS_KEYWORD _TYPENAME_IS_KEYWORD
|
27
|
+
#endif
|
28
|
+
#ifdef _WCHAR_T
|
29
|
+
D_WCHAR_T _WCHAR_T
|
30
|
+
#endif
|
31
|
+
#ifdef _WCHAR_T_IS_KEYWORD
|
32
|
+
D_WCHAR_T_IS_KEYWORD _WCHAR_T_IS_KEYWORD
|
33
|
+
#endif
|
34
|
+
#ifdef __ANSI_CPP__
|
35
|
+
D__ANSI_CPP__ __ANSI_CPP__
|
36
|
+
#endif
|
37
|
+
#ifdef __ARRAY_OPERATORS
|
38
|
+
D__ARRAY_OPERATORS __ARRAY_OPERATORS
|
39
|
+
#endif
|
40
|
+
#ifdef __EDG_ABI_COMPATIBILITY_VERSION
|
41
|
+
D__EDG_ABI_COMPATIBILITY_VERSION __EDG_ABI_COMPATIBILITY_VERSION
|
42
|
+
#endif
|
43
|
+
#ifdef __EDG_RUNTIME_USES_NAMESPACES
|
44
|
+
D__EDG_RUNTIME_USES_NAMESPACES __EDG_RUNTIME_USES_NAMESPACES
|
45
|
+
#endif
|
46
|
+
#ifdef __EDG_VERSION__
|
47
|
+
D__EDG_VERSION__ __EDG_VERSION__
|
48
|
+
#endif
|
49
|
+
#ifdef __EDG__
|
50
|
+
D__EDG__ __EDG__
|
51
|
+
#endif
|
52
|
+
#ifdef __EXCEPTIONS
|
53
|
+
D__EXCEPTIONS __EXCEPTIONS
|
54
|
+
#endif
|
55
|
+
#ifdef __LIBC_MATH_OVERLOAD__
|
56
|
+
D__LIBC_MATH_OVERLOAD__ __LIBC_MATH_OVERLOAD__
|
57
|
+
#endif
|
58
|
+
#ifdef __RTTI
|
59
|
+
D__RTTI __RTTI
|
60
|
+
#endif
|
61
|
+
#ifdef __STDC__
|
62
|
+
D__STDC__ __STDC__
|
63
|
+
#endif
|
@@ -0,0 +1,156 @@
|
|
1
|
+
diff -r -u old/algorithm new/algorithm
|
2
|
+
--- old/algorithm 2009-06-05 10:01:07.000000000 +0200
|
3
|
+
+++ new/algorithm 2009-06-05 10:01:43.000000000 +0200
|
4
|
+
@@ -880,6 +880,11 @@
|
5
|
+
RandomAccessIterator last, Pointer buffer,
|
6
|
+
Distance buffer_size, T*, Compare comp);
|
7
|
+
|
8
|
+
+#if !defined(__MINMAX_DEFINED)
|
9
|
+
+ template <class T>
|
10
|
+
+ inline const T& (min)(const T& a, const T& b);
|
11
|
+
+#endif
|
12
|
+
+
|
13
|
+
template <class RandomAccessIterator, class Pointer, class Distance, class T>
|
14
|
+
inline void __stable_sort (RandomAccessIterator first,
|
15
|
+
RandomAccessIterator last,
|
16
|
+
diff -r -u old/istream new/istream
|
17
|
+
--- old/istream 2009-06-05 10:01:07.000000000 +0200
|
18
|
+
+++ new/istream 2009-06-05 10:01:43.000000000 +0200
|
19
|
+
@@ -67,7 +67,7 @@
|
20
|
+
|
21
|
+
_EXPLICIT basic_istream(basic_streambuf<charT, traits> *sb);
|
22
|
+
|
23
|
+
- _EXPLICIT basic_istream(EmptyCtor) : basic_ios<charT, traits>(1) {}
|
24
|
+
+ _EXPLICIT basic_istream(ios_base::EmptyCtor) : basic_ios<charT, traits>(1) {}
|
25
|
+
virtual ~basic_istream();
|
26
|
+
|
27
|
+
class sentry
|
28
|
+
@@ -307,7 +307,7 @@
|
29
|
+
}
|
30
|
+
else
|
31
|
+
{
|
32
|
+
- ostream_type* ost = stream.tie();
|
33
|
+
+ basic_ostream<charT, traits>* ost = stream.tie();
|
34
|
+
if (ost && ost->rdbuf() != sb)
|
35
|
+
ost->flush();
|
36
|
+
|
37
|
+
@@ -419,9 +419,11 @@
|
38
|
+
const istream_iterator<T,charT,traits,Distance>& x,
|
39
|
+
const istream_iterator<T,charT,traits,Distance>& y);
|
40
|
+
#else
|
41
|
+
- friend inline bool operator== <> (
|
42
|
+
+/* SMOSS 29/08/07 inline not allowed in friend declaration */
|
43
|
+
+ friend /*inline*/ bool operator== <> (
|
44
|
+
const istream_iterator<T,charT,traits,Distance>& x,
|
45
|
+
const istream_iterator<T,charT,traits,Distance>& y);
|
46
|
+
+/* END SMOSS 29/08/07 inline not allowed in friend declaration */
|
47
|
+
#endif
|
48
|
+
public:
|
49
|
+
typedef charT char_type;
|
50
|
+
diff -r -u old/ostream new/ostream
|
51
|
+
--- old/ostream 2009-06-05 10:01:07.000000000 +0200
|
52
|
+
+++ new/ostream 2009-06-05 10:01:43.000000000 +0200
|
53
|
+
@@ -88,7 +88,7 @@
|
54
|
+
typedef basic_ios<charT, traits> ios_type;
|
55
|
+
|
56
|
+
_EXPLICIT basic_ostream(basic_streambuf<charT, traits> *sb);
|
57
|
+
- _EXPLICIT basic_ostream(EmptyCtor) : basic_ios<charT, traits>(1) {}
|
58
|
+
+ _EXPLICIT basic_ostream(ios_base::EmptyCtor) : basic_ios<charT, traits>(1) {}
|
59
|
+
virtual ~basic_ostream();
|
60
|
+
|
61
|
+
class sentry {
|
62
|
+
@@ -97,8 +97,7 @@
|
63
|
+
sentry(basic_ostream<charT,traits>& stream)
|
64
|
+
: __stream(stream)
|
65
|
+
{
|
66
|
+
-
|
67
|
+
- streambuf_type* sb = stream.rdbuf();
|
68
|
+
+ basic_streambuf<charT, traits>* sb = stream.rdbuf();
|
69
|
+
if ( sb ) {
|
70
|
+
stream.rdbuf()->buffer_mutex_.acquire();
|
71
|
+
}
|
72
|
+
diff -r -u old/rw/iterator new/rw/iterator
|
73
|
+
--- old/rw/iterator 2009-06-05 10:01:07.000000000 +0200
|
74
|
+
+++ new/rw/iterator 2009-06-05 10:01:43.000000000 +0200
|
75
|
+
@@ -426,10 +426,12 @@
|
76
|
+
friend inline difference_type (std::operator-) (const self& x, const self& y);
|
77
|
+
friend inline self (std::operator+) (difference_type n, const self& x);
|
78
|
+
#else
|
79
|
+
- friend inline bool operator== <> (const self& x, const self& y);
|
80
|
+
- friend inline bool operator< <> (const self& x, const self& y);
|
81
|
+
- friend inline difference_type operator- <> (const self& x, const self& y);
|
82
|
+
- friend inline self operator+ <> (difference_type n, const self& x);
|
83
|
+
+/* SMOSS 29/08/07 removing 'inline' from friend declarations */
|
84
|
+
+ friend /*inline*/ bool operator== <> (const self& x, const self& y);
|
85
|
+
+ friend /*inline*/ bool operator< <> (const self& x, const self& y);
|
86
|
+
+ friend /*inline*/ difference_type operator- <> (const self& x, const self& y);
|
87
|
+
+ friend /*inline*/ self operator+ <> (difference_type n, const self& x);
|
88
|
+
+/* END SMOSS 29/08/07 removing 'inline' from friend declarations */
|
89
|
+
#endif
|
90
|
+
protected:
|
91
|
+
|
92
|
+
@@ -581,7 +583,9 @@
|
93
|
+
typedef Reference reference;
|
94
|
+
typedef Pointer pointer;
|
95
|
+
|
96
|
+
- friend inline bool operator== <> (const self& x, const self& y);
|
97
|
+
+/* SMOSS 29/08/07 removing 'inline' from friend declarations */
|
98
|
+
+ friend /*inline*/ bool operator== <> (const self& x, const self& y);
|
99
|
+
+/* END SMOSS 29/08/07 removing 'inline' from friend declarations */
|
100
|
+
|
101
|
+
protected:
|
102
|
+
|
103
|
+
diff -r -u old/streambuf new/streambuf
|
104
|
+
--- old/streambuf 2009-06-05 10:01:07.000000000 +0200
|
105
|
+
+++ new/streambuf 2009-06-05 10:01:43.000000000 +0200
|
106
|
+
@@ -927,7 +927,10 @@
|
107
|
+
* int_type snextc()
|
108
|
+
* returns the next character
|
109
|
+
*/
|
110
|
+
-
|
111
|
+
+/* SMOSS 29/08/07 Can't use typename in template specializations */
|
112
|
+
+#ifdef _TYPENAME
|
113
|
+
+# define _TYPENAME
|
114
|
+
+#endif
|
115
|
+
inline _TYPENAME basic_streambuf<char, char_traits<char> >::int_type
|
116
|
+
basic_streambuf<char, char_traits<char> >::snextc()
|
117
|
+
{
|
118
|
+
@@ -1208,6 +1211,11 @@
|
119
|
+
{
|
120
|
+
return seekpos(sp, which);
|
121
|
+
}
|
122
|
+
+#ifdef _TYPENAME
|
123
|
+
+# define _TYPENAME typename
|
124
|
+
+# undef _OLD_TYPENAME
|
125
|
+
+#endif
|
126
|
+
+/* END SMOSS 29/08/07 Can't use typename in template specializations */
|
127
|
+
|
128
|
+
/*
|
129
|
+
* basic_streambuf *pubsetbuf(char_type *, streamsize)
|
130
|
+
diff -r -u old/string new/string
|
131
|
+
--- old/string 2009-06-05 10:01:07.000000000 +0200
|
132
|
+
+++ new/string 2009-06-05 10:01:43.000000000 +0200
|
133
|
+
@@ -797,7 +797,9 @@
|
134
|
+
// Null string ref
|
135
|
+
//
|
136
|
+
#ifndef _RWSTD_NO_STATIC_DEF3
|
137
|
+
- static __SUNW_GLOBAL const __null_ref_type __nullref;
|
138
|
+
+/* SMOSS 29/08/07 Can't resolve #define __SUNW_GLOBAL __global */
|
139
|
+
+ static /* __SUNW_GLOBAL */ const __null_ref_type __nullref;
|
140
|
+
+/* SMOSS 29/08/07 Can't resolve #define __SUNW_GLOBAL __global */
|
141
|
+
#endif
|
142
|
+
|
143
|
+
static __string_ref_type * __getNullRep ()
|
144
|
+
diff -r -u old/typeinfo new/typeinfo
|
145
|
+
--- old/typeinfo 2009-06-05 10:01:07.000000000 +0200
|
146
|
+
+++ new/typeinfo 2009-06-05 10:01:43.000000000 +0200
|
147
|
+
@@ -34,7 +34,8 @@
|
148
|
+
// Implementation
|
149
|
+
const void* __data;
|
150
|
+
type_info(const void*) throw();
|
151
|
+
- friend __Cimpl::__type_info_friend;
|
152
|
+
+ /* SMOSS 29/08/07 Can't resolve */
|
153
|
+
+ //friend __Cimpl::__type_info_friend;
|
154
|
+
};
|
155
|
+
|
156
|
+
class bad_typeid: public exception {
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
cd `dirname $0`
|
4
|
+
|
5
|
+
#########################################
|
6
|
+
# Patch STL Headers (Non-STLport)
|
7
|
+
#########################################
|
8
|
+
|
9
|
+
CC_INCLUDES=`../find_flags "$@" | perl -ne '($a) = m|-I([/a-zA-Z0-9\._-]+/include/CC)|o ; print "$a\n" if $a'`
|
10
|
+
|
11
|
+
mkdir -p rw
|
12
|
+
|
13
|
+
cp $CC_INCLUDES/typeinfo .
|
14
|
+
cp $CC_INCLUDES/Cstd/istream .
|
15
|
+
cp $CC_INCLUDES/Cstd/ostream .
|
16
|
+
cp $CC_INCLUDES/Cstd/streambuf .
|
17
|
+
cp $CC_INCLUDES/Cstd/string .
|
18
|
+
cp $CC_INCLUDES/Cstd/algorithm .
|
19
|
+
cp $CC_INCLUDES/Cstd/rw/iterator rw/iterator
|
20
|
+
|
21
|
+
gpatch -p1 < Cstd.patch
|
22
|
+
|
23
|
+
#########################################
|
24
|
+
# Patch the standard headers
|
25
|
+
#########################################
|
26
|
+
|
27
|
+
if [ `uname -r` = "5.10" ]
|
28
|
+
then
|
29
|
+
mkdir -p iso
|
30
|
+
cp /usr/include/iso/stdlib_iso.h iso
|
31
|
+
gpatch -p1 < std-5.10.patch
|
32
|
+
fi
|
@@ -0,0 +1,22 @@
|
|
1
|
+
diff -r -u old/iso/stdlib_iso.h new/iso/stdlib_iso.h
|
2
|
+
--- old/iso/stdlib_iso.h Wed May 20 12:02:31 2009
|
3
|
+
+++ new/iso/stdlib_iso.h Wed May 20 12:01:23 2009
|
4
|
+
@@ -110,8 +110,10 @@
|
5
|
+
extern double atof(const char *);
|
6
|
+
extern int atoi(const char *);
|
7
|
+
extern long int atol(const char *);
|
8
|
+
+/* SMOSS 29/08/07
|
9
|
+
extern void *bsearch(const void *, const void *, size_t, size_t,
|
10
|
+
int (*)(const void *, const void *));
|
11
|
+
+*/
|
12
|
+
#if __cplusplus >= 199711L
|
13
|
+
extern "C++" {
|
14
|
+
void *bsearch(const void *, const void *, size_t, size_t,
|
15
|
+
@@ -131,7 +133,6 @@
|
16
|
+
extern size_t mbstowcs(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
|
17
|
+
size_t);
|
18
|
+
extern int mbtowc(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD, size_t);
|
19
|
+
-extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
|
20
|
+
#if __cplusplus >= 199711L
|
21
|
+
extern "C++" {
|
22
|
+
void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
|
@@ -0,0 +1,8 @@
|
|
1
|
+
Sun CC support contributed by Pierre-Olivier Gaillard
|
2
|
+
|
3
|
+
This is a small README file regarding gccxml support for Solaris and Sun CC.
|
4
|
+
|
5
|
+
The Sun CC headers are not suitable for GCC and need to be adapted. The modified files may not be redistributed freely. This forces you to perform the following operations:
|
6
|
+
./<CC-version>/adapt_headers.sh
|
7
|
+
|
8
|
+
This will produce corrected header files in the corresponding directory.
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#=============================================================================
|
3
|
+
#
|
4
|
+
# Program: GCC-XML
|
5
|
+
# Module: $RCSfile: find_flags,v $
|
6
|
+
# Language: C++
|
7
|
+
# Date: $Date: 2009-06-09 18:18:01 $
|
8
|
+
# Version: $Revision: 1.2 $
|
9
|
+
#
|
10
|
+
# Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
11
|
+
# See Copyright.txt for details.
|
12
|
+
#
|
13
|
+
# This software is distributed WITHOUT ANY WARRANTY; without even
|
14
|
+
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
15
|
+
# PURPOSE. See the above copyright notices for more information.
|
16
|
+
#
|
17
|
+
#=============================================================================
|
18
|
+
|
19
|
+
# Find the compiler executable name.
|
20
|
+
if test "x$1" = "x" ; then
|
21
|
+
if test "x${CXX}" = "x" ; then
|
22
|
+
CXX=CC
|
23
|
+
fi
|
24
|
+
else
|
25
|
+
CXX="$1"
|
26
|
+
shift
|
27
|
+
CXXFLAGS="$@"
|
28
|
+
fi
|
29
|
+
|
30
|
+
# Find the compiler version
|
31
|
+
CXX_VERSION=`${CXX} -V 2>&1 | awk '{print $4}'`
|
32
|
+
[ -z "${CXX_VERSION}" ] && echo "Could not find compiler version" && exit 1
|
33
|
+
|
34
|
+
# Compute the script dir
|
35
|
+
SCRIPT_DIR=`dirname $0`
|
36
|
+
if test "x$SCRIPT_DIR" = "x" ; then SCRIPT_DIR="." ; fi
|
37
|
+
SCRIPT_DIR=`cd "$SCRIPT_DIR" ; pwd`
|
38
|
+
|
39
|
+
# Compute the version-specific support dir
|
40
|
+
CXX_SUPPORT_DIR="$SCRIPT_DIR/$CXX_VERSION"
|
41
|
+
|
42
|
+
# Use the version-specific find_flags if available
|
43
|
+
if [ -f "$CXX_SUPPORT_DIR/find_flags" ]
|
44
|
+
then
|
45
|
+
. "$CXX_SUPPORT_DIR/find_flags"
|
46
|
+
else
|
47
|
+
. "$SCRIPT_DIR/find_flags_common"
|
48
|
+
fi
|
49
|
+
|
50
|
+
# Print out the options
|
51
|
+
echo $OPTIONS
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#=============================================================================
|
3
|
+
#
|
4
|
+
# Program: GCC-XML
|
5
|
+
# Module: $RCSfile: find_flags_common,v $
|
6
|
+
# Language: C++
|
7
|
+
# Date: $Date: 2009-06-09 18:18:01 $
|
8
|
+
# Version: $Revision: 1.1 $
|
9
|
+
#
|
10
|
+
# Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
11
|
+
# See Copyright.txt for details.
|
12
|
+
#
|
13
|
+
# This software is distributed WITHOUT ANY WARRANTY; without even
|
14
|
+
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
15
|
+
# PURPOSE. See the above copyright notices for more information.
|
16
|
+
#
|
17
|
+
#=============================================================================
|
18
|
+
|
19
|
+
GCCXML_PID="$$"
|
20
|
+
cat > "/tmp/gccxml_identify_compiler_args$GCCXML_PID.cc" <<!
|
21
|
+
#include <>
|
22
|
+
!
|
23
|
+
|
24
|
+
# Find the macro definition options.
|
25
|
+
MACROS=`${CXX} ${CXXFLAGS} /tmp/gccxml_identify_compiler_args$GCCXML_PID.cc -E -xdumpmacros=defs 2>&1 |
|
26
|
+
awk '{ if ($1 ~ /#define/) printf("-D%s=%s %s %s ",$2,$3,$4,$5) }'`
|
27
|
+
MACROS="-D__cplusplus=199711L -D__STDC__ -D_REENTRANT $MACROS"
|
28
|
+
|
29
|
+
# Find the include path options.
|
30
|
+
INCLUDES="`echo '' | ${CXX} -v -E ${CXXFLAGS} ~ 2>&1 | perl -ne 'print m|(-I/[/a-zA-Z0-9\._-]+\s*)|og'`"
|
31
|
+
INCLUDES="$INCLUDES -I/usr/include"
|
32
|
+
|
33
|
+
# Use hacked headers
|
34
|
+
if [ -d "$CXX_SUPPORT_DIR" ]; then
|
35
|
+
INCLUDES="-iwrapper\"$CXX_SUPPORT_DIR\" $INCLUDES"
|
36
|
+
fi
|
37
|
+
|
38
|
+
# Cleanup
|
39
|
+
rm -rf "/tmp/gccxml_identify_compiler_args$GCCXML_PID.cc"
|
40
|
+
|
41
|
+
# Format the options.
|
42
|
+
OPTIONS="$MACROS $INCLUDES $SPECIAL"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#if defined(__GNUC__)
|
2
|
+
GCCXML_SUPPORT="GCC"
|
3
|
+
#elif defined(__sgi) && defined(_COMPILER_VERSION)
|
4
|
+
GCCXML_SUPPORT="MIPSpro"
|
5
|
+
#elif defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 700)
|
6
|
+
GCCXML_SUPPORT="Intel"
|
7
|
+
#elif defined(__SUNPRO_CC)
|
8
|
+
GCCXML_SUPPORT="Sun"
|
9
|
+
#elif defined(__IBMCPP__)
|
10
|
+
GCCXML_SUPPORT="IBM"
|
11
|
+
#else
|
12
|
+
GCCXML_SUPPORT=""
|
13
|
+
#endif
|
@@ -0,0 +1,246 @@
|
|
1
|
+
.TH GCC-XML 1 "August 29, 2010" "GCC-XML 0.9.0"
|
2
|
+
.SH NAME
|
3
|
+
.TP
|
4
|
+
.B gccxml
|
5
|
+
- Create an XML representation of C++ declarations.
|
6
|
+
.SH SYNOPSIS
|
7
|
+
.PP
|
8
|
+
gccxml [options] <input-file> -fxml=<output-file>
|
9
|
+
.SH DESCRIPTION
|
10
|
+
.PP
|
11
|
+
GCC-XML parses a C++ source file as it is seen by the compiler when it is built. An easy-to-parse XML representation of the class, function, and namespace declarations is dumped to a specified file. Full C preprocessing transforms the file into a C++ translation unit as seen by the compiler. This means that GCC-XML should make use of the same standard library and other header files as the compiler. GCC-XML can be configured to simulate any of several popular compilers.
|
12
|
+
.SH OPTIONS
|
13
|
+
.PP
|
14
|
+
The following options are available for running GCC-XML:
|
15
|
+
.TP
|
16
|
+
.B --copyright
|
17
|
+
Print the GCC-XML copyright and exit.
|
18
|
+
.TP
|
19
|
+
.B --debug
|
20
|
+
Print extra debugging information.
|
21
|
+
This option causes GCC-XML to print the executable name and command-line arguments used to execute the patched GCC C++ parser. This is useful when attempting to simulate an unsupported compiler.
|
22
|
+
.TP
|
23
|
+
.B -fxml=<output-file>
|
24
|
+
Specify the XML output file.
|
25
|
+
This option is passed directly on to the patched GCC C++ parser. It enables the XML dump and specifies the output file name.
|
26
|
+
.TP
|
27
|
+
.B -fxml-start=<xxx>[,...]
|
28
|
+
Specify a list of starting declarations.
|
29
|
+
This option is passed directly on to the patched GCC C++ parser. It is meaningful only if -fxml= is also specified. This specifies a comma-separated list of named starting declarations. GCC-XML will dump only the subset of the declarations in the translation unit that is reachable through a sequence of source references from one of the specified starting declarations.
|
30
|
+
.TP
|
31
|
+
.B --gccxml-compiler <xxx>
|
32
|
+
Set GCCXML_COMPILER to "xxx".
|
33
|
+
.TP
|
34
|
+
.B --gccxml-cxxflags <xxx>
|
35
|
+
Set GCCXML_CXXFLAGS to "xxx".
|
36
|
+
.TP
|
37
|
+
.B --gccxml-executable <xxx>
|
38
|
+
Set GCCXML_EXECUTABLE to "xxx".
|
39
|
+
.TP
|
40
|
+
.B --gccxml-cpp <xxx>
|
41
|
+
Set GCCXML_CPP to "xxx".
|
42
|
+
.TP
|
43
|
+
.B --gccxml-config <xxx>
|
44
|
+
Set GCCXML_CONFIG to "xxx".
|
45
|
+
.TP
|
46
|
+
.B --gccxml-root <xxx>
|
47
|
+
Set GCCXML_ROOT to "xxx".
|
48
|
+
.TP
|
49
|
+
.B --gccxml-gcc-options <xxx>
|
50
|
+
Read GCC options from file "xxx".
|
51
|
+
This option specifies a file from which to read options to pass to the patched GCC C++ parser. This is useful for specifying a long list of include directories. Each line in the file becomes one option. Empty lines and lines beginning in '#' are ignored.
|
52
|
+
.TP
|
53
|
+
.B --help
|
54
|
+
Print full help and exit.
|
55
|
+
Full help displays most of the documentation provided by the UNIX man page. It is provided for use on non-UNIX platforms, but is also convenient if the man page is not installed.
|
56
|
+
.TP
|
57
|
+
.B --help-html
|
58
|
+
Print full help in HTML format.
|
59
|
+
This option is used by GCC-XML authors to help produce web pages.
|
60
|
+
.TP
|
61
|
+
.B --man
|
62
|
+
Print a UNIX man page and exit.
|
63
|
+
This option is used by GCC-XML authors to generate the UNIX man page.
|
64
|
+
.TP
|
65
|
+
.B --print
|
66
|
+
Print configuration settings and exit.
|
67
|
+
GCC-XML has many configuration options to help it simulate another compiler. Using this option will cause GCC-XML to configure itself as if it were going to parse the C++ source, but stop and print the configuration found. This is useful for checking the configuration.
|
68
|
+
.TP
|
69
|
+
.B --preprocess
|
70
|
+
Preprocess the input and exit.
|
71
|
+
GCC-XML simulates the proprocessor of another compiler. Using this option will cause GCC-XML to configure itself as if it were going to parse the C++ source, but stop after preprocessing. This is useful for debugging problems related to simulation of the other compiler.
|
72
|
+
.TP
|
73
|
+
.B -E
|
74
|
+
Alias for --preprocess.
|
75
|
+
.TP
|
76
|
+
.B --version
|
77
|
+
Show program name/version banner and exit.
|
78
|
+
.PP
|
79
|
+
Other flags, such as -I and -D, are passed on to the patched GCC C++ parser executable.
|
80
|
+
.SH SETTINGS
|
81
|
+
.PP
|
82
|
+
GCC-XML is designed to simulate a compiler's parser while reading C++ source code. Some configuration settings are needed to determine how to simulate a particular compiler of the user's choice. The following settings can be used to configure GCC-XML:
|
83
|
+
.TP
|
84
|
+
.B GCCXML_COMPILER
|
85
|
+
The C++ compiler to be simulated.
|
86
|
+
GCC-XML will attempt to automatically determine how to simulate the compiler specified by this setting. The compiler is specified by its executable name (such as "g++"). For Visual Studio, the compiler is specified by "msvc6", "msvc7", "msvc71", or "msvc8" (if "cl" is given, GCC-XML attempts to guess which VS to use).
|
87
|
+
.TP
|
88
|
+
.B GCCXML_CXXFLAGS
|
89
|
+
The flags for the C++ compiler to be simulated.
|
90
|
+
The behavior of most compilers can be adjusted by specifying flags on the command line. When GCC-XML attempts to automatically determine how to simulate a compiler, these flags are taken into consideration.
|
91
|
+
.TP
|
92
|
+
.B GCCXML_CONFIG
|
93
|
+
The configuration file for common settings.
|
94
|
+
When non-default settings are often used, it is convenient to write a single file containing them. When such a file is specified, it will be read to configure any settings that are not yet known. Each line of the file consists of one assignment of the form KEY="VALUE" (for example, GCCXML_COMPILER="g++").
|
95
|
+
.TP
|
96
|
+
.B GCCXML_EXECUTABLE
|
97
|
+
Specify the patched GCC C++ parser executable.
|
98
|
+
The GCC-XML program as seen by the user is actually a front-end that determines the flags needed to configure the patched GCC C++ parser to simulate another compiler. This setting specifies the real executable to run once the flags have been determined. Users should rarely need to change this value from its default.
|
99
|
+
.TP
|
100
|
+
.B GCCXML_CPP
|
101
|
+
Specify the GCC C preprocessor executable.
|
102
|
+
The GCC-XML program as seen by the user is actually a front-end that determines the flags needed to configure the patched GCC C++ parser to simulate another compiler. This setting specifies the preprocessor to run with the flags that have been determined for debugging purposes. Users should rarely need to change this value from its default.
|
103
|
+
.TP
|
104
|
+
.B GCCXML_ROOT
|
105
|
+
The GCC-XML support library directory.
|
106
|
+
Since GCC-XML is only one C++ parser, it cannot exactly duplicate the functionality of every compiler it tries to simulate. Some compilers provide standard headers with code that GCC-XML cannot directly handle. To work around this limitation, a support library is provided for each compiler. This consists of a set of header files that are used in place of the compiler's system headers. These files contain slight tweaks and then include the corresponding real header. The root of the directory tree containing these support library headers is specified by this setting. Users should rarely need to change this value from its default.
|
107
|
+
.TP
|
108
|
+
.B GCCXML_FLAGS
|
109
|
+
Flags used to simulate the other compiler.
|
110
|
+
When GCC-XML runs the patched GCC C++ parser, these flags are passed to the program to tell it how to simulate a particular compiler. This setting is usually detected automatically from the other settings, but it can be specified directly by advanced users. Most users should not attempt to change this value from the automatic configuration.
|
111
|
+
.TP
|
112
|
+
.B GCCXML_USER_FLAGS
|
113
|
+
Additional user flags for compiler simulation.
|
114
|
+
When GCC-XML runs the patched GCC C++ parser, these flags are passed in addition to those specified by GCCXML_FLAGS. This allows advanced users to tweak the compiler simulation while still using the automatic configuration of GCCXML_FLAGS. Users should rarely need to change this value from its default.
|
115
|
+
.PP
|
116
|
+
There are several means by which these settings are configured. They are listed here in order of precedence (highest first):
|
117
|
+
.TP
|
118
|
+
.B Command-line Options
|
119
|
+
Settings can be specified by their corresponding options.
|
120
|
+
When a setting's corresponding command-line option is provided, it is used in favor over any other means of configuration. If GCCXML_CONFIG is set on the command-line, settings are read from the file with precedence just slightly lower than other command-line options.
|
121
|
+
.TP
|
122
|
+
.B Environment Variables
|
123
|
+
Settings are configured by name in the environment.
|
124
|
+
Each setting not already known is read from an environment variable with its name. If GCCXML_CONFIG is set by the environment, settings are read from the file with precedence just slightly lower than other environment variables.
|
125
|
+
.TP
|
126
|
+
.B Configuration Files
|
127
|
+
A search for GCCXML_CONFIG is performed.
|
128
|
+
If GCCXML_CONFIG has not yet been set, an attempt is made to find a configuration file automatically. First, if the file $HOME/.gccxml/config exists, it will be used. Second, if GCC-XML is being executed from its build directory, a config file from that directory will be used. Finally, if a config file is found in the installation's support library directory, it will be used. Once found, any unknown settings are read from the configuration file.
|
129
|
+
.TP
|
130
|
+
.B Guessing
|
131
|
+
Guesses are made based on other settings.
|
132
|
+
Once GCCXML_COMPILER has been set, it is used to automatically find the setting for GCCXML_FLAGS. If it is not set, the "CXX" environment variable is checked as a last-resort to find the compiler setting and determine GCCXML_FLAGS.
|
133
|
+
.PP
|
134
|
+
Most users should not have to adjust the defaults for these settings. There is a default GCCXML_CONFIG file provided in the support library directory after installation. It configures GCC-XML to simulate the compiler that was used to build it.
|
135
|
+
.SH COMPILERS
|
136
|
+
.PP
|
137
|
+
GCC-XML can simulate any of the following compilers:
|
138
|
+
.TP
|
139
|
+
.B GCC
|
140
|
+
Versions 4.2, 4.1, 4.0, 3.4, 3.3, 3.2, 2.95.x
|
141
|
+
.TP
|
142
|
+
.B Visual C++
|
143
|
+
Versions 8, 7.1, 7.0, and 6 (sp5)
|
144
|
+
.TP
|
145
|
+
.B Borland, Intel, SGI
|
146
|
+
formerly supported but no longer tested
|
147
|
+
.PP
|
148
|
+
The following extra C preprocessor definitions are provided:
|
149
|
+
.TP
|
150
|
+
.B -D__GCCXML__=MMmmpp
|
151
|
+
MM, mm, and pp are the major, minor, and patch versions of GCC-XML. This preprocessor symbol identifies GCC-XML to the source code as it is preprocessed. It can be used to enable GCC-XML-specific information.
|
152
|
+
.TP
|
153
|
+
.B -D__GCCXML_GNUC__=M
|
154
|
+
Defined to internal GCC parser major version.
|
155
|
+
.TP
|
156
|
+
.B -D__GCCXML_GNUC_MINOR__=m
|
157
|
+
Defined to internal GCC parser minor version.
|
158
|
+
.TP
|
159
|
+
.B -D__GCCXML_GNUC_PATCHLEVEL__=p
|
160
|
+
Defined to internal GCC parser patchlevel.
|
161
|
+
.PP
|
162
|
+
Advanced users can simulate other compilers by manually configuring the GCCXML_FLAGS setting. Contact the mailing list for help.
|
163
|
+
.SH METAINFO
|
164
|
+
.PP
|
165
|
+
GCC-XML has added a new attribute to the legal set of C/C++ attributes. The attribute is used to attach meta information to C/C++ source code, which will then appear in the XML output. The syntax for declaring an attribute is as follows:
|
166
|
+
.TP
|
167
|
+
.B __attribute((gccxml(<string>, <string>, ...)))
|
168
|
+
Here <string> is a quoted string. There must be at least one argument to the 'gccxml' attribute, but there is no upper limit to the total number of arguments. Each argument is verified to be a string - if a non-string argument is found, the attribute is ignored.
|
169
|
+
.PP
|
170
|
+
The XML output for the code element that is tagged with the attribute will then contain the following:
|
171
|
+
.TP
|
172
|
+
.B attributes=" ... gccxml(<string>,<string>,<string> ...) ... "
|
173
|
+
The 'attributes' XML attribute contains all attributes applied to the code element. Each argument of the attribute is printed without enclosing quotes, so if an argument contains the ',' character, the argument will appear to be multiple arguments.
|
174
|
+
.PP
|
175
|
+
The 'gccxml' attribute can be applied to any declaration including structs, classes, fields, parameters, methods, functions, variables, and typedefs. The only exception is that GCC's handling of the '__attribute' language element is currently broken for enumerations and constructors with an inlined body. The 'gccxml' attribute can be used any number of times on a given declaration.
|
176
|
+
.PP
|
177
|
+
As an example of how this attribute can be used to attach meta information to C++ declarations, consider the following macro:
|
178
|
+
.TP
|
179
|
+
.B #define _out_ __attribute((gccxml("out")))
|
180
|
+
Here '_out_' has been defined to be the gccxml attribute where the first argument is the string "out". It is recommended that the first argument be used as a unique string name for the type of meta information begin applied.
|
181
|
+
.PP
|
182
|
+
Now a method declaration can be written as follows:
|
183
|
+
.TP
|
184
|
+
.B void getInteger(_out_ int& i);
|
185
|
+
This will cause the XML output to contain meta information for the '_out_' attribute, in the form "gccxml(out)".
|
186
|
+
.PP
|
187
|
+
Using the 'gccxml' attribute enables meta information to be included directly within C++ source code, without the need for a custom parser to extract the meta information. The 'gccxml' attribute is provided for convenience only - there is no guarantee that future versions of GCC will accept the '__attribute' language element in a bug-free manner.
|
188
|
+
.SH COPYRIGHT
|
189
|
+
.PP
|
190
|
+
GCC-XML - XML output for GCC
|
191
|
+
|
192
|
+
.PP
|
193
|
+
Copyright (c) 2002-2007 Kitware, Inc., Insight Consortium
|
194
|
+
|
195
|
+
.PP
|
196
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
197
|
+
|
198
|
+
.TP
|
199
|
+
.B *
|
200
|
+
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
201
|
+
|
202
|
+
.TP
|
203
|
+
.B *
|
204
|
+
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
205
|
+
|
206
|
+
.TP
|
207
|
+
.B *
|
208
|
+
The names of Kitware, Inc., the Insight Consortium, or the names of any consortium members, or of any contributors, may not be used to endorse or promote products derived from this software without specific prior written permission.
|
209
|
+
|
210
|
+
.TP
|
211
|
+
.B *
|
212
|
+
Modified source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
213
|
+
|
214
|
+
.PP
|
215
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
216
|
+
|
217
|
+
.PP
|
218
|
+
------------------------------------------------------------
|
219
|
+
|
220
|
+
.PP
|
221
|
+
gccxml_cc1plus - A GCC parser patched for XML dumps of translation units
|
222
|
+
|
223
|
+
.PP
|
224
|
+
Copyright (c) 2002-2007 Kitware, Inc., Insight Consortium
|
225
|
+
|
226
|
+
.PP
|
227
|
+
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
|
228
|
+
|
229
|
+
.PP
|
230
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
231
|
+
|
232
|
+
.PP
|
233
|
+
You should have received a copy of the GNU General Public License along with this program; if not, write to the
|
234
|
+
Free Software Foundation, Inc.
|
235
|
+
51 Franklin Street, Fifth Floor
|
236
|
+
Boston, MA 02110-1301 USA
|
237
|
+
|
238
|
+
.SH MAILING LIST
|
239
|
+
For help and discussion about using gccxml, a mailing list is
|
240
|
+
provided at
|
241
|
+
.B gccxml@www.gccxml.org.
|
242
|
+
Please first read the full documentation at
|
243
|
+
.B http://www.gccxml.org
|
244
|
+
before posting questions to the list.
|
245
|
+
.SH AUTHOR
|
246
|
+
This manual page was generated by "gccxml --man".
|