- 19 Aug, 2012 2 commits
-
-
layout.adb (Set_Elem_Alignment): Cap the alignment of access types to that of a regular access type for... * layout.adb (Set_Elem_Alignment): Cap the alignment of access types to that of a regular access type for non-strict-alignment platforms. * gcc-interface/utils.c (finish_fat_pointer_type): Do not set the alignment for non-strict-alignment platforms. From-SVN: r190515
Eric Botcazou committed -
decl.c (gnat_to_gnu_entity): Use proper dummy type for the temporary COMPONENT_REF built for a derived... * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use proper dummy type for the temporary COMPONENT_REF built for a derived tagged type with discriminant. From-SVN: r190514
Eric Botcazou committed
-
- 15 Aug, 2012 2 commits
-
-
From-SVN: r190419
Eric Botcazou committed -
http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html
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
-
- 06 Aug, 2012 16 commits
-
-
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 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 -
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 -
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 -
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 -
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 -
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 -
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 -
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
-
- 30 Jul, 2012 4 commits
-
-
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 -
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 -
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 -
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
-
- 27 Jul, 2012 1 commit
-
-
* system-darwin-ppc64.ads: Add Support_Atomic_Primitives, set to True. -- This line and those below it will be ignored M ChangeLog M system-darwin-ppc64.ads From-SVN: r189916
Iain Sandoe committed
-
- 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. * 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
-
- 23 Jul, 2012 9 commits
-
-
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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
-
- 19 Jul, 2012 2 commits
-
-
decl.c (gnat_to_gnu_entity): Try to ensure that an object of CW type initialized to a value is sufficiently... * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Try to ensure that an object of CW type initialized to a value is sufficiently aligned for this value. From-SVN: r189682
Eric Botcazou committed -
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Do not look up the REP part of the base type in advance. Deal with that of the variant types. (get_rep_part): Be prepared for record types with fields. From-SVN: r189666
Eric Botcazou committed
-
- 18 Jul, 2012 1 commit
-
-
* gcc-interface/trans.c (stmt_group_may_fallthru): New function. (gnat_to_gnu) <N_Block_Statement>: Use it to find out whether the block needs to be translated. From-SVN: r189612
Eric Botcazou committed
-
- 17 Jul, 2012 2 commits
-
-
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 -
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
-