1. 19 Aug, 2012 2 commits
  2. 15 Aug, 2012 2 commits
    • Add missing entry for merge from cxx-conversion branch. · 4b78ca9d
      From-SVN: r190419
      Eric Botcazou committed
    • backport: As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html... · 0823efed
      Merge from cxx-conversion branch (http://gcc.gnu.org/wiki/cxx-conversion).
      
      As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, this patch
      changes the default bootstrap process so that stage 1 always builds with a C++
      compiler.
      
      Other than the bootstrap change, the patch makes no functional changes to the
      compiler.  Everything should build as it does now in trunk.  The main
      changes in this patch are:
      
      1- Configuration changes.
      2- Re-write of VEC.
      3- Re-write of gengtype to support C++ templates and
         user-provided marking functions.
      4- New hash table class.
      5- Re-write double_int.
      6- Implement tree macros as inline functions so they can be
         called from gdb.
      
      As discussed before, several of these changes do not fully change
      the call sites to use the new APIs.
      
      The bootstrap changes have already been tested on a wide range of
      targets (http://gcc.gnu.org/wiki/CppBuildStatus).  Additionally,
      I have tested the merged trunk on: x86_64-unknown-linux-gnu,
      mips64el-unknown-linux-gnu, powerpc64-unknown-linux-gnu,
      i686-pc-linux-gnu, and ia64-unknown-linux-gnu.
      
      ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.
      
      	* Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove
      	POSTSTAGE1_CONFIGURE_FLAGS.
      	* Makefile.in: Regenerate.
      	* configure.ac (ENABLE_BUILD_WITH_CXX): Remove.  Update all users.
      	Force C++ when bootstrapping.
      	* configure: Regenerate.
      
      
      libcpp/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* configure.ac: Likewise.
      	* configure: Regenerate.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge from cxx-conversion branch.  New C++ hash table.
      
      	* include/symtab.h (typedef struct ht hash_table): Change the typedef
      	name to cpp_hash_table.  Update all users of the typedef.
      
      gcc/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* configure.ac (CXX_FOR_BUILD): Define and substitute.
      	(BUILD_CXXFLAGS): Define.
      	Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	Force all build to be with C++.
      	* Makefile.in (BUILD_CXXFLAGS): Use it.
      	Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* doc/install.texi: Remove documentation for --enable-build-with-cxx
      	and --enable-build-poststage1-with-cxx.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Re-implement VEC in C++.
      
      	* vec.c (vec_heap_free): Convert into a template function.
      	(vec_gc_o_reserve_1): Make extern.
      	(vec_gc_p_reserve): Remove.
      	(vec_gc_p_reserve_exact): Remove.
      	(vec_gc_o_reserve): Remove.
      	(vec_gc_o_reserve_exact): Remove.
      	(vec_heap_o_reserve_1): Make extern.
      	(vec_heap_p_reserve): Remove.
      	(vec_heap_p_reserve_exact): Remove.
      	(vec_heap_o_reserve): Remove.
      	(vec_heap_o_reserve_exact): Remove.
      	(vec_stack_p_reserve): Remove.
      	(vec_stack_p_reserve_exact): Remove.
      	* vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS,
      	VEC_ASSERT, VEC_ASSERT_FAIL, vec_assert_fail): Move earlier
      	in the file.
      	(VEC): Define to vec_t<T>.
      	(vec_allocation_t): Define.
      	(struct vec_prefix): Move earlier in the file.
      	(vec_t<T>): New template.
      	(DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
      	DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
      	DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
      	DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
      	(DEF_VEC_A): Provide template instantiations for
      	GC/PCH markers that do not traverse the vector.
      	(vec_stack_p_reserve): Remove.
      	(vec_stack_p_reserve_exact): Remove.
      	(vec_stack_p_reserve_exact_1): Remove.
      	(vec_stack_o_reserve): Remove.
      	(vec_stack_o_reserve_exact): Remove.
      	(vec_stack_free): Re-write as a template function.
      	(vec_reserve): New template function.
      	(vec_reserve_exact): New template function.
      	(vec_heap_free): New template function if GATHER_STATISTICS is
      	defined.  Otherwise, macro that expands to free().
      	(VEC_length_1): New template function.
      	(VEC_length): Call it.
      	(VEC_empty_1): New template function.
      	(VEC_empty): Call it.
      	(VEC_address_1): New template function.
      	(VEC_address): Call it.
      	(VEC_last_1): New template function.
      	(VEC_last): Call it.  Change return type to T&.
      	Change all users that used VEC_Os.
      	(VEC_index_1): New template function.
      	(VEC_index): Call it.  Return a T& instead of a T*.
      	Update all callers that were using VEC_O before.
      	(VEC_iterate_1): New template function.
      	(VEC_iterate): Call it.
      	(VEC_embedded_size_1): New template function.
      	(VEC_embedded_size): Call it.
      	(VEC_embedded_init_1): New template function.
      	(VEC_embedded_init): Call it.
      	(VEC_alloc_1): New template function.
      	(VEC_alloc): Call it.  If A is 'stack', call XALLOCAVAR to
      	do the allocation.
      	(VEC_free_1): New template function.
      	(VEC_free): Call it.
      	(VEC_copy_1): New template function.
      	(VEC_copy): Call it.
      	(VEC_space_1): New template function
      	(VEC_space): Call it.
      	(VEC_reserve_1): New template function.
      	(VEC_reserve): Call it.
      	(VEC_reserve_exact_1): New template function.
      	(VEC_reserve_exact): Call it.
      	(VEC_splice_1): New template function.
      	(VEC_splice): Call it.
      	(VEC_safe_splice_1): New template function.
      	(VEC_safe_splice): Call it.
      	(VEC_quick_push_1): New template function.  Create two overloads, one
      	accepting T, the other accepting T *.  Update all callers
      	where T and T * are ambiguous.
      	(VEC_quick_push): Call it.
      	(VEC_safe_push_1): New template function. Create two overloads, one
      	accepting T, the other accepting T *.  Update all callers
      	where T and T * are ambiguous.
      	(VEC_safe_push): Call it.
      	(VEC_pop_1): New template function.
      	(VEC_pop): Call it.
      	(VEC_truncate_1): New template function.
      	(VEC_truncate): Call it.
      	(VEC_safe_grow_1): New template function.
      	(VEC_safe_grow): Call it.
      	(VEC_safe_grow_cleared_1): New template function.
      	(VEC_safe_grow_cleared): Call it.
      	(VEC_replace_1): New template function.
      	(VEC_replace): Call it.  Always accept T instead of T*.
      	Update all callers that used VEC_Os.
      	(VEC_quick_insert_1): New template function.
      	(VEC_quick_insert): Call it.
      	(VEC_safe_insert_1): New template function.
      	(VEC_safe_insert): Call it.
      	(VEC_ordered_remove_1): New template function.
      	(VEC_ordered_remove): Call it.
      	(VEC_unordered_remove_1): New template function.
      	(VEC_unordered_remove): Call it.
      	(VEC_block_remove_1): New template function.
      	(VEC_block_remove): Call it.
      	(VEC_lower_bound_1): New template function.
      	(VEC_lower_bound): Call it.
      	(VEC_OP): Remove.
      	(DEF_VEC_FUNC_P): Remove.
      	(DEF_VEC_ALLOC_FUNC_P): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_P): Remove.
      	(DEF_VEC_FUNC_O): Remove.
      	(DEF_VEC_ALLOC_FUNC_O): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_O): Remove.
      	(DEF_VEC_ALLOC_FUNC_I): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_I): Remove.
      	(DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
      	(DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
      	(DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
      	(vec_reserve_exact): New template function.
      
      	* gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
      	* gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
      	(typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
      	(def_vec_alloc): Remove.  Update all callers.
      	* gengtype.c (filter_type_name): New.
      	(output_mangled_typename): Call it.
      	(write_func_for_structure): Likewise.
      	(write_types): Likewise.
      	(write_root): Likewise.
      	(write_typed_alloc_def): Likewise.
      	(note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
      	(note_def_vec_alloc): Remove.
      	* gengtype.h (note_def_vec_alloc): Remove.
      	(DEFVEC_ALLOC): Remove token code.
      
      	* df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
      	inside the insn traversal loop.
      	* gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
      	* ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
      	* reg-stack.c (stack): Rename to STACK_PTR.  Update all users.
      	* tree-vrp.c (stack): Rename to EQUIV_STACK.  Update all users.
      
      	* config/bfin/bfin.c (hwloop_optimize): Update some calls to
      	VEC_* for vectors of non-pointers.
      	* config/c6x/c6x.c (try_rename_operands): Likewise.
      	(reshuffle_units): Likewise.
      	* config/mips/mips.c (mips_multi_start): Likewise.
      	(mips_multi_add): Likewise.
      	(mips_multi_copy_insn): Likewise.
      	(mips_multi_set_operand): Likewise.
      	* hw-doloop.c (discover_loop): Likewise.
      	(discover_loops): Likewise.
      	(reorg_loops): Likewise.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  C++ support in gengtype.
      
      	* coretypes.h (gt_pointer_operator): Move from ...
      	* ggc.h: ... here.
      	* doc/gty.texi: Document support for C++ templates and
      	user-provided markers.
      	* gcc/gengtype-lex.l: Update copyright year.
      	Remove support for recognizing DEF_VEC_O, DEF_VEC_P and
      	DEFVEC_I.
      	* gengtype-parse.c: Update copyright year.
      	(token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
      	(require_template_declaration): New.
      	(typedef_name): Call it.
      	(type): Replace IS_UNION with KIND. Replace all users.
      	(def_vec): Remove.  Update all users.
      	* gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
      	(write_state_user_struct_type): New.
      	(write_state_type): Call it.
      	(read_state_user_struct_type): New.
      	(read_state_type): Call it.
      	* gengtype.c: Update copyright year.
      	(dump_pair): Move declaration to the top.
      	(dump_type): Likewise.
      	(dump_type_list): Likewise.
      	(dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
      	(create_user_defined_type): New.
      	(resolve_typedef): Call it.
      	(new_structure): Replace argument ISUNION with KIND.
      	Change users to refer to KIND directly.
      	Update all callers.
      	(find_structure): Likewise.
      	(set_gc_used_type): Handle TYPE_USER_STRUCT.
      	(create_file): Update HDR to include new copyright year.
      	(struct walk_type_data): Add field IN_PTR_FIELD.
      	(output_mangled_typename): Handle TYPE_USER_STRUCT.
      	(walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
      	Clear it afterwards.
      	Handle TYPE_USER_STRUCT.
      	(write_types_process_field): Handle TYPE_USER_STRUCT.
      	(get_type_specifier): Move earlier in the file.
      	(write_type_decl): New.
      	(write_marker_function_name): New.
      	(write_user_func_for_structure_ptr): New.
      	(write_user_func_for_structure_body): New.
      	(write_user_marking_functions): New.
      	(write_func_for_structure): Call write_marker_function_name
      	and write_type_decl.
      	Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
      	function directly.
      	Call write_user_marking_functions on TYPE_USER_STRUCTs.
      	(write_types_local_user_process_field): New.
      	(write_pch_user_walking_for_structure_body): New.
      	(write_pch_user_walking_functions): New.
      	(write_types_local_process_field): Handle TYPE_USER_STRUCT.
      	(write_local_func_for_structure): Do not call walk_type for
      	TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
      	Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
      	(write_root): Handle TYPE_USER_STRUCT.
      	(vec_prefix_type): Remove.  Update all users.
      	(note_def_vec): Remove.  Update all users.
      	(dump_typekind): Handle TYPE_USER_STRUCT.
      	(dump_type): Initialize SEEN_TYPES, if needed.
      	Handle TYPE_USER_STRUCT.
      	(dump_everything): Do not initialize SEEN_TYPES.
      	* gengtype.h: Update copyright year.
      	(enum typekind): Add TYPE_USER_STRUCT.
      	(union_or_struct_p): Rename from UNION_OR_STRUCT_P.
      	Convert into function.
      	Add an overload taking const_type_p.
      	Update all callers.
      	(new_structure): Change second field to type enum typekind.
      	Update all users.
      	(find_structure): Likewise.
      	(note_def_vec): Remove.
      	(DEFVEC_OP): Remove.
      	(DEFVEC_I): Remove.
      	* ggc-page.c (gt_ggc_mx): Add entry points for marking
      	'const char *&', 'unsigned char *&' and 'unsigned char&'.
      	* ggc-zone.c (gt_ggc_mx): Add entry points for marking
      	'const char *&' and 'unsigned char *&'.
      	* stringpool.c (gt_pch_nx): Add entry points for marking
      	'const char *&', 'unsigned char *&' and 'unsigned char&'.
      	Add an entry point for the overload taking arguments 'unsigned char
      	*', 'gt_pointer_operator' and 'void *'.
      	* vec.h (struct vec_prefix): Remove GTY marker.
      	(struct vec_t): Remove GTY((length)) attribute from field 'vec'.
      	(gt_ggc_mx (vec_t<T> *)): New template function.
      	(gt_pch_nx (vec_t<T> *)): New template function.
      	(gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
      	function.
      	(gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
      	function.
      
      	* basic-block.h (struct edge_def): Mark GTY((user)).
      	Remove all GTY markers from fields.
      	(gt_ggc_mx): Declare.
      	(gt_pch_nx): Declare.
      	* tree-cfg.c (gt_ggc_mx): New.
      	(gt_pch_nx): New.
      
      	* gengtype-lex.l (USER_GTY): Add pattern for "user".
      	* gengtype-parse.c (option): Handle USER_GTY.
      	(opts_have): New.
      	(type): Call it.
      	If the keyword 'user' is used, do not walk the fields
      	of the structure.
      	* gengtype.h (USER_GTY): Add.
      	* doc/gty.texi: Update.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge cxx-conversion branch.  Implement C++ hash table.
      
      	* hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
      	* hash-table.c: Likewise.
      	* tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t same_succ_htab): Change type to hash_table;
      	move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(same_succ_print_traverse): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(same_succ_hash): Likewise.
      	(same_succ_equal): Likewise.
      	(same_succ_delete): Likewise.
      	* tree-ssa-threadupdate.c: Include hash-table.h.
      	(struct local_info): Rename to ssa_local_info_t to avoid overloading
      	the type name local_info with the variable name local_info.
      	(static htab_t redirection_data): Change type to hash_table.
      	Move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(redirection_data_hash): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(redirection_data_eq): Likewise.
      	(fix_duplicate_block_edges): Likewise.
      	(create_duplicates): Likewise.
      	(fixup_template_block): Likewise.
      	(redirect_edges): Likewise.
      	(lookup_redirection_data): Change types associated with the hash table
      	from void* to their actual type. Remove unnecessary casts.
      	* tree-ssa-ccp.c: Include hash-table.h.
      	(typedef gimple_htab): New.  Uses hash_table.  Replace specific uses
      	of htab_t with gimple_htab.  Change users to invoke member functions.
      	Move specification of helper functions from create call to declaration.
      	* tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
      	(hash_ssa_name_by_var): Make extern. Remove void* casting.
      	(eq_ssa_name_by_var): Likewise.
      	(coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
      	to hash_table. Change users to invoke member functions.
      	Move specification of helper functions from create call to declaration.
      	* coverage.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t counts_hash): Change type to hash_table;
      	move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(htab_counts_entry_hash): Make extern. Rename with coverage_... instead
      	of htab_... Remove void* casting.
      	(htab_counts_entry_eq): Likewise.
      	(htab_counts_entry_del): Likewise.
      	* tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t expression_to_id): Change type to hash_table.
      	Move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(static htab_t phi_translate_table): Likewise.
      	(pre_expr_eq): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(pre_expr_hash): Likewise.
      	(expr_pred_trans_hash): Likewise.
      	(expr_pred_trans_eq): Likewise.
      	(alloc_expression_id): Change types associated with the hash table
      	from void* to their actual type. Remove unnecessary casts.
      	(lookup_expression_id): Likewise.
      	(phi_trans_lookup): Likewise.
      	(phi_trans_add): Likewise.
      	* stringpool.c: Rename uses of libcpp typedef hash_table to
      	cpp_hash_table.
      	* Makefile.in: Add hash-table.o to OBJS-libcommon-target.
      	Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge from cxx-conversion branch.  Re-write double_int in C++.
      
      	* hash-table.h
      	(typedef double_int): Change to struct (POD).
      	(double_int::make): New overloads for int to double-int conversion.
      	(double_int::mask): New.
      	(double_int::max_value): New.
      	(double_int::min_value): New.
      	(double_int::operator ++): New.
      	(double_int::operator --): New.
      	(double_int::operator *=): New.
      	(double_int::operator +=): New.
      	(double_int::operator -=): New.
      	(double_int::to_signed): New.
      	(double_int::to_unsigned): New.
      	(double_int::fits_unsigned): New.
      	(double_int::fits_signed): New.
      	(double_int::fits): New.
      	(double_int::trailing_zeros): New.
      	(double_int::popcount): New.
      	(double_int::multiple_of): New.
      	(double_int::set_bit): New.
      	(double_int::mul_with_sign): New.
      	(double_int::operator * (binary)): New.
      	(double_int::operator + (binary)): New.
      	(double_int::operator - (binary)): New.
      	(double_int::operator - (unary)): New.
      	(double_int::operator ~ (unary)): New.
      	(double_int::operator & (binary)): New.
      	(double_int::operator | (binary)): New.
      	(double_int::operator ^ (binary)): New.
      	(double_int::and_not): New.
      	(double_int::lshift): New.
      	(double_int::rshift): New.
      	(double_int::alshift): New.
      	(double_int::arshift): New.
      	(double_int::llshift): New.
      	(double_int::lrshift): New.
      	(double_int::lrotate): New.
      	(double_int::rrotate): New.
      	(double_int::div): New.
      	(double_int::sdiv): New.
      	(double_int::udiv): New.
      	(double_int::mod): New.
      	(double_int::smod): New.
      	(double_int::umod): New.
      	(double_int::divmod): New.
      	(double_int::sdivmod): New.
      	(double_int::udivmod): New.
      	(double_int::ext): New.
      	(double_int::zext): New.
      	(double_int::sext): New.
      	(double_int::is_zero): New.
      	(double_int::is_one): New.
      	(double_int::is_minus_one): New.
      	(double_int::is_negative): New.
      	(double_int::cmp): New.
      	(double_int::ucmp): New.
      	(double_int::scmp): New.
      	(double_int::ult): New.
      	(double_int::ugt): New.
      	(double_int::slt): New.
      	(double_int::sgt): New.
      	(double_int::max): New.
      	(double_int::smax): New.
      	(double_int::umax): New.
      	(double_int::min): New.
      	(double_int::smin): New.
      	(double_int::umin): New.
      	(double_int::operator ==): New.
      	(double_int::operator !=): New.
      	(shwi_to_double_int): Change implementation to use member function.
      	(double_int_minus_one): Likewise.
      	(double_int_zero): Likewise.
      	(double_int_one): Likewise.
      	(double_int_two): Likewise.
      	(double_int_ten): Likewise.
      	(uhwi_to_double_int): Likewise.
      	(double_int_to_shwi): Likewise.
      	(double_int_to_uhwi): Likewise.
      	(double_int_fits_in_uhwi_p): Likewise.
      	(double_int_fits_in_shwi_p): Likewise.
      	(double_int_fits_in_hwi_p): Likewise.
      	(double_int_mul): Likewise.
      	(double_int_mul_with_sign): Likewise.
      	(double_int_add): Likewise.
      	(double_int_sub): Likewise.
      	(double_int_neg): Likewise.
      	(double_int_div): Likewise.
      	(double_int_sdiv): Likewise.
      	(double_int_udiv): Likewise.
      	(double_int_mod): Likewise.
      	(double_int_smod): Likewise.
      	(double_int_umod): Likewise.
      	(double_int_divmod): Likewise.
      	(double_int_sdivmod): Likewise.
      	(double_int_udivmod): Likewise.
      	(double_int_multiple_of): Likewise.
      	(double_int_setbit): Likewise.
      	(double_int_ctz): Likewise.
      	(double_int_not): Likewise.
      	(double_int_ior): Likewise.
      	(double_int_and): Likewise.
      	(double_int_and_not): Likewise.
      	(double_int_xor): Likewise.
      	(double_int_lshift): Likewise.
      	(double_int_rshift): Likewise.
      	(double_int_lrotate): Likewise.
      	(double_int_rrotate): Likewise.
      	(double_int_cmp): Likewise.
      	(double_int_scmp): Likewise.
      	(double_int_ucmp): Likewise.
      	(double_int_max): Likewise.
      	(double_int_smax): Likewise.
      	(double_int_umax): Likewise.
      	(double_int_min): Likewise.
      	(double_int_smin): Likewise.
      	(double_int_umin): Likewise.
      	(double_int_ext): Likewise.
      	(double_int_sext): Likewise.
      	(double_int_zext): Likewise.
      	(double_int_mask): Likewise.
      	(double_int_max_value): Likewise.
      	(double_int_min_value): Likewise.
      	(double_int_zero_p): Likewise.
      	(double_int_one_p): Likewise.
      	(double_int_minus_one_p): Likewise.
      	(double_int_equal_p): Likewise.
      	(double_int_popcount): Likewise.
      	* hash-table.c
      	(double_int_mask): Reuse implementation for double_int::mask.
      	(double_int_max_value): Likewise.
      	(double_int_min_value): Likewise.
      	(double_int_ext): Likewise.
      	(double_int_zext): Likewise.
      	(double_int_sext): Likewise.
      	(double_int_mul_with_sign): Likewise.
      	(double_int_divmod): Likewise.
      	(double_int_sdivmod): Likewise.
      	(double_int_udivmod): Likewise.
      	(double_int_div): Likewise.
      	(double_int_sdiv): Likewise.
      	(double_int_udiv): Likewise.
      	(double_int_mod): Likewise.
      	(double_int_smod): Likewise.
      	(double_int_umod): Likewise.
      	(double_int_multiple_of): Likewise.
      	(double_int_lshift): Likewise.
      	(double_int_rshift): Likewise.
      	(double_int_lrotate): Likewise.
      	(double_int_rrotate): Likewise.
      	(double_int_cmp): Likewise.
      	(double_int_ucmp): Likewise.
      	(double_int_scmp): Likewise.
      	(double_int_max): Likewise.
      	(double_int_smax): Likewise.
      	(double_int_umax): Likewise.
      	(double_int_min): Likewise.
      	(double_int_smin): Likewise.
      	(double_int_umin): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int::alshift): New.
      	(double_int::arshift): New.
      	(double_int::llshift): New.
      	(double_int::lrshift): New.
      	(double_int::ult): New.
      	(double_int::ugt): New.
      	(double_int::slt): New.
      	(double_int::sgt): New.
      	(double_int_setbit): Reuse implementation for double_int::set_bit,
      	which avoids a name conflict with a macro.
      	(double_int_double_int_ctz): Reuse implementation for
      	double_int::trailing_zeros.
      	(double_int_fits_in_shwi_p): Reuse implementation for
      	double_int::fits_signed.
      	(double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
      	(double_int_mul): Reuse implementation for binary
      	double_int::operator *.
      	(double_int_add): Likewise.
      	(double_int_sub): Likewise.
      	(double_int_neg): Reuse implementation for unary
      	double_int::operator -.
      	(double_int_max_value): Likewise.
      	* fixed-value.c: Change to use member functions introduced above.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge cxx-conversion branch.  Support tree macro calling
      	from gdb.
      
      	* tree.h (tree_check): New.
      	(TREE_CHECK): Use inline function above instead of __extension__.
      	(tree_not_check): New.
      	(TREE_NOT_CHECK): Use inline function above instead of __extension__.
      	(tree_check2): New.
      	(TREE_CHECK2): Use inline function above instead of __extension__.
      	(tree_not_check2): New.
      	(TREE_NOT_CHECK2): Use inline function above instead of __extension__.
      	(tree_check3): New.
      	(TREE_CHECK3): Use inline function above instead of __extension__.
      	(tree_not_check3): New.
      	(TREE_NOT_CHECK3): Use inline function above instead of __extension__.
      	(tree_check4): New.
      	(TREE_CHECK4): Use inline function above instead of __extension__.
      	(tree_not_check4): New.
      	(TREE_NOT_CHECK4): Use inline function above instead of __extension__.
      	(tree_check5): New.
      	(TREE_CHECK5): Use inline function above instead of __extension__.
      	(tree_not_check5): New.
      	(TREE_NOT_CHECK5): Use inline function above instead of __extension__.
      	(contains_struct_check): New.
      	(CONTAINS_STRUCT_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_class_check): New.
      	(TREE_CLASS_CHECK): Use inline function above instead of __extension__.
      	(tree_range_check): New.
      	(TREE_RANGE_CHECK): Use inline function above instead of __extension__.
      	(omp_clause_subcode_check): New.
      	(OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
      	__extension__.
      	(omp_clause_range_check): New.
      	(OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
      	__extension__.
      	(expr_check): New.
      	(EXPR_CHECK): Use inline function above instead of __extension__.
      	(non_type_check): New.
      	(NON_TYPE_CHECK): Use inline function above instead of __extension__.
      	(tree_vec_elt_check): New.
      	(TREE_VEC_ELT_CHECK): Use inline function above instead of
      	__extension__.
      	(omp_clause_elt_check): New.
      	(OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_operand_check): New.
      	(TREE_OPERAND_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_operand_check_code): New.
      	(TREE_OPERAND_CHECK_CODE): Use inline function above instead of
      	__extension__.
      	(TREE_CHAIN): Simplify implementation.
      	(TREE_TYPE): Simplify implementation.
      	(tree_operand_length): Move for compilation dependences.
      	* gdbinit.in: (macro define __FILE__): New.
      	(macro define __LINE__): New.
      	(skip "tree.h"): New.
      
      gcc/cp/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Re-write VEC in C++.
      
      	* call.c (add_function_candidate): Remove const qualifier
      	from call to VEC_index.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* go-gcc.cc: Likewise.
      	* go-system.h: Likewise.
      
      From-SVN: r190402
      Diego Novillo committed
  3. 06 Aug, 2012 16 commits
    • Makefile.in: Add support for 32-bit VxWorks for SPARC in kernel mode. · af42f4d2
      2012-08-06  Jose Ruiz  <ruiz@adacore.com>                   
                                                                  
      	* gcc-interface/Makefile.in: Add support for 32-bit VxWorks for SPARC   
      	in kernel mode.
      
      From-SVN: r190173
      Jose Ruiz committed
    • [multiple changes] · dc3af7e2
      2012-08-06  Arnaud Charlet  <charlet@adacore.com>
      
      	* prj-attr.adb (Register_New_Package): Add missing blank.
      
      2012-08-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (Is_Two_Dim_Packed_Array): New predicate,
      	used when computing maximum size allowable to construct static
      	aggregate.
      
      2012-08-06  Vincent Pucci  <pucci@adacore.com>
      
      	* freeze.adb (Freeze_Entity): Inherit_Aspects_At_Freeze_Point
      	calls added for derived types and subtypes.
      	* sem_aux.adb, sem_aux.ads (Get_Rep_Item, Get_Rep_Pragma,
      	Has_Rep_Pragma): New routines.
      	* sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): New routine.
      	* sem_ch13.adb (Analyze_Aspect_Specifications): Error message
      	for aspect Lock_Free fixed.
      	(Inherits_Aspects_At_Freeze_Point): New routine.
      	* sem_ch3.adb: Several flag settings removed since inheritance
      	of aspects must be performed at freeze point.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* s-oscons-tmplt.c: Fix s-oscons.ads formatting on VxWorks.
      
      2012-08-06  Vincent Pucci  <pucci@adacore.com>
      
      	* sem_dim.adb (Analyze_Dimension_Binary_Op): Issue an error message
      	for unknown exponent at compile-time.
      
      2012-08-06  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Enhance
      	comment to make it clear that the aggregate's evaluation might
      	still involve run-time checks even though the aggregate is
      	considered known at compile time.
      	* sinfo.ads (Compile_Time_Known_Aggregate): Correct comment to
      	refer to Exp_Aggr instead of Sem_Aggr.
      
      From-SVN: r190172
      Arnaud Charlet committed
    • [multiple changes] · 2eef7403
      2012-08-06  Robert Dewar  <dewar@adacore.com>
      
      	* xoscons.adb: Minor code reorganization (remove unused variable
      	E at line 331).
      	* g-sercom.ads, exp_attr.adb: Minor reformatting.
      	* sinfo.adb, sinfo.ads: Minor cleanup, remove unused flag
      	Static_Processing_OK.
      
      2012-08-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Build_Derived_Concurrent_Type): Copy discriminant
      	constraint when building a constrained subtype, to prevent
      	undesirable tree sharing betweeb geberated subtype and derived
      	type definition.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* g-sercom-mingw.adb, s-oscons-tmplt.c: Add missing constants
      	on Windows.
      
      2012-08-06  Sergey Rybin  <rybin@adacore.com frybin>
      
      	* tree_io.ads: Update ASIS_Version_Number because of the tree fix
      	for discriminant constraints for concurrent types.
      
      From-SVN: r190171
      Arnaud Charlet committed
    • [multiple changes] · cc6c4d62
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* sem_ch4.adb: Minor reformatting.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* s-oscons-tmplt.c, xoscons.adb: Per the Single UNIX Specification,
      	types cc_t, speed_t, and tcflag_t defined in <termios.h> all are
      	unsigned types. Add required special handling to have their correct
      	unsigned values in s-oscons.ads.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* par-ch13.adb: Minor reformatting.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb
      	(Set): Add Local and Flow_Control settings.
      
      2012-08-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_attr.adb: Suppress saving of 'Old if assertions are not
      	enabled.
      
      From-SVN: r190170
      Arnaud Charlet committed
    • [multiple changes] · d7f41b2d
      2012-08-06  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch4.adb (Analyze_Selected_Component): Issue an error in
      	Alfa mode for component not present.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch7.adb (Insert_Actions_In_Scope_Around): Do not
      	use a renaming of Scope_Stack.Table (Scope_Stack.Last), as
      	Process_Transient_Object may introduce new scopes and cause
      	Scope_Stack.Table to be reallocated.
      
      From-SVN: r190167
      Arnaud Charlet committed
    • [multiple changes] · 3217f71e
      2012-08-06  Robert Dewar  <dewar@adacore.com>
      
      	* exp_util.adb, switch-c.adb, inline.ads, sem_ch10.adb, types.ads,
      	checks.adb, sem_prag.adb, sem.adb, sem.ads, sem_res.adb, sem_attr.adb,
      	gnat1drv.adb, exp_ch4.adb, exp_ch6.adb, opt.ads, osint.adb: Implement
      	extended overflow checks (step 1).
      	(Overflow_Check_Type, Suppress_Record, Suppress_All): New types.
      	(Suppress_Array): Extended to include switches to control extended
      	overflow checking (and renamed to Suppress_Record).
      	Update all uses of Suppress_Array.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* makeutl.ads: Minor documentation fix.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch7.adb: Minor reformatting.
      
      From-SVN: r190166
      Arnaud Charlet committed
    • [multiple changes] · e6807723
      2012-08-06  Geert Bosch  <bosch@adacore.com>
      
      	* a-ngelfu.adb: Change obsolete comment that this is a non-strict
      	implementation.
      
      2012-08-06  Steve Baird  <baird@adacore.com>
      
      	* exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): If
      	CodePeer_Mode = True then omit exception handlers for finalization calls
      
      2012-08-06  Robert Dewar  <dewar@adacore.com>
      
      	* exp_aggr.adb: Minor reformatting.
      
      From-SVN: r190165
      Arnaud Charlet committed
    • [multiple changes] · 2aca76d6
      2012-08-06  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch6.adb: Remove useless flag Body_Deleted.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* sinfo.ads (End_Span): Change default from No_Uint to Uint_0,
      	as this is what all usage occurrences of this attribute are
      	expecting.
      	* uintp.adb (UI_To_Int): Add assertion to guard against calling
      	with No_Uint.
      
      From-SVN: r190164
      Arnaud Charlet committed
    • re PR ada/54125 (s-atopri.adb:40:10: "Support_Atomic_Primitives" is undefined… · 0ebc109a
      re PR ada/54125 (s-atopri.adb:40:10: "Support_Atomic_Primitives" is undefined broke Ada on multiple platforms)
      
      2012-08-06  Vincent Pucci  <pucci@adacore.com>
      
      PR ada/54125
      	* exp_attr.adb (Expand_N_Attribute_Reference): Expand new
      	Atomic_Always_Lock_Free attribute.
      	* sem_attr.adb (Analyze_Attribute): Analyze new
      	Atomic_Always_Lock_Free attribute.
      	(Eval_Attribute): Nothing to do with new Atomic_Always_Lock_Free
      	attribute.
      	* sem_ch9.adb (Allows_Lock_Free_Implementation):
      	Support_Atomic_Primitives check replaces previous erroneous
      	size check.
      	* sem_util.adb, sem_util.ads (Support_Atomic_Primitives):
      	New routine.
      	* snames.ads-tmpl: New name Name_Atomic_Always_Lock_Free and
      	new attribute Attribute_Atomic_Always_Lock_Free defined.
      	* s-atopri.adb: Support_Atomic_Primitives checks replaced by
      	Atomic_Always_Lock_Free queries.
      	* system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
      	system-hpux.ads, system-linux-alpha.ads, system-linux-hppa.ads,
      	system-linux-ppc.ads, system-linux-s390.ads,
      	system-linux-s390x.ads, system-linux-sh4.ads,
      	system-linux-sparc.ads, system-lynxos178-ppc.ads,
      	system-lynxos-ppc.ads, system-mingw.ads,
      	system-vxworks-arm.ads, system-solaris-sparc.ads,
      	system-solaris-sparcv9.ads, system-vms_64.ads,
      	system-vxworks-m68k.ads, system-vxworks-mips.ads,
      	system-vxworks-ppc.ads, system-vxworks-sparcv9.ads: Flag
      	Support_Atomic_Primitives removed.
      
      From-SVN: r190163
      Vincent Pucci committed
    • [multiple changes] · a39a553e
      2012-08-06  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_mech.adb (Set_Mechanisms): OUT and IN OUT parameters are
      	now unconditionally passed by reference. IN parameters subject
      	to convention C_Pass_By_Copy are passed by copy, otherwise they
      	are passed by reference.
      
      2012-08-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Analyze_Object_Declaration): According to
      	AI95-0303, protected objects with interrupt handlers can be
      	declared in nested scopes. This is a binding interpretation,
      	and thus applies to all versions of the compiler.
      
      2012-08-06  Robert Dewar  <dewar@adacore.com>
      
      	* frontend.adb, exp_aggr.adb: Minor reformatting.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* par-endh.adb: Minor reformatting.
      
      From-SVN: r190162
      Arnaud Charlet committed
    • [multiple changes] · 5eeeed5e
      2012-08-06  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Process_Transient_Objects): Remove obsolete loop
      	processing related to array initialization. The expansion of
      	loops already contains a mechanism to detect controlled objects
      	generated by expansion and introduce a block around the loop
      	statements for finalization purposes.
      
      2012-08-06  Vincent Pucci  <pucci@adacore.com>
      
      	* sem_ch13.adb: Current scope must be within
      	or same as the scope of the entity while analysing aspect
      	specifications at freeze point.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb: Add note about dubious SCO for TERMINATE
      	alternative.
      	* sem_ch8.adb, exp_ch11.adb: Minor reformatting.
      
      2012-08-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (Two_Dim_Packed_Array_Handled): New procedure to
      	transform an aggregate for a packed two-dimensional array into
      	a one-dimensional array of constant values, in order to avoid
      	the generation of component-by-component assignments.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* frontend.adb: Do not attempt to process deferred configuration
      	pragmas if the main unit failed to load, to avoid cascaded
      	inconsistencies that can lead to a compiler crash.
      
      From-SVN: r190161
      Arnaud Charlet committed
    • [multiple changes] · b5ee491c
      2012-08-06  Vincent Pucci  <pucci@adacore.com>
      
      	* s-atopri.adb: Minor reformatting.
      
      2012-08-06  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat-style.texi: Clarify that all subprograms should be
      	documented. Minor rewording.
      
      From-SVN: r190160
      Arnaud Charlet committed
    • [multiple changes] · f2c992d9
      2012-08-06  Robert Dewar  <dewar@adacore.com>
      
      	* aspects.ads: Define Aspect_Id_Exclude_No_Aspect.
      	* par-ch13.adb, restrict.adb: Use Aspect_Id_Exclude_No_Aspect to
      	simplify code.
      
      2012-08-06  Yannick Moy  <moy@adacore.com>
      
      	* gnat-style.texi: Update style guide for declarations.
      
      2012-08-06  Yannick Moy  <moy@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute): In the case for 'Old,
      	skip a special expansion which is not needed in Alfa mode.
      
      2012-08-06  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch5.adb (Analyze_Iterator_Specification): Do not perform
      	an expansion of the iterator in Alfa mode.
      
      From-SVN: r190159
      Arnaud Charlet committed
    • [multiple changes] · a01da44a
      2012-08-06  Robert Dewar  <dewar@adacore.com>
      
      	* s-oscons-tmplt.c, sem_ch9.adb, osint.adb: Minor reformatting.
      
      2012-08-06  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Remove obsolete
      	Alfa-specific guard. The code is a leftover from an early
      	implementation of iterators which is no longer in use.
      
      2012-08-06  Vincent Celier  <celier@adacore.com>
      
      	* par-ch13.adb (Get_Aspect_Specifications): Do not consider
      	No_Aspect when checking for a mispelled aspect.
      
      From-SVN: r190158
      Arnaud Charlet committed
    • [multiple changes] · 1bd84c71
      2012-08-06  Robert Dewar  <dewar@adacore.com>
      
      	* s-htable.adb: Minor reformatting.
      
      2012-08-06  Thomas Quinot  <quinot@adacore.com>
      
      	* s-oscons-tmplt.c, g-socket.adb (System.OS_Constants.Target_OS):
      	Suppress warnings so that we don't have to do it at each usage.
      
      From-SVN: r190157
      Arnaud Charlet committed
    • [multiple changes] · b3f96dc1
      2012-08-06  Vincent Pucci  <pucci@adacore.com>
      
      	* exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
      	Use of Known_Static_Esize instead of  Known_Esize and
      	Known_Static_RM_Size instead of Known_RM_Size in order to
      	properly call UI_To_Int. Don't check the size of the component
      	type in case of generic.
      	* sem_ch9.adb (Allows_Lock_Free_Implementation):
      	Use of Known_Static_Esize instead of Known_Esize and
      	Known_Static_RM_Size instead of Known_RM_Size in order to properly
      	call UI_To_Int. Don't check the size of the component type in
      	case of generic.
      
      2012-08-06  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb (Discrete_Range_Cond): Do not try to optimize on
      	the assumption that the type of an expression can always fit in
      	the target type of a conversion.
      
      From-SVN: r190156
      Arnaud Charlet committed
  4. 30 Jul, 2012 4 commits
    • [multiple changes] · a5fe079c
      2012-07-30  Robert Dewar  <dewar@adacore.com>
      
      	* bindusg.adb: Clarify file in -A lines.
      
      2012-07-30  Robert Dewar  <dewar@adacore.com>
      
      	* freeze.adb: Minor reformatting.
      
      2012-07-30  Robert Dewar  <dewar@adacore.com>
      
      	* gnatcmd.adb, makeutl.adb, makeutl.ads: Minor code reorganization.
      
      2012-07-30  Vincent Pucci  <pucci@adacore.com>
      
      	* exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Minor
      	reformatting.
      	* sem_ch9.adb (Allows_Lock_Free_Implementation): Minor reformatting.
      	Capture the correct error message in case of a quantified expression.
      
      2012-07-30  Thomas Quinot  <quinot@adacore.com>
      
      	* g-socket.adb (Get_Socket_Option, Set_Socket_Option): On Windows, the
      	value is a milliseconds count in a DWORD, not a struct timeval.
      
      From-SVN: r189979
      Arnaud Charlet committed
    • [multiple changes] · ea2af26a
      2012-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch12.adb (Earlier): Add local variables T1 and T2. Minor code
      	refactoring.
      
      2012-07-30  Thomas Quinot  <quinot@adacore.com>
      
      	* gnatcmd.adb, make.adb, makeutl.adb, makeutl.ads
      	(Test_If_Relative_Path): Rename to Ensure_Absolute_Path to better
      	reflect what this subprogram does. Rename argument Including_L_Switch
      	to For_Gnatbind, and also exempt -A from rewriting.
      	* bindusg.adb: Document optional =file argument to gnatbind -A.
      
      2012-07-30  Ed Schonberg  <schonberg@adacore.com>
      
      	* freeze.adb (Freeze_Entity): Do no apply restriction check on
      	storage pools to access to subprogram types.
      
      From-SVN: r189978
      Arnaud Charlet committed
    • par_sco.adb, [...]: Minor reformatting. · 29ba9f52
      2012-07-30  Robert Dewar  <dewar@adacore.com>
      
      	* par_sco.adb, a-cihama.adb, a-coinve.adb, exp_ch7.adb, a-ciorse.adb,
      	exp_ch9.adb, sem_dim.adb, par-ch13.adb, sem_ch9.adb, a-cidlli.adb,
      	a-cimutr.adb, freeze.adb, a-ciormu.adb, sem_res.adb, sem_attr.adb,
      	a-cihase.adb, exp_ch4.adb, sem_ch4.adb, a-ciorma.adb,
      	s-tasinf-linux.ads, sem_ch13.adb, a-coinho.adb: Minor reformatting.
      	Add comments.
      
      From-SVN: r189977
      Robert Dewar committed
    • sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict implicit dereferences of access values. · b5059fa0
      2012-07-30  Vincent Pucci  <pucci@adacore.com>
      
      	* sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict implicit
      	dereferences of access values.
      
      From-SVN: r189975
      Vincent Pucci committed
  5. 27 Jul, 2012 1 commit
  6. 25 Jul, 2012 1 commit
    • expr.c (expand_expr_real_1): Do not expand operand #1 and #2 of BIT_FIELD_REF for ignored results. · ea814c66
      	* expr.c (expand_expr_real_1): Do not expand operand #1 and #2
      	of BIT_FIELD_REF for ignored results.
      	* fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
      	CONSTRUCTOR has vector type before using vector accessors on it.
      	* gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
      	#2 of BIT_FIELD_REF.
      	(gimplify_expr) <BIT_FIELD_REF>: Likewise.
      	* tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
      	not process operand #1 and #2.
      	(convert_local_reference_op): Likewise.
      	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
      	breaks throughout.
      	<BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
      	* tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
      	operand #1 and #2.
      	(UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
      	(build6_stat): Delete.
      	* tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.
      ada/
      	* gcc-interface/utils2.c (gnat_stabilize_reference) <BIT_FIELD_REF>: Do
      	not stabilize operand #1 and #2.
      
      From-SVN: r189864
      Eric Botcazou committed
  7. 23 Jul, 2012 9 commits
    • [multiple changes] · 678400b3
      2012-07-23  Tristan Gingold  <gingold@adacore.com>
              
      	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Use    
      	End_Label sloc when possible for sloc of the TRY_CATCH_EXPR node.    
      
      2012-07-23  Olivier Hainque  <hainque@adacore.com>
      
      	* gcc-interface/Makefile.in: Adjust processing of Linker_Options for
      	VxWorks.
      	* gcc-interface/Make-lang.in: Update dependencies.
      
      From-SVN: r189777
      Arnaud Charlet committed
    • [multiple changes] · c4250ab1
      2012-07-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* s-tasinf-linux.ads: Fix typo.
      
      2012-07-23  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch7.adb, switch-m.adb, exp_ch3.adb, freeze.adb: Minor reformatting
      
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): If original
      	loop carries an identifier, preserve it when rewriting it as a
      	standard loop to validate exit statements that may reference
      	that name in the body of the loop.
      
      2012-07-23  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch9.adb: Minor code cleanup.
      
      From-SVN: r189776
      Arnaud Charlet committed
    • [multiple changes] · d7a44b14
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Analyze_Selected_Component): When checking for
      	potential ambiguities with class-wide operations on synchronized
      	types, attach the copied node properly to the tree, to prevent
      	errors during expansion.
      
      2012-07-23  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch5.adb (Analyze_Loop_Statement): Make sure the loop body
      	is analyzed in Alfa mode.
      
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb: Adjust previous change.
      
      2012-07-23  Vincent Pucci  <pucci@adacore.com>
      
      	* sem_ch9.adb (Allows_Lock_Free_Implementation): Flag
      	Lock_Free_Given renames previous flag Complain. Description
      	updated. Henceforth, catch every error messages issued by this
      	routine when Lock_Free_Given is True.  Declaration restriction
      	updated: No non-elementary parameter instead (even in parameter)
      	New subprogram body restrictions implemented: No allocator,
      	no address, import or export rep items, no delay statement,
      	no goto statement, no quantified expression and no dereference
      	of access value.
      
      2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb (Determine_Range): Add local variable Btyp. Handle
      	the case where the base type of an enumeration subtype is
      	private. Replace all occurrences of Base_Type with Btyp.
      	* exp_attr.adb (Attribute_Valid): Handle the case where the
      	base type of an enumeration subtype is private. Replace all
      	occurrences of Base_Type with Btyp.
      	* sem_util.adb (Get_Enum_Lit_From_Pos): Add local variable
      	Btyp. Handle the case where the base type of an enumeration
      	subtype is private. Replace all occurrences of Base_Type with
      	Btyp.
      
      From-SVN: r189775
      Arnaud Charlet committed
    • [multiple changes] · 50878404
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* par-ch6.adb (P_Mode): in Ada 2005, a mode indicator can apply
      	to a formal object of an anonymous access type.
      
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Try_Container_Indexing): A user-defined indexing
      	aspect can have more than one index, e.g. to describe indexing
      	of a multidimensional object.
      
      2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch4.adb (Apply_Accessibility_Check): Reimplemented. The check is
      	now more complex and contains optional finalization part and mandatory
      	deallocation part.
      
      2012-07-23  Gary Dismukes  <dismukes@adacore.com>
      
      	* a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb, a-ciormu.adb,
      	a-ciorse.adb, a-coinho.adb, a-coinve.adb, a-cidlli.adb: Unsuppress
      	Accessibility_Check for Element_Type allocators.
      
      2012-07-23  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* projects.texi: Fix typo.
      
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Explicit_Derenference): If prefix is
      	overloaded, remove those interpretations whose designated type
      	does not match the context, to avoid spurious ambiguities that
      	may be caused by the Ada 2012 conversion rule for anonymous
      	access types.
      
      From-SVN: r189774
      Arnaud Charlet committed
    • [multiple changes] · 473e20df
      2012-07-23  Vincent Celier  <celier@adacore.com>
      
      	* g-spitbo.adb (Substr (String)): Return full string and do not
      	raise exception when Start is 1 and Len is exactly the length
      	of the string parameter.
      	* g-spitbo.ads: Fix spelling error in the name of exception
      	Index_Error.
      
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* par.adb: new subprogram Get_Aspect_Specifications.
      	* par-ch6.adb (P_Subprogram): handle subprogram bodies with aspect
      	specifications.
      	* par-ch13.adb (Get_Aspect_Specifications): extracted from
      	P_Aspect_Specifications. Collect aspect specifications in some
      	legal context, but do not attach them to any declaration. Used
      	when parsing subprogram declarations or bodies that include
      	aspect specifications.
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If aspects are
      	present, analyze them, or reject them if the subprogram as a
      	previous spec.
      
      2012-07-23  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* gnat_ugn.texi: Omit section on other platforms/runtimes support
      	in gnattest for vms version.
      
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Analyze_Aspect_Specifications):
      	Handle properly aspects that can be specified on a subprogram
      	body: CPU, Priority, and Interrupt_Priority.
      
      2012-07-23  Claire Dross  <dross@adacore.com>
      
      	* a-cfdlli.ads: Switch definition of Constant_Reference_Type
      	and Empty_List.
      
      2012-07-23  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb (Process_Decisions.Output_Header): For the guard
      	on an alternative in a SELECT statement, use the First_Sloc
      	of the guard expression (not its topmost sloc) as the decision
      	location, because this is what is referenced by dominance markers.
      
      2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Requires_Hooking): Examine the original expression
      	of an object declaration node because a function call that
      	returns on the secondary stack may have been rewritten into
      	something else.
      
      2012-07-23  Vincent Pucci  <pucci@adacore.com>
      
      	* sem_dim.adb (Analyze_Dimension_Has_Etype): For identifier, propagate
      	dimension when entity is a non-dimensionless constant.
      	(Analyze_Dimension_Object_Declaration): Propagate
      	dimension from the expression to the entity when type is a
      	dimensioned type and object is a constant.
      
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute, case 'Old): if the prefix
      	is not an entity name, expand at once so that code generated by
      	the expansion of the prefix is not generated before the constant
      	that captures the old value is properly inserted and analyzed.
      
      2012-07-23  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch9.adb (Ensure_Statement_Present): Mark generated NULL
      	statement as Comes_From_Source so that GIGI does not eliminate it.
      
      From-SVN: r189773
      Arnaud Charlet committed
    • [multiple changes] · 219d9cc7
      2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch12.adb (Insert_Freeze_Node_For_Instance): Inst is now
      	a local variable. Retrieve the related instance when processing
      	a subprogram instantiation. Such instances appear as wrapper
      	packages.
      
      2012-07-23  Vincent Pucci  <pucci@adacore.com>
      
      	* system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
      	system-hpux.ads, system-linux-alpha.ads,
      	system-linux-hppa.ads, system-linux-ppc.ads,
      	system-linux-s390.ads, system-linux-s390x.ads,
      	system-linux-sh4.ads, system-linux-sparc.ads,
      	system-lynxos-ppc.ads, system-mingw.ads,
      	system-solaris-sparc.ads, system-solaris-sparcv9.ads,
      	system-vms_64.ads, * system-vxworks-arm.ads, system-vxworks-m68k.ads,
      	system-vxworks-mips.ads, system-vxworks-ppc.ads,
      	system-vxworks-sparcv9.ads: Support_Atomic_Primitives set to False.
      	* system-darwin-x86.ads, system-darwin-x86_64.ads,
      	system-freebsd-x86.ads, system-freebsd-x86_64.ads,
      	system-hpux-ia64.ads, system-linux-ia64.ads, system-linux-x86.ads,
      	system-linux-x86_64.ads, system-lynxos-x86.ads,
      	system-mingw-x86_64.ads, system-solaris-x86.ads,
      	system-solaris-x86_64.ads, system-vms-ia64.ads,
      	system-vxworks-x86.ads: Support_Atomic_Primitives set to True.
      	* s-atopri.adb (Lock_Free_Read_X): New body.
      	(Lock_Free_Try_Write_X): Support_Atomic_Primitives check added.
      	(Lock_Free_Try_Write_64): New body.
      	* s-atopri.ads: New type uint.
      	(Sync_Compare_And_Swap_64): __sync_val_compare_and_swap_8 intrinsic
      	import.
      	(Lock_Free_Read_X): Body moved to s-atopri.adb.
      	(Lock_Free_Try_Write_64): Similar to other Lock_Free_Try_Write_X
      	routines.
      	* targparm.adb: New enumeration literal SAP
      	(Support_Atomic_Primitives) for type Targparm_Tags. New constant
      	SAP_Str. New component SAP_Str'Access for array Targparm_Str.
      	(Get_Target_Parameters): Parse Support_Atomic_Primitives_On_Target
      	flag.
      	* targparm.ads: New back-end code generation flag
      	Support_Atomic_Primitives_On_Target
      
      2012-07-23  Vincent Pucci  <pucci@adacore.com>
      
      	* gnat_ugn.texi: Dimensionality checking documentation updated.
      
      2012-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Make_Inline): If the pragma applies to a
      	subprogram renaming, set inline flags on both the renamed entity
      	and on the renaming, so that some ASIS queries can be handled
      	consistently in the absence of expansion.
      
      From-SVN: r189772
      Arnaud Charlet committed
    • [multiple changes] · db914ff8
      2012-07-23  Fedor Rybin  <frybin@adacore.com>
      
      	* gnat_ugn.texi: Removing obsolete limitation of gnattest
      	to support only ada05.	Updating gnattest support for other
      	platforms/run-times section to reflect the usage of taget
      	prefix in gnattest calls.  Fixing missed obsolete --stub-default
      	option name.
      
      2012-07-23  Robert Dewar  <dewar@adacore.com>
      
      	* uintp.adb: Minor reformatting.
      
      2012-07-23  Olivier Hainque  <hainque@adacore.com>
      
      	* system-vxworks-ppc.ads: Replace the default
      	Linker_Options requesting crtbe by a commented out request for
      	-nostartfiles.
      
      2012-07-23  Vincent Celier  <celier@adacore.com>
      
      	* prj-nmsc.adb (Check_Naming): Do not get the exceptions names
      	in a virtual project.
      
      From-SVN: r189771
      Arnaud Charlet committed
    • layout.adb, [...]: Minor reformatting. · 2557e054
      2012-07-23  Robert Dewar  <dewar@adacore.com>
      
      	* layout.adb, sem_prag.adb, sem.ads, freeze.adb,
      	switch-m.adb, exp_disp.adb, system-vxworks-ppc.ads, exp_ch6.adb: Minor
      	reformatting.
      
      From-SVN: r189770
      Robert Dewar committed
    • trans.c: (Handled_Sequence_Of_Statements_to_gnu): Set location on TRY_CATCH_EXPR. · 63ed669f
      2012-07-23  Tristan Gingold  <gingold@adacore.com>
      
      	* gcc-interface/trans.c: (Handled_Sequence_Of_Statements_to_gnu): Set   
      	location on TRY_CATCH_EXPR.
      
      From-SVN: r189769
      Tristan Gingold committed
  8. 19 Jul, 2012 2 commits
  9. 18 Jul, 2012 1 commit
  10. 17 Jul, 2012 2 commits
    • [multiple changes] · 24cb156d
      2012-07-17  Vincent Pucci  <pucci@adacore.com>
      
      	* gnat_ugn.texi: GNAT dimensionality checking
      	documentation updated with System.Dim.Mks modifications.
      
      2012-07-17  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb: sloc of array init_proc is sloc of type declaration.
      
      2012-07-17  Tristan Gingold  <gingold@adacore.com>
      
      	* raise-gcc.c (get_call_site_action_for): Remove useless init
      	expression for p.
      	(get_action_description_for): Do not overwrite action->kind.
      
      2012-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_attr.adb (Expand_N_Attribute_Reference): Add local variables Attr
      	and Conversion_Added.  Add local constant Typ.
      	Retrieve the original attribute after the arithmetic check
      	machinery has modified the node. Add a conversion to the target
      	type when the prefix of attribute Max_Size_In_Storage_Elements
      	is a controlled type.
      
      2012-07-17  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch6.adb (Expand_Inlined_Call): For each actual parameter
      	of mode 'out' or 'in out' that denotes an entity, reset
      	Last_Assignment on the entity so that any assignments to the
      	corresponding formal in the inlining will not trigger spurious
      	warnings about overwriting assignments.
      
      From-SVN: r189570
      Arnaud Charlet committed
    • [multiple changes] · 79ee6ab3
      2012-07-17  Tristan Gingold  <gingold@adacore.com>
      
      	* gnat_rm.texi: Adjust previous change.
      
      2012-07-17  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Process_Import_Or_Interface): If the pragma
      	comes from an aspect, it applies to the corresponding entity
      	without further check.
      
      2012-07-17  Olivier Hainque  <hainque@adacore.com>
      
      	* initialize.c (__gnat_initialize for VxWorks): Remove section with
      	call to __gnat_vxw_setup_for_eh.
      	* system-vxworks-ppc.ads: Add -auto-register to -crtbe, relying
      	on the VxWorks constructor mechanism for network loaded modules
      	by default.
      
      2012-07-17  Tristan Gingold  <gingold@adacore.com>
      
      	* adaint.c: Minor reformatting.
      
      2012-07-17  Pascal Obry  <obry@adacore.com>
      
      	* s-regexp.adb (Adjust): Fix access violation in Adjust.
      
      2012-07-17  Ed Schonberg  <schonberg@adacore.com>
      
      	* freeze.adb (Freeze_Entity): Warn if an imported subprogram
      	has pre/post conditions, because these will not be enforced.
      
      2012-07-17  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_ch7.adb (Process_Transient_Objects): Put all the
      	finalization blocks and the final raise statement into a wrapper
      	block.
      
      2012-07-17  Vincent Pucci  <pucci@adacore.com>
      
      	* s-atopri.adb (Lock_Free_Try_Write_X): Atomic_Compare_Exchange_X
      	replaced by Sync_Compare_And_Swap_X.
      	(Lock_Free_Try_Write_64): Removed.
      	* s-atopri.ads (Sync_Compare_And_Swap_X): Replaces previous
      	routine Atomic_Compare_Exchange_X.
      	(Lock_Free_Read_64): Renaming of Atomic_Load_64.
      	(Lock_Free_Try_Write_64): Renaming of Sync_Compare_And_Swap_64.
      
      2012-07-17  Vincent Celier  <celier@adacore.com>
      
      	* switch-m.adb (Normalize_Compiler_Switches): Recognize new
      	switches -gnatn1 and -gnatn2.
      
      2012-07-17  Vincent Pucci  <pucci@adacore.com>
      
      	* gnat_ugn.texi: GNAT dimensionality checking
      	documentation updated with System.Dim.Mks modifications.
      
      2012-07-17  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb: sloc of array init_proc is sloc of type declaration.
      
      2012-07-17  Tristan Gingold  <gingold@adacore.com>
      
      	* raise-gcc.c (get_call_site_action_for): Remove useless init
      	expression for p.
      	(get_action_description_for): Do not overwrite action->kind.
      
      2012-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_attr.adb (Expand_N_Attribute_Reference): Add local variables Attr
      	and Conversion_Added.  Add local constant Typ.
      	Retrieve the original attribute after the arithmetic check
      	machinery has modified the node. Add a conversion to the target
      	type when the prefix of attribute Max_Size_In_Storage_Elements
      	is a controlled type.
      
      2012-07-17  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch6.adb (Expand_Inlined_Call): For each actual parameter
      	of mode 'out' or 'in out' that denotes an entity, reset
      	Last_Assignment on the entity so that any assignments to the
      	corresponding formal in the inlining will not trigger spurious
      	warnings about overwriting assignments.
      
      From-SVN: r189569
      Arnaud Charlet committed