Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / contract / meta / explicit-failures-markup.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <!--
4 Copyright (C) 2008-2018 Lorenzo Caminiti
5 Distributed under the Boost Software License, Version 1.0 (see accompanying
6 file LICENSE_1_0.txt or a copy at http://www.boost.org/LICENSE_1_0.txt).
7 See: http://www.boost.org/doc/libs/release/libs/contract/doc/html/index.html
8 -->
9
10 <!--
11 PLEASE VALIDATE THE XML BEFORE COMMITTING YOUR CHANGES!
12
13 For example, cut-n-paste <library> tag below into main file
14 "boost/status/explicit-failures-markup.xml" and validate as indicated in that
15 main 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