aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2011-10-13* gcc-interface/Makefile.in: Fix typo.Arnaud Charlet2-1/+5
From-SVN: r179900
2011-10-13[multiple changes]Arnaud Charlet9-15/+415
2011-10-13 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Analyze_Formal_{Floating_Type, Signed_Integer_Type, Decimal_Fixed_Point_Type, Discrete_Type}): Use sloc of defining identifier of farmal type declaration, as sloc of generated internal entity, to prevent misplaced references in ali. 2011-10-13 Ed Schonberg <schonberg@adacore.com> * sem_intr.adb (Check_Intrinsic_Operator): Check that type is fully defined before checking that it is a numeric type. 2011-10-13 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Resolve_Record_Aggregate): If a component association for component X has a box, then X is covered in the aggregate even if there is not default value for X in the type declaration, and X has to be default-initialized. 2011-10-13 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Check_Enum_Image, Analyze_Attribute case 'Value): Mark literals as referenced only if reference is in current source unit. 2011-10-13 Matthew Heaney <heaney@adacore.com> * a-csquin.ads (Enque, Dequeue): Mark interface operations as entries. 2011-10-13 Olivier Hainque <hainque@adacore.com> * sigtramp.h: New file. Prototype and spec of the signal trampoline to be called by an established handler to provide dwarf call frame info before the real signal processing code. * sigtramp-ppcvxw.c: New file. Implementation of the signal trampoline for ppc-vxworks. * init.c (vxworks section): Use it for ppc. From-SVN: r179899
2011-10-13[multiple changes]Arnaud Charlet16-450/+365
2011-10-13 Thomas Quinot <quinot@adacore.com> * par-ch2.adb, par.adb, par-util.adb, par-ch3.adb (Check_Future_Identifier): New subprogram, factors duplicated code from Par.Ch2.P_Identifier and Par.Ch3.P_Defining_Identifier. 2011-10-13 Thomas Quinot <quinot@adacore.com> * s-taprop-posix.adb (Initialize): Always raise Storage_Error if we fail to initialize CV attributes or CV. 2011-10-13 Thomas Quinot <quinot@adacore.com> * s-tasren.adb (Timed_Selective_Wait, case Accept_Alternative_Selected): Use Defer_Abort_Nestable, since we know abortion is already deferred. 2011-10-13 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch3.adb (Build_Class_Wide_Master): Moved to exp_ch9. (Build_Master_Renaming (function)): Removed. (Build_Master_Renaming (procedure)): Moved to exp_ch9. (Expand_Full_Type_Declaration): Alphabetize variables. Reformatting of code and comments. Rewrite the section on processing of anonymous access-to-task types in record components. * exp_ch3.ads (Build_Class_Wide_Master): Moved to exp_ch9. (Build_Master_Renaming): Moved to exp_ch9. * exp_ch9.adb (Build_Class_Wide_Master): Moved from exp_ch3. (Build_Master_Entity): Add formal parameter Use_Current. Reformatting of code and comments. (Build_Master_Renaming): Moved from exp_ch3. * exp_ch9.ads (Build_Class_Wide_Master): Moved from exp_ch3. Update comment on usage. (Build_Master_Entity): Add formal parameter Use_Current. Update comment on usage. (Build_Master_Renaming): Moved from exp_ch3. * sem_ch3.adb (Access_Definition): Remove redundant code to create a _master and a renaming. 2011-10-13 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb: Do no emit reference to overridden operation, if it is internally generated. 2011-10-13 Vincent Celier <celier@adacore.com> * bindgen.adb: Remove any processing related to g-trasym * Makefile.rtl: Add g-trasym.o to GNATRTL_NONTASKING_OBJS * mlib-prj.adb: Remove any processing related to g-trasym. From-SVN: r179898
2011-10-12Makefile.in (LOOSE_WARN): Delete.Eric Botcazou6-132/+63
gnattools/ * Makefile.in (LOOSE_WARN): Delete. (GCC_WARN_CFLAGS): Set to -W -Wall. (TOOLS_FLAGS_TO_PASS_1): Delete. (TOOLS_FLAGS_TO_PASS_1re): Rename into... (TOOLS_FLAGS_TO_PASS_RE): ...this. (gnattools-native): Use TOOLS_FLAGS_TO_PASS_NATIVE. (regnattools): Use TOOLS_FLAGS_TO_PASS_RE. libada/ * Makefile.in (LOOSE_WARN): Delete. (GCC_WARN_CFLAGS): Likewise. (WARN_CFLAGS): Likewise. (GNATLIBFLAGS): Add -nostdinc. (GNATLIBCFLAGS_FOR_C): Add -W -Wall. (LIBADA_FLAGS_TO_PASS): Remove WARN_CFLAGS. * configure.ac (warn_cflags): Delete. * configure: Regenerate. gcc/ada/ * sem_util.adb (Denotes_Same_Prefix): Fix fatal warning. * gcc-interface/Make-lang.in (WARN_ADAFLAGS): New. (ALL_ADAFLAGS): Include WARN_ADAFLAGS. (ADA_FLAGS_TO_PASS): Likewise. (COMMON_FLAGS_TO_PASS): New. (ADA_TOOLS_FLAGS_TO_PASS): Use COMMON_FLAGS_TO_PASS. In the regular native case, also use FLAGS_TO_PASS and ADA_FLAGS_TO_PASS. (gnatlib): Use COMMON_FLAGS_TO_PASS. (ada.install-common): Likewise. (install-gnatlib): Likewise. (install-gnatlib-obj): Likewise. (gnattools): Use ADA_TOOLS_FLAGS_TO_PASS for gnattools1 as well. (gnat-cross): Delete. (gnatboot): Likewise. (gnatboot2): Likewise. (gnatboot3): Likewise. (gnatstage1): Likewise. (gnatstage2): Likewise. * gcc-interface/Makefile.in (SOME_ADAFLAGS): Likewise. (MOST_ADAFLAGS): Likewise. (LOOSE_CFLAGS): Likewise. (gnat-cross): Likewise. (GNATLIBFLAGS): Add -W -Wall. (GNATLIBCFLAGS_FOR_C): Likewise. * gcc-interface/lang.opt: Remove C-specific warnings. Add doc lines. * gcc-interface/misc.c (gnat_handle_option): Remove obsolete cases. From-SVN: r179878
2011-10-12trans.c (Attribute_to_gnu): Use remove_conversions.Eric Botcazou4-32/+29
* gcc-interface/trans.c (Attribute_to_gnu): Use remove_conversions. (push_range_check_info): Likewise. (gnat_to_gnu) <N_Code_Statement>: Likewise. * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise. (gnat_invariant_expr): Likewise. * gcc-interface/utils.c (compute_related_constant): Likewise. (max_size): Fix handling of SAVE_EXPR. (remove_conversions): Fix formatting. From-SVN: r179873
2011-10-12ada-tree.h (DECL_LOOP_PARM_P): New flag.Eric Botcazou8-69/+454
* gcc-interface/ada-tree.h (DECL_LOOP_PARM_P): New flag. (DECL_INDUCTION_VAR): New macro. (SET_DECL_INDUCTION_VAR): Likewise. * gcc-interface/gigi.h (convert_to_index_type): Declare. (gnat_invariant_expr): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If this is a loop parameter, set DECL_LOOP_PARM_P on it. * gcc-interface/misc.c (gnat_print_decl) <VAR_DECL>: If DECL_LOOP_PARM_P is set, print DECL_INDUCTION_VAR instead of DECL_RENAMED_OBJECT. * gcc-interface/trans.c (gnu_loop_label_stack): Delete. (struct range_check_info_d): New type. (struct loop_info_d): Likewise. (gnu_loop_stack): New stack. (Identifier_to_gnu): Set TREE_READONLY flag on the first dereference built for a by-double-ref read-only parameter. If DECL_LOOP_PARM_P is set, do not test DECL_RENAMED_OBJECT. (push_range_check_info): New function. (Loop_Statement_to_gnu): Push a new struct loop_info_d instead of just the label. Reference the label and the iteration variable from it. Build the special induction variable in the unsigned version of the size type, if it is larger than the base type. And attach it to the iteration variable if the latter isn't by-ref. In the iteration scheme case, initialize the invariant conditions in front of the loop if deemed profitable. Use gnu_loop_stack. (gnat_to_gnu) <N_Exit_Statement>: Use gnu_loop_stack. <N_Raise_Constraint_Error>: Always process the reason. In the range check and related cases, and if loop unswitching is enabled, compute invariant conditions and push this information onto the stack. Do not translate again the condition if it has been already translated. * gcc-interface/utils.c (record_global_renaming_pointer): Assert that DECL_LOOP_PARM_P isn't set. (convert_to_index_type): New function. * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Use it in order to convert the index from the base index type to sizetype. (gnat_invariant_expr): New function. From-SVN: r179868
2011-10-11Convert standard builtin functions from being arrays to using a functional ↵Michael Meissner3-6/+15
interface From-SVN: r179820
2011-10-08Fix ChangeLog format for revision 177233.Gerald Pfeifer1-3/+4
From-SVN: r179712
2011-10-07re PR lto/50492 (Ada bootstrap failure --with-build-config=bootstrap-lto)Eric Botcazou3-9/+27
PR lto/50492 * gcc-interface/gigi.h (gnat_pushdecl): Adjust comment. * gcc-interface/utils.c (global_context): New variable. (gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLs that are either public external or at top level. Use "No" macro. (end_subprog_body): Call decl_function_context. (rest_of_subprog_body_compilation): Likewise. From-SVN: r179652
2011-10-07gigi.h (gnat_useless_type_conversion): Declare.Eric Botcazou5-16/+400
* gcc-interface/gigi.h (gnat_useless_type_conversion): Declare. (rest_of_subprog_body_compilation): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: For renaming, test for useless conversions by means of gnat_useless_type_conversion. * gcc-interface/trans.c: Include bitmap.h and cgraph.h. (language_function): Add named_ret_val and other_ret_val. (f_named_ret_val): New macro. (f_other_ret_val): Likewise. (gigi): Call rest_of_subprog_body_compilation. (struct nrv_data): New structure. (is_nrv_p): New predicate. (prune_nrv_r): New helper function. (prune_nrv_in_block): New function. (finalize_nrv_r): New helper function. (finalize_nrv): New function. (return_value_ok_for_nrv_p): New predicate. (build_return_expr): If optimization is enabled, record candidates for the Named Return Value optimization. (build_function_stub): Call rest_of_subprog_body_compilation. (Subprogram_Body_to_gnu): If optimization is enabled and there are candidates, finalize the Named Return Value optimization. Call rest_of_subprog_body_compilation. (call_to_gnu): At the end, if a return value is needed, simplify the result before wrapping it up in a COMPOUND_EXPR. * gcc-interface/utils.c (end_subprog_body): Split into... (rest_of_subprog_body_compilation): ...this. New function. (gnat_useless_type_conversion): Likewise. From-SVN: r179650
2011-10-06[multiple changes]Arnaud Charlet45-404/+284
2011-10-06 Thomas Quinot <quinot@adacore.com> * einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb, g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb, par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb, s-regpat.adb, s-tpopde-vms.ads: Minor reformatting. * s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD. 2011-10-06 Ed Schonberg <schonberg@adacore.com> * a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container references. 2011-10-06 Matthew Heaney <heaney@adacore.com> * a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb (Dequeue_Only_High_Priority): Protected procedure now implemented. 2011-10-06 Vincent Celier <celier@adacore.com> * g-trasym.adb: Replace old implementation with the default implementation that returns list of addresses as "0x...". * g-trasym.ads: Update the list of platforms with the full capability. Indicate that there is a default implementation for other platforms. * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove. * gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as there is now a default implementation for all platforms without the full capability. From-SVN: r179631
2011-10-06[multiple changes]Arnaud Charlet14-604/+322
2011-10-06 Robert Dewar <dewar@adacore.com> * a-ciorse.adb, a-cihase.adb, a-cihase.ads, a-coorse.adb, a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb, a-cbmutr.ads, a-cbhase.adb, a-cbhase.ads: Minor reformatting and code reorganization (use conditional expressions). 2011-10-06 Robert Dewar <dewar@adacore.com> * sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning for floating divide by zero. 2011-10-06 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb: Limited interfaces that are not immutably limited are OK in return statements. From-SVN: r179629
2011-09-30Partial reversion of r179358.Iain Sandoe2-1/+8
ada: Partial reversion of r179358. * gcc-interface/Makefile.in (Darwin): Partial reversion of previous change to powerpc section. From-SVN: r179384
2011-09-29Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS across the port.Iain Sandoe2-35/+20
ada: * gcc-interface/Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS across the port. From-SVN: r179358
2011-09-27a-cbhase.adb, [...]: Add iterator machinery to bounded sets and indefinite sets.Ed Schonberg17-239/+989
2011-09-27 Ed Schonberg <schonberg@adacore.com> * a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads, a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads, a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets and indefinite sets. * a-coorma.ads: Minor reformmating. * einfo.ads: Improve the comment describing the Directly_Designated_Type function. * a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefinite ordered maps. * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update dependencies. From-SVN: r179260
2011-09-27[multiple changes]Arnaud Charlet10-65/+245
2011-09-27 Robert Dewar <dewar@adacore.com> * a-comutr.ads: Minor reformatting. 2011-09-27 Ed Schonberg <schonberg@adacore.com> * a-cimutr.adb, a-cimutr.ads, a-cbmutr.adb, a-cbmutr.ads: Add children iterators to multiway trees. 2011-09-27 Yannick Moy <moy@adacore.com> * debug.adb (d.D): New option for strict Alfa mode. * opt.ads (Strict_Alfa_Mode): New flag to interpret compiler permissions as strictly as possible. * sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strict Alfa mode, now, interpret ranges of base types like GNAT does; in strict mode, simply change the range of the implicit base Itype. * gnat1drv.adb: Update comments. Set Strict_Alfa_Mode. From-SVN: r179258
2011-09-27[multiple changes]Arnaud Charlet4-4/+90
2011-09-27 Robert Dewar <dewar@adacore.com> * exp_ch9.adb: Minor comment fixes. 2011-09-27 Ed Schonberg <schonberg@adacore.com> * a-comutr.adb, a-comutr.ads: Add children iterators on multiway trees. From-SVN: r179257
2011-09-27[multiple changes]Arnaud Charlet4-9/+72
2011-09-27 Eric Botcazou <ebotcazou@adacore.com> * checks.adb (Apply_Scalar_Range_Check): Use Designated_Type instead of Directly_Designated_Type in the indirect array case. 2011-09-27 Robert Dewar <dewar@adacore.com> * exp_util.adb, exp_aggr.adb: Minor reformatting. From-SVN: r179256
2011-09-27[multiple changes]Arnaud Charlet7-17/+47
2011-09-27 Ed Schonberg <schonberg@adacore.com> * sinfo.ads, par-ch3.adb: Minor comment update: aspect specification on subtype declarations. * exp_aggr.adb: Minor comment update. 2011-09-27 Eric Botcazou <ebotcazou@adacore.com> * exp_util.adb (Safe_Prefixed_Reference): Remove always-false test in the N_Explicit_Dereference case. Fold double logical negation in the special loop case and conditionalize it on Variable_Ref being true. 2011-09-27 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Selected_Component): If the prefix is a single protected object and the selector is a discriminant or an entry family, this is a non-overloaded candidate interpretation, and possible primitive operations of the type must not be examined. 2011-09-27 Arnaud Charlet <charlet@adacore.com> * s-taspri-posix-noaltstack.ads (Lock): Mark fields aliased. From-SVN: r179255
2011-09-27[multiple changes]Arnaud Charlet10-9/+74
2011-09-27 Pascal Obry <obry@adacore.com> * s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads, s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads: Add dummy definitions for pthread_rwlock_t and pthread_rwlockattr_t on all POSIX platforms. * s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock reference. (Finalize_Lock): Likewise. (Write_Lock): Likewise. (Unlock): Likewise. 2011-09-27 Tristan Gingold <gingold@adacore.com> * s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for windows 64. From-SVN: r179254
2011-09-27s-osinte-hpux.ads, [...]: Revert previous changes.Pascal Obry31-453/+112
2011-09-27 Pascal Obry <obry@adacore.com> * s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads, s-taprop-tru64.adb, s-osinte-aix.ads, s-taspri-posix-noaltstack.ads, s-taspri-mingw.ads, s-taprop-vms.adb, s-tpoben.adb, s-tpoben.ads, s-taprop-mingw.adb, s-taprob.adb, s-taprob.ads, s-osinte-solaris-posix.ads, s-taprop-solaris.adb, s-taspri-solaris.ads, s-osinte-irix.ads, s-taprop-irix.adb, s-osinte-darwin.ads, s-taspri-dummy.ads, s-taspri-posix.ads, s-taprop.ads, s-taspri-vms.ads, s-osinte-freebsd.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads, s-taspri-tru64.ads, s-taprop-dummy.adb, s-taprop-posix.adb: Revert previous changes. (Lock): Now a record containing the two possible lock (mutex and read/write) defined in OS_Interface. * s-taprop-linux.adb (Finalize_Protection): Use r/w lock for 'R' locking policy. (Initialize_Protection): Likewise. (Lock): Likewise. (Lock_Read_Only): Likewise. (Unlock): Likewise. From-SVN: r179253
2011-09-27[multiple changes]Arnaud Charlet13-76/+90
2011-09-27 Pascal Obry <obry@adacore.com> * s-taspri-posix-noaltstack.ads (RW_Lock): This type is now defined as OS_Interface.pthread_rwlock_t. 2011-09-27 Robert Dewar <dewar@adacore.com> * exp_ch9.adb, a-cimutr.adb, a-cimutr.ads, gnat1drv.adb, a-comutr.adb, a-comutr.ads, exp_dist.adb, a-cbmutr.adb, a-cbmutr.ads, sem_ch5.adb, sem_util.adb: Minor reformatting. From-SVN: r179252
2011-09-27s-taprop.ads (Initialize_Lock): New spec for r/w lock.Pascal Obry26-40/+462
2011-09-27 Pascal Obry <obry@adacore.com> * s-taprop.ads (Initialize_Lock)[RW_Lock]: New spec for r/w lock. (Finalize_Lock)[RW_Lock]: Likewise. (Write_Lock)[RW_Lock]: Likewise. (Unlock)[RW_Lock]: Likewise. (Read_Lock): Define L as RW_Lock (instead of Lock). * s-taprop-linux.adb (Initialize_Lock)[RW_Lock]: New routine for r/w lock. (Finalize_Lock)[RW_Lock]: Likewise. (Write_Lock)[RW_Lock]: Likewise. (Unlock)[RW_Lock]: Likewise. (Read_Lock): Define L as RW_Lock (instead of Lock). * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb (Initialize_Lock)[RW_Lock]: Same implementation as corresponding routine for standard lock. (Finalize_Lock)[RW_Lock]: Likewise. (Write_Lock)[RW_Lock]: Likewise. (Unlock)[RW_Lock]: Likewise. (Read_Lock): Define L as RW_Lock (instead of Lock). * s-taprob.ads, s-tpoben.ads (Protection): Add RWL (RW_Lock) in the record definition. * s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/w lock for 'R' locking policy. (Initialize_Protection): Likewise. (Lock): Likewise. (Lock_Read_Only): Likewise. (Unlock): Likewise. * s-taspri-posix.ads (RW_Lock): New type defined as OS_Interface.pthread_rwlock_t. * s-taspri-vxworks.ads, s-taspri-posix-noaltstack.ads, s-taspri-mingw.ads, s-taspri-solaris.ads, s-taspri-dummy.ads, s-taspri-posix.ads, s-taspri-vms.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads (RW_Lock): New type defined as alias to Lock. From-SVN: r179251
2011-09-27exp_ch9.adb, [...]: Minor reformatting.Pascal Obry10-19/+136
2011-09-27 Pascal Obry <obry@adacore.com> * exp_ch9.adb, s-taspri-posix.ads: Minor reformatting. 2011-09-27 Pascal Obry <obry@adacore.com> * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads, s-osinte-hpux.ads, s-osinte-irix.ads, s-osinte-solaris-posix.ads (pthread_rwlock_t): New definition alias of pthread_mutex_t. (pthread_rwlockattr_t): New definition alias of pthread_mutexattr_t. * s-osinte-linux.ads (pthread_rwlock_t, pthread_rwlockattr_t, pthread_rwlockattr_init, pthread_rwlockattr_destroy, pthread_rwlockattr_setkind_np, pthread_rwlock_init, pthread_rwlock_destroy, pthread_rwlock_rdlock, pthread_rwlock_wrlock, pthread_rwlock_unlock): New. From-SVN: r179250
2011-09-27rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry.Pascal Obry7-17/+42
2011-09-27 Pascal Obry <obry@adacore.com> * rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry. (RE_Id): Add RE_Lock_Read_Only. (RE_Unit_Table): Likewise. * sem_prag.adb (Process_Convention): Change Pragma_Locking_Policy to lift restriction on first character. Handle now the Name_Concurrent_Readers_Locking where policy character is set to 'R'. * snames.ads-tmpl (Name_Concurrent_Readers_Locking): New constant. * exp_ch9.adb (Build_Protected_Subprogram_Body): Generate a read only lock for function in protected object. * s-taprob.ads (Lock_Read_Only): Remove obsolete comment as this routine is now used. From-SVN: r179248
2011-09-26Fix oversightEric Botcazou1-7/+7
From-SVN: r179190
2011-09-26Restore Ada bootstrap on Solaris 8, 9/x86Rainer Orth2-2/+7
From-SVN: r179189
2011-09-26utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the dereference of the ↵Eric Botcazou2-42/+38
pointer to the storage area. * gcc-interface/utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the dereference of the pointer to the storage area. Remove useless type conversions and factor out common code. From-SVN: r179187
2011-09-26utils.c (maybe_unconstrained_array): Declare TYPE local variable and use it ↵Eric Botcazou2-32/+39
throughout. * gcc-interface/utils.c (maybe_unconstrained_array): Declare TYPE local variable and use it throughout. <UNCONSTRAINED_ARRAY_TYPE>: Add 'break' at the end. <RECORD_TYPE>: Do not unconditionally convert to the unpadded type as a first step. Also convert to the unpadded type as a last step. From-SVN: r179186
2011-09-26gigi.h (create_subprog_decl): Replace TREE_CHAIN with DECL_CHAIN in comment.Eric Botcazou4-19/+31
* gcc-interface/gigi.h (create_subprog_decl): Replace TREE_CHAIN with DECL_CHAIN in comment. * gcc-interface/trans.c (gigi): Likewise. (Attribute_to_gnu): Likewise. (build_function_stub): Likewise. (gnat_to_gnu): Likewise. * gcc-interface/utils.c (create_subprog_decl): Likewise. (convert_vms_descriptor64): Likewise. (convert_vms_descriptor32): Likewise. From-SVN: r179185
2011-09-26trans.c (assoc_to_constructor): Minor tweaks.Eric Botcazou3-42/+45
* gcc-interface/trans.c (assoc_to_constructor): Minor tweaks. * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting issues. Use COMPLETE_TYPE_P in assertion. Also set TREE_READONLY if the type of the record is TYPE_READONLY. From-SVN: r179184
2011-09-26sem_ch6.adb (Set_Formal_Mode): Set Can_Never_Be_Null on an IN or IN OUT ↵Eric Botcazou2-0/+16
formal parameter which is of an... * sem_ch6.adb (Set_Formal_Mode): Set Can_Never_Be_Null on an IN or IN OUT formal parameter which is of an null-exclusion access subtype. Co-Authored-By: Robert Dewar <dewar@adacore.com> From-SVN: r179183
2011-09-26ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro.Eric Botcazou5-59/+94
* gcc-interface/ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro. * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Set the flag. (gnat_to_gnu_param): Likewise. * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Invoke maybe_unconstrained_array instead of doing the work manually. (maybe_unconstrained_array): Propagate the TREE_THIS_NOTRAP flag. * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: If operand is a DECL with the flag, set TREE_THIS_NOTRAP on the reference. (gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag. (gnat_stabilize_reference): Likewise. From-SVN: r179182
2011-09-26ada-tree.h (TYPE_NULL_BOUNDS): New macro.Eric Botcazou6-22/+151
* gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro. (SET_TYPE_NULL_BOUNDS): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set again TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template. * gcc-interface/trans.c (Identifier_to_gnu): Return initializers of fat pointer types. * gcc-interface/utils.c (create_var_decl_1): If the object is external, check that the initializer is a valid constant expression for use in initializing a static variable. Add missing guard. (update_pointer_to): Adjust TYPE_NULL_BOUNDS if set. (convert_to_fat_pointer): In the null fat pointer case, build a valid pointer for the bounds. * gcc-interface/utils2.c (compare_fat_pointers): New function. (build_binary_op) <EQ_EXPR>: Call it to compare fat pointers. From-SVN: r179180
2011-09-25ada-tree.h (TREE_THIS_NOTRAP): Redefine.Eric Botcazou4-40/+75
* gcc-interface/ada-tree.h (TREE_THIS_NOTRAP): Redefine. * gcc-interface/trans.c (Identifier_to_gnu): Factor out common code in the by-ref case. Do not set TREE_READONLY on a renamed object. Set TREE_THIS_NOTRAP on UNCONSTRAINED_ARRAY_REF nodes. (Attribute_to_gnu) <Attr_Length>: Expand the use of the parameter cache to the indirect case. * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Preserve the TREE_THIS_NOTRAP flag. From-SVN: r179171
2011-09-25trans.c (Loop_Statement_to_gnu): In the case of an iteration scheme...Eric Botcazou2-60/+105
* gcc-interface/trans.c (Loop_Statement_to_gnu): In the case of an iteration scheme, always generate the do-while form if optimization is enabled. Use more straightforward test at the end. From-SVN: r179169
2011-09-25decl.c (gnat_to_gnu_entity): Use XNEW instead of xmalloc.Eric Botcazou4-75/+67
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Subtype>: Use XNEW instead of xmalloc. Do not build useless pointer type. <E_Anonymous_Access_Subprogram_Type>: Use XNEW instead of xmalloc. * gcc-interface/trans.c (gnat_to_gnu) <N_Raise_Constraint_Error>: Tidy. * gcc-interface/utils2.c (build_unary_op): Remove local variable. From-SVN: r179168
2011-09-25decl.c (gnat_to_gnu_entity): Do not promote the alignment if this doesn't ↵Eric Botcazou2-5/+24
prevent BLKmode access to the object. * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not promote the alignment if this doesn't prevent BLKmode access to the object. From-SVN: r179167
2011-09-24ada, remove flat_namespace library option from darwin port build/defaults :Iain Sandoe3-7/+9
* gcc-interface/Makefile.in (darwin): Do not issue the '-flat_namespace' linker flag during Ada build. * mlib-tgt-specific-darwin.adb: Remove '-flat_namespace' flag from the default shared library options. From-SVN: r179148
2011-09-19decl.c (annotate_value): Look up expression for insertion in the cache at ↵Alexandre Oliva2-7/+24
the end. * gcc-interface/decl.c (annotate_value): Look up expression for insertion in the cache at the end. From-SVN: r178970
2011-09-19Update dependencies.Arnaud Charlet2-53/+58
From-SVN: r178964
2011-09-19[multiple changes]Arnaud Charlet24-241/+968
2011-09-19 Steve Baird <baird@adacore.com> * snames.ads-tmpl: Move declaration of Name_Annotate into range of configuration pragma names so that Is_Configuration_Pragma_Name will return True for Name_Annotate. Make corresponding change in Pragma_Id enumeration type. This is needed to allow an Annotate pragma to occur in a configuration pragma file (typically, a gnat.adc file). * gnat_ugn.texi: Add Annotate to the list of configuration pragmas. * gnat_rm.texi: Note that pragma Annotate may be used as a configuration pragma. 2011-09-19 Ed Schonberg <schonberg@adacore.com> * a-cbmutr.adb, a-cbmutr.ads, a-cimutr.adb, a-cimutr.ads, a-comutr.adb, a-comutr.ads: Add iterator machinery for multiway trees. 2011-09-19 Yannick Moy <moy@adacore.com> * exp_alfa.adb, exp_alfa.ads (Expand_Alfa_N_In): New function for expansion of set membership. (Expand_Alfa): Call expansion for N_In and N_Not_In nodes. * exp_ch4.adb, exp_ch4.ads (Expand_Set_Membership): Make procedure visible for use in Alfa expansion. * sem_ch5.adb (Analyze_Iterator_Specification): Introduce loop variable in Alfa mode. 2011-09-19 Thomas Quinot <quinot@adacore.com> * s-osinte-darwin.ads: Change SIGADAABRT on Darwin to SIGABRT. 2011-09-19 Thomas Quinot <quinot@adacore.com> * exp_ch9.adb: Minor reformatting. 2011-09-19 Hristian Kirtchev <kirtchev@adacore.com> * freeze.adb (Build_Renamed_Body): Generic subprograms instantiations cannot be poperly inlined by the compiler, do not set the Body_To_Inline attribute in such cases. * sem_ch12.adb (Analyze_Subprogram_Instantiation): Inherit all inlining-related flags from the generic subprogram declaration. 2011-09-19 Thomas Quinot <quinot@adacore.com> * exp_dist.adb, rtsfind.ads, sem_util.adb, sem_util.ads (Build_Stub_Type): Remove, instead copy components from System.Partition_Interface.RACW_Stub_Type. (RPC_Receiver_Decl): Remainder of code from old Build_Stub_Type routine. (Copy_Component_List): New subprogram. 2011-09-19 Yannick Moy <moy@adacore.com> * lib-xref.adb (Generate_Reference): Ignore references to constants in Standard. From-SVN: r178962
2011-09-19[multiple changes]Arnaud Charlet15-61/+257
2011-09-19 Robert Dewar <dewar@adacore.com> * err_vars.ads, errout.ads: Minor reformatting. 2011-09-19 Robert Dewar <dewar@adacore.com> * aspects.ads (Impl_Defined_Aspects): New array * lib-writ.adb (No_Dependences): New name for No_Dependence * restrict.adb (No_Dependences): New name for No_Dependence (Check_Restriction_No_Specification_Of_Aspect): New procedure. (Set_Restriction_No_Specification_Of_Aspect): New procedure (Restricted_Profile_Result): New variable (No_Specification_Of_Aspects): New variable (No_Specification_Of_Aspect_Warning): New variable * restrict.ads (No_Dependences): New name for No_Dependence (Check_Restriction_No_Specification_Of_Aspect): New procedure (Set_Restriction_No_Specification_Of_Aspect): New procedure * s-rident.ads: Add restriction No_Implementation_Aspect_Specifications, this is also added to the No_Implementation_Extensions profile. * sem_ch13.adb (Analyze_Aspect_Specifications): Check No_Implementation_Defined_Aspects (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect * sem_prag.adb (Analyze_Aspect_Specifications): Check No_Implementation_Aspects (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect * snames.ads-tmpl (Name_No_Specification_Of_Aspect): New name 2011-09-19 Yannick Moy <moy@adacore.com> * lib-xref.adb (Generate_Reference): Take into account multiple renamings for Alfa refs. 2011-09-19 Thomas Quinot <quinot@adacore.com> * g-socthi-mingw.adb: Minor reformatting. 2011-09-19 Yannick Moy <moy@adacore.com> * gnat1drv.adb (Adjust_Global_Switches): Set tagged type expansion to False in mode Alfa 2011-09-19 Pascal Obry <obry@adacore.com> * mingw32.h: Remove obsolete code needed for old versions of MingW. From-SVN: r178959
2011-09-19errout.ads: Minor reformatting.Robert Dewar2-3/+6
2011-09-19 Robert Dewar <dewar@adacore.com> * errout.ads: Minor reformatting. From-SVN: r178958
2011-09-19[multiple changes]Arnaud Charlet3-91/+50
2011-09-19 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Expression_Function): When the expression function is transformed into a declaration and a body, insert body at the end of the declarative part, to prevent premature freeze actions, and preserve original specification in the subprogram declaration. 2011-09-19 Vincent Celier <celier@adacore.com> * projects.texi: Minor editing. From-SVN: r178957
2011-09-19[multiple changes]Arnaud Charlet7-9/+49
2011-09-19 Robert Dewar <dewar@adacore.com> * sem_aggr.adb, lib-writ.ads, s-restri.ads, sem_ch6.adb, exp_aggr.adb: Minor reformatting. 2011-09-19 Yannick Moy <moy@adacore.com> * lib-xref.adb (Generate_Reference): Change entity referenced to underlying object if any, or else reference to the HEAP. From-SVN: r178956
2011-09-15Update dependencies.Arnaud Charlet2-15/+19
From-SVN: r178879
2011-09-15[multiple changes]Arnaud Charlet5-7/+40
2011-09-15 Robert Dewar <dewar@adacore.com> * tree_io.ads: Minor reformatting. * a-intnam.ads: Fix bad header. 2011-09-15 Thomas Quinot <quinot@adacore.com> * a-exexpr-gcc.adb: Minor reformatting. 2011-09-15 Yannick Moy <moy@adacore.com> * sem_ch6.adb: Propagate information that an expression function comes from source (otherwise references to this entity are not stored). From-SVN: r178878
2011-09-15[multiple changes]Arnaud Charlet21-198/+293
2011-09-15 Robert Dewar <dewar@adacore.com> * a-cdlili.adb, a-coinve.adb, a-stzunb-shared.ads, a-suezst.adb, a-suenco.adb, a-stwiun-shared.ads, a-cobove.adb, a-convec.adb, a-btgbso.adb, a-cbdlli.adb, a-suewst.adb: Minor reformatting. 2011-09-15 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Expression_Function): Code cleanup: if the expression function is not a completion, create a new specification for the generated declaration, and keep the original specification in the generated body. Shorter code also ensures that proper warnings are generated for unused formals in all cases. 2011-09-15 Sergey Rybin <rybin@adacore.com> * tree_io.ads: Update ASIS_Version_Number because of the changes in the tree structures for expression functions. 2011-09-15 Arnaud Charlet <charlet@adacore.com> * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads, s-osinte-hpux.ads, s-osinte-lynxos.ads, s-osinte-solaris-posix.ads, s-taprop-posix.adb (CLOCK_MONOTONIC): New constant. (CLOCK_REALTIME): Fix wrong value on some OSes. * s-taprop-posix.adb (Monotonic_Clock): Use CLOCK_MONOTONIC. From-SVN: r178877
2011-09-11utils.c (maybe_unconstrained_array): In the reference to unconstrained array ↵Eric Botcazou3-11/+51
case, deal with each branch of a COND_EXPR. * gcc-interface/utils.c (maybe_unconstrained_array): In the reference to unconstrained array case, deal with each branch of a COND_EXPR. * gcc-interface/utils2.c (build_allocator): Deal with each branch of a COND_EXPR in the initializer, if present. From-SVN: r178766