1. 27 May, 2015 9 commits
    • stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr instead of downcasting. · 151fbaac
      	* include/bits/stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr
      	instead of downcasting.
      	(_Rb_tree::_M_copy): Change second parameter to _Base_ptr.
      	(_Rb_tree::_M_lower_bound, _Rb_tree:_M_upper_bound): Likewise.
      	(_Rb_tree::_S_iter): Remove.
      	(_Rb_tree::_S_lower_bound_tr, _Rb_tree::_S_upper_bound_tr): Remove.
      	(_Rb_tree::_M_find_tr(const _Kt&) const): Call _M_lower_bound_tr
      	instead of _S_lower_bound_tr
      	(_Rb_tree::_M_find_tr(const _Kt&)): Call const overload.
      	(_Rb_tree::_M_lower_bound_tr(const _Kt&) const): Do the search here
      	instead of calling _S_lower_bound_tr.
      	(_Rb_tree::_M_lower_bound_tr(const _Kt&)): Call const overload.
      	(_Rb_tree::_M_upper_bound_tr(const _Kt&) const): Do the search here
      	instead of calling _S_upper_bound_tr.
      	(_Rb_tree::_M_upper_bound_tr(const _Kt&)): Call const overload.
      	(_Rb_tree::_M_equal_range_tr(const _Kt&)): Likewise.
      	(_Rb_tree::equal_range): Use _Base_ptr for end pointer.
      	(_Rb_tree::_M_get_insert_unique_pos): Likewise.
      	(_Rb_tree::_M_get_insert_equal_pos): Likewise.
      	(_Rb_tree::_M_insert_equal_lower_node): Likewise.
      	(_Rb_tree::_M_insert_unique, _Rb_tree::_M_emplace_unique,
      	_Rb_tree::_M_emplace_hint_unique): Remove static_cast.
      
      From-SVN: r223746
      Jonathan Wakely committed
    • re PR libstdc++/66017 (Undefined behaviour in std::set<long long>) · 2097b5b0
      	PR libstdc++/66017
      	* include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_membuf.
      	(_Rb_tree_iterator, _Rb_tree_const_iterator): Support construction
      	from _Base_ptr.
      	(_Rb_tree_const_iterator::_M_const_cast): Remove static_cast.
      	(_Rb_tree::begin, _Rb_tree::end): Remove static_cast.
      	* include/ext/aligned_buffer.h (__aligned_membuf): New type using
      	alignment of _Tp as a member subobject, not as a complete object.
      	* python/libstdcxx/v6/printers.py (StdRbtreeIteratorPrinter): Lookup
      	_Link_type manually as it might not be in the debug info.
      
      From-SVN: r223745
      Jonathan Wakely committed
    • tree-vect-stmts.c (vectorizable_load): Initialize slp_perm earlier and remove ??? comment. · b1af7da6
      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
      Richard Biener committed
    • trans-stmt.c (gfc_trans_allocate): Add missing location information for e3rhs. · d4cecb13
      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
      Andre Vehreschild committed
    • target.c (gomp_map_pointer): New function abstracting out GOMP_MAP_POINTER handling. · 1716efeb
      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
      Chung-Lin Tang committed
    • combine.c (find_split_point): Verify that the shift count is a constant when... · 7553271e
             * combine.c (find_split_point): Verify that the shift count is a
             constant when choosing (plus (ashift ...)) as a split point.
      
      From-SVN: r223736
      Jeff Law committed
    • tree-ssa-threadupdate.c: Replace 8 space sequences with tabs. · 7499cd25
              * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
              No functional changes.
      
      From-SVN: r223734
      Jeff Law committed
    • * ipa-polymorphic-call.c · 6acd8c92
      	(ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
      	case when call target is already known.
      
      From-SVN: r223733
      Jan Hubicka committed
    • Daily bump. · c6b8c3ad
      From-SVN: r223729
      GCC Administrator committed
  2. 26 May, 2015 31 commits
    • xmethods.py (UniquePtrMethodsMatcher): Add operator-> support. · 419587a0
      	* python/libstdcxx/v6/xmethods.py (UniquePtrMethodsMatcher): Add
      	operator-> support.
      	* testsuite/libstdc++-xmethods/unique_ptr.cc: Add tests for
      	operator->.
      
      From-SVN: r223723
      Doug Evans committed
    • re PR target/65979 ([SH] Wrong code is generated with stage1 compiler) · afa5920a
      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
      Oleg Endo committed
    • trans.c (Attribute_to_gnu): Do not bother about NaN's if Machine_Overflows is true. · 89d5c50b
      	* 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
      Eric Botcazou committed
    • trans.c (gnat_to_gnu): Really force evaluation of the expression... · 545b4923
      	* 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
      Eric Botcazou committed
    • trans.c (Attribute_to_gnu): Do not apply extra-precision trick to literals. · c68cdfac
      	* 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
      Eric Botcazou committed
    • ada-tree.h (DECL_GLOBAL_NONCONSTANT_RENAMING_P): Delete · 241125b2
      	* 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
      Eric Botcazou committed
    • gigi.h (gnat_stabilize_reference): Adjust prototype. · 7194767c
      	* 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
      Eric Botcazou committed
    • jni.exp (gcj_jni_get_cxxflags_invocation): Add libiconv for FreeBSD to cxxflags. · 517d07c9
      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
      Andreas Tobler committed
    • line-map.c (LINE_MAP_MAX_COLUMN_NUMBER… · 815facd3
      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
      Manuel López-Ibáñez committed
    • re PR middle-end/66251 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484) · cee62fee
      	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
      Michael Matz committed
    • re PR target/66049 (Few AArch64 extend and add with shift tests generates sub… · dd1bdce4
      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
      Venkataramanan Kumar committed
    • * config/rs6000/constraints.md (Y, U): Use match_test. · efac9d45
      From-SVN: r223702
      David Edelsohn committed
    • fix entry · 28c206e1
      From-SVN: r223701
      Christian Bruel committed
    • fix entry · b1d11d62
      From-SVN: r223700
      Christian Bruel committed
    • re PR target/52144 (ARM should support arm/thumb function attribute to permit… · 08793a38
      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
      Christian Bruel committed
    • 2015-05-26 Christian Bruel <christian.bruel@st.com> · 7049e4eb
      	* 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
      Christian Bruel committed
    • re PR tree-optimization/66142 (Loop is not vectorized because not sufficient… · ea3eac3a
      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
      Richard Biener committed
    • [multiple changes] · bff469f7
      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
      Arnaud Charlet committed
    • re PR ipa/66181 (/usr/include/bits/types.h:134:16: ICE: verify_type failed) · 70c3fcfc
      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
      Ramana Radhakrishnan committed
    • configure.ac: Set CXXFLAGS for ISL test. · a4716210
      	* configure.ac: Set CXXFLAGS for ISL test.
      	* configure: Regenerate.
      
      From-SVN: r223694
      Jason Merrill committed
    • configure.ac: When bootstrapping with GCC, add -std=c++98 to CXX. · 46070488
      	* configure.ac: When bootstrapping with GCC, add -std=c++98 to CXX.
      	* configure: Regenerate.
      
      From-SVN: r223692
      Jason Merrill committed
    • configure.ac: Use C++ for all tests. · 13ccfea8
      	* configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
      	strstr and basename.
      	* configure: Regenerate.
      
      From-SVN: r223691
      Jason Merrill committed
    • fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and X % C -> X & (C - 1)… · 8f0c696a
      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
      Richard Biener committed
    • match.pd (swapped_tcc_comparison): New operator list. · 534bd33b
      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
      Marc Glisse committed
    • caller-save.c (init_caller_save): Base temporary register numbers on… · c3dc5e66
      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
      Richard Sandiford committed
    • gensupport.h (compute_test_codes): Declare. · 851ee5f4
      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
      Richard Sandiford committed
    • [multiple changes] · 3a37ecec
      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
      Arnaud Charlet committed
    • [multiple changes] · ad4ba28b
      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
      Arnaud Charlet committed
    • exp_ch3.adb (Expand_N_Full_Type_Declaration): Capture, set and restore the Ghost mode. · 241ebe89
      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
      Hristian Kirtchev committed
    • Fix memory order description in atomic ops built-ins docs. · 138cac64
      From-SVN: r223683
      Torvald Riegel committed
    • [multiple changes] · b68cf874
      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
      Arnaud Charlet committed