Mercurial > hg > CbC > CbC_gcc
diff gcc/ada/ChangeLog-2016 @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/ada/ChangeLog-2016 Fri Oct 27 22:46:09 2017 +0900 @@ -0,0 +1,5918 @@ +2016-12-07 Pierre-Marie de Rodat <derodat@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): When they are global, + consider ___XR GNAT encodings variables for renamings as static so + they have a location in the debug info. + +2016-12-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Translate + System.Address into ptr_type_node for every foreign convention. + (gnat_to_gnu_subprog_type): Likewise for result and parameter types. + (gnat_to_gnu_param): Do not do it here for GCC builtins. + (intrin_return_compatible_p): Likewise. + +2016-12-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>: + Also call finish_character_type on Character subtypes. + * gcc-interface/utils.c (finish_character_type): Deal with subtypes. + +2016-12-05 Mikael Pettersson <mikpe@it.uu.se> + + PR ada/48835 + * gcc-interface/Makefile.in: Add support for m68k-linux. + * system-linux-m68k.ads: New file. + +2016-12-05 Eric Botcazou <ebotcazou@adacore.com> + + * system-darwin-ppc.ads (Support_Atomic_Primitives): Set to True only + if the word size is 64. + +2016-11-30 Gary Dismukes <dismukes@adacore.com> + + * sem_prag.adb, sem_ch6.adb: Minor reformatting and typo fixes. + * g-sechas.adb: Minor reformatting. + * lib-xref.ads: minor grammar fix in comment. + * lib-xref-spark_specific.adb + (Is_SPARK_Reference): do not ignore references to concurrent + objects. + * sinfo.ads: Fix of unbalanced parens in comment + +2016-11-30 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.adb (Get_Type_Reference): If the entity is a function + returning a classwide type, the type reference is obtained right + away and does not need further unwinding. + +2016-11-30 Javier Miranda <miranda@adacore.com> + + * sem_ch8.adb (Find_Renamed_Entity): For non-overloaded subprogram + actuals of generic units check that the spec of the renaming + and renamed entities match. + +2016-11-30 Tristan Gingold <gingold@adacore.com> + + * raise-gcc.c: For CERT runtimes: do not use gcc includes, simplify + the handling. + * sem_attr.adb (Analyze_Attribute): Check No_Dynamic_Priorities + restriction for Priority Attribute. + +2016-11-27 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/78524 + * gcc-interface/utils.c (max_size) <tcc_reference>: Add missing + conversion to original type in the PLACEHOLDER_EXPR case. + +2016-11-27 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/78531 + * namet.h (Max_Line_Length): Define. + (struct Bounded_String): Declare Chars with exact size. + (namet__get_decoded_name_string): Delete. + (Get_Decoded_Name_String): Likewise. + (casing__set_all_upper_case): Likewise. + +2016-11-22 Uros Bizjak <ubizjak@gmail.com> + + * gcc-interface/Make-lang.in (check-acats): Fix detection + of -j argument. + +2016-11-18 Richard Sandiford <richard.sandiford@arm.com> + Alan Hayward <alan.hayward@arm.com> + David Sherwood <david.sherwood@arm.com> + + * gcc-interface/utils.c (create_label_decl): Use SET_DECL_MODE. + +2016-11-14 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in: Replace s-interr-hwint.adb with + s-interr-vxworks.adb throughout. + +2016-11-13 Bob Duff <duff@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): In assertion about known + Esize, protect with !is_type and change !Unknown_Esize to Known_Esize. + +2016-11-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: + Look at the underlying type for the signedness of the type. + +2016-11-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Deal specially + with negative constants. + +2016-11-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (gnat_protect_expr): Also protect only the + address if the expression is the component of a dereference. + Do not use a reference type for the final temporary reference. + +2016-11-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in (NO_OMIT_ADAFLAGS): Define. + (a-except.o): Replace -fno-inline with NO_INLINE_ADAFLAGS. + (s-memory.o): New rule. + (tracebak.o): Replace -fno-omit-frame-pointer with NO_OMIT_ADAFLAGS. + +2016-11-07 Tamar Christina <tamar.christina@arm.com> + + * adaint.c: Added signal.h for Windows. + +2016-10-31 Jakub Jelinek <jakub@redhat.com> + + * gcc-interface/misc.c (gnat_get_array_descr_info): Clear rank field. + +2016-10-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * gcc-interface/Make-lang.in (lang_checks_parallelized): New target. + (check_gnat_parallelize): Likewise. + +2016-10-20 Nicolas Roche <roche@adacore.com> + + * gcc-interface/Makefile (x86-64/Darwin): Restore missing pairs. + (x86/Darwin): Likewise. + +2016-10-19 Eric Botcazou <ebotcazou@adacore.com> + + * system-linux-armel.ads: Rename into... + * system-linux-arm.ads: ...this + * gcc-interface/Makefile.in (ARM/Android): Adjust to above renaming. + (ARM/Linux): Likewise. + (Aarch64/Linux): Likewise. + +2016-10-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Define. + (EXTRA_GNATRTL_TASKING_OBJS): Likewise. + (ARM/Android): Add atomic support. + (SPARC/Solaris): Simplify. + (x86/Solaris): Likewise. + (x86/Linux): Likewise. + (x86-64/kFreeBDS): Adjust and use system-freebsd-x86.ads + (x86/FreeBSD): Add s-mudido-affinity.adb. + (x86-64/FreeBSD): Likewise and use system-freebsd-x86.ads. + (s390/Linux): Simplify. + (PowerPC/AIX): Likewise. + (Cygwin/Mingw): Likewise. + (MIPSel/Linux): Likewise. + (ARM/Linux): Add atomic support. + (Aarch64/Linux): Use system-linux-armel.ads. + (SPARC/Linux): Simplify. + (IA-64/Linux): Minor tweak. + (IA-64/HP-UX): Likewise. + (Alpha/Linux): Likewise. + (x86-64/Linux): Use system-linux-x86.ads. + (x86/Darwin): Simplify. + (PowerPC/Darwin): Likewise. + (ARM/Darwin): Use system-darwin-arm.ads. + (ADA_EXCLUDE_SRCS): Minor reformatting. + * system-aix.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + (Support_Atomic_Primitives): Set to True. + * system-aix64.ads: Delete. + * system-darwin-arm.ads: New. + * system-darwin-ppc.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + (Support_Atomic_Primitives): Set to True. + * system-darwin-ppc64.ads: New. + * system-darwin-x86.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + * system-darwin-x86_64.ads: Delete. + * system-freebsd-x86.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + * system-freebsd-x86_64.ads: Delete. + * system-linux-alpha.ads (Support_Atomic_Primitives): Set to True. + * system-linux-armeb.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + (Support_Atomic_Primitives): Set to True. + * system-linux-armel.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + (Support_Atomic_Primitives): Set to True. + * system-linux-mips.ads: (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + * system-linux-mipsel.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + * system-linux-s390.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + (Stack_Check_Probes): Set to True. + * system-linux-s390x.ads: Delete. + * system-linux-sparc.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + * system-linux-sparcv9.ads: Delete. + * system-linux-x86.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + * system-linux-x86_64.ads: Delete. + * system-mingw-x86_64.ads: Delete. + * system-mingw.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + * system-solaris-sparc.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + (Support_Atomic_Primitives): Set to True. + * system-solaris-sparcv9.ads: Delete. + * system-solaris-x86.ads (Word_Size): Change to Standard'Word_Size. + (Memory_Size): Change to 2 ** Word_Size. + * system-solaris-x86_64.ads: Delete. + +2016-10-17 Eric Botcazou <ebotcazou@adacore.com> + + * system-darwin-ppc64.ads (Support_64_Bit_Divides): Delete. + * system-linux-armeb.ads (Support_64_Bit_Divides): Likewise. + * system-linux-mips.ads (Support_64_Bit_Divides): Likewise. + * system-linux-mips64el.ads (Support_64_Bit_Divides): Likewise. + * system-linux-mipsel.ads (Support_64_Bit_Divides): Likewise. + * system-linux-sparcv9.ads (Support_64_Bit_Divides): Likewise. + * system-rtems.ads (Support_64_Bit_Divides): Likewise. + +2016-10-16 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/misc.c (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS):Define. + * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Deal with + a zero TARGET_CUSTOM_FUNCTION_DESCRIPTORS specially for Code_Address. + Otherwise, if TARGET_CUSTOM_FUNCTION_DESCRIPTORS is positive, set + FUNC_ADDR_BY_DESCRIPTOR for 'Access/'Unrestricted_Access of nested + subprograms if the type can use an internal representation. + (call_to_gnu): Likewise, but set CALL_EXPR_BY_DESCRIPTOR on indirect + calls if the type can use an internal representation. + +2016-10-16 Eric Botcazou <ebotcazou@adacore.com> + + * system-aix.ads (Always_Compatible_Rep): Change to False. + * system-aix64.ads (Always_Compatible_Rep): Likewise. + * system-hpux-ia64.ads (Always_Compatible_Rep): Likewise. + * system-hpux.ads (Always_Compatible_Rep): Likewise. + * system-linux-alpha.ads (Always_Compatible_Rep): Likewise. + * system-linux-hppa.ads (Always_Compatible_Rep): Likewise. + * system-linux-ia64.ads (Always_Compatible_Rep): Likewise. + * system-linux-mips.ads (Always_Compatible_Rep): Likewise. + * system-linux-mips64el.ads (Always_Compatible_Rep): Likewise. + * system-linux-mipsel.ads (Always_Compatible_Rep): Likewise. + * system-linux-s390.ads (Always_Compatible_Rep): Likewise. + * system-linux-s390x.ads (Always_Compatible_Rep): Likewise. + * system-linux-sh4.ads (Always_Compatible_Rep): Likewise. + * system-linux-sparc.ads (Always_Compatible_Rep): Likewise. + * system-linux-sparcv9.ads (Always_Compatible_Rep): Likewise. + * system-rtems.ads (Always_Compatible_Rep): Likewise. + +2016-10-14 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/77968 + * gcc-interface/utils.c (create_var_decl): Do not clear TREE_READONLY + in LTO mode for an external variable. + (can_materialize_object_renaming_p): Move up. + +2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com> + + * gcc-interface/utils2.c: Include memmodel.h. + +2016-10-13 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Analyze_Expression_Function): + Remove the aspects of the original expression function has been + rewritten into a subprogram declaration or a body. Reinsert the + aspects once they have been analyzed. + +2016-10-13 Tristan Gingold <gingold@adacore.com> + + * exp_ch9.adb (Expand_N_Asynchronous_Select): Return immediately + on restricted profile. + +2016-10-13 Javier Miranda <miranda@adacore.com> + + * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Register the + pragma for its validation after the backend has been called only if + its expression has some occurrence of attributes 'size or 'alignment + * table.ads (Release_Threshold): New formal. + (Release): Adding documentation of its new functionality. + * table.adb (Release): Extend its functionality with a + Release_Threshold. + * nlists.adb (Next_Node table): Set its Release_Threshold. + * atree.adb (Orig_Nodes table): Set its Release_Threshold. + * atree.ads (Nodes table): Set its Release_Threshold. + (Flags table): Set its Release_Threshold. + * alloc.ads (Nodes_Release_Threshold): New constant declaration. + (Orig_Nodes_Release_Threshold): New constant declaration. + * debug.adb (switch d.9): Left free. + * gnat1drv.adb (Post_Compilation_Validation_Checks): Enable + validation of pragmas Compile_Time_Error and Compile_Time_Warning. + +2016-10-13 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Create_Extra_Formals): Generate + an Itype reference for the object extra formal in case the + subprogram is called within the same or nested scope. + +2016-10-13 Claire Dross <dross@adacore.com> + + * sem_ch5.adb (Analyze_Iterator_Specification): + Also create a renaming in GNATprove mode. + +2016-10-13 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Fixed_Point_Type): in SPARK mode, the + given bounds of the type must be strictly representable, and the + range reduction by one delta ("shaving") allowed by the Ada RM, + is not applicable in SPARK. + +2016-10-13 Javier Miranda <miranda@adacore.com> + + * debug.adb (switch d.9): Used to temporarily disable the support + needed for this enhancement since it causes regressions with + large sources. + * gnat1drv.adb (Post_Compilation_Validation_Checks): Temporarily + leave the validation of pragmas Compile_Time_Warning and + Compile_Time_Error under control of -gnatd.9/ + +2016-10-13 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch10.adb (Entity_Needs_Body): A generic + subprogram renaming needs a body if the renamed unit is declared + outside the current compilation unit. + +2016-10-13 Hristian Kirtchev <kirtchev@adacore.com> + + * sinfo.ads, sem_ch12.adb, sem.adb, expander.adb, sem_res.ads, + sem_ch4.adb, sem_ch8.adb, s-memory.adb: Minor reformatting. + +2016-10-13 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: Delete all temporary files when invoked as gnat + list -V -P ... + +2016-10-13 Ed Falis <falis@adacore.com> + + * i-vxinco.adb, i-vxinco.ads: New files. + * impunit.adb: add i-vxinco.ads. + * s-interr-vxworks.adb: add hook for user interrupt connection routine. + +2016-10-13 Ed Falis <falis@adacore.com> + + * s-interr-hwint.adb, s-interr-vxworks.adb: Rename s-interr-hwint.adb + to s-interr-vxworks.adb. + +2016-10-13 Gary Dismukes <dismukes@adacore.com> + + * exp_ch7.adb, einfo.ads, sem_prag.adb, sem_prag.ads, sem.ads, + sem_attr.adb, sem_case.adb, sem_ch13.ads: Minor typo fixes and + reformatting. + +2016-10-13 Javier Miranda <miranda@adacore.com> + + * sem_prag.ads (Process_Compile_Time_Warning_Or_Error): New + overloaded subprogram that factorizes code executed as part + of the regular processing of these pragmas and as part of its + validation after invoking the backend. + * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): New + subprogram. + (Process_Compile_Time_Warning_Or_Error): If the + condition is known at compile time then invoke the new overloaded + subprogram; otherwise register the pragma in a table to validate + it after invoking the backend. + * sem.ads, sem.adb (Unlock): New subprogram. + * sem_attr.adb (Analyze_Attribute [Size]): If we are processing + pragmas Compile_Time_Warning and Compile_Time_Errors after the + backend has been called then evaluate this attribute if 'Size + is known at compile time. + * gnat1drv.adb (Post_Compilation_Validation_Checks): Validate + compile time warnings and errors. + * sem_ch13.ads, sem_ch13.adb (Validate_Compile_Time_Warning_Error): + New subprogram. + (Validate_Compile_Time_Warning_Errors): New subprogram. + +2016-10-13 Yannick Moy <moy@adacore.com> + + * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Adapt to + optional refinement for abstract states with only partial refinement + visible. + +2016-10-13 Justin Squirek <squirek@adacore.com> + + * sem_ch13.adb: Minor correction in comment in + Analyze_Aspect_Specifications + * sem_prag.adb: Minor reformatting. + +2016-10-13 Thomas Quinot <quinot@adacore.com> + + * s-stratt-xdr.adb: Disable compiler unit warnings. + +2016-10-13 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Visible_Component): In an instance body, check + whether the component may be hidden in a selected component by + a homonym that is a primitive operation of the type of the prefix. + +2016-10-13 Jakub Jelinek <jakub@redhat.com> + + PR target/77957 + * gcc-interface/misc.c (LANG_HOOKS_GETDECLS): Use hook_tree_void_null + instead of lhd_return_null_tree_v. + +2016-10-12 Yannick Moy <moy@adacore.com> + + * einfo.adb, einfo.ads (Partial_Refinement_Constituents): Take + into account constituents that are themselves abstract states + with full or partial refinement visible. + * sem_prag.adb (Find_Encapsulating_State): Move function + to library-level, to share between subprograms. + (Analyze_Refined_Global_In_Decl_Part): Use + Find_Encapsulating_State to get relevant encapsulating state. + +2016-10-12 Arnaud Charlet <charlet@adacore.com> + + * gnat1drv.adb: Fix minor typo. + +2016-10-12 Yannick Moy <moy@adacore.com> + + * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Adapt checking + for optional refinement of abstract state with partial + visible refinement. + (Analyze_Refined_Global_In_Decl_Part): Adapt checking for optional + refinement of abstract state with partial visible refinement. Implement + new rules in SPARK RM 7.2.4 related to optional refinement. + Also fix the missing detection of missing items. + +2016-10-12 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb Add new usage for Elist29 and Node35. + (Anonymous_Designated_Type): New routine. + (Anonymous_Master): Removed. + (Anonymous_Masters): New routine. + (Set_Anonymous_Designated_Type): New routine. + (Set_Anonymous_Master): Removed. + (Set_Anonymous_Masters): New routine. + (Write_Field29_Name): Add output for Anonymous_Masters. + (Write_Field35_Name): Remove the output for Anonymous_Master. Add + output for Anonymous_Designated_Type. + * einfo.ads Remove attribute Anonymous_Master along with + usage in entities. Add attributes Anonymous_Designated_Type + and Anonymous_Masters along with usage in entities. + (Anonymous_Designated_Type): New routine along with pragma Inline. + (Anonymous_Master): Removed along with pragma Inline. + (Anonymous_Masters): New routine along with pragma Inline. + (Set_Anonymous_Designated_Type): New routine along with pragma Inline. + (Set_Anonymous_Master): Removed along with pragma Inline. + (Set_Anonymous_Masters): New routine along with pragma Inline. + * exp_ch7.adb (Build_Anonymous_Master): Reuse an anonymous master + defined in the same unit if it services the same designated + type, otherwise create a new one. + (Create_Anonymous_Master): Reimplemented. + (Current_Anonymous_Master): New routine. + (In_Subtree): Removed. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Dynamic_Predicate): + Check properly whether there is an explicit assertion policy + for predicate checking, even in the presence of a general Ignore + assertion policy. + +2016-10-12 Steve Baird <baird@adacore.com> + + * sem.adb (Walk_Library_Items): Cope with ignored ghost units. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * lib-writ.adb (Write_ALI): Removal of unused file entries from + dependency list must be performed before the list is sorted, + so that the dependency number of other files is properly set-up + for use in tools that relate entity information to the unit in + which they are declared. + +2016-10-12 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_aggr.adb (Initialize_Ctrl_Array_Component): + Create a copy of the initialization expression to avoid sharing + it between multiple components. + +2016-10-12 Yannick Moy <moy@adacore.com> + + * einfo.adb, einfo.ads (Has_Partial_Visible_Refinement): New flag + in abtract states. + (Has_Non_Null_Visible_Refinement): Return true for patial refinement. + (Partial_Refinement_Constituents): New function returns the full or + partial refinement constituents depending on scope. + * sem_ch3.adb (Analyze_Declarations): Remove partial visible + refinements when exiting the scope of a package spec or body + and those partial refinements are not in scope afterwards. + * sem_ch7.adb, sem_ch7.ads (Install_Partial_Declarations): Mark + abstract states of parent units with partial refinement so that + it is visible. + * sem_prag.adb (Analyze_Part_Of_In_Decl_Part): Mark enclosing + abstract state if any as having partial refinement in that scope. + (Analyze_Refined_Global_In_Decl_Part): Check constituent usage + based on full or partial refinement depending on scope. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Expand_N_Type_Conversion): If the target type + has an invariant aspect, insert invariant call at the proper + place in the code rather than rewriting the expression as an + expression with actions, to prevent spurious semantic errors on + the rewritten conversion when it is the object in a renaming. + +2016-10-12 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch5.adb, sem_ch3.adb, exp_ch9.adb, a-tags.adb, sem_prag.adb, + sem_ch12.adb, xref_lib.adb, a-strunb-shared.adb, rtsfind.adb, + freeze.adb, sem_attr.adb, sem_case.adb, exp_ch4.adb, ghost.adb, + exp_ch6.adb, sem_ch4.adb, restrict.adb, s-os_lib.adb: Minor + reformatting. + +2016-10-12 Justin Squirek <squirek@adacore.com> + + * sem_ch10.adb (Remove_Limited_With_Clause): Add a check to + detect accidental visibility. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Expand_Allocator): If the expression is a qualified + expression, add a predicate check after the constraint check. + * sem_res.adb (Resolve_Qualified_Expression): If context is an + allocator, do not apply predicate check, as it will be done when + allocator is expanded. + +2016-10-12 Bob Duff <duff@adacore.com> + + * xref_lib.adb: Use renamings-of-slices to ensure + that all references to Tables are properly bounds checked (when + checks are turned on). + * g-dyntab.ads, g-dyntab.adb: Default-initialize the array + components, so we don't get uninitialized pointers in case + of Tables containing access types. Misc cleanup of the code + and comments. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Analyze_Attribute, case 'Type_Key): Implement + functionality of attribute, to provide a reasonably unique key + for a given type and detect any changes in the semantics of the + type or any of its subcomponents from version to version. + +2016-10-12 Bob Duff <duff@adacore.com> + + * sem_case.adb (Check_Choice_Set): Separate + checking for duplicates out into a separate pass from checking + full coverage, because the check for duplicates does not depend + on predicates. Therefore, we shouldn't do it separately for the + predicate vs. no-predicate case; we should share code. The code + for the predicate case was wrong. + +2016-10-12 Jerome Lambourg <lambourg@adacore.com> + + * init.c: Make sure to call finit on x86_64-vx7 to reinitialize + the FPU unit. + +2016-10-12 Arnaud Charlet <charlet@adacore.com> + + * lib-load.adb (Load_Unit): Generate an error message even when + Error_Node is null. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * lib-writ.adb (Write_ALI): Disable optimization related to transitive + limited_with clauses for now. + +2016-10-12 Javier Miranda <miranda@adacore.com> + + * sem_attr.adb (Analyze_Attribute_Old_Result): Generating C + code handle 'old located in inlined _postconditions procedures. + (Analyze_Attribute [Attribute_Result]): Handle 'result when + rewriting the attribute as a reference to the formal parameter + _Result of inlined _postconditions procedures. + +2016-10-12 Tristan Gingold <gingold@adacore.com> + + * s-rident.ads (Profile_Info): Remove + Max_Protected_Entries restriction from GNAT_Extended_Ravenscar + * sem_ch9.adb (Analyze_Protected_Type_Declaration): + Not a controlled type on restricted runtimes. + +2016-10-12 Gary Dismukes <dismukes@adacore.com> + + * sem_ch3.adb (Derive_Subprogram): Add test + for Is_Controlled of Parent_Type when determining whether an + inherited subprogram with one of the special names Initialize, + Adjust, or Finalize should be derived with its normal name even + when inherited as a private operation (which would normally + result in the inherited operation having a special "hidden" name). + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Call): If a function call returns a + limited view of a type replace it with the non-limited view, + which must be available when compiling call. This was already + done elsewhere for non-overloaded calls, but needs to be done + after resolution if function name is overloaded. + +2016-10-12 Javier Miranda <miranda@adacore.com> + + * a-tags.adb (IW_Membership [private]): new overloaded + subprogram that factorizes the code needed to check if a + given type implements an interface type. + (IW_Membership + [public]): invoke the new internal IW_Membership function. + (Is_Descendant_At_Same_Level): Fix this routine to implement RM + 3.9 (12.3/3) + +2016-10-12 Tristan Gingold <gingold@adacore.com> + + * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Add support + for a secondary procedure in case of missing Ada.Calendar.Delays + * rtsfind.ads (RTU_Id): Add System_Relative_Delays. + (RE_Id): Add RO_RD_Delay_For. + * rtsfind.adb (Output_Entity_Name): Handle correctly units RO_XX. + * s-rident.ads: Remove No_Relative_Delays + restriction for GNAT_Extended_Ravenscar. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * sem_elab.adb (Within_Initial_Condition): When deternining + the context of the expression, use the original node if it is + a pragma, because Check pragmas are rewritten as conditionals + when assertions are not enabled. + +2016-10-12 Bob Duff <duff@adacore.com> + + * spitbol_table.ads, spitbol_table.adb (Adjust, Finalize): Add + "overriding". + +2016-10-12 Bob Duff <duff@adacore.com> + + * a-strunb-shared.ads, a-strunb-shared.adb (Finalize): + Make sure Finalize is idempotent. + (Unreference): Check for + Empty_Shared_String, in case the reference count of the empty + string wraps around. + Also add "not null" in various places that can't be null. + +2016-10-12 Jerome Lambourg <lambourg@adacore.com> + + * init.c: Fix sigtramp with the x86_64-vx7-vxsim target on + Windows host. + +2016-10-12 Vadim Godunko <godunko@adacore.com> + + * s-os_lib.ads (Is_Owner_Readable_File): Renamed from + Is_Readable_File. + (Is_Owner_Writable_File): Renamed from Is_Writable_File. + (Is_Readable_File): Renames Is_Read_Accessible_File. + (Is_Writable_File): Renames Is_Write_Accessible_File. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Check_Formal_Package_Instance): Skip an internal + formal entity without a parent only if the corresponding actual + entity has a different kind. + * exp_ch9.adb (Build_Class_Wide_Master): If the master is + declared locally, insert the renaming declaration after the + master declaration, to prevent access before elaboration in gigi. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * contracts.adb (Analyze_Contracts): For a type declaration, analyze + an iterable aspect when present. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Check_Formal_Package_Instance): Handle properly + an instance of a formal package with defaults, when defaulted + parameters include tagged private types and array types. + +2016-10-12 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/64057. + * exp_ch5.adb (Is_Non_Local_Array): Return true for every array + that is not a component or slice of an entity in the current + scope. + +2016-10-12 Tristan Gingold <gingold@adacore.com> + + * restrict.ads, restrict.adb (Restricted_Profile): Adjust + comment, use Restricted_Tasking to compare restrictions. + * s-rident.ads (Profile_Name): Add Restricted_Tasking and + reorder literals. + (Profile_Info): Set restrictions for Restricted_Tasking. + +2016-10-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Full_Type_Declaration): Set Ghost status + of type before elaborating inherited operations, so that the + Ghost status is set properly for them. + * ghost.adb (Check_Ghost_Overriding): A ghost subprogram can + override an abstract subprogram coming from an interface + operation. + +2016-10-11 Eric Botcazou <ebotcazou@adacore.com> + + * system-linux-armeb.ads (Backend_Overflow_Checks): Change to True. + * system-linux-mips.ads (Backend_Overflow_Checks): Likewise. + * system-linux-mips64el.ads (Backend_Overflow_Checks): Likewise. + * system-linux-mipsel.ads (Backend_Overflow_Checks): Likewise. + * system-linux-sparcv9.ads (Backend_Overflow_Checks): Likewise. + * system-rtems.ads (Backend_Overflow_Checks): Likewise. + +2016-10-11 Andris Pavenis <andris.pavenis@iki.fi> + + * adaint.c: Include process.h, signal.h, dir.h and utime.h for DJGPP. + ISALPHA: include <ctype.h> and define to isalpha for DJGPP when IN_RTS + is defined. + (DIR_SEPARATOR) define to '\\' for DJGPP. + (__gnat_get_file_names_case_sensitive): Return 0 for DJGPP unless + overriden in environment. + (__gnat_is_absolute_path): Support MS-DOS absolute paths for DJGPP. + (__gnat_portable_spawn): Use spewnvp for DJGPP. + (__gnat_portable_no_block_spawn): Use spawnvp for DJGPP. + (__gnat_portable_wait): Return 0 for DJGPP. + +2016-10-11 Andris Pavenis <andris.pavenis@iki.fi> + + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS): Define for DJGPP. + (EH_MECHANISM): Define to -gcc for DJGPP. + * system-djgpp.ads: New file. + +2016-10-11 Andris Pavenis <andris.pavenis@iki.fi> + + * ctrl_c.c: Do not use macro SA_RESTART for DJGPP. + * gsocket.h: Do not support sockets for DJGPP. + * init.c (__gnat_install_handler): Implememt for DJGPP. + * sysdep.c: Include <io.h> for DJGPP. + (_setmode): Define to setmode for DJGPP. + (__gnat_set_mode): Add implementation for DJGPP. + (__gnat_localtime_tzoff): Use localtime_r for DJGPP. + * terminals.c: Add DJGPP to list of unsupported platforms. + * env.c (__gnat_clearenv): Use _gnat_unsetenv on all entries for DJGPP. + +2016-10-11 Pierre-Marie de Rodat <derodat@adacore.com> + + * exp_dbug.adb (Debug_Renaming_Declaration): Process underlying types. + Emit GNAT encodings for object renamings involving record components + whose normalized bit offset is not null. + * uintp.h (UI_No_Uint): Declare. + * gcc-interface/gigi.h (can_materialize_object_renaming_p): Likewise. + * gcc-interface/utils.c (can_materialize_object_renaming_p): New + function. + * gcc-interface/trans.c (gnat_to_gnu) <N_Object_Renaming_Declaration>: + In code generation mode, materialize all renamings as long as they need + debug info and we are not optimizing. + +2016-10-11 Pierre-Marie de Rodat <derodat@adacore.com> + + * gcc-interface/utils2.c (build_binary_op): Add a NO_FOLD argument. + Disable folding when it is true. + * gcc-interface/gigi.h (choices_to_gnu): Remove declaration. + (build_binary_op): Update signature and comment. + * gcc-interface/decl.c (choices_to_gnu): Make static. Disable + folding in calls to build_binary_op. + +2016-10-11 Tristan Gingold <gingold@adacore.com> + + * fe.h (Constant_Value): Declare. + * gcc-interface/decl.c (compile_time_known_address_p): Also consider + references to constants. + +2016-10-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu) <N_Op_Add>: Adjust comment. + <N_Op_Minus>: Add comment and missing guard. + * gcc-interface/trans.c (build_binary_op_trapv): Use an explicit test. + +2016-10-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (type_unsigned_for_rm): New predicate. + (make_type_from_size): Use it. + (unchecked_convert): Likewise. Do not skip the extension step if the + source type is not integral. + +2016-10-11 Eric Botcazou <ebotcazou@adacore.com> + Tristan Gingold <gingold@adacore.com> + + * system-linux-ppc64.ads: Delete. + * system-linux-ppc.ads: Make 32-bit/64-bit neutral. + * gcc-interface/Makefile.in (PowerPC/Linux): Simplify. + +2016-10-10 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Put volatile qualifier + on types at the very end of the processing. + (gnat_to_gnu_param): Remove redundant test. + (change_qualified_type): Do nothing for unconstrained array types. + +2016-10-10 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (find_common_type): Do not return the LHS type + if it's an array with non-constant lower bound and the RHS type is an + array with a constant one. + +2016-10-10 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (convert): For a biased input type, convert the + bias itself to the base type before adding it. + +2016-10-08 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (convert) <VECTOR_CST>: Add missing break. + + Revert + 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * gcc-interface/decl.c: Fix fall through comment formatting. + * gcc-interface/misc.c: Likewise. + * gcc-interface/trans.c: Likewise. + * gcc-interface/utils.c: Likewise. + * gcc-interface/utils2.c: Likewise. + +2016-09-29 James Greenhalgh <james.greenhalgh@arm.com> + + * gcc-interface/misc.c (gnat_post_options): Remove special case for + TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard. + +2016-09-27 Jakub Jelinek <jakub@redhat.com> + + * terminals.c (is_gui_app): Remove break after return. + +2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * gcc-interface/decl.c: Fix fall through comment formatting. + * gcc-interface/misc.c: Likewise. + * gcc-interface/trans.c: Likewise. + * gcc-interface/utils.c: Likewise. + * gcc-interface/utils2.c: Likewise. + +2016-09-23 Jakub Jelinek <jakub@redhat.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Use + CONSTRUCTOR_NELTS (...) instead of + vec_safe_length (CONSTRUCTOR_ELTS (...)). + +2016-07-14 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Also use + the void pointer type if the designated type is incomplete and has no + full view in LTO mode. + <E_Access_Protected_Subprogram_Type>: Adjust comment. + <E_Incomplete_Type>: Likewise. + * gcc-interface/trans.c (Call_to_gnu): Do not convert to the type of + the actual if it is a dummy type. + +2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de> + + * gcc-interface/ada-tree.h (TYPE_ALIGN_OK): Define. + * gcc-interface/trans.c (Attribute_to_gnu): Adjust call to + get_inner_reference. + * gcc-interface/utils2.c (build_unary_op): Likewise. + +2016-07-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (add_decl_expr): Minor tweak. + * gcc-interface/utils.c (create_var_decl): For an external variable, + also clear TREE_READONLY in LTO mode if the initializer is not a valid + constant and set DECL_READONLY_ONCE_ELAB instead. + +2016-07-11 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/71817 + * adaint.c (__gnat_is_read_accessible_file): Add parentheses. + (__gnat_is_write_accessible_file): Likewise. + +2016-07-07 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Expand_Internal_Init_Call): Subsidiary procedure + to Expand_Protected_ Subprogram_Call, to handle properly a + call to a protected function that provides the initialization + expression for a private component of the same protected type. + * sem_ch9.adb (Analyze_Protected_Definition): Layout must be + applied to itypes generated for a private operation of a protected + type that has a formal of an anonymous access to subprogram, + because these itypes have no freeze nodes and are frozen in place. + * sem_ch4.adb (Analyze_Selected_Component): If prefix is a + protected type and it is not a current instance, do not examine + the first private component of the type. + +2016-07-07 Arnaud Charlet <charlet@adacore.com> + + * exp_imgv.adb, g-dynhta.adb, s-regexp.adb, s-fatgen.adb, s-poosiz.adb: + Minor removal of extra whitespace. + * einfo.ads: minor removal of repeated "as" in comment + +2016-07-07 Vadim Godunko <godunko@adacore.com> + + * adaint.c: Complete previous change. + +2016-07-07 Vadim Godunko <godunko@adacore.com> + + * adainit.h, adainit.c (__gnat_is_read_accessible_file): New + subprogram. + (__gnat_is_write_accessible_file): New subprogram. + * s-os_lib.ads, s-os_lib.adb (Is_Read_Accessible_File): New subprogram. + (Is_Write_Accessible_File): New subprogram. + +2016-07-07 Justin Squirek <squirek@adacore.com> + + * sem_ch12.adb (Install_Body): Minor refactoring in the order + of local functions. + (In_Same_Scope): Change loop condition to be more expressive. + +2016-07-07 Gary Dismukes <dismukes@adacore.com> + + * sem_ch3.adb, sem_prag.adb, sem_prag.ads, prj-ext.adb, freeze.adb, + sem_attr.adb: Minor reformatting, fix typos. + +2016-07-07 Justin Squirek <squirek@adacore.com> + + * sem_ch12.adb (In_Same_Scope): Created this function to check + a generic package definition against an instantiation for scope + dependancies. + (Install_Body): Add function In_Same_Scope and + amend conditional in charge of delaying the package instance. + (Is_In_Main_Unit): Add guard to check if parent is present in + assignment of Current_Unit. + +2016-07-07 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove redundant test, + adjust comments and formatting. + * sem_prag.adb (Inlining_Not_Possible): Do not test Front_End_Inlining + here but... + (Make_Inline): ...here before calling Inlining_Not_Possible instead. + (Set_Inline_Flags): Remove useless test. + (Analyze_Pragma) <Pragma_Inline>: Add comment about -gnatn switch. + +2016-07-07 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.ads, sem_prag.adb (Build_Classwide_Expression): Include + overridden operation as parameter, in order to map formals of + the overridden and overring operation properly prior to rewriting + the inherited condition. + * freeze.adb (Check_Inherited_Cnonditions): Change call to + Build_Class_Wide_Expression accordingly. In Spark_Mode, add + call to analyze the contract of the parent operation, prior to + mapping formals between operations. + +2016-07-07 Arnaud Charlet <charlet@adacore.com> + + * adabkend.adb (Scan_Back_End_Switches): Ignore -o/-G switches + as done in back_end.adb. + (Scan_Compiler_Args): Remove special case for CodePeer/SPARK, no longer + needed, and prevents proper handling of multi-unit sources. + +2016-07-07 Thomas Quinot <quinot@adacore.com> + + * g-sechas.adb, g-sechas.ads (GNAT.Secure_Hashes.H): Add Hash_Stream + type with Write primitive calling Update on the underlying context + (and dummy Read primitive raising P_E). + +2016-07-07 Thomas Quinot <quinot@adacore.com> + + * sem_ch13.adb: Minor reformatting. + +2016-07-07 Thomas Quinot <quinot@adacore.com> + + * g-socket.ads: Document performance consideration for stream + wrapper. + +2016-07-07 Arnaud Charlet <charlet@adacore.com> + + * osint-c.ads (Set_File_Name): Clarify spec. + +2016-07-07 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb: Reenable code. + +2016-07-07 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Process_Formals): Set ghost flag + on formal entities of ghost subprograms. + * ghost.adb (Check_Ghost_Context.Is_OK_Ghost_Context): Accept ghost + entities in use type clauses. + +2016-07-06 Javier Miranda <miranda@adacore.com> + + * sem_ch6.adb (Check_Inline_Pragma): if the subprogram has no spec + then move its aspects to the internally built subprogram spec. + +2016-07-06 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Analyze_Expression_Function): Mark body of + expression function as ghost if needed when created. + * sem_prag.adb (Analyze_Pragma.Process_Inline.Set_Inline_Flags): + Remove special case. + +2016-07-06 Arnaud Charlet <charlet@adacore.com> + + * lib.adb (Check_Same_Extended_Unit): Complete previous change. + * sem_intr.adb (Errint): New parameter Relaxed. Refine previous + change to only disable errors selectively. + * sem_util.adb: minor style fix in object declaration + +2016-07-06 Yannick Moy <moy@adacore.com> + + * sem_warn.adb (Check_Infinite_Loop_Warning.Find_Var): Special case a + call to a volatile function, so that it does not lead to a warning in + that case. + +2016-07-06 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb, sem_ch4.adb, sem_ch6.adb: Minor reformatting. + +2016-07-06 Hristian Kirtchev <kirtchev@adacore.com> + + * gnat1drv.adb: Code clean up. Do not emit any + code generation errors when the unit is ignored Ghost. + +2016-07-06 Ed Schonberg <schonberg@adacore.com> + + * sem_eval.adb (Check_Non_Static_Context): If the expression + is a real literal of a floating point type that is part of a + larger expression and is not a static expression, transform it + into a machine number now so that the rest of the computation, + even if other components are static, is not evaluated with + extra precision. + +2016-07-06 Javier Miranda <miranda@adacore.com> + + * sem_ch13.adb (Freeze_Entity_Checks): Undo previous patch and move the + needed functionality to Analyze_Freeze_Generic_Entity. + (Analyze_Freeze_Generic_Entity): If the entity is not already frozen + and has delayed aspects then analyze them. + +2016-07-06 Yannick Moy <moy@adacore.com> + + * sem_prag.adb (Analyze_Pragma.Process_Inline.Set_Inline_Flags): + Special case for unanalyzed body entity of ghost expression function. + +2016-07-06 Javier Miranda <miranda@adacore.com> + + * sem_ch7.adb (Analyze_Package_Specification): Insert its + freezing nodes after the last declaration. Needed to ensure + that global entities referenced in aspects of frozen types are + properly handled. + * freeze.adb (Freeze_Entity): Minor code reorganization to ensure + that freezing nodes of generic packages are handled. + * sem_ch13.adb (Freeze_Entity_Checks): Handle N_Freeze_Generic nodes. + * sem_ch12.adb (Save_References_In_Identifier): Handle selected + components which denote a named number that is constant folded + in the analyzed copy of the tree. + +2016-07-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_aggr.adb Remove with and use clauses for Exp_Ch11 and Inline. + (Initialize_Array_Component): Protect the initialization + statements in an abort defer / undefer block when the associated + component is controlled. + (Initialize_Record_Component): Protect the initialization statements + in an abort defer / undefer block when the associated component is + controlled. + (Process_Transient_Component_Completion): Use Build_Abort_Undefer_Block + to create an abort defer / undefer block. + * exp_ch3.adb Remove with and use clauses for Exp_ch11 and Inline. + (Default_Initialize_Object): Use Build_Abort_Undefer_Block to + create an abort defer / undefer block. + * exp_ch5.adb (Expand_N_Assignment_Statement): Mark an abort + defer / undefer block as such. + * exp_ch9.adb (Find_Enclosing_Context): Do not consider an abort + defer / undefer block as a suitable context for an activation + chain or a master. + * exp_util.adb Add with and use clauses for Exp_Ch11. + (Build_Abort_Undefer_Block): New routine. + * exp_util.ads (Build_Abort_Undefer_Block): New routine. + * sinfo.adb (Is_Abort_Block): New routine. + (Set_Is_Abort_Block): New routine. + * sinfo.ads New attribute Is_Abort_Block along with occurrences + in nodes. + (Is_Abort_Block): New routine along with pragma Inline. + (Set_Is_Abort_Block): New routine along with pragma Inline. + +2016-07-06 Justin Squirek <squirek@adacore.com> + + * sem_ch4.adb (Analyze_One_Call): Add a conditional to handle + disambiguation. + +2016-07-06 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb Flag252 is now used as Is_Finalized_Transient. Flag295 + is now used as Is_Ignored_Transient. + (Is_Finalized_Transient): New routine. + (Is_Ignored_Transient): New routine. + (Is_Processed_Transient): Removed. + (Set_Is_Finalized_Transient): New routine. + (Set_Is_Ignored_Transient): New routine. + (Set_Is_Processed_Transient): Removed. + (Write_Entity_Flags): Output Flag252 and Flag295. + * einfo.ads: New attributes Is_Finalized_Transient + and Is_Ignored_Transient along with occurrences in + entities. Remove attribute Is_Processed_Transient. + (Is_Finalized_Transient): New routine along with pragma Inline. + (Is_Ignored_Transient): New routine along with pragma Inline. + (Is_Processed_Transient): Removed along with pragma Inline. + (Set_Is_Finalized_Transient): New routine along with pragma Inline. + (Set_Is_Ignored_Transient): New routine along with pragma Inline. + (Set_Is_Processed_Transient): Removed along with pragma Inline. + * exp_aggr.adb Add with and use clauses for Exp_Ch11 and Inline. + (Build_Record_Aggr_Code): Change the handling + of controlled record components. + (Ctrl_Init_Expression): Removed. + (Gen_Assign): Add new formal parameter In_Loop + along with comment on usage. Remove local variables Stmt and + Stmt_Expr. Change the handling of controlled array components. + (Gen_Loop): Update the call to Gen_Assign. + (Gen_While): Update the call to Gen_Assign. + (Initialize_Array_Component): New routine. + (Initialize_Ctrl_Array_Component): New routine. + (Initialize_Ctrl_Record_Component): New routine. + (Initialize_Record_Component): New routine. + (Process_Transient_Component): New routine. + (Process_Transient_Component_Completion): New routine. + * exp_ch4.adb (Process_Transient_In_Expression): New routine. + (Process_Transient_Object): Removed. Replace all existing calls + to this routine with calls to Process_Transient_In_Expression. + * exp_ch6.adb (Expand_Ctrl_Function_Call): Remove local constant + Is_Elem_Ref. Update the comment on ignoring transients. + * exp_ch7.adb (Process_Declarations): Do not process ignored + or finalized transient objects. + (Process_Transient_In_Scope): New routine. + (Process_Transients_In_Scope): New routine. + (Process_Transient_Objects): Removed. Replace all existing calls + to this routine with calls to Process_Transients_In_Scope. + * exp_util.adb (Build_Transient_Object_Statements): New routine. + (Is_Finalizable_Transient): Do not consider a transient object + which has been finalized. + (Requires_Cleanup_Actions): Do not consider ignored or finalized + transient objects. + * exp_util.ads (Build_Transient_Object_Statements): New routine. + * sem_aggr.adb: Major code clean up. + * sem_res.adb: Update documentation. + +2016-07-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Subtype_Declaration): For generated + subtypes, such as actual subtypes of unconstrained formals, + inherit predicate functions, if any, from the parent type rather + than creating redundant new ones. + +2016-07-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb, sem_attr.adb, sem_ch13.adb: Minor reformatting. + +2016-07-06 Arnaud Charlet <charlet@adacore.com> + + * lib.adb (Check_Same_Extended_Unit): Prevent looping forever. + * gnatbind.adb: Disable some consistency checks in codepeer mode, + which are not needed. + +2016-07-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Check_Fixed_Point_Actual): Add a warning when + a formal fixed point type is instantiated with a type that has + a user-defined arithmetic operations, but the generic has no + corresponding formal functions. This is worth a warning because + of the special semantics of fixed-point operators. + +2016-07-06 Bob Duff <duff@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Allow any expression of + discrete type. + * exp_attr.adb (Expand_N_Attribute_Reference): Change the + constant-folding code to correctly handle cases newly allowed + by Analyze_Attribute. + +2016-07-05 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Invoke global_bindings_p + last when possible. Do not call elaborate_expression_2 on offsets in + local record types and avoid useless processing for constant offsets. + +2016-07-04 Arnaud Charlet <charlet@adacore.com> + + * gnat_rm.texi, gnat_ugn.texi, + doc/gnat_ugn/gnat_project_manager.rst, + doc/gnat_ugn/building_executable_programs_with_gnat.rst, + doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, + doc/gnat_ugn/about_this_guide.rst, + doc/gnat_ugn/platform_specific_information.rst, + doc/gnat_ugn/tools_supporting_project_files.rst, + doc/gnat_ugn/gnat_and_program_execution.rst, + doc/gnat_ugn/gnat_utility_programs.rst, + doc/gnat_ugn/the_gnat_compilation_model.rst, + doc/gnat_rm/implementation_defined_attributes.rst, + doc/gnat_rm/implementation_defined_pragmas.rst, + doc/gnat_rm/representation_clauses_and_pragmas.rst, + doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, + doc/gnat_ugn.rst: Update documentation. + +2016-07-04 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Makefile.in: Cleanups. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Analyze_Attribute_Old_Result): The attributes can + appear in the postcondition of a subprogram renaming declaration, + when the renamed entity is an attribute reference that is a + function (such as 'Value). + * sem_attr.adb (Eval_Attribute): It doesn't + need to be static, just known at compile time, so use + Compile_Time_Known_Value instead of Is_Static_Expression. + This is an efficiency improvement over the previous bug fix. + * sem_ch13.adb (Analyze_One_Aspect): Use Original_Node to detect + illegal aspects on subprogram renaming declarations that may + have been rewritten as bodies. + +2016-07-04 Arnaud Charlet <charlet@adacore.com> + + * sem_intr.adb (Errint): Do not emit error message in + Relaxed_RM_Semantics mode. + +2016-07-04 Bob Duff <duff@adacore.com> + + * sem_attr.adb (Eval_Attribute): The code was assuming + that X'Enum_Rep, where X denotes a constant, can be constant + folded. Fix it so it makes that assumption only when X denotes + a STATIC constant. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Compatible_Types_In_Predicate): New function + to handle cases where a formal of a predicate function and the + corresponding actual have different views of the same type. + +2016-07-04 Philippe Gil <gil@adacore.com> + + * g-debpoo.adb (Free_Blocks) free blocks also until + Logically_Deallocated less than Maximum_Logically_Freed_Memory + (Dump) add dump of number of traceback & validity elements + already allocated. + +2016-07-04 Justin Squirek <squirek@adacore.com> + + * sem_ch12.adb (Instantiate_Package_Body): Add + a guard to ignore Itypes which fail when installing primitives. + +2016-07-04 Bob Duff <duff@adacore.com> + + * sem_eval.adb (Decompose_Expr): Set 'out' parameters + Kind and Cons to valid values, to avoid use of uninit vars. + (Extract_Length): Reorder the check to make it clearer that + we're depending on BOTH Ent1 and Ent2 to be Present. + * sem_aggr.adb (Resolve_Aggregate): Remove dead code. + (Check_Misspelled_Component): Remove exit statement, because + it's covered by the 'while' condition. + * checks.adb (Apply_Selected_Range_Checks): Remove useless + condition "or else not Checks_On". + (Selected_Range_Checks): + Initialize Known_LB and Known_HB to False, because they are + tested unconditionally; avoid use of uninit vars. + * frontend.adb (Frontend): Removed useless condition + "Operating_Mode = Check_Semantics and then", and added an Assert + to clarify why it was useless. + * prep.adb (Preprocess): Remove redundant condition. Add an + assertion. + * sem_ch10.adb (Analyze_Proper_Body): Moved redundant condition + "Original_Operating_Mode = Generate_Code" to an Assert. + (Process_Spec_Clauses, Process_Body_Clauses): Change parameters + from 'in out' to 'out', and don't initialize actuals. + * sem_ch12.adb (Is_In_Main_Unit): Removed useless condition + "Unum = Main_Unit or else". + (Save_Global_Descendant): Moved + redundant condition "D = Union_Id (No_List)" to an Assert. + * sem_ch4.adb (Check_Misspelled_Selector): Remove exit + statement, because it's covered by the 'while' condition. + (Analyze_Case_Expression): Initialize Wrong_Alt to Empty, + because it looks like it is used uninitialized otherwise. + * sem_ch6.adb (Check_Return_Subtype_Indication): Moved redundant + condition "not R_Type_Is_Anon_Access" to an Assert. + * sem_elim.adb (Line_Num_Match): Moved redundant condition + "Sloc_Trace (Idx) = '['" to an Assert. + * sem_util.adb (Compile_Time_Constraint_Error): Change "J" to + "J - 1". This code is trying to replace "?" with "<", but not if + the "?" is quoted, as in "'?", so we want to check the PREVIOUS + character for '''. + * snames.adb-tmpl (Is_Pragma_Name): Remove useless condition + "or else N = Name_Relative_Deadline". It's useless because + Name_Relative_Deadline is in the range First_Pragma_Name + .. Last_Pragma_Name. + * treepr.adb (Visit_Node): Moved redundant condition "D = + Union_Id (No_List)" to an Assert. + * sem_ch3.adb (Derive_Subprogram, Derive_Subprograms): Change + parameters from 'in out' to 'out'. + * errout.adb (Error_Msg_Internal): Replace redundant test with Assert. + * inline.adb (Add_Inlined_Body): Code cleanup. + +2016-07-04 Hristian Kirtchev <kirtchev@adacore.com> + + * g-sercom-mingw.adb, sem_ch6.adb: Minor reformatting. + +2016-07-04 Olivier Hainque <hainque@adacore.com> + + * g-sercom-mingw.adb (Set): Fix port configuration for the + non-blocking + null-timeout case, request of immediate return. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Is_Non_Overriding_Operation): Add guard to test + of generic parent type when operation is a parameterless function + that may dispatch on result. + +2016-07-04 Hristian Kirtchev <kirtchev@adacore.com> + + * freeze.adb, ghost.adb, sem_ch13.adb: Minor reformatting. + +2016-07-04 Pascal Obry <obry@adacore.com> + + * g-forstr.ads: More documentation for the Formatted_String + support. + +2016-07-04 Justin Squirek <squirek@adacore.com> + + * sem_ch7.adb (Install_Parent_Private_Declarations): When + instantiating a child unit, do not install private declaration of + a non-generic ancestor of the generic that is also an ancestor + of the current unit: its private part will be installed when + private part of ancestor itself is analyzed. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Instantiate_Object): In SPARK mode add a guard + to verify that the actual is an object reference before checking + for volatility. + (Check_Generic_Child_Unit): Prevent cascaded errors when prefix + is illegal. + +2016-07-04 Gary Dismukes <dismukes@adacore.com> + + * sem_ch12.ads, freeze.adb: Minor reformatting and typo fixes. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (New_Stream_Subprogram): If the attribute + definition clause comes from an aspect specification, place the + generated subprogram renaming in the freeze actions of the type. + +2016-07-04 Philippe Gil <gil@adacore.com> + + * g-debpoo.adb (Dump.Do_Report) - add space prefix to backtrace + address dump - avoid new line sent directly to stdout. + +2016-07-04 Arnaud Charlet <charlet@adacore.com> + + * gnat1drv.adb, sem_ch12.adb, sem_elab.adb, sem_prag.adb, sem_res.adb: + Relax elaboration checks in SPARK_Mode so that we rely on the + static elaboration model (if used). We'll have a more precise + check performed in flow analysis of gnat2why. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * ghost.adb (Prune_Node): A freeze node for an ignored ghost + entity must be pruned as well. + +2016-07-04 Gary Dismukes <dismukes@adacore.com> + + * sem_type.adb, einfo.ads, freeze.adb, exp_ch6.adb: Minor reformatting + and typo fix. + +2016-07-04 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb, sem_type.adb, sem_ch12.adb, xref_lib.adb, + freeze.adb, sinput-l.adb, sinput-l.ads, sem_ch4.adb, sem_ch8.adb: + Minor reformatting. + +2016-07-04 Justin Squirek <squirek@adacore.com> + + * sem_prag.adb (Analyze_Unmodified_Or_Unused and + Analyze_Unreferenced_Or_Unused): Change warning message to be + more clear about pragma duplicates. + +2016-07-04 Yannick Moy <moy@adacore.com> + + * sinput-l.adb (Create_Instantiation_Source): Set component + Inlined_Call for inherited pragma case. + * sinput.adb, sinput.ads (Instantiation): Return component + Inlined_Call for inherited pragma case. + +2016-07-04 Bob Duff <duff@adacore.com> + + * sem_type.adb (Remove_Conversions): Protect + the call to Left_Opnd by checking for Nkind in N_Unary_Op -- + unary operators do not have a left operand. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): A declaration of a + constant in a protected operation may be a homonym of a private + component of the enclosing protected type. This declaration hides + the component renaming constructed within the protected operation. + +2016-07-04 Bob Duff <duff@adacore.com> + + * xref_lib.adb (Parse_X_Filename, Parse_Identifier_Info): Ignore + unknown files. Check that File_Nr is in the range of files we + know about. The previous code was checking the lower bound, + but not the upper bound. + +2016-07-04 Arnaud Charlet <charlet@adacore.com> + + * tracebak.c: Minor reformatting. + +2016-07-04 Yannick Moy <moy@adacore.com> + + * sem_ch12.adb, sem_ch12.ads Update calls to + Create_Instantiation_Source to use default argument. + (Adjust_Inherited_Pragma_Sloc): New function to adjust sloc + of inherited pragma. + (Set_Copied_Sloc_For_Inherited_Pragma): + New function that wraps call to Create_Instantiation_Source for + copying an inherited pragma. + (Set_Copied_Sloc_For_Inlined_Body): Update call to + Create_Instantiation_Source with new arguments. + * sem_prag.adb (Build_Pragma_Check_Equivalent): In the case + of inherited pragmas, use the generic machinery to get chained + locations for the pragma and its sub-expressions. + * sinput-c.adb: Adapt to new type Source_File_Record. + * sinput-l.adb, sinput-l.ads (Create_Instantiation_Source): + Add parameter Inherited_Pragma and make parameter Inlined_Body + optional. + * sinput.adb, sinput.ads (Comes_From_Inherited_Pragma): New + function to return when a location comes from an inherited pragma. + (Inherited_Pragma): New function to detect when a location comes + from an inherited pragma. + (Source_File_Record): New component Inherited_Pragma. + +2016-07-04 Yannick Moy <moy@adacore.com> + + * sem_elab.adb: Register existence of quickfix for error message. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Resolve_One_Call): In the context of a predicate + function the formal and the actual in a call may have different + views of the same type, because of the delayed analysis of + predicates aspects. Extend the patch that handles this potential + discrepancy to handle private and full views as well. + * sem_ch8.adb (Find_Selected_Component): Refine predicate that + produces additional error when an illegal selected component + looks like a prefixed call whose first formal is untagged. + +2016-07-04 Justin Squirek <squirek@adacore.com> + + * einfo.adb (Has_Pragma_Unused): Create this function as a setter + for a new flag294 (Set_Has_Pragma_Unused): Create this procedure + as a getter for flag294 (Write_Entity_Flags): Register the new + flag with an alias + * einfo.ads Add comment documenting Has_Pragma_Unused (flag294) + and subsequent getter and setter declarations. + * lib-xref.adb (Generate_Reference): Recognize Has_Pragma_Unused + flag to print appropriate warning messages. + * par-prag.adb (Prag): Classify Pragma_Unused into "All Other + Pragmas." + * snames.ads-tmpl Add a new name to the name constants and a + new pramga to Pragma_Id for pramga Unused. + * sem_prag.adb (Analyze_Pragma): Create case for Pragma_Unused + and move the block for Pragma_Unmodified and Pragma_Unreferenced + out and into local subprograms. + (Analyze_Unmodified, Analyze_Unreferenced): From the old pragma blocks + that have been separated in to local subprograms add a parameter to + indicate the if they are being called in the context of Pragma_Unused + and handle it accordingly. + (Is_Non_Significant_Pragma_Reference): Add an entry for Pragma_Unused + and correct the position of Pragma_Unevaluated_Use_Of_Old. + * sem_util.adb (Note_Possible_Modification): Recognize + Has_Pragma_Unused flag to print appropriate warning messages. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Check_Inherited_Conditions): Perform two passes over + the primitive operations of the type: one over source overridings + to build the primitives mapping, and one over inherited operations + to check for the need to create wrappers, and to check legality + of inherited condition in SPARK. + * sem_prag.ads (Update_Primitive_Mapping): Make public, for use + in freeze actions. + * sem_prag.adb (Build_Pragma_Check_Equivalent): Refine error + message in the case of an inherited condition in SPARK that + includes a call to some other overriding primitive. + +2016-07-04 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_aggr.adb (Ctrl_Init_Expression): New routine. + (Gen_Assign): Code cleanup. Perform in-place side effect removal when + the expression denotes a controlled function call. + * exp_util.adb (Remove_Side_Effects): Do not remove side effects + on a function call which has this behavior suppressed. + * sem_aggr.adb Code cleanup. + * sinfo.adb (No_Side_Effect_Removal): New routine. + (Set_Side_Effect_Removal): New routine. + * sinfo.ads New attribute No_Side_Effect_Removal along with + occurences in nodes. + (No_Side_Effect_Removal): New routine along with pragma Inline. + (Set_Side_Effect_Removal): New routine along with pragma Inline. + +2016-07-04 Arnaud Charlet <charlet@adacore.com> + + * opt.ads, sem_prag.adb (Universal_Addressing_On_AAMP): Removed. + Remove support for pragma No_Run_Time. Update comments. + +2016-07-04 Pascal Obry <obry@adacore.com> + + * g-forstr.ads: More documentation for the Formatted_String + support. + +2016-07-04 Ed Schonberg <schonberg@adacore.com> + + * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case + 'Address): If the address comes from an aspect specification + and not a source attribute definition clause, do not remove + side effects from the expression, because the expression must + be elaborated at the freeze point of the object and not at the + object declaration, because of the delayed analysis of aspect + specifications. + +2016-06-29 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/48835 + PR ada/61954 + * gcc-interface/gigi.h (enum standard_datatypes): Add ADT_realloc_decl + (realloc_decl): New macro. + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Use local + variable for the entity type and translate it as void pointer if the + entity has convention C. + (gnat_to_gnu_entity) <E_Function>: If this is not a definition and the + external name matches that of malloc_decl or realloc_decl, return the + correspoding node directly. + (gnat_to_gnu_subprog_type): Likewise for parameter and return types. + * gcc-interface/trans.c (gigi): Initialize void_list_node here, not... + Initialize realloc_decl. + * gcc-interface/utils.c (install_builtin_elementary_types): ...here. + (build_void_list_node): Delete. + * gcc-interface/utils2.c (known_alignment) <CALL_EXPR>: Return the + alignment of the system allocator for malloc_decl and realloc_decl. + Do not take alignment from void pointer types either. + +2016-06-29 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/misc.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): Reorder. + (LANG_HOOKS_INIT_TS): Likewise. + +2016-06-22 Arnaud Charlet <charlet@adacore.com> + + * sem_prag.adb: Revert unwanted change in previous commit, + only keep message fix. + +2016-06-22 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.ads (Build_Classwide_Expression): new procedure to + build the expression for an inherited classwide condition, and + to validate such expressions when they apply to an inherited + operation that is not overridden. + * sem_prag.adb (Primitives_Mapping): new data structure to + handle the mapping between operations of a root type and the + corresponding overriding operations of a type extension. Used + to construct the expression for an inherited classwide condition. + (Update_Primitives_Mapping): add to Primitives_Mapping the links + between primitive operations of a root type and those of a given + type extension. + (Build_Pragma_Check_Equivalent): use Primitives_Mapping. + * sem_ch6.adb (New_Overloaded_Entity): Remove call to + Collect_Iherited_Class_Wide_Conditions in GNATprove_Mode. This + needs to be done at freeze point of the type. + * freeze.adb (Check_Inherited_Conditions): new procedure to + verify the legality of inherited classwide conditions. In normal + compilation mode the procedure determines whether an inherited + operation needs a wrapper to handle an inherited condition that + differs from the condition of the root type. In SPARK mode + the routine invokes Collect_Inherited_Class_Wide_Conditions to + produce the SPARK version of these inherited conditions. + (Freeze_Record_Type): For a type extension, call + Check_Inherited_Conditions. + +2016-06-22 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb, sem_type.adb, sem.adb, freeze.adb, sem_util.adb, + s-htable.adb, exp_ch11.adb, s-secsta.adb, restrict.adb, exp_disp.adb, + sem_ch8.adb, s-tpobop.adb, exp_aggr.ads, sem_ch13.adb: Minor + reformatting. + +2016-06-22 Yannick Moy <moy@adacore.com> + + * lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Inverse order of + treatments so that files without compilation unit are simply skipped + before more elaborate treatments. + +2016-06-22 Bob Duff <duff@adacore.com> + + * s-memory.ads: Minor typo fixes in comments. + * s-memory.adb: Code cleanup. + +2016-05-22 Olivier Hainque <hainque@adacore.com> + + * vxworks-crtbe-link.spec: Removed, no longer used. + +2016-06-22 Justin Squirek <squirek@adacore.com> + + * sem_ch8.adb (Push_Scope): Add a check for when the + scope table is empty to assign the global variable + Configuration_Component_Alignment. + * sem.adb (Do_Analyze): Add Configuration_Component_Alignment + to be assigned when the environment is cleaned instead of the + default. + * sem.ads Add a global variable Configuration_Component_Alignment + to store the value given by pragma Component_Alignment in the + context of a configuration file. + * sem_prag.adb (Analyze_Pragma): Correct the case for + Component_Alignment so that the pragma is verified and add + comments to explain how it is applied to the scope stack. + +2016-06-22 Justin Squirek <squirek@adacore.com> + + * sprint.adb (Sprint_Node_Actual): Add check in + the case of an N_Object_Declaration when evaluating an expression + to properly ignore errors. + +2016-06-22 Bob Duff <duff@adacore.com> + + * g-comlin.ads (Parameter_Type): Change subtype of Last to + Natural. + * g-comlin.adb (Set_Parameter): Change subtype of Last to + Natural. + (Getopt): Check for Arg = "", and Switches /= "". + (Internal_Initialize_Option_Scan): Check for Argument (Parser, + Index) /= "". + +2016-06-22 Gary Dismukes <dismukes@adacore.com> + + * sem_prag.adb, sem_ch8.adb: Minor reformatting. + +2016-06-22 Ed Schonberg <schonberg@adacore.com> + + * einfo.ads, einfo.adb (Is_Actual_Subtype): New flag, defined + on subtypes that are created within subprogram bodies to handle + unconstrained composite formals. + * checks.adb (Apply_Predicate_Check): Do not generate a check on + an object whose type is an actual subtype. + * sem_ch6.adb (Set_Actual_Subtypes): Do not generate an + actual subtype for a formal whose base type is private. + Set Is_Actual_Subtype on corresponding entity after analyzing + its declaration. + +2016-06-22 Justin Squirek <squirek@adacore.com> + + * sem_prag.adb (Check_Expr_Is_OK_Static_Expression): Fix ordering + of if-block and add in a condition to test for errors during + resolution. + * sem_res.adb (Resolution_Failed): Add comment to explain why + the type of a node which failed to resolve is set to the desired + type instead of Any_Type. + * sem_ch8.adb (Analyze_Object_Renaming): Add a check for Any_Type + to prevent crashes on Is_Access_Constant. + +2016-06-22 Hristian Kirtchev <kirtchev@adacore.com> + + * lib-xref-spark_specific.adb, checks.adb, sem_ch13.adb: Minor + reformatting. + * exp_ch7.adb: Minor typo fix. + * lib.ads (Get_Top_Level_Code_Unit): Add comment. + +2016-06-22 Bob Duff <duff@adacore.com> + + * s-tassta.adb (Task_Wrapper): Fix handling of Fall_Back_Handler + wrt independent tasks. + +2016-06-22 Ed Schonberg <schonberg@adacore.com> + + * sem_dim.adb (Analyze_Dimension): Propagate dimension for + explicit_dereference nodes when they do not come from source, + to handle correctly dimensional analysis on iterators over + containers whose elements have declared dimensions. + +2016-06-22 Arnaud Charlet <charlet@adacore.com> + + * spark_xrefs.ads (Scope_Num): type refined to positive integers. + * lib-xref-spark_specific.adb (Detect_And_Add_SPARK_Scope): + moved into scope of Collect_SPARK_Xrefs. + (Add_SPARK_Scope): moved into scope of Collect_SPARK_Xrefs; + now uses Dspec and Scope_Id from Collect_SPARK_Xrefs. + (Collect_SPARK_Xrefs): refactored to avoid retraversing the list + of scopes. + (Traverse_Compilation_Unit): refactored as a generic procedure. + * types.ads (Unit_Number_Type): range refined. + +2016-06-22 Hristian Kirtchev <kirtchev@adacore.com> + + * lib-xref-spark_specific.adb, a-cuprqu.ads, sem_ch6.adb: Minor + reformatting. + +2016-06-22 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.ads (Address_Value): Declare new function. + * sem_util.adb (Address_Value): New function extracted + unmodified from Apply_Address_Clause_Check, which returns the + underlying value of the expression of an address clause. + * checks.adb (Compile_Time_Bad_Alignment): Delete. + (Apply_Address_Clause_Check): Call Address_Value on + the expression. Do not issue the main warning here and + issue the secondary warning only when the value of the + expression is not known at compile time. + * sem_ch13.adb (Address_Clause_Check_Record): Add A component and + adjust the description. + (Analyze_Attribute_Definition_Clause): In the case + of an address, move up the code creating an entry in the table of + address clauses. Also create an entry for an absolute address. + (Validate_Address_Clauses): Issue the warning for absolute + addresses here too. Tweak condition associated with overlays + for consistency. + +2016-06-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Is_Predicate_Static): An inherited predicate + can be static only if it applies to a scalar type. + +2016-06-22 Ed Schonberg <schonberg@adacore.com> + + * exp_util.adb (Adjust_Result_Type): Convert operand to base + type to prevent spurious constraint checks on subtypes of Boolean. + +2016-06-22 Bob Duff <duff@adacore.com> + + * debug.adb: Document debug switch -gnatd.o. + * sem_elab.adb (Check_Internal_Call): Debug switch -gnatd.o + now causes a more conservative treatment of indirect calls, + treating P'Access as a call to P in more cases. We Can't make + this the default, because it breaks common idioms, for example + the soft links. + * sem_util.adb: Add an Assert. + +2016-06-22 Bob Duff <duff@adacore.com> + + * a-cuprqu.ads, a-cuprqu.adb: Completely rewrite this package. Use + red-black trees, which gives O(lg N) worst-case performance on + Enqueue and Dequeue. The previous version had O(N) Enqueue in + the worst case. + +2016-06-22 Arnaud Charlet <charlet@adacore.com> + + * sem_warn.adb: minor style fix in comment. + * spark_xrefs.ads (Scope_Num): type refined to positive integers. + * lib-xref-spark_specific.adb (Detect_And_Add_SPARK_Scope): + moved into scope of Collect_SPARK_Xrefs. + (Add_SPARK_Scope): moved into scope of Collect_SPARK_Xrefs; + now uses Dspec and Scope_Id from Collect_SPARK_Xrefs. + (Collect_SPARK_Xrefs): refactored to avoid retraversing the list + of scopes. + * sem_ch3.adb (Build_Discriminal): Set Parent of the discriminal. + +2016-06-22 Arnaud Charlet <charlet@adacore.com> + + * lib-xref-spark_specific.adb (Generate_Dereference): Assignment to not + commented local variables replaced with direct uses of their values. + +2016-06-22 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Add_Invariant): Replace the + current type instance with the _object parameter even in ASIS mode. + (Build_Invariant_Procedure_Body): Do not insert the + invariant procedure body into the tree for ASIS and GNATprove. + (Build_Invariant_Procedure_Declaration): Do not insert the + invariant procedure declaration into the tree for ASIS and + GNATprove. + * lib-xref-spark_specific.adb (Add_SPARK_Scope): Update comment. + +2016-06-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Set_Actual_Subtypes): If the type of the actual + has predicates, the actual subtype must be frozen properly + because of the generated tests that may follow. The predicate + may be specified by an explicit aspect, or may be inherited in + a derivation. + +2016-06-22 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (In_Range_Chec)): New predicate, subsidiary of + Expand_N_In: within an expanded range check that might raise + Constraint_Error do not generate a predicate check as well. It + is redundant because the context will add an explicit predicate + check, and it will raise the wrong exception if it fails. + * lib-xref-spark_specific.adb (Add_SPARK_File): Remove useless checks + since dependency units always have an associated compilation unit. + +2016-06-22 Arnaud Charlet <charlet@adacore.com> + + * lib.ads: Code cleanup. + * inline.adb: Type refinement for a counter variable. + * lib-xref-spark_specific.adb (Add_SPARK_File): removal of no-op code. + Code cleanup. + +2016-06-21 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (set_nonaliased_component_on_array_type): New + function. + (set_reverse_storage_order_on_array_type): Likewise. + (gnat_to_gnu_entity) <E_Array_Type>: Call them to set the flags. + <E_Array_Subtype>: Likewise. + <E_String_Literal_Subtype>: Likewise. + (substitute_in_type) <ARRAY_TYPE>: Likewise. + * gcc-interface/utils.c (gnat_pushdecl): Always create a variant for + the DECL_ORIGINAL_TYPE of a type. + +2016-06-20 Hristian Kirtchev <kirtchev@adacore.com> + + * make.adb, gnatbind.adb, g-socket.adb, sem_ch13.adb: Minor + reformatting. + * lib.ads, sem_util.adb: Minor typo in comment. + +2016-06-20 Yannick Moy <moy@adacore.com> + + * sem_prag.adb, sem_prag.ads (Build_Pragma_Check_Equivalent): + Add parameter Keep_Pragma_Id to optionally keep + the identifier of the pragma instead of converting + to pragma Check. Also set type of new function call + appropriately. (Collect_Inherited_Class_Wide_Conditions): + Call Build_Pragma_Check_Equivalent with the new parameter + Keep_Pragma_Id set to True to keep the identifier of the copied + pragma. + * sinfo.ads: Add comment. + +2016-06-20 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Build_Invariant_Procedure_Body): + Always install the scope of the invariant procedure + in order to produce better error messages. Do not + insert the body when the context is a generic unit. + (Build_Invariant_Procedure_Declaration): Perform minimal + decoration of the invariant procedure and its formal parameter + in case they are not analyzed. Do not insert the declaration + when the context is a generic unit. + +2016-06-20 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Visible_Component): New procedure, subsidiary + of Replace_Type_References_ Generic, to determine whether an + identifier in a predicate or invariant expression is a visible + component of the type to which the predicate or invariant + applies. Implements the visibility rule stated in RM 13.1.1 + (12/3). + +2016-06-20 Hristian Kirtchev <kirtchev@adacore.com> + + * s-regpat.adb, sem_prag.adb, pprint.adb, sem_ch13.adb: Minor + reformatting. + +2016-06-20 Tristan Gingold <gingold@adacore.com> + + * make.adb (Check_Standard_Library): Consider system.ads + if s-stalib.adb is not available. + * gnatbind.adb (Add_Artificial_ALI_File): New procedure extracted from + gnatbind. + +2016-06-20 Thomas Quinot <quinot@adacore.com> + + * g-socket.adb (Is_IP_Address): A string consisting in digits only is + not a dotted quad. + +2016-06-20 Arnaud Charlet <charlet@adacore.com> + + * exp_ch7.adb (Build_Invariant_Procedure_Body): + decorate invariant procedure body with typical properties of + procedure entityes. + +2016-06-20 Arnaud Charlet <charlet@adacore.com> + + * a-exetim-darwin.adb: New file. + +2016-06-16 Hristian Kirtchev <kirtchev@adacore.com> + + * atree.ads, atree.adb (Elist29): New routine. + (Set_Elist29): New routine. + * atree.h New definition for Elist29. + * einfo.adb Subprograms_For_Type is now an Elist rather than + a node. Has_Invariants is now a synthesized attribute + and does not require a flag. Has_Own_Invariants + is now Flag232. Has_Inherited_Invariants is + Flag291. Is_Partial_Invariant_Procedure is Flag292. + (Default_Init_Cond_Procedure): Reimplemented. + (Has_Inherited_Invariants): New routine. + (Has_Invariants): Reimplemented. + (Has_Own_Invariants): New routine. + (Invariant_Procedure): Reimplemented. + (Is_Partial_Invariant_Procedure): New routine. + (Partial_Invariant_Procedure): Reimplemented. + (Predicate_Function): Reimplemented. + (Predicate_Function_M): Reimplemented. + (Set_Default_Init_Cond_Procedure): Reimplemented. + (Set_Has_Inherited_Invariants): New routine. + (Set_Has_Invariants): Removed. + (Set_Has_Own_Invariants): New routine. + (Set_Invariant_Procedure): Reimplemented. + (Set_Is_Partial_Invariant_Procedure): New routine. + (Set_Partial_Invariant_Procedure): Reimplemented. + (Set_Predicate_Function): Reimplemented. + (Set_Predicate_Function_M): Reimplemented. + (Set_Subprograms_For_Type): Reimplemented. + (Subprograms_For_Type): Reimplemented. + (Write_Entity_Flags): Output Flag232 and Flag291. + * einfo.ads Add new attributes Has_Inherited_Invariants + Has_Own_Invariants Is_Partial_Invariant_Procedure + Partial_Invariant_Procedure Change the documentation + of attributes Has_Inheritable_Invariants Has_Invariants + Invariant_Procedure Is_Invariant_Procedure Subprograms_For_Type + (Has_Inherited_Invariants): New routine along with pragma Inline. + (Has_Own_Invariants): New routine along with pragma Inline. + (Is_Partial_Invariant_Procedure): New routine along with pragma Inline. + (Partial_Invariant_Procedure): New routine. + (Set_Has_Inherited_Invariants): New routine along with pragma Inline. + (Set_Has_Invariants): Removed along with pragma Inline. + (Set_Has_Own_Invariants): New routine along with pragma Inline. + (Set_Is_Partial_Invariant_Procedure): New routine + along with pragma Inline. + (Set_Partial_Invariant_Procedure): New routine. + (Set_Subprograms_For_Type): Update the signature. + (Subprograms_For_Type): Update the signature. + * exp_ch3.adb Remove with and use clauses for Sem_Ch13. + (Build_Array_Invariant_Proc): Removed. + (Build_Record_Invariant_Proc): Removed. + (Freeze_Type): Build the body of the invariant procedure. + (Insert_Component_Invariant_Checks): Removed. + * exp_ch7.adb Add with and use clauses for Sem_Ch6, Sem_Ch13, + and Stringt. + (Build_Invariant_Procedure_Body): New routine. + (Build_Invariant_Procedure_Declaration): New routine. + * exp_ch7.ads (Build_Invariant_Procedure_Body): New routine. + (Build_Invariant_Procedure_Declaration): New routine. + * exp_ch9.adb (Build_Corresponding_Record): Do not propagate + attributes related to invariants to the corresponding record + when building the corresponding record. This is done by + Build_Invariant_Procedure_Declaration. + * exp_util.adb (Make_Invariant_Call): Reimplemented. + * freeze.adb (Freeze_Array_Type): An array type requires an + invariant procedure when its component type has invariants. + (Freeze_Record_Type): A record type requires an invariant + procedure when at least one of its components has an invariant. + * sem_ch3.adb (Analyze_Private_Extension_Declaration): Inherit + invariant-related attributes. + (Analyze_Subtype_Declaration): + Inherit invariant-related attributes. + (Build_Derived_Record_Type): Inherit invariant-related attributes. + (Check_Duplicate_Aspects): Reimplemented. + (Get_Partial_View_Aspect): New routine. + (Process_Full_View): Inherit invariant-related attributes. Reimplement + the check on hidden inheritance of class-wide invariants. + (Remove_Default_Init_Cond_Procedure): Reimplemented. + * sem_ch6.adb (Analyze_Subprogram_Specification): Do not modify + the controlling type for an invariant procedure declaration + or body. + (Is_Invariant_Procedure_Or_Body): New routine. + * sem_ch7.adb (Analyze_Package_Specification): Build the partial + invariant body in order to preanalyze and resolve all invariants + of a private type at the end of the visible declarations. Build + the full invariant body in order to preanalyze and resolve + all invariants of a private type's full view at the end of + the private declarations. + (Preserve_Full_Attributes): Inherit invariant-related attributes. + * sem_ch9.adb (Analyze_Protected_Type_Declaration): Ensure that + aspects are analyzed with the proper view when the protected type + is a completion of a private type. Inherit invariant-related attributes. + (Analyze_Task_Type_Declaration): Ensure that + aspects are analyzed with the proper view when the task type + is a completion of a private type. Inherit invariant-related + attributes. + * sem_ch13.adb Remove with and use clauses for Stringt. + (Build_Invariant_Procedure_Declaration): Removed. + (Build_Invariant_Procedure): Removed. + (Freeze_Entity_Checks): Do not build the body of the invariant + procedure here. + The body is built when the type is frozen in Freeze_Type. + (Inherit_Aspects_At_Freeze_Point): Do not inherit any attributes + related to invariants here because this leads to erroneous + inheritance. + (Replace_Node): Rename to Replace_Type_Ref. + * sem_ch13.ads (Build_Invariant_Procedure_Declaration): Removed. + (Build_Invariant_Procedure): Removed. + * sem_prag.adb Add with and use clauses for Exp_Ch7. + (Analyze_Pragma): Reimplement the analysis of pragma Invariant. + * sem_res.adb (Resolve_Actuals): Emit a specialized error when + the context is an invariant. + * sem_util.adb (Get_Views): New routine. + (Incomplete_Or_Partial_View): Consider generic packages when + examining declarations. + (Inspect_Decls): Consider full type + declarations because they may denote a derivation from a + private type. + (Propagate_Invariant_Attributes): New routine. + * sem_util.ads (Get_Views): New routine. + (Propagate_Invariant_Attributes): New routine. + +2016-06-16 Arnaud Charlet <charlet@adacore.com> + + * pprint.adb (Expression_Image): Add better handling of UCs, + we don't want to strip them all for clarity. + + +2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * exp_util.adb (Safe_Unchecked_Type_Conversion): Use "alignment" + instead of "alignement". + +2016-06-16 Gary Dismukes <dismukes@adacore.com> + + * sem_util.adb: Minor typo fix. + +2016-06-16 Emmanuel Briot <briot@adacore.com> + + * s-regpat.adb: Further fix for invalid index in GNAT.Regexp. + +2016-06-16 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch13.adb (Validate_Address_Clauses): Use the same logic to + issue the warning on the offset for the size as for the alignment + and tweak the wording for the sake of consistency. + +2016-06-16 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Check_Class_Wide_COndition): New procedure, + subsidiary of Analyze_Pre_Post_ Condition_In_Decl_Part, to + check legality rules that follow from the revised semantics of + class-wide pre/postconditions described in AI12-0113. + (Build_Pragma_Check_Equivalent): Abstract subprogram declarations + must be included in list of overriding primitives of a derived + type. + +2016-06-16 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (May_Be_Lvalue): An actual in an unexpanded + attribute reference 'Read is an assignment and must be considered + a modification of the object. + +2016-06-16 Gary Dismukes <dismukes@adacore.com> + + * einfo.adb: Minor editorial. + +2016-06-16 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Overridden_Ancestor): Clean up code to use + controlling type of desired primitive rather than its scope, + because the primitive that inherits the classwide condition may + comes from several derivation steps. + +2016-06-16 Javier Miranda <miranda@adacore.com> + + * einfo.adb (Set_Default_Init_Cond_Procedure): Allow calls setting + this attribute to Empty (only if the attribute has not been set). + * sem_util.adb (Build_Default_Init_Cond_Procedure_Body): + No action needed if the spec was not built. + (Build_Default_Init_Cond_Procedure_Declaration): The spec is + not built if DIC is set to NULL or no condition was specified. + * exp_ch3.adb (Expand_N_Object_Declaration): Check availability + of the Init_Cond procedure before generating code to call it. + +2016-06-16 Emmanuel Briot <briot@adacore.com> + + * s-regpat.adb: Fix invalid index check when matching end-of-line + on substrings. + +2016-06-16 Arnaud Charlet <charlet@adacore.com> + + * gnat1drv.adb: Minor reformatting. + +2016-06-16 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Check_Entry_Contracts): New procedure, subsidiary + of Analyze_Declarations, that performs pre-analysis of + pre/postconditions on entry declarations before full analysis + is performed after entries have been converted into procedures. + Done solely to capture semantic errors. + * sem_attr.adb (Analyze_Attribute, case 'Result): Add guard to + call to Denote_Same_Function. + +2016-06-16 Emmanuel Briot <briot@adacore.com> + + * g-comlin.adb: Fix minor memory leak in GNAT.Command_Line. + +2016-06-16 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Find_Last_Init): Remove obsolete code. The + logic is now performed by Process_Object_Declaration. + (Process_Declarations): Recognize a controlled deferred + constant which is in fact initialized by means of a + build-in-place function call as needing finalization actions. + (Process_Object_Declaration): Insert the counter after the + build-in-place initialization call for a controlled object. This + was previously done in Find_Last_Init. + * exp_util.adb (Requires_Cleanup_Actions): Recognize a controlled + deferred constant which is in fact initialized by means of a + build-in-place function call as needing finalization actions. + +2016-06-16 Justin Squirek <squirek@adacore.com> + + * exp_aggr.adb (Expand_Array_Aggregate): Minor comment changes and + additional style fixes. + * exp_ch7.adb: Minor typo fixes and reformatting. + +2016-06-16 Justin Squirek <squirek@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Add a missing check + for optimized aggregate arrays with qualified expressions. + * exp_aggr.adb (Expand_Array_Aggregate): Fix block and + conditional statement in charge of deciding whether to perform + in-place expansion. Specifically, use Parent_Node to jump over + the qualified expression to the object declaration node. Also, + a check has been inserted to skip the optimization if SPARK 2005 + is being used in strict adherence to RM 4.3(5). + +2016-06-16 Tristan Gingold <gingold@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Simplify code + for Pragma_Priority. + +2016-06-16 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.ads (Indexed_Component_Bit_Offset): Declare. + * sem_util.adb (Indexed_Component_Bit_Offset): New + function returning the offset of an indexed component. + (Has_Compatible_Alignment_Internal): Call it. + * sem_ch13.adb (Offset_Value): New function returning the offset of an + Address attribute reference from the underlying entity. + (Validate_Address_Clauses): Call it and take the offset into + account for the size warning. + +2016-06-16 Hristian Kirtchev <kirtchev@adacore.com> + + * bindgen.adb, exp_util.adb, sem_ch9.adb, sem_util.adb: Minor + reformatting. + +2016-06-16 Gary Dismukes <dismukes@adacore.com> + + * sem_ch9.adb, sem_util.ads, sem_res.adb: Minor reformatting and typo + fixes. + +2016-06-16 Javier Miranda <miranda@adacore.com> + + * sem_res.adb (Resolve): Under relaxed RM semantics silently + replace occurrences of null by System.Null_Address. + * sem_ch4.adb (Analyze_One_Call, Operator_Check): Under + relaxed RM semantics silently replace occurrences of null by + System.Null_Address. + * sem_util.ad[sb] (Null_To_Null_Address_Convert_OK): New subprogram. + (Replace_Null_By_Null_Address): New subprogram. + +2016-06-16 Bob Duff <duff@adacore.com> + + * exp_util.adb (Is_Controlled_Function_Call): + This was missing the case where the call is in prefix format, + with named notation, as in Obj.Func (Formal => Actual). + +2016-06-16 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb, inline.adb, sem_attr.adb, sem_elab.adb: Minor + reformatting. + +2016-06-16 Bob Duff <duff@adacore.com> + + * sem_util.adb (Collect): Avoid Empty Full_T. Otherwise Etype + (Full_T) crashes when assertions are on. + * sem_ch12.adb (Matching_Actual): Correctly handle the case where + "others => <>" appears in a generic formal package, other than + by itself. + +2016-06-16 Arnaud Charlet <charlet@adacore.com> + + * usage.adb: Remove confusing comment in usage line. + * bindgen.adb: Fix binder generated file in codepeer mode wrt + recent additions. + +2016-06-16 Javier Miranda <miranda@adacore.com> + + * restrict.adb (Check_Restriction_No_Use_Of_Entity): Avoid + never-ending loop, code cleanup; adding also support for Text_IO. + * sem_ch8.adb (Find_Expanded_Name): Invoke + Check_Restriction_No_Use_Entity. + +2016-06-16 Tristan Gingold <gingold@adacore.com> + + * exp_ch9.adb: Minor comment fix. + * einfo.ads (Has_Protected): Clarify comment. + * sem_ch9.adb (Analyze_Protected_Type_Declaration): Do not + consider private protected types declared in the runtime for + the No_Local_Protected_Types restriction. + +2016-06-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Set_Actual_Subtypes): Do not generate actual + subtypes for unconstrained formals when analyzing the generated + body of an expression function, because it may lead to premature + and misplaced freezing of the types of formals. + +2016-06-14 Gary Dismukes <dismukes@adacore.com> + + * sem_elab.adb, sem_ch4.adb: Minor reformatting and typo fix. + +2016-06-14 Tristan Gingold <gingold@adacore.com> + + * einfo.adb (Set_Has_Timing_Event): Add assertion. + * sem_util.ads, sem_util.adb (Propagate_Concurrent_Flags): New + name for Propagate_Type_Has_Flags. + * exp_ch3.adb, sem_ch3.adb, sem_ch7.adb, sem_ch9.adb: Adjust after + renaming. + +2016-06-14 Bob Duff <duff@adacore.com> + + * sem_elab.adb (Check_A_Call): Do nothing if the callee is + (or is in) an instance, and the caller is outside. Misc cleanup. + +2016-06-14 Javier Miranda <miranda@adacore.com> + + * sem_ch4.adb (Analyze_Quantified_Expression): + Generating C code avoid spurious warning on loop variable of + inlinined postconditions. + +2016-06-14 Javier Miranda <miranda@adacore.com> + + * sem_attr.adb (Analyze_Attribute_Old_Result): Adding assertion. + (Analyze_Attribute [Attribute_Old]): Generating C handle + analysis of 'old in inlined postconditions. + (Analyze_Attribute [Attribute_Result]): Generating C handle analysis + of 'result in inlined postconditions. + * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]): + Generating C handle expansion of 'old in inlined postconditions. + * inline.adb (Declare_Postconditions_Result): New subprogram. + * sem_ch12.adb (Copy_Generic_Node): Copy pragmas generated from + aspects when generating C code since pre/post conditions are + inlined and the frontend inlining relies on this routine to + perform inlining. + * exp_ch6.adb (Inlined_Subprogram): Replace Generate_C_Code + by Modify_Tree_For_C. + * exp_unst.adb (Visit_Node): Searching for up-level references + skip entities defined in inlined subprograms. + +2016-06-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch7.adb, sem_ch12.adb, freeze.adb, lib-xref.ads, exp_ch3.adb: + Minor reformatting. + +2016-06-14 Bob Duff <duff@adacore.com> + + * sem_elab.adb: Do nothing if the callee is intrinsic. + * sinfo.ads, einfo.ads: Minor comment fixes. + +2016-06-14 Ed Schonberg <schonberg@adacore.com> + + * contracts.adb (Has_Null_Body): Move to sem_util, for general + availability. + * sem_util.ads, sem_util.adb (Has_Null_Body): Predicate to + determine when an internal procedure created for some assertion + checking (e.g. type invariant) is a null procedure. Used to + eliminate redundant calls to such procedures when they apply to + components of composite types. + * exp_ch3.adb (Build_Component_Invariant_Call): Do not add call + if invariant procedure has a null body. + +2016-06-14 Thomas Quinot <quinot@adacore.com> + + * g-socket.ads (Check_Selector): Clarify effect on IN OUT socket + set parameters. + +2016-06-14 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Process_Action): Pass the action + list to Process_Transient_Object. + (Process_If_Case_Statements): Pass the action list to + Process_Transient_Object. + (Process_Transient_Object): Add new parameter Stmts and update the + comment on usage. When the context is a Boolean evaluation, insert + any finalization calls after the last statement of the construct. + +2016-06-14 Tristan Gingold <gingold@adacore.com> + + * einfo.adb, einfo.ads (Has_Timing_Event, + Set_Has_Timing_Event): Add Has_Timing_Event flag. + (Write_Entity_Flags): Display * sem_util.ads, sem_util.adb: + (Propagate_Type_Has_Flags): New procedure to factorize code. + * exp_ch3.adb (Expand_Freeze_Array_Type, + Expand_Freeze_Record_Type): Call Propagate_Type_Has_Flags. + * sem_ch3.adb (Access_Type_Decalaration): Initialize + Has_Timing_Event flag. (Analyze_Object_Declaration): + Move code that check No_Local_Timing_Events near + the code that check No_Local_Protected_Objects. + (Analyze_Private_Extension_Declaration, Array_Type_Declaration) + (Build_Derived_Type, Copy_Array_Base_Type_Attributes, + Process_Full_View) (Record_Type_Definition): Call + Propagate_Type_Has_Flags. + * sem_ch4.adb (Analyze_Allocator): Check No_Local_Timing_Events. + * sem_ch7.adb (New_Private_Type): Set Has_Timing_Event on the + Timing_Event type. + (Uninstall_Declaration): Call Propagate_Type_Has_Flags. + * sem_ch9.adb (Analyze_Protected_Definition): Call + Propagate_Type_Has_Flags. + +2016-06-14 Arnaud Charlet <charlet@adacore.com> + + * sem.ads: Minor style fix. + +2016-06-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Analyze_Associations): An actual parameter + with a box must be included in the count of actuals, to detect + possible superfluous named actuals that do not match any of the + formals of the generic unit in a formal package declaration. + +2016-06-14 Justin Squirek <squirek@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Fix formatting + of error output related to SPARK RM 6.1.7(3) and pragma + Extensions_Visible. + * sem_ch4.adb (Analyze_Type_Conversion): Fix formatting of error + output related to SPARK RM 6.1.7(3) and pragma Extensions_Visible. + * sem_prag.adb (Analyze_Pragma): Fix formatting of error output + related to SPARK RM 7.1.2(15) and pragma Volatile_Function + so that the values True and False are no longer surrounded by + double quotes. + * sem_res.adb (Resolve_Actuals): Fix formatting of error output + related to SPARK RM 6.1.7(3) and pragma Extensions_Visible. + +2016-06-14 Arnaud Charlet <charlet@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): Enable access checks + in codepeer mode. + * freeze.adb: Minor grammar fix in comment. +2016-06-14 Hristian Kirtchev <kirtchev@adacore.com> + + * lib.adb: Minor reformatting. + * sem_util.adb (Is_OK_Volatile_Context): Do + include Address in the supported attributes. + +2016-06-14 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Expand_N_Case_Expression): + Code cleanup. Finalize any transient controlled + objects on exit from a case expression alternative. + (Expand_N_If_Expression): Code cleanup. + (Process_Actions): Removed. + (Process_If_Case_Statements): New routine. + (Process_Transient_Object): Change the name of formal Rel_Node to + N and update all occurrences. Update the comment on usage. When + the type of the context is Boolean, the proper insertion point + for the finalization call is after the last declaration. + +2016-06-14 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.ads, lib-xref.adb (Has_Deferred_Reference): new + predicate to determine whether an entity appears in a context + for which a Deferred_Reference was created, because it is not + possible to determine when reference is analyzed whether it + appears in a context in which the entity is modified. + * sem_ch5.adb (Analyze_Statement): Do not emit a useless warning + on assignment for an entity that has a deferred_reference. + +2016-06-14 Javier Miranda <miranda@adacore.com> + + * sem_res.adb (Resolve_Actuals): Generate a reference to actuals that + come from source. Previously the reference was generated only if the + call comes from source but the call may be rewritten by the expander + thus causing the notification of spurious warnings. + +2016-06-14 Arnaud Charlet <charlet@adacore.com> + + * gnat1drv.adb: Remove further references to AAMP. + * checks.adb (Apply_Scalar_Range_Check): Take + Check_Float_Overflow info account. + * live.ads, live.adb Added subprogram headers and + start-of-processing-for comments. + * sem_ch12.adb (Instantiate_Package_Body): Do not suppress + checks when instantiating runtime units in CodePeer mode. + +2016-06-14 Arnaud Charlet <charlet@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Only consider + nodes from sources. + +2016-06-14 Arnaud Charlet <charlet@adacore.com> + + * switch-c.adb, gnat1drv.adb (Adjust_Global_Switches): Only disable + simple value propagation in CodePeer mode when warnings are disabled. + (Scan_Front_End_Switches): Enable relevant front-end switches + when using -gnateC. + +2016-06-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_util.adb (Is_OK_Volatile_Context): A + reference to a volatile object is considered OK if appears as + the prefix of attributes Address, Alignment, Component_Size, + First_Bit, Last_Bit, Position, Size, Storage_Size. + +2016-06-14 Yannick Moy <moy@adacore.com> + + * lib-xref-spark_specific.adb (Add_SPARK_File): Do not traverse + subunits directly, as they are already traversed as part of the + top-level unit to which they belong. + (Add_SPARK_Xrefs): Add assertions to ensure correct sorting. + (Generate_Dereference): Use unique definition place for special + variable __HEAP, to ensure correct sorting of references. + * lib-xref.adb (Generate_Reference): Use top-level unit in case + of subunits. + * lib.adb, lib.ads (Get_Top_Level_Code_Unit): New functions that + compute the top-level code unit for a source location of AST node, + that go past subunits. + +2016-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Build only a minimal + PARM_DECL when the parameter type is dummy. + * gcc-interface/trans.c (Call_to_gnu): Translate formal types before + formal objects. + +2016-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with + PLUS_EXPR in the expression of a renaming. + +2016-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (known_alignment) <CALL_EXPR>: Deal specially + with calls to malloc. + +2016-06-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (build_binary_op_trapv): If no operand is a + constant, use the generic implementation of the middle-end; otherwise + turn the dynamic conditions into static conditions and simplify. + +2016-06-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Case_Statement_to_gnu): Deal with characters. + +2016-06-11 Pierre-Marie de Rodat <derodat@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not clobber + gnat_entity_name with temporary names for XUP and XUT types. + +2016-06-10 Martin Sebor <msebor@redhat.com> + + PR c/71392 + * gcc/ada/gcc-interface/utils.c (handle_nonnull_attribute): Accept + the nonnull attribute in type-generic builtins. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (Gigi_Equivalent_Type): Make sure equivalent + types are present before returning them. Remove final assertion. + (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Adjust to + above change. + <E_Protected_Type>: Likewise. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (elaborate_all_entities_for_package): Also do + not elaborate Itypes. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (gnat_internal_attribute_table): Add support + for noinline and noclone attributes. + (handle_noinline_attribute): New handler. + (handle_noclone_attribute): Likewise. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (process_type): Beef up comment. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (build_call_alloc_dealloc): Do not substitute + placeholder expressions here but... + * gcc-interface/trans.c (gnat_to_gnu) <N_Free_Statement>: ...here. + Make an exception to the protection of a CALL_EXPR result with an + unconstrained type only in the same cases as Call_to_gnu. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu): Rework special code dealing + with boolean rvalues and set the location directly. Do not set the + location in the other cases for a simple name. + (gnat_to_gnu_external): Clear the location on the expression. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Component>: Remove + useless 'else' statements and tidy up. + <E_Array_Subtype>: Fully deal with the declaration here. + <E_Incomplete_Type>: Use properly-typed constant. + Assert that we don't apply the special type treatment to dummy types. + Separate this treatment from the final back-annotation and simplify + the condition for the RM size. + (gnat_to_gnu_param): Add GNU_PARAM_TYPE parameter and adjust. + (gnat_to_gnu_subprog_type): Ajust call to gnat_to_gnu_param. + * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Declaration>: Add + comment. + (process_freeze_entity): Remove obsolete code. + (process_type): Minor tweaks. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Returns_Limited_View): Remove. + (Set_Returns_Limited_View ): Likewise. + * einfo.adb (Returns_Limited_View): Likewise. + (Set_Returns_Limited_View ): Likewise. + * freeze.adb (Late_Freeze_Subprogram): Remove. + (Freeze_Entity): Do not defer the freezing of functions returning an + incomplete type coming from a limited context. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (finish_subprog_decl): Add ASM_NAME parameter. + * gcc-interface/decl.c (gnu_ext_name_for_subprog): New function. + (gnat_to_gnu_entity) <E_Subprogram_Type>: Do not check compatibility + of profiles for builtins here... Call gnu_ext_name_for_subprog. + Also update profiles if pointers to limited_with'ed types are + updated. + (gnat_to_gnu_param): Restore the correct source location information + for vector ABI warnings. + (associate_subprog_with_dummy_type): Add comment about AI05-019. + Set TYPE_DUMMY_IN_PROFILE_P flag unconditionally. + (update_profile): Deal with builtin declarations. + Call gnu_ext_name_for_subprog. Adjust call to finish_subprog_decl. + (update_profiles_with): Add comment. + (gnat_to_gnu_subprog_type): Reuse the return type if it is complete. + Likewise for parameter declarations in most cases. Do not change + the return type for the CICO mechanism if the profile is incomplete. + ...but here instead. Always reset the slot for the parameters. + * gcc-interface/utils.c (create_subprog_decl): Call + gnu_ext_name_for_subprog. Do not set the assembler name here but... + (finish_subprog_decl): ...but here instead. Add ASM_NAME parameter. + +2016-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the + declaration of the corresponding record type before that of the + unprotected version of the subprograms that operate on it. + (Expand_Access_Protected_Subprogram_Type): Declare the Equivalent_Type + just before the original type. + * sem_ch3.adb (Handle_Late_Controlled_Primitive): Point the current + declaration to the newly created declaration for the primitive. + (Analyze_Subtype_Declaration): Remove obsolete code forcing the + freezing of the subtype before its declaration. + (Replace_Anonymous_Access_To_Protected_Subprogram): Insert the new + declaration in the nearest enclosing scope for formal parameters too. + (Build_Derived_Access_Type): Restore the status of the created Itype + after it is erased by Copy_Node. + * sem_ch6.adb (Exchange_Limited_Views): Remove guard on entry. + (Analyze_Subprogram_Body_Helper): Call Exchange_Limited_Views only if + the specification is present. + Move around the code changing the designated view of the return type + and save the original view. Restore it on exit. + * sem_ch13.adb (Build_Predicate_Function_Declaration): Always insert + the declaration right after that of the type. + +2016-06-01 Simon Wright <simon@pushface.org> + + PR ada/71358 + * g-comlin.adb (Display_Section_Help): Do not dereference + Config.Switches if it's null. + (Getopt): Likewise. + +2016-05-31 Eric Botcazou <ebotcazou@adacore.com> + + * s-osinte-kfreebsd-gnu.ads (clock_getres): Define. + (Get_Page_Size): Remove duplicate and return int. + +2016-05-31 Jan Sommer <soja-lists@aries.uberspace.de> + + PR ada/71317 + * s-osinte-rtems.ads (clock_getres): Define. + (Get_Page_Size): Remove duplicate and return int. + +2016-05-20 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: + Make same-sized subtypes of signed base types signed. + * gcc-interface/utils.c (make_type_from_size): Adjust to above change. + (unchecked_convert): Likewise. + +2016-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build + a specific type for the object if it is deemed a constant. + +2016-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to + components of any elementary types and of composite types. + +2016-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb (Freeze_Array_Type): Call Addressable predicate instead + of testing for individual sizes. + (Freeze_Entity): Rework implementation of pragma Implicit_Packing for + array types, in particular test for suitable sizes upfront and do not + mimic the processing that will be redone later in Freeze_Array_Type. + +2016-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (elaborate_all_entities_for_package): Also skip + formal objects. + +2016-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * doc/gnat_rm/implementation_defined_attributes.rst + (Scalar_Storage_Order): Adjust restriction for packed array types. + * einfo.ads (Is_Bit_Packed_Array): Adjust description. + (Is_Packed): Likewise. + (Is_Packed_Array_Impl_Type): Likewise. + (Packed_Array_Impl_Type): Likewise. + * exp_ch4.adb (Expand_N_Indexed_Component): Do not do anything special + if the prefix is not a packed array implemented specially. + * exp_ch6.adb (Expand_Actuals): Expand indexed components only for + bit-packed array types. + * exp_pakd.adb (Install_PAT): Set Is_Packed_Array_Impl_Type flag on + the PAT before analyzing its declaration. + (Create_Packed_Array_Impl_Type): Remove redundant statements. + * freeze.adb (Check_Component_Storage_Order): Reject packed array + components only if they are bit packed. + (Freeze_Array_Type): Fix logic detecting bit packing and do not bit + pack for composite types whose size is multiple of a byte. + Create the implementation type for packed array types only when it is + needed, i.e. bit packing or packing because of holes in index types. + Make sure the Has_Non_Standard_Rep and Is_Packed flags agree. + * gcc-interface/gigi.h (make_packable_type): Add MAX_ALIGN parameter. + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: + Call maybe_pad_type instead of building the padding type manually. + (gnat_to_gnu_entity) <E_Array_Subtype>: Do not assert that + Packed_Array_Impl_Type is present for packed arrays. + (gnat_to_gnu_component_type): Also handle known alignment for packed + types by passing it to make_packable_type. + * gcc-interface/utils.c (make_packable_type): Add MAX_ALIGN parameter + and deal with it in the array case. Adjust recursive call. Simplify + computation of new size and cap the alignment to BIGGEST_ALIGNMENT. + +2016-05-16 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Check_Component_Storage_Order): Also get full view of + enclosing type. + +2016-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Remove_Side_Effects): Also make a constant if we need + to capture the value for a small not by-reference record type. + * freeze.ads (Check_Compile_Time_Size): Adjust comment. + * freeze.adb (Set_Small_Size): Likewise. Accept a size in the range + of 33 .. 64 bits. + (Check_Compile_Time_Size): Merge scalar and access type cases. Change + variable name in array type case. For the computation of the packed + size, deal with record components and remove redundant test. + (Freeze_Array_Type): Also adjust packing status when the size of the + component type is in the range 33 .. 64 bits. + * doc/gnat_rm/representation_clauses_and_pragmas.rst: Turn primitive + into elementary type throughout. Minor tweaks. + (Alignment Clauses): Document actual alignment of packed array types. + (Pragma Pack for Arrays): List only the 3 main cases and adjust. Add + "simple" to the record case. Document effect on non packable types. + (Pragma Pack for Records): Likewise. Add record case and adjust. + +2016-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in (GNATMAKE_FOR_HOST): In the canadian + cross case, use host_noncanonical instead of host as prefix. + (GNATBIND_FOR_HOST): Likewise. + (GNATLINK_FOR_HOST): Likewise. + (GNATLS_FOR_HOST): Likewise. + +2016-05-06 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/70969 + * system-darwin-ppc64.ads: Add pragma No_Elaboration_Code_All. + * system-linux-armeb.ads: Likewise. + * system-linux-mips64el.ads: Likewise. + * system-linux-mips.ads: Likewise. + * system-linux-mipsel.ads: Likewise. + * system-linux-ppc64.ads: Likewise. + * system-linux-sparcv9.ads: Likewise. + * system-rtems.ads: Likewise. + +2016-05-04 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize + instead of __getpagesize. + +2016-05-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * gcc-interface/Makefile.in (install-gcc-specs): Use foreach. + Honor DESTDIR. + +2016-05-02 Tristan Gingold <gingold@adacore.com> + + * fname.adb (Is_Predefined_File_Name): Also consider non-krunched + i-* names. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Aggregate_Constraint_Checks): Separate + accessibility checks and non-null checks for aggregate components, + to prevent spurious accessibility errors. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (OK_For_Limited_Init): A type conversion is not + always legal in the in-place initialization of a limited entity + (e.g. an allocator). + * sem_res.adb (Resolve_Allocator): Improve error message with RM + reference when allocator expression is illegal. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Expand_Call): When inlining a call to a function + declared in a package instance, locate the instance node of the + package after the actual package declaration. skipping over + pragmas that may have been introduced when the generic unit + carries aspects that are transformed into pragmas. + +2016-05-02 Bob Duff <duff@adacore.com> + + * s-memory.adb (Alloc, Realloc): Move checks + for Size = 0 or size_t'Last into the Result = System.Null_Address + path for efficiency. Improve comments (based on actual C language + requirements for malloc). + * exp_util.adb (Build_Allocate_Deallocate_Proc): Optimize the + case where we are using the default Global_Pool_Object, and we + don't need the heavy finalization machinery. + +2016-05-02 Gary Dismukes <dismukes@adacore.com> + + * exp_util.ads, sem_ch12.adb: Minor reformatting. + +2016-05-02 Javier Miranda <miranda@adacore.com> + + * exp_util.ads, exp_util.adb (Force_Evaluation): Adding new formal. + (Remove_Side_Effects): Adding a new formal. + * exp_ch6.adb (Expand_Simple_Function_Return): Generating the + call to the _Postconditions procedure ensure that side-effects + are unconditionally removed. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Check_Formal_Package_Instance, Check_Mismatch): + Use original node to determine whether the declaration is for + a formal type declaration, to take into account that formwl + private types are rewritten as private extension declarations + to simplify semantic analysis. + +2016-05-02 Gary Dismukes <dismukes@adacore.com> + + * exp_ch9.adb, sem_ch6.adb, sem_ch6.ads: Minor reformatting and typo + fixes. + +2016-05-02 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb, exp_ch9.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb: Minor + reformatting. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Expand_N_Allocator): If the designated type + is a private derived type with no discriminants, examine its + underlying_full_view to determine whether the full view has + defaulted discriminants, so their defaults can be used in the + call to the initialization procedure for the designated object. + +2016-05-02 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_prag.adb, comperr.adb: Minor reformatting. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * exp_pakd.adb (Rj_Unchecked_Convert_To): Do not perform an + unchecked conversion if the source size is 0 (indicating that + its RM size is unknown). This will happen with packed arrays of + non-discrete types, in which case the component type is known + to match. + +2016-05-02 Arnaud Charlet <charlet@adacore.com> + + * debug.adb: Reserve -gnatd.V. + +2016-05-02 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Process_Full_View): Remove from visibility + wrappers of synchronized types to avoid spurious errors with + their wrapped entity. + * exp_ch9.adb (Build_Wrapper_Spec): Do not generate the wrapper + if no interface primitive is covered by the subprogram and this is + not a primitive declared between two views; see Process_Full_View. + (Build_Protected_Sub_Specification): Link the dispatching + subprogram with its original non-dispatching protected subprogram + since their names differ. + (Expand_N_Protected_Type_Declaration): + If a protected subprogram overrides an interface primitive then + do not build a wrapper if it was already built. + * einfo.ads, einfo.adb (Original_Protected_Subprogram): New attribute. + * sem_ch4.adb (Names_Match): New subprogram. + * sem_ch6.adb (Check_Synchronized_Overriding): Moved + to library level and defined in the public part of the + package to invoke it from Exp_Ch9.Build_Wrapper_Spec + (Has_Matching_Entry_Or_Subprogram): New subprogram. + (Report_Conflict): New subprogram. + +2016-05-02 Jerome Lambourg <lambourg@adacore.com> + + * s-unstyp.ads: Code cleanups. + +2016-05-02 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Size_Too_Small_Error): Fix the error message format. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * exp_prag.adb (Expand_attributes_In_Consequence, + Expand_Attributes): If the prefix of'Old is an unconstrained type, + for example an unconstrained formal of the enclosing subprogram, + create an object declaration with an expression to obtain the + actual subtype of the temporary. + +2016-05-02 Arnaud Charlet <charlet@adacore.com> + + * comperr.adb (Delete_SCIL_Files): Add missing handling of + N_Subprogram_Declaration. + +2016-05-02 Gary Dismukes <dismukes@adacore.com> + + * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb, + gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo + fixes. + * sem_prag.adb, sem_ch12.adb: Minor typo fixes. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The + function call may be wrapped in an explicit type conversion. + +2016-05-02 Jerome Lambourg <lambourg@adacore.com> + + * interfac.ads: use pragma No_Elaboration_Code_All. + * s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem.adb (Analyze: If node is an error node previously created + by the parser, disable expansion to prevent subsequent glitches + in error recovery. + +2016-05-02 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Alignment_Error): Removed. + (Get_Alignment_Value): Code cleanup. + +2016-05-02 Tristan Gingold <gingold@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Use Has_Protected + to check for the no local protected objects restriction. + +2016-05-02 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb Anonymous_Master now uses Node35. + (Anonymous_Master): Update the assertion and node reference. + (Set_Anonymous_Master): Update the assertion and node reference. + (Write_Field35_Name): Add output for Anonymous_Master. + (Write_Field36_Name): The output is now undefined. + * einfo.ads Update the node and description of attribute + Anonymous_Master. Remove prior occurrences in entities as this + is now a type attribute. + * exp_ch3.adb (Expand_Freeze_Array_Type): Remove local variable + Ins_Node. Anonymous access- to-controlled component types no + longer need finalization masters. The master is now built when + a related allocator is expanded. + (Expand_Freeze_Record_Type): Remove local variable Has_AACC. Do not + detect whether the record type has at least one component of anonymous + access-to- controlled type. These types no longer need finalization + masters. The master is now built when a related allocator is expanded. + * exp_ch4.adb Remove with and use clauses for Lib and Sem_Ch8. + (Current_Anonymous_Master): Removed. + (Expand_N_Allocator): Call Build_Anonymous_Master to create a + finalization master for an anonymous access-to-controlled type. + * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call): + Call routine Build_Anonymous_Master to create a finalization master + for an anonymous access-to-controlled type. + * exp_ch7.adb (Allows_Finalization_Master): New routine. + (Build_Anonymous_Master): New routine. + (Build_Finalization_Master): Remove formal parameter + For_Anonymous. Use Allows_Finalization_Master to determine whether + circumstances warrant a finalization master. This routine no + longer creates masters for anonymous access-to-controlled types. + (In_Deallocation_Instance): Removed. + * exp_ch7.ads (Build_Anonymous_Master): New routine. + (Build_Finalization_Master): Remove formal parameter For_Anonymous + and update the comment on usage. + * sem_util.adb (Get_Qualified_Name): New routines. + (Output_Name): Reimplemented. + (Output_Scope): Removed. + * sem_util.ads (Get_Qualified_Name): New routines. + +2016-05-02 Hristian Kirtchev <kirtchev@adacore.com> + + * debug.adb: Document the use of switch -gnatd.H. + * gnat1drv.adb (Adjust_Global_Switches): Set ASIS_GNSA mode when + -gnatd.H is present. + (Gnat1drv): Suppress the call to gigi when ASIS_GNSA mode is active. + * opt.ads: Add new option ASIS_GNSA_Mode. + * sem_ch13.adb (Alignment_Error): New routine. + (Analyze_Attribute_Definition_Clause): Suppress certain errors in + ASIS mode for attribute clause Alignment, Machine_Radix, Size, and + Stream_Size. + (Check_Size): Use routine Size_Too_Small_Error to + suppress certain errors in ASIS mode. + (Get_Alignment_Value): Use routine Alignment_Error to suppress certain + errors in ASIS mode. + (Size_Too_Small_Error): New routine. + +2016-05-02 Arnaud Charlet <charlet@adacore.com> + + * spark_xrefs.ads Description of the spark cross-references + clarified; small style fixes. + * lib-xref-spark_specific.adb (Add_SPARK_Scope, + Detect_And_Add_SPARK_Scope): consider protected types and bodies + as yet another scopes. + (Enclosing_Subprogram_Or_Library_Package): refactored using + Hristian's suggestions; added support for scopes of protected + types and bodies; fix for entries to return the scope of the + enclosing concurrent type, which is consistent with what is + returned for protected subprograms. + * sem_intr.adb: Minor style fix in comment. + +2016-05-02 Hristian Kirtchev <kirtchev@adacore.com> + + * lib-xref.ads, lib-xref-spark_specific.adb, get_spark_xrefs.adb, + put_spark_xrefs.adb: Minor reformatting. + +2016-05-02 Doug Rupp <rupp@adacore.com> + + * g-traceb.ads: Document traceback for ARM. + +2016-05-02 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Make_Tags): Do not generate the + external name of interface tags adding the suffix counter since + it causes problems at link time when the IP routines are inlined + across units with optimization. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * einfo.ads, einfo.adb (Predicates_Ignared): new flag to indicate + that predicate checking is disabled for predicated subtypes in + the context of an Assertion_Policy pragma. + * checks.adb (Apply_Predicate_Check): Do nothing if + Predicates_Ignored is true. + * exp_ch3.adb (Expand_Freeze_Enumeration_Type): If + Predicates_Ignores is true, the function Rep_To_Pos does raise + an exception for invalid data. + * exp_ch4.adb (Expand_N_Type_Conversion): IF target is a predicated + type do not apply check if Predicates_Ignored is true. + * exp_ch5.adb (Expand_N_Case_Statement): If Predicates_Ignored + is true, sem_prag.adb: + * sem_ch3.adb (Analyze_Object_Declaration): If Predicates_Ignored + is true do not emit predicate check on initializing expression. + +2016-05-02 Arnaud Charlet <charlet@adacore.com> + + * get_spark_xrefs.adb (Get_Nat, Get_Name): Initialize variables when + they are declared; refine type of a counter from Integer to Natural. + * sem_ch5.adb, gnatcmd.adb, s-intman-posix.adb, eval_fat.adb, + prj.adb, sem_util.adb, s-intman-android.adb, prj-nmsc.adb, sem_ch8.adb, + exp_ch3.adb: Minor editing. + +2016-05-02 Yannick Moy <moy@adacore.com> + + * a-tigeli.adb (Get_Line): Always set Last prior to returning. + +2016-05-02 Yannick Moy <moy@adacore.com> + + * lib-xref.adb: Minor style fix in whitespace of declarations. + * put_spark_xrefs.adb (Put_SPARK_Xrefs): printing of strings + refactored without loops. + * put_spark_xrefs.ads (Write_Info_Str): new formal argument of + generic procedure. + * spark_xrefs.adb (Write_Info_Str): new actual in instantiation + of generic procedure. + +2016-05-02 Arnaud Charlet <charlet@adacore.com> + + * lib-xref-spark_specific.adb (Add_SPARK_Scope): add task type scope. + (Detect_And_Add_SPARK_Scope): detect and add task type scope. + (Enclosing_Subprogram_Or_Package): Respect boundaries of task + and entry declarations. + * spark_xrefs.ads: minor typo in comment. + +2016-05-02 Arnaud Charlet <charlet@adacore.com> + + * make.adb: Minor: avoid an exception when calling gnatmake with + no argument and gnatmake is built with checks on. + * lib-xref-spark_specific.adb: Minor code cleanup. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Normalize_Actuals): Take into account extra + actuals that may have been introduced previously. Normally extra + actuals are introduced when a call is expanded, but a validity + check may copy and reanalyze a call that carries an extra actual + (e.g. an accessibility parameter) before the call itself is + marked Analzyed, and the analysis of the copy has to be able to + cope with the added actual. + +2016-05-02 Bob Duff <duff@adacore.com> + + * sem_ch10.adb (Analyze_Compilation_Unit): Preserve + treeishness. Previous version had Context_Items shared between + the spec and body. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem_aggr.adb (Resolve_Aggr_Expression): For both array and + record cases, apply predicate check on component for expression + only if expression has been analyzed already. For expressions + that need to be duplicated when they cover multiple components, + resolution and predicate checking take place later. + +2016-05-02 Olivier Hainque <hainque@adacore.com> + + * a-direct.adb (Delete_Tree): Use full names to designate subdirs + and files therein, instead of local names after a change of + current directory. + +2016-05-02 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Check_Component_Storage_Order): Get full view of + component type. + +2016-05-02 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb, freeze.adb, sem_res.adb, s-stposu.adb, repinfo.adb: + Minor reformatting. + +2016-05-02 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch4.adb (Find_Indexing_Operations): Use the underlying type + of the container base type in case the container is a subtype. + * sem_ch5.adb (Analyze_Iterator_Specification): Ensure that + the selector has an entity when checking for a component of a + mutable object. + +2016-05-02 Arnaud Charlet <charlet@adacore.com> + + Remove dead code. + * opt.ads (Latest_Ada_Only): New flag. + * sem_prag.adb, par-prag.adb: Ignore pragma Ada_xx under this flag. + * usage.adb, switch-c.adb: Disable support for -gnatxx under this flag. + * einfo.ads (Has_Predicates, Predicate_Function): + Clarify that Has_Predicates does not imply that Predicate_Function + will return a non-empty entity. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Qualified_Expression): Generate a predicate + check if type requires it. + * checks.adb (Apply_Predicate_Check): Disable checks in the + object declaration created for an expression with side-effects + that requires a predicate check to prevent infinite recursion + during expansion. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Process_Formals): Check properly the type of a + formal to determine whether a given convention applies to it. + +2016-05-02 Doug Rupp <rupp@adacore.com> + + * tracebak.c: Add incantations for arm-vxworks[67] traceback. + +2016-05-02 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Check_Component_Storage_Order): Make it a warning, not an + error, to have a component with implicit SSO within a composite type + that has explicit SSO. + +2016-05-02 Bob Duff <duff@adacore.com> + + * s-stposu.adb (Allocate_Any_Controlled): Don't lock/unlock twice. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * repinfo.adb (List_Entities): Make procedure recursive, to + provide representation information for subprograms declared + within subprogram bodies. + +2016-05-02 Arnaud Charlet <charlet@adacore.com> + + * exp_ch5.adb, layout.adb, gnatcmd.adb exp_attr.adb, make.adb, + bindgen.adb, debug.adb, exp_pakd.adb, freeze.adb, sem_util.adb, + gnatlink.adb, switch-m.adb, exp_ch4.adb, repinfo.adb, adabkend.adb, + osint.adb: Remove dead code. + +2016-05-02 Yannick Moy <moy@adacore.com> + + * a-tigeli.adb (Get_Line): Fix bound for test to + decide when to compensate for character 0 added by call to fgets. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_Allocator): If the expression does not + have a subtype indication and the type is an unconstrained tagged + type with defaulted discriminants, create an explicit constraint + for it during analysis to prevent out-of-order freezing actions + on generated classwide types. + +2016-05-02 Javier Miranda <miranda@adacore.com> + + * exp_ch5.adb (Expand_N_Assignment_Statement): + In the runtime check that ensures that the tags of source an + target match, add missing displacement of the pointer to the + objects if they cover interface types. + +2016-05-02 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Analyze_Attribute, case 'Old): Do not use + base type for attribute when type is discrete: transformation + is not needed for such types, and leads to spurious errors if + the context is a case construct. + +2016-05-02 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (elaborate_reference_1): Do not bother about + operand #2 for COMPONENT_REF. + * gcc-interface/utils2.c (gnat_save_expr): Likewise. + (gnat_protect_expr): Likewise. + (gnat_stabilize_reference_1): Likewise. + (gnat_rewrite_reference): Do not bother about operand #3 for ARRAY_REF. + (get_inner_constant_reference): Likewise. + (gnat_invariant_expr): Likewise. + * gcc-interface/trans.c (fold_constant_decl_in_expr): Likewise. + +2016-05-02 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Range_to_gnu): New static function. + (Raise_Error_to_gnu) <N_In>: Call it to translate the range. + (gnat_to_gnu) <N_In>: Likewise. + +2016-04-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in (ACATSCMD): New variable. + (check-acats): Use it. + (check_acats_targets): Likewise. + +2016-04-28 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/70786 + * a-textio.adb (Get_Immediate): Add missing 'not' in expression. + +2016-04-27 Eric Botcazou <ebotcazou@adacore.com> + + * sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged + incomplete type without full view. + * sem_ch6.adb (Exchange_Limited_Views): Change into a function and + return the list of changes. + (Restore_Limited_Views): New procedure to undo the transformation made + by Exchange_Limited_Views. + (Analyze_Subprogram_Body_Helper): Adjust call to Exchange_Limited_Views + and call Restore_Limited_Views at the end, if need be. + (Possible_Freeze): Do not delay freezing because of incomplete types. + (Process_Formals): Remove kludges for class-wide types. + * types.h (By_Copy_Return): Delete. + * gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): Move around. + (TYPE_DUMMY_IN_PROFILE_P): New macro. + * gcc-interface/gigi.h (update_profiles_with): Declare. + (finish_subprog_decl): Likewise. + (get_minimal_subprog_decl): Delete. + (create_subprog_type): Likewise. + (create_param_decl): Adjust prototype. + (create_subprog_decl): Likewise. + * gcc-interface/decl.c (defer_limited_with): Rename into... + (defer_limited_with_list): ...this. + (gnat_to_gnu_entity): Adjust to above renaming. + (finalize_from_limited_with): Likewise. + (tree_entity_vec_map): New structure. + (gt_pch_nx): New helpers. + (dummy_to_subprog_map): New hash table. + (gnat_to_gnu_param): Set the SLOC here. Remove MECH parameter and + add FIRST parameter. Deal with the mechanism here instead of... + Do not make read-only variant of types. Simplify expressions. + In the by-ref case, test the mechanism before must_pass_by_ref + and also TYPE_IS_BY_REFERENCE_P before building the reference type. + (gnat_to_gnu_subprog_type): New static function extracted from... + Do not special-case the type_annotate_only mode. Call + gnat_to_gnu_profile_type instead of gnat_to_gnu_type on return type. + Deal with dummy return types. Likewise for parameter types. Deal + with by-reference types explicitly and add a kludge for null procedures + with untagged incomplete types. Remove assertion on the types and be + prepared for multiple elaboration of the declarations. Skip the whole + CICO processing if the profile is incomplete. Handle the completion of + a previously incomplete profile. + (gnat_to_gnu_entity) <E_Variable>: Rename local variable. + Adjust couple of calls to create_param_decl. + <E_Access_Subprogram_Type, E_Anonymous_Access_Subprogram_Type>: + Remove specific deferring code. + <E_Access_Type>: Also deal with E_Subprogram_Type designated type. + Simplify handling of dummy types and remove obsolete comment. + Constify a couple of variables. Do not set TYPE_UNIVERSAL_ALIASING_P + on dummy types. + <E_Access_Subtype>: Tweak comment and simplify condition. + <E_Subprogram_Type>: ...here. Call it and clean up handling. Remove + obsolete comment and adjust call to gnat_to_gnu_param. Adjust call to + create_subprog_decl. + <E_Incomplete_Type>: Add a couple of 'const' qualifiers and get rid of + inner break statements. Tidy up condition guarding direct use of the + full view. + (get_minimal_subprog_decl): Delete. + (finalize_from_limited_with): Call update_profiles_with on dummy types + with TYPE_DUMMY_IN_PROFILE_P set. + (is_from_limited_with_of_main): Delete. + (associate_subprog_with_dummy_type): New function. + (update_profile): Likewise. + (update_profiles_with): Likewise. + (gnat_to_gnu_profile_type): Likewise. + (init_gnat_decl): Initialize dummy_to_subprog_map. + (destroy_gnat_decl): Destroy dummy_to_subprog_map. + * gcc-interface/misc.c (gnat_get_alias_set): Add guard for accessing + TYPE_UNIVERSAL_ALIASING_P. + (gnat_get_array_descr_info): Minor tweak. + * gcc-interface/trans.c (gigi): Adjust calls to create_subprog_decl. + (build_raise_check): Likewise. + (Compilation_Unit_to_gnu): Likewise. + (Identifier_to_gnu): Accept mismatches coming from a limited context. + (Attribute_to_gnu): Remove kludge for dispatch table entities. + (process_freeze_entity): Do not retrieve old definition if there is an + address clause on the entity. Call update_profiles_with on dummy types + with TYPE_DUMMY_IN_PROFILE_P set. + * gcc-interface/utils.c (build_dummy_unc_pointer_types): Also set + TYPE_REFERENCE_TO to the fat pointer type. + (create_subprog_type): Delete. + (create_param_decl): Remove READONLY parameter. + (finish_subprog_decl): New function extracted from... + (create_subprog_decl): ...here. Call it. Remove CONST_FLAG and + VOLATILE_FLAG parameters and adjust. + (update_pointer_to): Also clear TYPE_REFERENCE_TO in the unconstrained + case. + +2016-04-27 Arnaud Charlet <charlet@adacore.com> + + * aa_util.adb, aa_util.ads: Removed, no longer used. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): An object + renaming declaration resulting from the expansion of an object + declaration is a suitable context for pragma Ghost. + +2016-04-27 Doug Rupp <rupp@adacore.com> + + * init.c: Refine last checkin so the only requirement is the + signaling compilation unit is compiled with the same mode as + the compilation unit containing the initial landing pad. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Valid_Default_Iterator): Better filter of illegal + specifications for Default_Iterator, including overloaded cases + where no interpretations are legal, and return types that are + not iterator types. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch5.adb (Expand_N_Assignment_Statement): Do not install + an accessibility check when the left hand side of the assignment + denotes a container cursor. + * exp_util.ads, exp_util.adb (Find_Primitive_Operations): Removed. + * sem_ch4.adb (Find_Indexing_Operations): New routine. + (Try_Container_Indexing): Code cleanup. + +2016-04-27 Arnaud Charlet <charlet@adacore.com> + + * sem_ch10.adb, sem_case.adb: Mark messages udner -gnatwr when needed. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * errout.adb, errutil.adb: Minor reformatting. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications, case Pre/Post): + Check that the classwide version is illegal when the prefix is + an operation of an untagged synchronized type. + +2016-04-27 Arnaud Charlet <charleT@adacore.com> + + * sinput-l.ads, sem_ch13.adb: Minor editing. + +2016-04-27 Doug Rupp <rupp@adacore.com> + + * init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]: + Bump the pc so the lower order bit is set. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is + enabled, report an empty range in a case construct. + +2016-04-27 Arnaud Charlet <charlet@adacore.com> + + * sinput.ads, a-cfdlli.adb, a-crbtgo.adb, a-chtgop.adb, a-cbhama.adb, + a-rbtgbo.adb, a-crdlli.adb, a-chtgbo.adb: Minor editing. + +2016-04-27 Bob Duff <duff@adacore.com> + + * a-chtgop.adb (Adjust): Zero the tampering counts on assignment, + as is done for the other containers. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * ghost.adb (In_Subprogram_Body_Profile): New routine. + (Is_OK_Declaration): Treat an unanalyzed expression + function as an OK context. Treat a reference to a Ghost entity + as OK when it appears within the profile of a subprogram body. + +2016-04-27 Bob Duff <duff@adacore.com> + + * errout.ads: Document the fact that informational messages + don't have to be warnings. + * errout.adb (Error_Msg_Internal): In statistics counts, deal + correctly with informational messages that are not warnings. + (Error_Msg_NEL): Remove useless 'if' aroung Set_Posted, because + Set_Posted already checks for errors and ignores others. + * erroutc.adb (Prescan_Message): Set Is_Serious_Error to False + if Is_Info_Msg; the previous code was assuming that Is_Info_Msg + implies Is_Warning_Msg. + * errutil.adb (Error_Msg): In statistics counts, deal correctly + with informational messages that are not warnings. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_util.ads, sem_util.adb (Is_Null_Record_Type): New predicate + to determine whether a record type is a null record. + * sem_ch3.adb (Analyze_Object_Declaration): If the type is a + null record and there is no expression in the declaration, + no predicate check applies to the object. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch7.adb (Analyze_Package_Body_Helper): The body of an + instantiated package should not cause freezing of previous contracts. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_dim.adb (Analyze_Dimension): Handle subtype declarations + that do not come from source. + (Analyze_Dimension_Subtype_Declaration): Allow confirming + dimensions on subtype entity, either inherited from base type + or provided by aspect specification. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution): + Add scalar formal object Zero, to allow detection and report + when the matrix is singular. + * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution): + Raise Constraint_Error if the Forward_Eliminate pass has + determined that determinant is Zero.o + * s-ngrear.adb (Solve): Add actual for Zero in corresponding + instantiations. + * s-ngcoar.adb (Solve): Ditto. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb: Minor reformatting. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_dim.adb (Analyze_Dimension, case N_Identifier): Check + that identifier has a usable type before analysis, to handle + properly identifiers introduced after some lexical/syntactic + recovery that created new identifiers. + +2016-04-27 Bob Duff <duff@adacore.com> + + * a-coinve.adb, a-comutr.adb, a-conhel.adb, a-convec.adb, + exp_util.adb: Remove assertions that can fail in obscure cases when + assertions are turned on but tampering checks are turned off. + +2016-04-27 Javier Miranda <miranda@adacore.com> + + * exp_ch6.adb (Add_Call_By_Copy_Code, + Add_Simple_Call_By_Copy_Code, Expand_Actuals): Handle formals + whose type comes from the limited view. + +2016-04-27 Yannick Moy <moy@adacore.com> + + * a-textio.adb: Complete previous patch. + +2016-04-27 Yannick Moy <moy@adacore.com> + + * inline.adb (Expand_Inlined_Call): Use Cannot_Inline instead of + Error_Msg_N to issue message about impossibility to inline call, + with slight change of message. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_spark.adb (Expand_Potential_Renaming): Removed. + (Expand_SPARK): Update the call to expand a potential renaming. + (Expand_SPARK_Potential_Renaming): New routine. + * exp_spark.ads (Expand_SPARK_Potential_Renaming): New routine. + * sem.adb Add with and use clauses for Exp_SPARK. + (Analyze): Expand a non-overloaded potential renaming for SPARK. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Constrain_Discriminated_Type): In an instance, + check full view for the presence of defaulted discriminants, + even when the partial view of a private type has no visible and + no unknown discriminants. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * lib-xref.adb, exp_ch3.adb: Minor reformatting. + +2016-04-27 Nicolas Roche <roche@adacore.com> + + * rtinit.c: Add weak symbol __gnat_do_argv_expansion. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Code + cleanup. Check the original node when trying to determine the node kind + of pragma Volatile's argument to account for untagged derivations + where the type is transformed into a constrained subtype. + +2016-04-27 Olivier Hainque <hainque@adacore.com> + + * mkdir.c (__gnat_mkdir): Rework the vxworks section to use a + consistent posix interface on the caller side. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Build_Limited_View, Decorate_Type): If this + is a limited view of a type, initialize the Limited_Dependents + field to catch misuses of the type in a client unit. + +2016-04-27 Thomas Quinot <quinot@adacore.com> + + * a-strunb-shared.adb (Finalize): add missing Reference call. + * s-strhas.adb: minor grammar fix and extension of comment + * sem_ch8.adb: minor whitespace fixes + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.adb (Get_Type_Reference): Handle properly the case + of an object declaration whose type definition is a class-wide + subtype and whose expression is a function call that returns a + classwide type. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_util.ads, sem_util.adb (Output_Entity): New routine. + (Output_Name): New routine. + +2016-04-27 Bob Duff <duff@adacore.com> + + * exp_ch3.adb (Rewrite_As_Renaming): Disable previous change for now. + +2016-04-27 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: For "gnat ls -V -P", recognize switch + --unchecked-shared-lib-imports and set the flag + Opt.Unchecked_Shared_Lib_Imports accordingly. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): + A generic subprogram is never a primitive operation, and thus + a classwide condition for it is not legal. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_aggr.adb, sem_dim.adb, sem_dim.ads, einfo.adb: Minor + reformatting. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_res.adb (Flag_Effectively_Volatile_Objects): New routine. + (Resolve_Actuals): Flag effectively volatile objects with enabled + property Async_Writers or Effective_Reads as illegal. + * sem_util.adb (Is_OK_Volatile_Context): Comment reformatting. + +2016-04-27 Javier Miranda <miranda@adacore.com> + + * exp_ch3.adb (Make_Predefined_Primitive_Specs): + Do not generate the profile of the equality operator if it has + been explicitly defined as abstract in the parent type. Required + to avoid reporting an spurious error. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_dim.ads, sem_dim.adb (Check_Expression_Dimensions): New + procedure to compute the dimension vector of a scalar expression + and compare it with the dimensions if its expected subtype. Used + for the ultimate components of a multidimensional aggregate, + whose components typically are themselves aggregates that are + expanded separately. Previous to this patch, dimensionality + checking on such aggregates generated spurious errors. + * sem_aggr.adb (Resolve_Array_Aggregate): Use + Check_Expression_Dimensions when needed. + +2016-04-27 Javier Miranda <miranda@adacore.com> + + * einfo.ads, einfo.adb (Corresponding_Function): New attribute + (applicable to E_Procedure). + (Corresponding_Procedure): New attribute (applicable to E_Function). + * exp_util.adb (Build_Procedure_Form): Link the function with + its internally built proc and viceversa. + * sem_ch6.adb (Build_Subprogram_Declaration): Propagate the + attribute Rewritten_For_C and Corresponding_Procedure to the body. + * exp_ch6.adb (Rewritten_For_C_Func_Id): Removed. + (Rewritten_For_C_Proc_Id): Removed. + * exp_unst.adb (Note_Uplevel_Ref): Use the new attribute to + locate the corresponding procedure. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Export_Import): Signal that there is no + corresponding pragma. + +2016-04-27 Bob Duff <duff@adacore.com> + + * exp_ch3.adb: Minor comment improvement. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): If the + return type is an untagged limited record with only access + discriminants and no controlled components, the return value does not + need to use the secondary stack. + +2016-04-27 Javier Miranda <miranda@adacore.com> + + * exp_util.adb (Remove_Side_Effects): When + generating C code handle object declarations that have + discriminants and are initialized by means of a call to a + function. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * a-textio.adb (Get_Line function): Handle properly the case of + a line that has the same length as the buffer (or a multiple + thereof) and there is no line terminator. + * a-tigeli.adb (Get_Line procedure): Do not store an end_of_file + in the string when there is no previous line terminator and we + need at most one additional character. + +2016-04-27 Arnaud Charlet <charlet@adacore.com> + + * s-rident.ads: Make No_Implicit_Loops non partition wide. + +2016-04-27 Arnaud Charlet <charlet@adacore.com> + + * sem_ch11.adb (Analyze_Handled_Statements): check useless + assignments also in entries and task bodies, not only in + procedures and declaration blocks. + * sem_ch5.adb (Analyze_Block_Statement): check useless + assignements in declaration blocks as part of processing their + handled statement sequence, just like it was done for procedures + and now is also done for entries and task bodies. + * sem_warn.adb (Warn_On_Useless_Assignment): detect boundries + of entries and task bodies just like of procedures. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_util.adb (Is_Volatile_Function): Recognize + a function declared within a protected type as well as the + protected/unprotected version of a function. + +2016-04-27 Bob Duff <duff@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite an object + declaration of the form "X : T := Func (...);", where T is + controlled, as a renaming. + * a-strunb-shared.adb (Finalize): Set the Unbounded_String Object + to be an empty string, instead of null-ing out the Reference. + * exp_util.adb (Needs_Finalization): Remove redundant code. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.ads Aspects Export and Import do not require delay. They + were classified as delayed aspects, but treated as non-delayed + by the analysis of aspects. + * freeze.adb (Copy_Import_Pragma): New routine. + (Wrap_Imported_Subprogram): Copy the import pragma by first + resetting all semantic fields to avoid an infinite loop when + performing the copy. + * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Add + comment on the processing of aspects Export and Import + at the freeze point. + (Analyze_Aspect_Convention: New routine. + (Analyze_Aspect_Export_Import): New routine. + (Analyze_Aspect_External_Link_Name): New routine. + (Analyze_Aspect_External_Or_Link_Name): Removed. + (Analyze_Aspect_Specifications): Factor out the analysis of + aspects Convention, Export, External_Name, Import, and Link_Name + in their respective routines. Aspects Export and Import should + not generate a Boolean pragma because their corresponding pragmas + have a very different syntax. + (Build_Export_Import_Pragma): New routine. + (Get_Interfacing_Aspects): New routine. + +2016-04-27 Eric Botcazou <ebotcazou@adacore.com> + + * inline.adb (Add_Inlined_Body): Overhaul implementation, + robustify handling of -gnatn1, add special treatment for + expression functions. + +2016-04-27 Doug Rupp <rupp@adacore.com> + + * g-traceb.ads: Update comment. + * exp_ch2.adb: minor style fix in object declaration + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_elab.adb (Check_Internal_Call): Do not + consider a call when it appears within pragma Initial_Condition + since the pragma is part of the elaboration statements of a + package body and may only call external subprograms or subprograms + whose body is already available. + (Within_Initial_Condition): New routine. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * exp_util.adb (Build_Procedure_Form): Prevent double generation + of the procedure form when dealing with an expression function + whose return type is an array. + * sem_ch3.adb: Fix out-of order Has_Predicates setting. + * exp_ch6.adb: Proper conversion for inherited operation in C. + * sem_ch6.adb: Code cleanup. + +2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> + + * lib-xref.ads, sem_ch10.adb: minor style fix in comment + * g-socket.adb: Minor reformatting. + * sinfo.ads: Minor comment correction. + * sem_warn.ads: minor grammar fix in comment + +2016-04-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (gnat_to_gnu_entity): Adjust prototype. + (maybe_pad_type): Adjust comment. + (finish_record_type): Likewise. + (rest_of_record_type_compilation): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity): Change DEFINITION type + parameter from integer to boolean. Adjust recursive calls. + <E_Subprogram_Type>: Use copy_type and remove redundant assignments. + <E_Signed_Integer_Subtype>: Adjust comment. Remove call to + rest_of_record_type_compilation. Set TYPE_PADDING_P flag earlier. + Pass false to finish_record_type. Set the debug type later. + <E_Record_Subtype>: Remove call to rest_of_record_type_compilation. + (gnat_to_gnu_component_type): Fix formatting. + (gnat_to_gnu_field_decl): Adjust call to gnat_to_gnu_entity. + (gnat_to_gnu_type): Likewise. + * gcc-interface/trans.c (Identifier_to_gnu): Likewise. + (Loop_Statement_to_gnu): Likewise. + (Subprogram_Body_to_gnu): Likewise. + (Exception_Handler_to_gnu_fe_sjlj): Likewise. + (Exception_Handler_to_gnu_gcc): Likewise. + (Compilation_Unit_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + (push_exception_label_stack): Likewise. + (elaborate_all_entities_for_package): Likewise. + (process_freeze_entity): Likewise. + (process_decls): Likewise. + (process_type): Likewise. + * gcc-interface/utils.c (struct deferred_decl_context_node): Tweak. + (maybe_pad_type): Adjust comments. Set the debug type later. Remove + call to rest_of_record_type_compilation. + (rest_of_record_type_compilation): Use copy_type. + (copy_type): Use correctly typed constants. + (gnat_signed_or_unsigned_type_for): Use copy_type. + * gcc-interface/utils2.c (nonbinary_modular_operation): Likewise. + (build_goto_raise): Adjust call tognat_to_gnu_entity. + +2016-04-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/misc.c (gnat_init): Do not call + internal_reference_types. + +2016-04-27 Svante Signell <svante.signell@gmail.com> + + * gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb. + * s-osinte-gnu.ads: Small tweaks. + * s-osinte-gnu.adb: New file. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Match_Constituent): Treat a constant as a legal + constituent even if it is not to prevent spurious errors. + +2016-04-21 Gary Dismukes <dismukes@adacore.com> + + * sem_ch4.adb: Minor typo fixes and reformatting. + +2016-04-21 Dmitriy Anisimkov <anisimko@adacore.com> + + * g-calend.ads (No_Time): The same value in any timezone. + * g-socket.adb (Raise_Host_Error): Remove ending + dot from original error message before append colon delimited + host name. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb: Code cleanup. + * sem_ch6.adb: Code cleanup. + (Is_Matching_Limited_View): New routine. + (Matches_Limited_With_View): Reimplemented. + * sem_ch10.adb (Decorate_Type): Code cleanup. + +2016-04-21 Doug Rupp <rupp@adacore.com> + + * tracebak.c (PPC ELF): Add macro defs for lynxos178e. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Try_Container_Indexing): If there are overloaded + indexing functions, collect all overloadings of the call firts, + and then transfer them to indexing node, to prevent interleaving + of the set of interpretations of the nodes involved. + * sem_res.adb (Resolve): Suppress cascaded errors that report + ambiguities when one of the actuals in an overloaded generatlized + indexing operation is illegal and has type Any_Type, as is done + for similar cascaded errors in subprogram calls. + (Valid_Tagged_Conversion): Cleanup conversion checks when one + of the types involved is a class-wide subtype. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Load_Parent_Of_Generic): When looking for the + subprogram declaration within a wrapper package, skip pragmas + that may have been generated by aspect specifications on the + generic instance. + +2016-04-21 Javier Miranda <miranda@adacore.com> + + * exp_aggr.adb (Component_Not_OK_For_Backend): Generating C + code return True for array identifiers since the backend needs + to initialize such component by means of memcpy(). + +2016-04-21 Arnaud Charlet <charlet@adacore.com> + + * a-tasatt.adb, a-tasatt.ads (Fast_Path): Rewritten to avoid reading + potentially uninitialized memory. + * sem_ch3.adb: Minor style fix in comment. + +2016-04-21 Arnaud Charlet <charlet@adacore.com> + + * gnat_rm.texi, gnat_ugn.texi, + doc/gnat_ugn/gnat_project_manager.rst, + doc/gnat_ugn/building_executable_programs_with_gnat.rst, + doc/gnat_ugn/gnat_and_program_execution.rst, + doc/gnat_ugn/gnat_utility_programs.rst, + doc/gnat_ugn/the_gnat_compilation_model.rst, + doc/gnat_rm/implementation_defined_attributes.rst, + doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, + doc/gnat_rm/implementation_defined_pragmas.rst, + doc/gnat_rm/the_gnat_library.rst, + doc/gnat_rm/implementation_defined_aspects.rst: Update doc. + * doc/Makefile: Cleanups. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_pakd.adb, sem_ch13.adb: Minor reformatting. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * exp_dbug.adb, exp_dbug.ads (Qualify_Entity_Name): Add suffixes to + disambiguate local variables that may be hidden from inner visibility + by nested block declarations or loop variables. + +2016-04-21 Jerome Lambourg <lambourg@adacore.com> + + * s-soflin.adb: Initialize the Stack_Limit global variable. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * lib-writ.adb: Minor reformatting. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * exp_pakd.adb (Compute_Number_Components): New function to + build an expression that computes the number of a components of + an array that may be multidimensional. + (Expan_Packed_Eq): Use it. + +2016-04-21 Arnaud Charlet <charlet@adacore.com> + + * g-traceb.ads: Update list of supported platforms. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Add_Predicates): if the type is declared in + an inner package it may be frozen outside of the package, and + the generated pragma has not been analyzed yet, the expression + for the predicate must be captured and added to the predicate + function at this point. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * contracts.adb (Analyze_Package_Body_Contract): Do not check + for a missing package refinement because 1) packages do not have + "refinement" and 2) the check for proper state refinement is + performed in a different place. + * einfo.adb (Has_Non_Null_Visible_Refinement): Reimplemented. + (Has_Null_Visible_Refinement): Reimplemented. + * sem_ch3.adb (Analyze_Declarations): Determine whether all + abstract states have received a refinement and if not, emit + errors. + * sem_ch7.adb (Analyze_Package_Declaration): Code + cleanup. Determine whether all abstract states of the + package and any nested packages have received a refinement + and if not, emit errors. + (Requires_Completion_In_Body): Add new formal parameter + Do_Abstract_States. Update the comment on usage. Propagate the + Do_Abstract_States flag to all Unit_Requires_Body calls. + (Unit_Requires_Body): Remove formal + parameter Ignore_Abstract_States. Add new formal paramter + Do_Abstract_States. Propagate the Do_Abstract_States flag to + all Requires_Completion_In calls. + * sem_ch7.ads (Unit_Requires_Body): Remove formal + parameter Ignore_Abstract_States. Add new formal paramter + Do_Abstract_States. Update the comment on usage. + * sem_ch9.adb (Analyze_Single_Protected_Declaration): Do + not initialize the constituent list as this is now done on a + need-to-add-element basis. + (Analyze_Single_Task_Declaration): + Do not initialize the constituent list as this is now done on + a need-to-add-element basis. + * sem_ch10.adb (Decorate_State): Do not initialize the constituent + lists as this is now done on a need-to-add-element basis. + * sem_prag.adb (Analyze_Constituent): Set the + refinement constituents when adding a new element. + (Analyze_Part_Of_In_Decl_Part): Set the Part_Of constituents when + adding a new element. + (Analyze_Part_Of_Option): Set the Part_Of + constituents when adding a new element. + (Analyze_Pragma): Set the Part_Of constituents when adding a new + element. + (Check_Constituent_Usage (all versions)): Reimplemented. + (Collect_Constituent): Set the refinement constituents when adding + a new element. + (Create_Abstract_State): Do not initialize the + constituent lists as this is now done on a need-to-add-element basis. + (Propagate_Part_Of): Set the Part_Of constituents when + adding a new element. + * sem_util.adb (Check_State_Refinements): New routine. + (Has_Non_Null_Refinement): Reimplemented. + (Has_Null_Refinement): Reimplemented. + (Requires_State_Refinement): Removed. + * sem_util.ads (Check_State_Refinements): New routine. + (Requires_State_Refinement): Removed. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * lib-writ.adb, sem_ch6.adb: Minor reformatting and code cleanup. + * sem.adb: Fix comment. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype + declaration with no aspects, whose subtype_mark is a subtype + with predicates, inherits the list of subprograms for the type. + +2016-04-21 Arnaud Charlet <charlet@adacore.com> + + * exp_aggr.adb (Has_Per_Object_Constraint): Refine previous + change. + +2016-04-21 Thomas Quinot <quinot@adacore.com> + + * g-socket.adb (Raise_Host_Error): Include additional Name parameter. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * lib-writ.adb (Write_ALI): Do not record in ali file units + that are present in the files table but not analyzed. These + units are present because they appear in the context of units + named in limited_with clauses, and the unit being compiled does + not depend semantically on them. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Simplify code to + create the procedure body for an function returning an array type, + when generating C code. Reuse the subprogram body rather than + creating a new one, both as an efficiency measure and because + in an instance the body may contain global references that must + be preserved. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb, exp_attr.adb, exp_ch6.adb, exp_aggr.adb: Minor + reformatting. + +2016-04-21 Javier Miranda <miranda@adacore.com> + + * exp_aggr.adb (Component_Check): Extend + the check that verifies that the aggregate has no function + calls to handle transformations performed by the frontend. + (Ultimate_Original_Expression): New subprogram. + +2016-04-21 Philippe Gil <gil@adacore.com> + + * krunch.adb (Krunch): Fix krunching of i-java. + +2016-04-21 Arnaud Charlet <charlet@adacore.com> + + * exp_ch8.adb (Evaluation_Required): Always return + True when Modify_Tree_For_C. + +2016-04-21 Eric Botcazou <ebotcazou@adacore.com> + + * gnatlink.adb (Gnatlink): Robustify detection of Windows target. + * alloc.ads: Minor comment fixes. + * einfo.ads: Fix typo. + +2016-04-21 Arnaud Charlet <charlet@adacore.com> + + * exp_aggr.adb (Component_Not_OK_For_Backend): Redo previous + changes to handle all cases of components depending on the + discriminant, not just string literals. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Subtype_Declaration): If the subtype + declaration is the generated declaration for a generic actual, + inherit predicates from the actual if it is a predicated subtype. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Rewrite_Function_Call_For_C): If the function is + inherited and its result is controlling, introduce a conversion + on the actual for the corresponding procedure call, to avoid + spurious type errors. + +2016-04-21 Jerome Lambourg <lambourg@adacore.com> + + * krunch.adb (Krunch): Fix krunching of i-vxworks. + +2016-04-21 Gary Dismukes <dismukes@adacore.com> + + * exp_aggr.adb: Minor reformatting and code cleanup. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Resolve_Name): Omit quantified expressions from + resolution, because they introduce local names. Full resolution + will take place when predicate function is constructed. + +2016-04-21 Arnaud Charlet <charlet@adacore.com> + + * exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous + change to take into account Per_Object_Constraint field rather + than special casing strings. + * exp_ch6.adb: Fix typo in Replace_Returns. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch5.adb: Minor reformatting. + +2016-04-21 Arnaud Charlet <charlet@adacore.com> + + * exp_aggr.adb (Backend_Processing_Possible): Return False + when generating C and aggregate contains function calls. + +2016-04-21 Tristan Gingold <gingold@adacore.com> + + * krunch.adb (Krunch): Only partially krunch children of + Interfaces that aren't known. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Make_Inline): Handle properly the instantiation + of a generic subpprogram that carries an Inline aspect. Place + inline info on the anonymous subprogram that is constructed in + the wrapper package. + (Analyze_Pragma, case Pure): Do not check placement if pragma + appears within an instantiation, which can be nested at any level. + * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not copy Freeze + node from anonymous subprogram to its visible renaming. The + freeze node will be constructed if the subprogram carries + delayed aspects. + (Set_Global): Preserve dimension information if present (from + code reading). + +2016-04-21 Vasiliy Fofanov <fofanov@adacore.com> + + * gnatlink.adb: Change wording of the warning message on + problematic filenames to be more neutral. Add a new substring + "patch" introduced on Windows 10. + +2016-04-21 Philippe Gil <gil@adacore.com> + + * tracebak.c (__gnat_backtrace): handle bad RIP values (win64 only) + +2016-04-21 Javier Miranda <miranda@adacore.com> + + * exp_aggr.adb (Component_Not_OK_For_Backend): Return true for string + literals. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb (Has_Non_Null_Abstract_State): New routine. + * einfo.ads New synthesized attribute + Has_Non_Null_Abstract_State along with occurrences in entities. + (Has_Non_Null_Abstract_State): New routine. + * sem_ch7.adb (Unit_Requires_Body): Add local variable + Requires_Body. A package declaring an abstract state requires + a body only when the state is non-null and the package contains + at least one other construct that requires completion in a body. + * sem_util.adb (Mode_Is_Off): Removed. + (Requires_State_Refinement): Remove an obsolete check. Code + cleanup. + +2016-04-21 Bob Duff <duff@adacore.com> + + * sem_attr.adb (Analyze_Attribute): In processing + the 'Old attribute, a warning is given for infinite recursion. Fix + the code to not crash when the prefix of 'Old denotes a protected + function. + * sem_ch5.adb (Analyze_Iterator_Specification): + Avoid calling Is_Dependent_Component_Of_Mutable_Object in cases + where the parameter would not be an object. + +2016-04-21 Eric Botcazou <ebotcazou@adacore.com> + + * sem_eval.adb (Compile_Time_Compare): Be prepared for an empty + Etype or Underlying_Type of the operands. + +2016-04-21 Eric Botcazou <ebotcazou@adacore.com> + + * atree.adb (Print_Statistics): Protect against overflows and + print the memory consumption in bytes. + * table.adb (Reallocate): Do the intermediate calculation of the new + size using the Memory.size_t type. + +2016-04-21 Gary Dismukes <dismukes@adacore.com> + + * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Suppress + expansion of Attribute_Machine and Attribute_Model for AAMP. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb: Disable previous change for now. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Find_Selected_Component): If prefix has an + access type and designated type is a limited view, introduce + an explicit dereference before continuing the analysis, and + set its type to the non-limited view of the designated type, + if we are in context where it is available. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb: Freeze profile in ASIS mode. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_aux.ads, sem_aux.adb (Has_Rep_Item): New variant. + * sem_util.adb (Inherit_Rep_Item_Chain): Reimplemented. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch6.adb: Minor reformatting. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb: Minor comment update. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * freeze.ads, freeze.adb (Freeze_Entity, Freeze_Before): Add + boolean parameter to determine whether freezing an overloadable + entity freezes its profile as well. This is required by + AI05-019. The call to Freeze_Profile within Freeze_Entity is + conditioned by the value of this flag, whose default is True. + * sem_attr.adb (Resolve_Attribute, case 'Access): The attribute + reference freezes the prefix, but it the prefix is a subprogram + it does not freeze its profile. + +2016-04-21 Javier Miranda <miranda@adacore.com> + + * exp_util.adb (Build_Procedure_Form): No action needed for + subprogram renamings since the backend can generate the call + using the renamed subprogram. This leaves the tree more clean + to the backend. + * exp_ch6.adb (Expand_Call): Extend previous patch for + rewritten-for-c entities to handle subprogram renamings. + (Rewrite_Function_Call_For_C): Handle subprogram renamings. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb: Code cleanup. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is + created for SPARK_To_C, the entity must remain invisible so it + does not overload subsequent references to the original function. + * exp_ch6.adb (Build_Procedure_Body_Form, Replace_Returns): + Handle Extended_Return_Statements by replacing it with a block + with assignments and a simple return statement. + * exp_util.adb (Build_Procedure_Form): Make procedure entity + invisible after analyzing declaration, to prevent improper + overloading. + +2016-04-21 Javier Miranda <miranda@adacore.com> + + * sem_ch6.adb (Build_Subprogram_Declaration): Propagate the + attribute Rewritten_For_C to the body since since the expander + may generate calls using that entity. + * exp_ch6.adb (Expand_Call): For internally generated + calls ensure that they reference the entity of the spec + of the called function. + (Rewritten_For_C_Func_Id): New subprogram. + (Rewritten_For_C_Proc_Id): New subprogram. + (Rewrite_Function_Call_For_C): Invoke the new subprogram to + ensure that we skip freezing entities. + * exp_util.adb (Build_Procedure_Form): No action needed if the + procedure was already built. + +2016-04-21 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb, exp_util.adb, sem_ch13.adb, exp_unst.adb: Minor + reformatting. + +2016-04-21 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Denotes_Iterator): Use root type to determine + whether the ultimate ancestor is the predefined iterator + interface pakage. + * exp_ch5.adb (Expand_Iterator_Over_Container): simplify code + and avoid reuse of Pack local variable. + +2016-04-21 Olivier Hainque <hainque@adacore.com> + + * system-vxworks-arm.ads, system-vxworks-sparcv9.ads, + system-vxworks-ppc.ads, system-vxworks-m68k.ads, + system-vxworks-mips.ads, system-vxworks-x86.ads: Define + Executable_Extension to ".out". + +2016-04-21 Javier Miranda <miranda@adacore.com> + + * frontend.adb: Update call to Unnest_Subprograms. + * exp_ch6.ads, exp_ch6.adb, exp_unst.ads, exp_unst.adb + (Unnest_Subprograms): Moved to package exp_unst. + * exp_unst.ads (Unnest_Subprogram): Moved to the body of the + package. + * exp_dbug.adb (Qualify_Entity_Name): Enable qualification of + enumeration literals when generating C code. + +2016-04-21 Javier Miranda <miranda@adacore.com> + + * frontend.adb: Remove call to initialize Exp_Ch6. + * exp_ch6.ads, exp_ch6.adb (Initialize): removed. + (Unest_Entry/Unest_Bodies): Removed. + (Unnest_Subprograms): Code cleanup. + +2016-04-21 Arnaud Charlet <charlet@adacore.com> + + * set_targ.adb (Read_Target_Dependent_Values): + close target description file once its contents is read. + * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File + and Stderr_File): Close local file descriptors before spawning + child process. + * exp_util.adb (Containing_Package_With_Ext_Axioms): Limit scope of + local variables to make the code easier to understand and avoid + duplicated calls to Parent and Generic_Parent. + +2016-04-20 Bob Duff <duff@adacore.com> + + * s-os_lib.ads: Minor comment fix. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_N_Assignment_Statement): Do no generate + a discriminant check for a type whose partial view has unknown + discriminants when the full view has discriminants with defaults. + +2016-04-20 Javier Miranda <miranda@adacore.com> + + * exp_util.adb (Remove_Side_Effects): When generating C code + remove side effect of type conversion of access to unconstrained + array type. + (Side_Effect_Free): Return false for the type + conversion of access to unconstrained array type when generating + C code. + * sem_res.adb (Resolved_Type_Conversion): Remove side effects + of access to unconstrained array type conversion when generating + C code. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Build_Predicate_Function_Declaration): New + function, to construct the declaration of a predicate function + at the end of the current declarative part rather than at the + (possibly later) freeze point of the type. This also allows uses + of a type with predicates in instantiations elsewhere. + (Resolve_Aspect_Expression): New procedure to detect visiblity + errors in aspect expressions, at the end of the declarative part + that includes the type declaration. + * sem_ch3.adb (Complete_Private_Subtype): Propagate properly the + predicate function from private to full view. + * einfo.adb (Predicate_Function): Refine search for predicate + function when type has a full view and predicate function may + be defined on either view. + +2016-04-20 Javier Miranda <miranda@adacore.com> + + * frontend.adb: Passing the root of the tree to + Unnest_Subprograms(). + * exp_ch6.adb (Expand_N_Subprogram_Body): Remove code that + took care of adding subprograms to the Unest_Bodies table since + performing such action too early disables the ability to process + generic instantiations. + (Unnest_Subprograms): Adding parameter. + (Search_Unnesting_Subprograms): New subprogram. + * exp_ch6.ads (Unnest_Subrograms): Update documentation. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb, freeze.adb, sem_util.adb: Minor reformatting. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * exp_unst.adb (Check_Static_Type): For a private type, check + full view. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Check_Type): Reject an attribute reference in + an aspect expression, when the prefix of the reference is the + current instance of the type to which the aspect applies. + +2016-04-20 Bob Duff <duff@adacore.com> + + * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about + hiding unless we're actually hiding something. The previous + code would (for example) warn about a "<" on a record type + because it incorrectly thought it was hiding the "<" on Boolean + in Standard. We need to check that the homonym S is in fact a + homograph of a predefined operator. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * exp_util.ads, exp_util.adb (Build_Procedure_Form): Moved here + from exp_ch6.adb, for use in SPARK_To_C mode when creating the + procedure equivalent to a function returning an array, when this + construction is deferred to the freeze point of the function. + * sem_util.adb (Is_Unchecked_Conversion_Instance): Include a + function that renames an instance of Unchecked_Conversion. + * freeze.adb (Freeze_Subprogram): Generate the proper procedure + declaration for a function returning an array. + * exp_ch6.adb (Build_Procedure_Form): Moved to exp_util. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_util.ads, sem_util.adb (Is_Expanded_Priority_Attribute): + New predicate to determine that in a context with full run-time, + a function call is an expansion of a reference to attribute + Priority. + * sem_ch5.adb (Analyze_Function_Call): use it. + * exp_ch5.adb (Expand_N_Subprogram_Call): use it. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb Flag286 is now used as Is_Exception_Handler. + (Is_Exception_Handler): New routine. + (Set_Is_Exception_Handler): New routine. + (Write_Entity_Flags): Output the status of Is_Exception_Handler. + * einfo.ads New attribute Is_Exception_Handler along with + occurrences in entities. + (Is_Exception_Handler): New routine along with pragma Inline. + (Set_Is_Exception_Handler): New routine along with pragma Inline. + * exp_ch7.adb (Make_Transient_Block): Ignore blocks generated + for exception handlers with a choice parameter. + * sem_ch11.adb (Analyze_Exception_Handlers): Mark the scope + generated for a choice parameter as an exception handler. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Build_Derived_Access_Type): Remove dead code. + (Constrain_Discriminated_Type): In an instance, if the type has + unknown discriminants, use its full view. + (Process_Subtype): Check that the base type is private before + adding subtype to Private_Dependents list. + +2016-04-20 Bob Duff <duff@adacore.com> + + * sem_ch13.adb: Minor comment fix. + +2016-04-20 Yannick Moy <moy@adacore.com> + + * sem_ch4.adb: Fix typos in comments. + * sem_res.adb (Resolve_Case_Expression): Fix type of case alternatives. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_Selected_Component): A reference to the + current instance of a task type is legal if the prefix is an + expression of that task type and the selector is an entry or + entry family. + +2016-04-20 Arnaud Charlet <charlet@adacore.com> + + * a-cfdlli.ads (List): Type is no longer tagged, not needed. Move + varsize field at the end for efficiency. + +2016-04-20 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: Do not invoke gprls when the invocation of "gnat + ls" includes the switch -V. + * clean.adb: "<target>-gnatclean -P" now calls "gprclean + --target=<target>" + * make.adb: "<target>-gnatmake -P" now calls "gprbuild + --target=<target>" + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb (Qualify_Type): Do not perform + partial qualification when the immediate scope is a generic unit. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_unst.adb: Minor reformatting. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Expand_Allocator_Expression): Ensure that the + tag assignment and adjustment preceed the accessibility check. + * exp_ch7.adb (Is_Subprogram_Call): Reimplemented. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_prag.adb (Expand_Attributes): Ensure that + the temporary used to capture the value of attribute 'Old's + prefix is properly initialized. + +2016-04-20 Javier Miranda <miranda@adacore.com> + + * exp_unst.ads, exp_unst.adb (Get_Level, Subp_Index): Moved to library + level. + +2016-04-20 Arnaud Charlet <charlet@adacore.com> + + * sem_ch9.adb (Analyze_Task_Type_Declaration): Shut down warning + in codepeer mode. + +2016-04-20 Vincent Celier <celier@adacore.com> + + * make.adb: Code cleanup. + +2016-04-20 Arnaud Charlet <charlet@adacore.com> + + * exp_ch4.adb (Expand_Allocator_Expression): Help C code + generation. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb (Copy_Generic_Node): Handle the special + qualification installed for universal literals that act as + operands in binary or unary operators. (Qualify_Operand): Mark + the qualification to signal the instantiation mechanism how to + handle global reference propagation. + * sinfo.adb (Is_Qualified_Universal_Literal): New routine. + (Set_Is_Qualified_Universal_Literal): New routine. + * sinfo.ads New attribute Is_Qualified_Universal_Literal along + with occurrences in nodes. + (Is_Qualified_Universal_Literal): + New routine along with pragma Inline. + (Set_Is_Qualified_Universal_Literal): New routine along with + pragma Inline. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem.adb (Do_Analyze): Save and restore Style_Max_Line_Length + so that the corresponding checks are preserved across compilations + that include System.Constants in their context. + +2016-04-20 Gary Dismukes <dismukes@adacore.com> + + * sem_type.adb: Minor typo fix and reformatting. + * a-conhel.ads: Update comment. + +2016-04-20 Bob Duff <duff@adacore.com> + + * a-cihama.adb, a-cihase.adb, a-coinve.adb (Copy): Rewrite the + code so it doesn't trigger an "uninit var" warning. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_attr.ads Add new table Universal_Type_Attribute. + * sem_util.adb (Yields_Universal_Type): Use a table lookup when + checking attributes. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Init_Stored_Discriminants, + Init_Visible_Discriminants): New procedures, subsidiary of + Build_Record_Aggr_Code, to handle properly the construction + of aggregates for a derived type that constrains some parent + discriminants and renames others. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb (Qualify_Universal_Operands): New routine. + (Save_References_In_Operator): Add explicit qualifications in + the generic template for all operands of universal type. + * sem_type.adb (Disambiguate): Update the call to Matches. + (Matches): Reimplemented. + * sem_util.ads, sem_util.adb (Yields_Universal_Type): New routine. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Rep_Item_Too_Late): Better error message for + an illegal aspect that freezes the entity to which it applies. + +2016-04-20 Bob Duff <duff@adacore.com> + + * a-stwibo.ads, a-stzbou.ads + ("="): Add overriding keyword before function to avoid crash when + compiler is called with -gnatyO (check overriding indicators). + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Check_Policy): If this + is a configuration pragma and it uses the ARG syntax, insert + the rewritten pragma after the current one rather than using + Insert_Actions. + +2016-04-20 Arnaud Charlet <charlet@adacore.com> + + * exp_aggr.adb (Backend_Processing_Possible): Add handling of + C back-end. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb, + s-imglli.adb: Minor reformatting. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the + renamed operator when the associated node appears within a + pre/postcondition. + * sem_util.ads, sem_util.adb (In_Pre_Post_Condition): New routine. + +2016-04-20 Yannick Moy <moy@adacore.com> + + * osint.adb (Relocate_Path): Fix test when Path is shorter than Prefix. + * einfo.adb (Set_Overridden_Operation): Add assertion. + * sem_util.adb (Unique_Entity): for renaming-as-body return the spec + entity. + +2016-04-20 Javier Miranda <miranda@adacore.com> + + * exp_unst.adb (Append_Unique_Call): New subprogram. + (Unnest_Subprogram): Replace the unique occurrence + of Call.Append() by Append_Unique_Call() which protects us from + adding to the Calls table duplicated entries. + +2016-04-20 Arnaud Charlet <charlet@adacore.com> + + * exp_attr.adb (Is_GCC_Target): Fix for C backend. + * xref_lib.ads (Dependencies_Tables): instantiate + Table package with types that guarantee its safe use. + * s-imgllu.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Avoid nested + procedures. + +2016-04-20 Arnaud Charlet <charlet@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): + Disable expansion when generating C code. + * sinfo.ads, inline.ads: Minor editing. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_util.adb, contracts.adb, ghost.adb, exp_ch6.adb: Minor + reformatting. + +2016-04-20 Javier Miranda <miranda@adacore.com> + + * contracts.adb (Build_Postconditions_Procedure): Code cleanup. + * ghost.adb (Os_OK_Ghost_Context.Is_OK_Declaration): Handle the + declaration of the internally built _postcondition procedure. + +2016-04-20 Arnaud Charlet <charlet@adacore.com> + + * snames.ads-tmpl (Internal_Attribute_Id, Attribute_Class_Array): Fix + indentation. + * sem_util.adb (Is_Unchecked_Conversion_Instance): + defense against library-level renamings of other functions, + which are never instances of Unchecked_Conversion. + * einfo.ads: minor fix of casing in comment + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Expand_N_Subprogram_Stub): Do not expand a body + that has been analyzed and expanded already. Qualify the names + in the proper body for use in the generation of C code. + +2016-04-20 Javier Miranda <miranda@adacore.com> + + * contracts.adb (Build_Postconditions_Procedure): Force its + inlining when generating C code. + * sem_attr.adb (Analyze_Attribute_Old_Result): Handle inlined + _postconditions when generating C code. + * exp_ch6.adb (Inlined_Subprogram): Inline calls to + _postconditions when generating C code. + * sinfo.ads, sinfo.adb (Corresponding_Spec, Set_Corresponding_Spec): + types of return value and argument changed from Node_Id to + Entity_Id. + +2016-04-20 Vincent Celier <celier@adacore.com> + + * make.adb, clean.adb, gnatname.adb: Revert previous change for now. + +2016-04-20 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset + the Has_Delayed_Freeze flag on the anonymous instance node. + +2016-04-20 Javier Miranda <miranda@adacore.com> + + * sem_ch5.adb (Analyze_Iterator_Specification): Remove transient + scope associated with the renaming object declaration. + * exp_util.adb (Insert_Actions): Remove handling of iterator + loop marked as requiring the secondary stack. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Analyze_Attribute, case 'Image): Implement + AI12-0124, which extends the functionality of the attribute so it + reflects the semantics of GNAT 'Img when applied to scalar types. + * lib-xref.adb: minor whitespace layout fix. + +2016-04-20 Vincent Celier <celier@adacore.com> + + * clean.adb (Gnatclean): Fail if project file specified and + gprclean is not available. + * gnatname.adb: Fail is -P is used and gprname is not available. + * make.adb (Initialize): Fail if project file specified and + gprbuild is not available. + +2016-04-20 Bob Duff <duff@adacore.com> + + * sem_ch5.adb (Analyze_Iterator_Specification): Do not use secondary + stack when possible. + +2016-04-20 Gary Dismukes <dismukes@adacore.com> + + * par_sco.adb, sem_util.adb, sem_ch13.adb: Minor typo corrections and + reformatting. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool): + If the pragma comes from an aspect specification, verify that + the aspect applies to an entity with a declarative part. + * exp_ch5.adb: Code cleanup. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_If_Expression): If first expression is + universal, resolve subsequent ones with the corresponding class + type (Any_Integer or Any_Real). + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb (Analyze_Iterator_Specification): If expansion is + disabled, complete the analysis of the iterator name to ensure + that reference for entities within are properly generated. + +2016-04-20 Arnaud Charlet <charlet@adacore.com> + + * a-dispat.ads (Yield): add Global contract. + * a-calend.ads, a-reatim.ads: Added Initializes => Clock_Time. + * a-taside.adb: Added Initializes => Tasking_State. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Build_Invariant_Procedure): + Reimplement the invariant procedure spec and body insertion. + +2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Add_Invariant): Do not replace + the saved expression of an invariatn aspect when inheriting + a class-wide type invariant as this clobbers the existing + expression. Do not use New_Copy_List as it is unnecessary + and leaves the parent pointers referencing the wrong part of + the tree. Do not replace the type references for ASIS when + inheriting a class-wide type invariant as this clobbers the + existing replacement. + +2016-04-20 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Build_Explicit_Dereference): If the designated + expression is an entity name, generate reference to the entity + because it will not be resolved again. + +2016-04-19 Arnaud Charlet <charlet@adacore.com> + + * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, + gnat_rm.texi: Update documentation. + +2016-04-19 Olivier Hainque <hainque@adacore.com> + + * par_sco.adb (Traverse_One, case N_Case_Statement): + Skip pragmas before the first alternative. + (Traverse_Handled_Statement_Sequence, Exception_Handlers): Likewise. + +2016-04-19 Tristan Gingold <gingold@adacore.com> + + * adaint.c (__gnat_lwp_self): New function (for darwin). + * s-osinte-darwin.ads, s-osinte-darwin.adb (lwp_self): Import + of __gnat_lwp_self. + +2016-04-19 Olivier Hainque <hainque@adacore.com> + + * sem_util.adb (Build_Elaboration_Entity): Always request an + elab counter when preserving control-flow. + +2016-04-19 Olivier Hainque <hainque@adacore.com> + + * sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set + Needs_Debug_Info when producing SCOs. + * par_sco.adb (Traverse_Aspects): Fix categorization of + Type_Invariant to match actual processing as activated depending + on pragma Assertion_Policy. + * sem_prag.adb (Analyze_Pragma): Remove special case for + Name_Invariant regarding SCO generation, which completely disabled + the production of SCOs for Invariant pragmas and aspects. + +2016-04-19 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor + reformatting. + +2016-04-19 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Profile): Refine predicate that checks + whether a function that returns a limited view is declared in + another unit and cannot be frozen at this point. + +2016-04-19 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Component_Count): Handle properly superflat + arrays, i.e. empty arrays where Hi < Lo - 1, to ensure that the + return value of the function is Natural, rather than leaving + the handling of such arrays to the caller of this function. + +2016-04-19 Arnaud Charlet <charlet@adacore.com> + + * sem_prag.adb, sem_attr.adb, par-prag.adb, exp_aggr.adb, sem_type.adb + sem_ch12.adb, sem_ch3.adb, exp_ch7.adb, exp_ch9.adb: Code cleanup. + * sem_res.adb, sem_util.ads, sem_util.adb (Is_OK_Volatile_Context): + Promoted from being a nested subprogram in Sem_Res.Resolve_Entity_Name + to publicly visible routine in Sem_Util. + +2016-04-19 Ed Schonberg <schonberg@adacore.com> + + * checks.adb (Apply_Parameter_Aliasing_Checks): Do not apply + the check if the type of the actual is By_Reference. + +2016-04-19 Arnaud Charlet <charlet@adacore.com> + + * sem_res.adb (Within_Subprogram_Call): Detect + also nodes that appear in entry calls. + (Resolve_Actuals, Insert_Default): Propagate + dimension information if any, from default expression to the + copy that appears in the list of actuals. + * uintp.ads: minor whitespace fix in comment. + * sem_prag.adb, stringt.adb, inline.adb, lib-xref-spark_specific.adb: + Minor code cleanup. + * set_targ.adb (Set_Targ): convert directly from + Natural to Pos, without intermediate conversion to Int. + +2016-04-19 Arnaud Charlet <charlet@adacore.com> + + * sem_ch6.adb (Process_Formals): Mark suspicious reference to + SPARK RM in comment. + * sem_prag.adb (Analyze_Global_Item): Fix reference to SPARK RM + in comment. + * sem_res.adb (Property_Error, Resolve_Actuals): Fix reference + to SPARK RM in both comment and error message. + +2016-04-19 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch6.adb (Possible_Freeze): If the type is an incomplete + CW type, then the subprogram must have a delayed freeze. This + ensures that the backend can properly recover the full view when + elaborating the access subprogram declaration. + +2016-04-19 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Resolve_Attribute, case 'Access): Freeze + overloadable entity if originally overloaded. + +2016-04-19 Arnaud Charlet <charlet@adacore.com> + + * exp_aggr.adb, exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_code.adb, + exp_fixd.adb, namet.adb, osint.adb, osint.ads, par-ch2.adb, + sem_ch10.adb, sem_ch12.adb, sem_disp.adb, sem_elab.adb, sem_elim.adb + sem_util.adb, styleg.adb, styleg.ads, stylesw.ads: Minor code + clean up. + +2016-04-19 Arnaud Charlet <charlet@adacore.com> + + * sem_util.adb (Copy_Node_With_Replacement): + use Set_Comes_From_Source instead of directly manipulating + internals of the node table. + * sem_util.adb (Within_Scope): refactored to remove duplicated code. + * sem_aux.adb (Get_Rep_Pragma, + Subprogram_Body_Entity, Subprogram_Spec): declare variables that + do not change as constants and initialize them in the declaration. + (Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare + variables that do not change as constants and initialize them + in the declaration. + +2016-04-19 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Entry_Call): If the entry has + preconditions it is rewritten by means of a wrapper that + incorporates the original call. Before rewriting generate a + reference to the entry being called to prevent spurious warnings + and provide correct cross-reference information. + +2016-04-19 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_disp.adb (Check_Dispatching_Context): Code cleanup. Add + local constant Scop. Ignore any internally generated loops when + performing the check concerning an abstract subprogram call + without a controlling argument. + * sem_util.ads, sem_util.adb (Current_Scope_No_Loops): New routine. + +2016-04-19 Bob Duff <duff@adacore.com> + + * sem_elab.adb (Check_A_Call): There are cases where we have No + (Ent) after the Alias loop, even when there was no previous error, + so we can't assert that there was an error. + +2016-04-19 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Analyze_Access_Attribute, OK_Self_Reference): + Reject use of type name as a prefix to 'access within an aggregate + in a context that is not the declarative region of a type. + +2016-04-19 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: Make "gnat ls -P" invoke gprls Make "gnat bind + -P" invoke "gprbuild -b" Make "gnat link -P" invoke "gprbuild + -l" Fail if the invocation is "gnat find -P" or "gnat xref -P" + Remove anything related to project files + * g-mbdira.adb: minor whitespace cleanup + * g-spipat.adb: minor removal of extra spaces after closing paren + +2016-04-19 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Expand_Actuals): If post-statements are present + and the enclosing context is a function call or indexing, build + an Expression_With_Actions for the call. + +2016-04-19 Hristian Kirtchev <kirtchev@adacore.com> + + * lib-writ.adb (Write_With_Lines): Code cleanup. Do not generate + a with line for an ignored Ghost unit. + * sem_ch7.adb (Analyze_Package_Declaration): Add local constant + Par. A child package is Ghost when its parent is Ghost. + * sem_prag.adb (Analyze_Pragma): Pragma Ghost can now apply to + a subprogram declaration that acts as a compilation unit. + +2016-04-18 Michael Matz <matz@suse.de> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Use SET_TYPE_ALIGN. + (gnat_to_gnu_field): Ditto. + (components_to_record): Ditto. + (create_variant_part_from): Ditto. + (copy_and_substitute_in_size): Ditto. + (substitute_in_type): Ditto. + * gcc-interface/utils.c (make_aligning_type): Use SET_TYPE_ALIGN. + (make_packable_type): Ditto. + (maybe_pad_type): Ditto. + (finish_fat_pointer_type): Ditto. + (finish_record_type): Ditto and use SET_DECL_ALIGN. + (rest_of_record_type_compilation): Use SET_TYPE_ALIGN. + (create_field_decl): Use SET_DECL_ALIGN. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * einfo.adb (Overridden_Operation): assert that + function is called for valid arguments. + * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_type.adb, + s-osinte-vxworks.ads, a-ngcefu.adb, sem_ch10.adb, einfo.ads, + sem_prag.adb, sem_ch12.adb, sem.adb, i-cobol.ads, freeze.adb, + sem_util.adb, a-chtgop.ads, s-rannum.adb, exp_ch6.adb, s-bignum.adb, + s-osinte-freebsd.ads, par-ch5.adb, a-chtgbo.ads, a-cofove.adb: + No space after closing parenthesis except where required for + layout. + * sem_res.adb: Minor reformatting. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * exp_ch4.adb (Expand_N_Case_Expression): Convert into a case + statement when relevant. + +2016-04-18 Bob Duff <duff@adacore.com> + + * a-cuprqu.adb (Enqueue): Properly handle the + case where the new element has a unique priority. + +2016-04-18 Tristan Gingold <gingold@adacore.com> + + * adaint.h: Define stat structures and functions for iOS + simulator. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * sem_res.adb (Resolve_Entry_Call): reset + Is_Overloaded flag after resolving calls to overloaded protected + operations. + * exp_spark.adb (Expand_SPARK): call + Qualify_Entity_Names for tasking nodes, i.e. protected types, + task types and entries. + * exp_ch4.adb (Expand_N_If_Expression): Refine previous change + in case of an unconstrained type. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * sem_eval.adb, sem_eval.ads (Check_Non_Static_Context): Add + comment to document usage of subprogram in GNATprove. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Test_Case): Improve error + message for wrong placement of aspect Test_Case. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.ads: Update the documentation of attribute Renamed_Object. + * exp_spark.adb (Expand_Potential_Renaming): Reimplemented. + +2016-04-18 Gary Dismukes <dismukes@adacore.com> + + * exp_ch4.adb (Optimize_Length_Comparison): Return immediately + in the case of AAMP (same as for use of the -gnatd.P switch) to + suppress this optimization, which avoids creating a dependence + on the 64-bit arithmetic package. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * exp_ch4.adb: Update comment. + +2016-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Expand_Call): Make sure instantiations are + registered only once as pending here. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * exp_ch4.adb, gnat1drv.adb, opt.ads, sem_res.adb + (Minimize_Expression_With_Actions): New flag. + (Adjust_Global_Switches): Set Minimize_Expression_With_Actions + when generating C. + (Resolve_Short_Circuit): Redo previous change + using Minimize_Expression_With_Actions. + (Expand_N_If_Expression, + Expand_Short_Circuit_Operator): Restore old code to avoid + Expression_With_Actions when Minimize_Expression_With_Actions + is set. + +2016-04-18 Vincent Celier <celier@adacore.com> + + * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and + Stderr_File): Close local file descriptors when no longer needed. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb (Analyze_Iterator_Specification): Remove SPARK + mode check that the type of the cursor in an iteration over + a formal container is not volatile. The proper check on the + element type is done elsewhere. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Process_Formals): Do not set a delay freeze on + a subprogram that returns a class-wide type, if the subprogram + is a compilation unit, because otherwise gigi will treat the + subprogram as external, leading to link errors. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * sem_res.adb (Resolve_Short_Circuit): Do not use + expression-with-actions when generating C. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * sem_util.adb (Apply_Compile_Time_Constraint_Error): Do not generate + raise node in GNATprove mode. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * s-fileio.adb: Minor reformatting. + * sem_prag.adb (Analyze_Input_Item): Add local + variable Input_OK. Do not consider mappings of generic formal + parameters to actuals. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb (Get_Cursor_Type): If iterator type is a derived + type, the cursor is declared in the scope of the parent type. + (Analyze_Parameter_Specification): A qualified expression with an + iterator type indicates an iteration over a container (explicit + or implicit). + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * osint-c.ads, osint-c.adb (Delete_C_File, Delete_H_File): New. + * gnat1drv.adb (Gnat1drv): Delete old C files before regenerating them. + * debug.adb: Reserve -gnatd.4 to force generation of C files. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * sem_eval.adb (Eval_Arithmetic_Op): Do not issue error on static + division by zero, instead possibly issue a warning. + * sem_res.adb (Resolve_Arithmetic_Op): Do not issue error on + static division by zero, instead add check flag on original + expression. + * sem_util.adb, sem_util.ads (Compile_Time_Constraint_Error): + Only issue error when both SPARK_Mode is On and Warn is False. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * checks.adb (Apply_Scalar_Range_Check): Force + warning instead of error when SPARK_Mode is On, on index out of + bounds, and set check flag for GNATprove. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Check_In_Out_States.Check_Constituent_Usage): + Update the comment on usage. Reimplemented. + (Check_Input_States.Check_Constituent_Usage): Update the comment + on usage. A Proof_In constituent can now refine an Input state + as long as there is at least one Input constituent present. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Check_Inline_Pragma): Use the Sloc of the + body id as the sloc of the entity in the generated subprogram + declaration, to avoid spurious conformance errors when style + checks are enabled. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_Selected_Component, Has_Dereference): + Refine check on illegal calls to entities within a task body, + when the entity is declared in an object of the same type. In + a generic context there might be no explicit dereference but if + the prefix includes an access type the construct is legal. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * rtsfind.ads, rtsfind.adb (RE_Id, RE_Unit_Table): add + RE_Default_Priority. + +2016-04-18 Bob Duff <duff@adacore.com> + + * sem_prag.adb (Check_Arg_Is_Local_Name): Don't do the check + if the pragma came from an aspect specification. + +2016-04-18 Gary Dismukes <dismukes@adacore.com> + + * gnat1drv.adb, contracts.adb: Minor reformatting and wording fixes. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): To suppress + superfluous conformance check on an inlined body with a previous + spec, use the fact that the generated declaration does not come + from source. We must treat the entity as coming from source to + enable some back-end inlining when pragma appears after the body. + +2016-04-18 Gary Dismukes <dismukes@adacore.com> + + * lib-xref-spark_specific.adb, par-ch2.adb, errout.ads, + exp_intr.adb: Minor reformatting and typo corrections. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb: Code cleanup. + +2016-04-18 Thomas Quinot <quinot@adacore.com> + + * sem_ch13.adb: Minor reformatting and error message tweaking + (remove extraneous spaces). + +2016-04-18 Johannes Kanig <kanig@adacore.com> + + * gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK. + +2016-04-18 Bob Duff <duff@adacore.com> + + * s-fileio.adb (Fopen_Mode): If Mode = Out_File, and the file + exists, and it's a fifo, we use "w" as the open string instead of + "r+". This is necessary to make a write to the fifo block until + a reader is ready. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_attr.adb (Denote_Same_Function): Account + for a special case where a primitive of a tagged type inherits + a class-wide postcondition from a parent type. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * par-ch2.adb (P_Expression_Or_Reserved_Word): New routine. + (P_Pragma): Signal Scan_Pragma_Argument_Association when the use + of reserved words is OK. + (Scan_Pragma_Argument_Association): + Add new formal Reserved_Words_OK and update the comment on + usage. Code cleanup. Parse an expression or a reserved word in + identifier form for pragmas Restriction_Warnings and Restrictions + No_Use_Of_Attribute. + * restrict.adb (Check_Restriction_No_Use_Of_Attribute): + Reimplemented. (Check_Restriction_No_Use_Of_Pragma): Code cleanup. + (Set_Restriction_No_Specification_Of_Aspect): Properly set the warning + flag for an aspect. + (Set_Restriction_No_Use_Of_Attribute): Properly set the warning + flag for an attribute. (Set_Restriction_No_Use_Of_Entity): + Update the parameter profile. + (Set_Restriction_No_Use_Of_Pragma): Properly set the warning flag for + a pragma. + * restrict.ads (Check_Restriction_No_Use_Of_Attribute): Update + the comment on usage. + (Set_Restriction_No_Use_Of_Entity): Update the parameter profile. + * sem_attr.adb (Analyze_Attribute): Check restriction + No_Use_Of_Attribute. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check + restriction No_Use_Of_Attribute before any rewritings have + taken place. + * sem_prag.adb (Analyze_Pragma): Check restriction + No_Use_Of_Pragma before any rewritings have taken place. + +2016-04-18 Bob Duff <duff@adacore.com> + + * sem_ch6.adb (Is_Inline_Pragma): The pragma + argument can be a selected component, which has no Chars field, + so we need to deal with that case (use the Selector_Name). + (Check_Inline_Pragma): We need to test Is_List_Member before + calling In_Same_List, because in case of a library unit, they're + not in lists, so In_Same_List fails an assertion. + +2016-04-18 Bob Duff <duff@adacore.com> + + * namet.ads, namet.adb: Add an Append that appends a + Bounded_String onto a Bounded_String. Probably a little more + efficient than "Append(X, +Y);". Also minor cleanup. + (Append_Decoded, Append_Decoded_With_Brackets, Append_Unqualified, + Append_Unqualified_Decoded): Make sure these work with non-empty + buffers. + * casing.ads, casing.adb (Set_Casing): Pass a Bounded_String + parameter, defaulting to Global_Name_Buffer. + * errout.ads, errout.adb (Adjust_Name_Case): Pass a + Bounded_String parameter, no default. + * exp_ch11.adb (Expand_N_Raise_Statement): Use local + Bounded_String instead of Global_Name_Buffer. + * exp_intr.ads, exp_intr.adb (Write_Entity_Name): Rename it + to Append_Entity_Name, and pass a Bounded_String parameter, + instead of using globals. + (Add_Source_Info): Pass a Bounded_String parameter, instead of + using globals. + (Expand_Source_Info): Use local instead of globals. + * stringt.ads, stringt.adb (Append): Add an Append procedure + for appending a String_Id onto a Bounded_String. + (String_To_Name_Buffer, Add_String_To_Name_Buffer): Rewrite in + terms of Append. + * sem_prag.adb (Set_Error_Msg_To_Profile_Name): Adjust for new + Adjust_Name_Case parameter. + * erroutc.adb, uname.adb: Don't pass D => Mixed_Case to + Set_Casing; that's the default. + * lib-xref-spark_specific.adb (Add_SPARK_Scope): Pretend that calls to + protected subprograms are entry calls; otherwise it is not possible to + distinguish them from regular subprogram calls. + +2016-04-18 Gary Dismukes <dismukes@adacore.com> + + * sem_ch13.adb (Has_Good_Profile): Improvement + of error message. Now indicates subtype_mark of formal parameter + rather than the formal's name, plus minor rewording. + +2016-04-18 Pascal Obry <obry@adacore.com> + + * adaint.c, adaint.h, s-os_lib.ads: Add new routine Current_Process_Id. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * stringt.adb, exp_ch6.adb, sem_ch13.adb: Minor reformatting. + +2016-04-18 Gary Dismukes <dismukes@adacore.com> + + * par-ch4.adb, sem_prag.adb: Minor reformatting. + +2016-04-18 Bob Duff <duff@adacore.com> + + * sinput.ads, sinput.adb (Build_Location_String): Take a + parameter instead of using a global variable. The function + version no longer destroys the Name_Buffer. + * stringt.ads, stringt.adb (String_From_Name_Buffer): Take a + parameter, which defaults to the Global_Name_Buffer, so some + calls can avoid the global. + * exp_ch11.adb, exp_intr.adb: Use new interfaces above + to avoid using globals. All but one call to Build_Location_String + avoids the global. Only one call to String_From_Name_Buffer + avoids it. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * namet.adb, namet.ads, exp_unst.adb: Minor reformatting. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_eval.adb (Choice_Matches): Check the expression + against the predicate values when the choice denotes a + subtype with a static predicate. + (Eval_Membership_Op): Code cleanup. Remove the suspicious guard which + tests for predicates. + (Is_OK_Static_Subtype): A subtype with a dynamic predicate + is not static. (Is_Static_Subtype): A subtype with a dynamic + predicate is not static. + * sem_eval.ads (Is_OK_Static_Subtype): Update the comment on usage. + (Is_Static_Subtype): Update the comment on usage. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Input_Item): Allow + generic formals to appear as initialization items. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Stream_TSS_Definition, + Has_Good_Profile): Additional error message to indicate that + the second parameter of the subprogram must be a first subtype. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Is_Inline_Pragma): + Use the pragma lookahead that determines whether a subprogram + is to be inlined, when some level of backend optimization is + required. + * sem_ch12.ads, sem_ch12.adb (Add_Pending_Instantiation): Factorize + code used to create an instance body when needed for inlining. + * exp_ch6.adb (Expand_Call): When a call is to be inlined, and the + call appears within an instantiation that is not a compilation + unit, add a pending instantiation for the enclosing instance, + so the backend can inline in turn the calls contained in the + inlined body. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Build_Pragma_Check_Equivalent): The mapping + that relates operations of the parent type to the operations of + the derived type has three distinct sources: + a) explicit operations of the derived type carry an + Overridden_Operation that designates the operation in the + ancestor. + b) Implicit operations that are inherited by the derived type + carry an alias that may be an explicit subprogram (in which case + it may have an Overridden_ Operation indicator) or may also be + inherited and carry its own alias. + c) If the parent type is an interface, the operation of the + derived type does not override, but the interface operation + indicates the operation that implements it. + * sem_prag.adb: Minor reformatting. + * sem_prag.adb (Check_External_Property): Update + the comment on usage. Reimplement. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_Assignment_Statement): In restricted + profiles such as ZFP, ceiling priority is not available. + +2016-04-18 Bob Duff <duff@adacore.com> + + * namet-sp.ads: Minor typo fix, ironically in 'Spelling_Checker'. + +2016-04-18 Bob Duff <duff@adacore.com> + + * sem_elab.adb (Output_Calls): Use + Get_Name_String, to clearly indicate that the global Name_Buffer + is being used. The previous code used Is_Internal_Name, which + returns a Boolean, but also has a side effect of setting the + Name_Buffer. Then it called the other Is_Internal_Name, which uses + the Name_Buffer for its input. And then it called Error_Msg_N, + again using the Name_Buffer. We haven't eliminated the global + usage here, but we've made it a bit clearer. + This also allows us to have a side-effect-free version of + Is_Internal_Name. + * namet.ads, namet.adb: Provide a type Bounded_String, along with + routines that can be used without using global variables. Provide + Global_Name_Buffer so existing code can continue to use the + global. Mark the routines that use globals as obsolete. New code + shouldn't call the obsolete ones, and we should clean up existing + code from time to time. + Name_Find_Str is renamed as Name_Find. + * namet.h: Changed as necessary to interface to the new version + of Namet. + * bindgen.adb, exp_unst.adb: Name_Find_Str is renamed as + Name_Find. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): used + outside of GNATprove, hence it should not be removed. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Refinement_Clause): + The refinement of an external abstract state can now mention + non-external constituents. + (Check_External_Property): Update all SPARK RM references. + +2016-04-18 Bob Duff <duff@adacore.com> + + * exp_intr.adb: Remove some duplicated code. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads: Mark + package spec and body out of SPARK. + +2016-04-18 Johannes Kanig <kanig@adacore.com> + + * spark_xrefs.ads: Minor comment update. + +2016-04-18 Johannes Kanig <kanig@adacore.com> + + * gnat1drv.adb (Gnat1drv): Force loading of System + unit for SPARK. + +2016-04-18 Bob Duff <duff@adacore.com> + + * a-cuprqu.adb: Correction to previous change. If a new node + is inserted at the front of the queue (because it is higher + priority than the previous front node), we need to update + Header.Next_Unequal -- not just in the case where the queue was + previously empty. + +2016-04-18 Bob Duff <duff@adacore.com> + + * a-cuprqu.ads: Change the representation of List_Type from a + singly-linked list to a doubly-linked list. In addition, add a + pointer Next_Unequal, which points past a possibly-long chain + of equal-priority items. This increases efficiency, especially + in the case of many equal-priority items. + * a-cuprqu.adb (Dequeue, Enqueue): Rewrite algorithms to take + advantage of new data structure. + (Finalize): Rewrite in terms of Dequeue, for simplicity. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * contracts.adb (Analyze_Object_Contract, + Analyze_Protected_Contract): Remove tests performed in GNATprove. + * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): + Remove query for tests performed in GNATprove. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_aggr.adb (Resolve_Record_Aggregate): If + Warn_On_Redundant_Constructs is enabled, report a redundant box + association that does not cover any components, as it done for + redundant others associations in case statements. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): + Analyze the generated Check pragma for an inherited condition so + that it does not freeze the dispatching type of the primitive + operation, because it is pre-analyzed at the point of the + subprogram declaration (and not in the subprogram body, as is + done during regular expansion). + +2016-04-18 Vincent Celier <celier@adacore.com> + + * ali.ads: Increase the range of all _Id types to 100 millions. + +2016-04-18 Gary Dismukes <dismukes@adacore.com> + + * sem_warn.adb (Check_References): Change warning to suggest + using pragma Export rather than saying "volatile has no effect". + +2016-04-18 Bob Duff <duff@adacore.com> + + * g-souinf.ads (Compilation_ISO_Date): New function to return + the current date in ISO form. + * exp_intr.adb (Expand_Source_Info, Add_Source_Info): Expand + a call to Compilation_ISO_Date into a string literal containing + the current date in ISO form. + * exp_intr.ads (Add_Source_Info): Improve documentation. + * sem_intr.adb (Check_Intrinsic_Subprogram): Recognize + Compilation_ISO_Date. + * snames.ads-tmpl (Name_Compilation_ISO_Date): New Name_Id. + +2016-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * layout.adb (Set_Elem_Alignment): Extend setting of alignment + to subtypes that are not first subtypes. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.ads (Collect_Inherited_Class_Wide_Conditions): + Simplify interface. + * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Insert + generated pragmas after subprogram declaration, rather than in + the corresponding subprogram body. + * sem_ch6.adb (New_Overloaded_Entity): In GNATProve + mode, if the operation is overridding, call + Collect_Inherited_Class_Wide_Conditions to generate the + corresponding pragmas immediately after the corresponding + subprogram declaration. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * spark_xrefs.ads (Xref_Index, Scope_Index, File_Index): restrict + type to natural numbers. + (Stype): document code characters for concurrent entities. + +2016-04-18 Olivier Hainque <hainque@adacore.com> + + * targparm.ads: Update the Frontend_Exceptions default internal + value. + (Frontend_Exceptions_On_Target): Change default value to True. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_Selected_Component): Refine error + detection when a selected component in the body of a synchronized + type is a reference to an object of the same type declared + elsewhere. The construct is legal if the prefix of the selected + component includes an explicit dereference at any point. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Do not consider + internally generated expressions when trying to determine whether + a formal parameter of a tagged type subject to Extensions_Visible + False is used to initialize an object. + * sem_ch4.adb (Analyze_Type_Conversion): Do not consider + internally generated expressions when trying to determine whether + a formal parameter of a tagged type subject to Extensions_Visible + False is used in a type conversion. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_res.adb (Is_Protected_Operation_Call): + Add guards to account for a non-decorated selected component. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve + implementation of Body_Has_SPARK_Mode_On. + * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_From_Annotation): + New function replacing previous Get_SPARK_Mode_From_Pragma, that + deals also with aspects. + (Get_SPARK_Mode_Type): Make function internal again. + * inline.adb, sem_ch7.adb, sem_util.adb: Use new + Get_SPARK_Mode_From_Annotation. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * contracts.adb (Analyze_Object_Contract): Update references to + SPARK RM. + * freeze.adb (Freeze_Entity): Update references to SPARK RM. + * ghost.adb Add with and use clauses for Sem_Disp. + (Check_Ghost_Derivation): Removed. + (Check_Ghost_Overriding): + Reimplemented. (Check_Ghost_Policy): Update references to SPARK RM. + (Check_Ghost_Primitive): New routine. + (Check_Ghost_Refinement): New routine. (Is_OK_Ghost_Context): + Update references to SPARK RM. (Is_OK_Pragma): Update references + to SPARK RM. Predicates are now a valid context for references + to Ghost entities. + * ghost.ads (Check_Ghost_Derivation): Removed. + (Check_Ghost_Overriding): Update the comment on usage. + (Check_Ghost_Primitive): New routine. + (Check_Ghost_Refinement): New routine. + (Remove_Ignored_Ghost_Code): Update references to SPARK RM. + * sem_ch3.adb (Process_Full_View): Remove the now obsolete check + related to Ghost derivations + * sem_ch6.adb (Check_Conformance): Remove now obsolete check + related to the convention-like behavior of pragma Ghost. + (Check_For_Primitive_Subprogram): Verify that the Ghost policy + of a tagged type and its primitive agree. + * sem_prag.adb (Analyze_Pragma): Update references to SPARK + RM. Move the verification of pragma Assertion_Policy Ghost + to the proper place. Remove the now obsolete check related + to Ghost derivations. + (Collect_Constituent): Add a call to Check_Ghost_Refinement. + * sem_res.adb (Resolve_Actuals): Update references to SPARK RM. + +2016-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * layout.adb: Fix more minor typos in comments. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calend.ads, sem_prag.adb, sem_ch6.adb: Minor reformatting. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): In GNATprove + mode, collect inherited class-wide conditions to generate the + corresponding pragmas. + * sem_prag.ads (Build_Pragma_Check_Equivalent): Moved from contracts + * contracts.adb (Collect_Inherited_Class_Wide_Conditions): New + procedure for overriding subprograms, used to generate the pragmas + corresponding to an inherited class- wide pre- or postcondition. + * sem_prag.adb (Build_Pragma_Check_Equivalent): moved here + from contracts.adb (Replace_Condition_Entities): Subsidiary + Build_Pragma_Check_Equivalent, to implement the proper semantics + of inherited class-wide conditions, as given in AI12-0113. + (Process_Class_Wide_Condition): Removed. + (Collect_Inherited_Class_Wide_Conditions): Iterate over pragmas + in contract of subprogram, to collect inherited class-wide + conditions. + (Build_Pragma_Check_Equivalent): Moved to sem_prag.adb + +2016-04-18 Yannick Moy <moy@adacore.com> + + * a-calend.adb (Ada.Calendar): Mark package body as SPARK_Mode Off. + * a-calend.ads (Ada.Calendar): Mark package spec as + SPARK_Mode and add synchronous external abstract state Clock_Time. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * sem_res.adb (Resolve_Call): Prevent inlining of + calls inside expression functions. Factor previous code issuing + errors to call Cannot_Inline instead, which does appropriate + processing of message for GNATprove. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * einfo.ads, sem_ch3.adb, sem_ch8.adb, osint-l.adb, rtsfind.adb, + osint-b.adb: Cleanups. + +2016-04-18 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Only create + body to inline in GNATprove mode when SPARK_Mode On applies to + subprogram body. + * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_Type): Make function + public. + +2016-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * layout.adb: Fix minor typo in comment. + * inline.adb: Fix minor pasto. + * sem_ch12.ads: Fix minor typos in comments. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_disp.adb (Check_Dispatching_Call): Major rewriting to + handle some complex cases of tag indeterminate calls that are + actuals in other dispatching calls that are themselves tag + indeterminate. + (Check_Dispatching_Context): Add parameter to support recursive + check for an enclosing construct that may provide a tag for a + tag-indeterminate call. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Depends_In_Decl_Part): + Add global variables Task_Input_Seen and Task_Output_Seen. + (Analyze_Global_Item): Detect an illegal use of the current + instance of a single protected/task type in a global annotation. + (Analyze_Input_Output): Inputs and output related to the current + instance of a task unit are now tracked. + (Check_Usage): Require + the presence of the current instance of a task unit only when + one input/output is available. (Current_Task_Instance_Seen): + New routine. + (Is_CCT_Instance): New parameter profile. Update + the comment on usage. The routine now properly recognizes several + cases related to single protected/task types. + +2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> + + * freeze.adb (Freeze_Entity): Use New_Freeze_Node + to create a brand new freeze node. This handles a case where an + ignored Ghost context is freezing something which is not ignored + Ghost and whose freeze node should not be removed from the tree. + (New_Freeze_Node): New routine. + +2016-04-18 Jerome Lambourg <lambourg@adacore.com> + + * sigtramp.h (__gnat_set_is_vxsim) New function to + tell sigtramp-vxworks to handle vxsim signal contexts. * + sigtramp-vxworks.c (__gnat_sigtramp) Take into account the + differences in the sigcontext structure between the expected + regular x86 or x86_64 ones and the ones received in case of + exexution on the vxworks simulator. + * init.c: also compute is_vxsim in case of x86_64-vx7 target. Provide + this information to sigtramp-vxworks.c. Remove the old mechanism for + vxsim. + * init-vxsim.c, sigtramp-vxworks-vxsim.c: remove, now obsolete. + +2016-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Inline_Init_Proc): New function returning + whether the initialization procedure of a type should be + inlined. Return again True for controlled type themselves. + (Build_Array_Init_Proc): Call it to set Set_Is_Inlined on Init_Proc. + (Build_Record_Init_Proc): Likewise. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * gnatvsn.ads (Library_Version): Bump to 7. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Expression_Function): Set Inlined flag + on the entity of a subprogram declaration that is completed by + an expression function. + +2016-04-18 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Is_Current_Instance): A entity given by a subtype + declaration can appear in an aspect specification for a dynamic + predicate, and a pragma for aspect Predicate_Failure. + * exp_util.adb (Replace_Subtype_References): Replace current + occurrences of the subtype to which a dynamic predicate applies, + byt the expression that triggers a predicate check. Needed to + implement new aspect Predicate_Failure. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * a-intsig.ads, a-intsig.adb: Removed, no longer used. + * Makefile.rtl: update accordingly. + +2016-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * sem_type.adb (Disambiguate): Call Covers only when necessary + for standard operators. + +2016-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * atree.ads (Num_Extension_Nodes): Add couple of figures + to comment. + * atree.adb: Add GNAT.Heap_Sort_G dependency. + (Print_Statistics): New exported procedure to print statistics. + +2016-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Build_Record_Init_Proc): Do not mark the procedure + as to be inlined if the type needs finalization. + +2016-04-18 Jerome Lambourg <lambourg@adacore.com> + + * sigtramp-vxworks-target.inc: sigtramp-vxworks: force the stack + alignment for x86_64. + * init.c: Better fix for guard page reset on x86_64-vx7. + Do not try to retrieve the page that actually raised + the signal as the probing mechanism used on x86_64 do not allow + such retrieval. We thus just test if the guard page is active, + and re-activate it if not. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * a-sytaco.adb (Suspension_Object): Aspect Default_Initial_Condition + added. + +2016-04-18 Jerome Lambourg <lambourg@adacore.com> + + * affinity.c: Use the proper type for task id. + * init.c (__gnat_inum_to_ivec): ivec is a pointer. + +2016-04-18 Arnaud Charlet <charlet@adacore.com> + + * sem_prag.adb (Process_Convention): Relax rule on exporting + Intrinsic types if Relaxed_RM_Semantics is True. + +2016-04-18 Vincent Celier <celier@adacore.com> + + * sem_ch3.adb, lib.ads, sinfo.ads, sem_ch10.adb, einfo.adb, einfo.ads, + checks.ads, sem_ch12.adb, sem.adb, sem_util.adb, sem_util.ads, + sem_res.adb, sem_attr.adb, par.adb, exp_ch4.adb, errout.ads, + sem_ch4.adb, atree.adb, atree.ads, sem_warn.adb, treepr.adb, + exp_ch3.ads, exp_unst.adb: Change "descendent" to + "descendant" in comments, error messages and identifiers. + * gcc-interface/decl.c: Ditto. + +2016-04-18 Eric Botcazou <ebotcazou@adacore.com> + + * sem_type.adb (Operator_Matches_Spec): Call First_Formal on + New_S only once at the beginning of the function. + +2016-04-02 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (components_to_record): Restrict the previous + change to fields with variable size. + +2016-03-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (components_to_record): Add special case for + single field with representation clause at offset 0. + +2016-03-16 Svante Signell <svante.signell@gmail.com> + + * gcc-interface/Makefile.in: Add support for x86 GNU/Hurd. + * s-osinte-gnu.ads: New file. + +2016-03-13 Eric Botcazou <ebotcazou@adacore.com> + + * system-vxworks-m68k.ads (Stack_Check_Probes): Set to True. + (Stack_Check_Limits): Set to False. + * system-vxworks-mips.ads (Stack_Check_Probes): Set to True. + (Stack_Check_Limits): Set to False. + * system-vxworks-ppc.ads (Stack_Check_Probes): Set to True. + (Stack_Check_Limits): Set to False. + * system-vxworks-sparcv9.ads (Stack_Check_Probes): Set to True. + (Stack_Check_Limits): Set to False. + * system-vxworks-x86.ads (Stack_Check_Probes): Set to True. + (Stack_Check_Limits): Set to False. + +2016-03-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (statement_node_p): New predicate. + (gnat_to_gnu): Invoke it to detect statement nodes. In ASIS mode, do + not return dummy results for expressions attached to packed array + implementation types. + +2016-03-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always mark + the expression of a renaming manually in case #3. + +2016-03-02 Dominik Vogt <vogt@linux.vnet.ibm.com> + + * system-linux-s390.ads: Enable Stack_Check_Probes. + * system-linux-s390.ads: Likewise. + +2016-02-29 Martin Liska <mliska@suse.cz> + + * gcc-interface/utils.c (set_reverse_storage_order_on_pad_type): + Replace ENABLE_CHECKING macro with flag_checking. + +2016-02-29 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Retrofit + handling of unconstrained array types as designated types into common + processing. Also handle array types as incomplete designated types. + +2016-02-29 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In + ASIS mode, fully lay out the minimal record type. + +2016-02-29 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (finalize_nrv_r): Remove obsolete code. + (build_return_expr): Likewise. + (Call_to_gnu): If this is a function call and there is no target, + create a temporary for the return value for all aggregate types, + but never create it for a return statement. Push a binding level + around the call in more cases. Remove obsolete code. + +2016-02-29 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.h (DECL_RETURN_VALUE_P): New macro. + * gcc-interface/gigi.h (gigi): Remove useless attribute. + (gnat_gimplify_expr): Likewise. + (gnat_to_gnu_external): Declare. + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Factor out + code dealing with the expression of external constants into... + Invoke gnat_to_gnu_external instead. + <E_Variable>: Invoke gnat_to_gnu_external to translate renamed objects + when not for a definition. Deal with COMPOUND_EXPR and variables with + DECL_RETURN_VALUE_P set for renamings and with the case of a dangling + 'reference to a function call in a renaming. Remove obsolete test and + adjust associated comment. + * gcc-interface/trans.c (Call_to_gnu): Set DECL_RETURN_VALUE_P on the + temporaries created to hold the return value, if any. + (gnat_to_gnu_external): ...this. New function. + * gcc-interface/utils.c (create_var_decl): Detect a constant created + to hold 'reference to function call. + * gcc-interface/utils2.c (build_unary_op) <ADDR_EXPR>: Add folding + for COMPOUND_EXPR in the DECL_RETURN_VALUE_P case. + +2016-02-17 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Expand_N_Indexed_Component): Activate synchronization if + the prefix denotes an entity which Has_Atomic_Components. + * gcc-interface/trans.c (node_is_atomic): Return true if the prefix + denotes an entity which Has_Atomic_Components. + +2016-02-17 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (gnat_protect_expr): Make a SAVE_EXPR only + for fat pointer or scalar types. + +2016-02-16 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (maybe_debug_type): New inline function. + * gcc-interface/misc.c (gnat_get_array_descr_info): Use it. + Call maybe_character_value on the array bounds. Get to the base type + of the index type and call maybe_debug_type on it. + * gcc-interface/utils.c (finish_character_type): Add special treatment + for char_type_node. + +2016-02-16 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/misc.c (gnat_enum_underlying_base_type): New function. + (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define to above. + +2016-02-12 Jakub Jelinek <jakub@redhat.com> + + * prj-tree.ads: Spelling fixes - behaviour -> behavior and + neighbour -> neighbor. + * prep.adb: Likewise. + * prj.ads: Likewise. + * prepcomp.adb: Likewise. + * g-socket.ads: Likewise. + * s-imgrea.adb: Likewise. + * a-calend.adb: Likewise. + * exp_disp.adb: Likewise. + * doc/gnat_ugn/gnat_utility_programs.rst: Likewise. + * g-socket.adb: Likewise. + * sem_ch12.adb: Likewise. + * terminals.c: Likewise. + +2016-02-08 Bernd Schmidt <bschmidt@redhat.com> + + * gcc-interface/misc.c (gnat_init): Remove second argument in call to + build_common_tree_nodes. + +2016-02-08 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (create_var_decl): Set again DECL_COMMON and + DECL_IGNORED_P last. + +2016-01-28 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (enum attr_type): Rename into... + (enum attrib_type): ...this. + (struct attrib): Adjust. + * gcc-interface/decl.c (prepend_one_attribute): Likewise. + +2016-01-20 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch2.adb (Expand_Current_Value): Make an appropriate character + literal if the entity is of a character type. + * gcc-interface/lang.opt (fsigned-char): New option. + * gcc-interface/misc.c (gnat_handle_option): Accept it. + (gnat_init): Adjust comment. + * gcc-interface/gigi.h (finish_character_type): New prototype. + (maybe_character_type): New inline function. + (maybe_character_value): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Type>: For + a character of CHAR_TYPE_SIZE, make a signed type if flag_signed_char. + Set TYPE_ARTIFICIAL early and call finish_character_type on the type. + <E_Enumeration_Subtype>: For a subtype of character with RM_Size and + Esize equal to CHAR_TYPE_SIZE, make a signed type if flag_signed_char. + Copy TYPE_STRING_FLAG from type to subtype. + <E_Array_Type>: Deal with character index types. + <E_Array_Subtype>: Likewise. + * gcc-interface/trans.c (gigi): Replace unsigned_char_type_node with + char_type_node throughout. + (build_raise_check): Likewise. + (get_type_length): Deal with character types. + (Attribute_to_gnu) <Attr_Pos>: Likewise. Remove obsolete range check + code. Minor tweak. + <Attr_Pred>: Likewise. + (Loop_Statement_to_gnu): Likewise. + (Raise_Error_to_gnu): Likewise. + <N_Indexed_Component>: Deal with character index types. Remove + obsolete code. + <N_Slice>: Likewise. + <N_Type_Conversion>: Deal with character types. Minor tweak. + <N_Unchecked_Type_Conversion>: Likewise. + <N_In>: Likewise. + <N_Op_Eq>: Likewise. + (emit_index_check): Delete. + * gcc-interface/utils.c (finish_character_type): New function. + (gnat_signed_or_unsigned_type_for): Deal with built-in character types. + * gcc-interface/utils2.c (expand_sloc): Replace unsigned_char_type_node + with char_type_node. + (build_call_raise): Likewise. + (build_call_raise_column): Likewise. + (build_call_raise_range): Likewise. + +2016-01-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (build_call_raise_column): Adjust prototype. + (build_call_raise_range): Likewise. + (gnat_unsigned_type): Delete. + (gnat_signed_type): Likewise. + (gnat_signed_or_unsigned_type_for): New prototype. + (gnat_unsigned_type_for): New inline function. + (gnat_signed_type_for): Likewise. + * gcc-interface/cuintp.c (build_cst_from_int): Call build_int_cst. + * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise. + (gnat_to_gnu_entity) <E_Array_Type>: Always translate the index types + and compute their base type from that. + <E_Array_Subtype>: Remove duplicate declaration. + * gcc-interface/misc.c (get_array_bit_stride): Call build_int_cst. + * gcc-interface/trans.c (get_type_length): Likewise. + (Attribute_to_gnu): Likewise. + (Loop_Statement_to_gnu): Likewise. + (Call_to_gnu): Likewise. + (gnat_to_gnu): Call build_real, build_int_cst, gnat_unsigned_type_for + and gnat_signed_type_for. Minor tweaks. + (build_binary_op_trapv): Likewise. + (emit_check): Likewise. + (convert_with_check): Likewise. + (Raise_Error_to_gnu): Adjust calls to the build_call_raise family of + functions. Minor tweaks. + (Case_Statement_to_gnu): Remove dead code. + (gnat_to_gnu): Call gnat_unsigned_type_for and gnat_signed_type_for. + (init_code_table): Minor reordering. + * gcc-interface/utils.c (gnat_unsigned_type): Delete. + (gnat_signed_type): Likewise. + (gnat_signed_or_unsigned_type_for): New function. + (unchecked_convert): Use directly the size in the test for precision + vs size adjustments. + (install_builtin_elementary_types): Call gnat_signed_type_for. + * gcc-interface/utils2.c (nonbinary_modular_operation): Call + build_int_cst. + (build_goto_raise): New function taken from... + (build_call_raise): ...here. Call it. + (build_call_raise_column): Add KIND parameter and call it. + (build_call_raise_range): Likewise. + +2016-01-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.h (TYPE_IMPLEMENTS_PACKED_ARRAY_P): Rename to + (TYPE_IMPL_PACKED_ARRAY_P): ...this. + (TYPE_CAN_HAVE_DEBUG_TYPE_P): Do not test TYPE_DEBUG_TYPE. + * gcc-interface/decl.c (gnat_to_gnu_entity): Simplify NULL_TREE tests + and tweak gnat_encodings tests throughout. + (initial_value_needs_conversion): Likewise. + (intrin_arglists_compatible_p): Likewise. + * gcc-interface/misc.c (gnat_print_type): Likewise. + (gnat_get_debug_type): Likewise. + (gnat_get_fixed_point_type_info): Likewise. + (gnat_get_array_descr_info): Likewise. + (get_array_bit_stride): Likewise. + (gnat_get_type_bias): Fix formatting. + (enumerate_modes): Likewise. + * gcc-interface/trans.c (gnat_to_gnu): Likewise. + (add_decl_expr): Simplify NULL_TREE test. + (end_stmt_group): Likewise. + (build_binary_op_trapv): Fix formatting. + (get_exception_label): Use switch statement. + (init_code_table): Move around. + * gcc-interface/utils.c (global_bindings_p): Simplify NULL_TREE test. + (gnat_poplevel): Likewise. + (gnat_set_type_context): Likewise. + (defer_or_set_type_context): Fix formatting. + (gnat_pushdecl): Simplify NULL_TREE test. + (maybe_pad_type): Likewise. + (add_parallel_type): Likewise. + (create_range_type): Likewise. + (process_deferred_decl_context): Likewise. + (convert): Likewise. + (def_builtin_1): Likewise. + * gcc-interface/utils2.c (find_common_type): Likewise. + (build_binary_op): Likewise. + (gnat_rewrite_reference): Likewise. + (get_inner_constant_reference): Likewise. + +2016-01-18 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/69219 + * gcc-interface/trans.c (check_inlining_for_nested_subprog): Consider + the parent function instead of the current function in order to issue + the warning or the error. Add guard for ignored functions. + +2016-01-17 Jakub Jelinek <jakub@redhat.com> + + * adaint.c (__gnat_killprocesstree): Avoid -Wparentheses warning. + +2016-01-15 Jakub Jelinek <jakub@redhat.com> + + * adaint.c (__gnat_locate_exec_on_path): Use const char * instead + of char * for path_val to avoid warnings. + +2016-01-06 Pierre-Marie de Rodat <derodat@adacore.com> + + * gcc-interface/utils.c: Bump copyright year. + (rest_of_record_type_compilation): Add XVE/XVU parallel types to + the current lexical scope. + +2016-01-04 Jakub Jelinek <jakub@redhat.com> + + * gnat_ugn.texi: Bump @copying's copyright year. + * gnat_rm.texi: Likewise. + +2016-01-02 Eric Botcazou <ebotcazou@adacore.com> + + * gnatvsn.ads: Bump copyright year. + + +Copyright (C) 2016 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved.