| 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. |