• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2
3<!--
4Copyright (C) 2008-2018 Lorenzo Caminiti
5Distributed under the Boost Software License, Version 1.0 (see accompanying
6file LICENSE_1_0.txt or a copy at http://www.boost.org/LICENSE_1_0.txt).
7See: http://www.boost.org/doc/libs/release/libs/contract/doc/html/index.html
8-->
9
10<!--
11PLEASE VALIDATE THE XML BEFORE COMMITTING YOUR CHANGES!
12
13For example, cut-n-paste <library> tag below into main file
14"boost/status/explicit-failures-markup.xml" and validate as indicated in that
15main file.
16-->
17
18<explicit-failures-markup>
19    <!-- contract -->
20    <library name="contract">
21        <mark-unusable>
22            <toolset name="clang-darwin-ubsan"/>
23            <note author="Lorenzo Caminiti">
24                On this compiler, Boost.Function gives a run-time error when
25                calling non-nullary lambdas as used by the tests of this library
26                to program contract failure handlers.
27                It might still be possible to use this library on this compiler
28                using default contract failure handlers or programming custom
29                contract failure handlers but without using non-nullary lambdas
30                (however, the authors did not confirm that).
31            </note>
32        </mark-unusable>
33        <mark-unusable>
34            <toolset name="gcc-3.*"/>
35            <toolset name="gcc-4.*"/>
36            <note author="Lorenzo Caminiti">
37                Even tests that do not use C++11 lambda functions fail on this
38                compiler because it incorrectly attempts an extra copy when
39                objects are constructed using `boost::check c = ...`.
40                This is fixed in MinGW GCC 4.3.
41            </note>
42        </mark-unusable>
43        <mark-unusable>
44            <toolset name="msvc-7.*"/>
45            <note author="Lorenzo Caminiti">
46                Even tests that do not use C++11 lambda functions fail on this
47                compiler because of a number of issues (Boost.Exception is not
48                supported on this compiler but it is used by this library
49                implementation, some aspects of `friend` and `volatile` are not
50                properly implemented on this compiler, etc.).
51                These specific issues are fixed in MSVC 9.0 (but only MSVC 11.0
52                has adequate lambda function support that makes this library
53                actually usable).
54            </note>
55        </mark-unusable>
56        <mark-expected-failures>
57            <test name="disable-audit"/>
58            <toolset name="gcc-4.9"/>
59            <toolset name="clang-linux-3.6"/>
60            <toolset name="clang-linux-3.7"/>
61            <toolset name="clang-linux-3.8"/>
62            <note author="Lorenzo Caminiti">
63                This test fails on this compiler because of a bug with
64                exceptions (see http://grokbase.com/t/gg/android-ndk/1656csqqtp/assertion-ttypeencoding-dw-eh-pe-absptr-unexpected-ttypeencoding-failed).
65            </note>
66        </mark-expected-failures>
67        <mark-expected-failures>
68            <test name="invariant-ifdef"/>
69            <test name="specify-nothing"/>
70            <toolset name="clang-linux-3.6"/>
71            <toolset name="clang-linux-3.7"/>
72            <toolset name="clang-linux-3.8"/>
73            <note author="Lorenzo Caminiti">
74                This test fails on this compiler because of a bug in its STL
75                implementation (undefined references to
76                `std::ios_base::failure::failure`).
77            </note>
78        </mark-expected-failures>
79        <mark-expected-failures>
80            <test name="destructor-throwing_old"/>
81            <test name="destructor-throwing_post"/>
82            <test name="public_function-decl_pre_all"/>
83            <test name="public_function-decl_pre_ends"/>
84            <test name="public_function-smoke"/>
85            <test name="public_function-throwing_post"/>
86            <test name="public_function-virtual"/>
87            <test name="public_function-virtual_branch"/>
88            <toolset name="clang-linux-*~gnu++*"/>
89            <note author="Lorenzo Caminiti">
90                This test fails because of a libcxxrt bug on Clang for FreeBSD
91                which causes `std::uncaught_exception` to not work properly on
92                re-throws (see https://github.com/pathscale/libcxxrt/issues/49).
93            </note>
94        </mark-expected-failures>
95        <mark-expected-failures>
96            <test name="old-if_copyable"/>
97            <test name="old-if_copyable_macro"/>
98            <toolset name="gcc-4.6*"/>
99            <toolset name="gcc-4.7*"/>
100            <toolset name="msvc-10.*"/>
101            <toolset name="msvc-11.*"/>
102            <note author="Lorenzo Caminiti">
103                This test fails because this complier does not properly
104                implement SFINAE giving incorrect errors on substitution
105                failures for private members.
106                This seems to be fixed in GCC 4.8 and MSVC 12.0.
107            </note>
108        </mark-expected-failures>
109        <mark-expected-failures>
110            <test name="public_function-protected_error"/>
111            <toolset name="clang-linux-3.0~*"/>
112            <toolset name="gcc-4.6*"/>
113            <note author="Lorenzo Caminiti">
114                This test fails because SFINAE on this complier seems to not
115                fail as it should when a derived class tries to call a
116                protected member function on a base class object via a function
117                pointer instead of via inheritance.
118                This seems to be fixed in Clang 3.1, and to be specific to
119                version 4.6 of GCC.
120            </note>
121        </mark-expected-failures>
122        <mark-expected-failures>
123            <test name="public_function-virtual_access_multi"/>
124            <toolset name="gcc-4.6*"/>
125            <toolset name="gcc-4.7*"/>
126            <note author="Lorenzo Caminiti">
127                This test fails because this compiler seems to incorrectly check
128                access level of members in base classes in a context when only
129                derived class members are used.
130                This seems to be fixed in GCC 4.8 (possibly related to
131                https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57973).
132            </note>
133        </mark-expected-failures>
134        <mark-expected-failures>
135            <test name="constructor-throwing_body"/>
136            <test name="destructor-decl_entry_inv_all"/>
137            <test name="destructor-decl_entry_inv_ends"/>
138            <test name="destructor-decl_entry_static_inv_all"/>
139            <test name="destructor-decl_entry_static_inv_ends"/>
140            <test name="destructor-decl_entry_static_inv_mid"/>
141            <test name="destructor-decl_exit_static_inv_all"/>
142            <test name="destructor-decl_exit_static_inv_ends"/>
143            <test name="destructor-decl_exit_static_inv_mid"/>
144            <test name="destructor-throwing_body"/>
145            <test name="destructor-throwing_old"/>
146            <test name="destructor-throwing_post"/>
147            <test name="function-ifdef_macro"/>
148            <test name="function-throwing_body"/>
149            <test name="public_function-static_throwing_body"/>
150            <test name="public_function-throwing_body"/>
151            <test name="public_function-throwing_body_virtual"/>
152            <test name="public_function-throwing_body_virtual_branch"/>
153            <toolset name="qcc-4.7*"/>
154            <note author="Lorenzo Caminiti">
155                This test fails because `std::unchaught_exception` seems to
156                always return zero on this compiler (even if the authors could
157                not find a direct reference to this possible compiler issue
158                online).
159            </note>
160        </mark-expected-failures>
161        <mark-expected-failures>
162            <test name="invariant-ifdef"/>
163            <test name="invariant-ifdef_macro"/>
164            <test name="invariant-volatile_error"/>
165            <toolset name="msvc-8.*"/>
166            <note author="Lorenzo Caminiti">
167                This test fails because this complier seems to dispatch calls
168                incorrectly when both `const` and `const volatile` overloads
169                are present (even if the authors could not find a direct
170                reference to this possible compiler issue online).
171                This is fixed in MSVC 9.0 (but only MSVC 11.0 has adequate
172                lambda function support).
173            </note>
174        </mark-expected-failures>
175        <mark-expected-failures>
176            <test name="call_if-no_equal_call_if"/>
177            <toolset name="msvc-10.*"/>
178            <note author="Lorenzo Caminiti">
179                This test fails because MSVC 10.0 is not able to properly deduce
180                a template specialization.
181                This is fixed in MSVC 11.0.
182            </note>
183        </mark-expected-failures>
184        <mark-expected-failures>
185            <test name="constructor-ifdef_macro"/>
186            <test name="constructor-smoke"/>
187            <toolset name="msvc-10.*"/>
188            <note author="Lorenzo Caminiti">
189                This test fails because of a MSVC 10.0 bug with lambdas within
190                template class initialization list.
191                This can be worked around using a functor bind instead of a
192                lambda, but it is fixed in MSVC 11.0.
193            </note>
194        </mark-expected-failures>
195        <mark-expected-failures>
196            <test name="destructor-smoke"/>
197            <toolset name="msvc-10.*"/>
198            <note author="Lorenzo Caminiti">
199                This test fails because of a MSVC 10.0 bug for which lambdas
200                cannot access typedefs declared within classes.
201                This can be worked around declaring typedefs outside of
202                classes, but it is fixed in MSVC 11.0.
203            </note>
204        </mark-expected-failures>
205        <mark-expected-failures>
206            <test name="disable-no_post_except_lib"/>
207            <test name="disable-no_post_except_unit"/>
208            <test name="disable-nothing_for_pre_prog"/>
209            <test name="disable-other_assertions_lib"/>
210            <test name="disable-other_assertions_prog"/>
211            <test name="disable-other_assertions_unit"/>
212            <toolset name="msvc-10.*"/>
213            <note author="Lorenzo Caminiti">
214                This test fails because of an internal MSVC 10.0 compiler bug.
215                This is fixed in MSVC 11.0.
216            </note>
217        </mark-expected-failures>
218    </library>
219</explicit-failures-markup>
220
221