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