summaryrefslogtreecommitdiffstats
path: root/gcc/ada
Commit message (Collapse)AuthorAgeFilesLines
...
* 2012-12-05 Thomas Quinot <quinot@adacore.com>charlet2012-12-053-20/+109
| | | | | | | | | | | | | | | | | * err_vars.ads: Fix minor typo in comment. 2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * sem_attr.adb (Analyze_Attribute): Do not analyze the attribute arguments when processing Loop_Entry. Rewrite the analysis of attribute Loop_Entry to handle an optional loop name. (Convert_To_Indexed_Component): New routine. (Eval_Attribute): Remove ??? comment and explain why Loop_Entry does not need to be evaluated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194189 138bc75d-0d04-0410-961f-82ee72b054a4
* PR ada/52110danglin2012-12-013-2/+18
| | | | | | | | | | * s-osinte-hpux-dce.ads: Declare pthread_rwlockattr_t and pthread_rwlock_t subtypes. Delete duplicate declaration of clockid_t. * s-taspri-hpux-dce.ads: Change "pragma Atomic (Thread)" to comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194024 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix date and trailing space in previous commit.ebotcazou2012-11-282-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193887 138bc75d-0d04-0410-961f-82ee72b054a4
* * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not clear TREE_OVERFLOWebotcazou2012-11-286-72/+101
| | | | | | | | | | | | | | | | | | | | | | | | on overflowed zeroes, except in one specific case. ada/ * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use valid_constant_size_p to detect too large objects. <E_Subprogram_Type>: Likewise for too large return types. (allocatable_size_p): Call valid_constant_size_p in the fixed case. (annotate_value) <INTEGER_CST>: Simplify. <BIT_AND_EXPR>: Deal with negative values here. * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use valid_constant_size_p to detect too large objects on the LHS. * gcc-interface/misc.c (default_pass_by_ref): Likewise for large types. And use TYPE_SIZE_UNIT throughout. (must_pass_by_ref): Likewise. * gcc-interface/utils.c (max_size) <tcc_unary>: Split from common case. <tcc_binary>: Likewise. Call size_binop instead of fold_build2. <tcc_expression>: Simplify. * gcc-interface/utils2.c (build_allocator): Use valid_constant_size_p to detect too large allocations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193886 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Length>: Look throughebotcazou2012-11-232-1/+19
| | | | | | | a view conversion from constrained to unconstrained form. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193751 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/decl.c (components_need_strict_alignment): New.ebotcazou2012-11-232-9/+54
| | | | | | | | | | (components_to_record): Do not pack the variants if one of the fields needs strict alignment. Likewise for the variant part as a whole. Specify the position of the variants even if the size isn't specified, but do not specify the size of the variant part in this case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193750 138bc75d-0d04-0410-961f-82ee72b054a4
* Introduce vNULL to use as a nil initializer for vec<>.dnovillo2012-11-202-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements Jakub's idea of adding an empty struct with a typecast operator that returns nil vectors. This is useful to shorten all the initializers when declaring vec instances or passing nil vectors as function arguments. 2012-11-20 Diego Novillo <dnovillo@google.com> Jakub Jelinek <jakub@redhat.com> ChangeLog * vec.h (struct vnull): Declare. (vNULL): Declare. * vec.c (vNULL): Define. * bb-reorder.c: Replace all vec<T, A>() initializers with vNULL. * cfgexpand.c: Likewise. * cfgloop.c: Likewise. * cfgloopanal.c: Likewise. * cfgloopmanip.c: Likewise. * cgraph.c: Likewise. * config/c6x/c6x.c: Likewise. * config/i386/i386.c: Likewise. * df-core.c: Likewise. * dominance.c: Likewise. * dwarf2out.c: Likewise. * except.c: Likewise. * function.c: Likewise. * gcse.c: Likewise. * genautomata.c: Likewise. * graphds.c: Likewise. * graphite-scop-detection.c: Likewise. * graphite.c: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * ipa-cp.c: Likewise. * ipa-inline-analysis.c: Likewise. * ipa-inline-transform.c: Likewise. * ipa-inline.c: Likewise. * ipa-prop.c: Likewise. * ipa-split.c: Likewise. * ipa-utils.c: Likewise. * ira-build.c: Likewise. * lto-cgraph.c: Likewise. * lto-streamer-in.c: Likewise. * lto-symtab.c: Likewise. * opts-global.c: Likewise. * passes.c: Likewise. * ree.c: Likewise. * sched-deps.c: Likewise. * sel-sched-ir.c: Likewise. * sel-sched-ir.h: Likewise. * sel-sched.c: Likewise. * stor-layout.c: Likewise. * trans-mem.c: Likewise. * tree-call-cdce.c: Likewise. * tree-cfg.c: Likewise. * tree-data-ref.c: Likewise. * tree-diagnostic.c: Likewise. * tree-eh.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-predcom.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-phiopt.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-propagate.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-ssa-uninit.c: Likewise. * tree-stdarg.c: Likewise. * tree-switch-conversion.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-slp.c: Likewise. * tree-vect-stmts.c: Likewise. * value-prof.c: Likewise. * varasm.c: Likewise. ada/ChangeLog * gcc-interface/decl.c: Replace all vec<T,A>() initializers with vNULL. cp/ChangeLog * name-lookup.c: Replace all vec<T, A>() initializers with vNULL. * semantics.c: Likewise. fortran/ChangeLog * trans-openmp.c: Replace all vec<T, A>() initializers with vNULL. lto/ChangeLog * lto.c: Replace all vec<T, A>() initializers with vNULL. objc/ChangeLog * objc-act.c: Replace all vec<T, A>() initializers with vNULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193677 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/decl.c: Remove trailing spaces.ebotcazou2012-11-183-4/+9
| | | | | | | * gcc-interface/trans.c: Remove trailing spaces. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193597 138bc75d-0d04-0410-961f-82ee72b054a4
* This patch rewrites the old VEC macro-based interface into a new onednovillo2012-11-186-215/+208
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | based on the template class 'vec'. The user-visible changes are described in http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec. I have tested the patch pretty extensively: - Regular bootstraps on x86_64, ppc, ia64, sparc and hppa. - Bootstraps with --enable-checking=release - Bootstraps with --enable-checking=gc,gcac - Basic builds on all targets (using contrib/config-list.mk). We no longer access the vectors via VEC_* macros. The pattern is "VEC_operation (T, A, V, args)" becomes "V.operation (args)". The only thing I could not do is create proper ctors and dtors for the vec class. Since these vectors are stored in unions, we have to keep them as PODs (C++03 does not allow non-PODs in unions). This means that creation and destruction must be explicit. There is a new method vec<type, allocation, layout>::create() and another vec<type, allocation, layout>::destroy() to allocate the internal vector. For vectors that must be pointers, there is a family of free functions that implement the operations that need to tolerate NULL vectors. These functions all start with the prefix 'vec_safe_'. See the wiki page for details. The gengtype change removes the special handling for VEC() that used to exist in gengtype. Additionally, it allows gengtype to recognize templates of more than one argument and introduces the concept of an undefined type (useful for template arguments that may or may not be types). When a TYPE_UNDEFINED is reached, gengtype will ignore it if it happens inside a type marked with GTY((user)). Otherwise, it will emit an error. Finally, gengtype rejects root types marked GTY((user)) that are not first class pointers. 2012-11-16 Diego Novillo <dnovillo@google.com> VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) * vec.c (register_overhead): Convert it into member function of vec_prefix. (release_overhead): Likewise. (calculate_allocation): Likewise. (vec_heap_free): Remove. (vec_gc_o_reserve_1): Remove. (vec_heap_o_reserve_1): Remove. (vec_stack_o_reserve_1): Remove. (vec_stack_o_reserve_exact): Remove. (register_stack_vec): New. (stack_vec_register_index): New. (unregister_stack_vec): New. (vec_assert_fail): Remove. * vec.h: Conditionally include ggc.h. Document conditional hackery. Update top-level documentation. (ALONE_VEC_CHECK_INFO): Remove. (VEC_CHECK_INFO): Remove. (ALONE_VEC_CHECK_DECL): Remove. (VEC_CHECK_DECL): Remove. (ALONE_VEC_CHECK_PASS): Remove. (VEC_CHECK_PASS): Remove. (VEC_ASSERT): Remove. (vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and va_stack. Mark fields alloc_ and num_ as protected. (struct vec_t): Remove. Remove all function members. (struct vl_embed): Declare. (struct vl_ptr): Declare. (free): Remove. (reserve_exact): Remove. (reserve): Remove. (safe_splice): Remove. (safe_push): Remove. (safe_grow): Remove. (safe_grow_cleared): Remove. (safe_insert): Remove. (DEF_VEC_I): Remove. (DEF_VEC_ALLOC_I): Remove. (DEF_VEC_P): Remove. (DEF_VEC_ALLOC_P): Remove. (DEF_VEC_O): Remove. (DEF_VEC_ALLOC_O): Remove. (DEF_VEC_ALLOC_P_STACK): Remove. (DEF_VEC_ALLOC_O_STACK): Remove. (DEF_VEC_ALLOC_I_STACK): Remove. (DEF_VEC_A): Remove. (DEF_VEC_ALLOC_A): Remove. (vec_stack_p_reserve_exact_1): Remove. (vec_stack_o_reserve): Remove. (vec_stack_o_reserve_exact): Remove. (VEC_length): Remove. (VEC_empty): Remove. (VEC_address): Remove. (vec_address): Remove. (VEC_last): Remove. (VEC_index): Remove. (VEC_iterate): Remove. (VEC_embedded_size): Remove. (VEC_embedded_init): Remove. (VEC_free): Remove. (VEC_copy): Remove. (VEC_space): Remove. (VEC_reserve): Remove. (VEC_reserve_exact): Remove. (VEC_splice): Remove. (VEC_safe_splice): Remove. (VEC_quick_push): Remove. (VEC_safe_push): Remove. (VEC_pop): Remove. (VEC_truncate): Remove. (VEC_safe_grow): Remove. (VEC_replace): Remove. (VEC_quick_insert): Remove. (VEC_safe_insert): Remove. (VEC_ordered_remove): Remove. (VEC_unordered_remove): Remove. (VEC_block_remove): Remove. (VEC_lower_bound): Remove. (VEC_alloc): Remove. (VEC_qsort): Remove. (va_heap): Declare. (va_heap::default_layout): New typedef to vl_ptr. (va_heap::reserve): New. (va_heap::release): New. (va_gc): Declare. (va_gc::default_layout): New typedef to vl_embed. (va_gc::reserve): New. (va_gc::release): New. (va_gc_atomic): Declare. Inherit from va_gc. (va_stack): Declare. (va_stack::default_layout): New typedef to vl_ptr. (va_stack::alloc): New. (va_stack::reserve): New. (va_stack::release): New. (register_stack_vec): Declare. (stack_vec_register_index): Declare. (unregister_stack_vec): Declare. (vec<T, A = va_heap, L = typename A::default_layout>): Declare empty vec template. (vec<T, A, vl_embed>): Partial specialization for embedded layout. (vec<T, A, vl_embed>::allocated): New. (vec<T, A, vl_embed>::length): New. (vec<T, A, vl_embed>::is_empty): New. (vec<T, A, vl_embed>::address): New. (vec<T, A, vl_embed>::operator[]): New. (vec<T, A, vl_embed>::last New. (vec<T, A, vl_embed>::space): New. (vec<T, A, vl_embed>::iterate): New. (vec<T, A, vl_embed>::iterate): New. (vec<T, A, vl_embed>::copy): New. (vec<T, A, vl_embed>::splice): New. (vec<T, A, vl_embed>::quick_push New. (vec<T, A, vl_embed>::pop New. (vec<T, A, vl_embed>::truncate): New. (vec<T, A, vl_embed>::quick_insert): New. (vec<T, A, vl_embed>::ordered_remove): New. (vec<T, A, vl_embed>::unordered_remove): New. (vec<T, A, vl_embed>::block_remove): New. (vec<T, A, vl_embed>::qsort): New. (vec<T, A, vl_embed>::lower_bound): New. (vec<T, A, vl_embed>::embedded_size): New. (vec<T, A, vl_embed>::embedded_init): New. (vec<T, A, vl_embed>::quick_grow): New. (vec<T, A, vl_embed>::quick_grow_cleared): New. (vec_safe_space): New. (vec_safe_length): New. (vec_safe_address): New. (vec_safe_is_empty): New. (vec_safe_reserve): New. (vec_safe_reserve_exact): New. (vec_alloc): New. (vec_free): New. (vec_safe_grow): New. (vec_safe_grow_cleared): New. (vec_safe_iterate): New. (vec_safe_push): New. (vec_safe_insert): New. (vec_safe_truncate): New. (vec_safe_copy): New. (vec_safe_splice): New. (vec<T, A, vl_ptr>): New partial specialization for the space efficient layout. (vec<T, A, vl_ptr>::exists): New. (vec<T, A, vl_ptr>::is_empty): New. (vec<T, A, vl_ptr>::length): New. (vec<T, A, vl_ptr>::address): New. (vec<T, A, vl_ptr>::operator[]): New. (vec<T, A, vl_ptr>::operator!=): New. (vec<T, A, vl_ptr>::operator==): New. (vec<T, A, vl_ptr>::last): New. (vec<T, A, vl_ptr>::space): New. (vec<T, A, vl_ptr>::iterate): New. (vec<T, A, vl_ptr>::copy): New. (vec<T, A, vl_ptr>::reserve): New. (vec<T, A, vl_ptr>::reserve_exact): New. (vec<T, A, vl_ptr>::splice): New. (vec<T, A, vl_ptr>::safe_splice): New. (vec<T, A, vl_ptr>::quick_push): New. (vec<T, A, vl_ptr>::safe_push): New. (vec<T, A, vl_ptr>::pop): New. (vec<T, A, vl_ptr>::truncate): New. (vec<T, A, vl_ptr>::safe_grow): New. (vec<T, A, vl_ptr>::safe_grow_cleared): New. (vec<T, A, vl_ptr>::quick_grow): New. (vec<T, A, vl_ptr>::quick_grow_cleared): New. (vec<T, A, vl_ptr>::quick_insert): New. (vec<T, A, vl_ptr>::safe_insert): New. (vec<T, A, vl_ptr>::ordered_remove): New. (vec<T, A, vl_ptr>::unordered_remove): New. (vec<T, A, vl_ptr>::block_remove): New. (vec<T, A, vl_ptr>::qsort): New. (vec<T, A, vl_ptr>::lower_bound): New. (vec_stack_alloc): Define. (FOR_EACH_VEC_SAFE_ELT): Define. * vecir.h: Remove. Update all users. * vecprim.h: Remove. Update all users. Move uchar to coretypes.h. * Makefile.in (VEC_H): Add $(GGC_H). Remove vecir.h and vecprim.h dependencies everywhere. 2012-11-16 Diego Novillo <dnovillo@google.com> * gengtype-lex.l (VEC): Remove. Add characters in the set [\!\>\.-]. * gengtype-parse.c (token_names): Remove "VEC". (require_template_declaration): Remove handling of VEC_TOKEN. (type): Likewise. Call create_user_defined_type when parsing GTY((user)). * gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED. (write_state_undefined_type): New. (write_state_type): Call write_state_undefined_type for TYPE_UNDEFINED. (read_state_type): Call read_state_undefined_type for TYPE_UNDEFINED. * gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED. (create_user_defined_type): Make extern. (type_for_name): Factor out of resolve_typedef. (create_undefined_type): New (resolve_typedef): Call it when we cannot find a previous typedef and the type is not a template. (find_structure): Accept TYPE_UNDEFINED. (set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES, default to false. Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or ALLOWED_UNDEFINED_TYPES is set. Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT. (filter_type_name): Accept templates with more than one argument. (output_mangled_typename): Handle TYPE_UNDEFINED (walk_type): Likewise. (write_types_process_field): Likewise. (write_func_for_structure): If CHAIN_NEXT is set, ORIG_S should not be a user-defined type. (write_types_local_user_process_field): Handle TYPE_ARRAY, TYPE_NONE and TYPE_UNDEFINED. (write_types_local_process_field): Likewise. (contains_scalar_p): Return 0 for TYPE_USER_STRUCT. (write_root): Reject user-defined types that are not pointers. Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT and TYPE_PARAM_STRUCT. (output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and TYPE_ARRAY. (dump_typekind): Handle TYPE_UNDEFINED. * gengtype.h (enum typekind): Add TYPE_UNDEFINED. (create_user_defined_type): Declare. (enum gty_token): Remove VEC_TOKEN. 2012-11-16 Diego Novillo <dnovillo@google.com> Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) * coretypes.h (uchar): Define. * alias.c: Use new vec API in vec.h. * asan.c: Likewise. * attribs.c: Likewise. * basic-block.h: Likewise. * bb-reorder.c: Likewise. * builtins.c: Likewise. * calls.c: Likewise. * cfg.c: Likewise. * cfganal.c: Likewise. * cfgcleanup.c: Likewise. * cfgexpand.c: Likewise. * cfghooks.c: Likewise. * cfghooks.h: Likewise. * cfgloop.c: Likewise. * cfgloop.h: Likewise. * cfgloopanal.c: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * cgraph.c: Likewise. * cgraph.h: Likewise. * cgraphclones.c: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * compare-elim.c: Likewise. * coverage.c: Likewise. * cprop.c: Likewise. * data-streamer.h: Likewise. * dbxout.c: Likewise. * dce.c: Likewise. * df-core.c: Likewise. * df-problems.c: Likewise. * df-scan.c: Likewise. * dominance.c: Likewise. * domwalk.c: Likewise. * domwalk.h: Likewise. * dse.c: Likewise. * dwarf2cfi.c: Likewise. * dwarf2out.c: Likewise. * dwarf2out.h: Likewise. * emit-rtl.c: Likewise. * except.c: Likewise. * except.h: Likewise. * expr.c: Likewise. * expr.h: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * function.h: Likewise. * fwprop.c: Likewise. * gcc.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * genattrtab.c: Likewise. * genautomata.c: Likewise. * genextract.c: Likewise. * genopinit.c: Likewise * ggc-common.c: Likewise. * ggc.h: Likewise. * gimple-low.c: Likewise. * gimple-ssa-strength-reduction.c: Likewise. * gimple-streamer-in.c: Likewise. * gimple.c: Likewise. * gimple.h: Likewise. * gimplify.c: Likewise. * graph.c: Likewise. * graphds.c: Likewise. * graphds.h: Likewise. * graphite-blocking.c: Likewise. * graphite-clast-to-gimple.c: Likewise. * graphite-dependences.c: Likewise. * graphite-interchange.c: Likewise. * graphite-optimize-isl.c: Likewise. * graphite-poly.c: Likewise. * graphite-poly.h: Likewise. * graphite-scop-detection.c: Likewise. * graphite-scop-detection.h: Likewise. * graphite-sese-to-poly.c: Likewise. * graphite.c: Likewise. * godump.c: Likewise. * haifa-sched.c: Likewise. * hw-doloop.c: Likewise. * hw-doloop.h: Likewise. * ifcvt.c: Likewise. * insn-addr.h: Likewise. * ipa-cp.c: Likewise. * ipa-inline-analysis.c: Likewise. * ipa-inline-transform.c: Likewise. * ipa-inline.c: Likewise. * ipa-inline.h: Likewise. * ipa-prop.c: Likewise. * ipa-prop.h: Likewise. * ipa-pure-const.c: Likewise. * ipa-ref-inline.h: Likewise. * ipa-ref.c: Likewise. * ipa-ref.h: Likewise. * ipa-reference.c: Likewise. * ipa-split.c: Likewise. * ipa-utils.c: Likewise. * ipa-utils.h: Likewise. * ipa.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-emit.c: Likewise. * ira-int.h: Likewise. * ira.c: Likewise. * loop-invariant.c: Likewise. * loop-unroll.c: Likewise. * lower-subreg.c: Likewise. * lra-lives.c: Likewise. * lra.c: Likewise. * lto-cgraph.c: Likewise. * lto-section-out.c: Likewise. * lto-streamer-in.c: Likewise. * lto-streamer-out.c: Likewise. * lto-streamer.h: Likewise. * lto-symtab.c: Likewise. * mcf.c: Likewise. * modulo-sched.c: Likewise. * omp-low.c: Likewise. * opts-common.c: Likewise. * opts-global.c: Likewise. * opts.c: Likewise. * opts.h: Likewise. * passes.c: Likewise. * predict.c: Likewise. * print-tree.c: Likewise. * profile.c: Likewise. * profile.h: Likewise. * read-rtl.c: Likewise. * ree.c: Likewise. * reg-stack.c: Likewise. * regrename.c: Likewise. * regrename.h: Likewise. * reload.c: Likewise. * reload.h: Likewise. * reload1.c: Likewise. * rtl.h: Likewise. * sched-deps.c: Likewise. * sched-int.h: Likewise. * sdbout.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-ir.c: Likewise. * sel-sched-ir.h: Likewise. * sel-sched.c: Likewise. * sese.c: Likewise. * sese.h: Likewise. * statistics.h: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * store-motion.c: Likewise. * tlink.c: Likewise. * toplev.c: Likewise. * trans-mem.c: Likewise. * tree-browser.c: Likewise. * tree-call-cdce.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-chrec.c: Likewise. * tree-chrec.h: Likewise. * tree-complex.c: Likewise. * tree-data-ref.c: Likewise. * tree-data-ref.h: Likewise. * tree-dfa.c: Likewise. * tree-diagnostic.c: Likewise. * tree-dump.c: Likewise. * tree-eh.c: Likewise. * tree-emutls.c: Likewise. * tree-flow.h: Likewise. * tree-if-conv.c: Likewise. * tree-inline.c: Likewise. * tree-inline.h: Likewise. * tree-into-ssa.c: Likewise. * tree-iterator.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-mudflap.c: Likewise. * tree-optimize.c: Likewise. * tree-outof-ssa.c: Likewise. * tree-parloops.c: Likewise. * tree-phinodes.c: Likewise. * tree-predcom.c: Likewise. * tree-pretty-print.c: Likewise. * tree-scalar-evolution.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-address.c: Likewise. * tree-ssa-alias.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-coalesce.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-forwprop.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-live.h: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-operands.c: Likewise. * tree-ssa-phiopt.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-propagate.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-sccvn.h: Likewise. * tree-ssa-strlen.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-tail-merge.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-ssa-threadupdate.c: Likewise. * tree-ssa-uncprop.c: Likewise. * tree-ssa-uninit.c: Likewise. * tree-ssa.c: Likewise. * tree-ssanames.c: Likewise. * tree-stdarg.c: Likewise. * tree-streamer-in.c: Likewise. * tree-streamer-out.c: Likewise. * tree-streamer.c: Likewise. * tree-streamer.h: Likewise. * tree-switch-conversion.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-generic.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-slp.c: Likewise. * tree-vect-stmts.c: Likewise. * tree-vectorizer.c: Likewise. * tree-vectorizer.h: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. * value-prof.c: Likewise. * value-prof.h: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. * varpool.c: Likewise. * vmsdbgout.c: Likewise. * config/bfin/bfin.c: Likewise. * config/c6x/c6x.c: Likewise. * config/darwin.c: Likewise. * config/i386/i386.c: Likewise. * config/ia64/ia64.c: Likewise. * config/mep/mep.c: Likewise. * config/mips/mips.c: Likewise. * config/pa/pa.c: Likewise. * config/rs6000/rs6000-c.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/rx/rx.c: Likewise. * config/spu/spu-c.c: Likewise. * config/vms/vms.c: Likewise. * config/vxworks.c: Likewise. * config/epiphany/resolve-sw-modes.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193595 138bc75d-0d04-0410-961f-82ee72b054a4
* PR other/52438ebotcazou2012-11-095-166/+43
| | | | | | | | | | * s-taspri-lynxos.ads: Delete. * s-osinte-kfreebsd-gnu.ads: Change license to GPL V3+. * s-tpopsp-rtems.adb: Likewise. * s-osinte-rtems.adb: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193375 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Body_Stub>: Dealebotcazou2012-11-092-5/+27
| | | | | | | | | with a missing library unit instead of calling gnat_to_gnu on Emtpy. Remove last bits of support for SCIL nodes. Add cases for nodes that should only be present when annotating types. Add default abort. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193357 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/Makefile.in: Revert most changes.ebotcazou2012-11-073-5/+42
| | | | | | | | | * gcc-interface/Make-lang.in (gnatlib): Remove ada/s-oscons.ads. libada/ * libada/Makefile.in: Revert most changes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193280 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/Makefile.in (copy-s-oscons): New target.charlet2012-11-062-0/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193239 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Robert Dewar <dewar@adacore.com>charlet2012-11-068-288/+1111
| | | | | | | | | | | | | | | | | | | | * err_vars.ads, atree.ads: Minor reformatting. 2012-11-06 Arnaud Charlet <charlet@adacore.com> * gcc-interface/Make-lang.in: Update dependencies. * gcc-interface/Makefile.in: Add runtime pairs for Android. Rework handling of s-oscons.ads. * s-osinte-android.ads, s-osinte-android.adb: New files. 2012-11-06 Tristan Gingold <gingold@adacore.com> * gcc-interface/trans.c (gnat_to_gnu): For N_Real_Literal, create the binary representation of vax floats. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193238 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Tristan Gingold <gingold@adacore.com>charlet2012-11-0643-121/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * sem_ch9.adb (Analyze_Protected_Type_Declaration): Fix thinko in previous commit. 2012-11-06 Jose Ruiz <ruiz@adacore.com> * ali.adb (Scan_ALI): Fix parsing mechanism for -fstack-check. 2012-11-06 Thomas Quinot <quinot@adacore.com> * atree.adb, atree.ads, einfo.adb, errout.adb, errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, err_vars.ads, expander.adb, exp_ch13.adb, exp_ch2.adb, exp_ch6.adb, exp_dist.adb, fe.h, fmap.adb, fmap.ads, gprep.adb, makeutl.adb, osint.adb, osint.ads, par_sco.adb, prepcomp.adb, prj-part.adb, prj-proc.adb, scng.adb, sdefault.ads, sem_ch10.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_dim.adb, sem_elab.adb, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_type.adb, sem_warn.adb, stylesw.adb, stylesw.ads, targparm.adb, targparm.ads (Cascaded_Error): Rename to more descriptive name 'Check_Error_Detected'. Add calls to Check_Error_Detected at places where semantic analysis is abandoned assuming a previously detected error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193235 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Robert Dewar <dewar@adacore.com>charlet2012-11-065-87/+133
| | | | | | | | | | | | | | | | | | | | | * exp_ch4.adb: Minor comment change. 2012-11-06 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Extensive revision of documentation of overflow checking. * vms_data.ads: Overflow check numbers must be in range 1-3, not 0-3. 2012-11-06 Tristan Gingold <gingold@adacore.com> * sem_ch9.adb (Analyze_Protected_Type_Declaration): Emit a warning if pragma Priority is used in presence of an interrupt handler. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193234 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Robert Dewar <dewar@adacore.com>charlet2012-11-0612-409/+370
| | | | | | | | | | | | | | | | | | | | | | | | | | | * checks.ads, checks.adb, exp_ch4.adb: Minor changes throughout for new overflow checking. * exp_util.adb (Insert_Actions): Remove special casing of Overflow_Check. * gnat1drv.adb (Adjust_Global_Switches): Fixes for new handling of overflow checks. * sem.adb (Analyze): Remove special casing of Overflow_Check (Analyze_List): ditto. * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Remove SUPPRESSED and change CHECKED to STRICT. * sem_res.adb (Analyze_And_Resolve): No longer treat Overflow_Check specially. (Preanalyze_And_Resolve): ditto. (Resolve): ditto. * snames.ads-tmpl: Replace Name_Checked by Name_Strict. * switch-c.adb (Get_Overflow_Mode): Eliminate 0 setting, CHECKED => STRICT. * types.ads (Overflow_Check_Type): Remove Suppressed, change Checked to Strict (Suppress_Record): Overflow check controlled by Suppress array. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193233 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Ed Schonberg <schonberg@adacore.com>charlet2012-11-062-4/+28
| | | | | | | | | | * sem_res.adb (Preanalyze_And_Resolve): In Alfa mode do not disable checks, so that flags can be properly set on expressions that are not further expanded. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193231 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Robert Dewar <dewar@adacore.com>charlet2012-11-063-0/+9
| | | | | | | | * exp_attr.adb, sem_attr.adb: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193230 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Gary Dismukes <dismukes@adacore.com>charlet2012-11-063-2/+45
| | | | | | | | | | | | | | | | | * exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate check when evaluating the attribute Valid, and issue a warning about infinite recursion when the check occurs within the predicate function of the prefix's subtype. * exp_ch4.adb (Expand_N_In): Remove test for Is_Discrete_Type when we're checking that there's no predicate check function as a condition for substituting a Valid check for a scalar membership test (substitution should be suppressed for any kind of scalar subtype with a predicate check). Also, don't emit a predicate check when the right operand is a range. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193228 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Robert Dewar <dewar@adacore.com>charlet2012-11-0615-36/+721
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * par_sco.adb, bindgen.adb, exp_vfpt.adb, exp_vfpt.ads, exp_ch2.adb, errout.adb, sem_ch8.adb: Minor reformatting. 2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb: Include Loop_Entry_Attributes to the list of Node/List/Elist10 usage. (Loop_Entry_Attributes): New routine. (Set_Loop_Entry_Attributes): New routine. (Write_Field10_Name): Add an output string for Loop_Entry_Attributes. * einfo.ads: Define new attribute Loop_Entry_Attributes along with its usage in nodes. (Loop_Entry_Attributes): New routine and dedicated pragma Inline. (Set_Loop_Entry_Attributes): New routine and dedicated pragma Inline. * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand Attribute_Loop_Entry here. * exp_ch5.adb: Add with and use clause for Elists; (Expand_Loop_Entry_Attributes): New routine. (Expand_N_Loop_Statement): Add a call to Expand_Loop_Entry_Attributes. * exp_prag.adb (Expand_Pragma_Loop_Assertion): Specialize the search to include multiple nested loops produced by the expansion of Ada 2012 array iterator. * sem_attr.adb: Add with and use clause for Elists. (Analyze_Attribute): Check the legality of attribute Loop_Entry. (Resolve_Attribute): Nothing to do for Loop_Entry. (S14_Attribute): New routine. * snames.ads-tmpl: Add a comment on entries marked with HiLite. Add new name Name_Loop_Entry. Add new attribute Attribute_Loop_Entry. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193227 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Geert Bosch <bosch@adacore.com>charlet2012-11-067-17/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * eval_fat.adb (Machine, Succ): Fix front end to support static evaluation of attributes on targets with both VAX and IEEE float. * sem_util.ads, sem_util.adb (Has_Denormals, Has_Signed_Zeros): New type-specific functions. Previously we used Denorm_On_Target and Signed_Zeros_On_Target directly, but that doesn't work well for OpenVMS where a single target supports both floating point with and without signed zeros. * sem_attr.adb (Attribute_Denorm, Attribute_Signed_Zeros): Use new Has_Denormals and Has_Signed_Zeros functions to support both IEEE and VAX floating point on a single target. 2012-11-06 Tristan Gingold <gingold@adacore.com> * bindgen.adb (System_Interrupts_Used): New variable. (Gen_Adainit): Declare and call Install_Restricted_Handlers_Sequential if System.Interrupts is used when elaboration policy is sequential. 2012-11-06 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb: Complete previous change. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193225 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Tristan Gingold <gingold@adacore.com>charlet2012-11-0611-129/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | * fe.h (Get_Vax_Real_Literal_As_Signed): Declare. * eval_fat.adb, eval_fat.ads (Decompose_Int): Move spec in package spec. * exp_vfpt.adb, exp_vfpt.ads (Vax_Real_Literal_As_Signed): New function. (Expand_Vax_Real_Literal): Remove. * exp_ch2.adb (Expand_N_Real_Literal): Do nothing. * sem_eval.adb (Expr_Value_R): Remove special Vax float case, as this is not anymore a special case. 2012-11-06 Yannick Moy <moy@adacore.com> * uintp.ads: Minor correction of typo in comment. 2012-11-06 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragnma, case Unchecked_Union): remove requirement that discriminants of an unchecked_union must have defaults. 2012-11-06 Vasiliy Fofanov <fofanov@adacore.com> * projects.texi: Minor wordsmithing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193224 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Robert Dewar <dewar@adacore.com>charlet2012-11-064-17/+21
| | | | | | | | * sem_ch9.adb, exp_vfpt.adb, xoscons.adb: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193223 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Tristan Gingold <gingold@adacore.com>charlet2012-11-064-6/+113
| | | | | | | | | | | | | | | | | | * exp_vfpt.adb: Document VAX float point layout. 2012-11-06 Geert Bosch <bosch@adacore.com> * eval_fat.adb (Machine): Don't return -0.0 on targets without signed zeros. 2012-11-06 Ed Schonberg <schonberg@adacore.com> * sem_ch9.adb (Analyze_Entry_Call_Alternative, Check_Triggering_Statement): Reject properly an indirect call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193222 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Pascal Obry <obry@adacore.com>charlet2012-11-064-63/+206
| | | | | | | | * xoscons.adb, xutil.adb, xutil.ads: Add support for post-processing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193221 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Yannick Moy <moy@adacore.com>charlet2012-11-064-16/+35
| | | | | | | | | | | | | | | | | | | * s-bignum.adb (Div_Rem): Fix another bug in step D3. 2012-11-06 Tristan Gingold <gingold@adacore.com> * s-tarest.adb (Create_Restricted_Task): Call Create_Restricted_Task_Sequential in sequential case. 2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> * exp_prag.adb (Expand_Pragma_Loop_Assertion): Do not rewrite the pragma into a null statement as its presence is desirable in -gnatG output. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193219 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Ed Schonberg <schonberg@adacore.com>charlet2012-11-063-6/+31
| | | | | | | | | | | | | * sem_ch8.adb (Check_Constrained_Object): Do nothing if the renamed object is a limited record. 2012-11-06 Bernard Banner <banner@adacore.com> * sysdep.c (_getpagesize): New. Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193218 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Robert Dewar <dewar@adacore.com>charlet2012-11-064-30/+58
| | | | | | | | | | | | | * sem_prag.adb: Minor reformatting. 2012-11-06 Robert Dewar <dewar@adacore.com> * s-bignum.adb (Div_Rem): Fix bug in step D3. * uintp.adb (UI_Div_Rem): Add comment on bug in step D3. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193217 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Hristian Kirtchev <kirtchev@adacore.com>charlet2012-11-065-100/+256
| | | | | | | | | | | | | | | | | | | | | | | | * exp_prag.adb (Expand_Pragma_Loop_Assertion): Update the comment on intended expansion. Reimplement the logic which expands the termination variants. (Process_Increase_Decrease): Update the parameter profile and the comment related to it. Accommodate the new aggregate-like appearance of the termination variants. * sem_prag.adb (Analyze_Pragma): Update the syntax of pragma Loop_Assertion. Reimplement the semantic analysis of the pragma to accommodate the new aggregate-like variant. (Check_Variant): New routine. * snames.ads-tmpl: Change names Name_Decreases and Name_Increases to Name_Decreasing and Name_Increasing respectively. Add name Variant. 2012-11-06 Ed Schonberg <schonberg@adacore.com> * sem_eval.adb: Static evaluation of case expressions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193216 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Robert Dewar <dewar@adacore.com>charlet2012-11-0610-62/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | * exp_prag.adb, impunit.adb, exp_ch9.adb, par-ch4.adb, s-tarest.adb: Minor reformatting. 2012-11-06 Tristan Gingold <gingold@adacore.com> * s-tposen.ads: Minor comment update. 2012-11-06 Arnaud Charlet <charlet@adacore.com> * sysdep.c: Rename sig* wrappers to use unique names. 2012-11-06 Yannick Moy <moy@adacore.com> * exp_dbug.adb (Qualify_Entity_Name): Mark entity as having a qualified name after being treated, in formal verification mode. 2012-11-06 Fedor Rybin <frybin@adacore.com> * gnat_ugn.texi: Updating gnattest section to reflect changes in default behaviour of the tool. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193215 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Thomas Quinot <quinot@adacore.com>charlet2012-11-0610-80/+349
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * s-oscons-tmplt.c: Interfaces.C now needs to be WITH'd even on platforms that do not support sockets (for the benefit of subtype IOCTL_Req_T). 2012-11-06 Ed Schonberg <schonberg@adacore.com> * par-ch4.adb (P_Primary): if-expressions, case-expressions, and quantified expressions are legal if surrounded by parentheses from an enclosing context, such as a call or an instantiation. 2012-11-06 Yannick Moy <moy@adacore.com> * impunit.adb (Get_Kind_Of_Unit): Return appropriate kind for predefined implementation files, instead of returning Not_Predefined_Unit on all .adb files. 2012-11-06 Tristan Gingold <gingold@adacore.com> * exp_ch9.adb (Build_Activation_Chain_Entity): Return immediately if partition elaboration policy is sequential. (Build_Task_Activation_Call): Likewise. Use Activate_Restricted_Tasks on restricted profile. (Make_Task_Create_Call): Do not use the _Chain parameter if elaboration policy is sequential. Call Create_Restricted_Task_Sequential in that case. * exp_ch3.adb (Build_Initialization_Call): Change condition to support concurrent elaboration policy. (Build_Record_Init_Proc): Likewise. (Init_Formals): Likewise. * bindgen.adb (Gen_Adainit): Declare Partition_Elaboration_Policy and set it in generated code if the elaboration policy is sequential. The procedure called to activate all tasks is now named __gnat_activate_all_tasks. * rtsfind.adb (RE_Activate_Restricted_Task, RE_Create_Restricted_Task_Sequential): New RE_Id literals. * s-tarest.adb (Create_Restricted_Task): Added to create a task without adding it on an activation chain. (Activate_Tasks): Has now a Chain parameter. (Activate_All_Tasks_Sequential): Added. Called by the binder to activate all tasks. (Activate_Restricted_Tasks): Added. Called during elaboration to activate tasks of the units. * s-tarest.ads: Remove pragma Partition_Elaboration_Policy. (Partition_Elaboration_Policy): New variable (set by the binder). (Create_Restricted_Task): Revert removal of the chain parameter. (Create_Restricted_Task_Sequential): New procedure. (Activate_Restricted_Tasks): Revert removal. (Activate_All_Tasks_Sequential): New procedure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193214 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Bernard Banner <banner@adacore.com>charlet2012-11-068-6/+95
| | | | | | | | | | | | | | | | | | | * adaint.c Add file macro definitions missing on Android. * adaint.h Avoid definitions related to task affinity and CPU sets since this functionality is missing on the Android * errno.c (__set_errno): Android already contains such a named procedure so do include again. * gsocket.h: Sockets not supported on Android. * init.c: Avoid linux related code not supported on Android. * sysdep.c (sigismember, sigaddset, sigdelset, sigemptyset, sigfillset): wrapper functions since sig routines are defined as inline macros on Android. * terminals.c: Add stubs for terminal related functions not supported on Android. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193213 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Hristian Kirtchev <kirtchev@adacore.com>charlet2012-11-063-12/+32
| | | | | | | | | | | | | | | | * sem_prag.adb (Analyze_Pragma): Do not output the characters of an illegal argument as it may not have characters to begin with. 2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> * exp_prag.adb (Expand_Pragma_Loop_Assertion): Change the order of argument processing to avoid disappearing increase / decrease expressions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193212 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Hristian Kirtchev <kirtchev@adacore.com>charlet2012-11-066-0/+456
| | | | | | | | | | | | | | | | | | | | | | | | * exp_prag.adb: Add with and use clause for Sem_Ch8. (Expand_N_Pragma): Add a new variant to expand pragma Loop_Assertion. (Expand_Pragma_Loop_Assertion): New routine. * par-prag.adb (Prag): The semantic analysis of pragma Loop_Assertion is carried out by Analyze_Pragma. No need for checks in the parser. * sem_prag.adb: Add a reference position value for pragma Loop_Assertion in Sig_Flags. (Analyze_Pragma): Add semantic analysis for pragma Loop_Assertion. * snames.ads-tmpl: Add the following new names: Name_Decreases Name_Increases Name_Loop_Assertion. Add new pragma id Pragma_Loop_Assertion. 2012-11-06 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb: Identifier in iterator must have debug information. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193211 138bc75d-0d04-0410-961f-82ee72b054a4
* libada/charlet2012-11-063-42/+12
| | | | | | | | | | * Makefile.in (osconstool): Fix target. ada/ * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove duplicate rules handled by Make-generated.in. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193209 138bc75d-0d04-0410-961f-82ee72b054a4
* Update ChangeLog files as requested for cgraph change to checked down cast.crowl2012-11-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Index: gcc/cp/ChangeLog 2012-10-31 Lawrence Crowl <crowl@google.com> * decl2.c (var_finalized_p): Rename varpool_node to varpool_node_for_decl. (maybe_emit_vtables): Likewise. Index: gcc/ada/ChangeLog 2012-10-31 Lawrence Crowl <crowl@google.com> * gcc-interface/utils.c (gnat_write_global_declarations): Rename varpool_node to varpool_node_for_decl. Index: gcc/lto/ChangeLog 2012-10-31 Lawrence Crowl <crowl@google.com> * lto.c (lto_wpa_write_files): Change symtab checking to a checked down-cast via dyn_cast. * lto-partition.c (add_symbol_to_partition_1): Likewise. (undo_partition): Likewise. (lto_balanced_map): Likewise. (get_symbol_class): Likewise and via is_a. (lto_balanced_map): Change symtab checking to is_a. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193106 138bc75d-0d04-0410-961f-82ee72b054a4
* This patch implements generic type query and conversion functions,crowl2012-10-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and applies them to the use of cgraph_node, varpool_node, and symtab_node. The functions are: bool is_a <TYPE> (pointer) Tests whether the pointer actually points to a more derived TYPE. TYPE *as_a <TYPE> (pointer) Converts pointer to a TYPE*. TYPE *dyn_cast <TYPE> (pointer) Converts pointer to TYPE* if and only if "is_a <TYPE> pointer". Otherwise, returns NULL. This function is essentially a checked down cast. These functions reduce compile time and increase type safety when treating a generic item as a more specific item. In essence, the code change is from if (symtab_function_p (node)) { struct cgraph_node *cnode = cgraph (node); .... } to if (cgraph_node *cnode = dyn_cast <cgraph_node> (node)) { .... } The necessary conditional test defines a variable that holds a known good pointer to the specific item and avoids subsequent conversion calls and the assertion checks that may come with them. When, the property test is embedded within a larger condition, the variable declaration gets pulled out of the condition. (This leaves some room for using the variable inappropriately.) if (symtab_variable_p (node) && varpool (node)->finalized) varpool_analyze_node (varpool (node)); becomes varpool_node *vnode = dyn_cast <varpool_node> (node); if (vnode && vnode->finalized) varpool_analyze_node (vnode); Note that we have converted two sets of assertions in the calls to varpool into safe and efficient use of a variable. There are remaining calls to symtab_function_p and symtab_variable_p that do not involve a pointer to a more specific type. These have been converted to calls to a functions is_a <cgraph_node> and is_a <varpool_node>. The original predicate functions have been removed. The cgraph.h header defined both a struct and a function with the name varpool_node. This name overloading can cause some unintuitive error messages when, as is common in C++, one omits the struct keyword when using the type. I have renamed the function to varpool_node_for_decl. Tested on x86_64. Index: gcc/ChangeLog 2012-10-31 Lawrence Crowl <crowl@google.com> * is-a.h: New. (is_a <T> (U*)): New. Test for is-a relationship. (as_a <T> (U*)): New. Treat as a derived type. (dyn_cast <T> (U*)): New. Conditionally cast based on is_a. * cgraph.h (varpool_node): Rename to varpool_node_for_decl. Adjust callers to match. (is_a_helper <cgraph_node>::test (symtab_node_def *)): New. (is_a_helper <varpool_node>::test (symtab_node_def *)): New. (symtab_node_def::try_function): New. Change most calls to symtab_function_p with calls to dyn_cast <cgraph_node> (p). (symtab_node_def::try_variable): New. Change most calls to symtab_variable_p with calls to dyn_cast <varpool_node> (p). (symtab_function_p): Remove. Change callers to use is_a <cgraph_node> (p) instead. (symtab_variable_p): Remove. Change callers to use is_a <varpool_node> (p) instead. * cgraph.c (cgraph_node_for_asm): Remove redundant call to symtab_node_for_asm. * cgraphunit.c (symbol_finalized_and_needed): New. (symbol_finalized): New. (cgraph_analyze_functions): Split complicated conditionals out into above new functions. * Makefile.in (CGRAPH_H): Add is-a.h as used by cgraph.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193051 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/Make-lang.in: Fix and clean up rules for C files.ebotcazou2012-10-302-24/+15
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192998 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/Makefile.in (s-oscons.ads): Adjust call to xoscons.charlet2012-10-292-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192947 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Pascal Obry <obry@adacore.com>charlet2012-10-295-621/+659
| | | | | | | | | | | | | | | * xoscons.adb, Make-generated.in; The template used by xoscons is now given as parameter. * gcc-interface/Make-lang.in: Update dependencies. 2012-10-29 Yannick Moy <moy@adacore.com> * exp_dbug.adb (Qualify_Entity_Name): Only do renaming in formal verification mode when there is a homonym. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192942 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Thomas Quinot <quinot@adacore.com>charlet2012-10-294-8/+38
| | | | | | | | | | | | | | | | | * xoscons.adb: Minor reformatting. 2012-10-29 Yannick Moy <moy@adacore.com> * exp_alfa.adb (Expand_Alfa): Backtrack change that removed qualification of names in formal verification mode. Instead, the qualification should be modified. * exp_dbug.adb (Qualify_Entity_Name): Modify qualification in formal verification mode, so that only a suffix is added to distinguish homonyms from the same scope. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192940 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Robert Dewar <dewar@adacore.com>charlet2012-10-2917-85/+145
| | | | | | | | | | | | | | | | | | * gnat_rm.texi: Document that pragma Optimize_Alignment (Space) is ignored with a warning for packed variable length records. 2012-10-29 Thomas Quinot <quinot@adacore.com> * socket.c, g-socthi-dummy.adb, g-socthi-dummy.ads, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads, s-oscons-tmplt.c, g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb, g-socthi.ads, xoscons.adb, g-socket.adb, g-sothco.ads: Introduce an appropriate subtype for IOCTL requests, since these may be signed or unsigned. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192939 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Gary Dismukes <dismukes@adacore.com>charlet2012-10-295-6/+32
| | | | | | | | | | | | | | | | | | * exp_alfa.adb: Minor reformatting. 2012-10-29 Robert Dewar <dewar@adacore.com> * gnat_rm.texi, gnat_ugn.texi: Clarify documentation on maximum line length style switch. 2012-10-29 Robert Dewar <dewar@adacore.com> * layout.adb (Set_Composite_Alignment): Ignore pragma Optimize_Alignment (Space) for packed variable length records. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192938 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Robert Dewar <dewar@adacore.com>charlet2012-10-294-6/+38
| | | | | | | | | | | | | | | | | * s-bignum.adb: Minor comment change. 2012-10-29 Thomas Quinot <quinot@adacore.com> * s-oscons-tmplt.c: Fix signedness of ioctl request identifiers for x86_64-freebsd. 2012-10-29 Yannick Moy <moy@adacore.com> * exp_alfa.adb (Expand_Alfa): Remove qualification of names. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192937 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Robert Dewar <dewar@adacore.com>charlet2012-10-2914-32/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sem_prag.adb: Minor reformatting. 2012-10-29 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Minor rewording. 2012-10-29 Javier Miranda <miranda@adacore.com> * exp_disp.ads (Is_Expanded_Dispatching_Call): New subprogram. * exp_disp.adb (Expand_Dispatching_Call): No action needed if the call has been already expanded. (Is_Expanded_Dispatching_Call): New subprogram. * sem_disp.adb (Propagate_Tag): No action needed if the call has been already expanded. 2012-10-29 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch9.adb (Create_Index_And_Data): Remove local variable Index_Typ and its uses. The type of the index is now System.Tasking.Entry_Index. Update all related comments. * rtsfind.ads: Add RE_Entry_Index in tables RE_Id and RE_Unit_Table. * s-taskin.adb (Number_Of_Entries): The return type is now Entry_Index. * s-taskin.ads: The index type of Task_Entry_Names_Array is now Entry_Index. (Number_Of_Entries): The return type is now Entry_Index. * s-tpoben.adb (Number_Of_Entries): The return type is now Entry_Index. * s-tpoben.ads: The index type of Protected_Entry_Names_Array is now Entry_Index. (Number_Of_Entries): The return type is now Entry_Index. 2012-10-29 Pascal Obry <obry@adacore.com> * gnat_ugn.texi: Add note about SEH setup on x86-windows. 2012-10-29 Eric Botcazou <ebotcazou@adacore.com> * s-bignum.adb (Allocate_Bignum): Use the exact layout of Bignum_Data for the overlay. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192936 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Thomas Quinot <quinot@adacore.com>charlet2012-10-298-14/+116
| | | | | | | | | | | | | | * gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_util.ads, par-prag.adb, par-util.adb, snames.ads-tmpl (Sem_Prag.Analyze_Pragma): Handle new pragma Attribute_Definition. (Sem_Util.Bad_Attribute): New routine, moved here from par-util, so that it can be used by the above. (Par_Util.Signal_Bad_Attribute): Processing moved to Sem_Util.Bad_Attribute. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192935 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Robert Dewar <dewar@adacore.com>charlet2012-10-298-25/+32
| | | | | | | | | | | | | | | | | * s-tpoben.ads, s-taskin.ads, exp_ch3.adb: Minor reformatting. 2012-10-29 Yannick Moy <moy@adacore.com> * sem_prag.adb, gnat1drv.adb, opt.ads: Rename S14_Extensions into Formal_Extensions. 2012-10-29 Thomas Quinot <quinot@adacore.com> * sem_attr.adb: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192934 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Tristan Gingold <gingold@adacore.com>charlet2012-10-2914-430/+515
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnat_rm.texi: Document implementation advice for Pragma Partition_Elaboration_Policy. 2012-10-29 Yannick Moy <moy@adacore.com> * s-bignum.adb (Div_Rem): Reference that Algorithm_D is from the second edition of TAOCP from Knuth, since the algo changed in the third edition. Also correct the definition of 'd' which could overflow. 2012-10-29 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch3.adb (Build_Initialization_Call): Create static strings which denote entry [family] names and associate them with the object's Protection_Entries or ATCB. (Build_Init_Statements): Remove local variable Names. Do not generate the entry [family] names inside the init proc because they are now static. * exp_ch9.adb (Build_Entry_Names): Reimplemented. The strings which denote entry [family] names are now generated statically and associated with the concurrent object's Protection_Entries or ATCB during initialization. * exp_ch9.ads (Build_Entry_Names): Change subprogram profile and associated comment on usage. * rtsfind.ads: Add the following entries to tables RE_Id and RE_Unit_Table: RE_Protected_Entry_Names_Array RE_Task_Entry_Names_Array RO_PE_Number_Of_Entries RO_PE_Set_Entry_Names RO_ST_Number_Of_Entries RO_ST_Set_Entry_Names Remove the following entries from tables RE_Id and RE_Unit_Table: RO_PE_Set_Entry_Name RO_TS_Set_Entry_Name * s-taskin.adb: Remove with clause for Ada.Unchecked_Deallocation. (Free_Entry_Names_Array): Removed. (Number_Of_Entries): New routine. (Set_Entry_Names): New routine. * s-taskin.ads: Rename type Entry_Names_Array to Task_Entry_Names_Array. Rename type Entry_Names_Array_Access to Task_Entry_Names_Access. Update the type of ACTB field Entry_Names and add a comment on its protection status. (Free_Entry_Names_Array): Removed. (Number_Of_Entries): New routine. (Set_Entry_Names): New routine. * s-tassta.adb (Create_Task): Remove formal parameter Build_Entry_Names. Do not allocate an array to hold the string names of entries and families. (Free_Entry_Names): Removed. (Free_Task): Remove the call to Free_Entry_Names. (Set_Entry_Name): Removed. (Vulnerable_Free_Task): Remove the call to Free_Entry_Names. * s-tassta.ads (Create_Task): Remove formal parameter Build_Entry_Names along with associated comment. (Set_Entry_Name): Removed. * s-tpoben.adb: Remove with clause for Ada.Unchecked_Deallocation. (Finalize): Remove the call to Free_Entry_Names. (Free_Entry_Names): Removed. (Initialize_Protection_Entries): Remove formal parameter Build_Entry_Names. Do not allocate an array to hold the string names of entries and families. (Number_Of_Entries): New routine. (Set_Entry_Name): Removed. (Set_Entry_Names): New routine. * s-tpoben.ads: Add types Protected_Entry_Names_Array and Protected_Entry_Names_Access. Update the type of Protection_Enties field Entry_Names. (Initialize_Protection_Entries): Remove formal parameter Build_Entry_Names along with associated comment. (Number_Of_Entries): New routine. (Set_Entry_Name): Removed. (Set_Entry_Names): New routine. 2012-10-29 Arnaud Charlet <charlet@adacore.com> * gnat_ugn.texi: Minor typo fix. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192933 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-29 Yannick Moy <moy@adacore.com>charlet2012-10-298-38/+53
| | | | | | | | | | | | | | | | | | | | | * debug.adb Associate debug switch -gnatd.V to extensions for formal verification. * gnat1drv.adb (Adjust_Global_Switches): Set flag S14_Extensions when -gnatd.V is set. * gnat_rm.texi: Remove doc for Assert_And_Cut. * opt.ads Declare new flag S14_Extensions, to be set when new aspects/pragmas/attributes for formal verification should be accepted. * sem_prag.adb (Analyze_Pragma): Check that S14_Extensions is set when treating pragma Assert_And_Cut. 2012-10-29 Tristan Gingold <gingold@adacore.com> * s-tarest.ads, s-tassta.adb: Add a pragma Partition_Elaboration_Policy. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192931 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud