Commit Graph

138503 Commits

Author SHA1 Message Date
Richard Biener
b1af7da612 tree-vect-stmts.c (vectorizable_load): Initialize slp_perm earlier and remove ??? comment.
2015-05-27  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
	earlier and remove ??? comment.
	(vect_analyze_stmt): If we are analyzing a pure SLP stmt
	and got called from loop analysis bail out.  Always pass the SLP
	node to the vectorizable_* functions.
	* tree-vect-loop.c (vect_analyze_loop_operations): Remove
	the premature SLP check here.
	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
	detected SLP stmts.
	(vect_detect_hybrid_slp_1): Likewise.

From-SVN: r223743
2015-05-27 10:31:11 +00:00
Andre Vehreschild
d4cecb1341 trans-stmt.c (gfc_trans_allocate): Add missing location information for e3rhs.
gcc/fortran/ChangeLog:

2015-05-27  Andre Vehreschild  <vehre@gmx.de>

	* trans-stmt.c (gfc_trans_allocate): Add missing location
	information for e3rhs.

gcc/testsuite/ChangeLog:

2015-05-27  Andre Vehreschild  <vehre@gmx.de>

	* gfortran.dg/allocate_with_source_5.f90: Correct errorneous
	semantic.
	* gfortran.dg/allocate_with_source_6.f90: New test.

From-SVN: r223738
2015-05-27 10:48:51 +02:00
Chung-Lin Tang
1716efeb6d target.c (gomp_map_pointer): New function abstracting out GOMP_MAP_POINTER handling.
2015-05-27  Chung-Lin Tang  <cltang@codesourcery.com>

	libgomp/
	* target.c (gomp_map_pointer): New function abstracting out
	GOMP_MAP_POINTER handling.
	(gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
	gomp_map_pointer().

From-SVN: r223737
2015-05-27 06:16:37 +00:00
Jeff Law
7553271edd combine.c (find_split_point): Verify that the shift count is a constant when...
* combine.c (find_split_point): Verify that the shift count is a
       constant when choosing (plus (ashift ...)) as a split point.

From-SVN: r223736
2015-05-26 22:59:42 -06:00
Jeff Law
7499cd25dc tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
* tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
        No functional changes.

From-SVN: r223734
2015-05-26 22:42:23 -06:00
Jan Hubicka
6acd8c92ef * ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
	case when call target is already known.

From-SVN: r223733
2015-05-27 04:37:48 +00:00
GCC Administrator
c6b8c3adf9 Daily bump.
From-SVN: r223729
2015-05-27 00:16:16 +00:00
Doug Evans
419587a0bb xmethods.py (UniquePtrMethodsMatcher): Add operator-> support.
* python/libstdcxx/v6/xmethods.py (UniquePtrMethodsMatcher): Add
	operator-> support.
	* testsuite/libstdc++-xmethods/unique_ptr.cc: Add tests for
	operator->.

From-SVN: r223723
2015-05-26 23:06:55 +00:00
Oleg Endo
afa5920a97 re PR target/65979 ([SH] Wrong code is generated with stage1 compiler)
PR target/65979
* config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and take into
  account the case that operands[1] and operands[2] are the same register.

From-SVN: r223721
2015-05-26 22:32:11 +00:00
Eric Botcazou
89d5c50bd1 trans.c (Attribute_to_gnu): Do not bother about NaN's if Machine_Overflows is true.
* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Min/Attr_Max>: Do not
	bother about NaN's if Machine_Overflows is true.

From-SVN: r223717
2015-05-26 20:42:20 +00:00
Eric Botcazou
545b492365 trans.c (gnat_to_gnu): Really force evaluation of the expression...
* gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Really
	force evaluation of the expression, if any, when the object has its
	elaboration delayed.  Do not create a variable at global level.

From-SVN: r223716
2015-05-26 20:37:29 +00:00
Eric Botcazou
c68cdfac5b trans.c (Attribute_to_gnu): Do not apply extra-precision trick to literals.
* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Machine>: Do not apply
	extra-precision trick to literals.  Build SAVE_EXPR manually.

	* gcc-interface/misc.c (enumerate_modes): Add bypass for x86/x86-64.

From-SVN: r223715
2015-05-26 20:19:55 +00:00
Eric Botcazou
241125b2a1 ada-tree.h (DECL_GLOBAL_NONCONSTANT_RENAMING_P): Delete
* gcc-interface/ada-tree.h (DECL_GLOBAL_NONCONSTANT_RENAMING_P): Delete
	(DECL_RENAMED_OBJECT): Adjust comment.
	* gcc-interface/gigi.h (record_global_nonconstant_renaming): Delete.
	(invalidate_global_nonconstant_renamings): Likewise.
	(gnat_constant_reference_p): Likewise.
	(rewrite_fn): New function type.
	(gnat_rewrite_reference): Declare.
	(call_is_atomic_load): New inline predicate.
	* gcc-interface/decl.c (elaborate_reference_1): New function.
	(elaborate_reference): Likewise.
	(gnat_to_gnu_entity): Call elaborate_reference to elaborate renamings
	and simplify associated code.  Set const_flag to true consistently in
 	conjunction with used_by_ref.
	* gcc-interface/trans.c (Identifier_to_gnu): Always replace renaming
	pointers by renamed objects.
	(outer_atomic_access_required_p): Deal with renamings.
	(Compilation_Unit_to_gnu): Do not call
	invalidate_global_nonconstant_renamings.
	(gnat_to_gnu) <N_Object_Renaming_Declaration>: Adjust comment.
	(gnat_gimplify_expr): Deal with atomic loads.
	* gcc-interface/utils.c (global_nonconstant_renamings): Delete.
	(destroy_gnat_utils): Do not call
	invalidate_global_nonconstant_renamings.
	(record_global_nonconstant_renaming): Delete.
	(invalidate_global_nonconstant_renamings): Likewise.
	* gcc-interface/utils2.c (call_is_atomic_load): Move to gigi.h.
	(build_load_modify_store): Build a copy of the destination.
	(gnat_stabilize_reference_1): Adjust.
	(gnat_stabilize_reference): Call gnat_stabilize_reference_1 through
	gnat_rewrite_reference and move bulk of code to...
	(gnat_rewrite_reference): ...here.  New global function.
	(gnat_constant_reference_p): Delete.

From-SVN: r223709
2015-05-26 19:40:18 +00:00
Eric Botcazou
7194767cdf gigi.h (gnat_stabilize_reference): Adjust prototype.
* gcc-interface/gigi.h (gnat_stabilize_reference): Adjust prototype.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not rely on const_flag
 	to detect constant renamings.  Be prepared for specific pattern of
	renamed object based on function calls.  Create a constant object
	for the renaming of a NULL_EXPR or of a CONSTRUCTOR.  Adjust calls
	to gnat_stabilize_reference and tidy up.  Remove redundant tests.
	(elaborate_expression_1): Remove obsolete test and tidy up.
	* gcc-interface/trans.c (Call_to_gnu): Do not stabilize In/Out or Out
	parameters passed by reference.
	(gnat_to_gnu) <N_Selected_Component>: Remove redundant protection again
	side-effects.
	Use gnat_protect_expr instead of gnat_stabilize_reference for general
	protection against side-effects.
	* gcc-interface/utils2.c (gnat_stable_expr_p): New predicate.
	(gnat_save_expr): Invoke it.
	(gnat_protect_expr): Likewise.
	(gnat_stabilize_reference_1): Likewise.  Remove useless propagation
	of TREE_THIS_NOTRAP.
	(gnat_stabilize_reference): Remove parameter and adjust throughout.
	Delete ADDR_EXDR, COMPOUND_EXPR and CONSTRUCTOR cases.
	Restrict CALL_EXPR case to atomic loads and tweak ERROR_MARK case.

From-SVN: r223708
2015-05-26 19:18:15 +00:00
Andreas Tobler
517d07c980 jni.exp (gcj_jni_get_cxxflags_invocation): Add libiconv for FreeBSD to cxxflags.
2015-05-26  Andreas Tobler  <andreast@gcc.gnu.org>

    * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): Add
    libiconv for FreeBSD to cxxflags.

From-SVN: r223706
2015-05-26 20:31:49 +02:00
Manuel López-Ibáñez
815facd36d line-map.c (LINE_MAP_MAX_COLUMN_NUMBER LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION): New constants.
libcpp/ChangeLog:

2015-05-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* line-map.c (LINE_MAP_MAX_COLUMN_NUMBER
	LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION):
	New constants.
	(linemap_line_start): Use them.
	(linemap_position_for_column): Use them.

From-SVN: r223705
2015-05-26 17:12:28 +00:00
Michael Matz
cee62feed1 re PR middle-end/66251 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484)
PR middle-end/66251

	* tree-vect-stmts.c (vect_model_store_cost): Handled strided group
	stores.
	(vect_create_vectorized_demotion_stmts): Always set
	STMT_VINFO_VEC_STMT, also with SLP.
	(vectorizable_store): Handle strided group stores.

testsuite/:
	PR middle-end/66251
	* gcc.dg/vect/pr66251.c: New test.

From-SVN: r223704
2015-05-26 16:00:32 +00:00
Venkataramanan Kumar
dd1bdce418 re PR target/66049 (Few AArch64 extend and add with shift tests generates sub optimal code with trunk gcc 6.0.)
2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

        PR target/66049
        * config/aarch64/aarch64.md
        (*adds_shift_imm_<mode>):  New pattern.
        (*subs_shift_imm_<mode>):  Likewise.
        (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
        (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
        (*add_uxt<mode>_shift2): Likewise.
        (*add_uxtsi_shift2_uxtw): Likewise.
        (*sub_uxt<mode>_shift2): Likewise.
        (*sub_uxtsi_shift2_uxtw): Likewise.

From-SVN: r223703
2015-05-26 15:32:02 +00:00
David Edelsohn
efac9d455f * config/rs6000/constraints.md (Y, U): Use match_test.
From-SVN: r223702
2015-05-26 11:16:35 -04:00
Christian Bruel
28c206e10c fix entry
From-SVN: r223701
2015-05-26 16:10:12 +02:00
Christian Bruel
b1d11d6279 fix entry
From-SVN: r223700
2015-05-26 16:09:45 +02:00
Christian Bruel
08793a386a re PR target/52144 (ARM should support arm/thumb function attribute to permit different instruction sets in the same source)
2015-05-13  Christian Bruel  <christian.bruel@st.com>

	PR target/52144
	* config/arm/arm.c (arm_option_check_internal)
	(arm_option_params_internal): Check opts->target_flags to set macros.
	(TREE_TARGET_ARM, TREE_TARGET_THUMB)
	(TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
	(TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
	(builtin_define): Replaced with def_or_undef_macro.
	* config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
	TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
	(TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
	(TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
	(TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
	(TARGET_ARM_FEATURE_LDREX_P)
	(TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
	(def_or_undef_macro): New function.

From-SVN: r223699
2015-05-26 16:06:17 +02:00
Christian Bruel
7049e4eb33 2015-05-26 Christian Bruel <christian.bruel@st.com>
* c-common.h (builtin_define_with_int_value)
	(builtin_define_type_sizeof): Declare.
	* c-cppbuiltin.c (builtin_define_with_int_value)
	(builtin_define_type_sizeof): Externalize.
	(builtin_define_std): Cleanup declaration.
	* config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
	* config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
	(builtin_define, builtin_assert): New macros.

From-SVN: r223698
2015-05-26 16:03:10 +02:00
Richard Biener
ea3eac3ab7 re PR tree-optimization/66142 (Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE)
2015-05-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66142
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
	MEM_REFs for the same base address.

	* gcc.dg/tree-ssa/ssa-fre-44.c: New testcase.

From-SVN: r223697
2015-05-26 13:55:40 +00:00
Arnaud Charlet
bff469f75f [multiple changes]
2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sinfo.ads: Minor reformatting.
	* sem_aux.ads: Clarify use of First_Discriminant.
	* sem_ch4.adb (Analyze_Explicit_Dereference): The use of a limited
	view is replaced with the non-limited view in an instance body,
	where the enclosing unit must have a regular with_clause on the
	relevant unit.
	* sem_ch12.adb (Install_Body): Freeze instantation after its
	body. Remove useless freeze nodes for incomplete actuals to
	prevent multiple generation of internal operations.
	(Instantiate_Package_Body): Set sloc of body appropriately when
	there are incomplete actuals and the instance body is placed in
	the body of the enclosing unit.
	* errout.ads: Consistent punctuation, better alignment and trivial
	typos in comments.
	* err_vars.ads: Fix typo.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Lift restriction on
	components of Volatile_Full_Access objects.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Is_Non_Overriding_Operation,
	Get_Generic_Parent_Type): Handle properly the case of a derived
	scalar type by using the first subtype rather than its generated
	anonymous base type.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.adb (Write_Field17_Name): Move E_Incomplete_Subtype
	case to...
	(Write_Field19_Name): ...here.

From-SVN: r223696
2015-05-26 15:37:29 +02:00
Ramana Radhakrishnan
70c3fcfc3f re PR ipa/66181 (/usr/include/bits/types.h:134:16: ICE: verify_type failed)
Fix PR ipa/66181

2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR ipa/66181
	* tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.

From-SVN: r223695
2015-05-26 13:21:16 +00:00
Jason Merrill
a47162104f configure.ac: Set CXXFLAGS for ISL test.
* configure.ac: Set CXXFLAGS for ISL test.
	* configure: Regenerate.

From-SVN: r223694
2015-05-26 09:12:14 -04:00
Jason Merrill
460704884f configure.ac: When bootstrapping with GCC, add -std=c++98 to CXX.
* configure.ac: When bootstrapping with GCC, add -std=c++98 to CXX.
	* configure: Regenerate.

From-SVN: r223692
2015-05-26 08:29:13 -04:00
Jason Merrill
13ccfea8fa configure.ac: Use C++ for all tests.
* configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
	strstr and basename.
	* configure: Regenerate.

From-SVN: r223691
2015-05-26 08:28:53 -04:00
Richard Biener
8f0c696a7b fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and X % C -> X & (C - 1) for C being a power-of two to ...
2015-05-26  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
	X % C -> X & (C - 1) for C being a power-of two to ...
	* match.pd: ... patterns.

From-SVN: r223690
2015-05-26 12:00:48 +00:00
Marc Glisse
534bd33b61 match.pd (swapped_tcc_comparison): New operator list.
2015-05-26  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd (swapped_tcc_comparison): New operator list.
	(-A CMP -B): New simplification.
	* fold-const.c (fold_comparison): Remove corresponding code.

From-SVN: r223689
2015-05-26 11:14:16 +00:00
Richard Sandiford
c3dc5e6654 caller-save.c (init_caller_save): Base temporary register numbers on LAST_VIRTUAL_REGISTER + 1 rather than...
gcc/
	* caller-save.c (init_caller_save): Base temporary register numbers
	on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
	* cfgloopanal.c (init_set_costs): Likewise.
	* dojump.c (prefer_and_bit_test): Likewise.
	* expr.c (init_expr_target): Likewise.
	* ira.c (setup_prohibited_mode_move_regs): Likewise.
	* lower-subreg.c (init_lower_subreg): Likewise.
	* postreload.c (reload_cse_regs_1): Likewise.

From-SVN: r223688
2015-05-26 11:02:27 +00:00
Richard Sandiford
851ee5f43c gensupport.h (compute_test_codes): Declare.
gcc/
	* gensupport.h (compute_test_codes): Declare.
	* gensupport.c (compute_predicate_codes): Rename to...
	(compute_test_codes): ...this.  Generalize error message.
	(process_define_predicate): Update accordingly.
	* genpreds.c (compute_maybe_allows): Delete.
	(add_constraint): Use compute_test_codes to determine whether
	something can accept a SUBREG, REG or MEM.

From-SVN: r223687
2015-05-26 11:01:42 +00:00
Arnaud Charlet
3a37ecec89 [multiple changes]
2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: sem_ch13.adb (Add_Predicates): Undo analysis
	of original expression in ASIS mode: does not solve the ASIS
	problem of a usable type information, and crashes the back-end
	when performing type annotations.

2015-05-26  Robert Dewar  <dewar@adacore.com>

	* sem_disp.adb (Inherited_Subprograms): Add One_Only parameter.
	(Is_Overriding_Subprogram): Use One_Only_Parameter.
	* sem_disp.ads (Inherited_Subprograms): Add One_Only parameter.

From-SVN: r223686
2015-05-26 12:51:22 +02:00
Arnaud Charlet
ad4ba28bb0 [multiple changes]
2015-05-26  Robert Dewar  <dewar@adacore.com>

	* exp_prag.adb, sem_ch3.adb, sem_ch5.adb, exp_ch11.adb, ghost.adb,
	exp_ch6.adb, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, sem_ch13.adb,
	exp_ch3.adb: Minor reformatting.

2015-05-26  Bob Duff  <duff@adacore.com>

	* treepr.adb: Minor improvement to debugging routines (pp, pn)
	robustness.  Rearrange the code so passing a nonexistent Node_Id
	prints "No such node" rather than crashing, and causing gdb to
	generate confusing messages.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb: Minor typo fix.

2015-05-26  Yannick Moy  <moy@adacore.com>

	* sem_aux.adb (Subprogram_Body_Entity): Deal with subprogram stubs.

From-SVN: r223685
2015-05-26 12:49:18 +02:00
Hristian Kirtchev
241ebe892a exp_ch3.adb (Expand_N_Full_Type_Declaration): Capture, set and restore the Ghost mode.
2015-05-26  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Expand_N_Full_Type_Declaration): Capture, set and
	restore the Ghost mode.
	(Expand_N_Object_Declaration): Capture, set and restore the Ghost mode.
	(Freeze_Type): Update the call to Set_Ghost_Mode.
	(Restore_Globals): New routine.
	* exp_ch5.adb Add with and use clauses for Ghost.
	(Expand_N_Assignment_Statement): Capture, set and restore the
	Ghost mode.
	(Restore_Globals): New routine.
	* exp_ch6.adb Add with and use clauses for Ghost.
	(Expand_N_Procedure_Call_Statement): Capture, set and
	restore the Ghost mode.
	(Expand_N_Subprogram_Body):
	Code cleanup. Capture, set and restore the Ghost mode.
	(Expand_N_Subprogram_Declaration): Capture, set and restore the
	Ghost mode.
	(Restore_Globals): New routine.
	* exp_ch7.adb Add with and use clauses for Ghost.
	(Expand_N_Package_Body): Capture, set and restore the Ghost mode.
	(Expand_N_Package_Declaration): Capture, set and restore the
	Ghost mode.
	(Wrap_HSS_In_Block): Create a proper identifier for the block.
	* exp_ch8.adb Add with and use clauses for Ghost.
	(Expand_N_Exception_Renaming_Declaration): Code
	cleanup. Capture, set and restore the Ghost mode.
	(Expand_N_Object_Renaming_Declaration): Capture, set and restore
	the Ghost mode.
	(Expand_N_Package_Renaming_Declaration): Capture, set and restore the
	Ghost mode.
	(Expand_N_Subprogram_Renaming_Declaration): Capture, set and
	restore the Ghost mode.
	* exp_ch11.adb (Expand_N_Exception_Declaration): Code
	cleanup. Capture, set and restore the Ghost mode.
	* exp_disp.adb (Make_DT): Update the call to Set_Ghost_Mode. Do
	not initialize the dispatch table slot of a Ghost subprogram.
	* exp_prag.adb Add with and use clauses for Ghost.
	(Expand_Pragma_Check): Capture, set and restore the Ghost mode.
	(Expand_Pragma_Contract_Cases): Capture, set and restore the
	Ghost mode.
	(Expand_Pragma_Initial_Condition): Capture, set and
	restore the Ghost mode.
	(Expand_Pragma_Loop_Variant): Capture,
	set and restore the Ghost mode.
	(Restore_Globals): New routine.
	* exp_util.adb Add with and use clauses for Ghost.
	(Make_Predicate_Call): Code cleanup. Capture, set and restore
	the Ghost mode.
	(Restore_Globals): New routine.
	* freeze.adb (Freeze_Entity): Code cleanup. Update the call
	to Set_Ghost_Mode.
	* ghost.adb Add with and use clause for Sem_Prag.
	(Check_Ghost_Completion): Code cleanup.
	(Check_Ghost_Overriding): New routine.
	(Check_Ghost_Policy): Code cleanup.
	(Ghost_Entity): New routine.
	(Is_Ghost_Declaration): Removed.
	(Is_Ghost_Statement_Or_Pragma): Removed.
	(Is_OK_Context): Reimplemented.
	(Is_OK_Declaration): New routine.
	(Is_OK_Pragma): New routine.
	(Is_OK_Statement): New routine.
	(Mark_Full_View_As_Ghost): New routine.
	(Mark_Pragma_As_Ghost): New routine.
	(Mark_Renaming_As_Ghost): New routine.
	(Propagate_Ignored_Ghost_Code): Update the comment on usage.
	(Set_From_Entity): New routine.
	(Set_From_Policy): New routine.
	(Set_Ghost_Mode): This routine now handles pragmas and freeze nodes.
	(Set_Ghost_Mode_For_Freeze): Removed.
	(Set_Ghost_Mode_From_Entity): New routine.
	(Set_Ghost_Mode_From_Policy): Removed.
	* ghost.ads (Check_Ghost_Overriding): New routine.
	(Mark_Full_View_As_Ghost): New routine.
	(Mark_Pragma_As_Ghost): New routine.
	(Mark_Renaming_As_Ghost): New routine.
	(Set_Ghost_Mode): Update the parameter profile. Update the
	comment on usage.
	(Set_Ghost_Mode_For_Freeze): Removed.
	(Set_Ghost_Mode_From_Entity): New routine.
	* sem_ch3.adb (Analyze_Full_Type_Declaration):
	Capture and restore the Ghost mode. Mark a type
	as Ghost regardless of whether it comes from source.
	(Analyze_Incomplete_Type_Decl): Capture, set and restore the
	Ghost mode.
	(Analyze_Number_Declaration): Capture and restore the Ghost mode.
	(Analyze_Object_Declaration): Capture and restore the Ghost mode.
	(Analyze_Private_Extension_Declaration): Capture and
	restore the Ghost mode.
	(Analyze_Subtype_Declaration): Capture and restore the Ghost mode.
	(Process_Full_View): The full view inherits all Ghost-related
	attributes from the private view.
	(Restore_Globals): New routine.
	* sem_ch5.adb (Analyze_Assignment): Capture and restore the
	Ghost mode.
	(Restore_Globals): New routine.
	* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration):
	Code cleanup. Capture and restore the Ghost mode. Mark a
	subprogram as Ghost regarless of whether it comes from source.
	(Analyze_Procedure_Call): Capture and restore the Ghost mode.
	(Analyze_Subprogram_Body_Helper): Capture and restore the Ghost mode.
	(Analyze_Subprogram_Declaration): Capture and restore the Ghost mode.
	(New_Overloaded_Entity): Ensure that a
	parent subprogram and an overriding subprogram have compatible
	Ghost policies.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Capture and restore
	the Ghost mode.
	(Analyze_Package_Declaration): Capture and
	restore the Ghost mode. Mark a package as Ghost when it is
	declared in a Ghost region.
	(Analyze_Private_Type_Declaration): Capture and restore the Ghost mode.
	(Restore_Globals): New routine.
	* sem_ch8.adb (Analyze_Exception_Renaming): Code
	reformatting. Capture and restore the Ghost mode. A renaming
	becomes Ghost when its name references a Ghost entity.
	(Analyze_Generic_Renaming): Capture and restore the Ghost mode. A
	renaming becomes Ghost when its name references a Ghost entity.
	(Analyze_Object_Renaming): Capture and restore the Ghost mode. A
	renaming becomes Ghost when its name references a Ghost entity.
	(Analyze_Package_Renaming): Capture and restore the Ghost mode. A
	renaming becomes Ghost when its name references a Ghost entity.
	(Analyze_Subprogram_Renaming): Capture and restore the Ghost
	mode. A renaming becomes Ghost when its name references a
	Ghost entity.
	* sem_ch11.adb (Analyze_Exception_Declaration): Capture, set
	and restore the Ghost mode.
	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture and
	restore the Ghost mode.
	(Analyze_Generic_Subprogram_Declaration):
	Capture and restore the Ghost mode.
	* sem_ch13.adb Add with and use clauses for Ghost.
	(Add_Invariant): New routine.
	(Add_Invariants): Factor out code.
	(Add_Predicate): New routine.
	(Add_Predicates): Factor out code.
	(Build_Invariant_Procedure_Declaration): Code cleanup. Capture,
	set and restore the Ghost mode.
	(Build_Invariant_Procedure): Code cleanup.
	(Build_Predicate_Functions): Capture, set and
	restore the Ghost mode. Mark the generated functions as Ghost.
	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
	Capture, set and restore the Ghost mode.
	(Analyze_External_Property_In_Decl_Part): Capture, set and restore
	the Ghost mode.
	(Analyze_Initial_Condition_In_Decl_Part):
	Capture, set and restore the Ghost mode.
	(Analyze_Pragma):
	Code cleanup. Capture, set and restore the Ghost mode. Flag
	pragmas Linker_Section, No_Return, Unmodified, Unreferenced and
	Unreferenced_Objects as illegal when it applies to both Ghost
	and living arguments. Pragma Ghost cannot apply to synchronized
	objects.
	(Check_Kind): Moved to the spec of Sem_Prag.
	(Process_Inline): Flag the pragma as illegal when it applies to
	both Ghost and living arguments.
	(Restore_Globals): New routine.
	* sem_prag.ads Add pragma Default_Initial_Condition
	to table Assertion_Expression_Pragma. Add new table
	Is_Aspect_Specifying_Pragma.
	(Check_Kind): Moved from body of Sem_Prag.
	* sem_util.adb Add with and use clauses for Ghost.
	(Build_Default_Init_Cond_Procedure_Body): Capture, set and restore
	the Ghost mode.
	(Build_Default_Init_Cond_Procedure_Declaration):
	Capture, set and restore the Ghost mode. Mark the default
	initial condition procedure as Ghost when it is declared
	in a Ghost region.
	(Is_Renaming_Declaration): New routine.
	(Policy_In_List): Account for the single argument version of
	Check_Pragma.
	* sem_util.ads (Is_Renaming_Declaration): New routine.
	* sinfo.adb (Is_Ghost_Pragma): New routine.
	(Set_Is_Ghost_Pragma): New routine.
	* sinfo.ads New attribute Is_Ghost_Pragma.
	(Is_Ghost_Pragma): New routine along with pragma Inline.
	(Set_Is_Ghost_Pragma): New routine along with pragma Inline.

From-SVN: r223684
2015-05-26 12:46:58 +02:00
Torvald Riegel
138cac6426 Fix memory order description in atomic ops built-ins docs.
From-SVN: r223683
2015-05-26 10:45:56 +00:00
Arnaud Charlet
b68cf874f6 [multiple changes]
2015-05-26  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_aux.adb, sem_aux.ads, exp_ch6.adb, sprint.adb:
	Minor reformatting.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

	* gnat1drv.adb, targparm.adb, targparm.ads, restrict.adb: Minor
	reformatting and typo fixes in comments.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Swap_Private_Dependets): Set visibility of
	the two views of a private dependent in two separate steps,
	to ensure proper visibility in parent units analyzed for inlining.

From-SVN: r223682
2015-05-26 12:42:26 +02:00
Yannick Moy
ff1bedacc8 sem_aux.adb, [...] (Get_Low_Bound): Use Type_Low_Bound.
2015-05-26  Yannick Moy  <moy@adacore.com>

	* sem_aux.adb, sem_aux.ads (Get_Low_Bound): Use Type_Low_Bound.
	(Package_Body, Package_Spec): New queries moved
	here from GNATprove.
	(Package_Specification): Simplify query to remove use of loop.
	* sem_util.adb, sem_util.ads (Enclosing_Declaration,
	Enclosing_Package_Or_Subprogram, Is_Attribute_Update): New
	queries moved here from GNATprove.

From-SVN: r223681
2015-05-26 12:40:39 +02:00
Arnaud Charlet
a7b3792787 [multiple changes]
2015-05-26  Bob Duff  <duff@adacore.com>

	* einfo.adb, einfo.ads, sprint.adb, lib-xref.ads: Minor cleanup: Remove
	obsolete Entity_Kinds E_String_Type and E_String_Subtype. Update
	redundant assertions.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb, sem_util.ads, sem_ch13.adb: Minor typo fixes.

From-SVN: r223680
2015-05-26 12:39:16 +02:00
Arnaud Charlet
8349613899 [multiple changes]
2015-05-26  Doug Rupp  <rupp@adacore.com>

	* init.c [vxworks]: Refine previous checkin.

2015-05-26  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Wrap_MA): New function.
	(Expand_N_Op_Expon): Use Wrap_MA.

2015-05-26  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
	Do not use secondary stack to return limited records with
	defaulted discriminants. This is an efficiency improvement.
	* exp_ch6.adb, exp_dist.adb, sem_attr.adb, sem_aux.adb, sem_aux.ads,
	sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb,
	sem_util.adb: Change the sense of Is_Indefinite_Subtype to be
	Is_Definite_Subtype. This is an improvement to readability (the double
	negative in "not Is_Indefinite_Subtype" was slightly confusing). Also
	disallow passing non-[sub]type entities, an unnecessary and slightly
	bug-prone flexibility.

From-SVN: r223679
2015-05-26 12:35:14 +02:00
Arnaud Charlet
596b25f9a1 [multiple changes]
2015-05-26  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): Defend against
	bad bounds.
	* debug.adb: Document -gnatd.k.
	* erroutc.adb (Set_Msg_Insertion_Line_Number): Implement -gnatd.k.

2015-05-26  Robert Dewar  <dewar@adacore.com>

	* gnat1drv.adb (Gnat1drv): Provide new arguments for
	Get_Target_Parameters.
	* restrict.adb (Set_Restriction_No_Specification_Of_Aspect):
	new procedure.
	(Set_Restriction_No_Use_Of_Attribute): new procedure.
	* restrict.ads (Set_Restriction_No_Specification_Of_Aspect):
	new procedure.
	(Set_Restriction_No_Use_Of_Attribute): new procedure.
	* s-rident.ads (Integer_Parameter_Restrictions): New subtype.
	* targparm.adb (Get_Target_Parameters): Allow new restriction
	pragmas No_Specification_Of_Aspect No_Use_Of_Attribute
	No_Use_Of_Pragma.
	* targparm.ads: New parameters for Get_Target_Parameters.
	* tbuild.adb (Set_NOD): New name for Set_RND.
	(Set_NSA): New procedure.
	(Set_NUA): New procedure.
	(Set_NUP): New procedure.
	* tbuild.ads (Make_SC): Minor reformatting.
	(Set_NOD): New name for Set_RND.
	(Set_NSA, Set_NUA, Set_NUP): New procedure.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* a-stwise.adb (Find_Token): If source'first is not positive,
	an exception must be raised, as specified by RM 2005 A.4.3
	(68/1). This must be checked explicitly, given that run-time
	files are normally compiled without constraint checks.
	* a-stzsea.adb (Find_Token): Ditto.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.ads sem_util.adb (Is_Current_Instance):  New predicate
	to fully implement RM 8.6 (17/3). which earlier only applied
	to synchronized types. Used to preanalyze aspects that include
	current instances of types, such as Predicate and Invariant.
	* sem_res.adb (Resolve_Entity_Name): Use Is_Current_Instance.
	* sem_ch13.adb (Add_Predicates): In ASIS mode, preserve original
	expression of aspect and analyze it to provide proper type
	information.

2015-05-26  Robert Dewar  <dewar@adacore.com>

	* rtsfind.ads: Add entries for RE_Exn[_Long]_Float.
	* s-exnllf.adb (Exn_Float): New function.
	(Exn_Long_Float): New function.
	(Exn_Long_Long_Float): Rewritten interface.
	(Exp): New name for what used to be Exn_Long_Long_Float.
	* s-exnllf.ads (Exn_Float): New function.
	(Exn_Long_Float): New function.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Selected_Component): Do not emit an error
	on a selected component when the prefix is a type name that is
	a Current_Instance.
	* einfo.ads: Minor grammar fix.

2015-05-26  Doug Rupp  <rupp@adacore.com>

	* init.c [vxworks] (sysLib.h): Only for x86.

From-SVN: r223678
2015-05-26 12:29:25 +02:00
Paul Thomas
1b961de9db re PR fortran/66082 (memory leak with automatic array dummy argument with derived type array constructor actual argument)
2015-05-26  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/66082
	* trans-array.c (gfc_conv_array_parameter): Ensure that all
	non-variable arrays with allocatable components have the
	components deallocated after the procedure call.

2015-05-26  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/66082
	* gfortran.dg/allocatable_scalar_13.f90: New test

From-SVN: r223677
2015-05-26 10:20:41 +00:00
Jonathan Wakely
4a72a6ddd2 locale_conv.h: Fix copyright years.
* include/bits/locale_conv.h: Fix copyright years.
	* include/bits/quoted_string.h: Likewise.
	* src/filesystem/Makefile.am: Likewise.
	* testsuite/22_locale/conversions/buffer/1.cc: Likewise.
	* testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
	Likewise.
	* testsuite/22_locale/conversions/string/1.cc: Likewise.
	* testsuite/22_locale/conversions/string/2.cc: Likewise.
	* testsuite/22_locale/conversions/string/3.cc: Likewise.
	* testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
	Likewise.
	* testsuite/22_locale/conversions/string/requirements/typedefs.cc:
	Likewise.
	* testsuite/util/testsuite_fs.h: Likewise.

From-SVN: r223676
2015-05-26 10:52:25 +01:00
Arnaud Charlet
556d1a44c8 [multiple changes]
2015-05-26  Doug Rupp  <rupp@adacore.com>

	* init-vxsim.c (CPU): define as __VXSIM_CPU__
	* sigtramp-vxworks-vxsim.c (CPU): Likewise.
	sigtramp-vxworks-target.inc: Add check for SIMLINUX.
	* sigtramp.h: Likewise.

2015-05-26  Robert Dewar  <dewar@adacore.com>

	* sem_aux.adb, sem_disp.adb, sem_util.ads: Add comment.
	* sem_util.adb: Minor reformatting

From-SVN: r223675
2015-05-26 11:42:58 +02:00
Yannick Moy
90a4b33679 inline.adb (Has_Initialized_Type): Adapt to new names.
2015-05-26  Yannick Moy  <moy@adacore.com>

	* inline.adb (Has_Initialized_Type): Adapt to new names.
	* sem_aux.adb, sem_aux.ads (Get_Low_Bound, Number_Components,
	Subprogram_Body, Subprogram_Body_Entity, Subprogram_Spec,
	Subprogram_Specification): New query functions used in GNATprove.
	* sem_disp.adb, sem_disp.ads (Is_Overriding_Subprogram): New
	query functions used in GNATprove.
	* sem_util.adb, sem_util.adso (Enclosing_Lib_Unit_Node,
	Get_Cursor_Type, Get_Return_Object, Get_User_Defined_Eq,
	Is_Double_Precision_Floating_Point_Type,
	Is_Single_Precision_Floating_Point_Type): New query functions
	used in GNATprove.

From-SVN: r223674
2015-05-26 11:35:07 +02:00
Arnaud Charlet
35fd12d804 [multiple changes]
2015-05-26  Bob Duff  <duff@adacore.com>

	* s-rpc.ads (Partition_ID): Increase maximum Partition_ID to
	some huge number.
	* a-except-2005.adb, a-except-2005.ads, a-except.adb,
	a-except.ads, a-exexda.adb, a-exstat.adb: Minor comment fixes.

2015-05-26  Robert Dewar  <dewar@adacore.com>

	* sinfo.adb: Minor comment addition.
	* einfo.adb: Minor whitespace and punctuation fix.
	* sem_util.adb: Minor editing of comments.

From-SVN: r223673
2015-05-26 11:33:01 +02:00
Arnaud Charlet
e8c84c8fc3 [multiple changes]
2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Install_Private_Declarations,
	Swap_Private_Dependents): Ensure that both views of the dependent
	subtype are immediately visible if we are within their scope. This
	may be needed when a procedure body is both the parent of an
	instantiated child unit, and is itself used to inline a local
	function.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

	* exp_prag.adb, gnat1drv.adb: Minor reformatting.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_N_Indexed_Component): In the circuit
	detecting exceptions to the rewriting, deal with implicit
	dereferences in the selected component case.

2015-05-26  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Analyze_One_Aspect): Do not
	require the expression of the Disable_Controlled aspect to be
	static in a generic template, because 'Enabled is not known
	until the instance.

2015-05-26  Doug Rupp  <rupp@adacore.com>

	* init-vxsim.c: New file for vxsim ZCX
	* sigtramp-vxworks-vxsim.c: Likewise.
	* sigtramp-vxworks.c: Factor out target dependent bits into ...
	* sigtramp-vxworks-target.inc: ... here.
	* sigtramp.h: Add vxsim zcx protos.
	* init.c [vxworks...] (sysLib.h): Include.
	(__gnat_map_signal): Make global.
	 [...i386] (__gnat_error_handler): Call __gnat_vxsim_error_handler if
	on vxsim.
	[...i386] (__gnat_install_handler): Test if on vxsim.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): For an element
	iterator over an array, if the component is aliased, the loop
	variable is aliased as well.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Actuals): For a function call with in-out
	parameters that is rewritten as an expression_with_actions,
	we preserve the original function call node for further use by
	the caller (typically Expand_Call). In the presence of validity
	checks, that function call, though it is labelled Analyzed to
	prevent an infinite recursion, may be rewritten as a temporary
	by Remove_Side_Effects.  Ensure that the caller has access to
	the original function call to continue expansion.
	* atree.ads: Minor typo in comment.

2015-05-26  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb (Check_Function_Writable_Actuals):
	Add missing support to check the violation of writable actuals
	in array aggregates that have a nonstatic range.

From-SVN: r223672
2015-05-26 11:28:14 +02:00
Hristian Kirtchev
b9eb3aa8a2 exp_ch6.adb (Process_Contract_Cases_For): Update the call to Expand_Pragma_Contract_Cases.
2015-05-26  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb (Process_Contract_Cases_For): Update the call to
	Expand_Pragma_Contract_Cases.
	* exp_prag.ads, exp_prag.adb (Expand_Contract_Cases): Rename to
	Expand_Pragma_Contract_Cases.
	* sem_ch13.adb (Add_Invariants): Use the original aspect name
	when creating the arguments of pragma Check. This ensures that
	'Class is properly recognized and handled.

From-SVN: r223671
2015-05-26 11:20:53 +02:00
Richard Biener
a12e42fc3d tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
2015-05-26  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
	(vect_analyze_loop_operations): ... here.  Remove slp parameter,
	detect whether we apply SLP.  Remove call to
	vect_update_slp_costs_according_to_vf.
	(vect_analyze_loop_2): Call vect_update_vf_for_slp and
	vect_update_slp_costs_according_to_vf from here.  Dispatch
	to vect_slp_analyze_operations to analyze SLP stmts.
	* tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
	unused bb_vec_info parameter, adjust assert.
	(vect_slp_analyze_operations): Pass in the slp instance tree
	instead of bb_vec_info.
	(vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
	* tree-vectorizer.h (vect_slp_analyze_operations): Declare.

From-SVN: r223670
2015-05-26 09:03:53 +00:00