Fixes a small omission in libcxx that prevents libcxx being built when -DLIBCXX_ENABLE_EXCEPTIONS=0 is used.
I will do a follow-up patch to introduce the new libc++ build to the buildbot.
Paths
| Differential D14292
[libcxx] Make it possible to build a no-exceptions variant of libcxx. ClosedPublic Authored by rmaprath on Nov 3 2015, 10:13 AM.
Details
Summary Fixes a small omission in libcxx that prevents libcxx being built when -DLIBCXX_ENABLE_EXCEPTIONS=0 is used. I will do a follow-up patch to introduce the new libc++ build to the buildbot.
Diff Detail Event TimelineComment Actions Patch updated to add XFAILS for all those tests that are failing on the new (-fno-exceptions) library variant. Follow-up patches will progressively un-XFAIL these tests (i.e. adapt them to cope with the new library variant). This revision is now accepted and ready to land.Nov 9 2015, 7:24 AM Comment Actions Thanks Jon! Committed as r252598. The current buildbots are happy (except for the ARM one, which seem to have gone away). I will update D14293 to include the new runs. Cheers,
Revision Contents
Diff 39541 src/future.cpp
test/libcxx/containers/sequences/vector/asan_throw.pass.cpp
test/libcxx/experimental/containers/sequences/dynarray/dynarray.cons/default.pass.cpp
test/libcxx/experimental/containers/sequences/dynarray/dynarray.cons/default_throws_bad_alloc.pass.cpp
test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/at.pass.cpp
test/std/containers/associative/map/map.access/at.pass.cpp
test/std/containers/sequences/array/at.pass.cpp
test/std/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp
test/std/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp
test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp
test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp
test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp
test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp
test/std/containers/sequences/list/list.modifiers/push_back_exception_safety.pass.cpp
test/std/containers/sequences/list/list.modifiers/push_front_exception_safety.pass.cpp
test/std/containers/sequences/vector/vector.modifiers/push_back_exception_safety.pass.cpp
test/std/containers/unord/unord.map/unord.map.elem/at.pass.cpp
test/std/depr/depr.c.headers/uchar_h.pass.cpp
test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp
test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp
test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp
test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
test/std/experimental/optional/optional.object/optional.object.ctor/const_T.pass.cpp
test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp
test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp
test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp
test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp
test/std/experimental/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp
test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp
test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp
test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp
test/std/experimental/optional/optional.specalg/swap.pass.cpp
test/std/experimental/string.view/string.view.access/at.pass.cpp
test/std/experimental/string.view/string.view.ops/compare.pointer_size.pass.cpp
test/std/experimental/string.view/string.view.ops/compare.size_size_sv.pass.cpp
test/std/experimental/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
test/std/experimental/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
test/std/experimental/string.view/string.view.ops/copy.pass.cpp
test/std/experimental/string.view/string.view.ops/substr.pass.cpp
test/std/input.output/iostream.format/output.streams/ostream_sentry/destruct.pass.cpp
test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp
test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp
test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp
test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp
test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp
test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp
test/std/language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp
test/std/language.support/support.dynamic/new.delete/new.delete.single/new_nothrow.pass.cpp
test/std/language.support/support.exception/except.nested/assign.pass.cpp
test/std/language.support/support.exception/except.nested/ctor_copy.pass.cpp
test/std/language.support/support.exception/except.nested/ctor_default.pass.cpp
test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp
test/std/language.support/support.exception/except.nested/rethrow_nested.pass.cpp
test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp
test/std/language.support/support.exception/propagation/current_exception.pass.cpp
test/std/language.support/support.exception/propagation/make_exception_ptr.pass.cpp
test/std/language.support/support.exception/propagation/rethrow_exception.pass.cpp
test/std/language.support/support.exception/uncaught/uncaught_exception.pass.cpp
test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp
test/std/localization/locale.categories/category.collate/locale.collate.byname/transform.pass.cpp
test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_err_string.pass.cpp
test/std/localization/locales/locale.global.templates/use_facet.pass.cpp
test/std/localization/locales/locale/locale.members/combine.pass.cpp
test/std/numerics/complex.number/complex.ops/complex_divide_complex.pass.cpp
test/std/numerics/rand/rand.device/ctor.pass.cpp
test/std/numerics/rand/rand.device/eval.pass.cpp
test/std/re/re.alg/re.alg.search/grep.pass.cpp
test/std/re/re.regex/re.regex.assign/assign.pass.cpp
test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp
test/std/re/re.regex/re.regex.construct/bad_repeat.pass.cpp
test/std/strings/basic.string/string.access/at.pass.cpp
test/std/strings/basic.string/string.capacity/capacity.pass.cpp
test/std/strings/basic.string/string.capacity/max_size.pass.cpp
test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp
test/std/strings/basic.string/string.capacity/reserve.pass.cpp
test/std/strings/basic.string/string.capacity/resize_size.pass.cpp
test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp
test/std/strings/basic.string/string.cons/substr.pass.cpp
test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp
test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp
test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp
test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp
test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp
test/std/strings/basic.string/string.ops/string_substr/substr.pass.cpp
test/std/strings/string.conversions/stod.pass.cpp
test/std/strings/string.conversions/stof.pass.cpp
test/std/strings/string.conversions/stoi.pass.cpp
test/std/strings/string.conversions/stol.pass.cpp
test/std/strings/string.conversions/stold.pass.cpp
test/std/strings/string.conversions/stoll.pass.cpp
test/std/strings/string.conversions/stoul.pass.cpp
test/std/strings/string.conversions/stoull.pass.cpp
test/std/thread/futures/futures.async/async.pass.cpp
test/std/thread/futures/futures.promise/dtor.pass.cpp
test/std/thread/futures/futures.promise/get_future.pass.cpp
test/std/thread/futures/futures.promise/move_assign.pass.cpp
test/std/thread/futures/futures.promise/move_ctor.pass.cpp
test/std/thread/futures/futures.promise/set_exception.pass.cpp
test/std/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp
test/std/thread/futures/futures.promise/set_lvalue.pass.cpp
test/std/thread/futures/futures.promise/set_rvalue.pass.cpp
test/std/thread/futures/futures.promise/set_value_const.pass.cpp
test/std/thread/futures/futures.promise/set_value_void.pass.cpp
test/std/thread/futures/futures.shared_future/dtor.pass.cpp
test/std/thread/futures/futures.shared_future/get.pass.cpp
test/std/thread/futures/futures.tas/futures.task.members/dtor.pass.cpp
test/std/thread/futures/futures.tas/futures.task.members/get_future.pass.cpp
test/std/thread/futures/futures.tas/futures.task.members/make_ready_at_thread_exit.pass.cpp
test/std/thread/futures/futures.tas/futures.task.members/operator.pass.cpp
test/std/thread/futures/futures.tas/futures.task.members/reset.pass.cpp
test/std/thread/futures/futures.unique_future/dtor.pass.cpp
test/std/thread/futures/futures.unique_future/get.pass.cpp
test/std/thread/thread.condition/thread.condition.condvarany/wait_terminates.sh.cpp
test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp
test/std/thread/thread.mutex/thread.lock.algorithm/try_lock.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock_for.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock_until.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/unlock.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/lock.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_for.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_until.pass.cpp
test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/unlock.pass.cpp
test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp
test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/F.pass.cpp
test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp
test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp
test/std/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp
test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp
test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp
test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_allocator_throw.pass.cpp
test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp
test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator_throw.pass.cpp
test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp
test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp
test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp
test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/weak_ptr.pass.cpp
test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp
test/std/utilities/template.bitset/bitset.cons/string_ctor.pass.cpp
test/std/utilities/template.bitset/bitset.members/flip_one.pass.cpp
test/std/utilities/template.bitset/bitset.members/reset_one.pass.cpp
test/std/utilities/template.bitset/bitset.members/set_one.pass.cpp
test/std/utilities/template.bitset/bitset.members/test.pass.cpp
|