5919 lines
229 KiB
Plaintext
5919 lines
229 KiB
Plaintext
|
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.
|