1. 18 Nov, 2015 40 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
    • Enable condegen in case of cond phis. · 21c7259c
      The codegen of conditional PHIs inside the scop where one predecessor dominates
      the other was difficult so it wasn't enabled in the previous patch. After a
      couple of bug-fixes this has been enabled in this patch.  Not all the cases
      could be handled in this case because it becomes difficult to map the basic
      block back to original code in some cases.
      
      Bug-fixes:
      1. The vec_find returns -1 when no element was found. This wasn't checked.
      2. When the arguments to pending phis could not be resolved in the second pass,
      the codegen would fail so the new code should be cleaned up.
      
      This patch passes regtest and bootstrap on linux-x86-64 with
      BOOT_CFLAGS='-O2 -fgraphite-identity -floop-nest-optimize'
      
      2015-11-14  hiraditya  <hiraditya@msn.com>
      
      	* graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
                type to bool for early exit.
                (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return in
                case of error.
                (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
                (add_phi_arg_for_new_expr): Enable codegen for if-block where one predecessor
                dominates the other.
                (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the element is not
                found it returns -1.
                (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail out early when
                codegen fails.
                (graphite_regenerate_ast_isl): Remove codegen region when pending phis
                could not be generated.
      
      From-SVN: r230567
      Aditya Kumar committed
    • Move codegen related functions to graphite-isl-ast-to-gimple.c · 2ecf4eca
      No functional changes intended.
      This patch passes regtest and bootstrap on linux-x86-64 with
      BOOT_CFLAGS='-O2 -fgraphite-identity -floop-nest-optimize'
      
      gcc/ChangeLog:
      
      2015-11-14  hiraditya  <hiraditya@msn.com>
      
      	* graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove semicolon.
      	(class translate_isl_ast_to_gimple): Indentation.
              (translate_pending_phi_nodes): Comment.
              (add_parameters_to_ivs_params): Moved from sese.c inside class translate_isl_ast_to_gimple.
              (get_max_schedule_dimensions): Same.
              (generate_isl_context): Same.
              (extend_schedule): Same.
              (generate_isl_schedule): Same.
              (set_options): Same.
              (scop_to_isl_ast): Same.
              (is_valid_rename): Same.
              (get_rename): Same.
              (get_rename_from_scev): Same.
              (get_def_bb_for_const): Same.
              (get_new_name): Same.
              (collect_all_ssa_names): Same.
              (copy_loop_phi_args): Same.
              (copy_loop_phi_nodes): Same.
              (copy_loop_close_phi_args): Same.
              (copy_loop_close_phi_nodes): Same.
              (copy_cond_phi_args): Same.
              (copy_cond_phi_nodes): Same.
              (graphite_copy_stmts_from_block): Same.
              (copy_bb_and_scalar_dependences): Same.
              (add_phi_arg_for_new_expr): Same.
              (rename_uses): Same.
              (set_rename): Same.
              (set_rename_for_each_def): Same.
              (gsi_insert_earliest): Same.
              (rename_all_uses): Same.
              (codegen_error_p): Same.
              (print_isl_ast_node): Same.
      	(translate_isl_ast_for_loop): Call function codegen_error_p.
      	(translate_isl_ast_to_gimple::translate_isl_ast): Same.
              (translate_isl_ast_node_user): Make nb_loops const and release iv_map before exit.
      	(get_true_edge_from_guard_bb): Move all free-functions early.
      	(get_false_edge_from_guard_bb): Same.
      	(bb_contains_loop_close_phi_nodes): Same.
      	(bb_contains_loop_phi_nodes): Same.
      	(is_loop_closed_ssa_use):  Same.
      	(number_of_phi_nodes): Same.
      	(phi_uses_name): Same.
      	(later_of_the_two): Same.
      	(substitute_ssa_name):
      	(get_edges): Same.
      	(get_loc): Same.
      	(get_loop_init_value): Same.
      	(find_init_value): Same.
      	(find_init_value_close_phi): Same.
      	(ast_build_before_for): Same.
      	(graphite_regenerate_ast_isl): Formatting changes.
      	* graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
      	* sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
      	(set_rename): Same.
      	(gsi_insert_earliest): Same.
      	(collect_all_ssa_names): Same.
      	(rename_all_uses): Same.
      	(rename_uses): Same.
      	(get_def_bb_for_const): Same.
      	(copy_loop_phi_nodes): Same.
      	(copy_loop_close_phi_args): Same.
      	(copy_loop_close_phi_nodes): Same.
      	(copy_cond_phi_args): Same.
      	(copy_cond_phi_nodes): Same.
      	(set_rename_for_each_def): Same.
      	(graphite_copy_stmts_from_block): Same.
      	(copy_bb_and_scalar_dependences): Same.
      	(if_region_set_false_region): Same.
      	(scev_analyzable_p): Same.
      	* sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c
      
      From-SVN: r230566
      Aditya Kumar committed
    • freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the commit from r125920 for FreeBSD. · 159e0d3b
      2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>
      
          * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
          commit from r125920 for FreeBSD.
      
      From-SVN: r230565
      Andreas Tobler committed
    • Support GGC finalizers with PCH. · 2a304777
      	* ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
      	to be vecs of vecs.
      	(add_finalizer): Split out from ggc_internal_alloc.
      	(ggc_handle_finalizers): Run finalizers for the current depth.
      	(init_ggc, ggc_pch_read): Reserve space for finalizers.
      
      From-SVN: r230564
      Jason Merrill committed
    • re PR target/68410 (config/nios2/nios2.c: 4123: duplicates in expression) · 231f6e09
      2015-11-18  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR target/68410
      	* config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
      	from || expression.
      
      From-SVN: r230563
      Sandra Loosemore committed
    • avr-mcus.def: Add new avr4 devices atmega48pb and atmega88pb. · b6ff50e3
      	* config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
      	atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
      	and atmega328pb.
      	* doc/avr-mmcu.texi: Regenerate.
      
      From-SVN: r230562
      Pitchumani Sivanupandi committed
    • nvptx.c (bb_pair_t, [...]): New types. · 912442c2
      	gcc/
      	* config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
      	(pseudo_node_t, struct bracket, bracket_vec_t): New types.
      	(struct bb_sese): New struct.
      	(bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
      	(BB_GET_SESE, BB_SET_SESE): Define.
      	(nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
      	(nvptx_find_sese): New.
      	(nvptx_neuter_pars): Find SESE regions when optimizing.
      
      	gcc/testsuite/
      	* gcc.dg/goacc/nvptx-sese-1.c: New.
      
      From-SVN: r230561
      Nathan Sidwell committed
    • decl.c (gnat_to_gnu_entity): Use case #1 for the renaming of an address. · 482a338d
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Use case #1
      	for the renaming of an address.
      
      From-SVN: r230560
      Eric Botcazou committed
    • trans.c (fold_constant_decl_in_expr): If the index is not itself constant then bail out. · a239279e
      	* gcc-interface/trans.c (fold_constant_decl_in_expr) <ARRAY_REF>: If
      	the index is not itself constant then bail out.
      
      From-SVN: r230558
      Eric Botcazou committed
    • Add PR marker to last change · 70318db4
      From-SVN: r230556
      Jeff Law committed
    • split-path-1.c: Fix the testcase to avoid undefined behaviour. · 3927713b
      	* gcc.dg/tree-ssa/split-path-1.c: Fix the testcase
      	to avoid undefined behaviour.
      
      From-SVN: r230555
      Ajit Agarwal committed
    • cp-gimplify.c (cp_fold_r): Add support for OACC_LOOP. · f25c3cc0
      	gcc/cp/
      	* cp-gimplify.c (cp_fold_r): Add support for OACC_LOOP.
      
      From-SVN: r230554
      Cesar Philippidis committed
    • rs6000.c (use_toc_relative_ref): Ignore type-limits warning. · a3ff5f87
      2015-11-18  Alan Modra  <amodra@gmail.com>
      
              * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
              type-limits warning.
      
      From-SVN: r230551
      Alan Modra committed
    • PR 68406: Avoid problem with older host compilers · 1fcb9641
      Older compilers require the Key typedef to be expanded for the traversal
      function templates.  This patch uses the same approach as we did for
      hash_map.
      
      Tested on x86_64-linux-gnu.
      
      gcc/
      	PR bootstrap/68406
      	* hash-set.h (hash_set::traverse): Expand Key typedef.
      
      From-SVN: r230549
      Richard Sandiford committed
    • Finalize func_options in arm target in · 4a353e16
      	* config/arm/arm.c (arm_valid_target_attribute_p): Finalize
      	options struct.
      
      From-SVN: r230548
      Martin Liska committed
    • sem_ch4.adb (Try_Container_Indexing): When constructing the parameter list for… · 43151cfd
      sem_ch4.adb (Try_Container_Indexing): When constructing the parameter list for the potentially overloaded calls to...
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Try_Container_Indexing): When constructing the
      	parameter list for the potentially overloaded calls to indexing
      	functions, do not propagate overloadings if the actual is a named
      	association: overloadings appear directly on the expression in
      	the association.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_type.adb (Interface_Present_In_Ancestor): If the type is
      	incomplete, the list of ancestors is found either on the full
      	view or the non-limited view of the type.
      
      From-SVN: r230547
      Ed Schonberg committed
    • [multiple changes] · e645cb39
      2015-11-18  Nicolas Roche  <roche@adacore.com>
      
      	* sysdep.c (__gnat_localtime_tzoff): On Windows platform
      	GetTimeZoneInformation function is thread-safe. Thus there
      	is no need to lock the runtime in the implementation of
      	__gnat_localtime_tzoff on that platform.
      
      2015-11-18  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* s-arit64.adb (To_Neg_Int): Add a special case for 2**63 input.
      
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* contracts.adb (Analyze_Contracts): New routine.
      	(Analyze_Enclosing_Package_Body_Contract): Removed.
      	(Analyze_Entry_Or_Subprogram_Contract): Add formal parameter
      	Freeze_Id.  Propagate the entity of the freezing body to vaious
      	analysis routines.
      	(Analyze_Initial_Declaration_Contract): Removed.
      	(Analyze_Object_Contract): Add formal parameter
      	Freeze_Id. Propagate the entity of the freezing body to vaious
      	analysis routines.
      	(Analyze_Previous_Contracts): New routine.
      	* contracts.ads (Analyze_Enclosing_Package_Body_Contract): Removed.
      	(Analyze_Contracts): New routine.
      	(Analyze_Entry_Or_Subprogram_Contract): Add formal
      	parameter Freeze_Id and update the comment on usage.
      	(Analyze_Initial_Declaration_Contract): Removed.
      	(Analyze_Object_Contract): Add formal parameter Freeze_Id and
      	update the comment on usage.
      	(Analyze_Previous_Contracts): New routine.
      	* sem_ch3.adb (Analyze_Declarations): Use Analyze_Contracts to
      	analyze all contracts of eligible constructs.
      	* sem_ch6.adb (Analyze_Generic_Subprogram_Body):
      	A body no longer freezes the contract of its initial
      	declaration. This effect is achieved through different means.
      	(Analyze_Subprogram_Body_Helper): A body now freezes the contracts
      	of all eligible constructs that precede it. A body no longer
      	freezes the contract of its initial declaration. This effect is
      	achieved through different means.
      	* sem_ch7.adb (Analyze_Package_Body_Helper): A body now freezes
      	the contracts of all eligible constructs that precede it. A body
      	no longer freezes the contract of its initial declaration. This
      	effect is achieved through different means.
      	* sem_ch9.adb (Analyze_Entry_Body): A body now freezes
      	the contracts of all eligible constructs that precede
      	it. A body no longer freezes the contract of its initial
      	declaration. This effect is achieved through different means.
      	(Analyze_Protected_Body): A body now freezes the contracts
      	of all eligible constructs that precede it. A body no longer
      	freezes the contract of its initial declaration. This effect
      	is achieved through different means.
      	(Analyze_Task_Body): A
      	body now freezes the contracts of all eligible constructs that
      	precede it. A body no longer freezes the contract of its initial
      	declaration. This effect is achieved through different means.
      	* sem_prag.adb (Add_Item_To_Name_Buffer): Single protected/task
      	objects now output their respective current instance of xxx
      	type messages.	(Analyze_Contract_Cases_In_Decl_Part): Add
      	formal parameter Freeze_Id. Emit a clarification message
      	when an undefined entity may the byproduct of contract
      	freezing.
      	(Analyze_Part_Of_In_Decl_Part): Add formal
      	parameter Freeze_Id. Emit a clarification message when an
      	undefined entity may the byproduct of contract freezing.
      	(Analyze_Pre_Post_Condition_In_Decl_Part): Add formal
      	parameter Freeze_Id. Emit a clarification message when an
      	undefined entity may the byproduct of contract freezing.
      	(Analyze_Refined_State_In_Decl_Part): Do not report unused body
      	states as constituents of single protected/task types may not
      	bave been identified yet.
      	(Collect_Subprogram_Inputs_Outputs):
      	Reimplemented.	(Contract_Freeze_Error): New routine.
      	(Process_Overloadable): Use predicate Is_Single_Task_Object.
      	* sem_prag.ads (Analyze_Contract_Cases_In_Decl_Part):
      	Add formal parameter Freeze_Id and update the comment
      	on usage.
      	(Analyze_Part_Of_In_Decl_Part): Add formal
      	parameter Freeze_Id and update the comment on usage.
      	(Analyze_Pre_Post_Condition_In_Decl_Part): Add formal parameter
      	Freeze_Id and update the comment on usage.
      	* sem_util.adb (Check_Unused_Body_States): Remove global
      	variable Legal_Constits. The routine now reports unused
      	body states regardless of whether constituents are
      	legal or not.
      	(Collect_Body_States): A constituent of a
      	single protected/task type is not a visible state of a
      	package body.
      	(Collect_Visible_States): A constituent
      	of a single protected/task type is not a visible
      	state of a package body.
      	(Has_Undefined_Reference): New routine.
      	(Is_Single_Concurrent_Object): Reimplemented.
      	(Is_Single_Protected_Object): New routine.
      	(Is_Single_Task_Object): New routine.
      	(Is_Visible_Object): New routine.
      	(Report_Unused_Body_States): Moved to Check_Unused_Body_States.
      	* sem_util.ads (Check_Unused_Body_States): Update the comment on usage.
      	(Has_Undefined_Reference): New routine.
      	(Is_Single_Protected_Object): New routine.
      	(Is_Single_Task_Object): New routine.
      	(Report_Unused_Body_States): Moved to Check_Unused_Body_States.
      
      2015-11-18  Pierre-Marie de Rodat  <derodat@adacore.com>
      
      	* Makefile.rtl, impunit.adb: Add g-strhas.ads.
      	* g-strhas.ads: New file.
      	* s-strhas.ads: Add a comment to redirect users to g-strhas.ads.
      
      2015-11-18  Bob Duff  <duff@adacore.com>
      
      	* sem_elab.adb (Check_Internal_Call_Continue): Fix the case
      	where the call in question is to a renaming of a subprogram that
      	can be safely called without ABE.
      	* checks.adb: Minor edits.
      
      From-SVN: r230546
      Arnaud Charlet committed
    • nvptx.c (global_lock_var): New. · 33f47f42
      	gcc/
      	* config/nvptx/nvptx.c (global_lock_var): New.
      	(nvptx_global_lock_addr): New.
      	(nvptx_lockless_update): Recomment and adjust for clarity.
      	(nvptx_lockfull_update): New.
      	(nvptx_reduction_update): New.
      	(nvptx_goacc_reduction_fini): Call it.
      
      	libgcc/
      	* config/nvptx/reduction.c: New.
      	* config/nvptx/t-nvptx (LIB2ADD): Add it.
      
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Add
      	worker & gang cases.
      	* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
      
      From-SVN: r230545
      Nathan Sidwell committed
    • regrename.h (struct du_head): Add target_data_1 and target_data_2 fields. · d085c468
      	* regrename.h (struct du_head): Add target_data_1 and target_data_2
      	fields.
      	* regrename.c (create_new_chain): Clear entire struct after allocating.
      
      	* config/i386/i386.opt (mmitigate-rop): New option.
      	* doc/invoke.texi (mmitigate-rop): Document.
      	* config/i386/i386.c: Include "regrename.h".
      	(ix86_rop_should_change_byte_p, reg_encoded_number,
      	ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
      	static functions.
      	(ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
      	* config/i386/i386.md (attr "modrm_class"): New.
      	(cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
      	x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
      	(x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.
      
      From-SVN: r230543
      Bernd Schmidt committed
    • re PR target/68405 (trunk/gcc/config/i386/i386.c:22951: possible missing break ?) · 98f84050
      gcc/
      
      	PR target/68405
      	* config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing
      	break.
      
      From-SVN: r230541
      Ilya Enkovich committed
    • [multiple changes] · fdc54be6
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* atree.adb (Elist11): New routine.
      	(Set_Elist11): New routine.
      	* atree.ads (Elist11): New routine.
      	(Set_Elist11): New routine.
      	* atree.h: Define Elist11.
      	* contracts.adb (Analyze_Object_Contract): Verify the legality
      	of all references to a variable given that the variable is a
      	constituent of a single protected/task type.
      	* einfo.adb: Part_Of_References now utilizes Elist11.
      	(Part_Of_References): New routine.
      	(Set_Part_Of_References): New routine.
      	(Write_Field11_Name): Add output for Part_Of_References.
      	* einfo.ads New attribute Part_Of_References along with usage
      	in entities.
      	(Part_Of_References): New routine along with
      	pragma Inline.
      	(Set_Part_Of_References): New routine along with pragma Inline.
      	* sem_prag.adb (Analyze_Constituent): Record a possible
      	reference to a concurrent constituent.
      	(Analyze_Global_Item): Record a possible reference to a concurrent
      	constituent.
      	(Analyze_Input_Output): Record a possible reference to a
      	concurrent constituent.
      	* sem_res.adb (Resolve_Entity_Name): Record a possible reference
      	to a concurrent constituent.
      	* sem_util.adb (Check_Part_Of_Reference): New routine.
      	(Record_Possible_Part_Of_Reference): New routine.
      	* sem_util.ads (Check_Part_Of_Reference): New routine.
      	(Record_Possible_Part_Of_Reference): New routine.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
      	An if_expression is the proper place to apply the overflow
      	minimization procedure if its context is not an enclosing
      	arithmetic expression.
      
      From-SVN: r230540
      Arnaud Charlet committed
    • Regenerate doc. · 3f8d242b
      From-SVN: r230539
      Arnaud Charlet committed
    • gnat_project_manager.rst, [...]: Update doc. · 2544cbe4
              * gnat_ugn/gnat_project_manager.rst,
              gnat_ugn/building_executable_programs_with_gnat.rst,
              gnat_ugn/gnat_and_program_execution.rst,
              gnat_ugn/the_gnat_compilation_model.rst,
              gnat_rm/implementation_defined_pragmas.rst,
              gnat_rm/standard_and_implementation_defined_restrictions.rst,
              gnat_ugn.texi, gnat_rm.texi: Update doc.
      
      From-SVN: r230538
      Arnaud Charlet committed
    • Minor code clean ups. · 767cd81c
      From-SVN: r230537
      Arnaud Charlet committed
    • [multiple changes] · c0dd5b38
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* contracts.adb (Add_Contract_Item): Chain pragmas Attach_Handler
      	and Interrupt_Handler on the classifications list of a [generic]
      	procedure N_Contract node.
      	* contracts.ads (Add_Contract_Item): Update the comment on usage.
      	* einfo.adb (Get_Pragma): Pragmas Attach_Handler and
      	Interrupt_Handler are found on the classifications list of
      	N_Contract nodes.
      	* einfo.ads (Get_Pragma): Update the comment on usage.
      	* sem_prag.adb (Process_Interrupt_Or_Attach_Handler): Code
      	reformatting. Store the pragma as a contract item.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch8.adb (Available_Subtype): Use only in GNATprove
      	mode. When generating code it may be necessary to create itypes
      	at the point of use of a selected component, for example in the
      	expansion of a record equality operation.
      
      2015-11-18  Vincent Celier  <celier@adacore.com>
      
      	* s-os_lib.adb (Normalize_Pathname.Get_Directory): When
      	invoking Normalize_Pathname, use the same values for parameters
      	Resolve_Links and Case_Sensitive as the parent Normalize_Pathname.
      
      2015-11-18  Vincent Celier  <celier@adacore.com>
      
      	* a-direct.adb (Containing_Directory): Return "." when the result
      	is the current directory, not specified as an absolute path name.
      
      From-SVN: r230536
      Arnaud Charlet committed
    • [multiple changes] · a25e72b5
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_aggr.adb (Is_Completely_Hidden_Discriminant): New routine.
      	(Init_Hidden_Discriminants): Code reformatting. Do not initialize
      	a completely hidden discriminant.
      	* a-interr.ads (Get_CPU): Added SPARK_Mode, Volatile_Function
      	and Global aspects on the function.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_intr.adb (Expand_Unc_Deallocation): If the designated
      	type is a concurrent type, the deallocation applies to the
      	corresponding record type, or to its class-wide type if the type
      	is tagged.
      
      From-SVN: r230535
      Arnaud Charlet committed
    • s-parame-vxworks.adb: Reduce default stack size for stack limit check to a reasonable value · 86e066aa
      2015-11-18  Doug Rupp  <rupp@adacore.com>
      
      	* s-parame-vxworks.adb: Reduce default stack size for stack
      	limit check to a reasonable value
      	* s-tpopsp-vxworks.adb: Make Stack_Limit a task variable for vx5 and
      	vxmils.
      
      From-SVN: r230534
      Doug Rupp committed
    • [multiple changes] · 72d5c70b
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch5.adb (Analyze_Assignment): Diagnose assignment where
      	left-hand side has a limited view of a class-wide type.
      	* sem_ch6.adb (Detected_And_Exchange): Do not install a non-limited
      	view if the scope of the type of the formal is visible through
      	a limited_with_clause, even if the non-limited view is available.
      
      2015-11-18  Emmanuel Briot  <briot@adacore.com>
      
      	* s-pooglo.ads: Make Global_Pool_Object aliased.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute, case 'Access): If the prefix
      	is an expression function, do not analyze the generated body if
      	the current scope is not the scope of the expression function,
      	as may happen if the attribute is an actual in an instantiation.
      	* sem_ch10.adb, sem_ch12.adb, a-stzmap.adb, s-soflin.adb,
      	a-stwima.adb: Fix typos.
      
      2015-11-18  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_ch11.adb (Expand_N_Exception_Declaration): No-op when
      	generating C code.
      
      2015-11-18  Vincent Celier  <celier@adacore.com>
      
      	* g-comlin.adb (Find_Longest_Matching_Switch): Do not take into
      	account a switch ending with '=' when the actual command line
      	switch is not followed with a space or '='.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Explicit_Dereference): Do not add an access
      	check if the type of the prefix is known to exclude null.
      	* a-coinve.adb (Get_Element_Access): The function returns an
      	access type that excludes null, so add an explicit check for
      	a null element pointer, which is created when Insert_Spaces is
      	called on an indefinite vector container.
      
      From-SVN: r230533
      Arnaud Charlet committed
    • re PR ada/66242 (Front-end error if exception propagation disabled) · 7bf911b5
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	PR ada/66242
      
      	* exp_ch3.adb (Default_Initialize_Object): Reimplemented. Abort
      	defer / undefer pairs are now encapsulated in a block with
      	an AT END handler. Partial finalization now takes restriction
      	No_Exception_Propagation into account when generating blocks.
      	* exp_ch7.adb Various reformattings.
      	(Create_Finalizer): Change
      	the generation of abort defer / undefer pairs and explain the
      	lack of an AT END handler.
      	(Process_Transient_Objects): Add generation of abort defer/undefer
      	pairs.
      	* exp_ch9.adb Various reformattings.
      	(Build_Protected_Subprogram_Body): Use
      	Build_Runtime_Call to construct a call to Abort_Defer.
      	(Build_Protected_Subprogram_Call_Cleanup): Use
      	Build_Runtime_Call to construct a call to Abort_Undefer.
      	(Expand_N_Asynchronous_Select): Use Build_Runtime_Call to
      	construct a call to Abort_Defer.
      	* exp_intr.adb (Expand_Unc_Deallocation): Abort defer
      	/ undefer pairs are now encapsulated in a block with
      	an AT END handler. Finalization now takes restriction
      	No_Exception_Propagation into account when generating blocks.
      	* exp_util.ads, exp_util.adb (Wrap_Cleanup_Procedure): Removed.
      
      From-SVN: r230531
      Hristian Kirtchev committed
    • re PR tree-optimization/68157 (internal compiler error: in… · 8ebcad86
      re PR tree-optimization/68157 (internal compiler error: in reassoc_stmt_dominates_stmt_p, at tree-ssa-reassoc.c:1287)
      
      	PR tree-optimization/68157
      	* tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
      	pow_stmt or mul_stmt from stmt's uid.
      	(reassociate_bb): Set uid of mul_stmt from stmt's uid.
      
      	* g++.dg/opt/pr68157.C: New test.
      
      From-SVN: r230530
      Jakub Jelinek committed
    • [multiple changes] · 7d4c4fde
      2015-11-18  Arnaud Charlet  <charlet@adacore.com>
      
      	* switch-c.adb (Scan_Front_End_Switches): Add a check requiring
      	-gnatc with -gnateg.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch7.adb (Uninstall_Declarations): Before swapping private
      	and full views, ensure that the potential use visbility of the
      	two views is consistent.
      
      2015-11-18  Doug Rupp  <rupp@adacore.com>
      
      	* s-parame-vxworks.adb: Increase default stack size for targets
      	using stack limit checking.
      
      2015-11-18  Jose Ruiz  <ruiz@adacore.com>
      
      	* a-interr.adb, a-interr.ads (Ada.Interrupts.Get_CPU): Add this
      	function that was added to Ada 2005 returning the processor where
      	interrupt handlers execute.
      
      2015-11-18  Tristan Gingold  <gingold@adacore.com>
      
      	* exp_ch9.adb (Is_Pure_Barrier): Handle expanded component
      	declaration of a protected definition.
      
      From-SVN: r230529
      Arnaud Charlet committed
    • [multiple changes] · 3a2b1457
      2015-11-18  Ed Falis  <falis@adacore.com>
      
      	* s-soflin.adb, s-stchop-vxworks.adb: Code clean ups.
      
      2015-11-18  Gary Dismukes  <dismukes@adacore.com>
      
      	* bcheck.adb: Minor editorial changes.
      
      From-SVN: r230528
      Arnaud Charlet committed
    • [multiple changes] · 5a99fda7
      2015-11-18  Arnaud Charlet  <charlet@adacore.com>
      
      	* interfac.ads (Unsigned_24): New type.
      	* sem_ch13.adb (Validate_Unchecked_Conversion): Disable error on
      	unconstrained arrays in Relaxed_RM_Semantics mode.
      
      2015-11-18  Vincent Celier  <celier@adacore.com>
      
      	* bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking): No
      	warning is withed unit is the interface of a Stand-Alone Library.
      
      From-SVN: r230527
      Arnaud Charlet committed