1. 18 Nov, 2015 40 commits
    • 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
    • [multiple changes] · 1d74252d
      2015-11-18  Thomas Quinot  <quinot@adacore.com>
      
      	* s-os_lib.ads, s-os_lib.adb(Normalize_Pathname): Support the case of
      	an unresolved Directory argument, by recursively resolving it
      	against the current dir.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Process_Formals): A function declaration that
      	returns a class-wide type must have freeing deferred, so that it
      	is not frozen before the class-wide type and its root type are
      	frozen. This is significant when there may be a limited view of
      	the class_wide type in another package.
      
      From-SVN: r230526
      Arnaud Charlet committed
    • [multiple changes] · 2f54ef3d
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb (Has_Non_Null_Refinement): Rename to
      	Has_Non_Null_Visible_Refinement.
      	(Has_Null_Refinement): Rename to Has_Null_Visible_Refinement.
      	* einfo.ads Update the documentation of
      	attribute Has_Non_Null_Refinement and attribute Has_Null_Refinement.
      	(Has_Non_Null_Refinement): Rename to Has_Non_Null_Visible_Refinement
      	and update occurrences in entities.
      	(Has_Null_Refinement): Rename to Has_Null_Visible_Refinement and update
      	occurrences in entities.
      	* sem_prag.adb (Check_In_Out_States): Update the calls to
      	Has_[Non_]Null_Refinement.
      	(Check_Input_States): Update the
      	calls to Has_[Non_]Null_Refinement.
      	(Check_Output_States): Update the calls to Has_[Non_]Null_Refinement.
      	(Check_Proof_In_States): Update the calls to Has_[Non_]Null_Refinement.
      	(Collect_Global_Item): Update the calls to Has_[Non_]Null_Refinement.
      	(Is_Null_Refined_State): Update the calls to Has_[Non_]Null_Refinement.
      	(Match_Item): Update the calls to Has_[Non_]Null_Refinement.
      	* sem_util.adb (Has_Non_Null_Refinement): New routine.
      	(Has_Null_Refinement): New routine.
      	* sem_util.ads (Has_Non_Null_Refinement): New routine.
      	(Has_Null_Refinement): New routine.
      
      2015-11-18  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_util.adb: Minor reformatting and typo fixes.
      
      From-SVN: r230525
      Arnaud Charlet committed
    • sem_ch4.adb: Minor reformatting. · d9307840
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch4.adb: Minor reformatting.
      
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb (Expand_Subtype_From_Expr): Add new formal
      	parameter Related_Id and propagate it to Make_Subtype_From_Expr.
      	(Make_Subtype_From_Expr): Add new formal parameter
      	Related_Id. Create external entities when requested by the caller.
      	* exp_util.ads (Expand_Subtype_From_Expr): Add new formal
      	parameter Related_Id. Update the comment on usage.
      	(Make_Subtype_From_Expr): Add new formal parameter
      	Related_Id. Update the comment on usage.
      	* sem_ch3.adb (Analyze_Object_Declaration): Add local variable
      	Related_Id. Generate an external constrained subtype when the
      	object is a public symbol.
      
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma): Update the grammars of pragmas
      	Abstract_State, Depends, Global, Initializes, Refined_Depends,
      	Refined_Global and Refined_State.
      
      From-SVN: r230524
      Hristian Kirtchev committed
    • [multiple changes] · 5904016a
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb (Has_Full_Default_Initialization):
      	Perform the test for the presence of pragma
      	Default_Initial_Condition prior to the specialized type
      	checks. Add a missing case where the lack of a pragma argument
      	yields full default initialization.
      
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_res.adb (Resolve_Entity_Name): Do not check
      	for elaboration issues when a variable appears as the name of
      	an object renaming declaration as this constitutes an aliasing,
      	not a read.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* checks.adb (Overlap_Check): An actual that is an aggregate
      	cannot overlap with another actual, and no check should be
      	generated for it.
      	* targparm.ads: Fix typos.
      
      2015-11-18  Pascal Obry  <obry@adacore.com>
      
      	* adaint.c: Routine __gnat_killprocesstree only implemented on
      	Linux and Windows.
      
      2015-11-18  Pascal Obry  <obry@adacore.com>
      
      	* g-ctrl_c.adb: Minor style fixes.
      
      From-SVN: r230523
      Arnaud Charlet committed
    • [multiple changes] · 287aa0ed
      2015-11-18  Pascal Obry  <obry@adacore.com>
      
      	* adaint.c, s-os_lib.adb, s-os_lib.ads (Kill_Process_Tree): New.
      
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb (Check_Nonvolatile_Function_Profile): Place the error
      	message concerning the return type on the result definition.
      	(Is_Volatile_Function): A function with a parameter of a protected
      	type is a protected function if it is defined within a protected
      	definition.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Try_Container_Indexing): When building the
      	parameter list for the function call on indexing functions,
      	preserve overloading of the parameters, which may themselves be
      	generalized indexing operations.
      
      From-SVN: r230522
      Arnaud Charlet committed