Commit bbcfe54a by Benjamin Kosnik

eh_terminate.cc: Fixes for -fno-exceptions.

2009-09-28  Benjamin Kosnik  <bkoz@redhat.com>

	*  libsupc++/eh_terminate.cc: Fixes for -fno-exceptions.
	*  libsupc++/vec.cc: Same.
	*  libsupc++/vterminate.cc: Same.
	*  libsupc++/new_opnt.cc: Same.

From-SVN: r152258
parent b80b0fd9
2009-09-28 Benjamin Kosnik <bkoz@redhat.com>
* libsupc++/eh_terminate.cc: Fixes for -fno-exceptions.
* libsupc++/vec.cc: Same.
* libsupc++/vterminate.cc: Same.
* libsupc++/new_opnt.cc: Same.
2009-09-28 Johannes Singler <singler@ira.uka.de> 2009-09-28 Johannes Singler <singler@ira.uka.de>
* include/parallel/for_each_selectors.h: Remove obsolete comment. * include/parallel/for_each_selectors.h: Remove obsolete comment.
2009-09-26 Paolo Carlini <paolo.carlini@oracle.com> 2009-09-26 Paolo Carlini <paolo.carlini@oracle.com>
* doc/html/ext/lwg-active.html: Update to Revision R66. * doc/html/ext/lwg-active.html: Update to Revision R66.
* doc/html/ext/lwg-closed.html: Likewise. * doc/html/ext/lwg-closed.html: Likewise.
* doc/html/ext/lwg-defects: Likewise. * doc/html/ext/lwg-defects: Likewise.
* doc/xml/manual/intro.xml: Update entry for DR 853. * doc/xml/manual/intro.xml: Update entry for DR 853.
...@@ -17,64 +24,64 @@ ...@@ -17,64 +24,64 @@
2009-09-25 Johannes Singler <singler@ira.uka.de> 2009-09-25 Johannes Singler <singler@ira.uka.de>
* include/parallel/include/parallel/checkers.h * include/parallel/include/parallel/checkers.h
(is_sorted_failure, is_sorted_print_failures): Remove (unused). (is_sorted_failure, is_sorted_print_failures): Remove (unused).
(__is_sorted): Remove default parameter for _Compare; remove (__is_sorted): Remove default parameter for _Compare; remove
inappropriate printf. inappropriate printf.
2009-09-25 Johannes Singler <singler@ira.uka.de> 2009-09-25 Johannes Singler <singler@ira.uka.de>
* include/parallel/base.h: Comment on presence of min/max duplicates. * include/parallel/base.h: Comment on presence of min/max duplicates.
2009-09-25 Johannes Singler <singler@ira.uka.de> 2009-09-25 Johannes Singler <singler@ira.uka.de>
* include/parallel/partition.h (__parallel_nth_element): * include/parallel/partition.h (__parallel_nth_element):
Correct comment. Correct comment.
2009-09-24 Johannes Singler <singler@ira.uka.de> 2009-09-24 Johannes Singler <singler@ira.uka.de>
* include/parallel/algo.h: Uglify internal identifiers; * include/parallel/algo.h: Uglify internal identifiers;
correct line breaks. correct line breaks.
* include/parallel/for_each.h: Likewise. * include/parallel/for_each.h: Likewise.
* include/parallel/numeric: Likewise. * include/parallel/numeric: Likewise.
* include/parallel/omp_loop.h: Likewise. * include/parallel/omp_loop.h: Likewise.
* include/parallel/omp_loop_static.h: Likewise. * include/parallel/omp_loop_static.h: Likewise.
* include/parallel/par_loop.h: Likewise. * include/parallel/par_loop.h: Likewise.
* include/parallel/workstealing.h: Likewise. * include/parallel/workstealing.h: Likewise.
2009-09-24 Johannes Singler <singler@ira.uka.de> 2009-09-24 Johannes Singler <singler@ira.uka.de>
* include/parallel/base.h (_EqualFromLess): Move _Compare template * include/parallel/base.h (_EqualFromLess): Move _Compare template
parameter to the end as of others. parameter to the end as of others.
* include/parallel/algobase.h * include/parallel/algobase.h
(__lexicographical_compare_switch): Likewise. (__lexicographical_compare_switch): Likewise.
2009-09-23 Johannes Singler <singler@ira.uka.de> 2009-09-23 Johannes Singler <singler@ira.uka.de>
* include/parallel/algobase.h: Uglify internal identifiers; * include/parallel/algobase.h: Uglify internal identifiers;
correct line breaks. correct line breaks.
* include/parallel/algo.h: Likewise. * include/parallel/algo.h: Likewise.
* include/parallel/base.h: Likewise. * include/parallel/base.h: Likewise.
* include/parallel/equally_split.h: Likewise. * include/parallel/equally_split.h: Likewise.
* include/parallel/find.h: Likewise. * include/parallel/find.h: Likewise.
* include/parallel/find_selectors.h: Likewise. * include/parallel/find_selectors.h: Likewise.
* include/parallel/for_each_selectors.h: Likewise. * include/parallel/for_each_selectors.h: Likewise.
* include/parallel/list_partition.h: Likewise. * include/parallel/list_partition.h: Likewise.
* include/parallel/losertree.h: Likewise. * include/parallel/losertree.h: Likewise.
* include/parallel/merge.h: Likewise. * include/parallel/merge.h: Likewise.
* include/parallel/multiseq_selection.h: Likewise. * include/parallel/multiseq_selection.h: Likewise.
* include/parallel/multiway_merge.h: Likewise. * include/parallel/multiway_merge.h: Likewise.
* include/parallel/multiway_mergesort.h: Likewise. * include/parallel/multiway_mergesort.h: Likewise.
* include/parallel/numeric: Likewise. * include/parallel/numeric: Likewise.
* include/parallel/numericfwd.h: Likewise. * include/parallel/numericfwd.h: Likewise.
* include/parallel/omp_loop.h: Likewise. * include/parallel/omp_loop.h: Likewise.
* include/parallel/omp_loop_static.h: Likewise. * include/parallel/omp_loop_static.h: Likewise.
* include/parallel/par_loop.h: Likewise. * include/parallel/par_loop.h: Likewise.
* include/parallel/partition.h: Likewise. * include/parallel/partition.h: Likewise.
* include/parallel/random_shuffle.h: Likewise. * include/parallel/random_shuffle.h: Likewise.
* include/parallel/search.h: Likewise. * include/parallel/search.h: Likewise.
* include/parallel/sort.h: Likewise. * include/parallel/sort.h: Likewise.
* include/parallel/workstealing.h: Likewise. * include/parallel/workstealing.h: Likewise.
2009-09-21 Gerald Pfeifer <gerald@pfeifer.com> 2009-09-21 Gerald Pfeifer <gerald@pfeifer.com>
...@@ -108,150 +115,150 @@ ...@@ -108,150 +115,150 @@
2009-09-17 Johannes Singler <singler@ira.uka.de> 2009-09-17 Johannes Singler <singler@ira.uka.de>
* include/parallel/algobase.h: Replace tabs by spaces; * include/parallel/algobase.h: Replace tabs by spaces;
correct line breaks. correct line breaks.
* include/parallel/algorithmfwd.h: Likewise. * include/parallel/algorithmfwd.h: Likewise.
* include/parallel/balanced_quicksort.h: Likewise. * include/parallel/balanced_quicksort.h: Likewise.
* include/parallel/base.h: Likewise. * include/parallel/base.h: Likewise.
* include/parallel/checkers.h: Likewise. * include/parallel/checkers.h: Likewise.
* include/parallel/compatibility.h: Likewise. * include/parallel/compatibility.h: Likewise.
* include/parallel/equally_split.h: Likewise. * include/parallel/equally_split.h: Likewise.
* include/parallel/find.h: Likewise. * include/parallel/find.h: Likewise.
* include/parallel/for_each.h: Likewise. * include/parallel/for_each.h: Likewise.
* include/parallel/for_each_selectors.h: Likewise. * include/parallel/for_each_selectors.h: Likewise.
* include/parallel/iterator.h: Likewise. * include/parallel/iterator.h: Likewise.
* include/parallel/list_partition.h: Likewise. * include/parallel/list_partition.h: Likewise.
* include/parallel/losertree.h: Likewise. * include/parallel/losertree.h: Likewise.
* include/parallel/merge.h: Likewise. * include/parallel/merge.h: Likewise.
* include/parallel/multiseq_selection.h: Likewise. * include/parallel/multiseq_selection.h: Likewise.
* include/parallel/multiway_merge.h: Likewise. * include/parallel/multiway_merge.h: Likewise.
* include/parallel/multiway_mergesort.h: Likewise. * include/parallel/multiway_mergesort.h: Likewise.
* include/parallel/numeric: Likewise. * include/parallel/numeric: Likewise.
* include/parallel/numericfwd.h: Likewise. * include/parallel/numericfwd.h: Likewise.
* include/parallel/omp_loop.h: Likewise. * include/parallel/omp_loop.h: Likewise.
* include/parallel/omp_loop_static.h: Likewise. * include/parallel/omp_loop_static.h: Likewise.
* include/parallel/par_loop.h: Likewise. * include/parallel/par_loop.h: Likewise.
* include/parallel/partial_sum.h: Likewise. * include/parallel/partial_sum.h: Likewise.
* include/parallel/partition.h: Likewise. * include/parallel/partition.h: Likewise.
* include/parallel/queue.h: Likewise. * include/parallel/queue.h: Likewise.
* include/parallel/quicksort.h: Likewise. * include/parallel/quicksort.h: Likewise.
* include/parallel/random_number.h: Likewise. * include/parallel/random_number.h: Likewise.
* include/parallel/random_shuffle.h: Likewise. * include/parallel/random_shuffle.h: Likewise.
* include/parallel/search.h: Likewise. * include/parallel/search.h: Likewise.
* include/parallel/set_operations.h: Likewise. * include/parallel/set_operations.h: Likewise.
* include/parallel/settings.h: Likewise. * include/parallel/settings.h: Likewise.
* include/parallel/sort.h: Likewise. * include/parallel/sort.h: Likewise.
* include/parallel/types.h: Likewise. * include/parallel/types.h: Likewise.
* include/parallel/unique_copy.h: Likewise. * include/parallel/unique_copy.h: Likewise.
* include/parallel/workstealing.h: Likewise. * include/parallel/workstealing.h: Likewise.
* include/parallel/algo.h: Likewise; * include/parallel/algo.h: Likewise;
shorten _ForwardIterator to _FIterator. shorten _ForwardIterator to _FIterator.
* include/parallel/find_selectors.h: Likewise. * include/parallel/find_selectors.h: Likewise.
2009-09-16 Johannes Singler <singler@ira.uka.de> 2009-09-16 Johannes Singler <singler@ira.uka.de>
* include/parallel/base.h: Correct some comments accidentally changed * include/parallel/base.h: Correct some comments accidentally changed
during uglification. during uglification.
* include/parallel/find.h: Likewise. * include/parallel/find.h: Likewise.
* include/parallel/find_selectors.h: Likewise. * include/parallel/find_selectors.h: Likewise.
* include/parallel/multiway_merge.h: Likewise. * include/parallel/multiway_merge.h: Likewise.
* include/parallel/multiway_mergesort.h: Likewise. * include/parallel/multiway_mergesort.h: Likewise.
* include/parallel/partial_sum.h: Likewise. * include/parallel/partial_sum.h: Likewise.
* include/parallel/partition.h: Likewise. * include/parallel/partition.h: Likewise.
* include/parallel/queue.h: Likewise. * include/parallel/queue.h: Likewise.
* include/parallel/random_shuffle.h: Likewise. * include/parallel/random_shuffle.h: Likewise.
* include/parallel/settings.h: Likewise. * include/parallel/settings.h: Likewise.
* include/parallel/sort.h: Likewise. * include/parallel/sort.h: Likewise.
* include/parallel/tags.h: Likewise. * include/parallel/tags.h: Likewise.
* include/parallel/workstealing.h: Likewise. * include/parallel/workstealing.h: Likewise.
2009-09-16 Johannes Singler <singler@ira.uka.de> 2009-09-16 Johannes Singler <singler@ira.uka.de>
* include/parallel/base.h (_EqualFromLess): * include/parallel/base.h (_EqualFromLess):
Correct uglification of member variables and method arguments. Correct uglification of member variables and method arguments.
* include/parallel/balanced_quicksort.h (_QSBThreadLocal): Likewise. * include/parallel/balanced_quicksort.h (_QSBThreadLocal): Likewise.
* include/parallel/find_selectors.h (__find_first_of_selector): * include/parallel/find_selectors.h (__find_first_of_selector):
Likewise. Likewise.
* include/parallel/iterator.h (_IteratorTriple): Likewise. * include/parallel/iterator.h (_IteratorTriple): Likewise.
* include/parallel/multiseq_selection.h * include/parallel/multiseq_selection.h
(_Lexicographic, _LexicographicReverse): Likewise. (_Lexicographic, _LexicographicReverse): Likewise.
* include/parallel/multiway_mergesort.h (_Piece, _PMWMSSortingData): * include/parallel/multiway_mergesort.h (_Piece, _PMWMSSortingData):
Likewise. Likewise.
* include/parallel/random_number.h (_RandomNumber): Likewise. * include/parallel/random_number.h (_RandomNumber): Likewise.
* include/parallel/random_shuffle.h (_DRandomShufflingGlobalData): * include/parallel/random_shuffle.h (_DRandomShufflingGlobalData):
Likewise. Likewise.
* include/parallel/set_operations.h (__symmetric_difference_func, * include/parallel/set_operations.h (__symmetric_difference_func,
__difference_func, __intersection_func, __union_func, __difference_func, __intersection_func, __union_func,
parallel_set_union, parallel_set_intersection, parallel_set_difference, parallel_set_union, parallel_set_intersection, parallel_set_difference,
parallel_set_symmetric_difference): Likewise. parallel_set_symmetric_difference): Likewise.
* include/parallel/tags.h (parallel_tag): Likewise. * include/parallel/tags.h (parallel_tag): Likewise.
* include/parallel/workstealing.h (_Job): Likewise. * include/parallel/workstealing.h (_Job): Likewise.
* include/parallel/multiway_merge.h * include/parallel/multiway_merge.h
(__multiway_merge_k_variant_sentinel_switch:operator()) (__multiway_merge_k_variant_sentinel_switch:operator())
correct uglification of _*LoserTree*. correct uglification of _*LoserTree*.
* include/parallel/losertree.h (_*LoserTree*): Likewise; correct * include/parallel/losertree.h (_*LoserTree*): Likewise; correct
uglification of member variables and method arguments. uglification of member variables and method arguments.
* include/parallel/par_loop.h: Correct uglification of finish_iterator. * include/parallel/par_loop.h: Correct uglification of finish_iterator.
* include/parallel/for_each_selectors.h: Likewise. * include/parallel/for_each_selectors.h: Likewise.
* include/parallel/omp_loop.h: Likewise. * include/parallel/omp_loop.h: Likewise.
* include/parallel/algo.h: Likewise; uglify c_rand_number. * include/parallel/algo.h: Likewise; uglify c_rand_number.
2009-09-16 Johannes Singler <singler@ira.uka.de> 2009-09-16 Johannes Singler <singler@ira.uka.de>
* include/parallel/base.h (_PseudoSequenceIterator, _PseudoSequence): * include/parallel/base.h (_PseudoSequenceIterator, _PseudoSequence):
Replace redundant _Self. Replace redundant _Self.
* include/parallel/iterator.h (_IteratorPair, _IteratorTriple): * include/parallel/iterator.h (_IteratorPair, _IteratorTriple):
Replace redundant _Self. Replace redundant _Self.
* include/parallel/algo.h: Correct accidental _Self in comments. * include/parallel/algo.h: Correct accidental _Self in comments.
* include/parallel/losertree.h: Likewise. * include/parallel/losertree.h: Likewise.
* include/parallel/multiway_merge.h: Likewise. * include/parallel/multiway_merge.h: Likewise.
* include/parallel/random_shuffle.h: Likewise. * include/parallel/random_shuffle.h: Likewise.
2009-09-16 Johannes Singler <singler@ira.uka.de> 2009-09-16 Johannes Singler <singler@ira.uka.de>
* include/parallel/algobase.h: Uglify internal identifiers. * include/parallel/algobase.h: Uglify internal identifiers.
* include/parallel/algo.h: Likewise. * include/parallel/algo.h: Likewise.
* include/parallel/algorithm: Likewise. * include/parallel/algorithm: Likewise.
* include/parallel/algorithmfwd.h: Likewise. * include/parallel/algorithmfwd.h: Likewise.
* include/parallel/balanced_quicksort.h: Likewise. * include/parallel/balanced_quicksort.h: Likewise.
* include/parallel/base.h: Likewise. * include/parallel/base.h: Likewise.
* include/parallel/basic_iterator.h: Likewise. * include/parallel/basic_iterator.h: Likewise.
* include/parallel/checkers.h: Likewise. * include/parallel/checkers.h: Likewise.
* include/parallel/compatibility.h: Likewise. * include/parallel/compatibility.h: Likewise.
* include/parallel/compiletime_settings.: Likewise. * include/parallel/compiletime_settings.: Likewise.
* include/parallel/equally_split.h: Likewise. * include/parallel/equally_split.h: Likewise.
* include/parallel/features.h: Likewise. * include/parallel/features.h: Likewise.
* include/parallel/find.h: Likewise. * include/parallel/find.h: Likewise.
* include/parallel/find_selectors.h: Likewise. * include/parallel/find_selectors.h: Likewise.
* include/parallel/for_each.h: Likewise. * include/parallel/for_each.h: Likewise.
* include/parallel/for_each_selectors.h: Likewise. * include/parallel/for_each_selectors.h: Likewise.
* include/parallel/iterator.h: Likewise. * include/parallel/iterator.h: Likewise.
* include/parallel/list_partition.h: Likewise. * include/parallel/list_partition.h: Likewise.
* include/parallel/losertree.h: Likewise. * include/parallel/losertree.h: Likewise.
* include/parallel/merge.h: Likewise. * include/parallel/merge.h: Likewise.
* include/parallel/multiseq_selection.h: Likewise. * include/parallel/multiseq_selection.h: Likewise.
* include/parallel/multiway_merge.h: Likewise. * include/parallel/multiway_merge.h: Likewise.
* include/parallel/multiway_mergesort.h: Likewise. * include/parallel/multiway_mergesort.h: Likewise.
* include/parallel/numeric: Likewise. * include/parallel/numeric: Likewise.
* include/parallel/numericfwd.h: Likewise. * include/parallel/numericfwd.h: Likewise.
* include/parallel/omp_loop.h: Likewise. * include/parallel/omp_loop.h: Likewise.
* include/parallel/omp_loop_static.h: Likewise. * include/parallel/omp_loop_static.h: Likewise.
* include/parallel/parallel.h: Likewise. * include/parallel/parallel.h: Likewise.
* include/parallel/par_loop.h: Likewise. * include/parallel/par_loop.h: Likewise.
* include/parallel/partial_sum.h: Likewise. * include/parallel/partial_sum.h: Likewise.
* include/parallel/partition.h: Likewise. * include/parallel/partition.h: Likewise.
* include/parallel/queue.h: Likewise. * include/parallel/queue.h: Likewise.
* include/parallel/quicksort.h: Likewise. * include/parallel/quicksort.h: Likewise.
* include/parallel/random_number.h: Likewise. * include/parallel/random_number.h: Likewise.
* include/parallel/random_shuffle.h: Likewise. * include/parallel/random_shuffle.h: Likewise.
* include/parallel/search.h: Likewise. * include/parallel/search.h: Likewise.
* include/parallel/set_operations.h: Likewise. * include/parallel/set_operations.h: Likewise.
* include/parallel/settings.h: Likewise. * include/parallel/settings.h: Likewise.
* include/parallel/sort.h: Likewise. * include/parallel/sort.h: Likewise.
* include/parallel/tags.h: Likewise. * include/parallel/tags.h: Likewise.
* include/parallel/types.h: Likewise. * include/parallel/types.h: Likewise.
* include/parallel/unique_copy.h: Likewise. * include/parallel/unique_copy.h: Likewise.
* include/parallel/workstealing.h: Likewise. * include/parallel/workstealing.h: Likewise.
2009-09-14 Paolo Carlini <paolo.carlini@oracle.com> 2009-09-14 Paolo Carlini <paolo.carlini@oracle.com>
...@@ -268,11 +275,11 @@ ...@@ -268,11 +275,11 @@
2009-09-11 Johannes Singler <singler@ira.uka.de> 2009-09-11 Johannes Singler <singler@ira.uka.de>
* include/parallel/multiway_merge.h * include/parallel/multiway_merge.h
(multiway_merge_exact_splitting): Deallocate borders correctly. (multiway_merge_exact_splitting): Deallocate borders correctly.
(parallel_multiway_merge): Remove unnecessarily complicated (parallel_multiway_merge): Remove unnecessarily complicated
allocation, random access iterators are default-constructible; allocation, random access iterators are default-constructible;
deallocate ne_seqs correctly. deallocate ne_seqs correctly.
2009-09-11 Paolo Carlini <paolo.carlini@oracle.com> 2009-09-11 Paolo Carlini <paolo.carlini@oracle.com>
...@@ -308,7 +315,7 @@ ...@@ -308,7 +315,7 @@
* configure: Rebuilt with modified libtool.m4. * configure: Rebuilt with modified libtool.m4.
2009-09-07 H.J. Lu <hongjiu.lu@intel.com> 2009-09-07 H.J. Lu <hongjiu.lu@intel.com>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de> Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR libstdc++/41280 PR libstdc++/41280
* configure.ac: Run "${multi_basedir}/config-ml.in" to generate * configure.ac: Run "${multi_basedir}/config-ml.in" to generate
......
...@@ -34,12 +34,13 @@ using namespace __cxxabiv1; ...@@ -34,12 +34,13 @@ using namespace __cxxabiv1;
void void
__cxxabiv1::__terminate (std::terminate_handler handler) throw () __cxxabiv1::__terminate (std::terminate_handler handler) throw ()
{ {
try { __try
handler (); {
std::abort (); handler ();
} catch (...) { std::abort ();
std::abort (); }
} __catch(...)
{ std::abort (); }
} }
void void
......
...@@ -47,11 +47,11 @@ operator new (std::size_t sz, const std::nothrow_t&) throw() ...@@ -47,11 +47,11 @@ operator new (std::size_t sz, const std::nothrow_t&) throw()
new_handler handler = __new_handler; new_handler handler = __new_handler;
if (! handler) if (! handler)
return 0; return 0;
try __try
{ {
handler (); handler ();
} }
catch (bad_alloc &) __catch(const bad_alloc&)
{ {
return 0; return 0;
} }
......
...@@ -95,12 +95,12 @@ namespace __cxxabiv1 ...@@ -95,12 +95,12 @@ namespace __cxxabiv1
reinterpret_cast <std::size_t *> (base)[-2] = element_size; reinterpret_cast <std::size_t *> (base)[-2] = element_size;
#endif #endif
} }
try __try
{ {
__cxa_vec_ctor(base, element_count, element_size, __cxa_vec_ctor(base, element_count, element_size,
constructor, destructor); constructor, destructor);
} }
catch (...) __catch(...)
{ {
{ {
uncatch_exception ue; uncatch_exception ue;
...@@ -136,12 +136,12 @@ namespace __cxxabiv1 ...@@ -136,12 +136,12 @@ namespace __cxxabiv1
reinterpret_cast <std::size_t *> (base)[-2] = element_size; reinterpret_cast <std::size_t *> (base)[-2] = element_size;
#endif #endif
} }
try __try
{ {
__cxa_vec_ctor(base, element_count, element_size, __cxa_vec_ctor(base, element_count, element_size,
constructor, destructor); constructor, destructor);
} }
catch (...) __catch(...)
{ {
{ {
uncatch_exception ue; uncatch_exception ue;
...@@ -164,13 +164,13 @@ namespace __cxxabiv1 ...@@ -164,13 +164,13 @@ namespace __cxxabiv1
std::size_t ix = 0; std::size_t ix = 0;
char *ptr = static_cast<char *>(array_address); char *ptr = static_cast<char *>(array_address);
try __try
{ {
if (constructor) if (constructor)
for (; ix != element_count; ix++, ptr += element_size) for (; ix != element_count; ix++, ptr += element_size)
constructor(ptr); constructor(ptr);
} }
catch (...) __catch(...)
{ {
{ {
uncatch_exception ue; uncatch_exception ue;
...@@ -194,14 +194,14 @@ namespace __cxxabiv1 ...@@ -194,14 +194,14 @@ namespace __cxxabiv1
char *dest_ptr = static_cast<char *>(dest_array); char *dest_ptr = static_cast<char *>(dest_array);
char *src_ptr = static_cast<char *>(src_array); char *src_ptr = static_cast<char *>(src_array);
try __try
{ {
if (constructor) if (constructor)
for (; ix != element_count; for (; ix != element_count;
ix++, src_ptr += element_size, dest_ptr += element_size) ix++, src_ptr += element_size, dest_ptr += element_size)
constructor(dest_ptr, src_ptr); constructor(dest_ptr, src_ptr);
} }
catch (...) __catch(...)
{ {
{ {
uncatch_exception ue; uncatch_exception ue;
...@@ -226,7 +226,7 @@ namespace __cxxabiv1 ...@@ -226,7 +226,7 @@ namespace __cxxabiv1
ptr += element_count * element_size; ptr += element_count * element_size;
try __try
{ {
while (ix--) while (ix--)
{ {
...@@ -234,7 +234,7 @@ namespace __cxxabiv1 ...@@ -234,7 +234,7 @@ namespace __cxxabiv1
destructor(ptr); destructor(ptr);
} }
} }
catch (...) __catch(...)
{ {
{ {
uncatch_exception ue; uncatch_exception ue;
...@@ -261,7 +261,7 @@ namespace __cxxabiv1 ...@@ -261,7 +261,7 @@ namespace __cxxabiv1
ptr += element_count * element_size; ptr += element_count * element_size;
try __try
{ {
while (ix--) while (ix--)
{ {
...@@ -269,7 +269,7 @@ namespace __cxxabiv1 ...@@ -269,7 +269,7 @@ namespace __cxxabiv1
destructor(ptr); destructor(ptr);
} }
} }
catch (...) __catch(...)
{ {
std::terminate(); std::terminate();
} }
...@@ -304,12 +304,12 @@ namespace __cxxabiv1 ...@@ -304,12 +304,12 @@ namespace __cxxabiv1
{ {
std::size_t element_count = reinterpret_cast<std::size_t *>(base)[-1]; std::size_t element_count = reinterpret_cast<std::size_t *>(base)[-1];
base -= padding_size; base -= padding_size;
try __try
{ {
__cxa_vec_dtor(array_address, element_count, element_size, __cxa_vec_dtor(array_address, element_count, element_size,
destructor); destructor);
} }
catch (...) __catch(...)
{ {
{ {
uncatch_exception ue; uncatch_exception ue;
...@@ -339,12 +339,12 @@ namespace __cxxabiv1 ...@@ -339,12 +339,12 @@ namespace __cxxabiv1
std::size_t element_count = reinterpret_cast<std::size_t *> (base)[-1]; std::size_t element_count = reinterpret_cast<std::size_t *> (base)[-1];
base -= padding_size; base -= padding_size;
size = element_count * element_size + padding_size; size = element_count * element_size + padding_size;
try __try
{ {
__cxa_vec_dtor(array_address, element_count, element_size, __cxa_vec_dtor(array_address, element_count, element_size,
destructor); destructor);
} }
catch (...) __catch(...)
{ {
{ {
uncatch_exception ue; uncatch_exception ue;
......
...@@ -75,9 +75,9 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -75,9 +75,9 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
// If the exception is derived from std::exception, we can // If the exception is derived from std::exception, we can
// give more information. // give more information.
try { __throw_exception_again; } __try { __throw_exception_again; }
#ifdef __EXCEPTIONS #ifdef __EXCEPTIONS
catch (exception &exc) __catch(const exception& exc)
{ {
char const *w = exc.what(); char const *w = exc.what();
fputs(" what(): ", stderr); fputs(" what(): ", stderr);
...@@ -85,7 +85,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -85,7 +85,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
fputs("\n", stderr); fputs("\n", stderr);
} }
#endif #endif
catch (...) { } __catch(...) { }
} }
else else
fputs("terminate called without an active exception\n", stderr); fputs("terminate called without an active exception\n", stderr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment