1. 20 Nov, 2015 2 commits
    • Support __cxa_free_exception and fix exception handling. · 258c1d07
      	gcc/cp/
      	* except.c (do_free_exception): Use transactional wrapper.
      
      	libitm/
      	* testsuite/libitm.c++/eh-5.C: New.
      	* libitm.h (_ITM_cxa_free_exception): New.
      	* libitm.map (_ITM_cxa_free_exception): Add it.
      	* libitm.texi: Update ABI docs.
      	* libitm_i.h (gtm_transaction_cp::cxa_unthrown): Remove.
      	(gtm_transaction_cp::cxa_uncaught_count): Add.
      	(gtm_thread::cxa_unthrown): Remove.
      	(gtm_thread::cxa_uncaught_count_ptr): Add.
      	(gtm_thread::cxa_uncaught_count): Add.
      	(gtm_thread::drop_references_allocations): Rename to...
      	(gtm_thread::discard_allocation): ... this and adapt.
      	(gtm_thread::init_cpp_exceptions): New.
      	* beginend.cc (gtm_thread::gtm_thread): Adapt EH handling.
      	(gtm_thread::begin_transaction): Likewise.
      	(gtm_transaction_cp::save): Likewise.
      	(gtm_thread::trycommit): Likewise.
      	* eh_cpp.cc: Add overview comments.
      	(__cxa_eh_globals, __cxa_get_globals, __cxa_free_exception): Declare.
      	(free_any_exception, _ITM_cxa_free_exception): New.
      	(gtm_thread::init_cpp_exceptions): Define.
      	(_ITM_cxa_allocate_exception, _ITM_cxa_throw): Adapt.
      	(_ITM_cxa_begin_catch, _ITM_cxa_end_catch): Likewise.
      	(gtm_thread::revert_cpp_exceptions): Likewise.
      
      From-SVN: r230634
      Torvald Riegel committed
    • * config/msp430/lib2hw_mul.S: Fix alignment. · 9afebea2
      From-SVN: r230633
      DJ Delorie committed
  2. 19 Nov, 2015 31 commits
  3. 18 Nov, 2015 7 commits
    • re PR fortran/59910 (ICE in gfc_conv_array_initializer, at fortran/trans-array.c:5327) · 586dc38b
      2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/59910
      	* primary.c (gfc_match_structure_constructor): Reduce a structure
      	constructor in a DATA statement.
      
      2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/59910
      	* gfortran.dg/pr59910.f90: New test.
      
      From-SVN: r230580
      Steven G. Kargl committed
    • re PR fortran/43996 (ICE in gfc_conv_array_initializer due to incomplete… · 9231aa17
      re PR fortran/43996 (ICE in gfc_conv_array_initializer due to incomplete simplification of init expressions)
      
      2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/43996
      	* simplify.c (gfc_simplify_spread): Issue error for too large array 
      	constructor in a PARAMETER statement.
      
      2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/43996
      	* gfortran.dg/pr43996.f90: New test.
      
      From-SVN: r230579
      Steven G. Kargl committed
    • Add out-of-line versions of some <stdatomic.h> functions (PR c/65083). · c29c36ad
      PR c/65083 notes that some functions in <stdatomic.h> are normal
      functions, not generic functions, and so need to have out-of-line
      copies that can be called when macro expansion is suppressed (unlike
      the generic functions where DR#419 makes it undefined if you suppress
      a macro expansion).
      
      This patch adds such out-of-line definitions in libatomic for those
      six functions, at a new LIBATOMIC_1.2 symbol version, as trivial
      wrappers to the <stdatomic.h> macros, along with declarations of those
      functions in <stdatomic.h>.  Tests are added that are based on the
      corresponding tests for the macros, but with parentheses around the
      function names to force the out-of-line functions to be used.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc:
      	* ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
      	(atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
      	(atomic_flag_clear, atomic_flag_clear_explicit): Declare as
      	functions before defining as macros.
      
      gcc/testsuite:
      	* gcc.dg/atomic/stdatomic-fence-2.c,
      	gcc.dg/atomic/stdatomic-flag-2.c: New tests.
      
      libatomic:
      	* fence.c, flag.c: New files.
      	* Makefile.am (libatomic_la_SOURCES): Add fence.c and flag.c.
      	* Makefile.in: Regenerate.
      	* configure.ac (libtool_VERSION): Change to 3:0:2.
      	* configure: Regenerate.
      	* libatomic.map (LIBATOMIC_1.2): New symbol version.
      
      From-SVN: r230578
      Joseph Myers committed
    • trans.c (elaborate_all_entities_for_package): New function extracted from... · 2b2a2e9e
      	* gcc-interface/trans.c (elaborate_all_entities_for_package): New
      	function extracted from...  Recurse on packages.
      	(elaborate_all_entities): ...here.  Call it on packages.
      
      From-SVN: r230576
      Eric Botcazou committed
    • ada-tree.h (DECL_INVARIANT_P): New macro. · 64235766
      	* gcc-interface/ada-tree.h (DECL_INVARIANT_P): New macro.
      	* gcc-interface/gigi.h (enum standard_datatypes): Remove
      	ADT_longjmp_decl and add ADT_not_handled_by_others_decl.
      	(longjmp_decl): Delete.
      	(not_handled_by_others_decl): New macro.
      	(build_simple_component_ref): Delete.
      	(build_component_ref): Adjust prototype.
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to
      	build_component_ref.
      	(gnat_to_gnu_field): Set DECL_INVARIANT_P on discriminants
      	without default value.
      	* gcc-interface/trans.c (gigi): Reorder initialization sequence
      	and add not_handled_by_others_decl.
      	(Attribute_to_gnu): Adjust calls to build_component_ref.
      	(Subprogram_Body_to_gnu): Likewise.
      	(Call_to_gnu): Likewise.
      	(Exception_Handler_to_gnu_sjlj): Likewise.
      	(gnat_to_gnu): Likewise.
      	(range_check_info_d): Add inserted_cond field.
      	(Loop_Statement_to_gnu): Make two passes on the recorded range checks.
      	(build_noreturn_cond): New static function.
      	(Raise_Error_to_gnu): Record range checks in loops at -O1 and above.
      	(make_invariant): New static function.
      	(Loop_Statement_to_gnu): Use it to compute invariant expressions for
      	the loop bounds if possible, but do not require it if loop unswitching
      	is enabled.
      	* gcc-interface/utils.c (convert_to_fat_pointer): Likewise.
      	(convert): Likewise.
      	(maybe_unconstrained_array): Likewise.  Call it instead of
      	build_simple_component_ref and add guard for CONSTRUCTORs.
      	(unchecked_convert): Likewise.
      	* gcc-interface/utils2.c (compare_fat_pointers): Likewise.
      	(build_simple_component_ref): Remove COMPONENT parameter, unify
      	code dealing with VIEW_CONVERT_EXPR and make it more general,
      	remove special treatment for CONSTRUCTORs of template types.
      	(build_component_ref): Remove COMPONENT parameter and adjust call
      	to build_simple_component_ref.
      	(maybe_wrap_malloc): Likewise.
      	(build_allocator): Likewise.
      	(gnat_invariant_expr): Look through overflow checks, deal with
      	addition and subtraction of constants and take into account
      	DECL_INVARIANT_P for the COMPONENT_REF case.
      
      From-SVN: r230575
      Eric Botcazou committed
    • nvptx.c (nvptx_process_pars): Fix whitespace. · 5d306e55
      	* config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
      	(nvptx_record_offload_symbol): Remove code compensating for lack
      	of default dimension handling.
      	(nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.
      
      From-SVN: r230571
      Nathan Sidwell committed
    • misc.c: Move global variables to the top of the file. · 5f29a394
      	* gcc-interface/misc.c: Move global variables to the top of the file.
      	(gnat_handle_option): Remove obsolete ATTRIBUTE_UNUSED markers.
      	(gnat_init_options): Minor tweak.
      	(gnat_post_options): Set -fstrict-overflow if not done by the user.
      	(internal_error_function): Minor reformatting.
      
      From-SVN: r230569
      Eric Botcazou committed