1. 19 Nov, 2015 10 commits
  2. 18 Nov, 2015 30 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