10512 lines
407 KiB
Plaintext
10512 lines
407 KiB
Plaintext
2015-12-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.c (gnat_rewrite_reference) <REALPART_EXPR>: New
|
||
case identical to FLOAT_EXPR.
|
||
<IMAGPART_EXPR>: Likewise.
|
||
|
||
2015-12-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: During
|
||
layout in type_annotate_only mode, skip discriminants of derived
|
||
tagged types renaming those of the parent type.
|
||
In type_annotate_only mode, if the type is tagged, do not override a
|
||
size clause but take into account the alignment of the tag.
|
||
(annotate_rep): In type_annotate_only mode, deal with discriminants
|
||
of derived tagged types renaming those of the parent type.
|
||
|
||
2015-12-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.c (maybe_pad_type): In type_annotate_only mode,
|
||
retrieve the component type if this is an array and do not issue the
|
||
warning for concurrent types.
|
||
|
||
2015-12-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/ada-tree.h (TYPE_DEBUG_TYPE): Remove duplicate.
|
||
|
||
2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/ada-tree.h
|
||
(TYPE_IMPLEMENTS_PACKED_ARRAY_P, TYPE_CAN_HAVE_DEBUG_TYPE_P,
|
||
TYPE_ORIGINAL_PACKED_ARRAY, SET_TYPE_ORIGINAL_PACKED_ARRAY): New
|
||
macros.
|
||
* gcc-interface/decl.c (add_parallel_type_for_packed_array):
|
||
Rename to associate_original_type_to_packed_array. When
|
||
-fgnat-encodings=minimal, set original packed array type as so
|
||
instead of as a parallel type to the implementation type. In
|
||
this case, also rename the implementation type to the name of
|
||
the original array type.
|
||
(gnat_to_gnu_entity): Update invocations to
|
||
add_parallel_type_for_packed_array. Tag ARRAY_TYPE nodes for
|
||
packed arrays with the TYPE_PACKED flag.
|
||
When -fgnat-encodings=minimal:
|
||
- strip ___XP suffixes in packed arrays' names;
|
||
- set the debug type for padding records around packed arrays
|
||
to the packed array;
|
||
- do not attach ___XUP types as parallel types of constrained
|
||
array types.
|
||
* gcc-interface/misc.c (gnat_print_type): Update to handle
|
||
orignal packed arrays.
|
||
(gnat_get_debug_type): Update to reject packed arrays
|
||
implementation types.
|
||
(get_array_bit_stride): New.
|
||
(gnat_get_array_descr_info): Add packed arrays handling.
|
||
* gcc-interface/utils.c (maybe_pad_type): When
|
||
-fgnat-encodings=minimal, set the name of the padding type to
|
||
the one of the original packed type, if any. Fix TYPE_DECL
|
||
peeling around the name of the input type.
|
||
|
||
2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/misc.c (gnat_get_type_bias): New.
|
||
(LANG_HOOKS_GET_TYPE_BIAS): Redefine macro to implement the
|
||
get_type_bias language hook.
|
||
|
||
2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/misc.c (gnat_get_array_descr_info): When the
|
||
array has more dimensions than the language hook can handle,
|
||
fall back to a nested arrays description. Handle context-less
|
||
array types.
|
||
|
||
2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): When
|
||
-fgnat-encodings-minimal, do not add ___XUP/XUT suffixes to type
|
||
names and do not generate ___XA parallel types.
|
||
* gcc-interface/misc.c (gnat_get_array_descr_info): Match fat
|
||
and thin pointers and generate the corresponding array type
|
||
descriptions.
|
||
|
||
2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/ada-tree.def (POWER_EXPR): New binary operation.
|
||
* gcc-interface/ada-tree.h (TYPE_FIXED_POINT_P): New macro.
|
||
(TYPE_IS_FIXED_POINT_P): New macro.
|
||
(TYPE_SCALE_FACTOR): New macro.
|
||
(SET_TYPE_SCALE_FACTOR): New macro.
|
||
* gcc-interface/decl.c: Include urealp.h
|
||
(gnat_to_gnu_entity): Attach trees to encode scale factors to
|
||
fixed-point types.
|
||
* gcc-interface/misc.c (gnat_print_type): Print scale factors
|
||
for fixed-point types.
|
||
(gnat_get_fixed_point_type_info): New.
|
||
(gnat_init_ts): Initialize data for the POWER_EXPR binary
|
||
operation.
|
||
(LANG_HOOKS_GET_FIXED_POINT_INFO): Redefine macro to implement
|
||
the get_fixed_point_type_info language hook.
|
||
|
||
2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/ada-tree.h (struct lang_type): Rename the t
|
||
field as t1 and add a t2 one.
|
||
(get_lang_specific): New.
|
||
(GET_TYPE_LANG_SPECIFIC): Refactor to use get_lang_specific.
|
||
(SET_TYPE_LANG_SPECIFIC): Likewise.
|
||
(GET_TYPE_LANG_SPECIFIC2): New macro.
|
||
(SET_TYPE_LANG_SPECIFIC2): New macro.
|
||
(TYPE_DEBUG_TYPE): New macro.
|
||
(SET_TYPE_DEBUG_TYPE): New macro.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): When
|
||
-fgnat-encodings=minimal, set padding types' debug type to the
|
||
padded one (i.e. strip ___PAD GNAT encodings) and set
|
||
constrained record subtypes's debug type to the base type.
|
||
* gcc-interface/misc.c (gnat_print_type): Print debug types.
|
||
(gnat_get_debug_type): New.
|
||
(gnat_get_array_descr_info): When -fgnat-encodings=minimal, set
|
||
a byte stride for arrays that contain a type whose debug type
|
||
has variable length.
|
||
(LANG_HOOKS_GET_DEBUG_TYPE): Redefine macro to implement the
|
||
debug type language hook.
|
||
* gcc-interface/utils.c (maybe_pad_type): When
|
||
-fgnat-encodings=minimal, set padding types' debug type to the
|
||
padded one. Restore XVZ variables creation when
|
||
-fgnat-encodings-minimal and use them to hold padding types'
|
||
byte size. For library-level padding types, share this variable
|
||
across translation units. Tag XVZ variables as artificial.
|
||
|
||
2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Disable ___XVS GNAT
|
||
encodings when -fgnat-encodings=minimal.
|
||
(components_to_record): Disable ___XVE, ___XVN, ___XVU and
|
||
___XVZ GNAT encodings when -fgnat-encodings=minimal.
|
||
* gcc-interface/utils.c (maybe_pad_type): Disable __XVS GNAT
|
||
encodings when -fgnat-encodings=minimal.
|
||
|
||
2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/misc.c (gnat_encodings): Undefine macro and
|
||
declare a global variable.
|
||
(gnat_post_options): Initialize this global from options.
|
||
|
||
2015-12-10 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/48013
|
||
* gcc-interface/trans.c (empty_stmt_list_p): New predicate.
|
||
(gigi): Invoke it to compute the No_Elaboration_Code property.
|
||
(insert_code_for): Do not insert the code if it's empty.
|
||
|
||
2015-12-10 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (Call_to_gnu): Remove guard for NULL_EXPR.
|
||
* gcc-interface/utils2.c (gnat_rewrite_reference) <ERROR_MARK>: Return
|
||
the reference unmodified.
|
||
<NULL_EXPR>: New case. Likewise.
|
||
|
||
2015-12-10 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (create_var_decl): Adjust comment.
|
||
(create_subprog_decl): Likewise.
|
||
* gcc-interface/utils.c (create_var_decl): Likewise.
|
||
(create_subprog_decl): Likewise.
|
||
|
||
2015-12-10 Tom de Vries <tom@codesourcery.com>
|
||
|
||
PR ada/65102
|
||
* gnat-style.texi: Set nodefaultgnufreedocumentationlicensenode and
|
||
define @node GNU Free Documentation License locally.
|
||
|
||
2015-12-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/66526
|
||
* g-expect.adb (Set_Up_Child_Communications): Add matching condition
|
||
for uses of Input, Ouput and Error variables after the Execvp call.
|
||
|
||
2015-12-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/48088
|
||
PR c/68657
|
||
* gcc-interface/trans.c (Pragma_to_gnu): Adjust control_warning_option
|
||
caller.
|
||
|
||
2015-12-06 Piotr Trojanek <piotr.trojanek@gmail.com>
|
||
|
||
PR ada/60164
|
||
* doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Fix typo.
|
||
|
||
2015-12-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/50048
|
||
* gcc-interface/Makefile.in (INCLUDES): Use -iquote.
|
||
|
||
2015-12-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/56274
|
||
* s-osinte-kfreebsd-gnu.ads (pthread_rwlock_t): New subtype.
|
||
(pthread_rwlockattr_t): Likewise.
|
||
|
||
2015-12-06 Ludovic Brenta <ludovic@ludovic-brenta.org>
|
||
|
||
PR ada/49944
|
||
* s-osinte-freebsd.ads: Minor reformatting.
|
||
(Stack_Base_Available): Correct comments.
|
||
* s-osinte-kfreebsd-gnu.ads (Time_Slice_Supported, nanosleep,
|
||
clock_id_t, clock_gettime, Stack_Base_Available, Get_Page_Size,
|
||
mprotect, pthread_mutexattr_setprotocol,pthread_mutexattr_getprotocol
|
||
pthread_mutexattr_setprioceiling, pthread_mutexattr_getprioceiling,
|
||
pthread_attr_setscope, pthread_attr_getscope,
|
||
pthread_attr_setinheritsched, pthread_attr_getinheritsched,
|
||
Time_Slice_Supported): Copy from s-osinte-freebsd.ads.
|
||
* gcc-interface/Makefile.in (x86/kfreebsd): Use the POSIX version of
|
||
the System.Task_Primitives.Operations package.
|
||
|
||
2015-12-06 Ludovic Brenta <ludovic@ludovic-brenta.org>
|
||
|
||
PR ada/49940
|
||
* s-osinte-kfreebsd-gnu.ads (lwp_self): New imported function.
|
||
|
||
2015-12-01 Jan Sommer <soja-lists@aries.uberspace.de>
|
||
|
||
PR ada/68169
|
||
* s-oscons-tmplt.c: Generate pthread constants for RTEMS
|
||
* s-osinte-rtems.ads: Declare pthread structs as opaque types in Ada
|
||
|
||
2015-12-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Reorder.
|
||
|
||
2015-11-30 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (gigi): Fix initialization order.
|
||
|
||
2015-11-30 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* osint.adb: Add use type clause for CRTL.size_t.
|
||
(C_String_Length): Return CRTL.size_t instead of Integer.
|
||
(To_Path_String_Access): Take CRTL.size_t instead of Integer.
|
||
(Get_Libraries_From_Registry): Use CRTL throughout.
|
||
(To_Canonical_Dir_Spec): Use CRTL.size_t instead of Integer.
|
||
(To_Canonical_File_List): Likewise.
|
||
(To_Canonical_File_Spec): Likewise.
|
||
(To_Canonical_Path_Spec): Likewise.
|
||
(To_Host_Dir_Spec): Likewise.
|
||
(To_Host_File_Spec): Likewise.
|
||
(Update_Path): Use CRTL throughout.
|
||
* s-shasto.adb: Add with clause for System.CRTL.
|
||
(Initialize): Rename CRTL.strncpy instead of importing it manually.
|
||
|
||
2015-11-30 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (create_var_decl): Adjust prototype.
|
||
(create_subprog_decl): Likewise.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Rename
|
||
static_p into static_flag and add volatile_flag local variable.
|
||
Do not locally change the type of a volatile object, except for the
|
||
pointed-to type if the object is handled by reference. Adjust calls
|
||
to create_var_decl.
|
||
<E_Subprogram_Type>: Likewise for const and noreturn subprograms.
|
||
(get_minimal_subprog_decl): Adjust call to create_subprog_decl.
|
||
(elaborate_expression_1): Adjust call to create_var_decl.
|
||
(gnat_to_gnu_field): Minor tweak.
|
||
* gcc-interface/trans.c (gigi): Adjust calls to create_var_decl and
|
||
create_subprog_decl.
|
||
(build_raise_check): Likewise.
|
||
(Subprogram_Body_to_gnu): Likewise.
|
||
(create_temporary): Likewise.
|
||
(Handled_Sequence_Of_Statements_to_gnu): Likewise.
|
||
(Exception_Handler_to_gnu_gcc): Likewise.
|
||
(Compilation_Unit_to_gnu): Likewise.
|
||
(gnat_to_gnu): Likewise.
|
||
* gcc-interface/utils.c (maybe_pad_type): Likewise.
|
||
(create_var_decl): Add VOLATILE_FLAG parameter and handle it.
|
||
(create_subprog_decl): Add CONST_FLAG and VOLATILE_FLAG parameters and
|
||
handle them.
|
||
|
||
2015-11-30 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (is_simple_additive_expression): Declare.
|
||
* gcc-interface/trans.c (struct range_check_info_d): Add DISP and
|
||
NEG_P fields.
|
||
(find_loop_for): Add DISP and NEG_P parameters with default value.
|
||
Call is_simple_additive_expression to handle additive expressions.
|
||
(Loop_Statement_to_gnu): Deal with displacement in range checks.
|
||
(Raise_Error_to_gnu): Likewise.
|
||
(gnat_to_gnu): Add call to find_loop_for.
|
||
(is_simple_additive_expression): New function extracted from...
|
||
(gnat_invariant_expr): ...here. Call it on the expression.
|
||
|
||
2015-11-30 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions.
|
||
|
||
2015-11-30 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): New macro.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set PACKED to -2.
|
||
Remove obsolete code setting the alignment on some atomic types.
|
||
When the type has no alignment but needs strict alignment and has a
|
||
size clause, compute a maximum alignment and set it on the type.
|
||
(adjust_packed): Remove handling of -2 argument. Deal with TYPE_ALIGN
|
||
and TYPE_MAX_ALIGN directly.
|
||
(gnat_to_gnu_field): Do not document -2 as argument.
|
||
(components_to_record): Likewise.
|
||
* gcc-interface/utils.c (finish_record_type): Do not bump alignment of
|
||
the record type beyond TYPE_MAX_ALIGN. Reset the latter on exit.
|
||
|
||
* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): Move around.
|
||
(GNATLIBCFLAGS_FOR_C): Reformat.
|
||
(GCC_CFLAGS): Delete.
|
||
|
||
2015-11-29 Matthias Klose <doko@ubuntu.com>
|
||
|
||
PR ada/68564
|
||
* gcc-interface/Makefile.in: Fix powerpc/powerpc64* and
|
||
mipsel/mips64el bitness detection.
|
||
Merge the mipsel/mips64el definitions into one.
|
||
|
||
2015-11-28 Matthias Klose <doko@ubuntu.com>
|
||
|
||
PR ada/68564
|
||
* gcc-interface/Makefile.in: Fix sparc/sparc64 bitness detection.
|
||
|
||
2015-11-25 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* lib-xref-spark_specific.adb
|
||
(Add_SPARK_Scope): Take entry families into account.
|
||
* a-exetim.ads, a-exetim-default.ads, a-exetim-mingw.ads (Clock,
|
||
Clock_For_Interrupts): preconditions added.
|
||
* a-extiin.ads (Clock): preconditions added.
|
||
* par-ch3.adb (P_Declarative_Items): In case of misplaced
|
||
aspect specifications, ensure that flag Done is properly set to
|
||
continue parsing.
|
||
|
||
2015-11-25 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_util.adb (Remove_Side_Effects): Minimize extra temporaries
|
||
and use of 'Reference when needed.
|
||
|
||
2015-11-25 Doug Rupp <rupp@adacore.com>
|
||
|
||
* sigtramp-vxworks-target.inc (__x86_64__): Restore context for the
|
||
sake of uniformity.
|
||
* init.c (__gnat_inum_to_ivec): Add some casting to avoid
|
||
warnings when sizeof(long) != sizeof(int)
|
||
|
||
2015-11-25 Yannick Moy <moy@adacore.com>
|
||
|
||
* lib-xref-spark_specific.adb (SPARK_Entities): Add entries for
|
||
consideration.
|
||
(Add_SPARK_Scope): Take tasks into account.
|
||
(Detect_And_Add_SPARK_Scope): Take tasks into account.
|
||
(Enclosing_Subprogram_Or_Library_Package): Take tasks into account.
|
||
|
||
2015-11-25 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_elab.adb (Check_Internal_Call_Continue): Code clean ups.
|
||
|
||
2015-11-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_util.ads (Has_Compatible_Alignment): Add Layout_Done
|
||
parameter.
|
||
* sem_util.adb (Has_Compatible_Alignment): Likewise.
|
||
(Has_Compatible_Alignment_Internal): Likewise. Do not set the
|
||
result to Unknown for packed types if Layout_Done is true.
|
||
* checks.adb (Apply_Address_Clause_Check): Adjust call and
|
||
pass False to Has_Compatible_Alignment.
|
||
* sem_ch13.adb (Validate_Address_Clauses): Likewise but pass True.
|
||
|
||
2015-11-25 Vincent Celier <celier@adacore.com>
|
||
|
||
* gnatcmd.adb: When <target>-gnat is called with switch -P
|
||
and a GPR tool is invoked, invoke the GPR tool with switch
|
||
--target=<target>.
|
||
|
||
2015-11-25 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* opt.adb, bcheck.adb: Minor reformatting.
|
||
|
||
2015-11-25 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* init.c: Enable the signal trampoline on x86_64-vx7
|
||
* sigtramp-vxworks-target.inc: Implement the signal trampoline
|
||
for x86_64
|
||
* tracebak.c: Remove the hook to use the generic
|
||
unwinder on x86_64-vx7.
|
||
|
||
2015-11-25 Vincent Celier <celier@adacore.com>
|
||
|
||
* gnatcmd.adb: When "gnat name -P" is called, invoke gprname
|
||
directly if available.
|
||
|
||
2015-11-25 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* init.c (__gnat_is_stack_guard): Do not use mach calls for
|
||
IOS simulator.
|
||
|
||
2015-11-24 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/utils.c (gnat_write_global_declarations): Output
|
||
debugging information for top-level imported declarations.
|
||
|
||
2015-11-24 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_ch3.adb, sem_type.adb, sem_ch7.adb, sem_ch9.adb, checks.adb,
|
||
sem_prag.adb, contracts.adb, g-strhas.ads, sem_ch6.adb: Minor
|
||
reformatting, rewording, and typo corrections.
|
||
|
||
2015-11-24 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In
|
||
ASIS mode, do a minimal translation for root types with discriminants.
|
||
* gcc-interface/trans.c (gnat_to_gnu) <N_Subunit>: Move around.
|
||
<N_Entry_Body, N_Protected_Body, N_Task_Body>: Likewise. In ASIS mode,
|
||
process the declarations attached to the body.
|
||
|
||
2015-11-24 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (gnat_to_gnu): In type_annotate_only mode, do
|
||
not build a NULL_EXPR for an N_Expanded_Name.
|
||
|
||
2015-11-24 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (is_cplusplus_method): Check that the type of
|
||
the first parameter (indirectly) has C++ convention too.
|
||
|
||
2015-11-23 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* system-aix.ads: Add Frontend_Exceptions flag.
|
||
* system-aix64.ads: Likewise.
|
||
* system-darwin-ppc.ads: Likewise.
|
||
* system-darwin-ppc64.ads: Likewise.
|
||
* system-darwin-x86.ads: Likewise.
|
||
* system-darwin-x86_64.ads: Likewise.
|
||
* system-dragonfly-x86_64.ads: Likewise.
|
||
* system-freebsd-x86.ads: Likewise.
|
||
* system-freebsd-x86_64.ads: Likewise.
|
||
* system-hpux-ia64.ads: Likewise.
|
||
* system-hpux.ads: Likewise.
|
||
* system-linux-alpha.ads: Likewise.
|
||
* system-linux-armeb.ads: Likewise.
|
||
* system-linux-armel.ads: Likewise.
|
||
* system-linux-hppa.ads: Likewise.
|
||
* system-linux-ia64.ads: Likewise.
|
||
* system-linux-mips.ads: Likewise.
|
||
* system-linux-mips64el.ads: Likewise.
|
||
* system-linux-mipsel.ads: Likewise.
|
||
* system-linux-ppc.ads: Likewise.
|
||
* system-linux-ppc64.ads: Likewise.
|
||
* system-linux-s390.ads: Likewise.
|
||
* system-linux-s390x.ads: Likewise.
|
||
* system-linux-sh4.ads: Likewise.
|
||
* system-linux-sparc.ads: Likewise.
|
||
* system-linux-sparcv9.ads: Likewise.
|
||
* system-linux-x86.ads: Likewise.
|
||
* system-linux-x86_64.ads: Likewise.
|
||
* system-mingw-x86_64.ads: Likewise.
|
||
* system-mingw.ads: Likewise.
|
||
* system-rtems.ads: Likewise.
|
||
* system-solaris-sparc.ads: Likewise.
|
||
* system-solaris-sparcv9.ads: Likewise.
|
||
* system-solaris-x86.ads: Likewise.
|
||
* system-solaris-x86_64.ads: Likewise.
|
||
* system-vxworks-arm.ads: Likewise.
|
||
* system-vxworks-m68k.ads: Likewise.
|
||
* system-vxworks-mips.ads: Likewise.
|
||
* system-vxworks-ppc.ads: Likewise.
|
||
* system-vxworks-sparcv9.ads: Likewise.
|
||
* system-vxworks-x86.ads: Likewise.
|
||
* system.ads: Likewise.
|
||
|
||
2015-11-23 Olivier Hainque <hainque@adacore.com>
|
||
Eric Botcazou <botcazou@adacore.com>
|
||
|
||
* opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ,
|
||
Back_End_SJLJ and Back_End_ZCX.
|
||
(Back_End_Exceptions, Front_End_Exceptions, ZCX_Exceptions,
|
||
SJLJ_Exceptions): New functions, reflecting properties of the current
|
||
Exception_Mechanism.
|
||
* opt.adb: Implement the new functions.
|
||
* fe.h: Bind the new Exception_Mechanism and helper functions for gigi.
|
||
|
||
* exp_ch11.adb (Expand_At_End_Handler): Replace test on mechanism by
|
||
use of property helper and update comments.
|
||
(Expand_Exception_Handlers): Replace tests on mechanism by use of
|
||
helper. Restrict Abort_Defer to ZCX specifically.
|
||
* exp_ch9.adb (Expand_N_Asynchronous_Select): Replace tests on
|
||
mechanism by calls to helper functions. Abort_Undefer for ZCX only,
|
||
paired with Expand_Exception_Handlers.
|
||
* exp_sel.adb (Build_Abort_Block_Handler): Replace tests on mechanism
|
||
by calls to helper functions. Abort_Undefer for ZCX only, paired with
|
||
Expand_Exception_Handlers.
|
||
|
||
* lib-writ.ads (P line documentation): Add entry for "FX",
|
||
representative of unit compiled with Frontend_Exceptions True.
|
||
* lib-writ.adb (Output_Main_Program_Line): Add "FX" on P line if
|
||
compiled with Frontend_Exceptions True.
|
||
|
||
* ali.ads (ALIs_Record): Ada a Frontend_Exceptions component, to reflect
|
||
whether the ALI file contained an "FX" indication on the P line.
|
||
(Frontend_Exceptions_Specified): New boolean, to keep track of whether
|
||
at least an FX ALI file is in the closure.
|
||
* ali.adb (Scan_ALI): Handle "FX" on the P line.
|
||
(Initialize_ALI): Initialize Frontend_Exceptions_Specified to False.
|
||
|
||
* targparm.ads: Update desription of exception schemes.
|
||
(Frontend_Exceptions_On_Target): New flag, reflect Frontend_Exceptions
|
||
set to True in system.ads, or not set at all.
|
||
* targparm.adb (Targparm_Tags): Add FEX to convey Frontend_Exceptions.
|
||
Rename ZCD to ZCX for consistency.
|
||
(FEX_Str, Targparm_Str, Get_Target_Parameters): Adjust accordingly.
|
||
|
||
* gnat1drv.adb (Adjust_Global_Switches): Adjust Exception_Mechanism
|
||
setting, now from combination of Frontend_Exceptions and ZCX_By_Default.
|
||
|
||
* bcheck.adb (Check_Consistent_Zero_Cost_Exception_Handling): Rename
|
||
as ...
|
||
(Check_Consistent_Exception_Handling): Check consistency of both
|
||
ZCX_By_Default and Frontend_Exceptions.
|
||
(Check_Configuration_Consistency): Check_Consistent_Exception_Handling
|
||
if either flag was set at least once.
|
||
|
||
* make.adb (Check): Remove processing of a possible -fsjlj coming from
|
||
lang-specs.h.
|
||
* gnatlink.adb (Gnatlin): Likewise.
|
||
|
||
* gcc-interface/Makefile.in (gnatlib-sjlj/zcx): Now set
|
||
both ZCX_By_Default and Frontend_Exceptions.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable):
|
||
Use eh property helper to test for back-end exceptions. Adjust
|
||
mechanism name when testing for front-end sjlj.
|
||
(case E_Procedure): Likewise.
|
||
* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
|
||
Likewise, and rename local variables.
|
||
(Exception_Handler_to_gnu_sjlj): Rename as
|
||
Exception_Handler_to_gnu_fe_sjlj.
|
||
(Exception_Handler_to_gnu_zcx): Rename as
|
||
Exception_Handler_to_gnu_gcc and adjust tests on eh mechanisms
|
||
to use property helpers or correct mechanism name.
|
||
|
||
2015-11-19 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_elab.adb (Check_Internal_Call_Continue): Correction to previous
|
||
change: correctly handle generic formals/actuals that look like
|
||
renamings.
|
||
|
||
2015-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (elaborate_all_entities_for_package): New
|
||
function extracted from... Recurse on packages.
|
||
(elaborate_all_entities): ...here. Call it on packages.
|
||
|
||
2015-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/ada-tree.h (DECL_INVARIANT_P): New macro.
|
||
* gcc-interface/gigi.h (enum standard_datatypes): Remove
|
||
ADT_longjmp_decl and add ADT_not_handled_by_others_decl.
|
||
(longjmp_decl): Delete.
|
||
(not_handled_by_others_decl): New macro.
|
||
(build_simple_component_ref): Delete.
|
||
(build_component_ref): Adjust prototype.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to
|
||
build_component_ref.
|
||
(gnat_to_gnu_field): Set DECL_INVARIANT_P on discriminants
|
||
without default value.
|
||
* gcc-interface/trans.c (gigi): Reorder initialization sequence
|
||
and add not_handled_by_others_decl.
|
||
(Attribute_to_gnu): Adjust calls to build_component_ref.
|
||
(Subprogram_Body_to_gnu): Likewise.
|
||
(Call_to_gnu): Likewise.
|
||
(Exception_Handler_to_gnu_sjlj): Likewise.
|
||
(gnat_to_gnu): Likewise.
|
||
(range_check_info_d): Add inserted_cond field.
|
||
(Loop_Statement_to_gnu): Make two passes on the recorded range checks.
|
||
(build_noreturn_cond): New static function.
|
||
(Raise_Error_to_gnu): Record range checks in loops at -O1 and above.
|
||
(make_invariant): New static function.
|
||
(Loop_Statement_to_gnu): Use it to compute invariant expressions for
|
||
the loop bounds if possible, but do not require it if loop unswitching
|
||
is enabled.
|
||
* gcc-interface/utils.c (convert_to_fat_pointer): Likewise.
|
||
(convert): Likewise.
|
||
(maybe_unconstrained_array): Likewise. Call it instead of
|
||
build_simple_component_ref and add guard for CONSTRUCTORs.
|
||
(unchecked_convert): Likewise.
|
||
* gcc-interface/utils2.c (compare_fat_pointers): Likewise.
|
||
(build_simple_component_ref): Remove COMPONENT parameter, unify
|
||
code dealing with VIEW_CONVERT_EXPR and make it more general,
|
||
remove special treatment for CONSTRUCTORs of template types.
|
||
(build_component_ref): Remove COMPONENT parameter and adjust call
|
||
to build_simple_component_ref.
|
||
(maybe_wrap_malloc): Likewise.
|
||
(build_allocator): Likewise.
|
||
(gnat_invariant_expr): Look through overflow checks, deal with
|
||
addition and subtraction of constants and take into account
|
||
DECL_INVARIANT_P for the COMPONENT_REF case.
|
||
|
||
2015-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/misc.c: Move global variables to the top of the file.
|
||
(gnat_handle_option): Remove obsolete ATTRIBUTE_UNUSED markers.
|
||
(gnat_init_options): Minor tweak.
|
||
(gnat_post_options): Set -fstrict-overflow if not done by the user.
|
||
(internal_error_function): Minor reformatting.
|
||
|
||
2015-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Use case #1
|
||
for the renaming of an address.
|
||
|
||
2015-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (fold_constant_decl_in_expr) <ARRAY_REF>: If
|
||
the index is not itself constant then bail out.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Try_Container_Indexing): When constructing the
|
||
parameter list for the potentially overloaded calls to indexing
|
||
functions, do not propagate overloadings if the actual is a named
|
||
association: overloadings appear directly on the expression in
|
||
the association.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_type.adb (Interface_Present_In_Ancestor): If the type is
|
||
incomplete, the list of ancestors is found either on the full
|
||
view or the non-limited view of the type.
|
||
|
||
2015-11-18 Nicolas Roche <roche@adacore.com>
|
||
|
||
* sysdep.c (__gnat_localtime_tzoff): On Windows platform
|
||
GetTimeZoneInformation function is thread-safe. Thus there
|
||
is no need to lock the runtime in the implementation of
|
||
__gnat_localtime_tzoff on that platform.
|
||
|
||
2015-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* s-arit64.adb (To_Neg_Int): Add a special case for 2**63 input.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* contracts.adb (Analyze_Contracts): New routine.
|
||
(Analyze_Enclosing_Package_Body_Contract): Removed.
|
||
(Analyze_Entry_Or_Subprogram_Contract): Add formal parameter
|
||
Freeze_Id. Propagate the entity of the freezing body to vaious
|
||
analysis routines.
|
||
(Analyze_Initial_Declaration_Contract): Removed.
|
||
(Analyze_Object_Contract): Add formal parameter
|
||
Freeze_Id. Propagate the entity of the freezing body to vaious
|
||
analysis routines.
|
||
(Analyze_Previous_Contracts): New routine.
|
||
* contracts.ads (Analyze_Enclosing_Package_Body_Contract): Removed.
|
||
(Analyze_Contracts): New routine.
|
||
(Analyze_Entry_Or_Subprogram_Contract): Add formal
|
||
parameter Freeze_Id and update the comment on usage.
|
||
(Analyze_Initial_Declaration_Contract): Removed.
|
||
(Analyze_Object_Contract): Add formal parameter Freeze_Id and
|
||
update the comment on usage.
|
||
(Analyze_Previous_Contracts): New routine.
|
||
* sem_ch3.adb (Analyze_Declarations): Use Analyze_Contracts to
|
||
analyze all contracts of eligible constructs.
|
||
* sem_ch6.adb (Analyze_Generic_Subprogram_Body):
|
||
A body no longer freezes the contract of its initial
|
||
declaration. This effect is achieved through different means.
|
||
(Analyze_Subprogram_Body_Helper): A body now freezes the contracts
|
||
of all eligible constructs that precede it. A body no longer
|
||
freezes the contract of its initial declaration. This effect is
|
||
achieved through different means.
|
||
* sem_ch7.adb (Analyze_Package_Body_Helper): A body now freezes
|
||
the contracts of all eligible constructs that precede it. A body
|
||
no longer freezes the contract of its initial declaration. This
|
||
effect is achieved through different means.
|
||
* sem_ch9.adb (Analyze_Entry_Body): A body now freezes
|
||
the contracts of all eligible constructs that precede
|
||
it. A body no longer freezes the contract of its initial
|
||
declaration. This effect is achieved through different means.
|
||
(Analyze_Protected_Body): A body now freezes the contracts
|
||
of all eligible constructs that precede it. A body no longer
|
||
freezes the contract of its initial declaration. This effect
|
||
is achieved through different means.
|
||
(Analyze_Task_Body): A
|
||
body now freezes the contracts of all eligible constructs that
|
||
precede it. A body no longer freezes the contract of its initial
|
||
declaration. This effect is achieved through different means.
|
||
* sem_prag.adb (Add_Item_To_Name_Buffer): Single protected/task
|
||
objects now output their respective current instance of xxx
|
||
type messages. (Analyze_Contract_Cases_In_Decl_Part): Add
|
||
formal parameter Freeze_Id. Emit a clarification message
|
||
when an undefined entity may the byproduct of contract
|
||
freezing.
|
||
(Analyze_Part_Of_In_Decl_Part): Add formal
|
||
parameter Freeze_Id. Emit a clarification message when an
|
||
undefined entity may the byproduct of contract freezing.
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part): Add formal
|
||
parameter Freeze_Id. Emit a clarification message when an
|
||
undefined entity may the byproduct of contract freezing.
|
||
(Analyze_Refined_State_In_Decl_Part): Do not report unused body
|
||
states as constituents of single protected/task types may not
|
||
bave been identified yet.
|
||
(Collect_Subprogram_Inputs_Outputs):
|
||
Reimplemented. (Contract_Freeze_Error): New routine.
|
||
(Process_Overloadable): Use predicate Is_Single_Task_Object.
|
||
* sem_prag.ads (Analyze_Contract_Cases_In_Decl_Part):
|
||
Add formal parameter Freeze_Id and update the comment
|
||
on usage.
|
||
(Analyze_Part_Of_In_Decl_Part): Add formal
|
||
parameter Freeze_Id and update the comment on usage.
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part): Add formal parameter
|
||
Freeze_Id and update the comment on usage.
|
||
* sem_util.adb (Check_Unused_Body_States): Remove global
|
||
variable Legal_Constits. The routine now reports unused
|
||
body states regardless of whether constituents are
|
||
legal or not.
|
||
(Collect_Body_States): A constituent of a
|
||
single protected/task type is not a visible state of a
|
||
package body.
|
||
(Collect_Visible_States): A constituent
|
||
of a single protected/task type is not a visible
|
||
state of a package body.
|
||
(Has_Undefined_Reference): New routine.
|
||
(Is_Single_Concurrent_Object): Reimplemented.
|
||
(Is_Single_Protected_Object): New routine.
|
||
(Is_Single_Task_Object): New routine.
|
||
(Is_Visible_Object): New routine.
|
||
(Report_Unused_Body_States): Moved to Check_Unused_Body_States.
|
||
* sem_util.ads (Check_Unused_Body_States): Update the comment on usage.
|
||
(Has_Undefined_Reference): New routine.
|
||
(Is_Single_Protected_Object): New routine.
|
||
(Is_Single_Task_Object): New routine.
|
||
(Report_Unused_Body_States): Moved to Check_Unused_Body_States.
|
||
|
||
2015-11-18 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* Makefile.rtl, impunit.adb: Add g-strhas.ads.
|
||
* g-strhas.ads: New file.
|
||
* s-strhas.ads: Add a comment to redirect users to g-strhas.ads.
|
||
|
||
2015-11-18 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_elab.adb (Check_Internal_Call_Continue): Fix the case
|
||
where the call in question is to a renaming of a subprogram that
|
||
can be safely called without ABE.
|
||
* checks.adb: Minor edits.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* atree.adb (Elist11): New routine.
|
||
(Set_Elist11): New routine.
|
||
* atree.ads (Elist11): New routine.
|
||
(Set_Elist11): New routine.
|
||
* atree.h: Define Elist11.
|
||
* contracts.adb (Analyze_Object_Contract): Verify the legality
|
||
of all references to a variable given that the variable is a
|
||
constituent of a single protected/task type.
|
||
* einfo.adb: Part_Of_References now utilizes Elist11.
|
||
(Part_Of_References): New routine.
|
||
(Set_Part_Of_References): New routine.
|
||
(Write_Field11_Name): Add output for Part_Of_References.
|
||
* einfo.ads New attribute Part_Of_References along with usage
|
||
in entities.
|
||
(Part_Of_References): New routine along with
|
||
pragma Inline.
|
||
(Set_Part_Of_References): New routine along with pragma Inline.
|
||
* sem_prag.adb (Analyze_Constituent): Record a possible
|
||
reference to a concurrent constituent.
|
||
(Analyze_Global_Item): Record a possible reference to a concurrent
|
||
constituent.
|
||
(Analyze_Input_Output): Record a possible reference to a
|
||
concurrent constituent.
|
||
* sem_res.adb (Resolve_Entity_Name): Record a possible reference
|
||
to a concurrent constituent.
|
||
* sem_util.adb (Check_Part_Of_Reference): New routine.
|
||
(Record_Possible_Part_Of_Reference): New routine.
|
||
* sem_util.ads (Check_Part_Of_Reference): New routine.
|
||
(Record_Possible_Part_Of_Reference): New routine.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
|
||
An if_expression is the proper place to apply the overflow
|
||
minimization procedure if its context is not an enclosing
|
||
arithmetic expression.
|
||
|
||
2015-11-18 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat_ugn/gnat_project_manager.rst,
|
||
gnat_ugn/building_executable_programs_with_gnat.rst,
|
||
gnat_ugn/gnat_and_program_execution.rst,
|
||
gnat_ugn/the_gnat_compilation_model.rst,
|
||
gnat_rm/implementation_defined_pragmas.rst,
|
||
gnat_rm/standard_and_implementation_defined_restrictions.rst,
|
||
gnat_ugn.texi, gnat_rm.texi: Update doc.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* contracts.adb (Add_Contract_Item): Chain pragmas Attach_Handler
|
||
and Interrupt_Handler on the classifications list of a [generic]
|
||
procedure N_Contract node.
|
||
* contracts.ads (Add_Contract_Item): Update the comment on usage.
|
||
* einfo.adb (Get_Pragma): Pragmas Attach_Handler and
|
||
Interrupt_Handler are found on the classifications list of
|
||
N_Contract nodes.
|
||
* einfo.ads (Get_Pragma): Update the comment on usage.
|
||
* sem_prag.adb (Process_Interrupt_Or_Attach_Handler): Code
|
||
reformatting. Store the pragma as a contract item.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb (Available_Subtype): Use only in GNATprove
|
||
mode. When generating code it may be necessary to create itypes
|
||
at the point of use of a selected component, for example in the
|
||
expansion of a record equality operation.
|
||
|
||
2015-11-18 Vincent Celier <celier@adacore.com>
|
||
|
||
* s-os_lib.adb (Normalize_Pathname.Get_Directory): When
|
||
invoking Normalize_Pathname, use the same values for parameters
|
||
Resolve_Links and Case_Sensitive as the parent Normalize_Pathname.
|
||
|
||
2015-11-18 Vincent Celier <celier@adacore.com>
|
||
|
||
* a-direct.adb (Containing_Directory): Return "." when the result
|
||
is the current directory, not specified as an absolute path name.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_aggr.adb (Is_Completely_Hidden_Discriminant): New routine.
|
||
(Init_Hidden_Discriminants): Code reformatting. Do not initialize
|
||
a completely hidden discriminant.
|
||
* a-interr.ads (Get_CPU): Added SPARK_Mode, Volatile_Function
|
||
and Global aspects on the function.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_intr.adb (Expand_Unc_Deallocation): If the designated
|
||
type is a concurrent type, the deallocation applies to the
|
||
corresponding record type, or to its class-wide type if the type
|
||
is tagged.
|
||
|
||
2015-11-18 Doug Rupp <rupp@adacore.com>
|
||
|
||
* s-parame-vxworks.adb: Reduce default stack size for stack
|
||
limit check to a reasonable value
|
||
* s-tpopsp-vxworks.adb: Make Stack_Limit a task variable for vx5 and
|
||
vxmils.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Assignment): Diagnose assignment where
|
||
left-hand side has a limited view of a class-wide type.
|
||
* sem_ch6.adb (Detected_And_Exchange): Do not install a non-limited
|
||
view if the scope of the type of the formal is visible through
|
||
a limited_with_clause, even if the non-limited view is available.
|
||
|
||
2015-11-18 Emmanuel Briot <briot@adacore.com>
|
||
|
||
* s-pooglo.ads: Make Global_Pool_Object aliased.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute, case 'Access): If the prefix
|
||
is an expression function, do not analyze the generated body if
|
||
the current scope is not the scope of the expression function,
|
||
as may happen if the attribute is an actual in an instantiation.
|
||
* sem_ch10.adb, sem_ch12.adb, a-stzmap.adb, s-soflin.adb,
|
||
a-stwima.adb: Fix typos.
|
||
|
||
2015-11-18 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_ch11.adb (Expand_N_Exception_Declaration): No-op when
|
||
generating C code.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
PR ada/66242
|
||
* exp_ch3.adb (Default_Initialize_Object): Reimplemented. Abort
|
||
defer / undefer pairs are now encapsulated in a block with
|
||
an AT END handler. Partial finalization now takes restriction
|
||
No_Exception_Propagation into account when generating blocks.
|
||
* exp_ch7.adb Various reformattings.
|
||
(Create_Finalizer): Change
|
||
the generation of abort defer / undefer pairs and explain the
|
||
lack of an AT END handler.
|
||
(Process_Transient_Objects): Add generation of abort defer/undefer
|
||
pairs.
|
||
* exp_ch9.adb Various reformattings.
|
||
(Build_Protected_Subprogram_Body): Use
|
||
Build_Runtime_Call to construct a call to Abort_Defer.
|
||
(Build_Protected_Subprogram_Call_Cleanup): Use
|
||
Build_Runtime_Call to construct a call to Abort_Undefer.
|
||
(Expand_N_Asynchronous_Select): Use Build_Runtime_Call to
|
||
construct a call to Abort_Defer.
|
||
* exp_intr.adb (Expand_Unc_Deallocation): Abort defer
|
||
/ undefer pairs are now encapsulated in a block with
|
||
an AT END handler. Finalization now takes restriction
|
||
No_Exception_Propagation into account when generating blocks.
|
||
* exp_util.ads, exp_util.adb (Wrap_Cleanup_Procedure): Removed.
|
||
|
||
2015-11-18 Vincent Celier <celier@adacore.com>
|
||
|
||
* g-comlin.adb (Find_Longest_Matching_Switch): Do not take into
|
||
account a switch ending with '=' when the actual command line
|
||
switch is not followed with a space or '='.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Explicit_Dereference): Do not add an access
|
||
check if the type of the prefix is known to exclude null.
|
||
* a-coinve.adb (Get_Element_Access): The function returns an
|
||
access type that excludes null, so add an explicit check for
|
||
a null element pointer, which is created when Insert_Spaces is
|
||
called on an indefinite vector container.
|
||
|
||
2015-11-18 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* switch-c.adb (Scan_Front_End_Switches): Add a check requiring
|
||
-gnatc with -gnateg.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch7.adb (Uninstall_Declarations): Before swapping private
|
||
and full views, ensure that the potential use visbility of the
|
||
two views is consistent.
|
||
|
||
2015-11-18 Doug Rupp <rupp@adacore.com>
|
||
|
||
* s-parame-vxworks.adb: Increase default stack size for targets
|
||
using stack limit checking.
|
||
|
||
2015-11-18 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* a-interr.adb, a-interr.ads (Ada.Interrupts.Get_CPU): Add this
|
||
function that was added to Ada 2005 returning the processor where
|
||
interrupt handlers execute.
|
||
|
||
2015-11-18 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* exp_ch9.adb (Is_Pure_Barrier): Handle expanded component
|
||
declaration of a protected definition.
|
||
|
||
2015-11-18 Ed Falis <falis@adacore.com>
|
||
|
||
* s-soflin.adb, s-stchop-vxworks.adb: Code clean ups.
|
||
|
||
2015-11-18 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* bcheck.adb: Minor editorial changes.
|
||
|
||
2015-11-18 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* interfac.ads (Unsigned_24): New type.
|
||
* sem_ch13.adb (Validate_Unchecked_Conversion): Disable error on
|
||
unconstrained arrays in Relaxed_RM_Semantics mode.
|
||
|
||
2015-11-18 Vincent Celier <celier@adacore.com>
|
||
|
||
* bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking): No
|
||
warning is withed unit is the interface of a Stand-Alone Library.
|
||
|
||
2015-11-18 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* s-os_lib.ads, s-os_lib.adb(Normalize_Pathname): Support the case of
|
||
an unresolved Directory argument, by recursively resolving it
|
||
against the current dir.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Process_Formals): A function declaration that
|
||
returns a class-wide type must have freeing deferred, so that it
|
||
is not frozen before the class-wide type and its root type are
|
||
frozen. This is significant when there may be a limited view of
|
||
the class_wide type in another package.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.adb (Has_Non_Null_Refinement): Rename to
|
||
Has_Non_Null_Visible_Refinement.
|
||
(Has_Null_Refinement): Rename to Has_Null_Visible_Refinement.
|
||
* einfo.ads Update the documentation of
|
||
attribute Has_Non_Null_Refinement and attribute Has_Null_Refinement.
|
||
(Has_Non_Null_Refinement): Rename to Has_Non_Null_Visible_Refinement
|
||
and update occurrences in entities.
|
||
(Has_Null_Refinement): Rename to Has_Null_Visible_Refinement and update
|
||
occurrences in entities.
|
||
* sem_prag.adb (Check_In_Out_States): Update the calls to
|
||
Has_[Non_]Null_Refinement.
|
||
(Check_Input_States): Update the
|
||
calls to Has_[Non_]Null_Refinement.
|
||
(Check_Output_States): Update the calls to Has_[Non_]Null_Refinement.
|
||
(Check_Proof_In_States): Update the calls to Has_[Non_]Null_Refinement.
|
||
(Collect_Global_Item): Update the calls to Has_[Non_]Null_Refinement.
|
||
(Is_Null_Refined_State): Update the calls to Has_[Non_]Null_Refinement.
|
||
(Match_Item): Update the calls to Has_[Non_]Null_Refinement.
|
||
* sem_util.adb (Has_Non_Null_Refinement): New routine.
|
||
(Has_Null_Refinement): New routine.
|
||
* sem_util.ads (Has_Non_Null_Refinement): New routine.
|
||
(Has_Null_Refinement): New routine.
|
||
|
||
2015-11-18 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_util.adb: Minor reformatting and typo fixes.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch4.adb: Minor reformatting.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_util.adb (Expand_Subtype_From_Expr): Add new formal
|
||
parameter Related_Id and propagate it to Make_Subtype_From_Expr.
|
||
(Make_Subtype_From_Expr): Add new formal parameter
|
||
Related_Id. Create external entities when requested by the caller.
|
||
* exp_util.ads (Expand_Subtype_From_Expr): Add new formal
|
||
parameter Related_Id. Update the comment on usage.
|
||
(Make_Subtype_From_Expr): Add new formal parameter
|
||
Related_Id. Update the comment on usage.
|
||
* sem_ch3.adb (Analyze_Object_Declaration): Add local variable
|
||
Related_Id. Generate an external constrained subtype when the
|
||
object is a public symbol.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Update the grammars of pragmas
|
||
Abstract_State, Depends, Global, Initializes, Refined_Depends,
|
||
Refined_Global and Refined_State.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_util.adb (Has_Full_Default_Initialization):
|
||
Perform the test for the presence of pragma
|
||
Default_Initial_Condition prior to the specialized type
|
||
checks. Add a missing case where the lack of a pragma argument
|
||
yields full default initialization.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Entity_Name): Do not check
|
||
for elaboration issues when a variable appears as the name of
|
||
an object renaming declaration as this constitutes an aliasing,
|
||
not a read.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* checks.adb (Overlap_Check): An actual that is an aggregate
|
||
cannot overlap with another actual, and no check should be
|
||
generated for it.
|
||
* targparm.ads: Fix typos.
|
||
|
||
2015-11-18 Pascal Obry <obry@adacore.com>
|
||
|
||
* adaint.c: Routine __gnat_killprocesstree only implemented on
|
||
Linux and Windows.
|
||
|
||
2015-11-18 Pascal Obry <obry@adacore.com>
|
||
|
||
* g-ctrl_c.adb: Minor style fixes.
|
||
|
||
2015-11-18 Pascal Obry <obry@adacore.com>
|
||
|
||
* adaint.c, s-os_lib.adb, s-os_lib.ads (Kill_Process_Tree): New.
|
||
|
||
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_util.adb (Check_Nonvolatile_Function_Profile): Place the error
|
||
message concerning the return type on the result definition.
|
||
(Is_Volatile_Function): A function with a parameter of a protected
|
||
type is a protected function if it is defined within a protected
|
||
definition.
|
||
|
||
2015-11-18 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Try_Container_Indexing): When building the
|
||
parameter list for the function call on indexing functions,
|
||
preserve overloading of the parameters, which may themselves be
|
||
generalized indexing operations.
|
||
|
||
2015-11-13 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
PR ada/68345
|
||
* s-osinte-dragonfly.ads (Get_Page_Size): C function returns an int.
|
||
|
||
2015-11-13 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* gcc-interface/trans.c (Sloc_to_locus): Add line_table param when
|
||
calling linemap_position_for_line_and_column.
|
||
|
||
2015-11-13 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_attr.adb: Minor reformatting.
|
||
|
||
2015-11-13 Pascal Obry <obry@adacore.com>
|
||
|
||
* adaint.c: Ensure that it is possible to get killed process
|
||
status on Windows.
|
||
|
||
2015-11-13 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/platform_specific_information.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/compatibility_and_porting_guide.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:
|
||
Update documentation.
|
||
|
||
2015-11-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sigtramp-ios.c, init.c: Minor cosmetic tweaks.
|
||
|
||
2015-11-13 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* s-gloloc.adb, g-debpoo.adb: Minor reformatting.
|
||
|
||
2015-11-13 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Iterator_Specification): Improve error
|
||
message for the case the iterable name (array or container)
|
||
is a component that depends on a discriminant.
|
||
|
||
2015-11-13 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Indicate_Name_And_Type): If the analysis of
|
||
one interpretation succeeds, set type of name in call, for
|
||
completeness.
|
||
(Try_Container_Indexing): If there are multiple indexing
|
||
functions, collect possible interpretations that are compatible
|
||
with given parameters, and add implicit dereference types when
|
||
present.
|
||
* sem_util.adb (Build_Explicit_Dereference): If the expression
|
||
is an overloaded function call use the given discriminant to
|
||
resolve the call, and set properly the type of the call and of
|
||
the resulting dereference.
|
||
|
||
2015-11-13 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Pragma Constant_After_Elaboration can
|
||
now apply to a variable without an initialization expression.
|
||
|
||
2015-11-13 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch9.adb (Add_Matching_Formals): Parameter Actuals is now of mode
|
||
IN OUT. Create a new list when list Actuals is not present.
|
||
(Build_Contract_Wrapper): Create the wrapper
|
||
only when the entry has at least on checked contract case or
|
||
pre/postcondition. Ensure that the call to the original entry
|
||
lacks an actual parameter list when the entry appears without
|
||
formal parameters.
|
||
(Expand_Entry_Declaration): Code cleanup.
|
||
|
||
2015-11-13 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Continue the analysis
|
||
after encountering an illegal aspect Part_Of.
|
||
|
||
2015-11-13 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_attr.adb (Expand_N_Attribute_Reference, case
|
||
Overlaps_Storage): Add copies for nodes that represent the integer
|
||
addresses of the two actuals, to prevent identical nodes in the
|
||
tree, which the backend cannot handle properly.
|
||
|
||
2015-11-13 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Private_Overriding): Change
|
||
name of Parent_Is_Private to be Overrides_Private_Part_Op,
|
||
and use Unit_Declaration_Node.
|
||
|
||
2015-11-13 Bob Duff <duff@adacore.com>
|
||
|
||
* sinfo.ads: Minor comment fix.
|
||
* sem_ch6.adb: Minor reformatting.
|
||
|
||
2015-11-13 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* tracebak.c: Do not use the GCC Unwinder to retrieve traceback
|
||
for x86_64-vx7.
|
||
|
||
2015-11-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* init.c [Darwin/arm64]: Fix typo.
|
||
* sigtramp-armios.c: Remove.
|
||
* sigtramp-ios.c: New file.
|
||
|
||
2015-11-13 Doug Rupp <rupp@adacore.com>
|
||
|
||
* s-stchop-vxworks.adb (Set_Stack_Limit_For_Current_Task): Set stack
|
||
limit to 12000 decimal vice 12000 hexadecimal.
|
||
|
||
2015-11-13 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch9.adb, exp_fixd.adb, exp_util.adb, g-debpoo.adb,
|
||
impunit.adb, scos.ads, sem_ch4.adb, sem_prag.adb,
|
||
s-stchop-vxworks.adb: Minor reformatting.
|
||
|
||
2015-11-13 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* s-rident.ads (Profile_Info): Enable Pure_Barriers for
|
||
GNAT_Extended_Ravenscar.
|
||
|
||
2015-11-13 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Private_Overriding): Detect the special
|
||
case where the overriding subprogram is overriding a subprogram
|
||
that was declared in the same private part.
|
||
|
||
2015-11-13 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_ch9.adb: Minor reformatting and typo fixes.
|
||
|
||
2015-11-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* init.c [Darwin/arm64]: Move __gnat_sigtramp implementation to...
|
||
(__gnat_map_signal): New function.
|
||
(__gnat_error_handler):
|
||
Adjust the context and call above function.
|
||
* sigtramp-armios.c: ...here. New file.
|
||
|
||
2015-11-13 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* bcheck.adb (Check_Consistent_Restrictions): Do not check
|
||
consistency of No_Dependence for runtime units.
|
||
|
||
2015-11-13 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* s-rident.ads (Restriction_Id): Add Pure_Barriers.
|
||
* restrict.ads (Implementation_Restriction): Add Pure_Barriers.
|
||
* exp_ch9.adb (Expand_Entry_Barrier): Create
|
||
Is_Simple_Barrier_Name function, add Is_Pure_Barrier and
|
||
Check_Pure_Barriers.
|
||
|
||
2015-11-13 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Get_Cursor_Type): To determine whether a function
|
||
First is the proper Iterable primitive, use the base type of the
|
||
first formal rather than the type. This is needed in the unusual
|
||
case where the Iterable aspect is specified for an integer type.
|
||
|
||
2015-11-13 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Constant_Indexing_OK): If the indexing is the
|
||
prefix of a procedure call assume that constant indexing is
|
||
not chosen.
|
||
|
||
2015-11-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sigtramp.h: Fix formatting throughout, do not include other
|
||
headers, add missing preprocessor condition and 'extern' keywords.
|
||
* sigtramp-armdroid.c: Include <sys/ucontext.h>.
|
||
* init.c [Android]: Likewise.
|
||
|
||
2015-11-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* init.c [Darwin/arm64] (__gnat_sigtramp): Do not increment PC,
|
||
fix CFI and add return sequence.
|
||
|
||
2015-11-13 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_fixd.adb (Expand_Convert_Float_To_Fixed): If the conversion
|
||
comes from an attribute reference 'Round, the operation must
|
||
round and not truncate.
|
||
* sem_res.adb, sem_ch6.adb: Minor editing.
|
||
|
||
2015-11-12 Philippe Gil <gil@adacore.com>
|
||
|
||
* g-debpoo.adb (Print_Address): print address in hexadecimal as
|
||
in previous GNAT version (without secondary stack use)
|
||
(Deallocate): Deallocate calling once Unlock_Task.all when it
|
||
raise exception.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Subtype_Declaration): Remove redundant
|
||
copying of dimensions from parent type to subtype. This is
|
||
properly done in Analyze_Dimension.
|
||
* sem_dim.adb (Analyze_Dimension_Subtype_Declaration): Add entity
|
||
to error message, so that reference to entity can be formatted
|
||
properly.
|
||
* opt.ads: Fix typo.
|
||
|
||
2015-11-12 Bob Duff <duff@adacore.com>
|
||
|
||
* impunit.adb, lib-xref.ads, restrict.ads, scos.ads, sem_attr.ads,
|
||
types.ads: Get rid of some global variables.
|
||
* output.adb, output.ads: Move some global variables to the body.
|
||
|
||
2015-11-12 Yannick Moy <moy@adacore.com>
|
||
|
||
* lib-xref-spark_specific.adb
|
||
(Is_Constant_Object_Without_Variable_Input): Add special case
|
||
for imported constants.
|
||
|
||
2015-11-12 Philippe Gil <gil@adacore.com>
|
||
|
||
* g-debpoo.adb (Allocate): Avoid having allocations not handled.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* checks.adb (Apply_Scalar_Range_Check): If the expression is
|
||
a real literal and the context type has static bounds, remove
|
||
range check when possible.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Collect_Primitive_Operations): If the type is
|
||
derived from a type declared elsewhere that has an incomplete
|
||
type declaration, the primitives are found in the scope of the
|
||
type nat that of its ancestor.
|
||
|
||
2015-11-12 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* switch-c.adb, debug.adb, osint-c.adb, gnat1drv.adb: Remove -gnatd.V
|
||
debug switch.
|
||
* exp_aggr.adb, exp_util.adb: Fix typos.
|
||
|
||
2015-11-12 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* init.c: Properly adjust PC values in case of signals.
|
||
|
||
2015-11-12 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_prag.adb (Check_Arg_Is_Library_Level_Local_Name): A
|
||
pragma that comes from an aspect does not "come from source",
|
||
so we need to test whether it comes from an aspect.
|
||
|
||
2015-11-12 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* switch-c.adb, gnat1drv.adb, opt.ads: Reserve -gnateg for generation
|
||
of C headers.
|
||
|
||
2015-11-12 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* back_end.adb, opt.ads (Debugger_Level): Update comment.
|
||
(Scan_Back_End_Switches): Set Debugger_Level.
|
||
|
||
2015-11-12 Bob Duff <duff@adacore.com>
|
||
|
||
* fmap.adb, debug.ads, checks.adb, exp_ch11.adb: Minor edits.
|
||
|
||
2015-11-12 Doug Rupp <rupp@adacore.com>
|
||
|
||
* s-stchop-vxworks.adb (Stack_Limit): Export vice Import.
|
||
|
||
2015-11-12 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_dim.adb: Minor reformatting.
|
||
|
||
2015-11-12 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* gnat1drv.adb, opt.ads: Minor reformatting.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Number_Declaration): Call Analyze_Dimension,
|
||
to propagate dimension information from expression to named
|
||
number.
|
||
* sem_dim.ads: Documentation: number declaration and explicit
|
||
dereference can carry dimension information.
|
||
* sem_dim.adb (Analyze_Dimension_Number_Declaration): New
|
||
procedure, to propagate dimension information from expression
|
||
of declaration to named number, whose type becomes one of the
|
||
dimensioned base types rather than universal real.
|
||
(Analyze_Dimension_Binary_Op):
|
||
a) If one operand is a literal that is the value of a declared
|
||
constant after constant-foloding, use the dimensions of the
|
||
declared constant.
|
||
b) If an operand is a literal that is a contant-folded expression,
|
||
and expander is active, do not report a dimension mismatch if
|
||
literal does not carry them, because dimension matching will
|
||
have been checked previously.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb (Find_Selected_Component): In a synchronized
|
||
body, a reference to an operation of an object of the same
|
||
synchronized type was always interpreted as a reference to the
|
||
current instance. This is not always the case, as the prefix of
|
||
the reference may designate an object of the same type declared
|
||
in the enclosing context prior to the body.
|
||
|
||
2015-11-12 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* impunit.ads, impunit.adb (Get_Kind_Of_File): New. Cleaned up
|
||
implementation from previous Get_Kind_Of_Unit.
|
||
(Get_Kind_Of_Unit): Reimplemented using Get_Kind_Of_File.
|
||
* debug.adb: Remove d.4 switch, no longer used.
|
||
* opt.ads: Update doc on Debugger_Level.
|
||
* gnat1drv.adb: Code clean ups.
|
||
* sinput.ads: minor fix in comment
|
||
|
||
2015-11-12 Bob Duff <duff@adacore.com>
|
||
|
||
* sinfo.adb, sinfo.ads, sem_ch6.adb, atree.ads: Add
|
||
Was_Expression_Function flag, which is set in sem_ch6.adb when
|
||
converting an Expression_Function into a Subprogram_Body.
|
||
|
||
2015-11-12 Pascal Obry <obry@adacore.com>
|
||
|
||
* usage.adb: Update overflow checking documentation.
|
||
|
||
2015-11-12 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* snames.ads-tmpl: Name_Gnat_Extended_Ravenscar: New identifier.
|
||
* s-rident.ads (Profile_Name): Add GNAT_Extended_Ravenscar.
|
||
(Profile_Info): Add new entry for GNAT_Extended_Ravenscar.
|
||
* sem_prag.adb (Set_Ravenscar_Profile): Add Profile parameter
|
||
to handle various ravenscar profiles. Adjust error messages.
|
||
(Analyze_Pragma): Handle GNAT_Extended_Ravenscar profile.
|
||
* targparm.adb (Get_Target_Parameters): Handle
|
||
GNAT_Extended_Ravenscar profile.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_warn.adb (Warn_On_Unreferenced_Entity): If the entity is an
|
||
Out_Parameter the front-end does not emit any warning on it, so
|
||
do not suppress warnings on the entity because the backend might
|
||
be able to determine an uninitialized path and warn accordingly.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Analyze_Selected_Component): Diagnose an attempt
|
||
to reference an internal entity from a synchronized type from
|
||
within the body of that type, when the prefix of the selected
|
||
component is not the current instance.
|
||
|
||
2015-11-12 Ed Falis <falis@adacore.com>
|
||
|
||
* s-stchop-vxworks.adb: Clean up in stack checking code.
|
||
|
||
2015-11-12 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_ch6.adb (Is_Build_In_Place_Function_Call):
|
||
Test Expression (N) in N_Type_Conversion cases as well,
|
||
since conversions can occur in actual parameter contexts.
|
||
(Make_Build_In_Place_Call_In_Anonymous_Context): Retrieve
|
||
function call from Expression (Func_Call) when Nkind (Func_Call)
|
||
is N_Type_Conversion, since conversions are allowed in "anonymous"
|
||
contexts (specifically, as actual parameters).
|
||
|
||
2015-11-12 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* sem_ch4.adb (analyze_If_Expression): Reject IF-expression where
|
||
THEN-expression is overloaded and none of its interpretation is
|
||
compatible with the ELSE-expression.
|
||
|
||
2015-11-12 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* init.c: Do not try to mess with the MSR values in RTP mode:
|
||
not needed and forbidden.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install
|
||
full view of a type that has pragma Stream_Convert, because
|
||
this indicates special processing for the stream operations of
|
||
the type.
|
||
|
||
2015-11-12 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* init.c: Do not try to mess with the MSR values in RTP mode:
|
||
not needed and forbidden.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install
|
||
full view of a type that has pragma Stream_Convert, because
|
||
this indicates special processing for the stream operations of
|
||
the type.
|
||
|
||
2015-11-12 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_ch5.adb, sem_ch3.adb, exp_util.ads, inline.adb, freeze.adb,
|
||
sem_util.adb, sem_util.ads, par-ch6.adb, sem_elab.adb: Minor
|
||
reformatting and a typo fix.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Preanalyze_Actuals): Add guard on use of
|
||
Incomplete_Actuals, which are only stored for a package
|
||
instantiation, in order to place the instance in the body of
|
||
the enclosing unit.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_intr.adb: Add legality checks on calls to a
|
||
Generic_Dispatching_Constructor: the given tag must be defined,
|
||
it cannot be the tag of an abstract type, and its accessibility
|
||
level must not be greater than that of the constructor.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Try_Container_Indexing, Constant_Indexing_OK): If
|
||
the context is an overloaded call, assume that Constant_Indexing
|
||
is not OK if an interpretation has an assignable parameter
|
||
corresponding to the indexing expression.
|
||
|
||
2015-11-12 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* init.c (__gnat_error_handler): Force the SPE bit of the MSR
|
||
when executing on e500v2 CPU.
|
||
|
||
2015-11-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Constituent): Stop the
|
||
analysis after detecting a misplaced constituent as this is a
|
||
critical error.
|
||
|
||
2015-11-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch10.adb, atree.adb: Minor reformatting.
|
||
|
||
2015-11-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_elab.adb (Check_A_Call): Add new variable
|
||
Is_DIC_Proc. Report elaboration issue in SPARK concerning calls
|
||
to source subprograms or nontrivial Default_Initial_Condition
|
||
procedures. Add specialized error message to avoid outputting
|
||
the internal name of the Default_Initial_Condition procedure.
|
||
* sem_util.ads, sem_util.adb
|
||
(Is_Non_Trivial_Default_Init_Cond_Procedure): New routine.
|
||
|
||
2015-11-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
|
||
Remove the guard concerning entry bodies as it is spurious.
|
||
(Analyze_Entry_Or_Subprogram_Contract): Skip the analysis of
|
||
Contract_Cases when not annotating the tree.
|
||
* einfo.adb: Node25 is now used as Contract_Wrapper.
|
||
(Contract_Wrapper): New routine.
|
||
(PPC_Wrapper): Removed.
|
||
(Set_Contract_Wrapper): New routine.
|
||
(Set_PPC_Wrapper): Removed.
|
||
(Write_Field25_Name): Add output for Contract_Wrapper. Remove
|
||
output for PPC_Wrapper.
|
||
* einfo.ads: New attribute Contract_Wrapper along with usage
|
||
in entities. Remove attribute PPC_Wrapper along with usage in nodes.
|
||
(Contract_Wrapper): New routine along with pragma Inline.
|
||
(PPC_Wrapper): Removed along with pragma Inline.
|
||
(Set_Contract_Wrapper): New routine along with pragma Inline.
|
||
(Set_PPC_Wrapper): Removed along with pragma Inline.
|
||
* exp_ch9.adb (Build_Contract_Wrapper): New routine.
|
||
(Build_PPC_Wrapper): Removed.
|
||
(Build_Protected_Entry): Code cleanup.
|
||
(Expand_Entry_Declaration): Create a contract wrapper
|
||
which now verifies Contract_Cases along with pre/postconditions.
|
||
(Expand_N_Task_Type_Declaration): There is no need to check
|
||
whether an entry has pre/postconditions as this is now done
|
||
in Build_Contract_Wrapper.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Pragma
|
||
Refined_Post is now properly inserted in entry bodies.
|
||
(Insert_Pragma): Add circuitry to insert in an entry body. Redo
|
||
the instance "header" circuitry. Remove the now obsolete special
|
||
case of inserting pre- conditions.
|
||
* sem_prag.adb (Analyze_Pragma): Pragma Contract_Cases now
|
||
applies to entries.
|
||
* sem_res.adb (Resolve_Entry_Call): Update the calls to
|
||
PPC_Wrapper.
|
||
|
||
2015-11-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_attr.adb, freeze.adb, sem_util.adb, sem_ch13.adb: Minor
|
||
reformatting.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_attr.adb (Compile_Stream_Body_In_Scope): When compiling
|
||
a stream operation for an array type, install the scope of the
|
||
component type if it is private and not in scope, to prevent
|
||
spurious errors if the full view of the component type has
|
||
defaulted discriminants.
|
||
|
||
2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): For a
|
||
variable, if this is not an overlay, set on Treat_As_Volatile on it.
|
||
* gcc-interface/decl.c (E_Variable): Do not force the type to volatile
|
||
for address clauses. Tweak and adjust various RM references.
|
||
|
||
2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* checks.ads: Minor comment fix.
|
||
|
||
2015-11-12 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat_rm.texi, gnat_ugn.texi,
|
||
doc/gnat_ugn/platform_specific_information.rst,
|
||
doc/gnat_ugn/gnat_and_program_execution.rst,
|
||
doc/gnat_ugn/the_gnat_compilation_model.rst,
|
||
doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
|
||
doc/gnat_rm/implementation_defined_pragmas.rst: Update documentation.
|
||
|
||
2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Overlays_Constant): Document usage for E_Constant.
|
||
* freeze.adb (Warn_Overlay): Small reformatting.
|
||
(Check_Address_Clause): Deal specifically with deferred
|
||
constants. For a variable or a non-imported constant
|
||
overlaying a constant object and with initialization value,
|
||
either remove the initialization or issue a warning. Fix a
|
||
couple of typos.
|
||
* sem_util.adb (Note_Possible_Modification): Overhaul the condition for
|
||
the warning on modified constants and use Find_Overlaid_Entity instead
|
||
of doing it manually.
|
||
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Compute and
|
||
set Overlays_Constant once on entry. Do not treat the overlaid
|
||
entity as volatile. Do not issue the warning on modified
|
||
constants here.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove
|
||
over-restrictive condition for the special treatment of deferred
|
||
constants.
|
||
<E_Variable>: Remove obsolete associated code.
|
||
|
||
2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Renaming_Decl>: Do
|
||
not materialize renamed subprograms if only annotating types.
|
||
|
||
2015-11-12 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Create
|
||
IMPORTED_DECL nodes to describe the subprogram renamings which
|
||
are relevant at debug time.
|
||
* gcc-interface/gigi.h (get_debug_scope): Add declaration.
|
||
* gcc-interface/trans.c (Identifier_to_gnu): Consider
|
||
N_Defining_Operator_Symbol as valid entities.
|
||
(gnat_to_gnu): Handle N_Defining_Operator_Symbol the same way as
|
||
other entities. Introduce a specific handling for
|
||
N_Subprogram_Renaming_Declaration: call gnat_to_gnu_entity on
|
||
the entity defined for relevant ones.
|
||
(process_decls): Process subprogram renaming declarations during
|
||
the second pass only.
|
||
* gcc-interface/utils.c (get_debug_scope): Make it external.
|
||
Consider N_Defining_Operator_Symbol as valid entities.
|
||
(gnat_write_global_declarations): Output debugging information
|
||
for top-level imported declarations.
|
||
|
||
2015-11-12 Emmanuel Briot <briot@adacore.com>
|
||
|
||
* s-os_lib.ads: Documentation update.
|
||
|
||
2015-11-12 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-taprop-vxworks.adb, s-osinte-vxworks.ads: Use a single import of
|
||
taskDelay to avoid confusion.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Simple_Function_Return): If the return
|
||
type is class-wide and the expression is a view conversion,
|
||
remove the conversion to prevent overriding of the tag, which
|
||
must be that of the object being returned.
|
||
|
||
2015-11-12 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* bindgen.adb (Gen_Adainit): Code cleanup.
|
||
|
||
2015-11-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* s-stalib.ads: Code cleanup.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Incomplete_Type_Decl): small optimization.
|
||
(Analyze_Subtype_Declaration): For floating point types,
|
||
inherit dimensions.
|
||
(OK_For_Limited_Init_In_05): Handle properly a conditional
|
||
expression whose condition is static, and is rewritten as the
|
||
branch that will be executed.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_attr.adb (Resolve_Attribute, case 'Access): If the context
|
||
type is an access constant type, do not mark the attribute
|
||
reference as a possible modification of the prefix.
|
||
|
||
2015-11-12 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Procedure_Call) If CodePeer_Mode is True,
|
||
do not analyze the expression of a machine code insertion.
|
||
* sem_ch13.adb (Analyze_Code_Statement) If CodePeer_Mode is True,
|
||
mark the N_Code_Statement node as analyzed and do nothing else.
|
||
|
||
2015-11-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Limited_Return): Make global to package
|
||
for use elsewhere.
|
||
(Analyze_Expression_Function): Remove duplicated code, pre-analyze
|
||
expression to capture names and call Check_Limited_Return so
|
||
that semantic checks are identical to those for regular functions
|
||
returning limited types.
|
||
|
||
2015-11-12 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* bindgen.adb: Fix typo.
|
||
* sem_ch6.adb: Minor reformatting.
|
||
|
||
2015-11-12 Emmanuel Briot <briot@adacore.com>
|
||
|
||
* s-os_lib.adb (Argument_String_To_List): fix handling of
|
||
windows separators
|
||
|
||
2015-11-11 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* gcc-interface/decl.c: Remove unused header files.
|
||
* gcc-interface/misc.c: Likewise.
|
||
* gcc-interface/targtyps.c: Likewise.
|
||
* gcc-interface/trans.c: Likewise.
|
||
* gcc-interface/utils.c: Likewise.
|
||
|
||
2015-11-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (set_reverse_storage_order_on_pad_type):
|
||
Declare.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Set the
|
||
storage order on the enclosing record for a packed array type.
|
||
<E_Array_Type>: Set the storage order.
|
||
<E_Array_Subtype>: Likewise.
|
||
<E_Record_Type>: Likewise.
|
||
<E_Record_Subtype>: Likewise.
|
||
(gnat_to_gnu_component_type): Set the reverse storage order on a
|
||
padded type built for a non-bit-packed array.
|
||
(gnat_to_gnu_field): Likewise.
|
||
(components_to_record): Deal with TYPE_REVERSE_STORAGE_ORDER.
|
||
* gcc-interface/utils.c (make_packable_type): Likewise.
|
||
(pad_type_hasher::equal): Likewise.
|
||
(gnat_types_compatible_p): Likewise.
|
||
(unchecked_convert): Likewise.
|
||
(set_reverse_storage_order_on_pad_type): New public function.
|
||
* gcc-interface/trans.c (Attribute_to_gnu): Adjust call to
|
||
get_inner_reference.
|
||
* gcc-interface/utils2.c (build_unary_op): Likewise.
|
||
(gnat_build_constructor): Deal with TYPE_REVERSE_STORAGE_ORDER.
|
||
(gnat_rewrite_reference): Propagate REF_REVERSE_STORAGE_ORDER.
|
||
|
||
2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* gcc-interface/utils.c: Don't undef DEF_BUILTIN.
|
||
|
||
2015-10-29 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* gcc-interface/decl.c: Reorder #include's and remove duplicates.
|
||
* gcc-interface/misc.c: Likewise.
|
||
* gcc-interface/targtyps.c: Likewise.
|
||
* gcc-interface/trans.c: Likewise.
|
||
* gcc-interface/utils.c: Likewise.
|
||
|
||
2015-10-27 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* bindgen.adb (System_BB_CPU_Primitives_Multiprocessors_Used):
|
||
New variable.
|
||
(Gen_Adainit): Call Start_All_CPUs if the above
|
||
variable is set to true.
|
||
|
||
2015-10-27 Emmanuel Briot <briot@adacore.com>
|
||
|
||
* adaint.c, s-os_lib.adb, s-os_lib.ads (Copy_File_Attributes): New
|
||
subprogram.
|
||
|
||
2015-10-27 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* namet.adb, namet.ads: Minor reformatting.
|
||
|
||
2015-10-27 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Analyze_Allocator): Do not perform legality check
|
||
on allocators for limited objects in a qualified expression,
|
||
because expression has not been resolved.
|
||
* sem_res.adb (Resolve_Allocator): Perform check on legality of
|
||
limited objects after resolution. Add sem_ch3.adb to context.
|
||
|
||
2015-10-27 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Refined_Global_In_Decl_Part): Add variable
|
||
States.
|
||
(Check_Refined_Global_Item): An object or state acts as a
|
||
constituent only when the corresponding encapsulating state
|
||
appears in pragma Global.
|
||
(Collect_Global_Item): Add a state with non-null visible refinement to
|
||
list States.
|
||
|
||
2015-10-27 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_util.ads, par.adb, sem_ch6.adb: Minor reformatting and a few
|
||
typo corrections.
|
||
|
||
2015-10-27 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* namet.ads, namet.adb (Name_Equals): New function.
|
||
* namet.h (Name_Equals): New macro.
|
||
|
||
2015-10-27 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_ch6.adb (Build_Procedure_Form): Use 'RESULT' for the extra
|
||
parameter, to avoid ambiguity when generating tmps using _xxx which
|
||
might end up reusing _result.
|
||
|
||
2015-10-27 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_util.ads, sem_util.adb (Defining_Identifier): Adding a formal to
|
||
indicate the needed behavior in case of nodes with errors.
|
||
|
||
2015-10-27 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_attr.adb (Eval_Attribute): If the prefix of attribute
|
||
Enum_Rep is an object that is a generated loop variable for an
|
||
element iterator, no folding is possible.
|
||
* sem_res.adb (Resolve_Entity_Name): Do not check for a missing
|
||
initialization in the case of a constant that is an object
|
||
renaming.
|
||
* exp_attr.adb (Expand_N_Attribute_Reference, case Enum_Rep):
|
||
If the prefix is a constant that renames an expression there is
|
||
nothing to evaluate statically.
|
||
|
||
2015-10-27 Vincent Celier <celier@adacore.com>
|
||
|
||
* gnatlink.adb: Always delete the response file, even when the
|
||
invocation of gcc to link failed.
|
||
|
||
2015-10-27 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
|
||
Do not inherit the SPARK_Mode from the context if it has been
|
||
set already.
|
||
(Build_Subprogram_Declaration): Relocate relevant
|
||
pragmas from the subprogram body to the generated corresponding
|
||
spec. Do not copy aspect SPARK_Mode as this leads to circularity
|
||
in Copy_Separate_Tree. Inherit the attributes that describe
|
||
pragmas Ghost and SPARK_Mode.
|
||
(Move_Pragmas): New routine.
|
||
|
||
2015-10-27 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* inline.adb (Is_Expression_Function): Removed.
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): An internally
|
||
generated subprogram body that completes an expression function
|
||
inherits the SPARK_Mode from the spec.
|
||
* sem_res.adb (Resolve_Call): Update all calls to
|
||
Is_Expression_Function.
|
||
* sem_util.ads, sem_util.adb (Is_Expression_Function): Reimplemented.
|
||
(Is_Expression_Function_Or_Completion): New routine.
|
||
|
||
2015-10-27 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* lib-xref-spark_specific.adb, a-dirval-mingw.adb, exp_ch6.adb,
|
||
sem_ch8.adb, s-os_lib.adb: Minor reformatting.
|
||
|
||
2015-10-27 Yannick Moy <moy@adacore.com>
|
||
|
||
* lib-xref-spark_specific.adb
|
||
(Enclosing_Subprogram_Or_Library_Package): detect library-level
|
||
subprograms and handle entries as subprograms, i.e. now both
|
||
library-level subprograms and entry bodies act as enclosing
|
||
scopes.
|
||
(Traverse_Declarations_Or_Statements): process entry bodies just
|
||
like subprogram bodies.
|
||
* lib-xref.ads (Enclosing_Subprogram_Or_Library_Package): comment
|
||
simplified while keeping its the meaning and minor typo fixed
|
||
("of" -> "or").
|
||
* spark_xrefs.ads (Xref Section): fix in description of the ALI
|
||
line for subprogram calls; such lines start with captial "F"
|
||
followed by a space.
|
||
|
||
2015-10-27 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb (Find_Direct_Name): A parameter association is
|
||
a legal context for applying an implicit dereference.
|
||
(Analyze_Expanded_Name): Minor code cleanup.
|
||
|
||
2015-10-27 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sinput.ads, spark_xrefs.ads, lib-xref.adb: Fix typos.
|
||
|
||
2015-10-27 Pascal Obry <obry@adacore.com>
|
||
|
||
* a-dirval-mingw.adb: Remove some characters from Invalid_Character set.
|
||
|
||
2015-10-27 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch6.adb (Rewrite_Function_Call_For_C): Use a named
|
||
associaion for the added actual in the call because previous
|
||
actuals may also have been given by explicit associations.
|
||
* lib-xref.adb: Minor style fixes.
|
||
|
||
2015-10-27 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat1drv.adb: Remove hard coded restrictions.
|
||
|
||
2015-10-27 Pascal Obry <obry@adacore.com>
|
||
|
||
* a-dirval-mingw.adb: Minor reformatting.
|
||
|
||
2015-10-27 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve previous patch.
|
||
|
||
2015-10-27 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch12.adb (Analyze_Formal_Package_Declaration): Code cleanup. Set
|
||
and restore the value of global flag Ignore_Pragma_SPARK_Mode. A
|
||
formal package declaration acts as a package instantation with
|
||
respect to SPARK_Mode legality.
|
||
|
||
2015-10-27 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Check_Constituent_Usage): Use
|
||
logical operators rather than short circuit operators. Emit an
|
||
error when a state with visible refinement is not refined.
|
||
* snames.ads-tmpl: Add names for detecting
|
||
predefined potentially blocking subprograms.
|
||
|
||
2015-10-27 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Revert previous
|
||
change.
|
||
(Expand_Array_Aggregate): Rewrite previous change here
|
||
as done for other non GCC back-ends.
|
||
(Build_Record_Aggr_Code): Add special case.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Add_Item_To_Name_Buffer): Update the comment on usage.
|
||
Add an output string for loop parameters.
|
||
(Analyze_Global_Items): Loop parameters are now a
|
||
valid global item. The share the legality checks of constants.
|
||
(Analyze_Input_Output): Loop parameters are now a valid dependency item.
|
||
(Find_Role): Loop parameters share the role of constants.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Generalized_Indexing): In ASIS mode,
|
||
preserve the Generalized_ indexing link if the context is not
|
||
a spec expression that will be analyzed anew.
|
||
|
||
2015-10-26 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_ch6.ads, exp_ch6.adb (Build_Procedure_Body_Form): Promote it to
|
||
library level (to invoke this routine from the semantic analyzer).
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): When generating
|
||
C code, invoke Build_Procedure_Body_Form to transform a function
|
||
that returns a constrained array type into a procedure with an
|
||
out parameter that carries the return value.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* a-reatim.ads: Add "Clock_Time with Synchronous" contract in package
|
||
Ada.Real_Time.
|
||
* a-taside.ads: Add "Tasking_State with Synchronous" contract in
|
||
package Ada.Task_Identification.
|
||
* sem_ch12.adb: minor typo in comment
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* contracts.adb (Analyze_Object_Contract): Set and restore
|
||
the SPARK_Mode for both constants and objects. Factor out the
|
||
semantic checks concerning Ghost objects.
|
||
* freeze.adb (Freeze_Array_Type): A Ghost array type cannot have a
|
||
concurrent component type.
|
||
(Freeze_Entity): A Ghost type cannot also be concurrent.
|
||
(Freeze_Record_Type): A Ghost record type cannot have a concurrent
|
||
component.
|
||
* sem_prag.adb (Analyze_Abstract_State): A Ghost abstract
|
||
state cannot also be synchronized.
|
||
(Check_Ghost_Synchronous): New routine.
|
||
* sem_util.adb (Yields_Synchronized_Object): Correct the case
|
||
of record components to account for the case where the type has
|
||
no component list.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* expander.adb (Expand): Expand a single protected declaration.
|
||
* exp_ch9.ads, exp_ch9.adb (Expand_N_Single_Protected_Declaration): New
|
||
routine.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_res.adb (Is_OK_Volatile_Context): A volatile object may appear
|
||
in an object declaration as long as it denotes the name.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch9.adb (Analyze_Single_Protected_Declaration): The anonymous
|
||
object no longer comes from source.
|
||
(Analyze_Single_Task_Declaration): The anonymous object no longer
|
||
comes from source.
|
||
* sem_prag.adb (Analyze_Pragma): The analysis of pragma SPARK_Mode
|
||
now recognizes the internal anonymous object created for a single
|
||
concurren type as a valid context.
|
||
(Find_Related_Context): The internal anonymous object created for a
|
||
single concurrent type is now a valid context.
|
||
(Find_Related_Declaration_Or_Body): The internal anonymous object
|
||
created for a single concurrent type is now a valid context.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Inherit_Rep_Item_Chain): Another another guard
|
||
to prevent circularities in the rep_item_chain of the full view
|
||
of a type extension in a child unit that extends a private type
|
||
from the parent.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* atree.ads, atree.adb (Ekind_In): New 10 and 11 parameter versions.
|
||
* contracts.ads, contracts.adb (Analyze_Initial_Declaration_Contract):
|
||
New routine.
|
||
* sem_ch6.adb (Analyze_Generic_Subprogram_Body):
|
||
Analyze the contract of the initial declaration.
|
||
(Analyze_Subprogram_Body_Helper): Analyze the contract of the
|
||
initial declaration.
|
||
* sem_ch7.adb (Analyze_Package_Body_Helper): Analyze the contract
|
||
of the initial declaration.
|
||
* sem_ch9.adb (Analyze_Entry_Body): Analyze the contract of
|
||
the initial declaration.
|
||
(Analyze_Protected_Body): Analyze
|
||
the contract of the initial declaration.
|
||
(Analyze_Task_Body): Analyze the contract of the initial declaration.
|
||
* sem_prag.adb (Add_Entity_To_Name_Buffer): Use "type" rather
|
||
than "unit" as it makes the error messages sound better.
|
||
(Add_Item_To_Name_Buffer): Update comment on usage. The routine
|
||
now supports discriminants and current instances of concurrent
|
||
types.
|
||
(Analyze_Depends_In_Decl_Part): Install the discriminants
|
||
of a task type.
|
||
(Analyze_Global_In_Decl_Part): Install the discriminants of a task type.
|
||
(Analyze_Global_Item): Add processing for current instances of
|
||
concurrent types and include discriminants as valid global items.
|
||
(Analyze_Input_Output): Discriminants and current instances of
|
||
concurrent types are now valid items. Update various error messages.
|
||
(Check_Usage): Current instances of protected and task types behaves
|
||
as formal parameters.
|
||
(Collect_Subprogram_Inputs_Outputs): There is
|
||
no longer need to manually analyze [Refined_]Global thanks to
|
||
freezing of initial declaration contracts. Add processing for
|
||
the current instance of a concurrent type.
|
||
(Find_Role): Add categorizations for discriminants, protected and task
|
||
types.
|
||
(Is_CCT_Instance): New routine.
|
||
(Match_Items): Update the comment on usage. Update internal comments.
|
||
* sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update the
|
||
comment on usage.
|
||
* sem_util.adb (Entity_Of): Ensure that the entity is an object
|
||
when traversing a potential renaming chain.
|
||
(Fix_Msg): Use "type" rather than "unit" as it makes the error messages
|
||
sound better.
|
||
* sem_util.ads (Fix_Msg): Update the comment on usage.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* par.adb (Par): Do not generate an error when generating
|
||
SCIL for predefined units or new children of system and co.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* einfo.adb: Access_Disp_Table applies to a private
|
||
extension.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Generalized_Indexing): In ASIS mode, when
|
||
restoring original node, remove Generalized_Indexing operation
|
||
so that it is recreated during re- analysis.
|
||
|
||
2015-10-26 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_unst.adb: (Unnest_Subprogram):
|
||
Replace absolute references to 1 and 0 by their counterpart
|
||
relative references through Subps_First.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* par-ch3.adb (P_Declarative_Items): In case of misplaced
|
||
aspect specifications, ensure that flag Done is properly set to
|
||
continue parse.
|
||
* sem_prag.adb, sem_prag.ads: Remove Build_Generic_Class_Condition,
|
||
unused.
|
||
|
||
2015-10-26 Emmanuel Briot <briot@adacore.com>
|
||
|
||
* s-os_lib.adb (Argument_String_To_List): Remove backslashes in
|
||
argument value.
|
||
|
||
2015-10-26 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_unst.ads, exp_unst.adb (Is_Uplevel_Referenced): Removed.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_util.adb, sem_aux.adb, exp_attr.adb, sem_eval.adb: Minor
|
||
reformatting.
|
||
* sem_util.adb, sem_ch5.adb: Minor reformatting.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_unst.adb (Unnest_Subprogram): Add guard to prevent compiler
|
||
abort when handling a reference to a formal in an aspect of a
|
||
nested subprogram declaration as an uplevel reference.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* snames.ads-tmpl, aspects.adb, aspects.ads: Add the aspect and
|
||
pragma names and enter into relevant tables.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Analyze aspect
|
||
Predicate_Failure.
|
||
* sem_prag.adb (Predicate_Failure): Analyze pragma Predicate_Failure.
|
||
* exp_util.adb (Make_Predicate_Check): When building the Check
|
||
pragma, if Predicate_Failure has been specified, add the relevant
|
||
String argument to the pragma.
|
||
* par-prag.adb (Prag): Add Predicate_Failure to list of pragmas
|
||
handled during semantic analysis.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Assignment): If the left-hand side
|
||
is an indexed component with generalized indexing, discard
|
||
interpretation that yields a reference type, which is not
|
||
assignable. This prevent spurious ambiguities when the right-hand
|
||
side is an aggregate which does not provide a target type.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_ch7.adb, exp_ch6.adb: Minor comment fix.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* aspects.adb (Move_Or_Merge_Aspects): Move all aspects related
|
||
to a single concurrent type declaration to the declaration
|
||
of the anonymous object if they qualify.
|
||
(Relocate_Aspect): Update comment on usage.
|
||
* aspects.ads Add new sectioon on aspect specifications on single
|
||
concurrent types. Add new table Aspect_On_Anonymous_Object_OK.
|
||
(Move_Or_Merge_Aspects): Udate the comment on usage.
|
||
* atree.adb (Elist36): New routine.
|
||
(Set_Elist36): New routine.
|
||
* atree.ads (Elist36): New routine along with pragma Inline.
|
||
(Set_Elist36): New routine along with pragma Inline.
|
||
* atree.h: Elist36 is now an alias for Field36.
|
||
* contracts.adb (Add_Contract_Item): Add processing
|
||
for protected units and extra processing for variables.
|
||
(Analyze_Object_Contract): Code cleanup. The processing of
|
||
Part_Of now depends on wherer the object is a constant or
|
||
a variable. Add processing for pragmas Depends and Global
|
||
when they apply to a single concurrent object. Verify that a
|
||
variable which is part of a single concurrent type has full
|
||
default initialization. Set/restore the SPARK_Mode of a single
|
||
concurrent object.
|
||
(Analyze_Protected_Contract): New routine.
|
||
* contracts.ads (Add_Contract_Item): Update the comment on usage.
|
||
(Analyze_Object_Contract): Update the comment on usage.
|
||
(Analyze_Protected_Contract): New routine.
|
||
(Analyze_Task_Contract): Update the comment on usage.
|
||
* einfo.adb Part_Of_Constituents now uses Elist10.
|
||
(Anonymous_Object): New routine.
|
||
(Contract): Code cleanup.
|
||
(Has_Option): Remove the assumption that the only simple
|
||
option is External.
|
||
(Is_Synchronized_State): New routine.
|
||
(Part_Of_Constituents): This attribute applies to
|
||
variables and uses Elist10.
|
||
(Set_Anonymous_Object): New routine.
|
||
(Set_Contract): Code cleanup.
|
||
(Set_Part_Of_Constituents): This attribute applies to variables and
|
||
uses Elist10.
|
||
(Set_SPARK_Aux_Pragma): Code cleanup.
|
||
(Set_SPARK_Aux_Pragma_Inherited): Code cleanup.
|
||
(Set_SPARK_Pragma): Code cleanup. This attribute applies to
|
||
variables.
|
||
(Set_SPARK_Pragma_Inherited): Code cleanup. This
|
||
attribute applies to variables.
|
||
(SPARK_Aux_Pragma): Code cleanup.
|
||
(SPARK_Aux_Pragma_Inherited): Code cleanup.
|
||
(SPARK_Pragma): Code cleanup. This attribute applies to variables.
|
||
(SPARK_Pragma_Inherited): Code cleanup. This attribute applies
|
||
to variables.
|
||
(Write_Field9_Name): Remove the output for Part_Of_Constituents.
|
||
(Write_Field10_Name): Add output for Part_Of_Constituents.
|
||
(Write_Field30_Name): Add output for Anonymous_Object.
|
||
(Write_Field34_Name): Output SPARK_Pragma
|
||
for protected types and variables.
|
||
* einfo.ads: New attributes Anonymous_Object and
|
||
Is_Synchronized_State along with usage in entities. Update
|
||
the documentation of attributes Contract Encapsulating_State
|
||
Part_Of_Constituents SPARK_Aux_Pragma SPARK_Aux_Pragma_Inherited
|
||
SPARK_Pragma SPARK_Pragma_Inherited (Anonymous_Object): New
|
||
routine along with pragma Inline.
|
||
(Is_Synchronized_State): New routine.
|
||
(Set_Anonymous_Object): New routine along with pragma Inline.
|
||
* freeze.adb (Freeze_Record_Type): Ensure that a non-synchronized
|
||
record does not have synchronized components.
|
||
* sem_ch3.adb (Analyze_Declarations): Code cleanup. Analyze the
|
||
contract of protected units.
|
||
* sem_ch9.adb Add with and use clauses for Sem_Prag. Code cleanup.
|
||
(Analyze_Single_Protected_Declaration): Reimplemented.
|
||
(Analyze_Single_Task_Declaration): Reimplemented.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Part_Of
|
||
can now apply to a single concurrent type declaration. Rely on
|
||
Insert_Pragma to place the pragma. Update the error message on
|
||
usage to reflect the new context.
|
||
(Insert_Pragma): When inserting
|
||
pragmas for a protected or task type, create a definition if
|
||
the type lacks one.
|
||
* sem_elab.adb (Check_A_Call): Code cleanup. Issue error message
|
||
related to elaboration issues for SPARK when SPARK_Mode is "on"
|
||
and the offending entity comes from source.
|
||
* sem_prag.adb (Analyze_Abstract_State): Add new flag
|
||
Synchronous_Seen. Update the analysis of simple options Externa,
|
||
Ghost and Synchronous. Update various error messages to reflect
|
||
the use of single concurrent types.
|
||
(Analyze_Depends_Global): Pragmas Depends and Global can now apply to
|
||
a single task type or a single concurrent object created for a task
|
||
type.
|
||
(Analyze_Depends_In_Decl_Part): Do not push a scope when the
|
||
context is a single concurrent object. (Analyze_Part_Of):
|
||
Moved out of Analyze_Pragma. The routine has a new profile
|
||
and comment on usage.
|
||
(Analyze_Part_Of_In_Decl_Part): New routine.
|
||
(Analyze_Part_Of_Option): Update the call to Analyze_Part_Of.
|
||
(Analyze_Pragma): Pragma Abstract_State can
|
||
now carry simple option Synchronous. Pragma Part_Of can now
|
||
apply to a single concurrent type declaration. The analysis
|
||
of pragma Part_Of is delayed when the context is a single
|
||
concurrent object.
|
||
(Analyze_Refined_Depends_In_Decl_Part): Use the anonymous object when
|
||
the context is a single concurren type.
|
||
(Analyze_Refined_Global_In_Decl_Part): Use the
|
||
anonymous object when the context is a single concurren type.
|
||
(Check_Ghost_Constituent): Removed.
|
||
(Check_Matching_Constituent): Renamed to Match_Constituent.
|
||
(Check_Matching_State): Renamed to Match_State.
|
||
(Collect_Constituent): Update the comment
|
||
on usage. Verify various legality rules related to ghost and
|
||
synchronized entities.
|
||
(Find_Related_Declaration_Or_Body): A single task declaration is no
|
||
longer a valid context for a pragma.
|
||
(Fix_Msg): Moved to Sem_Util.
|
||
(Process_Overloadable): Add processing for single task objects.
|
||
(Process_Visible_Part): Add processing for single concurrent
|
||
types.
|
||
(Relocate_Pragmas_To_Anonymous_Object): New routine.
|
||
* sem_prag.ads Add new table Pragma_On_Anonymous_Object_OK.
|
||
(Analyze_Part_Of_In_Decl_Part): New routine.
|
||
(Relocate_Pragmas_To_Anonymous_Object): New routine.
|
||
* sem_util.adb (Defining_Entity): Code cleanup.
|
||
(Fix_Msg): Moved from Sem_Prag and augmented to handle
|
||
mode replacements.
|
||
(Has_Full_Default_Initialization): New routine.
|
||
(Is_Descendant_Of_Suspension_Object): Moved out of
|
||
Is_Effectively_Volatile.
|
||
(Is_Single_Concurrent_Object): New routine.
|
||
(Is_Single_Concurrent_Type): New routine.
|
||
(Is_Single_Concurrent_Type_Declaration): New routine.
|
||
(Is_Synchronized_Object): New routine.
|
||
(Yields_Synchronized_Object): New routine.
|
||
* sem_util.ads (Fix_Msg): Moved form Sem_Prag. Update the
|
||
comment on usage.
|
||
(Has_Full_Default_Initialization): New routine.
|
||
(Is_Single_Concurrent_Object): New routine.
|
||
(Is_Single_Concurrent_Type): New routine.
|
||
(Is_Single_Concurrent_Type_Declaration): New routine.
|
||
(Is_Synchronized_Object): New routine.
|
||
(Yields_Synchronized_Object): New routine.
|
||
* snames.ads-tmpl: Add name Synchronous.
|
||
|
||
2015-10-26 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* sysdep.c (__gnat_get_task_options): Refine the workaround for
|
||
the VX_USR_TASK_OPTION bug in VxWorks 7, as we cannot check the
|
||
value of VX_DEALLOC_TCB in RTP mode, the macro value not being
|
||
defined in the headers.
|
||
* g-arrspl.ads: Fix typo.
|
||
|
||
2015-10-26 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* sysdep.c (__gnat_get_task_options): Workaround a VxWorks
|
||
bug where VX_DEALLOC_TCB task option is forbidden when calling
|
||
taskCreate but allowed in VX_USR_TASK_OPTIONS.
|
||
|
||
2015-10-26 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_unst.ads, exp_unst.adb (Is_Uplevel_Referenced): New subprogram.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Constant_Indexing_OK): New predicate, subsidiary
|
||
of Try_Container_Indexing, that implements the name resolution
|
||
rules given in RM 4.1.6 (13-15).
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch3.adb, sem_util.adb: Minor reformatting.
|
||
|
||
2015-10-26 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Return False when
|
||
generating C code.
|
||
* sem_ch3.adb: Fix typos.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch13.adb (Build_Predicate_Functions): Change the
|
||
structure of the predicate functions to reflect the requirements
|
||
of AI12-0071.
|
||
(Add_Condition): New procedure to do the "and-then-ing" in Add_Call
|
||
and Add_Predicates.
|
||
* einfo.ads (Static_Real_Or_String_Predicate): Change the
|
||
documentation to reflect the new structure.
|
||
* sem_eval.adb (Real_Or_String_Static_Predicate_Matches):
|
||
Change the walking of the predicate expression to reflect the
|
||
new structure.
|
||
* exp_util.adb: Minor comment fix.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* s-rident.ads (No_Dynamic_Sized_Objects): New restriction name.
|
||
* sem_util.ads, sem_util.adb (All_Composite_Constraints_Static):
|
||
New function to check that all relevant constraints are static.
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): Call
|
||
All_Composite_Constraints_Static on the bounds of named array
|
||
aggregates.
|
||
* sem_ch3.adb (Analyze_Subtype_Declaration): Call
|
||
All_Composite_Constraints_Static if the type is composite and
|
||
the subtype is constrained.
|
||
|
||
2015-10-26 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_N_Subprogram_Declaration): Skip the frontend
|
||
transformation of functions that return a constrained array into
|
||
a procedure when they are unchecked_conversion instances.
|
||
|
||
2015-10-26 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* s-os_lib.ads: Minor reformatting/rewording.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* debug.adb: Introduce debug flag -gnatd.5.
|
||
|
||
2015-10-26 Pascal Obry <obry@adacore.com>
|
||
|
||
* s-os_lib.ads, s-os_lib.adb (Kill): New routine. This routine
|
||
makes visible support for killing processes in expect.c.
|
||
* expect.c (__gnat_kill): Removed from here.
|
||
* adaint.c (__gnat_kill): Added here to be usable in the compiler
|
||
(System.OS_Lib).
|
||
* make.adb (Sigint_Intercepted): Use the Kill routine from
|
||
System.OS_Lib.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* einfo.ads, einfo.adb, exp_unst.adb (Needs_Typedef,
|
||
Set_Needs_Typedef): Removed, no longer used.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.adb (First_Component): Update the assertion to allow
|
||
for concurrent types.
|
||
(First_Component_Or_Discriminant): Update the assertion to allow for
|
||
concurrent types.
|
||
* einfo.ads: Update the documentation of attributes First_Component
|
||
and First_Component_Or_Discriminant along with uses in entities.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Actuals): An effectively
|
||
volatile object may act as an actual when the corresponding
|
||
formal is of a non-scalar effectively volatile type, not just
|
||
a non-scalar volatile type.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* sinfo.ads, sem_util.ads: Update comments.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Refined_Depends_Global_Post): When dealing with
|
||
protected entries or protected subprograms, use the enclosing protected
|
||
type to ensure that the protected type declaration is declared
|
||
in a package spec. Remove an obsolete attempt to ensure the
|
||
aggregate for of pragma Refined_State as this routine is never
|
||
called in that case.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch5.adb (Expand_Iterator_Loop_Over_Container): For
|
||
an element iterator loop, the element is a constant if the
|
||
container object is a constant, even if the container type has
|
||
a Variable_Indexing aspect.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* s-fileio.adb (Fopen_Mode): Use "r+" for Out_File/Stream_IO,
|
||
so the file won't be truncated on 'fopen', as required by
|
||
AI95-00283-1.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* gnat1drv.adb, prj.adb, sem_ch6.adb, s-regpat.adb,
|
||
sem_prag.adb: Fix typos.
|
||
* einfo.ads, restrict.ads: Minor comment fixes.
|
||
* err_vars.ads, sem_util.adb, errout.ads: Code clean up.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Assignment): Do not check that the
|
||
Left-hand side is legal in an inlined body, check is done on
|
||
the original template.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_util.ads, exp_util.adb (Find_Primitive_Operations): New
|
||
subprogram to retrieve by name the possibly overloaded set of
|
||
primitive operations of a type.
|
||
* sem_ch4.adb (Try_Container_Indexing): Use
|
||
Find_Primitive_Operations to handle overloaded indexing operations
|
||
of a derived type.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* osint-c.ads: Minor comment update.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,
|
||
s-osinte-darwin.ads, s-osinte-android.ads, s-osinte-freebsd.ads,
|
||
s-taprop-posix.adb (Get_Page_Size): C function returns an int. Adjust
|
||
callers accordingly.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch4.adb (Is_OK_Object_Reference): New routine.
|
||
(Substitute_Valid_Check): Perform the 'Valid subsitution but do
|
||
not suggest the use of the attribute if the left hand operand
|
||
does not denote an object as it leads to illegal code.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_unst.adb: Minor reformatting.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb: Improve error msg.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_disp.adb (Check_Controlling_Type): Handle properly the
|
||
case of an incomplete type whose full view is tagged, when a
|
||
primitive operation of the type is declared between the two views.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* adaint.c (__gnat_locate_exec_on_path): If the PATH environment
|
||
variable is not set, do not return NULL, because we can still find
|
||
the executable if it includes a directory name.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_elab.adb (Elab_Warning): Under dynamic elaboration, when
|
||
elaboration warnings are enabled, emit proper warning header
|
||
when triggered by an access attribute.
|
||
|
||
2015-10-26 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_ch11.adb: If CodePeer_Mode is true, generate simplified
|
||
SCIL for exception declarations.
|
||
* exp_ch11.adb (Expand_N_Exception_Declaration) If CodePeer_Mode
|
||
is True, initialize the Full_Name component of the exception
|
||
record to null instead of to the result of an unchecked
|
||
conversion.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_unst.adb (Note_Uplevel_Ref) : Handle properly a reference
|
||
that denotes a function returning a constrained array, that has
|
||
been rewritten as a procedure.
|
||
* makeutl.ads: Minor edit.
|
||
|
||
2015-10-26 Yannick Moy <moy@adacore.com>
|
||
|
||
* lib-xref-spark_specific.adb (Traverse_Protected_Declaration): New
|
||
procedure for traversal.
|
||
(Add_SPARK_Xrefs): Remove debugging code.
|
||
(Traverse_Declaration_Or_Statement): Call the new traversal
|
||
procedure.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Pragma
|
||
Extensions_Visible can now appear on an abstract subprogram
|
||
declaration.
|
||
|
||
2015-10-26 Yannick Moy <moy@adacore.com>
|
||
|
||
* lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Use character 'r' to
|
||
denote a reference to a constant which may have variable input, and
|
||
thus may be treated as a variable in GNATprove, instead of the
|
||
character 'c' used for constants.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Object_Access_Level): Only aliased formals of
|
||
functions have the accessibility level of the point of call;
|
||
aliased formals of procedures have the same level as unaliased
|
||
formals.
|
||
(New_Copy_Tree): Add guard on copying itypes. From code reading.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* inline.adb: Minor reformatting.
|
||
|
||
2015-10-26 Yannick Moy <moy@adacore.com>
|
||
|
||
* get_spark_xrefs.adb (get_SPARK_Xrefs): Remove obsolete
|
||
assertion.
|
||
* lib-xref-spark_specific.adb (Traverse_Declaration_Or_Statement):
|
||
New procedure to factor duplicated code and add
|
||
treatment of protected entries.
|
||
(Add_SPARK_Scope, Traverse_Declarations_Or_Statements): Call the new
|
||
procedure Traverse_Declaration_Or_Statement. Use same character used in
|
||
normal xrefs for SPARK xrefs, for a given entity used as scope.
|
||
* spark_xrefs.ads Document character used for entries.
|
||
* sem_prag.adb (Check_Loop_Pragma_Placement): Account for possible
|
||
introduction of declarations and statements by the expansion, between
|
||
two otherwise consecutive loop pragmas.
|
||
* sem_util.ads, sem_util.adb (Is_Suspension_Object): Lifted from nested
|
||
function.
|
||
(Is_Descendant_Of_Suspension_Object): nested function lifted.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_attr.adb (Eval_Attribute): Attribute 'Enum_Rep can be folded
|
||
when its prefix denotes a constant, an enumeration literal or
|
||
an enumeration type. Use the expression of the attribute in the
|
||
enumeration type form, otherwise use the prefix to fold.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* aspects.adb Add an entry for entry bodies in table
|
||
Has_Aspect_Specifications_Flag.
|
||
(Aspects_On_Body_Or_Stub_OK): Entry bodies now allow for certain
|
||
aspects.
|
||
* contracts.adb (Add_Contract_Items): Code cleanup. Add
|
||
processing for entry bodies, entry declarations and task units.
|
||
(Analyze_Subprogram_Body_Contract): Renamed
|
||
to Analyze_Entry_Or_Subprogram_Body_Contract. Do not
|
||
analyze the contract of an entry body unless annotating the
|
||
original tree.
|
||
(Analyze_Subprogram_Contract): Renamed to
|
||
Analyze_Entry_Or_Subprogram_Contract. Do not analyze the contract
|
||
of an entry declaration unless annotating the original tree.
|
||
(Analyze_Task_Contract): New routine.
|
||
* contracts.ads (Add_Contract_Item): Update the comment on usage.
|
||
(Analyze_Package_Body_Contract): Update comment on usage.
|
||
(Analyze_Package_Contract): Update the comment on usage.
|
||
(Analyze_Subprogram_Body_Contract): Renamed to
|
||
Analyze_Entry_Or_Subprogram_Body_Contract.
|
||
(Analyze_Subprogram_Body_Stub_Contract): Update the comment on usage.
|
||
(Analyze_Subprogram_Contract): Renamed to
|
||
Analyze_Entry_Or_Subprogram_Contract.
|
||
(Analyze_Task_Contract): New routine.
|
||
* einfo.adb (Contract): Restructure the assertion to include
|
||
entries and task units.
|
||
(SPARK_Pragma): This attribute now applies to operators.
|
||
(SPARK_Pragma_Inherited): This flag now applies to operators.
|
||
(Set_Contract): Restructure the assertion to include entries and task
|
||
units.
|
||
(Set_SPARK_Pragma): This attribute now applies to operators.
|
||
(Set_SPARK_Pragma_Inherited): This flag now applies to operators.
|
||
(Write_Field34_Name): Write out all Ekinds that have a contract.
|
||
(Write_Field40_Name): SPARK_Pragma now applies to operators.
|
||
* einfo.ads: Update the documentation of attribute Contract along
|
||
with usage in nodes. Update the documentation of attributes
|
||
SPARK_Pragma and SPARK_Pragma_Inherited.
|
||
* exp_ch6.adb (Freeze_Subprogram): Update the call to
|
||
Analyze_Subprogram_Contract.
|
||
* par-ch9.adb (P_Entry_Barrier): Do not parse keyword "is" as it
|
||
is not part of the entry barrier production.
|
||
(P_Entry_Body): Parse the optional aspect specifications. Diagnose
|
||
misplaced aspects.
|
||
* sem_attr.adb (Analyze_Attribute_Old_Result): Update the call
|
||
to Find_Related_Subprogram_Or_Body.
|
||
* sem_aux.adb (Unit_Declaration_Node) Add an entry for entry
|
||
declarations and bodies.
|
||
* sem_ch3.adb (Analyze_Declarations): Analyze the contracts of
|
||
entry declarations, entry bodies and task units.
|
||
* sem_ch6.adb (Analyze_Generic_Subprogram_Body):
|
||
Update the call to Analyze_Subprogram_Body_Contract.
|
||
(Analyze_Subprogram_Body_Helper): Update the call to
|
||
Analyze_Subprogram_Body_Contract.
|
||
* sem_ch9.adb (Analyze_Entry_Body): Analyze the aspect
|
||
specifications and the contract.
|
||
* sem_ch10.adb (Analyze_Compilation_Unit): Update the call to
|
||
Analyze_Subprogram_Contract.
|
||
* sem_ch12.adb (Save_References_In_Pragma): Update the call to
|
||
Find_Related_Subprogram_Or_Body.
|
||
* sem_ch13.adb (Analyze_Aspects_On_Body_Or_Stub): Use
|
||
Unique_Defining_Entity rather than rummaging around in nodes.
|
||
(Diagnose_Misplaced_Aspects): Update comment on usage. Update the
|
||
error messages to accomondate the increasing number of contexts.
|
||
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
|
||
Update the call to Find_Related_Subprogram_Or_Body.
|
||
(Analyze_Depends_Global): Update the call to
|
||
Find_Related_Subprogram_Or_Body. Add processing for entry
|
||
declarations.
|
||
(Analyze_Depends_In_Decl_Part): Update the call
|
||
to Find_Related_Subprogram_Or_Body. Task units have no formal
|
||
parameters to install. (Analyze_Global_In_Decl_Part): Update
|
||
the call to Find_Related_Subprogram_Or_Body. Task units have no
|
||
formal parameters to install.
|
||
(Analyze_Global_Item): Use Fix_Msg to handle the increasing number of
|
||
contexts.
|
||
(Analyze_Pragma): Update the call to Find_Related_Subprogram_Or_Body.
|
||
Perform full analysis when various pragmas appear in an entry body.
|
||
(Analyze_Pre_Post_Condition): Update the call to
|
||
Find_Related_Subprogram_Or_Body. Perform full analysis when the pragma
|
||
appears in an entry body.
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part): Update the call to
|
||
Find_Related_Subprogram_Or_Body.
|
||
(Analyze_Refined_Depends_Global_Post): Update
|
||
the call to Find_Related_Subprogram_Or_Body. Use
|
||
Fix_Msg to handle the increasing number of contexts.
|
||
(Analyze_Refined_Depends_In_Decl_Part): Update
|
||
the call to Find_Related_Subprogram_Or_Body. Use
|
||
Unique_Defining_Entity to obtain the entity of the
|
||
spec. Use Fix_Msg to handle the increasing number of contexts.
|
||
(Analyze_Refined_Global_In_Decl_Part): Update the call to
|
||
Find_Related_Subprogram_Or_Body. Use Unique_Defining_Entity to obtain
|
||
the entity of the spec. Use Fix_Msg to handle the increasing number of
|
||
contexts.
|
||
(Analyze_Test_Case_In_Decl_Part): Update the call to
|
||
Find_Related_Subprogram_Or_Body.
|
||
(Check_Dependency_Clause): Use Fix_Msg to handle the increasing number
|
||
of contexts.
|
||
(Check_Mode_Restriction_In_Enclosing_Context): Use
|
||
Fix_Msg to handle the increasing number of contexts.
|
||
(Collect_Subprogram_Inputs_Outputs): Use the refined
|
||
versions of the pragmas when the context is an entry body or
|
||
a task body.
|
||
(Find_Related_Subprogram_Or_Body): Renamed to
|
||
Find_Related_Declaration_Or_Body. Add processing for entries
|
||
and task units.
|
||
(Fix_Msg): New routine.
|
||
(Role_Error): Use Fix_Msg to handle the increasing number of contexts.
|
||
* sem_prag.ads (Find_Related_Subprogram_Or_Body): Renamed to
|
||
Find_Related_Declaration_Or_Body. Update the comment on usage.
|
||
* sem_util.adb (Is_Entry_Body): New routine.
|
||
(Is_Entry_Declaration): New routine.
|
||
* sem_util.ads (Is_Entry_Body): New routine.
|
||
(Is_Entry_Declaration): New routine.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* inline.adb (Has_Excluded_Declaration): A subtype declaration
|
||
with a predicate aspect generates a subprogram, and therefore
|
||
prevents the inlining of the enclosing subprogram.
|
||
* osint.ads: Fix typo.
|
||
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_case.adb (Check_Choice_Set): Choose initial choice range
|
||
below low bound of type, to prevent spurious errors on case
|
||
statements whose expressions have an integer subtype with a
|
||
static predicate.
|
||
* sem_util.ads: Fix typo.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Case_Expression): In the scope of a
|
||
predicate function, delay the expansion of the expression only
|
||
if the target type has a specified Static_ Predicate aspect,
|
||
because the expression is processed later. A dynamic predicate
|
||
must be expanded in standard fashion.
|
||
|
||
2015-10-26 Claire Dross <dross@adacore.com>
|
||
|
||
* a-nudira.ads: Remove SPARK_Mode as it currently causes an error.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sem_aggr.adb, sem_type.adb, sem_ch12.adb, sem_res.adb, sem_ch4.adb,
|
||
sem_ch8.adb, exp_aggr.adb, sem_eval.adb, s-fatgen.adb, a-tienio.adb:
|
||
Fix typos.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): The processing
|
||
for aspects Abstract_State, Ghost, Initial_Condition, Initializes
|
||
and Refined_State no longer have to take SPARK_Mode into account.
|
||
(Insert_After_SPARK_Mode): Removed.
|
||
(Insert_Pragma): Update profile and comment on usage. The routine can
|
||
now insert a pragma after the "header" of an instance.
|
||
* sem_prag.adb (Analyze_If_Available): New routine.
|
||
(Analyze_Pragma): Do not reset the Analyzed flag of various
|
||
SPARK pragmas as they use the Is_Analyzed_Pragma attribute to
|
||
avoid reanalysis. Various pragmas now trigger the analysis
|
||
of related pragmas that depend on or are dependent on the
|
||
current pragma. Remove the declaration order checks related
|
||
to pragmas Abstract_State, Initial_Condition and Initializes.
|
||
(Analyze_Pre_Post_Condition): Analyze pragmas SPARK_Mode and
|
||
Volatile_Function prior to analyzing the pre/postcondition.
|
||
(Check_Declaration_Order): Removed.
|
||
(Check_Distinct_Name): Ensure that a potentially duplicated pragma
|
||
Test_Case is not the pragma being analyzed.
|
||
(Is_Followed_By_Pragma): Removed.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb: Handle subprogram bodies without previous specs.
|
||
|
||
2015-10-26 Claire Dross <dross@adacore.com>
|
||
|
||
* a-nudira.ads: Specify appropriate SPARK_Mode so that the unit
|
||
can be used in SPARK code.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* contracts.adb (Analyze_Subprogram_Body_Contract): Do not analyze
|
||
pragmas Refined_Global and Refined_Depends because these pragmas
|
||
are now fully analyzed when encountered.
|
||
(Inherit_Pragma): Update the call to attribute Is_Inherited.
|
||
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Add a guard
|
||
to prevent reanalysis. Mark the pragma as analyzed at the end of
|
||
the processing.
|
||
(Analyze_Depends_Global): New parameter profile
|
||
and comment on usage. Do not fully analyze the pragma, this is
|
||
now done at the outer level.
|
||
(Analyze_Depends_In_Decl_Part): Add a guard to prevent reanalysis.
|
||
Mark the pragma as analyzed at the end of the processing.
|
||
(Analyze_External_Property_In_Decl_Part): Add a guard to prevent
|
||
reanalysis. Mark the pragma as analyzed at the end of the processing.
|
||
(Analyze_Global_In_Decl_Part): Add a guard to prevent reanalysis. Mark
|
||
the pragma as analyzed at the end of the processing.
|
||
(Analyze_Initial_Condition_In_Decl_Part): Add a guard to prevent
|
||
reanalysis. Mark the pragma as analyzed at the end of the processing.
|
||
(Analyze_Initializes_In_Decl_Part): Add a guard to prevent reanalysis.
|
||
Mark the pragma as analyzed at the end of the processing.
|
||
(Analyze_Pragma): Reset the Analyzed flag on various pragmas that
|
||
require delayed full analysis. Contract_Cases is now analyzed
|
||
immediately when it applies to a subprogram body stub. Pragmas Depends,
|
||
Global, Refined_Depends and Refined_Global are now analyzed
|
||
in pairs when they appear in a subprogram body [stub].
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part): Add a guard to
|
||
prevent reanalysis. Mark the pragma as analyzed at the end of
|
||
the processing.
|
||
(Analyze_Refined_Depends_Global_Post): Update the comment on usage.
|
||
(Analyze_Refined_Depends_In_Decl_Part): Add a guard to prevent
|
||
reanalysis. Mark the pragma as analyzed at the end of the processing.
|
||
(Analyze_Refined_Global_In_Decl_Part): Add a guard to prevent
|
||
reanalysis. Mark the pragma as analyzed at the end of the processing.
|
||
(Analyze_Refined_State_In_Decl_Part): Add a guard to prevent
|
||
reanalysis. Mark the pragma as analyzed at the end of the processing.
|
||
(Analyze_Test_Case_In_Decl_Part): Add a guard to prevent reanalysis.
|
||
Mark the pragma as analyzed at the end of the processing.
|
||
(Is_Followed_By_Pragma): New routine.
|
||
* sinfo.adb (Is_Analyzed_Pragma): New routine.
|
||
(Is_Inherited): Renamed to Is_Inherited_Pragma.
|
||
(Set_Is_Analyzed_Pragma): New routine.
|
||
(Set_Is_Inherited): Renamed to Set_Is_Inherited_Pragma.
|
||
* sinfo.ads Rename attribute Is_Inherited to Is_Inherited_Pragma
|
||
and update occurrences in nodes.
|
||
(Is_Analyzed_Pragma): New routine along with pragma Inline.
|
||
(Is_Inherited): Renamed to Is_Inherited_Pragma along with pragma Inline.
|
||
(Set_Is_Analyzed_Pragma): New routine along with pragma Inline.
|
||
(Set_Is_Inherited): Renamed to Set_Is_Inherited_Pragma along
|
||
with pragma Inline.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* par-ch3.adb (P_Component_Items): When style checks are enabled,
|
||
apply them to component declarations in a record type declaration
|
||
or extension.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_util.adb (Is_Suspension_Object): Ensure that the scope of "Ada"
|
||
is Standard_Standard.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_res.adb (Is_OK_Volatile_Context): A subprogram call is an OK
|
||
context for a reference to an effectively volatile object.
|
||
(Resolve_Actuals): Add references to SPARK RM.
|
||
(Within_Procedure_Call): Removed.
|
||
(Within_Subprogram_Call): New routine.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Aggregate_Accessibility): A reference to a
|
||
formal parameter in an aggregate does not need an accesibility
|
||
check only if the formal is aliased.
|
||
|
||
2015-10-26 Claire Dross <dross@adacore.com>
|
||
|
||
* sem_aux.ads (Number_Components): Can return 0 when called on
|
||
an empty record.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* contracts.adb (Analyze_Subprogram_Body_Contract): Use
|
||
Unique_Defining_Entity instead of Corresponding_Spec_Of.
|
||
* einfo.adb SPARK_Pragma and SPARK_Aux_Pragma are now Node40 and
|
||
Node41 respectively.
|
||
(SPARK_Aux_Pragma): Update the assertion and node querry.
|
||
(SPARK_Aux_Pragma_Inherited): Update the assertion and node query.
|
||
(SPARK_Pragma): Update the assertion and node query.
|
||
(SPARK_Pragma_Inherited): Update the assertion and node query.
|
||
(Set_SPARK_Aux_Pragma): Update the assertion and node setting.
|
||
(Set_SPARK_Aux_Pragma_Inherited): Update the assertion and node setting.
|
||
(Set_SPARK_Pragma): Update the assertion and node setting.
|
||
(Set_SPARK_Pragma_Inherited): Update the assertion and node setting.
|
||
(Write_Field32_Name): Remove the output for SPARK_Pragma.
|
||
(Write_Field33_Name): Remove the output for SPARK_Aux_Pragma.
|
||
(Write_Field40_Name): Add output for SPARK_Pragma.
|
||
(Write_Field41_Name): Add output for SPARK_Aux_Pragma.
|
||
* einfo.ads Rewrite the documentation on attributes
|
||
SPARK_Pragma, SPARK_Aux_Pragma, SPARK_Pragma_Inherited and
|
||
SPARK_Aux_Pragma_Inherited. Update their uses in nodes.
|
||
* exp_ch4.adb (Create_Anonymous_Master): Use
|
||
Unique_Defining_Entity instead of Corresponding_Spec_Of.
|
||
* exp_ch9.adb (Expand_Entry_Declaration): Mark the barrier
|
||
function as such.
|
||
(Expand_N_Task_Body): Mark the task body as such.
|
||
(Expand_N_Task_Type_Declaration): Mark the task body as such.
|
||
* exp_unst.adb (Visit_Node): Use Unique_Defining_Entity instead
|
||
of Corresponding_Spec_Of.
|
||
* sem_attr.adb (Analyze_Attribute_Old_Result): Use
|
||
Unique_Defining_Entity instead of Corresponding_Spec_Of.
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Entry barrier
|
||
functions do not inherit the SPARK_Mode from the context.
|
||
(Build_Subprogram_Declaration): The matching spec is now marked
|
||
as a source construct to mimic the original stand alone body.
|
||
* sem_ch7.adb (Analyze_Package_Body_Helper): Code cleanup.
|
||
* sem_ch9.adb Add with and use clauses for Contracts.
|
||
(Analyze_Entry_Body): An entry body freezes the contract of
|
||
the nearest enclosing package body. The entry body now inherits
|
||
the SPARK_Mode from the context.
|
||
(Analyze_Entry_Declaration): A protected entry declaration now inherits
|
||
the SPARK_Mode from the context.
|
||
(Analyze_Protected_Body): A protected body freezes
|
||
the contract of the nearest enclosing package body. Set the
|
||
Etype of a protected body as this is neede for proper aspect
|
||
analysis. Protected bodies can now carry meaningful aspects and
|
||
those are now analyzed.
|
||
(Analyze_Protected_Type_Declaration): A protected type now inherits the
|
||
SPARK_Mode from the context.
|
||
(Analyze_Task_Body): A task body freezes the contract of the
|
||
nearest enclosing package body. Set the Etype of a task body
|
||
as this is needed for proper aspect analysis. A task body
|
||
now inherits the SPARK_Mode from the context. Task bodies
|
||
can now carry meaningful aspects and those are now analyzed.
|
||
(Analyze_Task_Type_Declaration): A task type declaration now
|
||
inherits the SPARK_Mode of from the context.
|
||
* sem_ch10.adb (Analyze_Protected_Body_Stub): Protected body
|
||
stubs can now carry meaningful aspects.
|
||
(Analyze_Task_Body_Stub): Task body stubs can now carry meaningful
|
||
aspects.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Aspects SPARK_Mode
|
||
Warnings now use routine Insert_Pragma as means of insertion into
|
||
the tree.
|
||
(Insert_After_SPARK_Mode): Clean up documentation.
|
||
(Insert_Pragma): Clean up documentation. The routine is now
|
||
capable of operating on synchronized units.
|
||
* sem_prag.adb (Add_Entity_To_Name_Buffer): New routine.
|
||
(Analyze_Contract_Cases_In_Decl_Part): Use
|
||
Unique_Defining_Entity instead of Corresponding_Spec_Of.
|
||
(Analyze_Depends_Global): Use Unique_Defining_Entity instead
|
||
of Corresponding_Spec_Of.
|
||
(Analyze_Depends_In_Decl_Part): Use Unique_Defining_Entity instead of
|
||
Corresponding_Spec_Of.
|
||
(Analyze_Global_In_Decl_Part): Use Unique_Defining_Entity instead of
|
||
Corresponding_Spec_Of.
|
||
(Analyze_Pragma): Use Unique_Defining_Entity instead of
|
||
Corresponding_Spec_Of.
|
||
Update the detection of an illegal pragma Ghost when it applies
|
||
to a task or protected unit. Reimplement the handling of
|
||
pragma SPARK_Mode.
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part): Use Unique_Defining_Entity
|
||
instead of Corresponding_Spec_Of.
|
||
(Analyze_Test_Case_In_Decl_Part): Use Unique_Defining_Entity instead of
|
||
Corresponding_Spec_Of.
|
||
(Check_Library_Level_Entity): Update the comment on usage.
|
||
Reimplemented to offer a more specialized errror context.
|
||
(Check_Pragma_Conformance): Update profile and comment on usage.
|
||
Handle error message output on single protected or task units.
|
||
(Collect_Subprogram_Inputs_Outputs): Use Unique_Defining_Entity
|
||
instead of Corresponding_Spec_Of.
|
||
(Process_Body): New routine.
|
||
(Process_Overloadable): New routine.
|
||
(Process_Private_Part): New routine.
|
||
(Process_Statement_Part): New routine.
|
||
(Process_Visible_Part): New routine.
|
||
(Set_SPARK_Context): New routine.
|
||
(Set_SPARK_Flags): Removed.
|
||
* sem_util.adb (Corresponding_Spec_Of): Removed.
|
||
(Unique_Entity): Reimplemented to handle many more cases.
|
||
* sem_util.ads (Corresponding_Spec_Of): Removed.
|
||
(Unique_Defining_Entity): Update the comment on usage.
|
||
* sinfo.ads (Is_Entry_Barrier_Function): Update the assertion.
|
||
(Is_Task_Body_Procedure): New routine.
|
||
(Set_Is_Entry_Barrier_Function): Update the assertion.
|
||
(Set_Is_Task_Body_Procedure): New routine.
|
||
* sinfo.adb Update the documentation of attribute
|
||
Is_Entry_Barrier_Function along with use in nodes. Add new
|
||
attribute Is_Task_Body_Procedure along with use in nodes.
|
||
(Is_Task_Body_Procedure): New routine along with pragma Inline.
|
||
(Set_Is_Task_Body_Procedure): New routine along with pragma Inline.
|
||
|
||
2015-10-26 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_ch13.adb: Minor reformatting.
|
||
|
||
2015-10-26 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_disp.adb: Omit most dispatch table initialization code
|
||
if Generate_SCIL is true.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sinfo.ads, exp_ch3.adb: Revert previous change.
|
||
(Build_Record_Init_Proc): Do not build an aggregate if
|
||
Modify_Tree_For_C.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Find_Corresponding_Spec): Reject a subprogram
|
||
body whose signature is type conformant with a previous expression
|
||
function.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* treepr.adb: Code clean up.
|
||
|
||
2015-10-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Check_Component_Storage_Order): Skip a record
|
||
component if it has Complex_Representation.
|
||
(Freeze_Record_Type): If the type has Complex_Representation, skip the
|
||
regular treatment of Scalar_Storage_Order attribute and instead issue
|
||
a warning if it is present.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch13.adb (Check_Iterator_Functions): For a Default_Iterator
|
||
aspect, make sure an implicitly declared interpretation is
|
||
overridden by an explicit one.
|
||
* sem_util.ads: Update comment.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch7.adb, sem_ch6.adb (Analyze_Subprogram_Body_Helper): Only source
|
||
bodies should "freeze" the contract of the nearest enclosing
|
||
package body.
|
||
|
||
2015-10-26 Joel Brobecker <brobecker@adacore.com brobecker>
|
||
|
||
* adaint.c (__gnat_lwp_self): Replace current implementation re-using
|
||
the Linux one, which uses an __NR_gettid syscall rather than
|
||
pthread_self.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sinfo.ads, exp_ch3.adb (Build_Array_Init_Proc,
|
||
Build_Record_Init_Proc): Do not inline init procs when
|
||
Modify_Tree_For_C is True.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* errout.ads: Minor comment fix.
|
||
* einfo.ads: Minor style fix.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch3.adb (Derive_Interface_Subprogram): Fix
|
||
Is_Abstract_Subprogram, which might have been calculated
|
||
incorrectly, because we're passing Ultimate_Alias (Subp) (and
|
||
its dispatching type) to Derive_Subprogram, instead of the true
|
||
parent subprogram and type.
|
||
|
||
2015-10-26 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch13.adb (Check_Iterator_Functions): When
|
||
printing the "default iterator must be unique" error message,
|
||
also print references to the places where the duplicates are
|
||
declared. This makes the message clearer.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Analyze_Formal_Package_Declaration): Do not set
|
||
Box_Present when the formal part is (others => <>) even though
|
||
it is equivalent to a formal part (<>), because ASIS tools depend
|
||
on the syntactic setting of this flag.
|
||
|
||
2015-10-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch13.adb: Minor reformatting.
|
||
* einfo.ads: Minor typo.
|
||
|
||
2015-10-26 Joel Brobecker <brobecker@adacore.com brobecker>
|
||
|
||
* adaint.c (__gnat_open_new_temp): Use mkstemp on Android.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Analyze_Formal_Package_Declaration): Code clean up.
|
||
* sem_ch13.adb (Check_Inherited_Indexing): New inner procedure
|
||
of Check_Indexing_Functions, to verify that a derived type with an
|
||
Indexing aspect is not inheriting such an aspect from an ancestor.
|
||
(Check_Indexing_Functions): Call Check_Inherited_Indexing within
|
||
an instance.
|
||
|
||
2015-10-26 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* a-reatim.adb, contracts.adb, contracts.ads: Minor reformatting and
|
||
typo corrections.
|
||
|
||
2015-10-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not
|
||
recheck the consistency betwen the freeze point and the end of
|
||
declarations for the expression in an aspect specification,
|
||
because it was done already in the analysis of the generic.
|
||
Furthermore, the delayed analysis of an aspect of the instance
|
||
may produce spurious errors when the generic is a child unit
|
||
that references entities in the parent (which might not be in
|
||
scope at the freeze point of the instance).
|
||
|
||
2015-10-26 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Call): Issue info message
|
||
instead of warning when call cannot be inlined in GNATprove mode.
|
||
|
||
2015-10-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_ch6.adb (Build_Procedure_Form): Use _result as the
|
||
name of the extra parameter, cleaner than a random temp name.
|
||
* gnat1drv.adb (Gnat1drv): Code clean up.
|
||
|
||
2015-10-24 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.c (build_binary_op): Tweak formatting.
|
||
(build_unary_op): Likewise.
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat_rm.texi, gnat_ugn.texi: Regenerate.
|
||
* doc/share/ada_pygments.py, 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_rm/implementation_defined_attributes.rst,
|
||
doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
|
||
doc/gnat_rm/representation_clauses_and_pragmas.rst,
|
||
doc/gnat_rm/implementation_defined_pragmas.rst,
|
||
doc/gnat_rm/about_this_guide.rst,
|
||
doc/gnat_rm/implementation_of_ada_2012_features.rst,
|
||
doc/gnat_rm/implementation_of_specific_ada_features.rst,
|
||
doc/gnat_rm/implementation_defined_aspects.rst,
|
||
doc/gnat_rm/implementation_advice.rst: Update documentation.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* contracts.ads, contracts.adb: New unit.
|
||
* exp_ch6.adb Add with and use clauses for Contracts.
|
||
(Expand_Subprogram_Contract): Moved to Contracts.
|
||
* exp_ch6.ads (Expand_Subprogram_Contract): Moved to Contracts.
|
||
* sem_ch3.adb Add with and use clauses for Contracts.
|
||
(Analyze_Object_Contract): Moved to Contracts.
|
||
(Analyze_Declarations): Remove local variable Pack_Decl. Do not
|
||
capture global references in contracts. Check the hidden states
|
||
of a package body.
|
||
* sem_ch6.adb Add with and use clauses in Contracts.
|
||
(Analyze_Generic_Subprogram_Body): Do not capture global
|
||
references in contracts.
|
||
(Analyze_Subprogram_Body_Contract):
|
||
Moved to Contracts.
|
||
(Analyze_Subprogram_Body_Helper): Freeze the
|
||
contract of the nearest enclosing package body. Always analyze
|
||
the subprogram body contract. Do not expand the subprogram
|
||
body contract.
|
||
(Analyze_Subprogram_Contract): Moved to Contracts.
|
||
* sem_ch6.ads (Analyze_Subprogram_Body_Contract): Moved to Contracts.
|
||
(Analyze_Subprogram_Contract): Moved to Contracts.
|
||
* sem_ch7.adb Add with and use clauses for Contracts.
|
||
(Analyze_Package_Body_Contract): Moved to Contracts.
|
||
(Analyze_Package_Body_Helper): Freeze the contract of the
|
||
nearest enclosing package body.
|
||
(Analyze_Package_Contract): Moved to Contracts.
|
||
* sem_ch7.ads (Analyze_Package_Body_Contract): Moved to Contracts.
|
||
(Analyze_Package_Contract): Moved to Contracts.
|
||
* sem_ch10.adb Add with and use clauses for Contracts.
|
||
(Analyze_Compilation_Unit): Do not capture global references
|
||
in contracts.
|
||
(Analyze_Subprogram_Body_Stub_Contract): Moved to Contracts.
|
||
* sem_ch10.ads (Analyze_Subprogram_Body_Stub_Contract): Moved
|
||
to Contracts.
|
||
* sem_ch12.adb Add with and use clauses for Contracts.
|
||
(Analyze_Subprogram_Instantiation): Update the call to
|
||
Instantiate_Subprogram_Contract.
|
||
(Instantiate_Package_Body):
|
||
Do not copy the entity of the spec when creating an entity
|
||
for the body. Construct a brand new defining identifier for
|
||
the body and inherit the Comes_From_Source flag from the spec.
|
||
(Instantiate_Subprogram_Body): Remove Anon_Id to Act_Decl_Id
|
||
and update all occurrences. Construct a brand new defining
|
||
identifier for the body and inherit the Comes_From_Source
|
||
flag from the spec.
|
||
(Instantiate_Subprogram_Contract): Moved
|
||
to Contracts.
|
||
(Save_Global_References_In_Aspects): Moved to
|
||
the spec of Sem_Ch12.
|
||
(Save_Global_References_In_Contract):
|
||
Moved to Contracts.
|
||
* sem_ch12.ads (Save_Global_References_In_Aspects): Moved from
|
||
the body of Sem_Ch12.
|
||
(Save_Global_References_In_Contract):
|
||
Moved to Contracts.
|
||
* sem_prag.adb Add with and use clauses for Contracts.
|
||
(Add_Item): Removed. All references to this routine have been
|
||
replaced with calls to Append_New_Elmt.
|
||
(Analyze_Constituent):
|
||
Add special diagnostics for errors caused by freezing of
|
||
contracts.
|
||
(Analyze_Refined_State_In_Decl_Part): Add formal
|
||
parameter Freeze_Id. Add new global variable Freeze_Posted.
|
||
(Collect_Body_States): Removed.
|
||
(Report_Unused_States): Removed.
|
||
* sem_prag.ads (Analyze_Defined_State_In_Decl_Part): Add formal
|
||
parameter Freeze_Id and update comment on usage.
|
||
* sem_util.adb Remove with and use clauses for
|
||
Sem_Ch12.
|
||
(Add_Contract_Item): Moved to Contracts.
|
||
(Check_Unused_Body_States): New routine.
|
||
(Collect_Body_States):
|
||
New routine.
|
||
(Create_Generic_Contract): Moved to Contracts.
|
||
(Inherit_Subprogram_Contract): Moved to Contracts.
|
||
(Report_Unused_Body_States): New routine.
|
||
* sem_util.ads (Add_Contract_Item): Moved to Contracts.
|
||
(Check_Unused_Body_States): New routine.
|
||
(Collect_Body_States): New routine.
|
||
(Create_Generic_Contract): Moved to Contracts.
|
||
(Inherit_Subprogram_Contract): Moved to Contracts.
|
||
(Report_Unused_Body_States): New routine.
|
||
* sinfo.adb (Is_Expanded_Contract): New routine.
|
||
(Set_Is_Expanded_Contract): New routine.
|
||
* sinfo.ads New attribute Is_Expanded_Contract along with
|
||
placement in nodes.
|
||
(Is_Expanded_Contract): New routine along
|
||
with pragma Inline.
|
||
(Set_Is_Expanded_Contract): New routine
|
||
along with pragma Inline.
|
||
* gcc-interface/Make-lang.in: Add entry for contracts.o
|
||
|
||
2015-10-23 Bob Duff <duff@adacore.com>
|
||
|
||
* bindgen.adb, init.c, opt.ads, switch-b.adb: Implement new -Ea and
|
||
-Es switches.
|
||
* switch-b.ads: Minor comment fix.
|
||
* bindusg.adb: Document new -Ea and -Es switches.
|
||
* s-exctra.ads: Use -Es instead of -E.
|
||
|
||
2015-10-23 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* gcc-interface/utils2.c (build_call_alloc_dealloc): Check no implicit
|
||
task and protected object restrictions.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch12.adb, exp_ch6.adb: Minor reformatting.
|
||
|
||
2015-10-23 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_ch6.adb: Minor reformatting.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Check_Formal_Packages): A formal package whose
|
||
actual part is (others => <>) os identical to a formal package
|
||
with an actual part written as (<>).
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* a-reatim.adb ("/"): For Time_Span division convert the operands
|
||
to integers and then use integer division, which conforms to
|
||
the rounding required by Ada RM.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Missing_Return): Do not report a missing
|
||
return statement on a function body constructed to complete a
|
||
package body for a premature instantiation.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch6.adb (Build_Procedure_Body_Form): Replace body of
|
||
original function with that of generated procedure, to simplify
|
||
processing and avoid scoping problems with local declarations.
|
||
(Rewrite_Function_Call_For_C): Handle properly the case of a
|
||
parameterless function.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* a-exextr.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting.
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-taskin.ads: Minor code clean up.
|
||
(Ada_Task_Control_Block): Move fixed size field before variable sized
|
||
ones.
|
||
* einfo.ads: Minor editing.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Aggregate_Accessibility): Apply rule in RM
|
||
6.5 (8.3) to verify that access discriminants in an aggregate
|
||
in a return statement have the proper accessibility, i.e. do
|
||
not lead to dangling references.
|
||
|
||
2015-10-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Add missing
|
||
test on Address_Clause_Overlay_Warnings to the "constant overlays
|
||
variable" warning. For the reverse case, also issue a warning if
|
||
the modification is potentially made through the initialization
|
||
of the variable.
|
||
|
||
2015-10-23 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* a-exetim-posix.adb (Clock): Use the pthread_getcpuclockid
|
||
function to have access to CPU clocks for tasks other than the
|
||
calling task.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* debug.adb: Switch -gnatd.5 is no longer in use, remove the
|
||
associated documentation.
|
||
* exp_dbug.adb (Get_External_Name): Do not add a special prefix
|
||
for ignored Ghost entities or when switch -gnatd.5 is enabled.
|
||
* exp_dbug.ads Remove the documentation concerning the encoding
|
||
of ignored Ghost entities.
|
||
|
||
2015-10-23 Bob Duff <duff@adacore.com>
|
||
|
||
* a-exextr.adb (Notify_Exception): For Unhandled_Raise_In_Main,
|
||
mimic the output from Ada.Exceptions.Last_Chance_Handler; don't
|
||
print "Exception raised".
|
||
* s-stalib.ads, s-exctra.ads, s-exctra.adb: Add
|
||
Unhandled_Raise_In_Main to types Exception_Trace_Kind/Trace_Kind.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_attr.adb, freeze.adb, sem_attr.adb, exp_aggr.adb,
|
||
gnatname.adb: Minor reformatting.
|
||
|
||
2015-10-23 Steve Baird <baird@adacore.com>
|
||
|
||
* a-cbdlli.ads, a-cbhama.ads, a-cbhase.ads, a-cbmutr.ads,
|
||
a-cborma.ads, a-cborse.ads, a-cbprqu.ads, a-cbsyqu.ads,
|
||
a-cdlili.ads, a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads,
|
||
a-cfinve.ads, a-cforma.ads, a-cforse.ads, a-cidlli.ads,
|
||
a-cihama.ads, a-cihase.ads, a-cimutr.ads, a-ciorma.ads,
|
||
a-ciormu.ads, a-ciorse.ads, a-coboho.ads, a-cobove.ads,
|
||
a-cofove.ads, a-cohama.ads, a-cohase.ads, a-coinho.ads,
|
||
a-coinho-shared.ads, a-coinve.ads, a-comutr.ads, a-conhel.ads,
|
||
a-convec.ads, a-coorma.ads, a-coormu.ads, a-coorse.ads,
|
||
a-cuprqu.ads, a-cusyqu.ads, a-rbtgbo.ads: Add spec Annotate
|
||
pragmas.
|
||
* a-cbdlli.adb, a-cbhama.adb, a-cbhase.adb, a-cbmutr.adb,
|
||
a-cborma.adb, a-cborse.adb, a-cbprqu.adb, a-cbsyqu.adb,
|
||
a-cdlili.adb, a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb,
|
||
a-cfinve.adb, a-cforma.adb, a-cforse.adb, a-cidlli.adb,
|
||
a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb,
|
||
a-ciormu.adb, a-ciorse.adb, a-coboho.adb, a-cobove.adb,
|
||
a-cofove.adb, a-cohama.adb, a-cohase.adb, a-coinho.adb,
|
||
a-coinho-shared.adb, a-coinve.adb, a-comutr.adb, a-conhel.adb,
|
||
a-convec.adb, a-coorma.adb, a-coormu.adb, a-coorse.adb,
|
||
a-cuprqu.adb, a-cusyqu.adb, a-rbtgbo.adb: Remove body Annotate
|
||
pragmas.
|
||
|
||
2015-10-23 Vincent Celier <celier@adacore.com>
|
||
|
||
* gnatname.adb: When gnatname is invoked with a project file,
|
||
specified with switch -P, if gprname is available, gnatname will
|
||
invoke gprname, with the target if it is a cross gnatname.
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_ch4.adb: Fix typo.
|
||
* exp_ch6.adb: Update comment.
|
||
* exp_attr.adb (Expand_Min_Max_Attribute): Simplify expansion.
|
||
* exp_aggr.adb (Convert_To_Positional): Only convert to
|
||
positional when generating C in case of an object declaration.
|
||
(In_Object_Declaration): New.
|
||
(Late_Expansion): Adapt to trees generated by Modify_Tree_For_C.
|
||
* sinfo.ads: Update documentation.
|
||
|
||
2015-10-23 Joel Brobecker <brobecker@adacore.com brobecker>
|
||
|
||
* sigtramp.h (struct sigcontext, struct ucontext): Remove declarations,
|
||
and replace them by include of corresponding header file.
|
||
|
||
2015-10-23 Bob Duff <duff@adacore.com>
|
||
|
||
* a-convec.adb (Copy): Make sure C is initialized
|
||
on all paths, including when Checks is False.
|
||
|
||
2015-10-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove
|
||
error as unreachable.
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat1drv.adb (Adjust_Global_Switches): Adjust.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_dbug.ads, exp_dbug.adb (Get_External_Name): The special prefix for
|
||
ignored Ghost entities is now ___ghost_.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* ghost.adb (Is_Subject_To_Ghost): Check the
|
||
original node when searching for pragma Ghost to catch cases
|
||
where a source construct has been rewritten into something else.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* einfo.ads, einfo.adb (Rewritten_For_C): New flag on functions
|
||
that return a constrained array type. When generating C these
|
||
functions are rewritten as procedures with an out parameter,
|
||
and calls to such functions are rewritten accordingly.
|
||
* exp_ch6.adb (Expand_N_Subprogram_Declaration): When
|
||
Modify_Tree_For_C is set and the function returns a constrained
|
||
array type, generate a procedure declaration with an additional
|
||
out parameter. Mark original function as Rewritten_For_C.
|
||
The new declaration is inserted in tree immediately after
|
||
current declaration.
|
||
(Expand_Subprogram_Body): If entity is marked Rewritten_For_C,
|
||
generate body of corresponding procedure using declarations
|
||
and statements for function body. Replace return statements
|
||
with assignments to the out parameter, followed by a simple
|
||
return statement.
|
||
(Rewrite_Function_Call_For_C): New procedure to replace a function
|
||
call that returns an array by a procedure call.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_util.adb (Denotes_Iterator): New routine.
|
||
(Is_Iterator): Code cleanup. Factor out the detection of a
|
||
predefined iterator. As a result this fixes a missing case
|
||
where a tagged type implements interface Reversible_Iterator.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_attr.adb (Eval_Attribute): Constant-fold 'Enabled if
|
||
not within a generic unit, even if expander is not active, so
|
||
that instances of container packages remain preelaborable in
|
||
-gnatc mode.
|
||
|
||
2015-10-23 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* init.c (__gnat_sigtramp): New assembly function for arm64-darwin.
|
||
(__gnat_error_handler): Use trampoline for arm64.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): if the type of the
|
||
object is a class-wide limited interface type, the expression
|
||
is not restricted to the forms specified for limited types.
|
||
|
||
2015-10-23 Vincent Celier <celier@adacore.com>
|
||
|
||
* gnatname.adb: Code clean up.
|
||
* s-taasde.ads: Fix comment.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Is_Iterator, Is_Reversible_iterator): Use
|
||
root type to determine whether the type is a descendant of the
|
||
corresponding interface type, so take into account multiple
|
||
levels of subtypes and derivations.
|
||
|
||
2015-10-23 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* tracebak.c: Refine selection of GCC/GENERIC_UNWINDER for
|
||
tracebacks on x86 & x86_64.
|
||
(x86 & x86_64): If !SJLJ, always pick the
|
||
GCC_UNWINDER for x86_64 (not only on linux).
|
||
* sem_util.ads: Minor fix in comment.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Pragma Volatile_Function should
|
||
not apply to a function instantiation.
|
||
* sem_util.adb (Has_Effectively_Volatile_Profile): New routine.
|
||
(Is_Volatile_Function): An instance of Ada.Unchecked_Conversion
|
||
is a volatile function when its profile contains an effectively
|
||
volatile type.
|
||
* sem_util.ads (Has_Effectively_Volatile_Profile): New routine.
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_unst.adb (Unnest_Subprogram): Complete previous
|
||
change and update comments.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.ads, sem_util.adb (Check_Function_With_Address_Parameter):
|
||
A subprogram that has an Address parameter and is declared in a Pure
|
||
package is not considered Pure, because the parameter may be used as a
|
||
pointer and the referenced data may change even if the address value
|
||
itself does not.
|
||
* freeze.adb (Freeze_Subprogram): use it.
|
||
* exp_ch6.adb (Expand_N_Subprogram_Body): Use it.
|
||
|
||
2015-10-23 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* tracebak.c: Fallback to generic unwinder for gcc-sjlj on x86 &
|
||
x86_64 linux
|
||
* tracebak.c: Rework x86 & x86_64 sections to resort to the
|
||
generic unwinder if __USING_SJLJ_EXCEPTIONS__.
|
||
|
||
2015-10-23 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_util.adb (Check_Function_Writable_Actuals): For function
|
||
calls restrict the check to elementary types, as requested by
|
||
RM 6.4.1(6.15/3)
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_unst.adb (Unnest_Subprogram): Suppress initialization on
|
||
Decl_ARECnT since we are taking care of all initializations in
|
||
the generated code.
|
||
|
||
2015-10-23 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_dim.adb (Analyze_Dimension_Extension_Or_Record_Aggregate):
|
||
Handle properly a box-initialized aggregate component.
|
||
|
||
2015-10-23 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Reject Volatile_Function not placed
|
||
on a function.
|
||
|
||
2015-10-23 Yannick Moy <moy@adacore.com>
|
||
|
||
* a-extiin.ads, a-reatim.ads, a-interr.ads, a-exetim-mingw.ads,
|
||
a-exetim-default.ads, a-exetim.ads, a-taside.ads: Add "Global => null"
|
||
contract on subprograms.
|
||
* lib-xref-spark_specific.adb: collect scopes for stubs of
|
||
protected objects
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat1drv.adb (Adjust_Global_Switches): Enable
|
||
Back_Annotate_Rep_Info to get size information from gigi.
|
||
(Gnat1drv): Code clean ups.
|
||
* frontend.adb (Frontend): Ditto.
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat1drv.adb (Adjust_Global_Switches): Adjust settings.
|
||
* sem.adb (Semantics): Remove special case.
|
||
|
||
2015-10-23 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* bindgen.adb, restrict.adb: Minor spelling/grammar fixes.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Entity_Name): Code cleanup. Check for possible
|
||
elaboration issues in SPARK when the name denotes a source variable.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch7.adb (Process_Transient_Objects): Reimplement to properly
|
||
handle restriction No_Exception_Propagation.
|
||
* exp_ch11.adb (Expand_At_End_Handler): Update the parameter
|
||
profile and all references to Block.
|
||
* exp_ch11.ads (Expand_At_End_Handler): Update the parameter
|
||
profile and comment on usage.
|
||
* exp_intr.adb (Expand_Unc_Deallocation): Reimplement to properly
|
||
handle restriction No_Exception_Propagation.
|
||
* gnat1drv.adb, restrict.adb: Update comment.
|
||
|
||
2015-10-23 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call
|
||
SS_Release for a block statement enclosing the return statement in the
|
||
case where a build-in-place function return is returning
|
||
the result on the secondary stack. This is accomplished by
|
||
setting the Sec_Stack_Needed_For_Return flag on such blocks.
|
||
It was already being set for the function itself, and it was
|
||
already set correctly for blocks in the non-build-in-place case
|
||
(in Expand_Simple_Function_Return).
|
||
(Set_Enclosing_Sec_Stack_Return): New procedure to perform
|
||
the Set_Sec_Stack_Needed_For_Return calls. Called in the
|
||
build-in-place and non-build-in-place cases.
|
||
(Expand_Simple_Function_Return): Call
|
||
Set_Enclosing_Sec_Stack_Return instead of performing the loop
|
||
in line.
|
||
|
||
2015-10-23 Bob Duff <duff@adacore.com>
|
||
|
||
* scng.adb (Char_Literal_Case): If an apostrophe
|
||
follows a reserved word, treat it as a lone apostrophe, rather
|
||
than the start of a character literal. This was already done for
|
||
"all", but it needs to be done also for (e.g.) "Delta".
|
||
|
||
2015-10-23 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Use
|
||
Underlying_Type for B_Typ, in case the Typ is a subtype of a type with
|
||
unknown discriminants.
|
||
* g-awk.ads: Minor style fix in comment
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* debug.adb: Document the use of debug switch -gnatd.5.
|
||
* einfo.adb: Code reformatting. (Is_Ghost_Entity): Moved from ghost.adb.
|
||
* einfo.ads New synthesized attribute Is_Ghost_Enity along
|
||
with usage in nodes and pragma Inline.
|
||
(Is_Ghost_Entity: Moved from ghost.ads.
|
||
* exp_ch3.adb Code reformatting.
|
||
(Expand_Freeze_Array_Type): Capture, set and restore the Ghost mode.
|
||
(Expand_Freeze_Class_Wide_Type): Capture, set and restore the
|
||
Ghost mode.
|
||
(Expand_Freeze_Enumeration_Type): Capture, set and
|
||
restore the Ghost mode.
|
||
(Expand_Freeze_Record_Type): Capture, set and restore the Ghost mode.
|
||
* exp_ch6.adb (Expand_Subprogram_Contract): Do not expand the
|
||
contract of an ignored Ghost subprogram.
|
||
* exp_ch13.adb Add with and use clauses for Ghost.
|
||
(Expand_N_Freeze_Entity): Capture, set and restore the Ghost mode.
|
||
* exp_dbug.adb (Get_External_Name): Code reformatting. Add a
|
||
special prefix for ignored Ghost entities or when requested by
|
||
-gnatd.5 for any Ghost entity.
|
||
* exp_dbug.ads Document the use of prefix "_ghost_" for ignored
|
||
Ghost entities.
|
||
* exp_prag.adb (Expand_Pragma_Check): Capture, set and restore the
|
||
Ghost mode.
|
||
(Expand_Pragma_Loop_Variant): Use In_Assertion_Expr
|
||
to signal the original context.
|
||
* ghost.adb (Check_Ghost_Overriding): Code cleanup.
|
||
(Is_Ghost_Entity): Moved to einfo.adb. (Is_OK_Declaration):
|
||
Move the assertion expression check to the outer level.
|
||
(Is_OK_Ghost_Context): An assertion expression is a valid Ghost
|
||
context.
|
||
* ghost.ads (Is_Ghost_Entity): Moved to einfo.ads.
|
||
* sem_ch3.adb (Analyze_Object_Contract): A source Ghost object
|
||
cannot be imported or exported. Mark internally generated objects
|
||
as Ghost when applicable.
|
||
(Make_Class_Wide_Type): Inherit the ghostness of the root tagged type.
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Mark
|
||
a stand alone subprogram body as Ghost when applicable.
|
||
(Analyze_Subprogram_Declaration): Mark internally generated
|
||
subprograms as Ghost when applicable.
|
||
* sem_ch7.adb: Code cleanup.
|
||
* sem_ch13.adb (Add_Invariants): Add various formal
|
||
parameters to break dependency on global variables.
|
||
(Build_Invariant_Procedure): Code cleanup. Capture, set and
|
||
restore the Ghost mode.
|
||
* sem_res.adb (Resolve_Actuals): The actual parameter of a source
|
||
Ghost subprogram whose formal is of mode IN OUT or OUT must be
|
||
a Ghost variable.
|
||
|
||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch8.adb Code cleanup.
|
||
(Find_Expanded_Name): Replace
|
||
the call to In_Pragmas_Depends_Or_Global with a call to
|
||
In_Abstract_View_Pragma.
|
||
(In_Abstract_View_Pragma): New routine.
|
||
(In_Pragmas_Depends_Or_Global): Removed.
|
||
* sem_prag.adb (Analyze_Part_Of): Catch a case where indicator
|
||
Part_Of denotes the abstract view of a variable.
|
||
|
||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sem_util.ads (Unique_Defining_Entity): Document the result
|
||
for tasks and entries.
|
||
* sem_util.adb (Unique_Entity): Return declaration entity for task and
|
||
entry bodies
|
||
|
||
2015-10-22 Mikhail Maltsev <maltsevm@gmail.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Use gcc_checking_assert.
|
||
* gcc-interface/trans.c (assoc_to_constructor): Use flag_checking.
|
||
* gcc-interface/utils.c (relate_alias_sets): Likewise.
|
||
* gcc-interface/utils2.c (build_binary_op, build_unary_op): Use
|
||
gcc_checking_assert
|
||
|
||
2015-10-21 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR driver/68043
|
||
* gcc-interface/lang.opt: End each sentence that describes
|
||
an option with a period.
|
||
|
||
2015-10-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* fmap.adb, a-cihama.adb, sem_ch5.adb, make.adb, inline.adb,
|
||
a-cfhase.adb, scng.adb, sem_ch12.adb, freeze.adb, tempdir.adb,
|
||
sem_util.adb, sem_res.adb, s-regexp.adb, a-clrefi.adb: Fix coding
|
||
style for marking start of processing of subprograms.
|
||
|
||
2015-10-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* lib-xref-spark_specific.adb (Add_SPARK_File): Start traversal
|
||
by requesting info from stubs. (Traverse_All_Compilation_Units):
|
||
Remove unused procedure.
|
||
(Traverse_Declarations_Or_Statements): Handle protected and task units.
|
||
* lib-xref.ads (Traverse_All_Compilation_Units): Remove unused
|
||
procedure.
|
||
* restrict.adb (Check_Restriction): Do not ignore
|
||
restrictions in GNATprove_Mode.
|
||
|
||
2015-10-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-valllu.adb, sem_ch3.adb, layout.adb, a-crbtgo.adb, exp_ch9.adb,
|
||
make.adb, g-diopit.adb, s-valuns.adb, sem_ch9.adb, sem_ch10.adb,
|
||
sem_ch12.adb, a-tifiio.adb, g-dynhta.adb, uintp.adb,
|
||
sem_util.adb, sem_res.adb, s-htable.adb, exp_tss.adb, s-soflin.ads,
|
||
exp_ch6.adb, sem_ch6.adb, a-rbtgbo.adb, par-ch12.adb, sem_ch8.adb,
|
||
sem_eval.adb, mdll.adb, par-ch5.adb, s-poosiz.adb, sem_ch4.adb,
|
||
a-ngelfu.adb, s-taspri-solaris.ads, a-cforse.adb: Fix typos.
|
||
|
||
2015-10-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sem_aggr.adb, mlib-prj.adb, prep.adb, eval_fat.adb, rtsfind.adb,
|
||
freeze.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnatlink.adb,
|
||
par-ch6.adb, exp_tss.adb, exp_ch4.adb, s-shasto.adb, exp_fixd.adb,
|
||
sem_ch6.adb, clean.adb, sem_ch8.adb, sem_eval.adb, sem_ch9.adb: Fix
|
||
typos.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch11.adb (Analyze_Handled_Statements): If the scope is a
|
||
postcondition subprogram, do not check for useless assignments
|
||
because there are no source references in such a body, and the
|
||
call will lose deferred references from the enclosing subprogram.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb: nalyze_Attribute_Definition_Clause, case
|
||
'Address): If either object is controlled the overlay is
|
||
erroneous, but analysis must be completed so that back-end sees
|
||
address clause and completes code generation. Improve text
|
||
of warning.
|
||
|
||
2015-10-20 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* exp_ch4.adb: Minor reformatting.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* s-mudido-affinity.adb (Create): Correct subranges of slices of CPU
|
||
arrays.
|
||
|
||
2015-10-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sinfo.ads, g-pehage.adb, par-ch12.adb,
|
||
layout.adb, exp_util.adb, sem_aux.adb, make.adb, checks.adb,
|
||
sem_ch12.adb, sem_res.adb, sem_attr.adb, a-ngelfu.adb, sem_ch4.adb,
|
||
switch-b.adb, sem_ch6.adb, prj-dect.adb, gnatxref.adb, sem_ch13.adb,
|
||
lib-xref.adb: Fix typos.
|
||
|
||
2015-10-20 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_Array_Comparison): Use
|
||
generic code if runtime routine is not available.
|
||
|
||
2015-10-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* a-sytaco.ads (Ada.Synchronous_Task_Control): Package
|
||
now withs System.Task_Identification. The visible part
|
||
of the spec has SPARK_Mode. The private part has pragma
|
||
SPARK_Mode (Off).
|
||
(Set_True): Added Global and Depends aspects
|
||
(Set_False): Added Global and Depends aspects (Current_State):
|
||
Added Volatile_Function aspect and added external state
|
||
Ada.Task_Identification.Tasking_State as a Global input.
|
||
(Suspend_Until_True): Added Global and Depends aspects
|
||
* a-sytaco.adb (Ada.Synchronous_Task_Control):
|
||
Package body has SPARK_Mode => Off
|
||
* a-extiin.ads (Ada.Execution_Time.Interrupts):
|
||
Package now withs Ada.Real_Time and has SPARK_Mode.
|
||
(Clock): Added Volatile_Function aspect and added external state
|
||
Ada.Real_Time.Clock_Time as a Global input.
|
||
* a-reatim.ads (Ada.Real_Time): The visible part of the spec has
|
||
SPARK_Mode. The private part has pragma SPARK_Mode (Off). The package
|
||
declares external state Clock_Time with properties Async_Readers and
|
||
Async_Writers.
|
||
(Clock): Added Volatile_Function aspect and
|
||
added external state Clock_Time as a Global input.
|
||
* a-reatim.adb (Ada.Real_Time): Package body has SPARK_Mode => Off
|
||
* a-exetim-default.ads, a-exetim-mingw.ads (Ada.Execution_Time):
|
||
The visible part of the spec has SPARK_Mode. The private part
|
||
has pragma SPARK_Mode (Off).
|
||
(Clock): Added Volatile_Function
|
||
aspect and added external state Clock_Time as a Global input.
|
||
(Clock_For_Interrupts): Added Volatile_Function aspect and added
|
||
external state Ada.Real_Time.Clock_Time as a Global input.
|
||
* a-exetim-mingw.adb (Ada.Execution_Time): Package body has
|
||
SPARK_Mode => Off
|
||
* a-interr.ads (Ada.Interrupts): Package now
|
||
withs Ada.Task_Identification (Is_Reserved): Added
|
||
SPARK_Mode, Volatile_Function and external state
|
||
Ada.Task_Identification.Tasking_State as a Global input.
|
||
(Is_Attached): Added SPARK_Mode, Volatile_Function and external
|
||
state Ada.Task_Identification.Tasking_State as a Global input.
|
||
(Attach_Handler): Added SPARK_Mode => Off (Exchange_Handler):
|
||
Added SPARK_Mode => Off (Detach_Handler): Added SPARK_Mode
|
||
and external state Ada.Task_Identification.Tasking_State as a
|
||
Global In_Out. (Reference): Added SPARK_Mode => Off
|
||
* a-disedf.ads (Get_Deadline): Added SPARK_Mode, Volatile_Function
|
||
and external state Ada.Task_Identification.Tasking_State as a
|
||
Global input.
|
||
* a-taside.ads (Ada.Task_Identification): The visible part of
|
||
the spec has SPARK_Mode. The private part has pragma SPARK_Mode
|
||
(Off). The package declares external state Tasking_State with
|
||
properties Async_Readers and Async_Writers.
|
||
(Current_Task): Added
|
||
Volatile_Function aspect and added external state Tasking_State
|
||
as a Global input.
|
||
(Environment_Task): Added SPARK_Mode => Off
|
||
(Is_Terminated): Added Volatile_Function aspect and added external
|
||
state Tasking_State as a Global input. (Is_Callable): Added
|
||
Volatile_Function aspect and added external state Tasking_State as
|
||
a Global input.
|
||
(Activation_Is_Complete): Added Volatile_Function
|
||
aspect and added external state Tasking_State as a Global input.
|
||
* a-taside.adb (Ada.Task_Identification): Package body has
|
||
SPARK_Mode => Off.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* atree.ads, atree.adb: Enable List38 and List39 on entities.
|
||
* einfo.ads, einfo.adb (Class_Wide_Preconds) new attribute defined
|
||
on subprograms. Holds the list of class-wide precondition
|
||
functions inherited from ancestors. Each such function is an
|
||
instantiation of the generic function generated from an explicit
|
||
aspect specification for a class-wide precondition. A type is
|
||
an ancestor of itself, and therefore a root type has such an
|
||
instance on its own list.
|
||
(Class_Wide_Postconds): ditto for postconditions.
|
||
|
||
2015-10-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-attr.adb: Add packages Prove and GnatTest.
|
||
|
||
2015-10-20 Steve Baird <baird@adacore.com>
|
||
|
||
* a-conhel.adb: Add an Annotate pragma to help suppress CodePeer's
|
||
analysis of internals of container generic instances. This pragma
|
||
has no other effect.
|
||
* a-conhel.adb (Generic_Implementation) Add "pragma Annotate
|
||
(CodePeer, Skip_Analysis);".
|
||
|
||
2015-10-20 Steve Baird <baird@adacore.com>
|
||
|
||
* pprint.adb: Code clean up.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-cfinve.ads, a-coboho.ads: Improve comments.
|
||
* a-coboho.adb (Size_In_Storage_Elements): Improve error message
|
||
in case of "Size is too big" exception.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-contai.ads: Remove check names (moved to snames.ads-tmpl).
|
||
* snames.ads-tmpl: Add check names that were previously in
|
||
a-contai.ads, so they are now visible in configuration files.
|
||
* types.ads: Add checks corresponding to snames.ads-tmpl.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Loop_Statement): Attach generated loop
|
||
identifier to the tree, because it may be the root of a tree
|
||
traversal in Pop_Scope when freeze actions are pending.
|
||
|
||
2015-10-20 Steve Baird <baird@adacore.com>
|
||
|
||
* pprint.ads (Expression_Image) Add new generic formal flag
|
||
Hide_Parameter_Blocks.
|
||
* pprint.adb (Expression_Image) If new flag is set, then display
|
||
dereferences of parameter block components accordingly.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_prag.adb: Code clean up.
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_N_Extended_Return_Statement): Code cleanup.
|
||
(Make_Build_In_Place_Call_In_Object_Declaration): Update the
|
||
parameter profile. Code cleanup. Request debug info for the
|
||
object renaming declaration.
|
||
(Move_Activation_Chain): Add new formal parameter and update the
|
||
comment on usage.
|
||
* exp_ch6.ads (Make_Build_In_Place_Call_In_Object_Declaration):
|
||
Update the parameter profile and comment on usage.
|
||
* sem_util.ads, sem_util.adb (Remove_Overloaded_Entity): New routine,
|
||
currently unused.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_One_Aspect, case
|
||
Aspect_Disable_Controlled): If expander is not active, pre-analyze
|
||
expression anyway for ASIS and other tools use.
|
||
* sem_prag.adb (Build_Generic_Class_Condition): Handle properly
|
||
anonymous access types in parameter specifications. Make the
|
||
formal type a formal derived type of the controlling type of
|
||
the subprogram.
|
||
|
||
2015-10-20 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* s-rident.ads: No_Task_At_Interrupt_Priority: New restriction.
|
||
* sem_prag.adb (Analyze_Pragma): Check the restriction.
|
||
* sem_ch13.adb (Analyze_Attribute_Definition_Clause):
|
||
Check the restriction (for aspects).
|
||
|
||
2015-10-20 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_prag.adb: Minor reformatting.
|
||
|
||
2015-10-20 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* sem_util.adb (Is_Protected_Self_Reference): Remove reference to
|
||
UET_Address in comment.
|
||
* sem_attr.adb (Check_Unit_Name): Adjust comment.
|
||
(Analyze_Attribute): Remove handling of UET_Address.
|
||
* sem_attr.ads (Attribute_Impl_Def): Remove Attribute_UET_Address.
|
||
* snames.ads-tmpl Remove Name_UET_Address, Attribute_UET_Address.
|
||
* exp_attr.adb (Expand_N_Attribute_Reference): Remove
|
||
Attribute_UET_Address.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-cbdlli.adb, a-cdlili.adb, a-chtgop.adb, a-cidlli.adb,
|
||
* a-cobove.adb, a-coinve.adb, a-convec.adb, a-crbtgo.adb ("="): Avoid
|
||
modifying the tampering counts unnecessarily.
|
||
(Adjust): Zero tampering counts unconditionally.
|
||
|
||
2015-10-20 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* init.c: Fix build issue on arm-vx6 when building the RTP
|
||
run-time.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Object_Declaration): If the expression
|
||
is an aggregate and compilation is in -gnatI mode (ignore rep
|
||
clauses) do not delay resolution of aggregate, to prevent freeze
|
||
actions out of order in the backend.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_prag.ads, sem_prag.adb (Build_Generic_Class_Condition):
|
||
New procedure to construct a generic function for a class-wide
|
||
precondition, to implement AI12-0113 concerning the new semantics
|
||
of class-wide preconditions for overriding uperations.
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_util.adb (Find_Actual): The routine is
|
||
now capable of operating on entry calls.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_res.adb: Remove redundant check.
|
||
|
||
2015-10-20 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* init.c (__gnat_vxsim_error_handler): Completely disable on
|
||
VxWorks-7 as the VSBs used to build gcc do not support vxsim
|
||
architecture.
|
||
|
||
2015-10-20 Claire Dross <dross@adacore.com>
|
||
|
||
* a-cfdlli.ads, a-cfinve.ads, a-cofove.ads (Generic_Sorting): Explicit
|
||
SPARK_Mode.
|
||
* a-cfhase.ads, a-cforse.ads (Generic_Keys): Explicit SPARK_Mode.
|
||
|
||
2015-10-20 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* exp_ch9.adb (Expand_N_Protected_Type_Declaration):
|
||
Check for No_Implicit_Protected_Object_Allocations.
|
||
* fe.h (Check_No_Implicit_Task_Alloc,
|
||
Check_No_Implicit_Protected_Alloc): Define and declare.
|
||
* restrict.ads, restrict.adb (Check_No_Implicit_Task_Alloc,
|
||
Check_No_Implicit_Protected_Alloc): New procedures to check the
|
||
restrictions.
|
||
* s-rident.ads (No_Implicit_Task_Allocations)
|
||
(No_Implicit_Protected_Object_Allocations): Declare new
|
||
restrictions.
|
||
|
||
2015-10-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Selected_Component): Only set flag
|
||
when component is defined in a variant part.
|
||
* sem_util.adb,
|
||
* sem_util.ads (Is_Declared_Within_Variant): Promote local query
|
||
as publicy visible one for use in Resolve_Selected_Component.
|
||
|
||
2015-10-20 Philippe Gil <gil@adacore.com>
|
||
|
||
* g-debpoo.adb: allow instrumented System.Memory to use Debug_Pool
|
||
from foreign threads.
|
||
* g-debpoo.adb (Print_Traceback): NEW print traceback if available
|
||
added to support Stack_Trace_Depth = 0.
|
||
(Print_Address): NEW print System.Address without no secondary
|
||
stack use (Address_Image uses secondary stack)
|
||
|
||
2015-10-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* exp_ch9.adb (Expand_Entry_Barrier): Default initialize local variable
|
||
Func.
|
||
|
||
2015-10-20 Jerome Lambourg <lambourg@adacore.com>
|
||
|
||
* init.c (__gnat_error_handler for vxworks): Force
|
||
SPE bit in the MSR when handling signals
|
||
|
||
2015-10-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* einfo.ads, sem_ch12.adb, sem_ch6.adb, table.ads, s-stposu.ads,
|
||
g-table.ads, g-dyntab.ads, makeutl.ads, a-crdlli.ads: Fix typos.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Loop_Statement): Element iterators
|
||
over multidimensional arrays create additional loops during
|
||
expansion. For such loops we create a label as a scope
|
||
name. Attach this label properly to tree, for use in GNATProve
|
||
over such element iterators.
|
||
* sem_attr.adb (Analyze_Attribute, case Loop_Entry): The loop to
|
||
which the attribute applies comes from source, not from expansion
|
||
of an element iterator or a quantified expression.
|
||
* exp_attr.adb (Expand_N_Attribute_Reference): Ditto.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Call): Check for a call to a function
|
||
declared in a Dimension I/O package, to handle the new Image
|
||
function.
|
||
|
||
2015-10-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* inline.ads: Minor comment fixes.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-comutr.ads (Tree_Node_Access): Add No_Strict_Aliasing, because
|
||
we're doing unchecked conversions with this pointer.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch9.adb (Next_Protected_Operation): An expression function
|
||
used as a completion can be the next protected operation in a
|
||
protected body.
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_res.adb (Is_OK_Volatile_Context): Add a guard when checking a
|
||
possible call to an instance of Ada.Unchecked_Conversion to avoid
|
||
testing protected function calls. Allow references to protected objects
|
||
in prefixed protected calls.
|
||
(Is_Protected_Operation_Call): New routine.
|
||
|
||
2015-10-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* exp_ch5.adb, exp_ch5.ads (Expand_Iterator_Loop_Over_Array): Make
|
||
query public. Remove code handling with iterator loop over array
|
||
of the 'in' form, which is not allowed in Ada. * exp_spark.adb
|
||
(Expand_SPARK): Expand loop statements that take the form of an
|
||
iterator over an array.
|
||
* sem_ch5.adb (Analyze_Loop_Statement): Do not analyze loop statements
|
||
that take the form of an iterator over an array, so that the rewritten
|
||
form gets analyzed instead.
|
||
* sem_util.adb, sem_util.ads (Is_Iterator_Over_Array): New query
|
||
to recognize iterators over arrays.
|
||
|
||
2015-10-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-excdeb.ads, s-excdeb.adb (Debug_Raise_Exception): Add
|
||
parameter Message.
|
||
* a-except.adb (Raise_Current_Excep): Update call to
|
||
Debug_Raise_Exception.
|
||
* a-except-2005.adb (Complete_Occurrence): Ditto.
|
||
* sem_ch12.adb: Whitespace fix.
|
||
|
||
2015-10-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_warn.adb (Is_OK_Fully_Initialized): Consider types with DIC as
|
||
fully default initialized.
|
||
* sem_ch6.adb: minor style fix in comment
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* s-diflio.ads, s-diflio.adb (Image): New function for dimensioned
|
||
quantities, to produce a string that includes the dimension
|
||
synbol for the quantity, or the vector of dimensions in standard
|
||
notation.
|
||
* sem_dim.adb (Expand_Put_Call_With_Symbol): Process new function
|
||
Image, to include dimension information in the generated string,
|
||
identical to the string produced by the Put procedure on a string
|
||
for a dimensioned quantity.
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch7.adb (Process_Declarations): A loop
|
||
parameter does not require finalization actions.
|
||
|
||
2015-10-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Simple_Function_Return): Do not create an
|
||
actual subtype for a mutable record return type if the expression
|
||
is itself a function call.
|
||
|
||
2015-10-20 Dmitriy Anisimkov <anisimko@adacore.com>
|
||
|
||
* s-atocou.adb, s-atocou-builtin.adb: Fix implementation description
|
||
related to new type support.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Explicit_Dererence): Call Analyze_Dimension
|
||
to propagate dimension information from prefix.
|
||
* sem_dim.adb (Analyze_Dimension): Handle Explicit_Dereference.
|
||
* inline.ads: minor whitespace fix in comment
|
||
* sem_ch6.adb: minor gramar fix in comment
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Object_Contract):
|
||
A protected type or a protected object is allowed to have a
|
||
discriminated part.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_util.adb (Requires_Transient_Scope):
|
||
Return true for mutable records if the maximum size is very large.
|
||
|
||
2015-10-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* a-except-2005.adb (To_Stderr): Import Put_Char_Stderr with
|
||
the same signature as in System.IO.Put.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-cobove.adb (Set_Length): Restore previous logic, but with "Checks
|
||
and then" on the check.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* par-ch3.adb (P_Known_Discriminant_Part_Opt): Handle properly
|
||
a misplaced "constant" keyword in a discriminant specification.
|
||
|
||
2015-10-20 Steve Baird <baird@adacore.com>
|
||
|
||
* einfo.ads (Is_Param_Block_Component_Type): New function decl
|
||
for querying the flag.
|
||
(Set_Is_Param_Block_Component_Type): New procedure decl for setting
|
||
the flag.
|
||
* einfo.adb (Is_Param_Block_Component_Type): New function body.
|
||
(Set_Is_Param_Block_Component_Type): New procedure body.
|
||
(Write_Entity_Flags): Display the new flag.
|
||
* exp_ch9.adb (Build_Parameter_Block): Set flag on parameter
|
||
block component types.
|
||
(Expand_N_Entry_Declaration): Set flag on parameter block component
|
||
types.
|
||
|
||
2015-10-20 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_elab.adb: Do not pass an N_Attribute_Reference node to
|
||
Sinfo.Set_No_Elaboration_Check.
|
||
* sem_elab.adb (Check_Elab_Call) Do not pass a non-call
|
||
node (specifically, an N_Attribute_Reference node) to
|
||
Sinfo.Set_No_Elaboration_Check.
|
||
|
||
2015-10-20 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* adaint.c: File names are case sensitive on aarch64-ios.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-cbdlli.ads, a-cbhase.ads, a-cbmutr.ads, a-cborse.ads,
|
||
* a-cdlili.ads, a-cidlli.ads, a-cihase.ads, a-cimutr.ads,
|
||
* a-ciorse.ads, a-cobove.ads, a-cohase.ads, a-coinve.ads,
|
||
* a-comutr.ads, a-convec.ads, a-coorse.ads: Use non-private with clause.
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_util.adb (Requires_Cleanup_Actions): A loop parameter does not
|
||
require finalization actions.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* par-ch3.adb (P_Declarative_Items): In case of misplaced
|
||
aspect specifications, ensure that flag Done is properly set to
|
||
continue parse.
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* rtsfind.ads Remove the entries for Ada.Synchronous_Task_Control
|
||
and Suspension_Object from tables RE_Id, RE_Unit_Table and RTU_Id.
|
||
* sem_util.adb (Is_Descendant_Of_Suspension_Object): Update
|
||
the comment on usage. Use routine Is_Suspension_Object to detect
|
||
whether a type matches Suspension_Object.
|
||
(Is_Suspension_Object): New routine.
|
||
* snames.ads-tmpl: Add predefined names for Suspension_Object
|
||
and Synchronous_Task_Control.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_smem.adb (Check_Shared_Var): Clean up code that handles
|
||
type declarations with discriminants, remove obsolete check.
|
||
|
||
2015-10-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* par_sco.adb: Minor style fixes.
|
||
|
||
2015-10-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* debug.adb: Update documentation of -gnatdu.
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* aspects.adb Add aspect Volatile_Function to table
|
||
Canonical_Aspect.
|
||
* aspect.ads Add aspect Volatile_Function to tables
|
||
Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names
|
||
and Implementation_Defined_Aspect. Aspects Async_Readers,
|
||
Async_Writers, Effective_Reads and Effective_Writes are no
|
||
longer Boolean.
|
||
* einfo.adb (Get_Pragma): Add an entry for pragma
|
||
Volatile_Function.
|
||
* par-prag.adb (Prag): Pragma Volatile_Function does not need
|
||
special processing by the parser.
|
||
* rtsfind.ads Add an entry for Ada.Synchronous_Task_Control in
|
||
table RTU_Id. Add an entry for Suspension_Object in table RE_Id.
|
||
* sem_ch3.adb Fix SPARK RM references.
|
||
(Analyze_Object_Contract): Update the error guard.
|
||
* sem_ch5.adb Fix SPARK RM references.
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Ensure
|
||
that a non-volatile function does not contain an effectively
|
||
volatile parameter.
|
||
(Analyze_Subprogram_Contract): Ensure
|
||
that a non-volatile function does not contain an effectively
|
||
volatile parameter.
|
||
* sem_ch12.adb (Instantiate_Object): Remove the reference to
|
||
the SPARK RM from the error message.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Add
|
||
processing for aspects Async_Readers, Async_Writers,
|
||
Effective_Reads, Effective_Writes and Volatile_Function.
|
||
(Check_Aspect_At_Freeze_Point): Aspects Async_Readers,
|
||
Async_Writers, Effective_Reads, Effective_Writes and
|
||
Volatile_Function do not need special processing at the freeze
|
||
point.
|
||
* sem_prag.adb Add an entry for pragma Volatile_Function in
|
||
table Sig_Flags.
|
||
(Analyze_External_Property_In_Decl_Part):
|
||
Reimplemented as Async_Readers, Async_Writers, Effective_Reads
|
||
and Effective_Writes are no longer Boolean pragmas.
|
||
(Analyze_Global_Item): An external state or effectively
|
||
volatile object cannot appear as an item in pragma
|
||
[Refined_]Global.
|
||
(Analyze_Pragma): Change the implementation
|
||
of Async_Readers, Async_Writers, Effective_Reads and
|
||
Effective_Writes as these are no longer Boolean pragmas.
|
||
Use routine Check_Static_Boolean_Expression to verify the
|
||
optional Boolean expression of Async_Readers, Async_Writers,
|
||
Constant_After_Elaboration, Effective_Reads, Effective_Writes,
|
||
Extensions_Visible and Volatile_Function. Add processing for
|
||
pragma Volatile_Function.
|
||
(Check_Static_Boolean_Expression): New routine.
|
||
(Find_Related_Context): Update the comment on usage.
|
||
(Is_Enabled_Pragma): New routine.
|
||
* sem_prag.ads (Is_Enabled_Pragma): New routine.
|
||
* sem_res.adb Fix SPARK RM references.
|
||
(Is_OK_Volatile_Context): Add detection for return statements.
|
||
(Resolve_Actuals): Remove the check concerning an effectively volatile
|
||
OUT actual parameter as this is now done by the SPARK flow analyzer.
|
||
(Resolve_Entity_Name): Remove the check concerning an effectively
|
||
volatile OUT formal parameter as this is now done by the SPARK
|
||
flow analyzer. (Within_Volatile_Function): New routine.
|
||
* sem_util.adb (Add_Contract_Item): Add processing for pragma
|
||
Volatile_Function.
|
||
(Check_Nonvolatile_Function_Profile): New routine.
|
||
(Is_Descendant_Of_Suspension_Object): New routine.
|
||
(Is_Effectively_Volatile): Protected types and descendants of
|
||
Suspension_Object are now treated as effectively volatile.
|
||
(Is_Enabled): The optional Boolean expression of pragmas
|
||
Async_Readers, Async_Writers, Effective_Reads and Effective_Writes
|
||
now appears as the first argument.
|
||
(Is_Volatile_Function): New routine.
|
||
* sem_util.ads Add SPARK RM references.
|
||
(Add_Contract_Item): Update the comment on usage.
|
||
(Check_Nonvolatile_Function_Profile): New routine.
|
||
(Is_Effectively_Volatile): Update the comment on usage.
|
||
(Is_Volatile_Function): New routine.
|
||
* snames.ads-tmpl Add a predefined name and pragma id for
|
||
Volatile_Function.
|
||
|
||
2015-10-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat_ugn.texi, gnat_rm.texi: Regenerate.
|
||
* doc/gnat_ugn/gnat_project_manager.rst,
|
||
doc/gnat_ugn/building_executable_programs_with_gnat.rst,
|
||
doc/gnat_ugn/the_gnat_compilation_model.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_characteristics.rst: Update doc.
|
||
|
||
2015-10-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gcc-interface/Makefile.in: Update targets.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_One_Aspect): Avoid
|
||
analyzing the expression in a 'Disable_Controlled attribute when
|
||
Expander_Active is False, because otherwise, we get errors about
|
||
nonstatic expressions in pragma-Preelaborate generic packages.
|
||
* restrict.ads: minor whitespace cleanup in comment
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-conhel.adb: Remove "use SAC;", because otherwise the compiler
|
||
complains about use clauses in run-time units. Use "use type"
|
||
instead.
|
||
* a-btgbso.adb, a-btgbso.ads, a-cbdlli.adb, a-cbdlli.ads,
|
||
* a-cbhama.adb, a-cbhama.ads, a-cbhase.adb, a-cbhase.ads,
|
||
* a-cbmutr.adb, a-cbmutr.ads, a-cborma.adb, a-cborma.ads,
|
||
* a-cborse.adb, a-cborse.ads, a-cdlili.adb, a-cdlili.ads,
|
||
* a-chtgbk.adb, a-chtgbk.ads, a-chtgbo.adb, a-chtgbo.ads,
|
||
* a-chtgke.adb, a-chtgke.ads, a-chtgop.adb, a-chtgop.ads,
|
||
* a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
|
||
* a-cihase.adb, a-cihase.ads, a-cimutr.adb, a-cimutr.ads,
|
||
* a-ciorma.adb, a-ciorma.ads, a-ciormu.adb, a-ciormu.ads,
|
||
* a-ciorse.adb, a-ciorse.ads, a-cobove.adb, a-cobove.ads,
|
||
* a-cohama.adb, a-cohama.ads, a-cohase.adb, a-cohase.ads,
|
||
* a-cohata.ads, a-coinve.adb, a-comutr.adb, a-comutr.ads,
|
||
* a-convec.adb, a-coorma.adb, a-coorma.ads, a-coormu.adb,
|
||
* a-coormu.ads, a-coorse.adb, a-coorse.ads, a-crbltr.ads,
|
||
* a-crbtgk.adb, a-crbtgk.ads, a-crbtgo.adb, a-crbtgo.ads,
|
||
* a-rbtgbk.adb, a-rbtgbk.ads, a-rbtgbo.adb, a-rbtgbo.ads,
|
||
* a-rbtgso.adb, a-rbtgso.ads: Change all the predefined containers
|
||
to share the tampering machinery in Ada.Containers.Helpers. This
|
||
reduces the amount of duplicated code, and takes advantage of
|
||
efficiency improvements in Helpers.
|
||
Protect all run-time checks and supporting machinery with "if
|
||
Checks" or "if T_Check", so this code can be suppressed with
|
||
pragma Suppress or -gnatp.
|
||
Add Pseudo_Reference and Get_Element_Access to remaining
|
||
containers, so that the compiler can optimize "for ... of" loops.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-contai.adb, a-coinve.ads, a-contai.ads, a-conhel.adb, a-conhel.ads,
|
||
Makefile.rtl, a-convec.ads: Move helper code from Ada.Containers to a
|
||
new package Ada.Containers.Helpers, because otherwise it's not
|
||
visible everywhere it needs to be (e.g. in the package
|
||
Ada.Containers.Red_Black_Trees, Generic_Tree_Types wants to have
|
||
a component of type Tamper_Counts).
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_type.adb (Intersect_Types): Specialize error message when
|
||
one operand is a limited view which is a priori incompatible
|
||
with all other named types.
|
||
* sem_prag.adb: minor fix in comment
|
||
* sem_ch13.adb: Code clean up.
|
||
|
||
2015-10-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch12.adb (Need_Subprogram_Instance_Body): Also return true
|
||
for a subprogram nested in an inlined subprogram.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-coinve.adb, a-contai.adb: Update comments.
|
||
* pprint.ads: Minor reformatting.
|
||
|
||
2015-10-20 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* env.c, init.c: Handle arm64-darwin like arm-darwin.
|
||
* tracebak.c: Handle arm64-darwin.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* s-trasym.adb (Symbolic_Traceback): When giving the traceback
|
||
as hexadecimal code addresses, separate by blanks instead of LF.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate freeze
|
||
node for subprogram in Compile_Only mode.
|
||
|
||
2015-10-20 Dmitriy Anisimkov <anisimko@adacore.com>
|
||
|
||
* s-atocou.adb, s-atocou.ads, a-contai.adb, a-contai.ads,
|
||
s-atocou-x86.adb, s-atocou-builtin.adb: Task safe over container
|
||
iterations.
|
||
|
||
2015-10-20 Philippe Gil <gil@adacore.com>
|
||
|
||
* g-debpoo.ads (Dump): NEW print Debug_Pool statistics & main
|
||
contributors.
|
||
(Dump_Stdout): NEW print to stdout Debug_Pool statistics &
|
||
main contributors.
|
||
(Reset): NEW reset counters to 0.
|
||
(Get_Size): NEW return size allocated at parameter.
|
||
(High_Water_Mark): NEW.
|
||
(Current_Water_Mark): NEW.
|
||
(System_Memory_Debug_Pool): NEW tell Debug_Pools that
|
||
System.Memory uses it.
|
||
* g-debpoo.adb (Traceback_Htable_Elem): add Frees, Total_Frees
|
||
components.
|
||
(Find_Or_Create_Traceback): don't manage in System.Memory
|
||
Debug_Pool Deallocate Traceback's.
|
||
(Validity): add optional Handled table when System.Memory asked
|
||
for Allow_Unhandled_Memory.
|
||
(Allocate): handle Allocate reentrancy occuring when System.Memory
|
||
uses Debug_Pools.
|
||
(Deallocate): handle when Allow_Unhandled_Memory
|
||
is set deallocation of unhandled memory. Dont't check
|
||
Size_In_Storage_Elements if equal to Storage_Count'Last. update
|
||
Frees, Total_Frees new components.
|
||
|
||
2015-10-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* fe.h: Minor tweak.
|
||
|
||
2015-10-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* sem_cat.adb (Check_Categorization_Dependencies): Do nothing
|
||
when -gnatdu is specified.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb (analyze_Subprogram_Renaming): The actual for a
|
||
formal abstract subprogram must have a controlling type.
|
||
* stand.ads: Minor whitespace cleanup.
|
||
|
||
2015-10-20 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_ch13.adb: Minor reference change (RM => AARM).
|
||
|
||
2015-10-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* make.adb (Check): Skip multilib switches reinstated by the
|
||
compiler only when counting the number of switches, since it is
|
||
what really matters in the regular operating mode.
|
||
|
||
2015-10-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* einfo.adb: Add extra assertion for small clause.
|
||
* cstand.adb: Minor style fix in comment.
|
||
* debug.adb: Minor reformatting.
|
||
* exp_util.adb: Fix minor typo.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Same_Instantiated_Function): New predicate in
|
||
Check_Formal_Package_Instance, used to verify that the formal
|
||
and the actual of an actual package match when both are functions
|
||
given as attribute references.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-coinve.ads, a-coinve.adb: Do the same efficiency
|
||
improvements that were already done in the definite case
|
||
(Ada.Containers.Vectors, i.e. a-convec). This includes the
|
||
ability to suppress checks, the fast path for Append, inlining
|
||
as appropriate, and special-casing of "for ... of" loops. Reuse
|
||
the tampering machinery that is now in Ada.Containers. Simplify
|
||
many operations.
|
||
* a-convec.ads, a-convec.adb: Change the code to be more similar
|
||
to a-coinve.
|
||
* a-finali.ads, a-finali.adb: Expose the "null"-ness of the
|
||
operations. This may enable optimizations in the future, and
|
||
seems cleaner anyway.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb (Is_Operational_Item): Attributes related to
|
||
Ada 2012 iterators are operational items, and can be specified
|
||
on partial views.
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Check_Usage): Update the calls to Usage_Error.
|
||
(Usage_Error): Remove formal parameter Item. Emit a clearer message
|
||
concerning a missing dependency item and place it on the related pragma.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* debug.adb, expander.adb: Implement -gnatd.B switch, which
|
||
triggers a bug box when an abort_statement is seen. This is
|
||
useful for testing Comperr.Compiler_Abort.
|
||
* gnat1drv.adb: Trigger bug box on all exceptions other than
|
||
Unrecoverable_Error.
|
||
|
||
2015-10-20 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* Makefile.rtl: add the following...
|
||
* g-binenv.ads, g-binenv.adb: New unit providing runtime access
|
||
to bind time captured values ("bind environment")
|
||
* init.c: declare new global variable __gl_bind_env_addr.
|
||
* bindgen.ads, bindgen.adb (Set_Bind_Env): record a bind
|
||
environment key=value pair.
|
||
(Gen_Bind_Env_String): helper to produce the bind environment data
|
||
called in the binder generated file.
|
||
(Gen_Output_File_Ada): Call the above (Gen_Adainit): Set
|
||
__gl_bind_env_addr accordingly.
|
||
* switch-b.adb: Support for command line switch -V (user interface
|
||
to set a build environment key=value pair)
|
||
* bindusg.adb: Document the above
|
||
|
||
2015-10-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* sem_prag.adb (Analyse_Pragma: Pragma Pure): Do not set the
|
||
entity as Pure if Debug_Flag_U is set.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* output.adb (Write_Int): Work with negative numbers in order to avoid
|
||
negating Int'First and thereby causing overflow.
|
||
* sem_util.adb: Minor comment fix.
|
||
|
||
2015-10-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* make.adb (Check): Skip multilib switches reinstated by the
|
||
compiler when doing the comparison with switches passed to
|
||
gnatmake.
|
||
|
||
2015-10-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Return
|
||
False for procedures marked No_Return.
|
||
* sem_util.ads (Enclosing_Declaration): Improve comment.
|
||
* einfo.adb (Is_Completely_Hidden): Remove spurious assertion.
|
||
|
||
2015-10-20 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* types.ads: Minor reformatting.
|
||
|
||
2015-10-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.adb (Get_Pragma): Minor reformatting. Rename local constant
|
||
Is_CDG to Is_CLS. Add pragma Constant_After_Elaboration to the list of
|
||
classification pragmas.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Declarations); At the of the visible part,
|
||
perform name resolution on the expressions in aspects of visible
|
||
entities.
|
||
* sem_ch13.ads, sem_ch13.adb (Resolve_Aspect_Expressions): Resolve
|
||
expressions in aspects independently of whether corresponding
|
||
entity is frozen. Used to complete name resolution of aspect
|
||
expressions for entities declared in the visible part of a
|
||
package or generic package declaration.
|
||
|
||
2015-10-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-attr.adb: Add package Codepeer and its attributes.
|
||
|
||
2015-10-20 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* sem_ch3.adb, sem_ch13.adb: Minor reformatting.
|
||
|
||
2015-10-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gnatlink.adb (Gnatlink): Do not translate --RTS switch
|
||
for the linker and instead pass the switches that were
|
||
reinstated by the compiler.
|
||
|
||
2015-10-20 Bob Duff <duff@adacore.com>
|
||
|
||
* a-contai.ads, a-convec.ads: Move Count_Type_Last from
|
||
a-convec.ads to a-contai.ads, so other containers can refer to it.
|
||
|
||
2015-10-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Check_Nonoverridable_Aspects): New procedure within
|
||
Analyze_Full_Type_ Declaration, used to apply legality rules in
|
||
13,1,1 (18.3.3) concerning aspects that cannot be overridden in
|
||
a type extension.
|
||
(Check_Duplicate_Aspects): It is not legal to specify the
|
||
Implicit_Dereference aspect on a full view if partial view has
|
||
known discriminants.
|
||
* sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Verify that
|
||
the specification of the aspect on a derived type confirms the
|
||
value of the inherited one.
|
||
* sem_util.adb (Reference_Discriminant): Return empty if none
|
||
specified.
|
||
|
||
2015-10-20 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* exp_ch5.adb, sem_ch3.adb: Minor reformatting.
|
||
|
||
2015-10-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* a-strsup.adb (Super_Trim): Remove statements that put NUL
|
||
characters in unused portion of the Data string.
|
||
|
||
2015-10-16 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* aspects.adb Add an entry for Constant_After_Elaboration in
|
||
table Canonical_Aspect.
|
||
* aspects.ads Add entries for Constant_After_Elaboration in
|
||
tables Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names
|
||
and Implementation_Defined_Aspect.
|
||
* par-prag.adb Pragma Constant_After_Elaboration does not require
|
||
special processing by the parser.
|
||
* sem_ch13.adb Add an entry for Constant_After_Elaboration
|
||
in table Sig_Flags.
|
||
(Analyze_Aspect_Specifications):
|
||
Add processing for aspect Constant_After_Elaboration.
|
||
(Check_Aspect_At_Freeze_Point): Aspect Constant_After_Elaboration
|
||
does not require special processing at freeze time.
|
||
* sem_prag.adb (Analyze_Pragma): Add processing for pragma
|
||
Constant_After_Elaboration. Use routine Find_Related_Context to
|
||
retrieve the context of pragma Part_Of.
|
||
(Duplication_Error): Update comment on usage.
|
||
(Find_Related_Context): New routine.
|
||
* sem_prag.ads Add an entry for Constant_After_Elaboration
|
||
in table Aspect_Specifying_Pragma.
|
||
(Analyze_Contract_Cases_In_Decl_Part): Update the comment on usage.
|
||
* sem_util.adb (Add_Contract_Item): Add processing for pragma
|
||
Constant_After_Elaboration.
|
||
* sem_util.ads (Add_Contract_Item): Update the comment on usage.
|
||
* snames.ads-tmpl Add new predefined name and aspect id for
|
||
Constant_After_Elaboration.
|
||
|
||
2015-10-16 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-pp.adb (Pretty_Print.Print): Correctly display extending
|
||
packages, instead of making them renamed packages.
|
||
|
||
2015-10-16 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch12.adb (Analyze_Package_Instantiation):
|
||
Treat a missing SPARK_Mode annotation as having mode "Off".
|
||
(Analyze_Subprogram_Instantiation): Treat a missing SPARK_Mode
|
||
annotation as having mode "Off".
|
||
(Instantiate_Package_Body): Code
|
||
reformatting. Treat a missing SPARK_Mode annotation as having mode
|
||
"Off".
|
||
(Instantiate_Subprogram_Body): Code reformatting. Treat
|
||
a missing SPARK_Mode annotation as having mode "Off".
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch5.adb: Code clean up.
|
||
* sem_ch13.adb: Minor fix in comment.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* a-exexda.adb: Change format of Exception_Information to be
|
||
more like what we print for unhandled exceptions.
|
||
* a-exstat.adb: Parse new format.
|
||
* a-except-2005.adb, a-except.adb: Document new format.
|
||
|
||
2015-10-16 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Iterator_Specification): Associate a
|
||
transient scope with the renaming object declararation.
|
||
* exp_util.adb (Insert_Actions): if the enclosing interator
|
||
loop is marked as requiring the secondary stack then attach the
|
||
actions to the transient scope.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_ch7.adb: Minor spelling fixes.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram):
|
||
If anonymous type is component type of array type declaration,
|
||
analyze its declaration in the current scope, not the enclosing
|
||
one.
|
||
|
||
2015-10-16 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* prj.adb, sem_util.adb, exp_ch6.adb: Minor reformatting.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch5.adb (Expand_Formal_Container_Element_Loop): Modify
|
||
expansion to allow element iteration over formal containers
|
||
whose elements are indefinite types.
|
||
|
||
2015-10-16 Doug Rupp <rupp@adacore.com>
|
||
|
||
* s-taprop-linux.adb (Monotonic_Clock): Call clock_gettime
|
||
instead of gettimeofday.
|
||
* s-osinte-android.ads, s-osinte-android.adb, s-osinte-linux.ads
|
||
(clock_gettime): New imported subprogram.
|
||
|
||
2015-10-16 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
|
||
Indefinite or limited library level objects are now returned on
|
||
the heap.
|
||
* exp_ch7.adb (Build_Finalization_Master): Add formal
|
||
parameter For_Lib_Level. Add context specific insertion for a
|
||
finalization master created for an access result type related
|
||
to a build-in-place function call used to initialize a library
|
||
level object.
|
||
* exp_ch7.ads (Build_Finalization_Master): Add formal parameter
|
||
For_Lib_Level. Update the comment on usage.
|
||
* sem_util.adb (Mark_Coextensions): Code cleanup.
|
||
|
||
2015-10-16 Emmanuel Briot <briot@adacore.com>
|
||
|
||
* prj.adb (For_Every_Project_Imported_Context): Fix handling
|
||
of aggregated projects with duplicate names.
|
||
* a-ngelfu.ads: Minor whitespace fix.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb (Build_Predicate_Functions): The expression for
|
||
the predicate is side-effect free if it does not contain any
|
||
variable references.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* a-convec.adb ("="): Previous version depended
|
||
on "=" composing, but that doesn't quite work -- we want the "="
|
||
operator passed in to the generic. So we need a loop after all.
|
||
|
||
2015-10-16 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_util.adb (Is_Object_Reference): Attribute 'Loop_Entry produces
|
||
an object.
|
||
* sem_ch6.adb: Minor fix in comment.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* a-contai.ads: Add two check names: Container_Checks and
|
||
Tampering_Check. Move the tampering check machinery from
|
||
Ada.Containers.Vectors to Ada.Containers. Later we can share it
|
||
with other containers.
|
||
Disable the tampering machinery in the presence of
|
||
Suppress(Tampering_Check).
|
||
Simplify the implementation of tampering checks. E.g. use RAII
|
||
to make incrementing/decrementing of the counts more concise.
|
||
* a-contai.adb: New package body, implementing the above.
|
||
* a-convec.ads, a-convec.adb: Use tampering check machinery
|
||
in Ada.Containers.
|
||
Disable all checking code when checks are suppressed.
|
||
Simplify many of the operations. Implement "&" in terms of Append,
|
||
rather than "by hand".
|
||
Remove: function "=" (L, R : Elements_Array) return Boolean is
|
||
abstract; so we can call the predefined "=" on Elements_Array.
|
||
For "=" on Vectors: Previously, we returned True immediately if
|
||
Left'Address = Right'Address. That seems like a non-optimization
|
||
("if X = X" is unusual), so removed that. Simplify by using
|
||
slice comparison ("=" on Element_Array will automatically call
|
||
"=" on the components, even if user defined).
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb (Chek_Record_Representation_Clause): When
|
||
iterating over components, skip anonymous subtypes created for
|
||
constrained array components.
|
||
|
||
2015-10-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* a-tags.ads (Parent_Size): Remove obsolete pragma Export.
|
||
* s-finmas.ads (Header_Offset): Delete.
|
||
* s-finmas.adb (Header_Offset): Likewise.
|
||
(Finalize): Call Header_Size instead of Header_Offset.
|
||
* s-stposu.adb (Allocate_Any_Controlled): Likewise.
|
||
(Deallocate_Any_Controlled): Likewise.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* a-exetim.ads, a-exetim-mingw.ads, a-exetim-default.ads: Whitespace
|
||
cleanup.
|
||
* s-osprim-mingw.adb, einfo.ads, sem_util.adb, sem_util.ads,
|
||
sem_ch4.adb, sem_ch13.adb, s-trasym.adb, s-trasym.ads,
|
||
s-taprop-posix.adb: Minor reformatting.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* adadecode.h, adadecode.c (ada_demangle): Remove
|
||
ada_demangle, no longer used.
|
||
* a-except-2005.adb: Bring System.Traceback.Symbolic into the
|
||
closure.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb, sem_util.ads (Get_Reference_Discriminant): Utility to
|
||
locate the access discriminant that supports implicit dereference on a
|
||
record type.
|
||
(Is_OK_Variable_For_Out_Parameter): Reject other illegal uses
|
||
of Implicit_Dereference on an access_to_constant when actual
|
||
parameter is a rewritten variable or function call.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* a-tags.adb, s-trasym.adb, s-trasym.ads: Make sure we don't get
|
||
elaboration circularities when polling is turned on.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram):
|
||
When creating a full declaration for a formal parameter, the
|
||
entity is labelled as an Itype, so set Associated_Node_For_Itype
|
||
accordingly.
|
||
* einfo.ads: Clarify use of Associated_Node_For_Itype.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* bindgen: Move pragmas Warnings earlier, otherwise
|
||
we can get warnings on with_clauses.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-osprim-mingw.adb, s-osprim-x32.adb, s-taprop-mingw.adb,
|
||
s-taprop-posix.adb (Monotonic_Clock): Removed, not used.
|
||
Remove remaining references to OS_Primitives.Monotonic_Clock.
|
||
Keep it only on windows which is a special case.
|
||
|
||
2015-10-16 Javier Miranda <miranda@adacore.com>
|
||
|
||
* a-textio.adb (Get_Line): Fix documentation.
|
||
* einfo.ads (Interface_Name): Fix documentation.
|
||
* exp_aggr.adb (Backend_Processing_Possible): Fix documentation.
|
||
* exp_ch4.adb (Expand_N_In): Fix documentation.
|
||
|
||
2015-10-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* inline.adb (Subp_Info): Remove Listed component.
|
||
(Add_Inlined_Subprogram): Take an entity instead of an index.
|
||
Do not set Listed component to True.
|
||
(New_Entry): Do not initialize Listed component to False.
|
||
(Analyze_Inlined_Bodies): Do not test Listed component
|
||
(Must_Inline): Add calls not in the main unit only
|
||
if they are in a subprogram that can be inlined outside its unit.
|
||
(Add_Inlined_Body): Move test around and add comment.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sinfo.ads, einfo.ads: monir clean ups.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* usage.adb, debug.adb, a-except.adb, a-except.ads, a-except-2005.adb,
|
||
a-except-2005.ads, s-imgrea.adb: Minor code clean ups related to
|
||
jgnat/dotnet removal.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-osprim-vxworks.adb, s-osprim-darwin.adb, s-tadeca.adb,
|
||
s-osprim-unix.adb, s-osprim-solaris.adb, s-osprim-posix.adb,
|
||
s-osprim.ads (Monotonic_Clock): Removed, unused.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Try_Object_Operation, Try_One_Interpretation):
|
||
Do not reset the Obj_Type of the prefix if an interpretation
|
||
involves an untagged type, to prevent a crash when analyzing an
|
||
illegal program in All_Errors mode.
|
||
|
||
2015-10-16 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Expression_With_Actions):
|
||
Force the evaluation of the expression when its type is Boolean.
|
||
(Force_Boolean_Evaluation): New routine.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_util.adb (Has_Discrim_Dep_Array): Remove
|
||
this function, and the call. No longer needed now that the back
|
||
end can handle such things. Should result in further speedups
|
||
in some cases.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb (Build_Predicate_Functions): If expression for
|
||
predicate is side-effect free, indicate that the predicate
|
||
function is pure, to allow for optimization of redundant
|
||
predicate checks.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* checks.adb: Fix typo.
|
||
* s-osinte-linux.ads: Add header.
|
||
* projects.texi: Removed, no longer used.
|
||
* gcc-interface/Make-lang.in: Update dependencies
|
||
* s-multip.adb: Minor: fix header.
|
||
* sem_ch3.adb, exp_ch7.adb, g-dirope.ads, sinfo.ads, types.ads,
|
||
a-textio.adb, s-exctra.adb, ali.adb, back_end.ads, exp_intr.adb,
|
||
a-tigeli.adb, exp_ch3.adb, s-os_lib.ads: Remove further references to
|
||
.NET.
|
||
* gnatlink.adb, opt.ads, exp_aggr.adb, s-solita.adb: Minor comment
|
||
updates.
|
||
|
||
2015-10-16 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_ch9.adb (Build_Simple_Entry_Call): Set_Is_Internal on
|
||
the temporary object used for a by-copy entry parameter, to
|
||
ensure that the object doesn't get its No_Initialization flag
|
||
reset later in Default_Initialize_Object. Also, generate the
|
||
assignment of the actual to the temporary in the additional case
|
||
of a scalar out parameter whose type has a Default_Value aspect.
|
||
* exp_ch3.adb: Fix minor typo in comment.
|
||
|
||
2015-10-16 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_util.adb, sem_util.ads, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb:
|
||
Minor reformatting.
|
||
* sem_ch12.adb (Analyze_Formal_Package_Declaration): Set the
|
||
SPARK_Mode from the context.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_util.adb (Requires_Transient_Scope):
|
||
If Typ is a generic formal incomplete type, look at the actual
|
||
type. Otherwise, we don't notice that the actual type is tagged,
|
||
has a variant part, etc, causing a mismatch of calling conventions
|
||
between caller and callee.
|
||
|
||
2015-10-16 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.ads: Move the declaration of enumeration
|
||
literal E_Abstract_State above E_Entry. Update the upper bound
|
||
of subtype Overloadable_Kind.
|
||
|
||
2015-10-16 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_attr.adb: Minor editorial changes.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_ch5.adb, sem_ch3.adb, frontend.adb, exp_ch7.adb, exp_ch7.ads,
|
||
sem_ch5.adb, sem_type.adb, exp_util.adb, exp_util.ads, comperr.adb,
|
||
exp_attr.adb, sinfo.ads, exp_ch9.adb, make.adb, usage.adb,
|
||
lib-writ.adb, sem_ch9.adb, bindgen.adb, debug.adb, einfo.adb,
|
||
einfo.ads, types.ads, checks.adb, sem_prag.adb, s-tasini.adb,
|
||
rtsfind.ads, freeze.adb, sem_util.adb, sem_util.ads, exp_dbug.adb,
|
||
gnatlink.adb, gnat1drv.adb, targparm.adb, targparm.ads, exp_ch4.adb,
|
||
exp_ch11.adb, repinfo.adb, s-soflin.adb, s-soflin.ads, exp_ch6.adb,
|
||
exp_ch13.adb, sem_mech.adb, sem_ch6.adb, par-prag.adb, exp_disp.adb,
|
||
sem_ch8.adb, exp_disp.ads, snames.adb-tmpl, exp_aggr.adb, sem_eval.adb,
|
||
exp_intr.adb, sem_ch13.adb, snames.ads-tmpl, sem_disp.adb, exp_ch3.adb:
|
||
Code clean up: remove special handling for .NET and JVM.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sem_ch12.adb: Minor punctuation fix in comment
|
||
* s-rident.ads: Minor consistency fix in comment
|
||
* exp_attr.adb, g-spipat.ads: punctuation fixes in comments.
|
||
* restrict.ads: Style fix in comments.
|
||
* sem_prag.adb: Minor grammar fix in comment
|
||
|
||
2015-10-16 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_ch12.adb: Minor reformatting/rewording.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* einfo.ads: Minor fix of duplicate words
|
||
* rident.ads: Minor style fix in comment
|
||
|
||
2015-10-16 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_N_Full_Type_Declaration): Do not capture,
|
||
set and restore the Ghost mode.
|
||
(Expand_N_Object_Declaration): Do not capture, set and restore the
|
||
Ghost mode.
|
||
(Freeze_Type): Redo the capture and restore of the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* exp_ch5.adb (Expand_N_Assignment_Statement): Redo the capture
|
||
and restore of the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* exp_ch6.adb (Expand_N_Procedure_Call_Statement):
|
||
Redo the capture and restore of the Ghost mode.
|
||
(Expand_N_Subprogram_Body): Redo the capture, set and restore
|
||
of the Ghost mode.
|
||
(Expand_N_Subprogram_Declaration): Do not
|
||
capture, set and restore the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* exp_ch7.adb (Expand_N_Package_Body): Redo the capture, set
|
||
and restore of the Ghost mode.
|
||
(Expand_N_Package_Declaration): Do not capture, set and restore the
|
||
Ghost mode.
|
||
* exp_ch8.adb (Expand_N_Exception_Renaming_Declaration):
|
||
Redo the capture and restore of the Ghost mode.
|
||
(Expand_N_Object_Renaming_Declaration): Redo
|
||
the capture and restore of the Ghost mode.
|
||
(Expand_N_Package_Renaming_Declaration):
|
||
Redo the capture and restore of the Ghost mode.
|
||
(Expand_N_Subprogram_Renaming_Declaration): Redo the capture
|
||
and restore of the Ghost mode.
|
||
* exp_ch11.adb Remove with and use clauses for Ghost.
|
||
(Expand_N_Exception_Declaration): Do not capture, set and restore
|
||
the Ghost mode.
|
||
* exp_disp.adb (Make_DT): Redo the capture and restore of the
|
||
Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* exp_prag.adb (Expand_Pragma_Check): Do not capture, set
|
||
and restore the Ghost mode.
|
||
(Expand_Pragma_Contract_Cases):
|
||
Redo the capture and restore of the Ghost mode. Preserve the
|
||
original context of contract cases by setting / resetting the
|
||
In_Assertion_Expr counter.
|
||
(Expand_Pragma_Initial_Condition):
|
||
Redo the capture and restore of the Ghost mode.
|
||
(Expand_Pragma_Loop_Variant): Redo the capture and restore of
|
||
the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* exp_util.adb (Make_Predicate_Call): Redo the capture and
|
||
restore of the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* freeze.adb (Freeze_Entity): Redo the capture and restore of
|
||
the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* ghost.adb (Check_Ghost_Context): Remove the RM reference from
|
||
the error message.
|
||
(Is_OK_Statement): Account for statements
|
||
that appear in assertion expressions.
|
||
(Is_Subject_To_Ghost):
|
||
Moved from spec.
|
||
* ghost.ads (Is_Subject_To_Ghost): Moved to body.
|
||
* rtsfind.ads (Load_RTU): Redo the capture and restore of the
|
||
Ghost mode.
|
||
* sem.adb Add with and use clauses for Ghost.
|
||
(Analyze): Redo
|
||
the capture and restore of the Ghost mode. Set the Ghost mode
|
||
when analyzing a declaration.
|
||
(Do_Analyze): Redo the capture
|
||
and restore of the Ghost mode.
|
||
* sem_ch3.adb (Analyze_Full_Type_Declaration): Do not capture, set
|
||
and restore the Ghost mode.
|
||
(Analyze_Incomplete_Type_Decl):
|
||
Do not capture, set and restore the Ghost mode.
|
||
(Analyze_Number_Declaration): Do not capture, set and restore the
|
||
Ghost mode.
|
||
(Analyze_Object_Declaration): Do not capture, set and
|
||
restore the Ghost mode.
|
||
(Analyze_Private_Extension_Declaration):
|
||
Do not capture, set and restore the Ghost mode.
|
||
(Analyze_Subtype_Declaration): Do not capture, set and restore
|
||
the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* sem_ch5.adb (Analyze_Assignment): Redo the capture and restore
|
||
of the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration):
|
||
Do not capture, set and restore the Ghost mode.
|
||
(Analyze_Procedure_Call): Redo the capture and restore of the
|
||
Ghost mode.
|
||
(Analyze_Subprogram_Body_Helper): Redo the capture
|
||
and restore of the Ghost mode. (Analyze_Subprogram_Declaration):
|
||
Do not capture, set and restore the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* sem_ch7.adb (Analyze_Package_Body_Helper): Redo the capture and
|
||
restore of the Ghost mode.
|
||
(Analyze_Package_Declaration):
|
||
Do not capture, set and restore the Ghost mode.
|
||
(Analyze_Private_Type_Declaration): Do not capture, set and
|
||
restore the Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* sem_ch8.adb (Analyze_Exception_Renaming): Do not capture,
|
||
set and restore the Ghost mode.
|
||
(Analyze_Generic_Renaming): Do not capture, set and restore the Ghost
|
||
mode.
|
||
(Analyze_Object_Renaming): Do not capture, set and restore the
|
||
Ghost mode.
|
||
(Analyze_Package_Renaming): Do not capture, set and restore the Ghost
|
||
mode.
|
||
(Analyze_Subprogram_Renaming): Do not capture, set and restore the
|
||
Ghost mode.
|
||
(Restore_Globals): Removed.
|
||
* sem_ch11.adb (Analyze_Exception_Declaration): Do not capture,
|
||
set and restore the Ghost mode.
|
||
* sem_ch12.adb (Analyze_Generic_Package_Declaration):
|
||
Do not capture, set and restore the Ghost mode.
|
||
(Analyze_Generic_Subprogram_Declaration): Do not capture, set
|
||
and restore the Ghost mode.
|
||
* sem_ch13.adb (Build_Invariant_Procedure_Declaration): Redo
|
||
the capture and restore of the Ghost mode.
|
||
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
|
||
Redo the capture and restore of the Ghost mode.
|
||
(Analyze_External_Property_In_Decl_Part):
|
||
Redo the capture and restore of the Ghost mode.
|
||
(Analyze_Initial_Condition_In_Decl_Part): Redo the
|
||
capture and restore of the Ghost mode. (Analyze_Pragma):
|
||
Do not capture, set and restore the Ghost mode for Assert.
|
||
Redo the capture and restore of the Ghost mode for Check. Do
|
||
not capture and restore the Ghost mode for Invariant.
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part): Redo the capture and
|
||
restore of the Ghost mode.
|
||
* sem_res.adb (Resolve): Capture, set and restore the Ghost mode
|
||
when resolving a declaration.
|
||
* sem_util.adb (Build_Default_Init_Cond_Procedure_Body):
|
||
Redo the capture and restore of the Ghost mode.
|
||
(Build_Default_Init_Cond_Procedure_Declaration): Redo the capture
|
||
and restore of the Ghost mode.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* debug.adb: Document -gnatdQ switch.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Analyze_Formal_Subprogram): Implement rule that
|
||
a formal abstract subprogram cannot have a null default: RM 12.6
|
||
(4 1.2).
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_util.ads, sinput.ads, bcheck.adb: Minor comment fixes.
|
||
|
||
2015-10-16 Javier Miranda <miranda@adacore.com>
|
||
|
||
* inline.adb (Add_Inlined_Body): Ensure that
|
||
Analyze_Inlined_Bodies will be invoked after completing the
|
||
analysis of the current unit.
|
||
|
||
2015-10-16 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Fix error
|
||
message for bad last bit position.
|
||
* sem_ch3.adb, sem_util.adb, sem_util.ads: Minor reformatting.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch5.adb (Expand_N_Case_Statement): If expression is
|
||
compile-time known but does not obey a static predicate on
|
||
its type, replace the case statement with a raise statement,
|
||
as with other statically detected constraint violations.
|
||
|
||
2015-10-16 Bob Duff <duff@adacore.com>
|
||
|
||
* s-traceb.adb, s-traceb.ads, s-traceb-hpux.adb, s-traceb-mastop.adb:
|
||
Reinstate code.
|
||
* opt.ads: Minor typo.
|
||
|
||
2015-10-16 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Gather_Components): When gathering components
|
||
of a nested variant, the record type used in legality checks is
|
||
the enclosing record type.
|
||
|
||
2015-10-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
|
||
DEF_FUNCTION_TYPE_11): Define.
|
||
|
||
2015-10-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/Make-lang.in: Make sure that GNAT1_OBJS and not just
|
||
GNAT1_ADA_OBJS are compiled only after generated files are created.
|
||
|
||
2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* gcc-interface/trans.c (convert_with_check): Use real_arithmetic
|
||
instead of REAL_ARITHMETIC.
|
||
|
||
2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* gcc-interface/trans.c (convert_with_check): Use real_less instead
|
||
of REAL_VALUES_LESS.
|
||
|
||
2015-10-02 Doug Rupp <rupp@adacore.com>
|
||
Olivier Hainque <hainque@adacore.com>
|
||
|
||
* gcc-interface/lang.opt (fbuiltin-printf): Accept.
|
||
* gcc-interface/misc.c (gnat_handle_option): Ignore it.
|
||
* gcc-interface/lang-specs.h (@ada, @adawhy, @adascil): Propagate -f*
|
||
flags as -g* and -m* flags past -gnatez.
|
||
|
||
2015-10-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Warnings>: Replace
|
||
linear search with call to find_opt and issue warnings if the -W
|
||
switch is not appropriate.
|
||
|
||
2015-10-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/ada-tree.h (DECL_RESTRICTED_ALIASING_P): New flag.
|
||
* gcc-interface/decl.c (gnat_to_gnu_param): For parameters passed by
|
||
reference but whose type isn't by-ref and whose mechanism hasn't been
|
||
forced to by-ref, set the DECL_RESTRICTED_ALIASING_P flag directly on
|
||
them instead of changing their type.
|
||
* gcc-interface/trans.c (scan_rhs_r): New helper function.
|
||
(independent_iterations_p): New predicate.
|
||
(Loop_Statement_to_gnu): For a loop with an iteration scheme, set an
|
||
ivdep pragma if the iterations are independent.
|
||
|
||
2015-10-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (find_loop_for): Use FOR_EACH_VEC_ELT_REVERSE.
|
||
(Loop_Statement_to_gnu): Use FOR_EACH_VEC_ELT.
|
||
(finalize_nrv): Use FOR_EACH_VEC_SAFE_ELT and initialize field.
|
||
(build_stmt_group): Add blank lines.
|
||
|
||
2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_11): Don't define.
|
||
|
||
2015-09-28 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_6): Define.
|
||
|
||
2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (emit_check): Do not touch TREE_SIDE_EFFECTS.
|
||
|
||
2015-09-14 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/misc.c (gnat_post_options): Issue a warning if
|
||
generating STABS debugging information when not the default.
|
||
|
||
2015-09-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (ref_filename): Delete.
|
||
(Sloc_to_locus): Add clean_column parameter defaulting to false.
|
||
(build_call_raise): Adjust comment.
|
||
(build_call_raise_range): Move around.
|
||
* gcc-interface/trans.c (ref_filename): Delete.
|
||
(gigi): Fix formatting.
|
||
(block_end_locus_sink): Delete.
|
||
(Sloc_to_locus1): Tidy up and reformat. Rename into...
|
||
(Sloc_to_locus): ...this. Add default for clean_colmun parameter.
|
||
(set_expr_location_from_node1): Rename into...
|
||
(set_expr_location_from_node): ...this.
|
||
(set_end_locus_from_node): Move around. Adjust for renaming.
|
||
(Handled_Sequence_Of_Statements_to_gnu): Likewise.
|
||
(add_cleanup): Likewise.
|
||
* gcc-interface/utils2.c (expand_sloc): New static function.
|
||
(build_call_raise): Call it.
|
||
(build_call_raise_column): Likewise.
|
||
(build_call_raise_range): Likewise. Move around.
|
||
|
||
2015-09-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.c (gnat_rewrite_reference) <COMPOUND_EXPR>: Add
|
||
another acceptable pattern for the RHS.
|
||
|
||
2015-07-24 Micahel Darling <darlingm@gmail.com>
|
||
|
||
PR other/66259
|
||
* prj-nmsc.adb: Reflects renaming of configure.in to configure.ac
|
||
* gcc-interface/Makefile.in: Likewise
|
||
|
||
2015-07-12 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* gcc-interface/utils.c: Fix double word typos.
|
||
* gnat_ugn.texi: Same.
|
||
* init.c: Same.
|
||
* par.adb: Same.
|
||
* projects.texi: Same.
|
||
* sem_ch4.adb: Same.
|
||
* sem_ch6.adb: Same.
|
||
* sem_dim.adb: Same.
|
||
* sem_eval.adb: Same.
|
||
* sem_prag.adb: Same.
|
||
* sem_warn.adb: Same.
|
||
|
||
2015-07-07 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* gcc-interface/cuintp.c: Adjust includes.
|
||
* gcc-interface/decl.c: Likewise.
|
||
* gcc-interface/misc.c: Likewise.
|
||
* gcc-interface/targtyps.c: Likewise.
|
||
* gcc-interface/trans.c: Likewise.
|
||
* gcc-interface/utils.c: Likewise.
|
||
* gcc-interface/utils2.c: Likewise.
|
||
|
||
2015-07-06 John Marino <gnugcc@marino.st>
|
||
|
||
* s-oscons-tmplt.c: Add support for DragonFly alongside FreeBSD.
|
||
|
||
2015-06-29 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/63310
|
||
* gcc-interface/utils.c (gnat_write_global_declarations): Always
|
||
build the dummy global variable if code was generated.
|
||
|
||
2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||
|
||
PR fortran/66605
|
||
* gcc-interface/misc.c (gnat_post_options): No need to disable
|
||
warn_unused_parameter anymore.
|
||
|
||
2015-06-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): When
|
||
not optimizing the CFG, clear the DECL_DECLARED_INLINE_P flag on the
|
||
at-end procedures.
|
||
|
||
2015-06-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (note_types_used_by_globals): Delete.
|
||
(gnat_write_global_declarations): New prototype.
|
||
* gcc-interface/utils.c (type_decls): Rename back to...
|
||
(global_decls): ...this.
|
||
(gnat_pushdecls): Revert previous change.
|
||
(create_var_decl): Do not output global variables.
|
||
(note_types_used_by_globals): Rename back to...
|
||
(gnat_write_global_declarations): ...this. Output variables on the
|
||
global_decls vector.
|
||
* gcc-interface/misc.c (gnat_parse_file): Adjust to above renaming.
|
||
|
||
2015-06-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (create_var_decl_1): Rename into...
|
||
(create_var_decl): ...this. Add default value for last parameter.
|
||
(create_type_stub_decl): Adjust.
|
||
(create_type_decl): Likewise.
|
||
(create_field_decl): Likewise.
|
||
(create_param_decl): Likewise.
|
||
(create_label_decl): Likewise.
|
||
(create_subprog_decl): Likewise.
|
||
* gcc-interface/utils.c (create_var_decl_1): Rename into...
|
||
(create_var_decl): ...this. Rename var_name into name and var_init
|
||
into init, move const_decl_allowed_p last and adjust accordingly.
|
||
(create_type_stub_decl): Rename type_name into name and adjust.
|
||
(create_type_decl): Likewise.
|
||
(create_field_decl): Likewise for field_name and field_type.
|
||
(create_param_decl): Likewise for param_name and param_type.
|
||
(create_label_decl): Likewise for label_name.
|
||
(create_subprog_decl): Likewise for subprog_name and subprog_type.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust couple of calls
|
||
to create_var_decl_1.
|
||
|
||
2015-06-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (loop_info_d): Add low_bound, high_bound,
|
||
artificial, has_checks and warned_aggressive_loop_optimizations.
|
||
(gigi): Set warn_aggressive_loop_optimizations to 0.
|
||
(inside_loop_p): New inline predicate.
|
||
(push_range_check_info): Rename into...
|
||
(find_loop_for): ...this and do not push range_check_info_d object.
|
||
(Loop_Statement_to_gnu): Set artificial, low_bound and high_bound
|
||
fields of gnu_loop_info. Adjust detection of checks enabled by
|
||
-funswitch-loops and adds one for -faggressive-loop-optimizations.
|
||
(gnat_to_gnu) <N_Indexed_Component>: If aggressive loop optimizations
|
||
are enabled, warn for loops overrunning an array of size 1 not at the
|
||
end of a record.
|
||
|
||
2015-06-25 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* gcc-interface/trans.c: Remove ipa-ref.h and plugin-api.h from include
|
||
list.
|
||
* gcc-interface/utils.c: Likewise.
|
||
|
||
2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* gcc-interface/decl.c (value_annotation_hasher): Inherit from
|
||
ggc_cache_ptr_hash rather than ggc_cache_hasher.
|
||
* gcc-interface/utils.c (pad_type_hasher): Likewise.
|
||
|
||
2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* gcc-interface/decl.c (value_annotation_hasher::handle_cache_entry):
|
||
Delete.
|
||
(value_annotation_hasher::keep_cache_entry): New function.
|
||
* gcc-interface/utils.c (pad_type_hasher::handle_cache_entry):
|
||
Delete.
|
||
(pad_type_hasher::keep_cache_entry): New function.
|
||
|
||
2015-06-25 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* gcc-interface/misc.c: Include calls.h not function.h.
|
||
|
||
2015-06-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (record_builtin_type): Adjust comment.
|
||
(tree create_type_decl): Likewise.
|
||
(create_var_decl_1): Add artificial_p and debug_info_p parameters.
|
||
(create_var_decl): Likewise.
|
||
(create_true_var_decl): Delete.
|
||
(create_subprog_decl): Add debug_info_p parameter.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Add artificial_p local
|
||
variable and use it throughout. Remove DECL_ARTIFICIAL settings.
|
||
<E_Variable>: Adjust calls to create_var_decl and create_var_decl_1.
|
||
Remove DECL_IGNORED_P settings.
|
||
<E_Enumeration_Type>: Likewise.
|
||
<E_Record_Type>: Likewise.
|
||
<E_Subprogram_Type>: Likewise. Remove artificial_flag local variable.
|
||
Adjust call to create_subprog_decl.
|
||
(get_minimal_subprog_decl): Likewise.
|
||
(elaborate_expression_1): Adjust call to create_var_decl.
|
||
* gcc-interface/trans.c (gigi): Adjust calls to create_var_decl and
|
||
create_subprog_decl. Remove DECL_ARTIFICIAL & DECL_IGNORED_P settings.
|
||
* gcc-interface/utils.c (maybe_pad_type): Likewise.
|
||
(record_builtin_type): Adjust comment.
|
||
(create_type_stub_decl): Remove obsolete comment.
|
||
(create_var_decl_1): Add artificial_p and debug_info_p parameters.
|
||
Set DECL_ARTIFICIAL and DECL_IGNORED_P accordingly.
|
||
(create_subprog_decl): Add debug_info_p parameter. Set DECL_IGNORED_P
|
||
accordingly.
|
||
|
||
2015-06-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/misc.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): Define.
|
||
|
||
2015-06-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Make sure
|
||
the size of a padding type built around the return type is positive.
|
||
* gcc-interface/trans.c (gnat_to_gnu) <N_Simple_Return_Statement>:
|
||
Use INIT_EXPR instead of MODIFY_EXPR to assign to the return object.
|
||
|
||
2015-06-17 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* gcc-interface/cuintp.c: Do not include input.h, line-map.h or is-a.h.
|
||
* gcc-interface/decl.c: Likewise.
|
||
* gcc-interface/misc.c: Likewise.
|
||
* gcc-interface/targtyps.c: Likewise.
|
||
* gcc-interface/trans.c: Likewise.
|
||
* gcc-interface/utils.c: Likewise.
|
||
* gcc-interface/utils2.c: Likewise.
|
||
|
||
2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/utils.c (get_global_context): Register the main
|
||
translation unit through the new debug hook.
|
||
|
||
2015-06-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/misc.c: Remove duplicate include directives.
|
||
* gcc-interface/trans.c: Likewise.
|
||
* gcc-interface/utils.c: Likewise.
|
||
|
||
2015-06-08 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* gcc-interface/cuintp.c : Adjust include files.
|
||
* gcc-interface/decl.c : Likewise.
|
||
* gcc-interface/misc.c : Likewise.
|
||
* gcc-interface/targtyps.c : Likewise.
|
||
* gcc-interface/trans.c : Likewise.
|
||
* gcc-interface/utils.c : Likewise.
|
||
* gcc-interface/utils2.c : Likewise.
|
||
|
||
2015-06-08 John Marino <gnugcc@marino.st>
|
||
|
||
* a-intnam-dragonfly.ads: New.
|
||
* s-osinte-dragonfly.adb: Likewise.
|
||
* s-osinte-dragonfly.ads: Likewise.
|
||
* system-dragonfly-x86_64.ads: Likewise.
|
||
* adaint.c: Add BSD macros.
|
||
* cstreams.c: Likewise.
|
||
* gsocket.h: Likewise.
|
||
* link.c: Likewise.
|
||
* socket.c: Likewise.
|
||
* env.c: Add __DragonFly__, remove __FreeBSD__ macro.
|
||
* init.c: Add __DragonFly__, change __gnat_install_handler
|
||
prototype from empty to void.
|
||
* initialize.c: Add __DragonFly__.
|
||
* sysdep.c: Likewise.
|
||
* s-osinte-freebsd.adb: Use __get_errno instead of __error.
|
||
* tracebak.c: Set unwinder for i386 BSD.
|
||
* gcc-interface/Makefile.in: Add x86_64 DragonFly, tweak
|
||
x86_64 FreeBSD and x86 FreeBSD.
|
||
|
||
2015-06-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.c (note_types_used_by_globals): Tweak comment.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Likewise.
|
||
|
||
2015-06-05 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* gcc-interface/gigi.h (note_types_used_by_globals): Rename from
|
||
gnat_write_global_declarations.
|
||
* gcc-interface/misc.c (gnat_parse_file): Call
|
||
note_types_used_by_globals.
|
||
Remove LANG_HOOKS_WRITE_GLOBALS.
|
||
* gcc-interface/utils.c: Rename global_decls to type_decls.
|
||
(gnat_write_global_declarations): Rename
|
||
to note_types_used_by_globals.
|
||
Remove call to finalize_compilation_unit.
|
||
Remove call to debug_hooks->global_decl for globals.
|
||
(gnat_pushdecls): Only insert into type_decls if TYPE_DECL.
|
||
|
||
2015-06-04 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* gcc-interface/cuintp.c: Adjust includes for restructured coretypes.h.
|
||
* gcc-interface/decl.c: Likewise.
|
||
* gcc-interface/misc.c: Likewise.
|
||
* gcc-interface/targtyps.c: Likewise.
|
||
* gcc-interface/trans.c: Likewise.
|
||
* gcc-interface/utils.c: Likewise.
|
||
* gcc-interface/utils2.c: Likewise.
|
||
|
||
2015-06-04 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: If
|
||
processing a definition, create definitions for padding types
|
||
around return types.
|
||
|
||
2015-06-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.c (copy_type): Also set TYPE_CANONICAL.
|
||
|
||
2015-06-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (gnat_to_gnu) <N_Simple_Return_Statement>: Fix
|
||
typo in latest change.
|
||
|
||
2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/Makefile.in: Fix ARM/Darwin configuration.
|
||
|
||
2015-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/utils.c (scale_by_factor_of): When handling a function
|
||
call expression, process the corresponding function body. Also handle
|
||
potential addends.
|
||
|
||
2015-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Replace pointer types with
|
||
references ones for functions that return references.
|
||
|
||
2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: For a
|
||
definition of a type coming from a limited_with, get to the full view
|
||
if it is not in the main code unit.
|
||
|
||
2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.c (create_var_decl_1): If an assembler name is
|
||
specified, let the target mangle it before settting.
|
||
(create_subprog_decl): Likewise and move this treatment last.
|
||
|
||
2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/lang-specs.h (TARGET_VXWORKS_RTP): Move substitution to
|
||
before first -gnatez switch. Simplify and add trailing space.
|
||
|
||
2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
|
||
record has a parent field and a representation clause, make sure that
|
||
it is properly aligned.
|
||
|
||
2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (lvalue_required_p) <N_Indexed_Component>: Deal
|
||
with character and enumeration literals as index values.
|
||
|
||
2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (build_simple_component_ref): Declare.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with
|
||
address clause on aliased object with unconstrained nominal subtype.
|
||
Mark the aligning variable as artificial, do not convert the address
|
||
expression immediately but mark it as constant instead.
|
||
* gcc-interface/utils.c (convert): If the target type contains a
|
||
template, be prepared for an empty array.
|
||
(maybe_unconstrained_array): Likewise.
|
||
* gcc-interface/utils2.c (known_alignment) <POINTER_PLUS_EXPR>: Deal
|
||
with the pattern built for aligning types.
|
||
<INTEGER_CST>: Do not cap the value at BIGGEST_ALIGNMENT.
|
||
(build_simple_component_ref): Make public.
|
||
If the base object is a constructor that contains a template, fold the
|
||
result field by field.
|
||
|
||
2015-05-31 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* s-oscons-tmplt.c: Add explicit tests for Android alongside Linux.
|
||
|
||
2015-05-30 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* adaint.c: Test for __linux__ instead of linux and __sun__ instead
|
||
of sun. Add missing leading underscore to AIX. Remove #elif 0.
|
||
* adaint.h: Likewise.
|
||
* cio.c: Likewise.
|
||
* cstreams.c: Likewise.
|
||
* env.c: Likewise.
|
||
* gsocket.h: Likewise.
|
||
* init.c: Likewise. Test for __i386__ instead of i386.
|
||
* link.c: Likewise.
|
||
* s-oscons-tmplt.c: Likewise.
|
||
* sysdep.c: Likewise.
|
||
* terminals.c: Likewise. Use BSD symbol instead of FREEBSD.
|
||
* tracebak.c: Likewise. Test for __sparc__ instead of sparc.
|
||
|
||
2015-05-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.c (max_size) <tcc_binary>: Add special code to
|
||
deal with the subtraction of a "negative" value in an unsigned type.
|
||
|
||
2015-05-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Do
|
||
not error out on a return type which has a size that overflows if the
|
||
return is done by invisible reference.
|
||
|
||
2015-05-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.c (gnat_pushdecl): Reunify the handling of array
|
||
and pointer types wrt DECL_ORIGINAL_TYPE and adjust left and right.
|
||
|
||
2015-05-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (gnat_stabilize_reference): Adjust.
|
||
(rewrite_fn): Remove third parameter.
|
||
(type_is_padding_self_referential): New inline predicate.
|
||
(return_type_with_variable_size_p): Likewise.
|
||
* gcc-interface/decl.c (allocatable_size_p): More around.
|
||
(cannot_be_superflat_p): Rename into...
|
||
(cannot_be_superflat ): ...this.
|
||
(initial_value_needs_conversion): New predicate.
|
||
(gnat_to_gnu_entity): Invoke type_is_padding_self_referential,
|
||
initial_value_needs_conversion and adjust to above renaming.
|
||
For a renaming, force the materialization if the inner expression
|
||
is compound. Adjust calls to elaborate_reference and build a
|
||
compound expression if needed.
|
||
(struct er_dat): Add N field.
|
||
(elaborate_reference_1): Remove N parameter and adjust.
|
||
(elaborate_reference): Add INIT parameter and pass it in the call to
|
||
gnat_rewrite_reference. Adjust initial expression.
|
||
* gcc-interface/trans.c (Call_to_gnu): Treat renamings the same way as
|
||
regular object declarations when it comes to creating a temporary.
|
||
Adjust call to gnat_stabilize_reference and build a compound expression
|
||
if needed. Invoke return_type_with_variable_size_p.
|
||
(gnat_to_gnu): Invoke type_is_padding_self_referential. In case #4,
|
||
return a call to a function unmodified if it returns with variable size
|
||
and is also the initial expression in an object declaration.
|
||
* gcc-interface/utils2.c (build_binary_op) <INIT_EXPR>: Use the RHS'
|
||
type if it is a call to a function that returns with variable size.
|
||
(build_unary_op): Invoke type_is_padding_self_referential.
|
||
(gnat_stabilize_reference_1): Remove N parameter and adjust.
|
||
(gnat_stabilize_reference): Add INIT parameter and pass it in the call
|
||
to gnat_rewrite_reference.
|
||
(gnat_rewrite_reference): Remove N, add INIT parameter and adjust.
|
||
<COMPOUND_EXPR>: New case.
|
||
|
||
2015-05-28 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Is_Visible_Component): Component is visible
|
||
in a derived type if inherited through an ancestor that has a
|
||
partial view of the original type holding the component, if the
|
||
full view of that original type is in scope.
|
||
* sem_util.ads (Get_Body_From_Stub): Works for all kinds of stubs.
|
||
|
||
2015-05-28 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_util.adb (Requires_Transient_Scope): For definite untagged
|
||
subtypes, we should never have to use the secondary stack. This moves
|
||
toward that goal. But there are still cases that don't work.
|
||
Here, we move the check for Is_Definite first, but add a
|
||
special-purpose check for Has_Discrim_Dep_Array.
|
||
|
||
2015-05-28 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_util.adb (Requires_Transient_Scope): Avoid returning
|
||
function results on the secondary stack in so many cases.
|
||
|
||
2015-05-28 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Wrong_Type): In any instance, do not emit error
|
||
if type of expression is the partial view of the expected type.
|
||
|
||
2015-05-28 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Actuals): a) The replacement of formal
|
||
names in named associations only needs to be done within an
|
||
instance, on a call to a primitive of a formal derived type,
|
||
where the actual subprogram may have different formal names than
|
||
those of the primitive operation of the formal type.
|
||
b) Defaulted parameters must be taken into account when obtaining
|
||
the names of the formals of the actual subprogram being called.
|
||
|
||
2015-05-28 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch13.adb, sem_disp.ads: Minor reformatting.
|
||
|
||
2015-05-28 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Set_Debug_Info_Needed): For a private type
|
||
whose full view is itself a derived private type, set flag on
|
||
underlying full view as well, for proper gdb display.
|
||
|
||
2015-05-28 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_tss.ads: Minor comment fix.
|
||
* exp_ch3.adb (Build_Array_Init_Proc, Build_Record_Init_Proc):
|
||
Inline init_procs when the type has controlled parts. Remove
|
||
obsolete comments about those init_procs -- init_procs for
|
||
such types are no longer complex. A typical init_proc just
|
||
initializes the 'Tag field, and calls the parent init_proc
|
||
(e.g. for Limited_Controlled), which calls the grandparent
|
||
(for Root_Controlled), which does nothing. This all boils down
|
||
to one instruction when inlined.
|
||
* exp_ch7.adb (Create_Finalizer): Inline the finalizer.
|
||
|
||
2015-05-28 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Analyze_Selected_Component): If the type to use
|
||
is a derived type and is a generic actual, the selected component
|
||
appears within an instance body, and the check over the type
|
||
has failed, examine ancestor types for the desired component.
|
||
(Find_Component_In_Instance): If record type is a derived type,
|
||
examine all ancestors in order to locate desired component.
|
||
|
||
2015-05-27 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* gcc-interface/Makefile.in (TOOLS_LIBS): Add @NO_PIE_FLAG@.
|
||
|
||
2015-05-27 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (elaborate_all_entities): Do not elaborate an
|
||
incomplete type coming from a limited_with and whose non-limited view
|
||
comes from the main unit.
|
||
|
||
2015-05-27 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Move down
|
||
code applying atomic checks to the object.
|
||
|
||
2015-05-27 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_aux.adb: Minor rewording.
|
||
|
||
2015-05-27 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_prag.adb (Expand_Pragma_Abort_Defer): Make
|
||
pragma Abort_Defer do nothing if Abort_Allowed is False.
|
||
|
||
2015-05-27 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* exp_ch9.adb, sem_util.adb, sem_util.ads, s-stposu.adb, s-spsufi.ads,
|
||
sem_elab.ads, g-comlin.ads, errout.ads, exp_ch6.adb, sem_ch4.adb,
|
||
opt.ads, s-bignum.adb, output.ads, sem_ch13.adb, erroutc.ads,
|
||
sem_disp.ads, exp_ch3.adb: Minor fixes of duplicate words in comments.
|
||
|
||
2015-05-27 Doug Rupp <rupp@adacore.com>
|
||
|
||
* adaint.c (__gnat_tmp_name) [vxworks]: Robustify and use for rtp as
|
||
well as kernel.
|
||
|
||
2015-05-27 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* par_sco.adb (Process_Decision): Store sloc to
|
||
condition/pragmas SCOs associations into a temporary table before
|
||
moving them to the SCO_Raw_Hash_Table so that we can back them
|
||
out just like we do for SCO entries that are simple decisions
|
||
in an expression context.
|
||
|
||
2015-05-27 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Process_Formals): A non-private formal type that
|
||
is a limited view does not have a list of private dependents.
|
||
|
||
2015-05-27 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch5.adb (Expand_N_Case_Statement): If the expression in
|
||
the case statement is a compile-time known value, we look for a
|
||
corresponding alternative to optimize the case statement into a
|
||
single case. If the type has a static predicate and the expression
|
||
does not satisfy the predicate, there is no legal alternative and
|
||
this optimization is not applicable. Excecution is erroneous,
|
||
or else if assertions are enabled, an exception will be raised
|
||
earlier, at the point the expression is elaborated.
|
||
|
||
2015-05-27 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_elab.adb (Check_Internal_Call_Continue): Suppress
|
||
warning on Finalize, Adjust, or Initialize if type involved has
|
||
Warnings_Off set.
|
||
|
||
2015-05-27 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_aux.adb, sem_aux.ads (First_Discriminant): Return empty when
|
||
applied to a type with no known discriminants.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* errout.ads, sem_ch4.adb, sem_ch6.adb: Minor reformatting.
|
||
|
||
2015-05-26 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_elab.adb (Check_A_Call): In the case where we're
|
||
calling something in an instance of a generic package that is
|
||
within this same unit (as the call), make sure we treat it
|
||
as a call to an entity within the same unit. That is, call
|
||
Check_Internal_Call, rather than putting "Elaborate_All(X)"
|
||
on X, which would necessarily result in an elaboration cycle in
|
||
static-elaboration mode.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.ads (Is_Atomic_VFA_Aggregate): Adjust profile.
|
||
* freeze.adb (Is_Atomic_VFA_Aggregate): Change Entity
|
||
parameter into Node parameter and remove Type parameter.
|
||
Look at Is_Atomic_Or_VFA both on the type and on the object.
|
||
(Freeze_Entity): Adjust call to Is_Atomic_VFA_Aggregate.
|
||
* exp_aggr.adb (Expand_Record_Aggregate): Likewise.
|
||
(Process_Atomic_Independent_Shared_Volatile): Remove code
|
||
propagating Atomic or VFA from object to locally-defined type.
|
||
|
||
2015-05-26 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_ch7.adb: Minor comment fix.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Min/Attr_Max>: Do not
|
||
bother about NaN's if Machine_Overflows is true.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Really
|
||
force evaluation of the expression, if any, when the object has its
|
||
elaboration delayed. Do not create a variable at global level.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Machine>: Do not apply
|
||
extra-precision trick to literals. Build SAVE_EXPR manually.
|
||
|
||
* gcc-interface/misc.c (enumerate_modes): Add bypass for x86/x86-64.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/ada-tree.h (DECL_GLOBAL_NONCONSTANT_RENAMING_P): Delete
|
||
(DECL_RENAMED_OBJECT): Adjust comment.
|
||
* gcc-interface/gigi.h (record_global_nonconstant_renaming): Delete.
|
||
(invalidate_global_nonconstant_renamings): Likewise.
|
||
(gnat_constant_reference_p): Likewise.
|
||
(rewrite_fn): New function type.
|
||
(gnat_rewrite_reference): Declare.
|
||
(call_is_atomic_load): New inline predicate.
|
||
* gcc-interface/decl.c (elaborate_reference_1): New function.
|
||
(elaborate_reference): Likewise.
|
||
(gnat_to_gnu_entity): Call elaborate_reference to elaborate renamings
|
||
and simplify associated code. Set const_flag to true consistently in
|
||
conjunction with used_by_ref.
|
||
* gcc-interface/trans.c (Identifier_to_gnu): Always replace renaming
|
||
pointers by renamed objects.
|
||
(outer_atomic_access_required_p): Deal with renamings.
|
||
(Compilation_Unit_to_gnu): Do not call
|
||
invalidate_global_nonconstant_renamings.
|
||
(gnat_to_gnu) <N_Object_Renaming_Declaration>: Adjust comment.
|
||
(gnat_gimplify_expr): Deal with atomic loads.
|
||
* gcc-interface/utils.c (global_nonconstant_renamings): Delete.
|
||
(destroy_gnat_utils): Do not call
|
||
invalidate_global_nonconstant_renamings.
|
||
(record_global_nonconstant_renaming): Delete.
|
||
(invalidate_global_nonconstant_renamings): Likewise.
|
||
* gcc-interface/utils2.c (call_is_atomic_load): Move to gigi.h.
|
||
(build_load_modify_store): Build a copy of the destination.
|
||
(gnat_stabilize_reference_1): Adjust.
|
||
(gnat_stabilize_reference): Call gnat_stabilize_reference_1 through
|
||
gnat_rewrite_reference and move bulk of code to...
|
||
(gnat_rewrite_reference): ...here. New global function.
|
||
(gnat_constant_reference_p): Delete.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (gnat_stabilize_reference): Adjust prototype.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not rely on const_flag
|
||
to detect constant renamings. Be prepared for specific pattern of
|
||
renamed object based on function calls. Create a constant object
|
||
for the renaming of a NULL_EXPR or of a CONSTRUCTOR. Adjust calls
|
||
to gnat_stabilize_reference and tidy up. Remove redundant tests.
|
||
(elaborate_expression_1): Remove obsolete test and tidy up.
|
||
* gcc-interface/trans.c (Call_to_gnu): Do not stabilize In/Out or Out
|
||
parameters passed by reference.
|
||
(gnat_to_gnu) <N_Selected_Component>: Remove redundant protection again
|
||
side-effects.
|
||
Use gnat_protect_expr instead of gnat_stabilize_reference for general
|
||
protection against side-effects.
|
||
* gcc-interface/utils2.c (gnat_stable_expr_p): New predicate.
|
||
(gnat_save_expr): Invoke it.
|
||
(gnat_protect_expr): Likewise.
|
||
(gnat_stabilize_reference_1): Likewise. Remove useless propagation
|
||
of TREE_THIS_NOTRAP.
|
||
(gnat_stabilize_reference): Remove parameter and adjust throughout.
|
||
Delete ADDR_EXDR, COMPOUND_EXPR and CONSTRUCTOR cases.
|
||
Restrict CALL_EXPR case to atomic loads and tweak ERROR_MARK case.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sinfo.ads: Minor reformatting.
|
||
* sem_aux.ads: Clarify use of First_Discriminant.
|
||
* sem_ch4.adb (Analyze_Explicit_Dereference): The use of a limited
|
||
view is replaced with the non-limited view in an instance body,
|
||
where the enclosing unit must have a regular with_clause on the
|
||
relevant unit.
|
||
* sem_ch12.adb (Install_Body): Freeze instantation after its
|
||
body. Remove useless freeze nodes for incomplete actuals to
|
||
prevent multiple generation of internal operations.
|
||
(Instantiate_Package_Body): Set sloc of body appropriately when
|
||
there are incomplete actuals and the instance body is placed in
|
||
the body of the enclosing unit.
|
||
* errout.ads: Consistent punctuation, better alignment and trivial
|
||
typos in comments.
|
||
* err_vars.ads: Fix typo.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch8.adb (Analyze_Object_Renaming): Lift restriction on
|
||
components of Volatile_Full_Access objects.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Is_Non_Overriding_Operation,
|
||
Get_Generic_Parent_Type): Handle properly the case of a derived
|
||
scalar type by using the first subtype rather than its generated
|
||
anonymous base type.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.adb (Write_Field17_Name): Move E_Incomplete_Subtype
|
||
case to...
|
||
(Write_Field19_Name): ...here.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb: sem_ch13.adb (Add_Predicates): Undo analysis
|
||
of original expression in ASIS mode: does not solve the ASIS
|
||
problem of a usable type information, and crashes the back-end
|
||
when performing type annotations.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_disp.adb (Inherited_Subprograms): Add One_Only parameter.
|
||
(Is_Overriding_Subprogram): Use One_Only_Parameter.
|
||
* sem_disp.ads (Inherited_Subprograms): Add One_Only parameter.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_prag.adb, sem_ch3.adb, sem_ch5.adb, exp_ch11.adb, ghost.adb,
|
||
exp_ch6.adb, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, sem_ch13.adb,
|
||
exp_ch3.adb: Minor reformatting.
|
||
|
||
2015-05-26 Bob Duff <duff@adacore.com>
|
||
|
||
* treepr.adb: Minor improvement to debugging routines (pp, pn)
|
||
robustness. Rearrange the code so passing a nonexistent Node_Id
|
||
prints "No such node" rather than crashing, and causing gdb to
|
||
generate confusing messages.
|
||
|
||
2015-05-26 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_util.adb: Minor typo fix.
|
||
|
||
2015-05-26 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_aux.adb (Subprogram_Body_Entity): Deal with subprogram stubs.
|
||
|
||
2015-05-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_N_Full_Type_Declaration): Capture, set and
|
||
restore the Ghost mode.
|
||
(Expand_N_Object_Declaration): Capture, set and restore the Ghost mode.
|
||
(Freeze_Type): Update the call to Set_Ghost_Mode.
|
||
(Restore_Globals): New routine.
|
||
* exp_ch5.adb Add with and use clauses for Ghost.
|
||
(Expand_N_Assignment_Statement): Capture, set and restore the
|
||
Ghost mode.
|
||
(Restore_Globals): New routine.
|
||
* exp_ch6.adb Add with and use clauses for Ghost.
|
||
(Expand_N_Procedure_Call_Statement): Capture, set and
|
||
restore the Ghost mode.
|
||
(Expand_N_Subprogram_Body):
|
||
Code cleanup. Capture, set and restore the Ghost mode.
|
||
(Expand_N_Subprogram_Declaration): Capture, set and restore the
|
||
Ghost mode.
|
||
(Restore_Globals): New routine.
|
||
* exp_ch7.adb Add with and use clauses for Ghost.
|
||
(Expand_N_Package_Body): Capture, set and restore the Ghost mode.
|
||
(Expand_N_Package_Declaration): Capture, set and restore the
|
||
Ghost mode.
|
||
(Wrap_HSS_In_Block): Create a proper identifier for the block.
|
||
* exp_ch8.adb Add with and use clauses for Ghost.
|
||
(Expand_N_Exception_Renaming_Declaration): Code
|
||
cleanup. Capture, set and restore the Ghost mode.
|
||
(Expand_N_Object_Renaming_Declaration): Capture, set and restore
|
||
the Ghost mode.
|
||
(Expand_N_Package_Renaming_Declaration): Capture, set and restore the
|
||
Ghost mode.
|
||
(Expand_N_Subprogram_Renaming_Declaration): Capture, set and
|
||
restore the Ghost mode.
|
||
* exp_ch11.adb (Expand_N_Exception_Declaration): Code
|
||
cleanup. Capture, set and restore the Ghost mode.
|
||
* exp_disp.adb (Make_DT): Update the call to Set_Ghost_Mode. Do
|
||
not initialize the dispatch table slot of a Ghost subprogram.
|
||
* exp_prag.adb Add with and use clauses for Ghost.
|
||
(Expand_Pragma_Check): Capture, set and restore the Ghost mode.
|
||
(Expand_Pragma_Contract_Cases): Capture, set and restore the
|
||
Ghost mode.
|
||
(Expand_Pragma_Initial_Condition): Capture, set and
|
||
restore the Ghost mode.
|
||
(Expand_Pragma_Loop_Variant): Capture,
|
||
set and restore the Ghost mode.
|
||
(Restore_Globals): New routine.
|
||
* exp_util.adb Add with and use clauses for Ghost.
|
||
(Make_Predicate_Call): Code cleanup. Capture, set and restore
|
||
the Ghost mode.
|
||
(Restore_Globals): New routine.
|
||
* freeze.adb (Freeze_Entity): Code cleanup. Update the call
|
||
to Set_Ghost_Mode.
|
||
* ghost.adb Add with and use clause for Sem_Prag.
|
||
(Check_Ghost_Completion): Code cleanup.
|
||
(Check_Ghost_Overriding): New routine.
|
||
(Check_Ghost_Policy): Code cleanup.
|
||
(Ghost_Entity): New routine.
|
||
(Is_Ghost_Declaration): Removed.
|
||
(Is_Ghost_Statement_Or_Pragma): Removed.
|
||
(Is_OK_Context): Reimplemented.
|
||
(Is_OK_Declaration): New routine.
|
||
(Is_OK_Pragma): New routine.
|
||
(Is_OK_Statement): New routine.
|
||
(Mark_Full_View_As_Ghost): New routine.
|
||
(Mark_Pragma_As_Ghost): New routine.
|
||
(Mark_Renaming_As_Ghost): New routine.
|
||
(Propagate_Ignored_Ghost_Code): Update the comment on usage.
|
||
(Set_From_Entity): New routine.
|
||
(Set_From_Policy): New routine.
|
||
(Set_Ghost_Mode): This routine now handles pragmas and freeze nodes.
|
||
(Set_Ghost_Mode_For_Freeze): Removed.
|
||
(Set_Ghost_Mode_From_Entity): New routine.
|
||
(Set_Ghost_Mode_From_Policy): Removed.
|
||
* ghost.ads (Check_Ghost_Overriding): New routine.
|
||
(Mark_Full_View_As_Ghost): New routine.
|
||
(Mark_Pragma_As_Ghost): New routine.
|
||
(Mark_Renaming_As_Ghost): New routine.
|
||
(Set_Ghost_Mode): Update the parameter profile. Update the
|
||
comment on usage.
|
||
(Set_Ghost_Mode_For_Freeze): Removed.
|
||
(Set_Ghost_Mode_From_Entity): New routine.
|
||
* sem_ch3.adb (Analyze_Full_Type_Declaration):
|
||
Capture and restore the Ghost mode. Mark a type
|
||
as Ghost regardless of whether it comes from source.
|
||
(Analyze_Incomplete_Type_Decl): Capture, set and restore the
|
||
Ghost mode.
|
||
(Analyze_Number_Declaration): Capture and restore the Ghost mode.
|
||
(Analyze_Object_Declaration): Capture and restore the Ghost mode.
|
||
(Analyze_Private_Extension_Declaration): Capture and
|
||
restore the Ghost mode.
|
||
(Analyze_Subtype_Declaration): Capture and restore the Ghost mode.
|
||
(Process_Full_View): The full view inherits all Ghost-related
|
||
attributes from the private view.
|
||
(Restore_Globals): New routine.
|
||
* sem_ch5.adb (Analyze_Assignment): Capture and restore the
|
||
Ghost mode.
|
||
(Restore_Globals): New routine.
|
||
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration):
|
||
Code cleanup. Capture and restore the Ghost mode. Mark a
|
||
subprogram as Ghost regarless of whether it comes from source.
|
||
(Analyze_Procedure_Call): Capture and restore the Ghost mode.
|
||
(Analyze_Subprogram_Body_Helper): Capture and restore the Ghost mode.
|
||
(Analyze_Subprogram_Declaration): Capture and restore the Ghost mode.
|
||
(New_Overloaded_Entity): Ensure that a
|
||
parent subprogram and an overriding subprogram have compatible
|
||
Ghost policies.
|
||
* sem_ch7.adb (Analyze_Package_Body_Helper): Capture and restore
|
||
the Ghost mode.
|
||
(Analyze_Package_Declaration): Capture and
|
||
restore the Ghost mode. Mark a package as Ghost when it is
|
||
declared in a Ghost region.
|
||
(Analyze_Private_Type_Declaration): Capture and restore the Ghost mode.
|
||
(Restore_Globals): New routine.
|
||
* sem_ch8.adb (Analyze_Exception_Renaming): Code
|
||
reformatting. Capture and restore the Ghost mode. A renaming
|
||
becomes Ghost when its name references a Ghost entity.
|
||
(Analyze_Generic_Renaming): Capture and restore the Ghost mode. A
|
||
renaming becomes Ghost when its name references a Ghost entity.
|
||
(Analyze_Object_Renaming): Capture and restore the Ghost mode. A
|
||
renaming becomes Ghost when its name references a Ghost entity.
|
||
(Analyze_Package_Renaming): Capture and restore the Ghost mode. A
|
||
renaming becomes Ghost when its name references a Ghost entity.
|
||
(Analyze_Subprogram_Renaming): Capture and restore the Ghost
|
||
mode. A renaming becomes Ghost when its name references a
|
||
Ghost entity.
|
||
* sem_ch11.adb (Analyze_Exception_Declaration): Capture, set
|
||
and restore the Ghost mode.
|
||
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture and
|
||
restore the Ghost mode.
|
||
(Analyze_Generic_Subprogram_Declaration):
|
||
Capture and restore the Ghost mode.
|
||
* sem_ch13.adb Add with and use clauses for Ghost.
|
||
(Add_Invariant): New routine.
|
||
(Add_Invariants): Factor out code.
|
||
(Add_Predicate): New routine.
|
||
(Add_Predicates): Factor out code.
|
||
(Build_Invariant_Procedure_Declaration): Code cleanup. Capture,
|
||
set and restore the Ghost mode.
|
||
(Build_Invariant_Procedure): Code cleanup.
|
||
(Build_Predicate_Functions): Capture, set and
|
||
restore the Ghost mode. Mark the generated functions as Ghost.
|
||
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
|
||
Capture, set and restore the Ghost mode.
|
||
(Analyze_External_Property_In_Decl_Part): Capture, set and restore
|
||
the Ghost mode.
|
||
(Analyze_Initial_Condition_In_Decl_Part):
|
||
Capture, set and restore the Ghost mode.
|
||
(Analyze_Pragma):
|
||
Code cleanup. Capture, set and restore the Ghost mode. Flag
|
||
pragmas Linker_Section, No_Return, Unmodified, Unreferenced and
|
||
Unreferenced_Objects as illegal when it applies to both Ghost
|
||
and living arguments. Pragma Ghost cannot apply to synchronized
|
||
objects.
|
||
(Check_Kind): Moved to the spec of Sem_Prag.
|
||
(Process_Inline): Flag the pragma as illegal when it applies to
|
||
both Ghost and living arguments.
|
||
(Restore_Globals): New routine.
|
||
* sem_prag.ads Add pragma Default_Initial_Condition
|
||
to table Assertion_Expression_Pragma. Add new table
|
||
Is_Aspect_Specifying_Pragma.
|
||
(Check_Kind): Moved from body of Sem_Prag.
|
||
* sem_util.adb Add with and use clauses for Ghost.
|
||
(Build_Default_Init_Cond_Procedure_Body): Capture, set and restore
|
||
the Ghost mode.
|
||
(Build_Default_Init_Cond_Procedure_Declaration):
|
||
Capture, set and restore the Ghost mode. Mark the default
|
||
initial condition procedure as Ghost when it is declared
|
||
in a Ghost region.
|
||
(Is_Renaming_Declaration): New routine.
|
||
(Policy_In_List): Account for the single argument version of
|
||
Check_Pragma.
|
||
* sem_util.ads (Is_Renaming_Declaration): New routine.
|
||
* sinfo.adb (Is_Ghost_Pragma): New routine.
|
||
(Set_Is_Ghost_Pragma): New routine.
|
||
* sinfo.ads New attribute Is_Ghost_Pragma.
|
||
(Is_Ghost_Pragma): New routine along with pragma Inline.
|
||
(Set_Is_Ghost_Pragma): New routine along with pragma Inline.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch3.adb, sem_aux.adb, sem_aux.ads, exp_ch6.adb, sprint.adb:
|
||
Minor reformatting.
|
||
|
||
2015-05-26 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* gnat1drv.adb, targparm.adb, targparm.ads, restrict.adb: Minor
|
||
reformatting and typo fixes in comments.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch7.adb (Swap_Private_Dependets): Set visibility of
|
||
the two views of a private dependent in two separate steps,
|
||
to ensure proper visibility in parent units analyzed for inlining.
|
||
|
||
2015-05-26 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_aux.adb, sem_aux.ads (Get_Low_Bound): Use Type_Low_Bound.
|
||
(Package_Body, Package_Spec): New queries moved
|
||
here from GNATprove.
|
||
(Package_Specification): Simplify query to remove use of loop.
|
||
* sem_util.adb, sem_util.ads (Enclosing_Declaration,
|
||
Enclosing_Package_Or_Subprogram, Is_Attribute_Update): New
|
||
queries moved here from GNATprove.
|
||
|
||
2015-05-26 Bob Duff <duff@adacore.com>
|
||
|
||
* einfo.adb, einfo.ads, sprint.adb, lib-xref.ads: Minor cleanup: Remove
|
||
obsolete Entity_Kinds E_String_Type and E_String_Subtype. Update
|
||
redundant assertions.
|
||
|
||
2015-05-26 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_util.adb, sem_util.ads, sem_ch13.adb: Minor typo fixes.
|
||
|
||
2015-05-26 Doug Rupp <rupp@adacore.com>
|
||
|
||
* init.c [vxworks]: Refine previous checkin.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_ch4.adb (Wrap_MA): New function.
|
||
(Expand_N_Op_Expon): Use Wrap_MA.
|
||
|
||
2015-05-26 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
|
||
Do not use secondary stack to return limited records with
|
||
defaulted discriminants. This is an efficiency improvement.
|
||
* exp_ch6.adb, exp_dist.adb, sem_attr.adb, sem_aux.adb, sem_aux.ads,
|
||
sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb,
|
||
sem_util.adb: Change the sense of Is_Indefinite_Subtype to be
|
||
Is_Definite_Subtype. This is an improvement to readability (the double
|
||
negative in "not Is_Indefinite_Subtype" was slightly confusing). Also
|
||
disallow passing non-[sub]type entities, an unnecessary and slightly
|
||
bug-prone flexibility.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): Defend against
|
||
bad bounds.
|
||
* debug.adb: Document -gnatd.k.
|
||
* erroutc.adb (Set_Msg_Insertion_Line_Number): Implement -gnatd.k.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* gnat1drv.adb (Gnat1drv): Provide new arguments for
|
||
Get_Target_Parameters.
|
||
* restrict.adb (Set_Restriction_No_Specification_Of_Aspect):
|
||
new procedure.
|
||
(Set_Restriction_No_Use_Of_Attribute): new procedure.
|
||
* restrict.ads (Set_Restriction_No_Specification_Of_Aspect):
|
||
new procedure.
|
||
(Set_Restriction_No_Use_Of_Attribute): new procedure.
|
||
* s-rident.ads (Integer_Parameter_Restrictions): New subtype.
|
||
* targparm.adb (Get_Target_Parameters): Allow new restriction
|
||
pragmas No_Specification_Of_Aspect No_Use_Of_Attribute
|
||
No_Use_Of_Pragma.
|
||
* targparm.ads: New parameters for Get_Target_Parameters.
|
||
* tbuild.adb (Set_NOD): New name for Set_RND.
|
||
(Set_NSA): New procedure.
|
||
(Set_NUA): New procedure.
|
||
(Set_NUP): New procedure.
|
||
* tbuild.ads (Make_SC): Minor reformatting.
|
||
(Set_NOD): New name for Set_RND.
|
||
(Set_NSA, Set_NUA, Set_NUP): New procedure.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* a-stwise.adb (Find_Token): If source'first is not positive,
|
||
an exception must be raised, as specified by RM 2005 A.4.3
|
||
(68/1). This must be checked explicitly, given that run-time
|
||
files are normally compiled without constraint checks.
|
||
* a-stzsea.adb (Find_Token): Ditto.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.ads sem_util.adb (Is_Current_Instance): New predicate
|
||
to fully implement RM 8.6 (17/3). which earlier only applied
|
||
to synchronized types. Used to preanalyze aspects that include
|
||
current instances of types, such as Predicate and Invariant.
|
||
* sem_res.adb (Resolve_Entity_Name): Use Is_Current_Instance.
|
||
* sem_ch13.adb (Add_Predicates): In ASIS mode, preserve original
|
||
expression of aspect and analyze it to provide proper type
|
||
information.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* rtsfind.ads: Add entries for RE_Exn[_Long]_Float.
|
||
* s-exnllf.adb (Exn_Float): New function.
|
||
(Exn_Long_Float): New function.
|
||
(Exn_Long_Long_Float): Rewritten interface.
|
||
(Exp): New name for what used to be Exn_Long_Long_Float.
|
||
* s-exnllf.ads (Exn_Float): New function.
|
||
(Exn_Long_Float): New function.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb (Find_Selected_Component): Do not emit an error
|
||
on a selected component when the prefix is a type name that is
|
||
a Current_Instance.
|
||
* einfo.ads: Minor grammar fix.
|
||
|
||
2015-05-26 Doug Rupp <rupp@adacore.com>
|
||
|
||
* init.c [vxworks] (sysLib.h): Only for x86.
|
||
|
||
2015-05-26 Doug Rupp <rupp@adacore.com>
|
||
|
||
* init-vxsim.c (CPU): define as __VXSIM_CPU__
|
||
* sigtramp-vxworks-vxsim.c (CPU): Likewise.
|
||
sigtramp-vxworks-target.inc: Add check for SIMLINUX.
|
||
* sigtramp.h: Likewise.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_aux.adb, sem_disp.adb, sem_util.ads: Add comment.
|
||
* sem_util.adb: Minor reformatting
|
||
|
||
2015-05-26 Yannick Moy <moy@adacore.com>
|
||
|
||
* inline.adb (Has_Initialized_Type): Adapt to new names.
|
||
* sem_aux.adb, sem_aux.ads (Get_Low_Bound, Number_Components,
|
||
Subprogram_Body, Subprogram_Body_Entity, Subprogram_Spec,
|
||
Subprogram_Specification): New query functions used in GNATprove.
|
||
* sem_disp.adb, sem_disp.ads (Is_Overriding_Subprogram): New
|
||
query functions used in GNATprove.
|
||
* sem_util.adb, sem_util.adso (Enclosing_Lib_Unit_Node,
|
||
Get_Cursor_Type, Get_Return_Object, Get_User_Defined_Eq,
|
||
Is_Double_Precision_Floating_Point_Type,
|
||
Is_Single_Precision_Floating_Point_Type): New query functions
|
||
used in GNATprove.
|
||
|
||
2015-05-26 Bob Duff <duff@adacore.com>
|
||
|
||
* s-rpc.ads (Partition_ID): Increase maximum Partition_ID to
|
||
some huge number.
|
||
* a-except-2005.adb, a-except-2005.ads, a-except.adb,
|
||
a-except.ads, a-exexda.adb, a-exstat.adb: Minor comment fixes.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sinfo.adb: Minor comment addition.
|
||
* einfo.adb: Minor whitespace and punctuation fix.
|
||
* sem_util.adb: Minor editing of comments.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch7.adb (Install_Private_Declarations,
|
||
Swap_Private_Dependents): Ensure that both views of the dependent
|
||
subtype are immediately visible if we are within their scope. This
|
||
may be needed when a procedure body is both the parent of an
|
||
instantiated child unit, and is itself used to inline a local
|
||
function.
|
||
|
||
2015-05-26 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_prag.adb, gnat1drv.adb: Minor reformatting.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Indexed_Component): In the circuit
|
||
detecting exceptions to the rewriting, deal with implicit
|
||
dereferences in the selected component case.
|
||
|
||
2015-05-26 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_One_Aspect): Do not
|
||
require the expression of the Disable_Controlled aspect to be
|
||
static in a generic template, because 'Enabled is not known
|
||
until the instance.
|
||
|
||
2015-05-26 Doug Rupp <rupp@adacore.com>
|
||
|
||
* init-vxsim.c: New file for vxsim ZCX
|
||
* sigtramp-vxworks-vxsim.c: Likewise.
|
||
* sigtramp-vxworks.c: Factor out target dependent bits into ...
|
||
* sigtramp-vxworks-target.inc: ... here.
|
||
* sigtramp.h: Add vxsim zcx protos.
|
||
* init.c [vxworks...] (sysLib.h): Include.
|
||
(__gnat_map_signal): Make global.
|
||
[...i386] (__gnat_error_handler): Call __gnat_vxsim_error_handler if
|
||
on vxsim.
|
||
[...i386] (__gnat_install_handler): Test if on vxsim.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Iterator_Specification): For an element
|
||
iterator over an array, if the component is aliased, the loop
|
||
variable is aliased as well.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Actuals): For a function call with in-out
|
||
parameters that is rewritten as an expression_with_actions,
|
||
we preserve the original function call node for further use by
|
||
the caller (typically Expand_Call). In the presence of validity
|
||
checks, that function call, though it is labelled Analyzed to
|
||
prevent an infinite recursion, may be rewritten as a temporary
|
||
by Remove_Side_Effects. Ensure that the caller has access to
|
||
the original function call to continue expansion.
|
||
* atree.ads: Minor typo in comment.
|
||
|
||
2015-05-26 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_util.adb (Check_Function_Writable_Actuals):
|
||
Add missing support to check the violation of writable actuals
|
||
in array aggregates that have a nonstatic range.
|
||
|
||
2015-05-26 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch6.adb (Process_Contract_Cases_For): Update the call to
|
||
Expand_Pragma_Contract_Cases.
|
||
* exp_prag.ads, exp_prag.adb (Expand_Contract_Cases): Rename to
|
||
Expand_Pragma_Contract_Cases.
|
||
* sem_ch13.adb (Add_Invariants): Use the original aspect name
|
||
when creating the arguments of pragma Check. This ensures that
|
||
'Class is properly recognized and handled.
|
||
|
||
2015-05-26 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat1drv.adb: Minor adjustments.
|
||
(Adjust_Global_Switches): Disable some related flags in CodePeer mode.
|
||
* sem_ch4.adb (Has_Arbitrary_Evaluation_Order,
|
||
Stop_Subtree_Climbind): Code cleanup.
|
||
* einfo.ads: Minor comment change.
|
||
|
||
2015-05-26 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Aggregate, Resolve_Extension_Aggregate):
|
||
Code cleanup.
|
||
* sem_ch3.adb (Build_Derived_Record_Type,
|
||
Record_Type_Declaration): Code cleanup.
|
||
* sem_ch4.adb (Has_Arbitrary_Evaluation_Order,
|
||
Stop_Subtree_Climbind): Tables which speed up the identification
|
||
of dangerous calls to Ada 2012 functions with writable actuals
|
||
(AI05-0144).
|
||
(Analyze_Arithmetic_Op, Analyze_Call, Analyze_Comparison_Op,
|
||
Analyze_Equality_Op, Analyze_Logical_Op, Analyze_Membership_Op,
|
||
Analyze_Range): Code cleanup.
|
||
(Is_Arbitrary_Evaluation_Order_Construct): Removed.
|
||
(Check_Writable_Actuals): Code cleanup using the added tables.
|
||
* sem_util.adb (Check_Function_Writable_Actuals): Return
|
||
immediately if the node does not have the flag Check_Actuals
|
||
set to True.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch6.adb (Add_Call_By_Copy_Code): Remove restrictive
|
||
condition in the detection of the effects of Remove_Side_Effects.
|
||
* exp_util.ads (Remove_Side_Effects): Add general and historical note.
|
||
* exp_util.adb (Is_Name_Reference): New predicate.
|
||
(Remove_Side_Effects): Use it in lieu of Is_Object_Reference
|
||
in order to decide whether to use the renaming to capture the
|
||
side effects of the subexpression.
|
||
(Side_Effect_Free): Remove obsolete test.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* aspects.ads, aspects.adb: Add aspect Disable_Controlled.
|
||
* einfo.ads, einfo.adb (Disable_Controlled): New flag.
|
||
(Is_Controlled_Active): New function.
|
||
* exp_ch3.adb (Expand_Freeze_Record_Type): Use
|
||
Is_Controlled_Active.
|
||
* exp_util.adb (Needs_Finalization): Finalization not needed
|
||
if Disable_Controlled set.
|
||
* freeze.adb (Freeze_Array_Type): Do not set
|
||
Has_Controlled_Component if the component has Disable_Controlled.
|
||
(Freeze_Record_Type): ditto.
|
||
* sem_ch13.adb (Decorate): Minor reformatting.
|
||
(Analyze_Aspect_Specifications): Implement Disable_Controlled.
|
||
* sem_ch3.adb (Analyze_Object_Declaration): Handle
|
||
Disable_Controlled.
|
||
(Array_Type_Declaration): ditto.
|
||
(Build_Derived_Private_Type): ditto.
|
||
(Build_Derived_Type): ditto.
|
||
(Record_Type_Definition): ditto.
|
||
* snames.ads-tmpl: Add Name_Disable_Controlled.
|
||
|
||
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Actuals): Use a constant declaration instead
|
||
of a renaming to capture the return value of a function call.
|
||
(Expand_Simple_Function_Return): Call Remove_Side_Effects
|
||
instead of removing side effects manually before the call to
|
||
_Postconditions.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Op_Expon): Deal with problem of wrong
|
||
order in calling Duplicate_Subexpr.
|
||
* einfo.ads: Fix documentation of Object/Value size for scalar types.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_aggr.adb (Build_Array_Aggr_Code, Gen_Assign):
|
||
If a component is default-initialized and its type has an
|
||
invariant procedure, insert an invariant test after code for
|
||
default-initialization of the component.
|
||
|
||
2015-05-26 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* einfo.ads, sem_util.adb, sem_ch4.adb: Minor reformatting.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_unst.adb, exp_unst.ads: Change to using Subps table index for
|
||
making AREC entity names unique.
|
||
|
||
2015-05-26 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_cat.adb (Has_Stream_Attribute_Definition): If the type
|
||
has aspect specifications, examine the corresponding list of
|
||
representation items to determine whether there is a visible
|
||
stream operation. The attribute definition clause generated from
|
||
the aspect will be inserted at the freeze point of the type,
|
||
which may be in the private part and not directly visible,
|
||
but the aspect makes the operation available to a client.
|
||
|
||
2015-05-26 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_util.adb: Minor code reorganization.
|
||
* sem_ch6.adb: Minor reformatting.
|
||
|
||
2015-05-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.c (maybe_pad_type): Do not apply adjustment to
|
||
original size for elementary types before issuing the size warning.
|
||
|
||
2015-05-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* get_targ.adb (C_Get_Float_Words_BE): Adjust import name.
|
||
(C_Get_Words_BE): Likewise.
|
||
(C_Get_Bytes_BE): Likewise.
|
||
(C_Get_Bits_BE): Likewise.
|
||
(Width_From_Size): Remove superfluous space.
|
||
* gcc-interface/targtyps.c (get_float_words_be): Rename into...
|
||
(get_target_float_words_be): ...this.
|
||
(get_words_be): Rename into...
|
||
(get_target_words_be): ...this.
|
||
(get_bytes_be): Rename into...
|
||
(get_target_bytes_be): ...this.
|
||
(get_bits_be): Rename into...
|
||
(get_target_bits_be): ...this.
|
||
* gcc-interface/gigi.h (standard_datatypes): Remove ADT_ptr_void_type.
|
||
(ptr_void_type_node): Delete.
|
||
(get_target_float_size): Likewise.
|
||
(get_target_double_size): Likewise.
|
||
(get_target_long_double_size): Likewise.
|
||
(get_float_words_be): Likewise.
|
||
(get_words_be): Likewise.
|
||
(get_bytes_be): Likewise.
|
||
(get_bits_be): Likewise.
|
||
(get_target_float_words_be): Declare.
|
||
(get_target_words_be): Likewise.
|
||
(get_target_bytes_be): Likewise.
|
||
(get_target_bits_be): Likewise.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Replace ptr_void_type_node
|
||
with ptr_type_node.
|
||
(intrin_return_compatible_p): Likewise.
|
||
* gcc-interface/trans.c (gigi): Likewise.
|
||
* gcc-interface/utils2.c (maybe_wrap_malloc): Likewise.
|
||
(maybe_wrap_free): Likewise.
|
||
* gcc-interface/utils.c (maybe_pad_type): Remove superfluous space.
|
||
* gcc-interface/misc.c (gnat_init): Do not set ptr_void_type_node.
|
||
|
||
2015-05-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (elaborate_expression): Take a const string
|
||
suffix instead of a tree.
|
||
(elaborate_expression_1): Likewise.
|
||
(elaborate_expression_2): Likewise.
|
||
(gnat_to_gnu_entity): Adjust to above changes.
|
||
(build_subst_list): Likewise.
|
||
(get_entity_char): New static function.
|
||
|
||
2015-05-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Move around.
|
||
<E_Exception>: Merge with E_Variable case.
|
||
<E_Variable>: Remove 'object' label.
|
||
|
||
2015-05-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Minor tweak.
|
||
* gcc-interface/trans.c (finalize_nrv_unc_r): Use CONSTRUCTOR_ELT.
|
||
* gcc-interface/utils.c (convert): Likewise and simplify.
|
||
(remove_conversions): Likewise.
|
||
* gcc-interface/utils2.c (compare_fat_pointers): Likewise.
|
||
(build_unary_op): Likewise and simplify.
|
||
|
||
2015-05-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (build_atomic_load): Adjust prototype.
|
||
(build_atomic_store): Likewise.
|
||
(build_load_modify_store): Declare.
|
||
(VECTOR_TYPE_P): Delete.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Replace Is_Atomic with
|
||
Is_Atomic_Or_VFA throughout.
|
||
<E_Array_Type>: Build a variant of the XUA type instead of forcing
|
||
TYPE_VOLATILE on it.
|
||
<E_Array_Subtype>: Use the main variant of the base type.
|
||
Do not force TYPE_VOLATILE on the type being built.
|
||
<E_Record_Type>: Likewise.
|
||
<E_Array_Subtype>: Likewise.
|
||
<E_Subprogram_Type>: Rename local variable.
|
||
Add Atomic qualifier in conjunction with Volatile on types if needed.
|
||
Force BLKmode for by-ref types only at the end of the processing.
|
||
Change qualifiers only after changing the mode of the type. Set
|
||
TYPE_UNIVERSAL_ALIASING_P on the type directly.
|
||
(check_ok_for_atomic_type): Issue specific error message for VFA.
|
||
(gnat_to_gnu_component_type): Replace Is_Atomic with
|
||
Is_Atomic_Or_VFA throughout.
|
||
* gcc-interface/misc.c (gnat_get_alias_set): Test
|
||
TYPE_UNIVERSAL_ALIASING_P on the type directly.
|
||
* gcc-interface/trans.c (lvalue_required_p): Replace Is_Atomic with
|
||
Is_Atomic_Or_VFA throughout. Add missing guard.
|
||
(node_is_atomic): New predicate.
|
||
(node_has_volatile_full_access): Likewise.
|
||
(gnat_strip_type_conversion): New function.
|
||
(outer_atomic_access_required_p): New predicate.
|
||
(atomic_sync_required_p): Rename into...
|
||
(atomic_access_required_p): ...this. Add SYNC parameter, scan the
|
||
parent node first and then look for the atomic setting. Add support
|
||
for Volatile_Full_Access.
|
||
(Call_to_gnu): Add atomic_access and outer_atomic_access parameters
|
||
and adjusts calls to above functions. Use load-modify-store sequence
|
||
for updates of In/Out and Out parameters if required, as well as for
|
||
moving the result to the target if required. Add couple of missing
|
||
guards.
|
||
(gnat_to_gnu): Adjust calls to above functions.
|
||
<N_Object_Renaming_Declaration>: If the renamed object has side-effects
|
||
evaluate only its address.
|
||
<N_Assignment_Statement>: Adjust call to Call_to_gnu. Use load-modify
|
||
store sequence if required.
|
||
<N_Function_Call>: Adjust call to Call_to_gnu.
|
||
(extract_values): Adjust comment.
|
||
* gcc-interface/utils2.c (build_atomic_load): Add SYNC parameter and
|
||
use relaxed memory model if it is not set.
|
||
(build_atomic_store): Likewise.
|
||
(call_is_atomic_load): New predicate.
|
||
(build_load_modify_store): New function.
|
||
(build_binary_op) <MODIFY_EXPR>: Accept SAVE_EXPR on the LHS.
|
||
(gnat_stabilize_reference) <CALL_EXPR>: Deal with atomic loads.
|
||
|
||
2015-05-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/ada-tree.h (DECL_RENAMING_GLOBAL_P): Rename into...
|
||
(DECL_GLOBAL_NONCONSTANT_RENAMING_P): ...this.
|
||
* gcc-interface/gigi.h (record_global_renaming_pointer): Delete.
|
||
(invalidate_global_renaming_pointers): Likewise.
|
||
(record_global_nonconstant_renaming): New.
|
||
(invalidate_global_nonconstant_renamings): Likewise.
|
||
(get_inner_constant_reference): Likewise.
|
||
(gnat_constant_reference_p): Likewise.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Adjust to above
|
||
and register the renaming pointer only if the object is non-constant.
|
||
(elaborate_expression_1): Call get_inner_constant_reference instead
|
||
of get_inner_reference.
|
||
* gcc-interface/trans.c (fold_constant_decl_in_expr): Minor tweak.
|
||
(Identifier_to_gnu): Adjust to above and do not recheck the renamed
|
||
object before substituting it.
|
||
(Compilation_Unit_to_gnu): Adjust to above renaming. Minor tweaks.
|
||
(gnat_to_gnu) <N_Object_Renaming_Declaration>: Do not return the
|
||
result at the global level.
|
||
(N_Exception_Renaming_Declaration): Likewise.
|
||
* gcc-interface/utils.c (global_renaming_pointers): Rename into...
|
||
(global_nonconstant_renamings): ...this.
|
||
(destroy_gnat_utils): Adjust to above renaming.
|
||
(record_global_renaming_pointer): Rename into...
|
||
(record_global_nonconstant_renaming): ...this.
|
||
(invalidate_global_renaming_pointers): Rename into...
|
||
(invalidate_global_nonconstant_renamings): ...this and do not recheck
|
||
the renamed object before invalidating.
|
||
* gcc-interface/utils2.c (gnat_stabilize_reference): Minor tweak.
|
||
(get_inner_constant_reference): New public function.
|
||
(gnat_constant_reference_p): New predicate.
|
||
|
||
2015-05-25 Javier Miranda <miranda@adacore.com>
|
||
|
||
* einfo.ads, einfo.adb (Has_Out_Or_In_Out_Parameter): This attribute
|
||
is now present in subprograms, generic subprograms, entries and
|
||
entry families.
|
||
* sem_ch6.adb (Set_Formal_Mode): Set As_Out_Or_In_Out_Parameter
|
||
on entries, entry families, subprograms and generic subprograms.
|
||
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration):
|
||
Minor code reorganization to ensure that the Ekind attribute
|
||
of the subprogram entity is set before its formals are
|
||
processed. Required to allow the use of the attribute
|
||
Has_Out_Or_In_Out_Parameter on the subprogram entity.
|
||
* sem_aggr.adb (Resolve_Aggregate, Resolve_Extension_Aggregate):
|
||
Perform the check on writable actuals only if the value of some
|
||
component of the aggregate involves calling a function with
|
||
out-mode parameters.
|
||
(Resolve_Record_Aggregate): Propagate the Check_Actuals flag to the
|
||
internally built aggregate.
|
||
* sem_ch3.adb (Build_Derived_Record_Type, Record_Type_Declaration):
|
||
Perform the check on writable actuals only if the initialization of
|
||
some component involves calling a function with out-mode parameters.
|
||
* sem_ch4.adb (Analyze_Arithmetic_Op, Analyze_Comparison_Op,
|
||
Analyze_Equality_Op, Analyze_Logical_Op, Analyze_Membership_Op,
|
||
Analyze_Range): Check writable actuals only if the
|
||
subtrees have a call to a function with out-mode parameters
|
||
(Analyze_Call.Check_Writable_Actuals): New subprogram. If the call
|
||
has out or in-out parameters then mark its outermost enclosing
|
||
construct as a node on which the writable actuals check must
|
||
be performed.
|
||
(Analyze_Call): Check if the flag must be set and if the outermost
|
||
enclosing construct.
|
||
* sem_util.adb (Check_Function_Writable_Actuals): Code cleanup
|
||
and reorganization. We skip processing aggregate discriminants
|
||
since their precise analysis involves two phases traversal.
|
||
* sem_res.adb (Resolve_Actuals, Resolve_Arithmetic_Op,
|
||
Resolve_Logical_Op, Resolve_Membership_Op): Remove call to
|
||
check_writable_actuals.
|
||
|
||
2015-05-22 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Constrain_Concurrent): If the context is a
|
||
type declaration, generate an Itype_Reference for the anonymous
|
||
subtype, to force elaboration at this point in gigi.
|
||
|
||
2015-05-22 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* layout.adb, einfo.ads, sem_ch12.adb, freeze.adb, sem_util.ads,
|
||
exp_ch4.adb, sem_ch6.adb: Minor reformatting and typo fixes.
|
||
|
||
2015-05-22 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Actuals): If the call is to an overridden
|
||
operation, replace the names of the actuals in named associations
|
||
with the names of the actuals of the subprogram that is eventually
|
||
executed. The names of the formals and the defaults can differ
|
||
between the two operations when they are operations of a formal
|
||
derived type.
|
||
|
||
2015-05-22 Bob Duff <duff@adacore.com>
|
||
|
||
* a-convec.ads, a-convec.adb (Append): Check for fast path. Split
|
||
out slow path into separate procedure. Inline Append. Fast path
|
||
now avoids calling Insert.
|
||
(Finalize): Do the busy checking last, so the container gets emptied.
|
||
(Insert, Insert_Space): Remove redundancy.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* switch-c.adb (Scan_Front_End_Switches): Insist on -gnatc
|
||
for -gnatd.V.
|
||
|
||
2015-05-22 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnatvsn.ads: Minor code reorg to remember more easily to update
|
||
variables.
|
||
|
||
2015-05-22 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch10.adb (Analyze_With_Clause): In ASIS_Mode, a
|
||
limited_with clause on a predefined unit is not transformed into
|
||
a regular with_clause, to preserve the original tree structure.
|
||
* sinfo.ads (N_With_Clause): Add comment on handling of
|
||
Limited_With.
|
||
* sem_ch10.adb: Minor reformatting.
|
||
|
||
2015-05-22 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb (Freeze_Profile): A limited view of a type in
|
||
the profile of a subprogram renaming does not require freezing,
|
||
because it is declared in a different unit.
|
||
|
||
2015-05-22 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_aggr.adb (Get_Constraint_Association): If type (of ancestor
|
||
composite type) is private, go to full view. This was previously
|
||
done only in an instance context, but is happen whenever a chain
|
||
of private extensions includes one inherited discriminant.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* einfo.ads: Minor comment updates.
|
||
* exp_unst.adb: Move Subps table to spec Don't remove old entries
|
||
from table Add Last field to record last entry used.
|
||
* exp_unst.ads: Move Subps table here from body So that Cprint
|
||
can access saved values.
|
||
|
||
2015-05-22 Bob Duff <duff@adacore.com>
|
||
|
||
* a-cdlili.adb, a-cdlili.ads, a-cohama.adb, a-cohama.ads,
|
||
* a-cohase.adb, a-cohase.ads, a-convec.adb, a-convec.ads,
|
||
* a-coorma.adb, a-coorma.ads, a-coorse.adb, a-coorse.ads:
|
||
(Pseudo_Reference, Element_Access, Get_Element_Access): New
|
||
declarations added for use by performance improvements in exp_ch5.adb.
|
||
* snames.ads-tmpl: New names referenced by exp_ch5.adb.
|
||
* exp_ch5.adb: Speed up "for ... of" loops for predefined containers.
|
||
Instead of doing literally what the RM calls for, we do something
|
||
equivalent that avoids expensive operations inside the loop. If the
|
||
container package has appropriate Next, Pseudo_Reference,
|
||
Element_Access, Get_Element_Access declarations, we invoke the
|
||
optimization.
|
||
* snames.ads-tmpl: Note speed improvement.
|
||
|
||
2015-05-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Is_Atomic_Or_VFA): Move to XEINFO INLINES section.
|
||
* xeinfo.adb: Replace a-einfo.h with einfo.h throughout.
|
||
Add pattern to translate "or else" into "||".
|
||
|
||
2015-05-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Has_Volatile_Full_Access): Rename into...
|
||
(Is_Volatile_Full_Access): ...this.
|
||
(Set_Has_Volatile_Full_Access): Rename into...
|
||
(Set_Is_Volatile_Full_Access): ...this.
|
||
* einfo.adb (Has_Volatile_Full_Access): Rename into...
|
||
(Is_Volatile_Full_Access): ...this.
|
||
(Set_Has_Volatile_Full_Access): Rename into...
|
||
(Set_Is_Volatile_Full_Access): ...this.
|
||
(Is_Atomic_Or_VFA): Adjust to above renaming.
|
||
* errout.adb (Special_Msg_Delete): Likewise.
|
||
* exp_pakd.adb (Install_PAT): Likewise.
|
||
* freeze.adb (Freeze_Array_Type): Likewise.
|
||
* sem_ch8.adb (Analyze_Object_Renaming): Likewise.
|
||
* sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise.
|
||
(Inherit_Aspects_At_Freeze_Point): Likewise.
|
||
* sem_prag.adb (Set_Atomic_VFA): Likewise.
|
||
(Process_Atomic_Independent_Shared_Volatile): Likewise.
|
||
* sem_util.adb (Is_Atomic_Or_VFA_Object): Likewise.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_ch5.adb, layout.adb, einfo.adb, einfo.ads, sem_prag.adb,
|
||
freeze.adb, freeze.ads, sem_util.adb, sem_util.ads, exp_ch2.adb,
|
||
exp_ch4.adb, errout.adb, exp_aggr.adb, sem_ch13.adb: This is a general
|
||
change that deals with the fact that most of the special coding for
|
||
Atomic should also apply to the case of Volatile_Full_Access.
|
||
A new attribute Is_Atomic_Or_VFA is introduced, and many of the
|
||
references to Is_Atomic now use this new attribute.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Op_Eq): Introduce 'Machine for 'Result
|
||
comparison.
|
||
|
||
2015-05-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sprint.adb (Source_Dump): When generating debug files, deal
|
||
with the case of a stand-alone package instantiation by dumping
|
||
together the spec and the body in the common debug file.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch13.adb (Minimum_Size): Size is zero for null range
|
||
discrete subtype.
|
||
|
||
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.adb (Anonymous_Master): This attribute now applies
|
||
to package and subprogram bodies.
|
||
(Set_Anonymous_Master): This attribute now applies to package and
|
||
subprogram bodies.
|
||
(Write_Field36_Name): Add output for package and subprogram bodies.
|
||
* einfo.ads Update the documentation on attribute Anonymous_Master
|
||
along with occurrences in entities.
|
||
* exp_ch4.adb (Create_Anonymous_Master): Reimplemented to
|
||
handle spec and body anonymous masters of the same unit.
|
||
(Current_Anonymous_Master): Reimplemented. Handle a
|
||
package instantiation that acts as a compilation unit.
|
||
(Insert_And_Analyze): Reimplemented.
|
||
|
||
2015-05-22 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch10.adb (Analyze_With_Clause): A limited_with_clause on a
|
||
predefined unit is treated as a regular with_clause.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch12.adb, prj.ads, makeutl.ads, sem_ch6.adb, prj-nmsc.adb,
|
||
prj-conf.adb, sem_disp.adb: Minor reformatting.
|
||
|
||
2015-05-22 Vincent Celier <celier@adacore.com>
|
||
|
||
* clean.adb (Parse_Cmd_Line): For native gnatclean, check
|
||
for switch -P and, if found and gprclean is available, invoke
|
||
silently gprclean.
|
||
* make.adb (Initialize): For native gnatmake, check for switch -P
|
||
and, if found and gprbuild is available, invoke silently gprbuild.
|
||
|
||
2015-05-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch13.adb (Validate_Unchecked_Conversions): Also issue
|
||
specific warning for discrete types when the source is larger
|
||
than the target.
|
||
|
||
2015-05-22 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* einfo.ads, einfo.adb (Incomplete_Actuals): New attribute of
|
||
package instantiations. Holds the list of actuals in the instance
|
||
that are incomplete types, to determine where the corresponding
|
||
instance body must be placed.
|
||
* sem_ch6.adb (Conforming_Types): An incomplete type used as an
|
||
actual in an instance matches an incomplete formal.
|
||
* sem_disp.adb (Check_Dispatching_Call): Handle missing case of
|
||
explicit dereference.
|
||
(Inherited_Subprograms): In the presence of a limited view there
|
||
are no subprograms to inherit.
|
||
* sem_ch12.adb (Preanalyze_Actuals): Build list of incomplete
|
||
actuals of instance, for later placement of instance body and
|
||
freeze nodes for actuals.
|
||
(Install_Body): In the presence of actuals that incomplete types
|
||
from a limited view, the instance body cannot be placed after
|
||
the declaration because full views have not been seen yet. Any
|
||
use of the non-limited views in the instance body requires
|
||
the presence of a regular with_clause in the enclosing unit,
|
||
and will fail if this with_clause is missing. We place the
|
||
instance body at the beginning of the enclosing body, which is
|
||
the unit being compiled, and ensure that freeze nodes for the
|
||
full views of the incomplete types appear before the instance.
|
||
|
||
2015-05-22 Pascal Obry <obry@adacore.com>
|
||
|
||
* makeutl.ads, prj-conf.adb, prj-nmsc.adb, prj.ads
|
||
(In_Place_Option): Removed.
|
||
(Relocate_Build_Tree_Option): New constant.
|
||
(Root_Dir_Option): New constant.
|
||
(Obj_Root_Dir): Removed.
|
||
(Build_Tree_Dir): New variable.
|
||
(Root_Src_Tree): Removed.
|
||
(Root_Dir): New variable.
|
||
* prj-conf.adb (Get_Or_Create_Configuration_File): Add check
|
||
for improper relocation.
|
||
* prj-nmsc.adb (Locate_Directory): Add check for improper
|
||
relocation.
|
||
|
||
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.adb (Default_Init_Cond_Procedure): Code cleanup. The
|
||
attribute now applies to the base type.
|
||
(Has_Default_Init_Cond): Now applies to the base type.
|
||
(Has_Inherited_Default_Init_Cond): Now applies to the base type.
|
||
(Set_Default_Init_Cond_Procedure): Code cleanup. The attribute now
|
||
applies to the base type.
|
||
(Set_Has_Default_Init_Cond): Now applies to the base type.
|
||
(Set_Has_Inherited_Default_Init_Cond): Now applies to the base type.
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): No need to use the
|
||
base type when adding a call to the Default_Initial_Condition.
|
||
|
||
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.adb: Node36 is now used as Anonymous_Master. Flag253
|
||
is now unused.
|
||
(Anonymous_Master): New routine.
|
||
(Has_Anonymous_Master): Removed.
|
||
(Set_Anonymous_Master): New routine.
|
||
(Set_Has_Anonymous_Master): Removed.
|
||
(Write_Entity_Flags): Remove the output for Has_Anonymous_Maser.
|
||
(Write_Field36_Name): Add output for Anonymous_Master.
|
||
* einfo.ads Add new attribute Anonymous_Master along with
|
||
occurrences in nodes. Remove attribute Has_Anonymous_Master along
|
||
with occurrences in nodes.
|
||
(Anonymous_Master): New routine along with pragma Inline.
|
||
(Has_Anonymous_Master): Removed along with pragma Inline.
|
||
(Set_Anonymous_Master): New routine along with pragma Inline.
|
||
(Set_Has_Anonymous_Master): Removed along with pragma Inline.
|
||
* exp_ch4.adb (Create_Anonymous_Master): New routine.
|
||
(Current_Anonymous_Master): Reimplemented.
|
||
|
||
2015-05-22 Bob Duff <duff@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Profile): Suppress warning if imported
|
||
subprogram is not at library level.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch8.adb (Analyze_Object_Renaming): Check for renaming
|
||
component of an object to which Volatile_Full_Access applies.
|
||
|
||
2015-05-22 Jerome Guitton <guitton@adacore.com>
|
||
|
||
* exp_dbug.ads: Add note about non bit-packed arrays.
|
||
|
||
2015-05-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_prag.adb: Fix typo.
|
||
* einfo.ads: Grammar fixes in comments.
|
||
|
||
2015-05-22 Bob Duff <duff@adacore.com>
|
||
|
||
* a-cborma.ads, a-cidlli.ads, a-cimutr.ads, a-ciormu.ads,
|
||
* a-cihase.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
|
||
* a-cborse.ads, a-comutr.ads, a-ciorma.ads, a-cobove.ads,
|
||
* a-coormu.ads, a-convec.ads, a-cohase.ads, a-coinho.ads,
|
||
* a-cbdlli.ads, a-cbmutr.ads, a-cbhase.ads, a-cdlili.ads,
|
||
* a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
|
||
* a-coinho-shared.ads (Constant_Reference_Type, Reference_Type):
|
||
Add an initialization expression "raise Program_Error". See,
|
||
for example, RM-A.18.2(148.4).
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* debug.adb: Update documentation.
|
||
* einfo.ads, einfo.adb (Needs_Typedef): New flag
|
||
* exp_unst.adb (Unnest_Subprogram): Mark AREC types as needing
|
||
typedef's in C.
|
||
* frontend.adb: Update comments.
|
||
* gnat1drv.adb (Adjust_Global_Switches): Set all needed flags
|
||
for -gnatd.V
|
||
* opt.ads (Generate_C_Code): New switch.
|
||
* osint-c.adb (Write_C_File_Info): Removed, not used
|
||
(Write_H_File_Info): Removed, not used
|
||
* osint-c.ads (Write_C_File_Info): Removed, not used
|
||
(Write_H_File_Info): Removed, not used
|
||
* osint.ads (Write_Info): Minor comment updates.
|
||
(Output_FD): Moved from private part to public part of spec.
|
||
* sem.adb (Semantics): Force expansion on if in Generate_C_Code
|
||
mode.
|
||
* atree.ads: minor typo in comment.
|
||
* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
|
||
Do not allow VFA on composite object with aliased component.
|
||
|
||
2015-05-22 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* osint-c.adb, osint-c.ads (Set_File_Name): Move back to spec.
|
||
|
||
2015-05-22 Pascal Obry <obry@adacore.com>
|
||
|
||
* prj-util.adb: Minor comment editing.
|
||
|
||
2015-05-22 Pascal Obry <obry@adacore.com>
|
||
|
||
* makeutl.ads (In_Place_Option): New constant.
|
||
* prj.ads (Obj_Root_Dir): New variable (absolute path to relocate
|
||
objects).
|
||
(Root_Src_Tree): New variable (absolute path of root source tree).
|
||
* prj-conf.adb (Do_Autoconf): Take into account the object root
|
||
directory (if defined) to generate configuration project.
|
||
* prj-nmsc.adb (Get_Directories): Handle case where Obj_Root_Dir
|
||
is defined.
|
||
(Locate_Directory): Likewise.
|
||
|
||
2015-05-22 Pascal Obry <obry@adacore.com>
|
||
|
||
* prj-util.ads, prj-util.adb (Relative_Path): New routine.
|
||
|
||
2015-05-22 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_utils.ads, exp_utils.adb (Find_Optional_Prim_Op): New
|
||
interface to return Empty when not found, so we can avoid handling
|
||
Program_Error in that case.
|
||
(Find_Prim_Op): Fix latent bug: raise Program_Error when there are no
|
||
primitives.
|
||
* exp_ch7.adb, sem_util.adb: Use Find_Optional_Prim_Op when the
|
||
code is expecting Empty.
|
||
* sem_ch8.adb: Use Find_Optional_Prim_Op to avoid handling
|
||
Program_Error.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch3.adb, sem_intr.adb, exp_ch4.adb, s-rannum.adb,
|
||
sem_eval.adb, s-fatgen.adb, s-expmod.ads: Remove incorrect hyphen in
|
||
non-binary.
|
||
* exp_util.adb: Add comment.
|
||
* osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move from spec to
|
||
body.
|
||
(Set_File_Name): New name for the above.
|
||
(Create_C_File, Create_H_File, Write_C_File_Info, Write_H_File_Info,
|
||
Close_C_File, Close_H_File): New procedure.
|
||
* osint.adb: Minor reformatting.
|
||
* osint.ads: Minor comment updates.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_ch4.adb: Minor rewording.
|
||
* exp_util.ads: Clarify that Find_Prim_Op is only for
|
||
tagged types.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* atree.adb, atree.ads, treepr.adb: Change name Needs_Actuals_Check to
|
||
Check_Actuals.
|
||
* exp_ch4.adb (Expand_N_Op_Expon): Optimize 2**x in modular
|
||
and overflow cases.
|
||
|
||
2015-05-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_pakd.adb (Install_PAT): Propagate representation aspects
|
||
from the original array type to the PAT.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* treepr.adb (Print_Node_Header): Add output of Needs_Actuals_Check.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* atree.adb, atree.ads (Needs_Actuals_Check): New flag.
|
||
|
||
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Remove the detection
|
||
of a useless Part_Of indicator when the related item is a constant.
|
||
(Check_Matching_Constituent): Do not emit an error on a constant.
|
||
(Check_Missing_Part_Of): Do not check for a missing Part_Of indicator
|
||
when the related item is a constant.
|
||
(Collect_Body_States): Code cleanup.
|
||
(Collect_Visible_States): Code cleanup.
|
||
(Report_Unused_States): Do not emit an error on a constant.
|
||
* sem_util.ads, sem_util.adb (Has_Variable_Input): Removed.
|
||
|
||
2015-05-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch8.adb (Analyze_Object_Renaming): Copy
|
||
Has_Volatile_Full_Access from renamed to renaming entities.
|
||
* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
|
||
Tidy up and remove redundant setting of Has_Volatile_Full_Access.
|
||
|
||
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* ghost.adb (Check_Ghost_Completion): Update references to SPARK
|
||
RM 6.9 rules.
|
||
(Check_Ghost_Policy): Update references to SPARK RM 6.9 rules.
|
||
* sem_ch3.adb (Analyze_Object_Declaration): Update references
|
||
to SPARK RM 6.9 rules.
|
||
(Check_Completion): Ghost entities do not require a special form of
|
||
completion.
|
||
* sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references
|
||
to SPARK RM 6.9 rules.
|
||
(Analyze_Subprogram_Body_Helper): Update references to SPARK RM 6.9
|
||
rules.
|
||
* sem_ch7.adb (Analyze_Package_Body_Helper): Update references
|
||
to SPARK RM 6.9 rules.
|
||
(Requires_Completion_In_Body): Ghost entities do not require a special
|
||
form of completion.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-csquin.ads: Use Ada 2012 notation.
|
||
* sem_ch8.adb: Minor reformatting.
|
||
|
||
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Import
|
||
acts as a completion.
|
||
|
||
2015-05-22 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb: Minor reformatting.
|
||
|
||
2015-05-22 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* a-reatim.adb: Minor change, fix typo.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_util.ads: Minor addition of ??? comment.
|
||
* sem_prag.adb, sem_util.adb: Minor reformatting.
|
||
* sem_ch13.adb: minor reformatting.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-reatim.ads: Add Compile_Time_Error to ensure Duration
|
||
is 64-bits.
|
||
* sem_ch13.adb: Improve error message.
|
||
* exp_ch4.adb: Minor reformatting.
|
||
|
||
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Constants without variable
|
||
input do not require indicator Part_Of.
|
||
(Check_Missing_Part_Of): Constants without variable input do not
|
||
requrie indicator Part_Of.
|
||
(Collect_Visible_States): Constants without variable input are
|
||
not part of the hidden state of a package.
|
||
* sem_util.ads, sem_util.adb (Has_Variable_Input): New routine.
|
||
|
||
2015-05-22 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_util.adb (Activate_Atomic_Synchronization): Do not set
|
||
Atomic_Sync_Required for an object renaming declaration.
|
||
* sem_ch8.adb (Analyze_Object_Renaming): Copy Is_Atomic and
|
||
Is_Independent to renaming object.
|
||
|
||
2015-05-22 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Iterator_Specification): Diagnose
|
||
various illegalities in iterators over arrays and containers:
|
||
a) New function Get_Cursor_Type, to verify that the cursor is
|
||
not a limited type at the point of iteration.
|
||
b) If the container is a constant, an element_iterator is illegal
|
||
if the container type does not have a Constant_Indexing aspect.
|
||
c) If the iterate function has an in-out controlling parameter,
|
||
the container cannot be a constant object.
|
||
d) Reject additional cases of iterators over a
|
||
discriminant-dependent component of a mutable object.
|
||
|
||
2015-05-21 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.adb (Contract): This attribute now applies to constants.
|
||
(Set_Contract): This attribute now applies to constants.
|
||
(Write_Field34_Name): Add output for constants.
|
||
* einfo.ads Attribute Contract now applies to constants.
|
||
* sem_ch3.adb (Analyze_Object_Contract): Constants now have
|
||
their Part_Of indicator verified.
|
||
* sem_prag.adb (Analyze_Constituent): A constant is now a valid
|
||
constituent.
|
||
(Analyze_Global_Item): A constant cannot act as an output.
|
||
(Analyze_Initialization_Item): Constants are now a valid
|
||
initialization item.
|
||
(Analyze_Initializes_In_Decl_Part): Rename
|
||
global variable States_And_Vars to States_And_Objs and update
|
||
all its occurrences.
|
||
(Analyze_Input_Item): Constants are now a
|
||
valid initialization item. Remove SPARM RM references from error
|
||
messages.
|
||
(Analyze_Pragma): Indicator Part_Of can now apply to a constant.
|
||
(Collect_Body_States): Collect both source constants
|
||
and variables.
|
||
(Collect_States_And_Objects): Collect both source constants and
|
||
variables.
|
||
(Collect_States_And_Variables): Rename
|
||
to Collect_States_And_Objects and update all its occurrences.
|
||
(Collect_Visible_States): Do not collect constants and variables
|
||
used to map generic formals to actuals.
|
||
(Find_Role): The role of a constant is that of an input. Separate the
|
||
role of a variable from that of a constant.
|
||
(Report_Unused_Constituents): Add specialized wording for constants.
|
||
(Report_Unused_States): Add specialized wording for constants.
|
||
* sem_util.adb (Add_Contract_Item): Add processing for constants.
|
||
* sem_util.ads (Add_Contract_Item): Update the comment on usage.
|
||
(Find_Placement_In_State_Space): Update the comment on usage.
|
||
|
||
2015-05-21 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb: minor reformatting.
|
||
|
||
2015-05-21 Robert Dewar <dewar@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Entity): Properly tag -gnatw.z messages.
|
||
|
||
2015-05-21 Robert Dewar <dewar@adacore.com>
|
||
|
||
* freeze.adb: Minor reformatting.
|
||
* cstand.adb (Print_Standard): Fix bad printing of Duration
|
||
low bound.
|
||
* a-reatim.adb (Time_Of): Complete rewrite to properly detect
|
||
out of range args.
|
||
|
||
2015-05-21 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb: add (useless) initial value.
|
||
* sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram):
|
||
Check whether the procedure has parameters before processing
|
||
formals in ASIS mode.
|
||
|
||
2015-05-21 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb (Check_Iterator_Functions): Emit error on Iterator
|
||
aspect as well when indexing function is illegal.
|
||
(Valid_Default_Iterator): Handle properly somme illegal cases
|
||
to prevent compilation abandoned messages.
|
||
(Check_Primitive_Function): Verify that type and indexing function
|
||
are in the same scope.
|
||
* freeze.adb (Freeze_Record): Extend patch on the presence of
|
||
indexing aspects to aspect Default_Iterator.
|
||
|
||
2015-05-19 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* gcc-interface/trans.c (Sloc_to_locus1): Strenghthen local "map"
|
||
from line_map * to line_map_ordinary *.
|
||
|
||
2015-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
* sigtramp-vxworks.c: Add space between string literal and macro
|
||
name.
|
||
|
||
2015-05-12 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat_rm.texi, gnat_ugn.texi, doc: Documentation updates and clean ups
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Iterator_Specifications): Additional
|
||
legality checks for array and container iterators:
|
||
a) The domain of iteration cannot be a component that depends
|
||
on discriminants of a mutable object. The check was recently
|
||
added for element iterators.
|
||
b) The cursor type cannot be a limited type at the point of the
|
||
iteration, because the cursor will be assigned to in the body
|
||
of the loop.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Record_Type): Make sure that if we have
|
||
aspect Iterator_Element, then we have either Constant_Indexing
|
||
or Variable_Indexing.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* a-coormu.ads, a-coormu.adb: Add Indexing aspect, Reference_Type,
|
||
and Reference_Control_Type to support element iterators over
|
||
ordered multisets.
|
||
* a-ciormu.ads, a-ciormu.adb: Ditto for
|
||
indefinite_ordered_multisets.
|
||
|
||
2015-05-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Expression_With_Actions): Force
|
||
the evaluation of the EWA expression. Code cleanup.
|
||
(Process_Transient_Object): Code cleanup.
|
||
* exp_util.adb (Is_Aliased): Controlled transient objects found
|
||
within EWA nodes are not aliased.
|
||
(Is_Finalizable_Transient): Iterators are not finalizable transients.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
|
||
Don't allow Atomic and Volatile_Full_Access for the same entity.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Iterator_Specification): Implement new
|
||
semantics and safety checks specified in AI12-0151.
|
||
|
||
2015-05-12 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* sem_ch10.adb (Sem_Ch10.Analyze_Proper_Body): Generate SCOs
|
||
for subunit in generic units.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_elab.adb (Check_A_Call): Avoid checking internal call
|
||
from Valid_Scalars
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Process_Formals): An untagged incomplete type
|
||
is legal in the profile of a null procedure.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly
|
||
the checks on a derived formal whose parent type is a previous
|
||
formal that is not a derived type.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* aspects.ads, aspects.adb: Add entries for aspect Volatile_Full_Access
|
||
* einfo.adb (Has_Volatile_Full_Access): New flag.
|
||
(Has_Volatile_Full_Access): New flag.
|
||
* einfo.ads (Has_Volatile_Full_Access): New flag.
|
||
* par-prag.adb: Add dummy entry for Volatile_Full_Access.
|
||
* sem_prag.adb (Analyze_Pragma, case Volatile_Full_Access):
|
||
Implement new pragma.
|
||
* snames.ads-tmpl: Add entries for pragma Volatile_Full_Access.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* targparm.ads: Minor reformatting.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-reatim.adb (Time_Of): Properly detect overflow when TS = 0.0.
|
||
* a-reatim.ads: Minor reformatting.
|
||
|
||
2015-05-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.ads: Update the documentation of flags
|
||
Has_Inherited_Default_Init_Cond and Has_Default_Init_Cond.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* impunit.adb: Add entry for a-dhfina.ads
|
||
* a-dhfina.ads: New file.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): if the array
|
||
type has convention Fortran, a multidimensional iterator varies
|
||
the first dimension fastest.
|
||
|
||
2015-05-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.adb: Node32 is now used as Encapsulating_State.
|
||
Node37 is now used as Associated_Entity.
|
||
(Associated_Entity): New routine.
|
||
(Encapsulating_State): Update the assertion guard to include constants.
|
||
(Set_Associated_Entity): New routine.
|
||
(Set_Encapsulating_State): Update the assertion guard to
|
||
include constants.
|
||
(Write_Field10_Name): Remove the output for Encapsulating_State.
|
||
(Write_Field32_Name): Add output for Encapsulating_State.
|
||
(Write_Field37_Name): Add output for Associated_Entity.
|
||
* einfo.ads New attribute Associated_Entity along with placement
|
||
in entities. Attribute Encapsulating_State now uses Node32.
|
||
(Associated_Entity): New routine along with pragma Inline.
|
||
(Set_Associated_Entity): New routine along with pragma Inline.
|
||
* inline.ads Code reformatting.
|
||
* sem_attr.adb (Analyze_Attribute): Correct the prefix of
|
||
attribute 'Result when the context is a generic instantiation.
|
||
(Analyze_Attribute_Old_Result): Pragmas Depends and
|
||
Refined_Depends are a valid context for attribute 'Result.
|
||
(Denote_Same_Function): Allow attribute 'Result to denote
|
||
generic functions.
|
||
* sem_ch3.adb Add with and use clauses for Sem_Ch12.
|
||
(Analyze_Declarations): Capture global references within the
|
||
contracts of packages, subprograms and their respective bodies.
|
||
* sem_ch6.adb (Analyze_Aspects_On_Body_Or_Stub): Removed.
|
||
(Analyze_Completion_Contract): Removed.
|
||
(Analyze_Generic_Subprogram_Body): Enchange the aspects after
|
||
creating the generic copy. Create a generic contract for the
|
||
template. Analyze the aspects of the generic body. Analyze the
|
||
contract of the generic body when it is a compilation unit and
|
||
capture global references.
|
||
(Analyze_Subprogram_Body_Contract): Code cleanup.
|
||
(Analyze_Subprogram_Contract): Do not save global references here.
|
||
(Save_Global_References_In_List): Removed.
|
||
* sem_ch7.adb (Analyze_Package_Body_Contract): Code cleanup.
|
||
(Analyze_Package_Body_Helper): Create a generic contract for
|
||
the template.
|
||
(Analyze_Package_Contract): Code cleanup.
|
||
* sem_ch10.adb Add with and use clauses for Sem_Ch12.
|
||
(Analyze_Compilation_Unit): Capture global references in a
|
||
generic subprogram declaration that acts as a compilation unit.
|
||
* sem_ch12.adb Add with and use clauses for Sem_Prag. Illustrate
|
||
the implementation of generic contracts. Alphabetize various
|
||
subprograms.
|
||
(Analyze_Generic_Package_Declaration):
|
||
Create a generic contract for the template.
|
||
(Analyze_Generic_Subprogram_Declaration): Create a generic
|
||
contract for the template.
|
||
(Analyze_Subprogram_Instantiation): Instantiate the contract of the
|
||
subprogram.
|
||
(Copy_Generic_Node): Link defining entities of the generic template
|
||
with the corresponding defining entities of the generic copy. Update
|
||
the processing of pragmas.
|
||
(Instantiate_Contract): Removed.
|
||
(Instantiate_Subprogram_Contract): New routine.
|
||
(Requires_Delayed_Save): New routine.
|
||
(Save_Global_References): Rename formal parameter N to Templ. Various
|
||
cleanups.
|
||
(Save_Global_References_In_Aspects): Moved from the spec.
|
||
(Save_Global_References_In_Contract): New routine.
|
||
(Save_References_In_Aggregate): New routine.
|
||
(Save_References_In_Char_Lit_Or_Op_Symbol): New routine.
|
||
(Save_References_In_Descendants): New routine.
|
||
(Save_References_In_Identifier): New routine.
|
||
(Save_References_In_Operator): New routine.
|
||
(Save_References_In_Pragma): New routine.
|
||
* sem_ch12.ads (Save_Global_References): Rename formal
|
||
parameter N to Templ. Update the comment on usage.
|
||
(Save_Global_References_In_Aspects): Moved to the body.
|
||
(Save_Global_References_In_Contract): New routine.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub):
|
||
New routine.
|
||
* sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub):
|
||
New routine.
|
||
* sem_prag.adb (Add_Item_To_Name_Buffer): Add support for
|
||
generic parameters.
|
||
(Analyze_Contract_Cases_In_Decl_Part): Code cleanup.
|
||
(Analyze_Depends_Global): New routine.
|
||
(Analyze_Depends_In_Decl_Part): Code cleanup.
|
||
(Analyze_Global_In_Decl_Part): Code cleanup.
|
||
(Analyze_Global_Item): Constants are now valid global items. Do
|
||
not perform state-related checks in an instance. Change the way
|
||
renamings are handled. (Analyze_Initial_Condition_In_Decl_Part):
|
||
Code cleanup.
|
||
(Analyze_Initializes_In_Decl_Part): Code cleanup.
|
||
(Analyze_Input_Output): The analysis of attribute 'Result in
|
||
the context of pragmas Depends or Refined_Depends now reuses
|
||
the existing attribute analysis machinery. Constants and
|
||
generic parameters are now valid dependency items. Do not
|
||
perform state-related checks in an instance. Change the way
|
||
renamings are handled. (Analyze_Pragma): Add a "characteristics"
|
||
section for pragmas Abstract_State, Contract_Cases, Depends,
|
||
Extensions_Visible, Global, Initial_Condition, Initializes,
|
||
Post, Post_Class, Postcondition, Pre, Pre_Class, Precondition,
|
||
Refined_Depends, Refined_Global, Refined_Post, Refined_State, Test_Case.
|
||
(Analyze_Pre_Post_Condition): Do not create a generic
|
||
template here.
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part): Code cleanup.
|
||
(Analyze_Refined_Depends_Global_Post): New routine.
|
||
(Analyze_Refined_Depends_In_Decl_Part): Code cleanup.
|
||
(Analyze_Refined_Global_In_Decl_Part): Code cleanup.
|
||
(Analyze_Refined_Pragma): Removed.
|
||
(Analyze_Refined_State_In_Decl_Part): Code cleanup.
|
||
(Analyze_Test_Case_In_Decl_Part): Code cleanup.
|
||
(Check_Dependency_Clause): Do not perform this check in an instance.
|
||
(Check_Function_Return): Add support for generic functions.
|
||
(Check_In_Out_States): Do not perform this check in an instance.
|
||
(Check_Input_States): Do not perform this check in an instance.
|
||
(Check_Mode_Restriction_In_Function): Add support for generic functions.
|
||
(Check_Output_States): Do not perform this check in an instance.
|
||
(Check_Postcondition_Use_In_Inlined_Subprogram): Rename
|
||
parameter Subp_Id to Spec_Id and update comment on usage.
|
||
(Check_Proof_In_States): Do not perform this check in an instance.
|
||
(Check_Refined_Global_Item): Add support for constants.
|
||
(Check_Refined_Global_List): Do not perform this check in an instance.
|
||
(Collect_Global_Items): Reimplemented.
|
||
(Collect_Subprogram_Inputs_Outputs): Add support for generic parameters.
|
||
(Create_Generic_Template): Removed.
|
||
(Find_Related_Package_Or_Body): Moved to spec.
|
||
(Find_Role): Add support for generic parameters and constants.
|
||
(Get_Argument): Moved to spec. Rename parameter Spec_Id to Context_Id.
|
||
(Match_Item): Add support for constants.
|
||
(Preanalyze_Test_Case_Arg): Reimplemented.
|
||
(Report_Extra_Clauses): Do not perform this check in an instance.
|
||
(Report_Extra_Constituents): Do not perform this check in an instance.
|
||
* sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
|
||
the comment on usage.
|
||
(Find_Related_Package_Or_Body): Moved from body.
|
||
(Get_Argument): Moved from body.
|
||
* sem_util.adb Add with and use clauses for Sem_Ch12.
|
||
(Corresponding_Spec_Of): Add support for packages and package bodies.
|
||
(Create_Generic_Contract): New routine.
|
||
(Is_Contract_Annotation): Reimplemented.
|
||
(Is_Generic_Declaration_Or_Body): New routine.
|
||
(Is_Package_Contract_Annotation): New routine.
|
||
(Is_Subprogram_Contract_Annotation): New routine.
|
||
* sem_util.ads (Corresponding_Spec_Of): Update the comment on usage.
|
||
(Create_Generic_Contract): New routine.
|
||
(Is_Generic_Declaration_Or_Body): New routine.
|
||
(Is_Package_Contract_Annotation): New routine.
|
||
(Is_Subprogram_Contract_Annotation): New routine.
|
||
* sinfo.adb (Is_Generic_Contract_Pragma): New routine.
|
||
(Set_Is_Generic_Contract_Pragma): New routine.
|
||
* sinfo.ads Add new attribute Is_Generic_Contract_Pragma along
|
||
with occurrences in nodes.
|
||
(Is_Generic_Contract_Pragma): New routine along with pragma Inline.
|
||
(Set_Is_Generic_Contract_Pragma): New routine along with pragma Inline.
|
||
* treepr.adb (Print_Entity_Info): Output fields 36 to 41.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-taster.ads: Minor comment fix: fix bad header, this is a
|
||
pure RM unit.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_intr.adb: (Check_Shift): Diagnose bad modulus value.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* gnat1drv.adb (Adjust_Global_Switches): Default to suppressing
|
||
Alignment_Checks on non-strict alignment machine.
|
||
* sem_ch13.adb (Validate_Address_Clauses): Don't give
|
||
compile-time alignment warnings if run time Alignment_Check
|
||
is suppressed.
|
||
|
||
2015-05-12 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* g-sercom.ads, g-sercom-linux.adb (GNAT.Serial_Communications.
|
||
Data_Rate): New literals B75, B110, B150, B300, B600.
|
||
|
||
2015-05-12 Doug Rupp <rupp@adacore.com>
|
||
|
||
* init.c (__gnat_init_float) [vxworks]: For e500v2,
|
||
do nothing and leave the responsibility to install the handler
|
||
and enable the exceptions to the BSP.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch9.adb, einfo.ads, exp_intr.adb: Minor reformatting.
|
||
* sem_disp.adb: Minor code reorganization (remove junk redundant
|
||
null statement).
|
||
* exp_unst.adb (Unnest_Subprogram.Uplev_Refs): Ignore uplevel
|
||
references to bounds of types coming from original type reference.
|
||
* checks.ads: Minor reformatting.
|
||
* checks.adb: Minor reformatting.
|
||
* sem_prag.adb (Analyze_Pragma, case Check): If in ignored
|
||
assertion, then make sure we do not drag in bignum stuff.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch9.adb (Collect_Interfaces): Initialize
|
||
Direct_Primitive_Operations for a tagged synchronized type,
|
||
so it can used in ASIS mode.
|
||
* sem_disp.adb (Check_Dispatching_Operation): If expansion is
|
||
disabled, attach subprogram to list of Direct_Primitive_Operations
|
||
of synchronized type itself, for ASIS use, because in this case
|
||
Corresponding_Record_Type is not built.
|
||
* einfo.ads: Indicate use of Direct_Primitive_Operations on
|
||
synchronized type.
|
||
|
||
2015-05-12 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* exp_pakd.adb: Make clearer the comment in exp_pakd.adb about
|
||
___XP suffixes.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch3.adb, sem_util.adb, sem_ch6.adb: Minor reformatting.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_unst.adb (Visit_Node): Deal with subprogram and package stubs.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_intr.adb (Expand_Dispatching_Constructor_Call): The
|
||
tag to be retrieved for the generated call is the first entry
|
||
in the dispatch table for the return type of the instantiated
|
||
constructor.
|
||
|
||
2015-05-12 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_ch7.adb, exp_ch7.ads, exp_intr.adb, exp_util.adb,
|
||
exp_util.ads: Update comments.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Add_Internal_Interface_Entities): Do no generate
|
||
freeze nodes for these in ASIS mode, because they lead to
|
||
elaoration order issues in gigi.
|
||
|
||
2015-05-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Expression_Function): Code
|
||
cleanup. Use Copy_Subprogram_Spec to create a proper spec.
|
||
(Analyze_Subprogram_Body_Helper): Code cleanup. Do not
|
||
prepare a stand alone body for inlining in GNATprove mode
|
||
when inside a generic. (Body_Has_Contract): Reimplemented.
|
||
(Build_Subprogram_Declaration): New routine.
|
||
* sem_ch10.adb (Analyze_Compilation_Unit): Capture global
|
||
references within generic bodies by loading them.
|
||
* sem_util.adb (Copy_Parameter_List): Code cleanup.
|
||
(Copy_Subprogram_Spec): New routine.
|
||
(Is_Contract_Annotation): New routine.
|
||
* sem_util.ads (Copy_Subprogram_Spec): New routine.
|
||
(Is_Contract_Annotation): New routine.
|
||
|
||
2015-05-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_attr.adb (Resolve_Attribute): Do not analyze the generated
|
||
body of an expression function when the prefix of attribute
|
||
'Access is the body.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Build_Derived_Enumeration_Type): The anonymous base
|
||
created for a derived enumeration type is not a first subtype,
|
||
even though it is defined through a full type declaration.
|
||
* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Do not process
|
||
aspects for the anonymous base type constructed for a derived
|
||
scalar type, because they will be set when the first subtype
|
||
is frozen.
|
||
(Inherit_Aspects_At_Freeze_Point): Fix typos on handling of
|
||
Default_Value and Default_Component_Value, that prevented the
|
||
proper inheritance of these aspects.
|
||
|
||
2015-05-12 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_ch6.adb, exp_unst.adb: Minor typo fixes.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch3.adb: Minor reformatting.
|
||
|
||
2015-05-12 Vincent Celier <celier@adacore.com>
|
||
|
||
* gnatcmd.adb: If we want to invoke gnatmake (gnatclean) with
|
||
-P, then check if gprbuild (gprclean) is available; if it is,
|
||
use gprbuild (gprclean) instead of gnatmake (gnatclean).
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* debug.adb: Add flag -gnatd.3 to output diagnostic info from
|
||
Exp_Unst.
|
||
* einfo.ad, einfo.adb: Reorganize (and remove most of) flags used by
|
||
Exp_Unst.
|
||
* exp_ch6.adb (Unest_Bodies): Table for delayed calls to
|
||
Unnest_Subprogram (Expand_N_Subprogram_Body): Add entry to table
|
||
for later call instead of calling Unnest_Subprogram directly
|
||
(Initialize): New procedure (Unnest_Subprograms): New procedure
|
||
* exp_ch6.ads (Add_Extra_Actual_To_Call): Move into proper
|
||
alpha order.
|
||
(Initialize): New procedure.
|
||
(Unnest_Subprograms): New procedure.
|
||
* exp_unst.adb (Unnest_Subprogram): Major rewrite, moving
|
||
all processing to this routine which is now called late
|
||
after instantiating bodies. Fully handles the case of generic
|
||
instantiations now.
|
||
* exp_unst.ads: Major rewrite, moving all processing to
|
||
Unnest_Subprogram.
|
||
* frontend.adb (Frontend): Add call to Exp_Ch6.Initialize.
|
||
(Frontend): Add call to Unnest_Subprograms.
|
||
* sem_ch8.adb (Find_Direct_Name): Back to old calling sequence
|
||
for Check_Nested_Access.
|
||
* sem_util.adb (Build_Default_Subtype): Minor reformatting
|
||
(Check_Nested_Access): Back to original VM-only form (we
|
||
now do all the processing for Unnest_Subprogram at the time
|
||
it is called.
|
||
(Denotes_Same_Object): Minor reformatting
|
||
(Note_Possible_Modification): Old calling sequence for
|
||
Check_Nested_Access.
|
||
* sem_util.ads (Check_Nested_Access): Back to original VM-only
|
||
form (we now do all the processing for Unnest_Subprogram at the
|
||
time it is called.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch3.adb, freeze.adb, sem_ch6.adb: Minor reformatting.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Object_Declaration): New function
|
||
Has_Delayed_Aspect, used to defer resolution of an aggregate
|
||
expression when the object declaration carries aspects Address
|
||
and/or Alignment.
|
||
* freeze.adb (Freeze_Object_Declaration): New subsidiary procedure
|
||
to Freeze_Entity. In addition to the previous processing steps
|
||
at the freeze point of an object, this procedure also handles
|
||
aggregates in object declarations, when the declaration carries
|
||
delayed aspects that require that the initialization of the
|
||
object be attached to its freeze actions.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Subprogram_Declaration): Following
|
||
AI12-0147, null procedures and expression functions are allowed
|
||
in protected bodies.
|
||
|
||
2015-05-12 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* i-cpoint.adb (Copy_Terminated_Array): Copy nothing if Length is 0.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Complete_Private_Subtype): Propagate
|
||
Has_Delayed_Aspects flag from private to full view, to ensure
|
||
that predicate functions are constructed.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Process_Formals): If a tagged formal is an
|
||
incomplete class-wide type, the subprogram must have a delayed
|
||
freeze even though the opertation is not a primitive of the
|
||
type. THis ensures that the backend can recover the full view
|
||
when elaborating the subprogram declaration.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_util.adb (Get_Current_Value_Condition): Nothing to be
|
||
done if an elsif part has been rewritten so that it is not part
|
||
of an enclosing if_statement.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_type.adb, sem_ch10.adb, freeze.adb, sem_ch6.adb, exp_disp.adb:
|
||
Minor reformatting.
|
||
|
||
2015-05-12 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_attr.adb (Size): Remove unnecessary check for types with
|
||
unknown discriminants. That was causing the compiler to build
|
||
a function call _size(T), where T is a type, not an object.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Extended_Primitive_Ops): Exclude overriding
|
||
primitive operations of a type extension declared in the package
|
||
body, to prevent duplicates in extended list.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Component_Declaration): If the component is
|
||
an unconstrained synchronized type with discriminants, create a
|
||
constrained default subtype for it, so that the enclosing record
|
||
can be given the proper size.
|
||
* sem_util.adb (Build_Default_Subtype): If the subtype is created
|
||
for a record discriminant, do not analyze the declarztion at
|
||
once because it is added to the freezing actions of the enclosing
|
||
record type.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_prag.adb (Expand_N_Pragma): Rewrite ignored pragma as
|
||
Null statements.
|
||
* namet.ads (Boolean3): Document this flag used for Ignore_Pragma.
|
||
* par-prag.adb (Prag): Implement Ignore_Pragma.
|
||
* sem_prag.adb: Implement Ignore_Pragma.
|
||
* snames.ads-tmpl: Add entries for pragma Ignore_Pragma.
|
||
|
||
2015-05-12 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch10.adb (Build_Shadow_Entity): Link the class-wide shadow
|
||
entity with its corresponding real entity.
|
||
(Decorate_Type): Unconditionally build the class-wide shadow entity of
|
||
tagged types.
|
||
* einfo.ads, einfo.adb (Has_Non_Limited_View): New synthesized
|
||
attribute.
|
||
(Non_Limited_View): Moved from field 17 to field 19 be available
|
||
in class-wide entities.
|
||
* exp_attr.adb (Access_Cases): Code cleanup.
|
||
* exp_disp.adb (Expand_Interface_Actuals): Ditto.
|
||
* exp_util.adb (Non_Limited_Designated_Type): Ditto.
|
||
* freeze.adb (Build_Renamed_Bdody): Ditto.
|
||
* sem_aux.adb (Available_View): Ditto.
|
||
* sem_ch4.adb (Analyze_Selected_Component): Ditto.
|
||
(Try_One_Prefix_Interpretation): Ditto.
|
||
* sem_ch5.adb (Analyze_Assignment): Ditto.
|
||
* sem_ch6.adb (Detect_And_Exchange): Ditto.
|
||
* sem_ch8.adb (Find_Expanded_Name): Ditto.
|
||
* sem_disp.adb (Check_Controlling_Type): Ditto.
|
||
* sem_res.adb (Resolve_Type_Conversion): Ditto.
|
||
(Full_Designated_Type): Ditto.
|
||
* sem_type.adb (Covers): Ditto.
|
||
* sem_util.adb: Fix typo in comment.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_unst.adb (Get_Real_Subp): New subprogram.
|
||
(Unnest_Subprogram): Use Get_Real_Subp.
|
||
(Uplev_Refs_For_One_Subp): Skip if no ARECnU entity.
|
||
(Uplev_Refs_For_One_Subp): Use actual subtype in unconstrained case.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-reatim.adb ("/"): Add explicit check for Time_Span_First / -1.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Extended_Primitive_Ops): New subprogram,
|
||
auxiliary to Try_Primitive_Operation to handle properly prefixed
|
||
calls where the operation is not a primitive of the type, but
|
||
is declared in the package body that is in the immediate scope
|
||
of the type.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_util.adb (Is_Variable): Allow X'Deref(Y) as a variable.
|
||
|
||
2015-05-12 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb (Find_Expanded_Name): Handle properly a fully
|
||
qualified name for an instance of a generic grand-child unit in
|
||
the body its parent.
|
||
|
||
2015-05-12 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_unst.adb (Upref_Name): New subprogram.
|
||
(Unnest_Subprogram): Use Upref_Name.
|
||
(Unnest_Subprogram): Use new Deref attribute.
|
||
* exp_unst.ads: Doc updates.
|
||
|
||
2015-05-12 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* adaint.c: Enable Large File Support in adaint so that __gnat_readdir
|
||
can access files on filesystems mounted from servers that use large
|
||
NFS file handles.
|
||
|
||
2015-05-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.c (gnat_write_global_declarations): Use type_decl
|
||
method instead of global_decl for TYPE_DECLs.
|
||
|
||
2015-04-27 Jim Wilson <jim.wilson@linaro.org>
|
||
|
||
* gcc-interface/Makefile-lan.in (ada.mostlyclean): Remove gnatbind
|
||
and gnat1.
|
||
|
||
2015-04-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gnatvsn.ads (Library_Version): Bump to 6.
|
||
|
||
2015-04-09 Iain Sandoe <iain@codesourcery.com>
|
||
|
||
* gcc-interface/Makefile.in (darwin, powerpc): Enable atomics.
|
||
|
||
2015-04-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not make
|
||
a function returning an unconstrained type 'const' for the middle-end.
|
||
|
||
* gcc-interface/trans.c (Pragma_to_gnu) <case Pragma_Warning>: Use
|
||
exact condition to detect Reason => "..." pattern.
|
||
|
||
2015-03-31 Tom de Vries <tom@codesourcery.com>
|
||
|
||
PR ada/65490
|
||
* terminals.c (child_setup_tty): Fix warning 'argument to sizeof in
|
||
bzero call is the same expression as the destination'.
|
||
|
||
2015-03-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Deref>: New case.
|
||
|
||
2015-03-24 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_ch3.adb: Minor typo fix (missing paren).
|
||
|
||
2015-03-24 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sinfo.ads: Update comment.
|
||
|
||
2015-03-24 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_attr.adb: Add entry for typ'Deref.
|
||
* sem_attr.adb (Deref): New GNAT attribute.
|
||
* sem_attr.ads: Add entry for new GNAT attribute Deref.
|
||
* snames.ads-tmpl: Add entries for new attribute Deref.
|
||
|
||
2015-03-24 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb (Rep_Item_Too_Early): allow pragma Convention
|
||
on generic type.
|
||
|
||
2015-03-24 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* inline.adb: Minor typo fix.
|
||
|
||
2015-03-24 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst,
|
||
doc/gnat_ugn/gnat_utility_programs.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/about_this_guide.rst
|
||
doc/gnat_rm/implementation_of_ada_2012_features.rst: Doc improvements.
|
||
* gnat_rm.texi, gnat_ugn.texi: Regenerate.
|
||
|
||
2015-03-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR bootstrap/65522
|
||
* adadecode.c (ada_demangle): Guard with IN_RTS instead of IN_GCC.
|
||
|
||
2015-03-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/65451
|
||
* gcc-interface/utils.c (gnat_pushdecl): Tidy up and improve comment.
|
||
Make sure to chain only main variants through TYPE_NEXT_PTR_TO.
|
||
|
||
* gcc-interface/trans.c (Attribute_to_gnu): Revert latest change.
|
||
|
||
2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.c (gnat_invariant_expr): Return null if the type
|
||
of the expression ends up being composite.
|
||
|
||
2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (is_from_limited_with_of_main): New predicate.
|
||
(gnat_to_gnu_entity) <E_Subprogram_Type>: Invoke it on return and
|
||
parameter types to detect circularities in ASIS mode.
|
||
* gcc-interface/trans.c (Attribute_to_gnu): Mention AI05-0151.
|
||
|
||
2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Abstract_State>: Do not
|
||
short-circuit the regular handling.
|
||
|
||
2015-03-13 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_unst.adb (Note_Uplevel_Reference): Eliminate duplicate
|
||
references.
|
||
(Actual_Ref): New function.
|
||
(AREC_String): Minor reformatting.
|
||
(Unnest_Subprogram): Use Actual_Ref.
|
||
* frontend.adb (Frontend): Turn off Unnest_Subprogram_Mode
|
||
before call to Instantiate_Bodies.
|
||
|
||
2015-03-13 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Profile): If the return type of a function
|
||
being frozen is an untagged limited view and the function is
|
||
abstract, mark the type as frozen because there is no later
|
||
point at which the profile of the subprogram will be elaborated.
|
||
|
||
2015-03-13 Robert Dewar <dewar@adacore.com>
|
||
|
||
* einfo.adb, einfo.ads, atree.adb, atree.ads, atree.h: Add seventh
|
||
component to entities. Add new fields Field36-41 and Node36-41.
|
||
|
||
2015-03-13 Claire Dross <dross@adacore.com>
|
||
|
||
* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Rewrite after review.
|
||
|
||
2015-03-13 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_util.adb (Is_Volatile_Reference): Compile time known
|
||
value is never considered to be a volatile reference.
|
||
|
||
2015-03-13 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Object_Contract): Suppress "constant
|
||
cannot be volatile" for internally generated object (such as
|
||
FIRST and LAST constants).
|
||
|
||
2015-03-13 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Validate_Access_Subprogram_Instance): If a
|
||
convention is specified for the formal parameter, verify that
|
||
the actual has the same convention.
|
||
* sem_prag.adb (Set_Convention_From_Pragma): Allow convention
|
||
pragma to be set on a generic formal type.
|
||
* sem_util.adb (Set_Convention): Ignore within an instance,
|
||
as it has already been verified in the generic unit.
|
||
|
||
2015-03-13 Claire Dross <dross@adacore.com>
|
||
|
||
* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not inline
|
||
subprograms with unconstrained record parameters containing
|
||
Itype declarations.
|
||
* sinfo.ads Document GNATprove assumption that type should match
|
||
in the AST.
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Contract):
|
||
Do not check for Refined_Depends and Refined_Globals contracts
|
||
as they are optional.
|
||
|
||
2015-03-13 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Instantiate_Type): For a floating-point type,
|
||
capture dimension info if any, because the generated subtype
|
||
declaration does not come from source and will not process dimensions.
|
||
* sem_dim,adb (Analyze_Dimension_Extension_Or_Record_Aggregate):
|
||
Do not analyze expressions with an initialization procedure
|
||
because aggregates will have been checked at the point of record
|
||
declaration.
|
||
|
||
2015-03-13 Robert Dewar <dewar@adacore.com>
|
||
|
||
* aspects.ads, aspects.adb: Add entries for aspect Unimplemented.
|
||
* einfo.ads, einfo.adb (Is_Unimplemented): New flag.
|
||
* sem_ch13.adb: Add dummy entry for aspect Unimplemented.
|
||
* snames.ads-tmpl: Add entry for Name_Unimplemented.
|
||
|
||
2015-03-13 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* style.adb (Missing_Overriding): Apply the
|
||
Comes_From_Source test to the Original_Node of the subprogram
|
||
node, to handle the case of a null procedure declaration that
|
||
has been rewritten as an empty procedure body.
|
||
|
||
2015-03-13 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_util.ads: Minor fix to comment.
|
||
* sem_ch3.adb (Constrain_Index): Correct pasto from previous
|
||
change.
|
||
|
||
2015-03-13 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_util.ads, exp_util.adb (Force_Evaluation): Add Related_Id and
|
||
Is_Low/High_Bound params.
|
||
* sem_ch3.adb (Constrain_Index): Use new Force_Evaluation calling
|
||
sequence to simplify generation of FIRST/LAST temps for bounds.
|
||
|
||
2015-03-12 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* gcc-interface/trans.c (Attribute_to_gnu) <Code_Address case>:
|
||
On targets where a function symbol designates a function descriptor,
|
||
fetch the function code address from the descriptor.
|
||
(USE_RUNTIME_DESCRIPTORS): Provide a default definition.
|
||
|
||
2015-03-04 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_warn.adb: Minor reformatting.
|
||
* init.c: Minor tweaks.
|
||
|
||
2015-03-04 Dmitriy Anisimko <anisimko@adacore.com>
|
||
|
||
* a-coinho-shared.adb: Fix clear of already empty holder.
|
||
|
||
2015-03-04 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_unst.adb (Check_Dynamic_Type): Ignore library level types.
|
||
(Check_Uplevel_Reference_To_Type): Ignore call inside generic.
|
||
(Note_Uplevel_Reference): Ignore call inside generic.
|
||
(Note_Uplevel_Reference): Fix check for no entity field.
|
||
(Unnest_Subprogram): Ignore call inside generic.
|
||
(Find_Current_Subprogram): Use Defining_Entity, not Defining_Unit_Name.
|
||
(Visit_Node): Ignore calls to Imported subprograms.
|
||
(Visit_Node): Fix problem in finding subprogram body in some cases.
|
||
(Add_Form_To_Spec): Use Defining_Entity, not Defining_Unit_Name.
|
||
|
||
2015-03-04 Robert Dewar <dewar@adacore.com>
|
||
|
||
* einfo.adb (Is_ARECnF_Entity): Removed.
|
||
(Last_Formal): Remove special handling of Is_ARECnF_Entity.
|
||
(Next_Formal): Remove special handling of Is_ARECnF_Entity.
|
||
(Next_Formal_With_Extras): Remove special handling of Is_ARECnF_Entity.
|
||
(Number_Entries): Minor reformatting.
|
||
* einfo.ads (Is_ARECnF_Entity): Removed.
|
||
* exp_unst.adb (Unnest_Subprogram): Remove setting of
|
||
Is_ARECnF_Entity.
|
||
(Add_Extra_Formal): Use normal Extra_Formal circuit.
|
||
* sprint.adb (Write_Param_Specs): Properly handle case where
|
||
there are no source formals, but we have at least one Extra_Formal
|
||
present.
|
||
|
||
2015-03-04 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Record_Aggregate,
|
||
Add_Discriminant_Values): If the value is a reference to the
|
||
current instance of an enclosing type, use its base type to check
|
||
against prefix of attribute reference, because the target type
|
||
may be otherwise constrained.
|
||
|
||
2015-03-04 Robert Dewar <dewar@adacore.com>
|
||
|
||
* atree.h: Add entries for Flag287-Flag309.
|
||
* einfo.adb: Add (unused) flags Flag287-Flag309.
|
||
|
||
2015-03-04 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Collect_Interfaces, Collect): When gathering
|
||
interfaces of ancestors, handle properly a subtype of a private
|
||
extension.
|
||
|
||
2015-03-04 Robert Dewar <dewar@adacore.com>
|
||
|
||
* einfo.adb (Is_ARECnF_Entity): New flag (ARECnF is an extra formal).
|
||
(Next_Formal): Don't return ARECnF formal.
|
||
(Last_Formal): Don't consider ARECnF formal.
|
||
(Next_Formal_With_Extras): Do consider ARECnF formal.
|
||
* einfo.ads (Is_ARECnF_Entity): New flag (ARECnF is an extra formal).
|
||
* exp_unst.adb (Create_Entities): Set Is_ARECnF_Entity flag.
|
||
|
||
2015-03-04 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Simple_Function_Return): When the returned
|
||
object is a class-wide interface object and we generate the
|
||
accessibility described in RM 6.5(8/3) then displace the pointer
|
||
to the object to reference the base of the object (to get access
|
||
to the TSD of the object).
|
||
|
||
2015-03-04 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Abstract_State): Use routine
|
||
Malformed_State_Error to issue general errors.
|
||
(Analyze_Pragma): Diagnose a syntax error related to a state
|
||
declaration with a simple option.
|
||
(Malformed_State_Error): New routine.
|
||
|
||
2015-03-04 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-strsup.adb (Super_Slice): Deal with super flat case.
|
||
* einfo.ads: Minor reformatting.
|
||
* s-imgdec.adb (Set_Decimal_Digits): Add comment about possibly
|
||
redundant code.
|
||
|
||
2015-03-04 Claire Dross <dross@adacore.com>
|
||
|
||
* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
|
||
a-cforse.ads, a-cofove.ads: Use Default_Initial_Condition on formal
|
||
containers.
|
||
|
||
2015-03-04 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_warn.adb (Check_References): When checking for an unused
|
||
in-out parameter of a class- wide type, use its type to determine
|
||
whether it is private, in order to avoid a spurious warning when
|
||
subprogram spec and body are in different units.
|
||
|
||
2015-03-04 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_attr.adb: Improve warning messages.
|
||
|
||
2015-03-04 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_N_Subprogram_Body): Avoid trying to unnest
|
||
generic subprograms.
|
||
* exp_unst.adb (Check_Dynamic_Type): Handle record types properly
|
||
(Note_Uplevel_Reference): Ignore uplevel references to non-types
|
||
(Get_Level): Consider only subprograms, not blocks.
|
||
(Visit_Node): Set proper condition for generating ARECnF entity.
|
||
Ignore indirect calls. Ignore calls to subprograms
|
||
outside our nest.
|
||
(Unnest_Subprogram): Minor changes in dealing with ARECnF entity.
|
||
(Add_Form_To_Spec): Properly set Last_Entity field.
|
||
(Unnest_Subprogram): Set current subprogram scope for analyze calls.
|
||
Handle case of no uplevel refs in outer subprogram
|
||
Don't mark uplevel entities as aliased.
|
||
Don't deal with calls with no ARECnF requirement.
|
||
|
||
2015-03-04 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-valrea.adb (Scan_Real): Remove redundant tests from scaling loops.
|
||
* s-imgdec.adb (Set_Decimal_Digits): Remove redundant Max
|
||
operation in computing LZ.
|
||
* sem_attr.adb: Minor typo fix
|
||
|
||
2015-03-04 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_ch7.adb: Minor reformatting.
|
||
* exp_unst.adb (Build_Tables): Fix minor glitch for no separate
|
||
spec case.
|
||
* erroutc.adb (Delete_Msg): add missing decrement of info msg counter.
|
||
|
||
2015-03-04 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch6.adb (Build_Pragma_Check_Equivalent): Suppress
|
||
references to formal parameters subject to pragma Unreferenced.
|
||
(Suppress_Reference): New routine.
|
||
* sem_attr.adb (Analyze_Attribute): Reimplement the analysis
|
||
of attribute 'Old. Attributes 'Old and 'Result now share
|
||
common processing.
|
||
(Analyze_Old_Result_Attribute): New routine.
|
||
(Check_Placement_In_Check): Removed.
|
||
(Check_Placement_In_Contract_Cases): Removed.
|
||
(Check_Placement_In_Test_Case): Removed.
|
||
(Check_Use_In_Contract_Cases): Removed.
|
||
(Check_Use_In_Test_Case): Removed.
|
||
(In_Refined_Post): Removed.
|
||
(Is_Within): Removed.
|
||
* sem_warn.adb (Check_Low_Bound_Tested): Code cleanup.
|
||
(Check_Low_Bound_Tested_For): New routine.
|
||
|
||
2015-03-04 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_N_Object_Declaration):
|
||
Generate a runtime check to test the expression of pragma
|
||
Default_Initial_Condition when the object is default initialized.
|
||
|
||
2015-03-02 Robert Dewar <dewar@adacore.com>
|
||
|
||
* scng.adb (Scan): Ignore illegal character in relaxed
|
||
semantics mode.
|
||
|
||
2015-03-02 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Analyze_Set_Membership); Retain Overloaded flag
|
||
on left operand, so it can be properly resolved with type of
|
||
alternatives of right operand.
|
||
* sem_res.adb (Resolve_Set_Membership): Handle properly an
|
||
overloaded left-hand side when the alternatives on the right
|
||
hand side are literals of some universal type. Use first
|
||
non-overloaded alternative to find expected type.
|
||
|
||
2015-03-02 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch7.adb (Make_Set_Finalize_Address_Call): Use underlying
|
||
type to retrieve designated type, because the purported access
|
||
type may be a partial (private) view, when it is declared in
|
||
the private part of a nested package, and finalization actions
|
||
are generated when completing compilation of enclosing unit.
|
||
|
||
2015-03-02 Robert Dewar <dewar@adacore.com>
|
||
|
||
* back_end.adb (Call_Back_End): Remove previous patch,
|
||
the back end now gets to see the result of -gnatd.1
|
||
(Unnest_Subprogram_Mode) processing.
|
||
* elists.ads, elists.adb (List_Length): New function.
|
||
* exp_unst.ads, exp_unst.adb: Major changes, first complete version.
|
||
* sem_util.adb (Check_Nested_Access): Handle formals in
|
||
Unnest_Subprogram_Mode.
|
||
(Adjust_Named_Associations): Minor reformatting.
|
||
* sprint.adb (Sprint_Node_Actual): Fix failure to print aliased
|
||
for parameters.
|
||
|
||
2015-03-02 Robert Dewar <dewar@adacore.com>
|
||
|
||
* atree.ads, atree.adb (Uint24): New function
|
||
(Set_Uint24): New procedure.
|
||
* atree.h (Uint24): New macro for field access.
|
||
* back_end.adb (Call_Back_End): For now, don't call back end
|
||
if unnesting subprogs.
|
||
* einfo.adb (Activation_Record_Component): New field
|
||
(Subps_Index): New field.
|
||
* einfo.ads (Activation_Record_Component): New field
|
||
(Subps_Index): New field Minor reordering of comments into alpha order.
|
||
* exp_unst.ads, exp_unst.adb: Continued development.
|
||
|
||
2015-03-02 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_disp.ads: Minor reformatting.
|
||
|
||
2015-03-02 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb (Chain_Use_Clause): Do not chain use clause from
|
||
ancestor to list of use clauses active in descendant unit if we
|
||
are within the private part of an intervening parent, to prevent
|
||
circularities in use clause list.
|
||
|
||
2015-03-02 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_ch9.adb (Build_Corresponding_Record): Propagate type
|
||
invariants to the corresponding record type.
|
||
* exp_disp.ad[sb] (Set_DT_Position_Value): New subprogram
|
||
which sets the value of the DTC_Entity associated with a given
|
||
primitive of a tagged type and propagates the value to the
|
||
wrapped subprogram.
|
||
(Set_DTC_Entity_Value): Propagate the DTC
|
||
value to the wrapped entity.
|
||
* sem_ch13.adb (Build_Invariant_Procedure): Append the code
|
||
associated with invariants of progenitors.
|
||
* sem_ch3.adb (Build_Derived_Record_Type): Inherit type invariants
|
||
of parents and progenitors.
|
||
(Process_Full_View): Check hidden inheritance of class-wide type
|
||
invariants.
|
||
* sem_ch7.adb (Analyze_Package_Specification): Do not generate
|
||
the invariant procedure for interface types; build the invariant
|
||
procedure for tagged types inheriting invariants from their
|
||
progenitors.
|
||
* sem_prag.adb (Pragma_Invariant) Allow invariants in interface
|
||
types but do not build their invariant procedure since their
|
||
invariants will be propagated to the invariant procedure of
|
||
types covering the interface.
|
||
* exp_ch6.adb, exp_disp.adb, sem_ch3.adb, sem_ch7.adb,
|
||
sem_ch8.adb, sem_disp.adb: Replace all calls to Set_DT_Position
|
||
by calls to Set_DT_Position_Value.
|
||
|
||
2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute): Factor out heavily indented
|
||
code in Denote_Same_Function. Do not analyze attribute 'Result
|
||
when it is inside procedure _Postconditions. Remove a misplaced
|
||
warning diagnostic. Code cleanup.
|
||
(Denote_Same_Function): New routine.
|
||
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Code
|
||
cleanup. Warn on pre/postconditions on an inlined subprogram.
|
||
(Analyze_Pragma, Refined_Post case): Warn on pre/postconditions on
|
||
an inlined subprogram.
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part): Code cleanup. Warn on
|
||
pre/post condition on an inlined subprogram.
|
||
(Analyze_Test_Case_In_Decl_Part): Code cleanup. Warn on
|
||
pre/postconditions on an inlined subprogram.
|
||
(Check_Postcondition_Use_In_Inlined_Subprogram): New routine.
|
||
|
||
2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Ensure_Aggregate_Form):
|
||
Ensure that the name denoted by the Chars of a pragma argument
|
||
association has the proper Sloc when converted into an aggregate.
|
||
|
||
2015-03-02 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Private_Overriding): Capture
|
||
Incomplete_Or_Partial_View in a constant. This is cleaner and
|
||
more efficient.
|
||
|
||
2015-03-02 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* einfo.ads, exp_unst.ads: Minor reformatting.
|
||
|
||
2015-03-02 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* a-strsea.adb (Find_Token): Ensure that the range of iteration
|
||
does not perform any improper character access. This prevents
|
||
erroneous access in the unusual case of an empty string target
|
||
and a From parameter less than Source'First.
|
||
|
||
2015-03-02 Robert Dewar <dewar@adacore.com>
|
||
|
||
* elists.adb (List_Length): Fix incorrect result.
|
||
|
||
2015-03-02 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Private_Overriding): Refine the legality
|
||
checks here. It used to check that the function is merely
|
||
overriding SOMEthing. Now it checks that the function is
|
||
overriding a corresponding public operation. This is a correction
|
||
to the implementation of the rule in RM-3.9.3(10).
|
||
|
||
2015-03-02 Robert Dewar <dewar@adacore.com>
|
||
|
||
* debug.adb: Document new debug flag -gnatd.1.
|
||
* einfo.ads, einfo.adb (Has_Nested_Subprogram): New flag.
|
||
(Has_Uplevel_Reference): New flag (Is_Static_Type): New flag.
|
||
(Uplevel_Reference_Noted):New flag (Uplevel_References): New field.
|
||
* elists.ads elists.adb (List_Length): New function.
|
||
* exp_ch6.adb (Expand_N_Subprogram_Body): Call Unnest_Subprogram
|
||
when appropriate (Process_Preconditions): Minor code
|
||
reorganization and reformatting
|
||
* exp_unst.ads, exp_unst.adb: New files.
|
||
* gnat1drv.adb (Adjust_Global_Switches): Set
|
||
Unnest_Subprogram_Mode if -gnatd.1
|
||
* namet.ads, namet.adb (Name_Find_Str): New version of Name_Find with
|
||
string argument.
|
||
* opt.ads (Unnest_Subprogram_Mode): New flag.
|
||
* par-ch3.adb (P_Identifier_Declarations): Fixes to -gnatd.2 handling.
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set
|
||
Has_Nested_Subprogram flag.
|
||
* sem_ch8.adb (Find_Direct_Name): New calling sequence for
|
||
Check_Nested_Access.
|
||
(Find_Selected_Component): Minor comment addition.
|
||
* sem_util.adb (Check_Nested_Access): New version for use with Exp_Unst.
|
||
(Note_Possible_Modification): New calling sequence for
|
||
Check_Nested_Access.
|
||
* sem_util.ads (Check_Nested_Access): New version for use with Exp_Unst.
|
||
* gcc-interface/Make-lang.in (GNAT1_OBJS): Add exp_unst.o
|
||
|
||
2015-03-02 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* gcc-interface/utils.c (gnat_pushdecl): For non-artificial pointer
|
||
types, preserve the original type and create copies just like the C
|
||
front-end does. For artificial ones, do not define a name for
|
||
the original type.
|
||
(create_type_decl): When gnat_pushdecl made the input type the
|
||
original type for the new declaration, do not define a stub
|
||
declaration for it.
|
||
* gcc-interface/utils2.c (build_binary_op): Accept two different
|
||
pointer types when they point to the same type.
|
||
|
||
2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_util.adb (Possible_Bit_Aligned_Component): Do not process
|
||
an unanalyzed node.
|
||
* sem_util.adb (Kill_Current_Values): Do not invalidate and
|
||
de-null a constant.
|
||
|
||
2015-03-02 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch3.adb, exp_attr.adb, checks.adb, exp_aggr.adb: Minor
|
||
reformatting.
|
||
|
||
2015-03-02 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb: extend use of Available_Subtype.
|
||
|
||
2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Duplication_Error): Remove the special handling
|
||
of 'Class or _Class in the context of pre/postconditions.
|
||
(Process_Class_Wide_Condition): Remove the special handling of
|
||
'Class or _Class in the context of pre/postconditions.
|
||
* sem_util.adb (Original_Aspect_Pragma_Name): Names Pre_Class
|
||
and Post_Class no longer need to be converted to _Pre and _Post.
|
||
* sem_util.ads (Original_Aspect_Pragma_Name): Update the comment
|
||
on usage.
|
||
|
||
2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* exp_ch6.adb (Process_Preconditions): Modify the
|
||
mechanism that find the first source declaration to correct exit
|
||
the loop once it has been found.
|
||
|
||
2015-03-02 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* a-strsea.adb: Minor typo fix.
|
||
|
||
2015-03-02 Bob Duff <duff@adacore.com>
|
||
|
||
* einfo.ads: Minor comment fixes.
|
||
|
||
2015-03-02 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* einfo.adb, checks.adb: Minor reformatting and typo fixes.
|
||
|
||
2015-03-02 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_aggr.adb (Get_Assoc_Expr): If the Default_Component_Value
|
||
is defined for the array type, use it instead of a Default_Value
|
||
specified for the component type itself.
|
||
|
||
2015-03-02 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* exp_attr.adb (Expand_N_Attribute_Reference, case Input): When
|
||
expanding a 'Input attribute reference for a class-wide type,
|
||
do not generate a separate object declaration for the controlling
|
||
tag dummy object; instead, generate the expression inline in the
|
||
dispatching call. Otherwise, the declaration (which involves a
|
||
call to String'Input, returning a dynamically sized value on the
|
||
secondary stack) will be expanded outside of proper secondary
|
||
stack mark/release operations, and will thus cause a secondary
|
||
stack leak.
|
||
|
||
2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* checks.adb (Add_Validity_Check): Change the names of all
|
||
formal parameters to better illustrate their purpose. Update
|
||
the subprogram documentation. Update all occurrences of the
|
||
formal parameters. Generate a pre/postcondition pragma by
|
||
calling Build_Pre_Post_Condition.
|
||
(Build_PPC_Pragma): Removed.
|
||
(Build_Pre_Post_Condition): New routine.
|
||
* einfo.adb Node8 is no longer used as Postcondition_Proc. Node14
|
||
is now used as Postconditions_Proc. Flag240 is now renamed to
|
||
Has_Expanded_Contract. (First_Formal): The routine can now
|
||
operate on generic subprograms.
|
||
(First_Formal_With_Extras): The routine can now operate on generic
|
||
subprograms.
|
||
(Has_Expanded_Contract): New routine.
|
||
(Has_Postconditions): Removed.
|
||
(Postcondition_Proc): Removed.
|
||
(Postconditions_Proc): New routine.
|
||
(Set_Has_Expanded_Contract): New routine.
|
||
(Set_Has_Postconditions): Removed.
|
||
(Set_Postcondition_Proc): Removed.
|
||
(Set_Postconditions_Proc): New routine.
|
||
(Write_Entity_Flags): Remove the output of Has_Postconditions. Add
|
||
the output of Has_Expanded_Contract.
|
||
(Write_Field8_Name): Remove the output of Postcondition_Proc.
|
||
(Write_Field14_Name): Add the output of Postconditions_Proc.
|
||
* einfo.ads New attributes Has_Expanded_Contract and
|
||
Postconditions_Proc along with occurrences in entities.
|
||
Remove attributes Has_Postconditions and Postcondition_Proc
|
||
along with occurrences in entities.
|
||
(Has_Expanded_Contract): New routine along with pragma Inline.
|
||
(Has_Postconditions): Removed along with pragma Inline.
|
||
(Postcondition_Proc): Removed along with pragma Inline.
|
||
(Postconditions_Proc): New routine along with pragma Inline.
|
||
(Set_Has_Expanded_Contract): New routine along with pragma Inline.
|
||
(Set_Has_Postconditions): Removed along with pragma Inline.
|
||
(Set_Postcondition_Proc): Removed along with pragma Inline.
|
||
(Set_Postconditions_Proc): New routine along with pragma Inline.
|
||
* exp_ch6.adb (Add_Return): Code cleanup. Update the
|
||
generation of the call to the _Postconditions routine of
|
||
the procedure. (Expand_Non_Function_Return): Reformat the
|
||
comment on usage. Code cleanup. Update the generation of
|
||
the call to the _Postconditions routine of the procedure or
|
||
entry [family].
|
||
(Expand_Simple_Function_Return): Update the
|
||
generation of the _Postconditions routine of the function.
|
||
(Expand_Subprogram_Contract): Reimplemented.
|
||
* exp_ch6.ads (Expand_Subprogram_Contract): Update the parameter
|
||
profile along the comment on usage.
|
||
* exp_ch9.adb (Build_PPC_Wrapper): Code cleanup.
|
||
(Expand_N_Task_Type_Declaration): Generate pre/postconditions
|
||
wrapper when the entry [family] has a contract with
|
||
pre/postconditions.
|
||
* exp_prag.adb (Expand_Attributes_In_Consequence): New routine.
|
||
(Expand_Contract_Cases): This routine and its subsidiaries now
|
||
analyze all generated code.
|
||
(Expand_Old_In_Consequence): Removed.
|
||
* sem_attr.adb Add with and use clause for Sem_Prag.
|
||
(Analyze_Attribute): Reimplment the analysis of attribute 'Result.
|
||
(Check_Use_In_Test_Case): Use routine Test_Case_Arg to obtain
|
||
"Ensures".
|
||
* sem_ch3.adb (Analyze_Declarations): Analyze the contract of
|
||
a generic subprogram.
|
||
(Analyze_Object_Declaration): Do not create a contract node.
|
||
(Derive_Subprogram): Do not create a contract node.
|
||
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Do
|
||
not create a contract node.
|
||
(Analyze_Completion_Contract): New routine.
|
||
(Analyze_Function_Return): Alphabetize.
|
||
(Analyze_Generic_Subprogram_Body): Alphabetize. Do not create a
|
||
contract node. Do not copy pre/postconditions to the original
|
||
generic template.
|
||
(Analyze_Null_Procedure): Do not create a contract node.
|
||
(Analyze_Subprogram_Body_Contract): Reimplemented.
|
||
(Analyze_Subprogram_Body_Helper): Do not mark the enclosing scope
|
||
as having postconditions. Do not create a contract node. Analyze
|
||
the subprogram body contract of a body that acts as a compilation
|
||
unit. Expand the subprogram contract after the declarations have
|
||
been analyzed.
|
||
(Analyze_Subprogram_Contract): Reimplemented.
|
||
(Analyze_Subprogram_Specification): Do not create a contract node.
|
||
(List_Inherited_Pre_Post_Aspects): Code cleanup.
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Update the
|
||
comment on usage.
|
||
(Analyze_Subprogram_Contract): Update the
|
||
parameter profile and the comment on usage.
|
||
* sem_ch7.adb (Analyze_Package_Body_Helper): Do not create a
|
||
contract node.
|
||
(Analyze_Package_Declaration): Do not create a
|
||
contract node.
|
||
(Is_Subp_Or_Const_Ref): Ensure that the prefix has an entity.
|
||
* sem_ch8.adb (Analyze_Subprogram_Renaming): Do not create a
|
||
contract node.
|
||
* sem_ch9.adb (Analyze_Entry_Declaration): Do not create a
|
||
contract node.
|
||
* sem_ch10.adb (Analyze_Compilation_Unit): Move local variables to
|
||
their proper section and alphabetize them. Analyze the contract of
|
||
a [generic] subprogram after all Pragmas_After have been analyzed.
|
||
(Analyze_Subprogram_Body_Stub_Contract): Alphabetize.
|
||
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Do not
|
||
create a contract node.
|
||
(Analyze_Generic_Subprogram_Declaration):
|
||
Alphabetize local variables. Do not create a contract
|
||
node. Do not generate aspects out of pragmas for ASIS.
|
||
(Analyze_Subprogram_Instantiation): Instantiate
|
||
the contract of the subprogram. Do not create a
|
||
contract node. (Instantiate_Contract): New routine.
|
||
(Instantiate_Subprogram_Body): Alphabetize local variables.
|
||
(Save_Global_References_In_Aspects): New routine.
|
||
(Save_References): Do not save the global references found within
|
||
the aspects of a generic subprogram.
|
||
* sem_ch12.ads (Save_Global_References_In_Aspects): New routine.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Do not use
|
||
Original_Node for establishing linkages.
|
||
(Insert_Pragma): Insertion in a subprogram body takes precedence over
|
||
the case where the subprogram body is also a compilation unit.
|
||
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Use
|
||
Get_Argument to obtain the proper expression. Install the generic
|
||
formals when the related context is a generic subprogram.
|
||
(Analyze_Depends_In_Decl_Part): Use Get_Argument to obtain
|
||
the proper expression. Use Corresponding_Spec_Of to obtain
|
||
the spec. Install the generic formal when the related context
|
||
is a generic subprogram.
|
||
(Analyze_Global_In_Decl_Part): Use Get_Argument to obtain the proper
|
||
expression. Use Corresponding_Spec_Of to obtain the spec. Install the
|
||
generic formal when the related context is a generic subprogram.
|
||
(Analyze_Initial_Condition_In_Decl_Part): Use Get_Argument
|
||
to obtain the proper expression. Remove the call to
|
||
Check_SPARK_Aspect_For_ASIS as the analysis is now done
|
||
automatically.
|
||
(Analyze_Pragma): Update all occurrences
|
||
to Original_Aspect_Name. Pragmas Contract_Cases, Depends,
|
||
Extensions_Visible, Global, Postcondition, Precondition and
|
||
Test_Case now carry generic templates when the related context
|
||
is a generic subprogram. The same pragmas are no longer
|
||
forcefully fully analyzed when the context is a subprogram
|
||
that acts as a compilation unit. Pragmas Abstract_State,
|
||
Initial_Condition, Initializes and Refined_State have been clean
|
||
up. Pragmas Post, Post_Class, Postcondition, Pre, Pre_Class
|
||
and Precondition now use the same routine for analysis. Pragma
|
||
Refined_Post does not need to check the use of 'Result or
|
||
the lack of a post-state in its expression. Reimplement the
|
||
analysis of pragma Test_Case.
|
||
(Analyze_Pre_Post_Condition): New routine.
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part):
|
||
Reimplemented.
|
||
(Analyze_Refined_Depends_In_Decl_Part): Use Get_Argument to obtain the
|
||
proper expression.
|
||
(Analyze_Refined_Global_In_Decl_Part): Use Get_Argument to obtain
|
||
the proper expression.
|
||
(Analyze_Test_Case_In_Decl_Part): Reimplemented.
|
||
(Check_Pre_Post): Removed.
|
||
(Check_Precondition_Postcondition): Removed.
|
||
(Check_SPARK_Aspect_For_ASIS): Removed.
|
||
(Check_Test_Case): Removed.
|
||
(Collect_Subprogram_Inputs_Outputs): Use Get_Argument
|
||
to obtain the proper expression. Use Corresponding_Spec_Of to
|
||
find the proper spec.
|
||
(Create_Generic_Template): New routine.
|
||
(Duplication_Error): New routine.
|
||
(Expression_Function_Error): New routine.
|
||
(Find_Related_Subprogram_Or_Body): Moved to the spec
|
||
of Sem_Prag. Emit precise error messages. Account for cases of
|
||
rewritten expression functions, generic instantiations, handled
|
||
sequence of statements and pragmas from aspects.
|
||
(Get_Argument): New routine.
|
||
(Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed.
|
||
(Preanalyze_CTC_Args): Removed.
|
||
(Process_Class_Wide_Condition): New routine.
|
||
* sem_prag.ads (Analyze_Test_Case_In_Decl_Part): Update
|
||
the parameter profile along with the comment on usage.
|
||
(Find_Related_Subprogram_Or_Body): Moved from the body of Sem_Prag.
|
||
(Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed.
|
||
(Test_Case_Arg): New routine.
|
||
* sem_util.adb Add with and use clauses for Sem_Ch6.
|
||
(Add_Contract_Item): This routine now creates a contract
|
||
node the first time an item is added. Remove the duplicate
|
||
aspect/pragma checks.
|
||
(Check_Result_And_Post_State): Reimplemented.
|
||
(Corresponding_Spec_Of): New routine.
|
||
(Get_Ensures_From_CTC_Pragma): Removed.
|
||
(Get_Requires_From_CTC_Pragma): Removed.
|
||
(Has_Significant_Contract): New routine.
|
||
(Inherit_Subprogram_Contract): Inherit only if the source
|
||
has a contract.
|
||
(Install_Generic_Formals): New routine.
|
||
(Original_Aspect_Name): Removed.
|
||
(Original_Aspect_Pragma_Name): New routine.
|
||
* sem_util.ads (Check_Result_And_Post_State): Reimplemented.
|
||
(Corresponding_Spec_Of): New routine.
|
||
(Get_Ensures_From_CTC_Pragma): Removed.
|
||
(Get_Requires_From_CTC_Pragma): Removed.
|
||
(Has_Significant_Contract): New routine.
|
||
(Install_Generic_Formals): New routine.
|
||
(Original_Aspect_Name): Removed.
|
||
(Original_Aspect_Pragma_Name): New routine.
|
||
* sem_warn.adb Add with and use clauses for Sem_Prag.
|
||
(Within_Postcondition): Use Test_Case_Arg to extract "Ensures".
|
||
|
||
2015-03-02 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb (Available_Subtype): Optimization in
|
||
Find_Selected_Component: when safe, use existing subtype of
|
||
array component, possibly discriminant-dependent, rather than
|
||
creating new subtype declaration for it. In this fashion different
|
||
occurrences of the component have the same subtype, rather than
|
||
just equivalent ones. Simplifies value tracing in GNATProve.
|
||
|
||
2015-03-01 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
PR ada/65259
|
||
* doc/gnat_ugn/gnat_project_manager.rst,
|
||
doc/gnat_ugn/platform_specific_information.rst: Remove reference to
|
||
image, too troublesome with texi format.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
PR libgomp/64625
|
||
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8): Remove.
|
||
(DEF_FUNCTION_TYPE_VAR_12): Likewise.
|
||
(DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
|
||
|
||
2015-02-23 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8): Fix number of
|
||
arguments parameter.
|
||
(DEF_FUNCTION_TYPE_VAR_12): Likewise.
|
||
|
||
2015-02-22 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* doc/Makefile: postprocess texinfo files to update @dircategory
|
||
and update texi files under gcc/ada.
|
||
* gnat_ugn.texi, gnat_rm.texi: Regenerated.
|
||
|
||
2015-02-22 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* doc/gnat_ugn/project-manager-figure.png,
|
||
doc/gnat_ugn/rtlibrary-structure.png: New.
|
||
|
||
2015-02-22 Tom de Vries <tom@codesourcery.com>
|
||
|
||
PR ada/65100
|
||
* gnat-style.texi (@subsection Loop Statements): Replace @noindent by
|
||
@item, and fix warning '@itemize has text but no @item'.
|
||
|
||
2015-02-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma, case Obsolescent): Pragma
|
||
legally applies to an abstract subprogram declaration.
|
||
* freeze.adb: Minor comment addition.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* errout.ads: Document replacement of Name_uPre/Post/Type_Invariant.
|
||
* erroutc.adb (Set_Msg_Str): Replace _xxx.
|
||
(Pre/Post/Type_Invariant) by xxx'Class.
|
||
* erroutc.ads (Set_Msg_Str): Replace _xxx.
|
||
(Pre/Post/Type_Invariant) by xxx'Class.
|
||
* sem_prag.adb (Fix_Error): Remove special casing of
|
||
Name_uType_Invariant.
|
||
(Analyze_Pre_Post_Condition_In_Decl_Part): Remove special casing of
|
||
Name_uPre and Name_uPost in aspect case (done in Errout now).
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* g-alveop.adb: Minor style fixes.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* freeze.adb (Warn_Overlay): Guard against blow up with address
|
||
clause.
|
||
|
||
2015-02-20 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_attr.adb (May_Be_External_Call): Remove this. There is no need
|
||
for the compiler to guess whether the call is internal or external --
|
||
it is always external.
|
||
(Expand_Access_To_Protected_Op): For P'Access, where P
|
||
is a protected subprogram, always create a pointer to the
|
||
External_Subprogram.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-dispat.adb, a-stcoed.ads: Minor reformatting.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch13.adb (Build_Discrete_Static_Predicate): Allow static
|
||
predicate for non-static subtype.
|
||
(Build_Predicate_Functions): Do not assume subtype associated with a
|
||
static predicate must be static.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* errout.adb (Set_Msg_Node): Better handling of internal names
|
||
(Set_Msg_Node): Kill message when we cannot eliminate internal name.
|
||
* errout.ads: Document additional case of message deletion.
|
||
* namet.adb (Is_Internal_Name): Refined to consider wide
|
||
strings in brackets notation and character literals not to be
|
||
internal names.
|
||
* sem_ch8.adb (Find_Selected_Component): Give additional error
|
||
when selector name is a subprogram whose first parameter has
|
||
the same type as the prefix, but that type is untagged.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* g-allein.ads, g-alveop.adb, g-alveop.ads, opt.ads: Minor reformatting
|
||
|
||
2015-02-20 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* opt.ads (GNAT_Mode_Config): New variable.
|
||
* opt.adb (Set_Opt_Config_Switches): Consider GNAT_Mode_Config
|
||
to set Assertions_Enabled.
|
||
* switch-c.adb (Scan_Front_End_Switches): Set GNAT_Mode_Config
|
||
for -gnatg.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Add an additional
|
||
comment regarding the handling of unterminated fixed-point
|
||
constants.
|
||
* s-valuns.ads (Scan_Raw_Unsigned): Add comments
|
||
corresponding to those previously added for
|
||
System.Val_LLU.Scan_Raw_Long_Long_Unsigned.
|
||
|
||
2015-02-20 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* g-allein.ads, g-alveop.ads, g-alveop.adb: Code clean ups.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_prag.adb: Minor comment clarification.
|
||
|
||
2015-02-20 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* g-allein.ads (vec_ctf, vec_vcsfx, vec_vcfux): Remove.
|
||
* g-alleve.ads, g-alleva.adb (vcfux): Likewise.
|
||
* g-alveop.ads (vec_vcfsx, vec_vcfux): Just rename the ll versions.
|
||
(vec_ctf): Now renamings as well.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* switch-c.adb, bindgen.adb: Minor reformatting.
|
||
|
||
2015-02-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma, case Type_Invariant):
|
||
Invariant'class is allowed on an abstract type.
|
||
|
||
2015-02-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Access_Definition): If the access definition is
|
||
for a protected component and defines an access to protected
|
||
subprogram, do not create an itype reference for it because a
|
||
full type declaration will be built in order to generate the
|
||
proper equivalent type.
|
||
(Analyze_Subtype_Declaration): Add information of incomplete
|
||
subtypes, for Ada 2012 extended uses of incomplete types.
|
||
|
||
2015-02-20 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_res.adb: Minor reformatting.
|
||
|
||
2015-02-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* switch-c.adb (Scan_Front_End_Switches): When comparing runtime
|
||
path name for several switches --RTS, use the normalized path
|
||
names.
|
||
|
||
2015-02-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* bindgen.adb: Minor reformatting and code reorganization.
|
||
|
||
2015-02-20 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* a-stcoed.ads: Add spec for this package (Unimplemented_Unit).
|
||
* impunit.adb (Non_Imp_File_Names_12): Mark unit a-stcoed.ads as
|
||
defined by Ada 2012.
|
||
|
||
2015-02-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* sysdep.c, expect.c, s-oscons-tmplt.c, gsocket.h, adaint.c: Remove
|
||
obsolete references to RTX, nucleus, VMS.
|
||
|
||
2015-02-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_prag.adb (Fix_Error): For an illegal Type_Invariant'Class
|
||
aspect, use name that mentions Class explicitly, rather than
|
||
compiler-internal name.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* debug.adb: Add documentation for -gnatd.2 (allow statements
|
||
in decl sequences).
|
||
* par-ch3.adb (P_Identifier_Declarations): Handle
|
||
statement appearing where declaration expected more cleanly.
|
||
(Statement_When_Declaration_Expected): Implement debug flag
|
||
-gnatd.2.
|
||
|
||
2015-02-20 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* a-dinopr.ads: Add spec for this package (Unimplemented_Unit).
|
||
* a-dispat.ads (Yield): Include procedure added in Ada 2012.
|
||
* a-dispat.adb (Yield): Implement procedure added in Ada 2012.
|
||
* impunit.adb (Non_Imp_File_Names_05): Mark unit a-dinopr.ads as
|
||
defined by Ada 2005.
|
||
* snames.ads-tmpl (Name_Non_Preemptive_FIFO_Within_Priorities):
|
||
This is the correct name for the dispatching policy (FIFO was
|
||
missing).
|
||
|
||
2015-02-20 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Type_Conversion): If the type of the
|
||
operand is the limited-view of a class-wide type then recover
|
||
the class-wide type of the non-limited view.
|
||
|
||
2015-02-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gcc-interface/Makefile.in: Remove references to nucleus.
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Procedure): Set
|
||
extern_flag to true for Inline_Always subprograms with
|
||
Intrinsic convention.
|
||
|
||
2015-02-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_prag.ads: Minor typo in comment.
|
||
|
||
2015-02-20 Pascal Obry <obry@adacore.com>
|
||
|
||
* s-osprim-mingw.adb: Fix Get_Base_Time parameter mode.
|
||
|
||
2015-02-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* makeutl.adb (Get_Directories.Add_Dir): Add a directory only
|
||
if it exists.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_eval.ads: Minor reformatting.
|
||
|
||
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Size_Known): Do not set the packed size for
|
||
independent type or component.
|
||
(Freeze_Array_Type): Check for Independent[_Components] with packing
|
||
or explicit component size clause.
|
||
* gnat1drv.adb (Post_Compilation_Validation_Checks): Do the validation
|
||
of independence pragmas only for non-GCC back-ends.
|
||
* sem_ch13.adb (Initialize): Likewise for the initialization.
|
||
* sem_prag.adb (Record_Independence_Check): New procedure to record an
|
||
independence check in the table.
|
||
(Analyze_Pragma): Use it throughout instead of doing it manually.
|
||
* gcc-interface/decl.c (gnat_to_gnu_field): Add support for
|
||
independent type or component.
|
||
|
||
2015-02-20 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* adaint.c (__gnat_readdir): For Solaris, use 64 bit variants of
|
||
struct direct and readdir. This is required for NFS filesystems
|
||
mounted from servers that use 64-bit cookies.
|
||
|
||
2015-02-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Analyze_Subprogram_Instantiaion): New subprogram
|
||
Build_Subprogram_Renaming, to create renaming of subprogram
|
||
instance in the the declaration of the wrapper package rather
|
||
than in its body, so that it is available for analysis of aspects
|
||
propagated from generic to instantiation.
|
||
(Check_Mismatch): An actual for a formal package that is an
|
||
incomplete type matches a formal type that is incomplete.
|
||
(Instantiate_Package_Body): Move code that builds subprogram
|
||
renaming to Analyze_Subprogram_Instantiation.
|
||
(Instantiate_Type): The generated subtype is a limited view if
|
||
the actual is a limited view.
|
||
(Load_Parent_Of_Generic): Retrieve instance declaration from
|
||
its new position within wrapper package.
|
||
|
||
2015-02-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-parame-vxworks.adb, s-os_lib.ads: Update comments.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-osinte-vxworks.ads (To_Timespec): Add comment about the
|
||
issue of negative arguments.
|
||
|
||
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gnat1drv.adb: Minor consistency fix.
|
||
|
||
2015-02-20 Pascal Obry <obry@adacore.com>
|
||
|
||
* s-osprim-mingw.adb (Get_Base_Time): Properly release lock in all
|
||
paths.
|
||
|
||
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* inline.adb (Expand_Inlined_Call): Skip again calls to subprogram
|
||
renamings.
|
||
* exp_ch6.adb (Expand_Call): Use back-end inlining
|
||
instead of expansion for simple subprogram renamings.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_util.adb: Minor reformatting.
|
||
|
||
2015-02-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* switch-c.adb (Scan_Front_End_Switches): Do not fail when --RTS=
|
||
is specified several times with different values that indicates
|
||
the same runtime directory.
|
||
|
||
2015-02-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_attr.adb (Check_Not_Incomplete_Type): Clean up code to
|
||
handle properly illegal uses of attributes on prefixes on an
|
||
incomplete type, both when the type of the prefix is locally
|
||
incomplete, and when it is a limited view of a type whose
|
||
non-limited view is not available.
|
||
(Analyze_Attribute): Add calls to Check_Not_Incomplete_Type for
|
||
'Address and others.
|
||
|
||
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch6.adb: Fix minor typo in comment.
|
||
|
||
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sinfo.ads: Add comment.
|
||
|
||
2015-02-20 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* opt.ads: Replace Opt.Suppress_All_Inlining by two separate
|
||
flags controlling the actual FE inlining out of pragma Inline
|
||
and pragma Inline_Always.
|
||
* adabkend.adb (Scan_Compiler_Arguments): Set both flags to True
|
||
on -fno-inline, which disables all inlining in compilers with
|
||
an Ada back-end and without back-end inlining support.
|
||
* back_end.adb (Scan_Back_End_Switches): Set the Inline related
|
||
flag to True on -fno-inline and leave Inline_Always alone for
|
||
gcc back-ends.
|
||
* back_end.ads (Scan_Compiler_Arguments): Adjust spec wrt the
|
||
names of the Opt flags it sets.
|
||
* gnat1drv.adb (Adjust_Global_Switches): Remove test on
|
||
Opt.Suppress_All_Inlining in the Back_End_Inlining computation.
|
||
* sem_prag.adb (Make_Inline): Remove early return conditioned
|
||
on Opt.Suppress_All_Inlining.
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the flags to
|
||
disable the calls to Build_Body_To_Inline otherwise triggered
|
||
by pragma Inline or Inline_Always. This will prevent actual
|
||
front-end inlining of the subprogram on calls.
|
||
|
||
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb (Default_Initialize_Object): Call Add_Inlined_Body on the
|
||
Abort_Undefer_Direct function.
|
||
* exp_ch5.adb (Expand_N_Assignment_Statement): Likewise.
|
||
* exp_intr.adb (Expand_Unc_Deallocation): Likewise.
|
||
* exp_prag.adb (Expand_Pragma_Abort_Defer): Likewise.
|
||
* exp_ch4.adb (Expand_N_Selected_Component): Adjust call to
|
||
Add_Inlined_Body.
|
||
* exp_ch6.adb (Expand_Call): Adjust calls to Add_Inlined_Body.
|
||
Remove call to Register_Backend_Call and move code resetting
|
||
Needs_Debug_Info on inlined subprograms to...
|
||
* inline.ads (Add_Inlined_Body): Add N parameter.
|
||
(Register_Backend_Call): Delete.
|
||
* inline.adb (Add_Inlined_Body): ...here and simplify.
|
||
Register the call with Backend_Calls directly.
|
||
(Register_Backend_Call): Delete.
|
||
* s-stalib.ads (Abort_Undefer_Direct): Restore pragma Inline.
|
||
|
||
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* s-stalib.ads: Fix typo.
|
||
|
||
2015-02-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch3.adb (Default_Initialize_Object): If the object has a
|
||
delayed freeze, the actions associated with default initialization
|
||
must be part of the freeze actions, rather that being inserted
|
||
directly after the object declaration.
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* lib-load.adb: Minor comment update.
|
||
|
||
2015-02-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-proc.adb (Process_Case_Construction): When there are
|
||
incomplete withed projects and the case variable is unknown,
|
||
skip the case construction.
|
||
|
||
2015-02-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Actuals): Add caller-side invariant checks
|
||
when an actual is a view conversion, either because the call is
|
||
to an inherited operation, or because the actual is an explicit
|
||
type conversion to an ancestor type. Fixes ACATS 4.0D: C732001
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* einfo.ads: Minor comment updates Fix missing pragma Inline
|
||
for Set_Partial_View_Has_Unknown_Discr.
|
||
* einfo.adb (Write_Entity_Flags): Add missing entry for
|
||
Partial_View_Has_Unknown_Discr.
|
||
* sem_ch3.adb: Minor reformatting.
|
||
|
||
2015-02-20 Vincent Celier <celier@adacore.com>
|
||
|
||
* opt.ads: Minor cleanup: remove mention of gprmake.
|
||
* s-stalib.ads (Abort_Undefer_Direct): Do not inline.
|
||
* s-tataat.adb: Do not call System.Tasking.Self but directly
|
||
System.Task_Primitives.Operations.Self.
|
||
|
||
2015-02-20 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat_rm.texi, gnat_ugn.texi: Now automatically generated from
|
||
sphinx in the doc directory.
|
||
* doc: New directory containing sphinx versions of gnat_rm and gnat_ugn
|
||
|
||
2015-02-20 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_res.adb: Minor reformatting.
|
||
* exp_ch9.adb (Build_Protected_Spec): Copy Aliased setting when
|
||
building spec.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Exclude Boolean
|
||
aspects from circuitry setting delay required to false if the
|
||
argument is an integer literal.
|
||
|
||
2015-02-20 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* einfo.ads. einfo.adb (Partial_View_Has_Unknown_Discr): New flag
|
||
on type entities, to enforce AI12-0133: default initialization
|
||
of types whose partial view has unknown discriminants does not
|
||
get an invariant check, because clients of the unit can never
|
||
declare objects of such types.
|
||
* sem_ch3.adb (Find_Type_Name); Set new flag
|
||
Partial_View_Has_Unknown_Discr when needed.
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): Use flag to suppress
|
||
generation of invariant call on default-initialized object.
|
||
|
||
2015-02-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_param): Do not strip the padding
|
||
if the parameter either is passed by reference or if the alignment
|
||
would be lowered.
|
||
|
||
2015-02-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (is_cplusplus_method): Use Is_Primitive flag to
|
||
detect primitive operations of tagged and untagged types.
|
||
|
||
2015-02-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not bother about alias
|
||
sets in presence of derivation for subprogram types.
|
||
|
||
2015-02-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.c (begin_subprog_body): Assert that the body is
|
||
present in the same context as the declaration.
|
||
|
||
2015-02-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/64340
|
||
* gcc-interface/trans.c (gigi): Recreate optimization_default_node
|
||
and optimization_current_node after tweaking global_options.
|
||
|
||
2015-02-05 Robert Dewar <dewar@adacore.com>
|
||
|
||
* prj-proc.adb, sem_aux.adb, exp_ch9.adb, errout.adb, prj-dect.adb,
|
||
prj-nmsc.adb: Minor reformatting.
|
||
|
||
2015-02-05 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_type.adb (Covers): In ASIS_Mode the Corresponding_Record
|
||
of a protected type may not be available, so to check conformance
|
||
with an interface type, examine the interface list in the type
|
||
declaration directly.
|
||
(Write_Overloads): Improve information for indirect calls,
|
||
for debugger use.
|
||
|
||
2015-02-05 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch3.adb (Make_Tag_Assignment): Do not perform this
|
||
expansion activity in ASIS mode.
|
||
|
||
2015-02-05 Javier Miranda <miranda@adacore.com>
|
||
|
||
* errout.adb (Error_Msg_PT): Add missing error.
|
||
* sem_ch6.adb (Check_Synchronized_Overriding): Check the missing
|
||
RM rule. Code cleanup.
|
||
* exp_ch9.adb (Build_Wrapper_Spec): Propagate "constant" in
|
||
anonymous access types. Found working on the tests. Code cleanup.
|
||
|
||
2015-02-05 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-dect.adb (Parse_Attribute_Declaration): Continue scanning
|
||
when there are incomplete withs.
|
||
* prj-nmsc.adb (Process_Naming): Do not try to get the value
|
||
of an element when it is nil.
|
||
(Check_Naming): Do not check a nil suffix for illegality
|
||
* prj-proc.adb (Expression): Do not process an empty term.
|
||
* prj-strt.adb (Attribute_Reference): If attribute cannot be
|
||
found, parse a possible index to avoid cascading errors.
|
||
|
||
2015-02-05 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_aux.adb (Is_Derived_Type): A subprogram_type generated
|
||
for an access_to_subprogram declaration is not a derived type.
|
||
|
||
2015-02-05 Robert Dewar <dewar@adacore.com>
|
||
|
||
* errout.adb (Error_Msg_Internal): For non-serious error set
|
||
Fatal_Error to Ignored.
|
||
* lib-load.adb (Load_Unit): Minor comment updates.
|
||
* sem_ch10.adb (Analyze_With_Clause): Propagate Fatal_Error
|
||
setting from with'ed unit to with'ing unit.
|
||
* sem_prag.adb (Analyze_Pragma, case Warnings): Document handling
|
||
of ambiguity.
|
||
|
||
2015-02-05 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_prag.adb, par-prag.adb: Minor code clean up.
|
||
|
||
2015-02-05 Yannick Moy <moy@adacore.com>
|
||
|
||
* par-prag.adb (Pragma_Warnings): Update for extended form
|
||
of pragma Warnings. The "one" argument case may now have 2 or
|
||
3 arguments.
|
||
* sem_prag.adb (Analyze_Pragma/Pragma_Warnings): Update for
|
||
extended form of pragma Warnings. Pragma with tool name is either
|
||
rewritten as null or as an equivalent form without tool name,
|
||
before reanalysis.
|
||
* snames.ads-tmpl (Name_Gnatprove): New name.
|
||
|
||
2015-02-05 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch13.adb (Add_Invariants): Don't assume invariant is
|
||
standard Boolean.
|
||
* sem_prag.adb (Analyze_Pragma, case Check): Don't assume
|
||
condition is standard Boolean, it can be non-standard derived
|
||
Boolean.
|
||
|
||
2015-02-05 Robert Dewar <dewar@adacore.com>
|
||
|
||
* checks.adb (Enable_Range_Check): Disconnect attempted
|
||
optimization for the case of range check for subscript of
|
||
unconstrained array.
|
||
|
||
2015-02-05 Robert Dewar <dewar@adacore.com>
|
||
|
||
* par-ch13.adb (With_Present): New function
|
||
(Aspect_Specifications_Present): Handle WHEN in place of WITH
|
||
(Get_Aspect_Specifications): Comment update.
|
||
* par.adb: Comment updates.
|
||
|
||
2015-02-05 Robert Dewar <dewar@adacore.com>
|
||
|
||
* errout.adb (Handle_Serious_Error): New setting of Fatal_Error.
|
||
* frontend.adb (Frontend): New setting of Fatal_Error.
|
||
* lib-load.adb (Create_Dummy_Package_Unit): New setting of
|
||
Fatal_Error.
|
||
(Load_Main_Source): New setting of Fatal_Error
|
||
(Load_Unit): New setting of Fatal_Error.
|
||
* lib-writ.adb (Add_Preprocessing_Dependency): New setting of
|
||
Fatal_Error.
|
||
(Ensure_System_Dependency): New setting of Fatal_Error.
|
||
* lib.adb (Fatal_Error): New setting of Fatal_Error
|
||
(Set_Fatal_Error): New setting of Fatal_Error.
|
||
* lib.ads: New definition of Fatal_Error and associated routines.
|
||
* par-ch10.adb (P_Compilation_Unit): New setting of Fatal_Error.
|
||
* par-load.adb (Load): New setting of Fatal_Error.
|
||
* rtsfind.adb (Load_RTU): New setting of Fatal_Error.
|
||
* sem_ch10.adb (Analyze_Compilation_Unit): New setting of
|
||
Fatal_Error.
|
||
(Optional_Subunit): New setting of Fatal_Error.
|
||
(Analyze_Proper_Body): New setting of Fatal_Error.
|
||
(Load_Needed_Body): New setting of Fatal_Error.
|
||
|
||
2015-02-05 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Call): If the function being called has
|
||
out parameters do not check for language version if the function
|
||
comes from a predefined unit, as those are always compiled in
|
||
Ada 2012 mode.
|
||
|
||
2015-02-05 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Process_Full_View): Verify that the full view
|
||
of a type extension must carry an explicit limited keyword if
|
||
the partial view does (RM 7.3 (10.1)).
|
||
|
||
2015-02-05 Robert Dewar <dewar@adacore.com>
|
||
|
||
* g-rannum.adb, g-rannum.ads, s-rannum.adb, s-rannum.ads,
|
||
sem_warn.ads: Minor reformatting.
|
||
* exp_ch13.adb (Expand_N_Freeze_Entity): Add guard for aspect
|
||
deleted by -gnatI.
|
||
* sem_prag.adb (Analyze_Pragma, case Type_Invariant): Give
|
||
error for abstract type.
|
||
|
||
2015-02-05 Yannick Moy <moy@adacore.com>
|
||
|
||
* opt.ads (Warn_On_Suspicious_Contract): Update comment
|
||
describing use.
|
||
* sem_attr.adb (Analyze_Attribute/Attribute_Update): Warn on
|
||
suspicious uses of 'Update.
|
||
* sem_warn.adb, sem_warn.ads (Warn_On_Suspicious_Update): New
|
||
function issues warning on suspicious uses of 'Update.
|
||
* g-rannum.adb, g-rannum.ads, s-rannum.adb, s-rannum.ads: Mark
|
||
package spec and body as SPARK_Mode Off.
|
||
|
||
2015-02-05 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_prag.adb (Set_Elab_Unit_Name): New name for Set_Unit_Name
|
||
(Analyze_Pragma): Change Set_Unit_Name to Set_Elab_Unit_Name
|
||
(Set_Elab_Unit_Name): Generate reference for Elaborate[_All]
|
||
* sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
|
||
for exported entity.
|
||
|
||
2015-02-05 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_prag.adb (Check_Pragma_Conformance): Add
|
||
local variable Arg. Ensure that all errors are associated with
|
||
the pragma if it appears without an argument. Add comments on
|
||
various cases.
|
||
|
||
2015-02-05 Robert Dewar <dewar@adacore.com>
|
||
|
||
* lib-xref.adb: Minor reformatting.
|
||
|
||
2015-02-05 Tristan Gingold <gingold@adacore.com>
|
||
|
||
PR ada/64349
|
||
* env.c: Fix thinko: handle Darwin case before default one.
|
||
|
||
2015-01-30 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-assert.adb: Minor reformatting.
|
||
* sem_ch13.adb: Minor comment clarification.
|
||
* types.ads: Minor comment update.
|
||
* sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Avoid blow up
|
||
when we have a predicate that is nothing but an inherited dynamic
|
||
predicate.
|
||
|
||
2015-01-30 Jerome Guitton <guitton@adacore.com>
|
||
|
||
* gcc-interface/Makefile.in (x86-vxworks): Update GCC_SPEC_FILES to
|
||
include cert link spec.
|
||
|
||
2015-01-30 Robert Dewar <dewar@adacore.com>
|
||
|
||
* einfo.ads: Minor comment fix.
|
||
* freeze.adb (Freeze_Profile): Add test for suspicious import
|
||
in pure unit.
|
||
* sem_prag.adb (Process_Import_Or_Interface): Test for suspicious
|
||
use in Pure unit is now moved to Freeze (to properly catch
|
||
Pure_Function exemption).
|
||
|
||
2015-01-30 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_res.ads: Minor comment fix.
|
||
* sem_type.adb: sem_type.adb (Remove_Conversions): Need to
|
||
check both operands of an operator.
|
||
|
||
2015-01-30 Yannick Moy <moy@adacore.com>
|
||
|
||
* a-assert.ads, a-assert.adb: Mark package spec in SPARK. Set assertion
|
||
policy for Pre to Ignore.
|
||
(Assert): Add precondition.
|
||
|
||
2015-01-30 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_prag.adb (Process_Import_Or_Interface): Warn if used in
|
||
Pure unit.
|
||
* s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Clarify
|
||
documentation for some special cases of invalid attempts at
|
||
based integers.
|
||
|
||
2015-01-30 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* errout.ads: Minor reformatting.
|
||
|
||
2015-01-30 Yannick Moy <moy@adacore.com>
|
||
|
||
* inline.adb (Process_Formals): Use the sloc of
|
||
the inlined node instead of the sloc of the actual parameter,
|
||
when replacing formal parameters by the actual one.
|
||
|
||
2015-01-30 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* g-expect.adb (Get_Command_Output): Use infinite timeout when
|
||
calling Expect.
|
||
|
||
2015-01-30 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Analyze_Associations): If an in-parameter is
|
||
defaulted in an instantiation, add an entry in the list of actuals
|
||
to indicate the default value of the formal (as is already done
|
||
for defaulted subprograms).
|
||
|
||
2015-01-30 Javier Miranda <miranda@adacore.com>
|
||
|
||
* errout.adb (Error_Msg_PT): Minor error phrasing update.
|
||
|
||
2015-01-30 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_warn.adb (Warn_On_Known_Condition): Improve error message
|
||
for object case.
|
||
|
||
2015-01-30 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* exp_dbug.adb (Get_Encoded_Name): When
|
||
-fgnat-encodings=minimal, do not generate names for biased types.
|
||
|
||
2015-01-30 Tristan Gingold <gingold@adacore.com>
|
||
|
||
PR ada/64349
|
||
* env.c: Move vxworks and darwin includes out of #ifdef IN_RTS.
|
||
|
||
2015-01-30 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* freeze.adb: Minor reformatting.
|
||
|
||
2015-01-30 Javier Miranda <miranda@adacore.com>
|
||
|
||
* errout.ads (Error_Msg_PT): Replace Node_Id by Entity_Id and
|
||
improve its documentation.
|
||
* errout.adb (Error_Msg_PT): Improve the error message.
|
||
* sem_ch6.adb (Check_Conformance): Update call to Error_Msg_PT.
|
||
(Check_Synchronized_Overriding): Update call to Error_Msg_PT.
|
||
* sem_ch3.adb (Check_Abstract_Overriding): Code cleanup.
|
||
|
||
2015-01-30 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_warn.adb (Warn_On_Known_Condition): Do special casing of
|
||
message for False case.
|
||
|
||
2015-01-30 Doug Rupp <rupp@adacore.com>
|
||
|
||
* s-vxwext-kernel.ads (Task_Cont): Remove imported subprogram body.
|
||
* s-vxwext-kernel.adb (Task_Cont): New subpprogram body specialized for
|
||
kernel.
|
||
|
||
2015-01-30 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_attr.adb (Declared_Within_Generic_Unit):
|
||
New function to test whether an entity is declared within the
|
||
declarative region of a given generic unit.
|
||
(Resolve_Attribute): For checking legality of subprogram'Access within
|
||
a generic unit, call new Boolean function Declared_Within_Generic_Unit
|
||
instead of simply comparing the results of Enclosing_Generic_Unit on
|
||
the prefix and access type. Correct minor comment typos.
|
||
|
||
2015-01-30 Robert Dewar <dewar@adacore.com>
|
||
|
||
* freeze.adb, exp_util.ads: Update comment.
|
||
* exp_util.adb, exp_ch3.adb: Minor code reorganization and reformatting.
|
||
* sem_util.adb: Minor: fix typo.
|
||
|
||
2015-01-30 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute): Ensure that
|
||
the check concerning Refined_Post takes precedence over the
|
||
other cases.
|
||
|
||
2015-01-30 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_prag.adb: Minor typo fixes and reformatting.
|
||
|
||
2015-01-30 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_attr.adb: Code clean up.
|
||
|
||
2015-01-30 Robert Dewar <dewar@adacore.com>
|
||
|
||
* ali.adb (Scan_ALI): Set Serious_Errors flag in Unit record.
|
||
* ali.ads (Unit_Record): Add new field Serious_Errors.
|
||
* lib-writ.adb (Write_Unit_Information): Set SE (serious errors)
|
||
attribute in U line.
|
||
* lib-writ.ads: New attribute SE (serious erors) in unit line.
|
||
|
||
2015-01-30 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* einfo.adb Update the usage of attributes Entry_Bodies_Array,
|
||
Lit_Indexes, Scale_Value, Storage_Size_Variable,
|
||
String_Literal_Low_Bound along associated routines and
|
||
Write_FieldX_Name.
|
||
(Pending_Access_Types): New routine.
|
||
(Set_Pending_Access_Types): New routine.
|
||
(Write_Field15_Name): Add an entry for Pending_Access_Types.
|
||
* einfo.ads Add new attribute Pending_Access_Types along
|
||
with usage in nodes. Update the usage of attributes
|
||
Entry_Bodies_Array, Lit_Indexes, Scale_Value,
|
||
Storage_Size_Variable, String_Literal_Low_Bound.
|
||
(Pending_Access_Types): New routine along with pragma Inline.
|
||
(Set_Pending_Access_Types): New routine along with pragma Inline.
|
||
* exp_ch3.adb (Expand_Freeze_Array_Type): Add new local variable
|
||
Ins_Node. Determine the insertion node for anonynous access type
|
||
that acts as a component type of an array. Update the call to
|
||
Build_Finalization_Master.
|
||
(Expand_Freeze_Record_Type): Update
|
||
the calls to Build_Finalization_Master.
|
||
(Freeze_Type): Remove
|
||
local variable RACW_Seen. Factor out the code that deals with
|
||
remote access-to-class-wide types. Create a finalization master
|
||
when the designated type contains a private component. Fully
|
||
initialize all pending access types.
|
||
(Process_RACW_Types): New routine.
|
||
(Process_Pending_Access_Types): New routine.
|
||
* exp_ch4.adb (Expand_Allocator_Expression): Allocation no longer
|
||
needs to set primitive Finalize_Address.
|
||
(Expand_N_Allocator): Allocation no longer sets primitive
|
||
Finalize_Address.
|
||
* exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
|
||
Update the call to Build_Finalization_Master.
|
||
(Make_Build_In_Place_Call_In_Allocator): Allocation no longer
|
||
needs to set primitive Finalize_Address.
|
||
* exp_ch7.adb (Add_Pending_Access_Type): New routine.
|
||
(Build_Finalization_Master): New parameter profile. Associate
|
||
primitive Finalize_Address with the finalization master if the
|
||
designated type has been frozen, otherwise treat the access
|
||
type as pending. Simplify the insertion of the master and
|
||
related initialization code.
|
||
(Make_Finalize_Address_Body): Allow Finalize_Address for class-wide
|
||
abstract types.
|
||
(Make_Set_Finalize_Address_Call): Remove forlam parameter Typ.
|
||
Simplify the implementation.
|
||
* exp_ch7.ads (Build_Finalization_Master): New parameter profile
|
||
along with comment on usage.
|
||
(Make_Set_Finalize_Address_Call): Remove formal parameter Typ. Update
|
||
the comment on usage.
|
||
* exp_util.adb (Build_Allocate_Deallocate_Proc): Use routine
|
||
Finalize_Address to retrieve the primitive.
|
||
(Finalize_Address): New routine.
|
||
(Find_Finalize_Address): Removed.
|
||
* exp_util.ads (Finalize_Address): New routine.
|
||
* freeze.adb (Freeze_All): Remove the generation of finalization
|
||
masters.
|
||
* sem_ch3.adb (Analyze_Full_Type_Declaration): Propagate any
|
||
pending access types from the partial to the full view.
|
||
|
||
2015-01-30 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_disp.adb: Minor reformatting.
|
||
* sem_disp.ads: Documentation update.
|
||
|
||
2015-01-30 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_disp.adb (Is_Dynamically_Tagged): when applied to an entity
|
||
or a function call, return True if type is class-wide.
|
||
* sem_res.adb (Resolve_Case_Expression, Resolve_If_Expression);
|
||
Apply RM 4.5.7 (17/3): all or none of the dependent expression
|
||
of a conditional expression must be dynamically tagged.
|
||
|
||
2015-01-30 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Function_Return): In an extended return
|
||
statement, apply accessibility check to result object when there
|
||
is no initializing expression (Ada 2012 RM 6.5 (5.4/3))
|
||
|
||
2015-01-30 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch4.adb (Analyze_If_Expression): Allow for non-standard
|
||
Boolean for case where ELSE is omitted.
|
||
* sem_res.adb: Minor reformatting.
|
||
|
||
2015-01-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
Fix build under cygwin/64.
|
||
* adaint.h: Add check for __CYGWIN__.
|
||
* mingw32.h: Prevent windows.h from including x86intrin.h in GCC.
|
||
|
||
2015-01-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
PR ada/64640
|
||
* adaint.c: Handle __CYGWIN__ like __MINGW32__ here.
|
||
* mingw32.h: Don't include <tchar.h> under cygwin.
|
||
(_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Set to _O_TEXT if not yet defined.
|
||
|
||
2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8)
|
||
(DEF_FUNCTION_TYPE_VAR_12): New macros.
|
||
|
||
2015-01-09 Michael Collison <michael.collison@linaro.org>
|
||
|
||
* gcc-interface/cuintp.c: Include hash-set.h, machmode.h,
|
||
vec.h, double-int.h, input.h, alias.h, symtab.h,
|
||
fold-const.h, wide-int.h, and inchash.h due to
|
||
flattening of tree.h.
|
||
* gcc-interface/decl.c: Ditto.
|
||
* gcc-interface/misc.c: Ditto.
|
||
* gcc-interface/targtyps.c: Include hash-set.h, machmode.h,
|
||
vec.h, double-int.h, input.h, alias.h, symtab.h, options.h,
|
||
fold-const.h, wide-int.h, and inchash.h due to
|
||
flattening of tree.h.
|
||
* gcc-interface/trans.c: Include hash-set.h, machmode.h,
|
||
vec.h, double-int.h, input.h, alias.h, symtab.h, real.h,
|
||
fold-const.h, wide-int.h, inchash.h due to
|
||
flattening of tree.h.
|
||
* gcc-interface/utils.c: Include hash-set.h, machmode.h,
|
||
vec.h, double-int.h, input.h, alias.h, symtab.h,
|
||
fold-const.h, wide-int.h, and inchash.h due to
|
||
flattening of tree.h.
|
||
* gcc-interface/utils2.c: Ditto.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_warn.adb (Check_One_Unit): Don't give unused entities
|
||
warning for a package which is used as a generic parameter.
|
||
|
||
2015-01-07 Bob Duff <duff@adacore.com>
|
||
|
||
* usage.adb (Usage): Correct documentation of
|
||
-gnatw.f switches.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-fileio.adb: Minor reformatting.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Instantiate_Object): If formal is an anonymous
|
||
access to subprogram, replace its formals with new entities when
|
||
building the object declaration, both if actual is present and
|
||
when it is defaulted.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Assignment): If left-hand side is a view
|
||
conversion and type of expression has invariant, apply invariant
|
||
check on expression.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Create_Constrained_Components): A call to
|
||
Gather_Components may detect an error if an inherited discriminant
|
||
that controls a variant is non-static.
|
||
* sem_aggr.adb (Resolve_Record_Aggregate, Step 5): The call to
|
||
Gather_Components may report an error if an inherited discriminant
|
||
in a variant in non-static.
|
||
* sem_util.adb (Gather_Components): If a non-static discriminant
|
||
is inherited do not report error here, but let caller handle it.
|
||
(Find_Actual): Small optimization.
|
||
|
||
2015-01-07 Bob Duff <duff@adacore.com>
|
||
|
||
* usage.adb (Usage): Document -gnatw.f switch.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb: Code clean up and minor reformatting.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Type_Conversion): Add guard for
|
||
Raise_Accessibility_Error call.
|
||
* s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Add documentation
|
||
on handling of invalid digits in based constants.
|
||
* s-fatgen.ads: Minor reformatting.
|
||
* sem_attr.adb (Analyze_Attribute, case Unrestricted_Access):
|
||
Avoid noting bogus modification for Valid test.
|
||
* snames.ads-tmpl (Name_Attr_Long_Float): New Name.
|
||
* einfo.ads: Minor reformatting.
|
||
* sem_warn.adb: Minor comment clarification.
|
||
* sem_ch12.adb: Minor reformatting.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_ch5.adb (Expand_Predicated_Loop): Handle properly loops
|
||
over static predicates when the loop parameter specification
|
||
carries a Reverse indicator.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb (Instantiate_Object): If formal has a default,
|
||
actual is missing and formal has an anonymous access type, copy
|
||
access definition in full so that tree for instance is properly
|
||
formatted for ASIS use.
|
||
|
||
2015-01-07 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_elab.adb (Check_Internal_Call_Continue): Give a warning
|
||
for P'Access, where P is a subprogram in the same package as
|
||
the P'Access, and the P'Access is evaluated at elaboration
|
||
time, and occurs before the body of P. For example, "X : T :=
|
||
P'Access;" would allow a subsequent call to X.all to be an
|
||
access-before-elaboration error; hence the warning. This warning
|
||
is enabled by the -gnatw.f switch.
|
||
* opt.ads (Warn_On_Elab_Access): New flag for warning switch.
|
||
* warnsw.adb (Set_Dot_Warning_Switch): Set Warn_On_Elab_Access.
|
||
* gnat_ugn.texi: Document the new warning.
|
||
|
||
2015-01-07 Johannes Kanig <kanig@adacore.com>
|
||
|
||
* lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded
|
||
cross ref files.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-taprop-linux.adb, clean.adb: Minor reformatting.
|
||
|
||
2015-01-07 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-tassta.adb: Relax some overzealous assertions.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Return_Type): An call that returns a limited
|
||
view of a type is legal when context is a thunk generated for
|
||
operation inherited from an interface.
|
||
* exp_ch6.adb (Expand_Simple_Function_Return): If context is
|
||
a thunk and return type is an incomplete type do not continue
|
||
expansion; thunk will be fully elaborated when generating code.
|
||
|
||
2015-01-07 Doug Rupp <rupp@adacore.com>
|
||
|
||
* s-osinte-mingw.ads (LARGE_INTEGR): New subtype.
|
||
(QueryPerformanceFrequency): New imported procedure.
|
||
* s-taprop-mingw.adb (RT_Resolution): Call above and return
|
||
resolution vice a hardcoded value.
|
||
* s-taprop-solaris.adb (RT_Resolution): Call clock_getres and return
|
||
resolution vice a hardcoded value.
|
||
* s-linux-android.ads (clockid_t): New subtype.
|
||
* s-osinte-aix.ads (clock_getres): New imported subprogram.
|
||
* s-osinte-android.ads (clock_getres): Likewise.
|
||
* s-osinte-freebsd.ads (clock_getres): Likewise.
|
||
* s-osinte-solaris-posix.ads (clock_getres): Likewise.
|
||
* s-osinte-darwin.ads (clock_getres): New subprogram.
|
||
* s-osinte-darwin.adb (clock_getres): New subprogram.
|
||
* thread.c (__gnat_clock_get_res) [__APPLE__]: New function.
|
||
* s-taprop-posix.adb (RT_Resolution): Call clock_getres to
|
||
calculate resolution vice hard coded value.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_util.adb (Make_CW_Equivalent_Type): If root type is a
|
||
limited view, use non-limited view when available to create
|
||
equivalent record type.
|
||
|
||
2015-01-07 Vincent Celier <celier@adacore.com>
|
||
|
||
* gnatcmd.adb: Remove command Sync and any data and processing
|
||
related to this command. Remove project processing for gnatstack.
|
||
* prj-attr.adb: Remove package Synchonize and its attributes.
|
||
|
||
2015-01-07 Vincent Celier <celier@adacore.com>
|
||
|
||
* clean.adb: Minor error message change.
|
||
|
||
2015-01-07 Tristan Gingold <gingold@adacore.com>
|
||
|
||
PR ada/64349
|
||
* env.c (__gnat_environ): Adjust for darwin9/darwin10.
|
||
|
||
2015-01-07 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch10.adb (Analyze_With_Clause): Compiling under -gnatq
|
||
protect the frontend against never ending recursion caused by
|
||
circularities in the sources.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb,
|
||
exp_ch3.adb: Minor reformatting.
|
||
|
||
2015-01-07 Doug Rupp <rupp@adacore.com>
|
||
|
||
* s-linux.ads (clockid_t): New subtype.
|
||
* s-osinte-linux.ads (pragma Linker Options): Add -lrt.
|
||
(clockid_t): New subtype.
|
||
(clock_getres): Import system call.
|
||
* s-taprop-linux.adb (System.OS_Constants): With and rename.
|
||
(RT_Resolution): Remove
|
||
hardcoded value and call clock_getres.
|
||
* s-linux-sparc.ads, s-linux-mipsel.ads, s-linux-hppa.ads,
|
||
s-linux-alpha.ads, s-linux-x32.ads (clockid_t): Add new subtype.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_warn.adb (Check_One_Unit): Guard against context item
|
||
with no Entity field.
|
||
|
||
2015-01-07 Vincent Celier <celier@adacore.com>
|
||
|
||
* clean.adb (Gnatclean): Warn that 'gnatclean -P' is obsolete.
|
||
* make.adb (Initialize): Warn that 'gnatmake -P' is obsolete.
|
||
|
||
2015-01-07 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-conf.adb (Parse_Project_And_Apply_Config): Always finalize
|
||
errors/warnings in the first parsing of the project files,
|
||
to display the warnings when there is no errors.
|
||
|
||
2015-01-07 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* i-cpoint.adb (Copy_Terminated_Array): Nicely handle null target.
|
||
|
||
2015-01-07 Doug Rupp <rupp@adacore.com>
|
||
|
||
* s-taprop-vxworks.adb (Stop_All_Tasks): Pass return
|
||
value from Int_Lock as parameter to Int_Unlock.
|
||
* s-osinte-vxworks.ads (Int_Unlock): Add parameter.
|
||
* s-vxwext.ads (Int_Unlock): Likewise.
|
||
* s-vxwext-kernel.adb (intUnlock, Int_Unlock): Likewise.
|
||
* s-vxwext-kernel.ads (Int_Unlock): Likewise.
|
||
* s-vxwext-rtp.adb (Int_Unlock): Likewise.
|
||
* s-vxwext-rtp.ads (Int_Unlock): Likewise.
|
||
|
||
2015-01-07 Pierre-Marie de Rodat <derodat@adacore.com>
|
||
|
||
* exp_pakd.adb: Add a comment in exp_pakd.adb to explain why we
|
||
keep ___XP suffixes
|
||
|
||
2015-01-07 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* i-cpoint.adb (Copy_Terminated_Array): Use Copy_Array to
|
||
handle overlap.
|
||
|
||
2015-01-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Full_Type_Declaration): Do not
|
||
automatically set No_Strict_Aliasing on access types.
|
||
* fe.h (No_Strict_Aliasing_CP): Declare.
|
||
* gcc-interface/trans.c (gigi): Force flag_strict_aliasing to 0 if
|
||
No_Strict_Aliasing_CP is set.
|
||
|
||
2015-01-07 Johannes Kanig <kanig@adacore.com>
|
||
|
||
* sem_ch8.adb (Analyze_Subprogram_Renaming) do
|
||
not build function wrapper in gnatprove mode when the package
|
||
is externally axiomatized.
|
||
|
||
2015-01-07 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* a-reatim.adb (Time_Of): Reduce the number of spurious overflows in
|
||
intermediate computations when the parameters have different signs.
|
||
|
||
2015-01-07 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_ch3.adb (Build_Init_Procedure): For derived types,
|
||
improve the code which takes care of identifying and moving to
|
||
the beginning of the init-proc the call to the init-proc of the
|
||
parent type.
|
||
|
||
2015-01-07 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* gcc-interface/trans.c (gnat_to_gnu, <N_Expression_With_Action>):
|
||
Elaborate the expression as part of the same stmt group as the actions.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch3.adb: Minor error message change.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma, case Preelaborable_Initialization):
|
||
Following AI05-028, the pragam applies legally to any composite type.
|
||
|
||
2015-01-07 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* s-osinte-vxworks.adb, s-osinte-vxworks.ads
|
||
(sigwait, sigwaitinfo): Removed, not needed after all on any
|
||
VxWorks configurations.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch3.adb, freeze.adb, exp_disp.adb: Minor reformatting.
|
||
|
||
2015-01-07 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_disp.adb (Expand_Interface_Conversion): Adding missing
|
||
generation of accessibility check.
|
||
|
||
2015-01-07 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Derived_Type_Declaration): In the case of an
|
||
illegal completion from a class- wide type, set etype of the
|
||
derived type properly to prevent cascaded errors.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* prj.ads, i-cpoint.adb, freeze.adb, ghost.adb, prj-err.adb: Minor
|
||
reformatting.
|
||
|
||
2015-01-07 Robert Dewar <dewar@adacore.com>
|
||
|
||
* restrict.adb (Check_Restriction_No_Use_Of_Attribute):
|
||
New procedure.
|
||
(OK_No_Use_Of_Entity_Name): New function.
|
||
(Set_Restriction_No_Use_Of_Entity): New procedure.
|
||
* restrict.ads (Check_Restriction_No_Use_Of_Attribute):
|
||
New procedure.
|
||
(OK_No_Use_Of_Entity_Name): New function.
|
||
(Set_Restriction_No_Use_Of_Entity): New procedure.
|
||
* sem_ch8.adb (Find_Direct_Name): Add check for violation of
|
||
No_Use_Of_Entity.
|
||
* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
|
||
Add processing for new restriction No_Use_Of_Entity.
|
||
|
||
2015-01-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic
|
||
component type as to Has_Atomic_Components type. Remove useless
|
||
test on Is_Aliased component type.
|
||
|
||
2015-01-07 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* alloc.ads Alphabetize several declarations. Add constants
|
||
Ignored_Ghost_Units_Initial and Ignored_Ghost_Units_Increment.
|
||
* atree.adb Add with and use clauses for Opt.
|
||
(Allocate_Initialize_Node): Mark a node as ignored Ghost
|
||
if it is created in an ignored Ghost region.
|
||
(Ekind_In): New variant.
|
||
(Is_Ignored_Ghost_Node): New routine.
|
||
(Set_Is_Ignored_Ghost_Node): New routine.
|
||
* atree.adb Aplhabetize several subprograms declarations. Flag
|
||
Spare0 is now known as Is_Ignored_Ghost_Node.
|
||
(Ekind_In): New variant.
|
||
(Is_Ignored_Ghost_Node): New routine.
|
||
(Set_Is_Ignored_Ghost_Node): New routine.
|
||
* einfo.adb: Flag 279 is now known as Contains_Ignored_Ghost_Code.
|
||
(Contains_Ignored_Ghost_Code): New routine.
|
||
(Set_Contains_Ignored_Ghost_Code): New routine.
|
||
(Set_Is_Checked_Ghost_Entity, Set_Is_Ignored_Ghost_Entity):
|
||
It is now possible to set this property on an unanalyzed entity.
|
||
(Write_Entity_Flags): Output the status of flag
|
||
Contains_Ignored_Ghost_Code.
|
||
* einfo.ads New attribute Contains_Ignored_Ghost_Code along with
|
||
usage in nodes.
|
||
(Contains_Ignored_Ghost_Code): New routine
|
||
along with pragma Inline.
|
||
(Set_Contains_Ignored_Ghost_Code): New routine along with pragma Inline.
|
||
* exp_ch3.adb Add with and use clauses for Ghost.
|
||
(Freeze_Type): Capture/restore the value of Ghost_Mode on entry/exit.
|
||
Set the Ghost_Mode in effect.
|
||
(Restore_Globals): New routine.
|
||
* exp_ch7.adb (Process_Declarations): Do not process a context
|
||
that invoves an ignored Ghost entity.
|
||
* exp_dbug.adb (Qualify_All_Entity_Names): Skip an ignored Ghost
|
||
construct that has been rewritten as a null statement.
|
||
* exp_disp.adb Add with and use clauses for Ghost.
|
||
(Make_DT): Capture/restore the value of Ghost_Mode on entry/exit. Set
|
||
the Ghost_Mode in effect.
|
||
(Restore_Globals): New routine.
|
||
* exp_util.adb (Requires_Cleanup_Actions): An ignored Ghost entity
|
||
does not require any clean up. Add two missing cases that deal
|
||
with block statements.
|
||
* freeze.adb Add with and use clauses for Ghost.
|
||
(Freeze_Entity): Capture/restore the value of Ghost_Mode on entry/exit.
|
||
Set the Ghost_Mode in effect.
|
||
(Restore_Globals): New routine.
|
||
* frontend.adb Add with and use clauses for Ghost. Remove any
|
||
ignored Ghost code from all units that qualify.
|
||
* ghost.adb New unit.
|
||
* ghost.ads New unit.
|
||
* gnat1drv.adb Add with clause for Ghost. Initialize and lock
|
||
the table in package Ghost.
|
||
* lib.ads: Alphabetize several subprogram declarations.
|
||
* lib-xref.adb (Output_References): Do not generate reference
|
||
information for ignored Ghost entities.
|
||
* opt.ads Add new type Ghost_Mode_Type and new global variable
|
||
Ghost_Mode.
|
||
* rtsfind.adb (Load_RTU): Provide a clean environment when
|
||
loading a runtime unit.
|
||
* sem.adb (Analyze): Capture/restore the value of Ghost_Mode on
|
||
entry/exit as the node may set a different mode.
|
||
(Do_Analyze):
|
||
Capture/restore the value of Ghost_Mode on entry/exit as the
|
||
unit may be withed from a unit with a different Ghost mode.
|
||
* sem_ch3.adb Add with and use clauses for Ghost.
|
||
(Analyze_Full_Type_Declaration, Analyze_Incomplete_Type_Decl,
|
||
Analyze_Number_Declaration, Analyze_Private_Extension_Declaration,
|
||
Analyze_Subtype_Declaration): Set the Ghost_Mode in effect. Mark
|
||
the entity as Ghost when there is a Ghost_Mode in effect.
|
||
(Array_Type_Declaration): The implicit base type inherits the
|
||
"ghostness" from the array type.
|
||
(Derive_Subprogram): The
|
||
alias inherits the "ghostness" from the parent subprogram.
|
||
(Make_Implicit_Base): The implicit base type inherits the
|
||
"ghostness" from the parent type.
|
||
* sem_ch5.adb Add with and use clauses for Ghost.
|
||
(Analyze_Assignment): Set the Ghost_Mode in effect.
|
||
* sem_ch6.adb Add with and use clauses for Ghost.
|
||
(Analyze_Abstract_Subprogram_Declaration, Analyze_Procedure_Call,
|
||
Analyze_Subprogram_Body_Helper, Analyze_Subprogram_Declaration):
|
||
Set the Ghost_Mode in effect. Mark the entity as Ghost when
|
||
there is a Ghost_Mode in effect.
|
||
* sem_ch7.adb Add with and use clauses for Ghost.
|
||
(Analyze_Package_Body_Helper, Analyze_Package_Declaration,
|
||
Analyze_Private_Type_Declaration): Set the Ghost_Mode in
|
||
effect. Mark the entity as Ghost when there is a Ghost_Mode
|
||
in effect.
|
||
* sem_ch8.adb Add with and use clauses for Ghost.
|
||
(Analyze_Exception_Renaming, Analyze_Generic_Renaming,
|
||
Analyze_Object_Renaming, Analyze_Package_Renaming,
|
||
Analyze_Subprogram_Renaming): Set the Ghost_Mode in effect. Mark
|
||
the entity as Ghost when there is a Ghost_Mode in effect.
|
||
(Find_Type): Check the Ghost context of a type.
|
||
* sem_ch11.adb Add with and use clauses for Ghost.
|
||
(Analyze_Exception_Declaration): Set the Ghost_Mode in
|
||
effect. Mark the entity as Ghost when there is a Ghost_Mode
|
||
in effect.
|
||
* sem_ch12.adb Add with and use clauses for Ghost.
|
||
(Analyze_Generic_Package_Declaration,
|
||
Analyze_Generic_Subprogram_Declaration): Set the Ghost_Mode in effect.
|
||
Mark the entity as Ghost when there is a Ghost_Mode in effect.
|
||
* sem_prag.adb Add with and use clauses for Ghost.
|
||
(Analyze_Pragma): Ghost-related checks are triggered when there
|
||
is a Ghost mode in effect.
|
||
(Create_Abstract_State): Mark the
|
||
entity as Ghost when there is a Ghost_Mode in effect.
|
||
* sem_res.adb Add with and use clauses for Ghost.
|
||
(Check_Ghost_Context): Removed.
|
||
* sem_util.adb (Check_Ghost_Completion): Removed.
|
||
(Check_Ghost_Derivation): Removed.
|
||
(Incomplete_Or_Partial_View):
|
||
Add a guard in case the entity has not been analyzed yet
|
||
and does carry a scope.
|
||
(Is_Declaration): New routine.
|
||
(Is_Ghost_Entity): Removed.
|
||
(Is_Ghost_Statement_Or_Pragma):
|
||
Removed.
|
||
(Is_Subject_To_Ghost): Removed.
|
||
(Set_Is_Ghost_Entity):
|
||
Removed.
|
||
(Within_Ghost_Scope): Removed.
|
||
* sem_util.adb (Check_Ghost_Completion): Removed.
|
||
(Check_Ghost_Derivation): Removed.
|
||
(Is_Declaration): New routine.
|
||
(Is_Ghost_Entity): Removed.
|
||
(Is_Ghost_Statement_Or_Pragma): Removed.
|
||
(Is_Subject_To_Ghost): Removed.
|
||
(Set_Is_Ghost_Entity): Removed.
|
||
(Within_Ghost_Scope): Removed.
|
||
* sinfo.ads Add a section on Ghost mode.
|
||
* treepr.adb (Print_Header_Flag): New routine.
|
||
(Print_Node_Header): Factor out code. Output flag
|
||
Is_Ignored_Ghost_Node.
|
||
* gcc-interface/Make-lang.in: Add dependency for unit Ghost.
|
||
|
||
2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Array_Type) <Complain_CS>: Remove always
|
||
true test and unreachable 'else' arm.
|
||
|
||
2015-01-06 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-conf.adb (Check_Target): Improve error message when
|
||
there are mismatched targets between the on in the configuration
|
||
project file and the specified one, either in the main project
|
||
file or in the --target= switch.
|
||
|
||
2015-01-06 Pascal Obry <obry@adacore.com>
|
||
|
||
* prj-attr.adb, projects.texi, snames.ads-tmpl: Add Mode and
|
||
Install_Name attribute definitions.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* freeze.adb (Wrap_Imported_Subprogram): Indicate that the
|
||
generated Import pragma for the internal imported procedure does
|
||
not come from an aspect, so that Is_Imported can be properly
|
||
set for it.
|
||
|
||
2015-01-06 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_ch12.adb (Might_Inline_Subp): Record whether
|
||
any subprograms in the generic package are marked with
|
||
pragma Inline_Always (setting flag Has_Inline_Always).
|
||
(Analyze_Package_Instantiation): Add test of Has_Inline_Always
|
||
alongside existing test of Front_End_Inlining as alternative
|
||
conditions for setting Inline_Now. Also add test of
|
||
Has_Inline_Always along with Front_End_Inlining test as an
|
||
alternative condition for setting Needs_Body to False.
|
||
|
||
2015-01-06 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* i-cpoint.adb (Copy_Array): Handle overlap.
|
||
|
||
2015-01-06 Pascal Obry <obry@adacore.com>
|
||
|
||
* bindgen.adb: Minor style fix.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_util.ads, sem_util.adb: Minor reformatting.
|
||
|
||
2015-01-06 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-conf.adb (Parse_Project_And_Apply_Config): Reset incomplete
|
||
with flags before parsing the projects.
|
||
* prj-err.adb (Error_Msg): Do nothing if there are incomplete withs.
|
||
* prj-part.adb (Post_Parse_Context_Clause): Set Incomplete_Withs
|
||
to True in the flags, when Ignore_Missing_With is True and an
|
||
imported project cannot be found.
|
||
* prj-proc.adb (Expression): When there are incomplete withs and
|
||
a variable or attribute is not found, set the variable/attribute
|
||
to unknown.
|
||
* prj.ads (Processing_Flags): New flag Incomplete_Withs,
|
||
defaulted to False.
|
||
|
||
2015-01-06 Vasiliy Fofanov <fofanov@adacore.com>
|
||
|
||
* prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-conf.adb,
|
||
prj-err.adb: Add new switch --no-command-line.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb: Sloc of wrapper is that of instantiation.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch11.adb: Minor reformatting.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* exp_aggr.adb (Get_Assoc_Expr): New routine internal to
|
||
Build_Array_Aggr_Code, used to initialized components covered
|
||
by a box association. If the component type is scalar and has
|
||
a default aspect, use it to initialize such components.
|
||
|
||
2015-01-06 Pascal Obry <obry@adacore.com>
|
||
|
||
* rtinit.c (__gnat_runtime_initialize): Add a parameter to
|
||
control the setup of the exception handler.
|
||
* initialize.c: Remove unused declaration.
|
||
* bindgen.adb: Always call __gnat_runtime_initialize and pass
|
||
whether the exeception handler must be set or not.
|
||
|
||
2015-01-06 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* freeze.adb (Set_SSO_From_Defaults): When setting scalar storage
|
||
order to native from default, make sure to also adjust bit order.
|
||
* exp_aggr.adb: Minor reformatting.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-valllu.adb, s-valllu.ads, s-valuti.ads, s-valuns.adb, s-valuns.ads,
|
||
s-valrea.adb, s-valrea.ads: Add some additional guards for
|
||
Str'Last = Positive'Last.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb, sem_ch8.adb: Ongoing work for wrappers for actual
|
||
subprograms.
|
||
|
||
2015-01-06 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_disp.adb (Expand_Interface_Conversion): Reapply patch.
|
||
|
||
2015-01-06 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* sem_util.ads: Minor reformatting.
|
||
* sem_cat.adb (In_RCI_Visible_Declarations): Change back to...
|
||
(In_RCI_Declaration) Return to old name, as proper checking of
|
||
entity being in the visible part depends on entity kind and must
|
||
be done by the caller.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb, sem_ch12.ads, sem_ch8.adb: Ongoing work for wrappers
|
||
for operators in SPARK.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_aggr.adb (Get_Value): In ASIS mode, preanalyze the
|
||
expression in an others association before making copies for
|
||
separate resolution and accessibility checks. This ensures that
|
||
the type of the expression is available to ASIS in all cases,
|
||
in particular if the expression is itself an aggregate.
|
||
|
||
2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Has_Independent_Components): Document extended
|
||
usage.
|
||
* einfo.adb (Has_Independent_Components): Remove obsolete assertion.
|
||
(Set_Has_Independent_Components): Adjust assertion.
|
||
* sem_prag.adb (Analyze_Pragma): Also set Has_Independent_Components
|
||
for pragma Atomic_Components. Set Has_Independent_Components
|
||
on the object instead of the type for an object declaration with
|
||
pragma Independent_Components.
|
||
|
||
2015-01-06 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* set_targ.adb (Read_Target_Dependent_Values): Set
|
||
Long_Double_Index when "long double" is read.
|
||
(elaboration code): Register_Back_End_Types only when not reading from
|
||
config files. Doing otherwise is pointless and error prone.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-valrea.adb (Value_Real): Check for Str'Last = Positive'Last
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* a-wtgeau.adb, a-ztgeau.adb, a-tigeau.adb (String_Skip): Raise PE if
|
||
Str'Last = Positive'Last.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Matches_Limited_View): Handle properly the case
|
||
where the non-limited type is a generic actual and appears as
|
||
a subtype of the non-limited view of the other.
|
||
* freeze.adb (Build_Renamed_Body): If the return type of the
|
||
declaration that is being completed is a limited view and the
|
||
non-limited view is available, use it in the specification of
|
||
the generated body.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch3.adb (Find_Type_Name): If there is a previous tagged
|
||
incomplete view, the type of the classwide type common to both
|
||
views is the type being declared.
|
||
|
||
2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Is_Independent): Further document extended usage.
|
||
|
||
2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Is_Independent): Document extended usage.
|
||
* einfo.adb (Is_Independent): Remove obsolete assertion.
|
||
(Set_Is_Independent): Likewise.
|
||
* sem_prag.adb (Process_Atomic_Shared_Volatile): Rename into...
|
||
(Process_Atomic_Independent_Shared_Volatile): ...this.
|
||
Deal with pragma Independent here.
|
||
(Analyze_Pragma): Adjust
|
||
to above renaming and also invoke it for pragma Independent.
|
||
Adjust comment for Independent_Components.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* snames.ads-tmpl: Remove entries for attribute Enum_Image.
|
||
* exp_attr.adb: Remove reference to Attribute_Enum_Image.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-vallli.adb (Value_Long_Long_Integer): Handle case of Str'Last
|
||
= Positive'Last.
|
||
* s-valllu.adb (Value_Long_Long_Unsigned): Handle case of
|
||
Str'Last = Positive'Last.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_prag.adb (Process_Inline): Remove redundant construct
|
||
warning (-gnatw.r) for an ineffective pragma Inline.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-valint.adb: Fix typo in last checkin.
|
||
* s-valuns.adb (Value_Unsigned): More efficient fix for
|
||
Positive'Last case.
|
||
* sem_attr.adb (Analyze_Attribute): Minor reformatting
|
||
(Eval_Attribute): Static ervaluation of 'Img for enumeration types.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-valint.adb, s-valuns.adb (Value_Integer): Deal with case where
|
||
Str'Last = Positive'Last
|
||
|
||
2015-01-06 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* xoscons.adb: Display exception information and return non-zero
|
||
exit status in top level exception handler.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch8.adb: Code clean up.
|
||
|
||
2015-01-06 Tristan Gingold <gingold@adacore.com>
|
||
|
||
* targparm.ads: Remove obsolete comment.
|
||
|
||
2015-01-06 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable): When
|
||
constructing a ref to variable, update inner_const_flag from the
|
||
variable TREE_READONLY attribute.
|
||
* gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Remove default
|
||
definition.
|
||
(get_target_float_size): Remove.
|
||
(get_target_double_size): Remove.
|
||
(get_target_long_double_size): Remove.
|
||
|
||
2015-01-06 Pascal Obry <obry@adacore.com>
|
||
|
||
* adaint.c (ProcListEvt): Set to NULL.
|
||
* rtinit.c: New file.
|
||
(__gnat_rt_init_count): New reference counter set to 0.
|
||
(__gnat_runtime_initialize): Move code here from __gnat_initialize when
|
||
this code is actually needed for the runtime initialization. This
|
||
routine returns immediately if the initialization has already been done.
|
||
* final.c: Revert previous change.
|
||
* rtfinal.c: New file.
|
||
(__gnat_runtime_finalize)[Win32]: Add finalization of the critical
|
||
section and event. The default version of this routine is empty (except
|
||
for the reference counting code). This routine returns immediately if
|
||
some others libraries are referencing the runtime.
|
||
* bindgen.adb (Gen_Adainit): Generate call to Runtime_Initialize
|
||
remove circuitry to initialize the signal handler as this is
|
||
now done by the runtime initialization routine.
|
||
(Gen_Adafinal): Generate call to Runtime_Finalize.
|
||
* gnat_ugn.texi: Update documentation about concurrency and
|
||
initialization/finalization of the run-time.
|
||
* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Add
|
||
references to rtfinal.o and rtinit.o
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_attr.adb (Expand_N_Attribute_Reference): Add dummy entry
|
||
for Enum_Image.
|
||
* sem_attr.adb: Implement Enum_Image attribute.
|
||
* snames.ads-tmpl: Add entries for Enum_Image attribute.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* namet.ads: Document use of Boolean2 for No_Use_Of_Entity.
|
||
* restrict.ads (No_Use_Of_Entity): New table.
|
||
* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
|
||
Ignore No_Use_Of_Entity (will be processed in parser).
|
||
* snames.ads-tmpl: Add entry for Name_No_Use_Of_Entity.
|
||
|
||
2015-01-06 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-tree.adb (Imported_Or_Extended_Project_Of): Do not try
|
||
to check for an extended project, if a project does not have
|
||
yet a project declaration.
|
||
|
||
2015-01-06 Pierre-Marie Derodat <derodat@adacore.com>
|
||
|
||
* scos.ads: Update documentation about the SCO table build
|
||
process and about table records format.
|
||
* par_sco.ads (SCO_Record): Rename to SCO_Record_Raw.
|
||
(SCO_Record_Filtered): New procedure.
|
||
(Set_SCO_Logical_Operator): New procedure.
|
||
(dsco): Update documentation.
|
||
* par_sco.adb: Update library-level comments.
|
||
(SCO_Generation_State_Type): New type.
|
||
(SCO_Generation_State): New variable.
|
||
(SCO_Raw_Table): New package instanciation.
|
||
(Condition_Pragma_Hash_Table): Rename to SCO_Raw_Hash_Table.
|
||
("<"): New.
|
||
(Tristate): New type.
|
||
(Is_Logical_Operator): Return Tristate and update documentation.
|
||
(Has_Decision): Update call to Is_Logical_Operator and complete
|
||
documentation.
|
||
(Set_Table_Entry): Rename to Set_Raw_Table_Entry, update
|
||
comment, add an assertion for state checking and change
|
||
references to SCO_Table into SCO_Raw_Table.
|
||
(dsco): Refactor to dump the raw and the filtered tables.
|
||
(Process_Decisions.Output_Decision_Operand): Handle putative
|
||
short-circuit operators.
|
||
(Process_Decisions.Output_Element): Update references
|
||
to Set_Table_Entry and to Condition_Pragma_Hash_Table.
|
||
(Process_Decisions.Process_Decision_Operand): Update call
|
||
to Is_Logical_Operator.
|
||
(Process_Decisions.Process_Node): Handle putative short-circuit
|
||
operators and change references to
|
||
SCO_Table into SCO_Raw_Table.
|
||
(SCO_Output): Add an assertion
|
||
for state checking and remove code that used to stamp out SCO entries.
|
||
(SCO_Pragma_Disabled): Change reference to SCO_Table
|
||
into SCO_Raw_Table.
|
||
(SCO_Record): Rename to SCO_Record_Raw,
|
||
add an assertion for state checking and change references
|
||
to SCO_Table into SCO_Raw_Table.
|
||
(Set_SCO_Condition): Add an assertion for state checking, update
|
||
references to Condition_Pragma_Hash_Table and change references to
|
||
SCO_Table into SCO_Raw_Table.
|
||
(Set_SCO_Pragma_Enabled): Add an assertion for state checking and
|
||
change references to SCO_Table into SCO_Raw_Table.
|
||
(Set_SCO_Logical_Operator): New procedure.
|
||
(Traverse_Declarations_Or_Statements.Set_Statement_Entry): Update
|
||
references to Set_Table_Entry and to Condition_Pragma_Hash_Table.
|
||
(SCO_Record_Fildered): New procedure.
|
||
* gnat1drv.adb (Gnat1drv): Invoke the SCO filtering pass.
|
||
* lib-writ.adb (Write_ALI): Invoke the SCO filtering pass and
|
||
output SCOs.
|
||
* par-load.adb (Load): Update reference to SCO_Record.
|
||
* par.adb (Par): Update reference to SCO_Record.
|
||
* put_scos.adb (Put_SCOs): Add an assertion to check that no
|
||
putative SCO condition reaches this end.
|
||
* sem_ch10.adb (Analyze_Proper_Body): Update reference to SCO_Record.
|
||
* sem_res.adb (Resolve_Logical_Op): Validate putative SCOs
|
||
when corresponding to an "and"/"or" operator affected by the
|
||
Short_Circuit_And_Or pragma.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_ch8.adb (Analyze_Use_Package): Give more specific error
|
||
msg for attempted USE of generic subprogram or subprogram.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-valllu.adb, a-tiinau.adb, a-timoau.adb, a-ztinau.adb, a-ztmoau.adb,
|
||
s-valuns.adb, s-valrea.adb, a-wtflau.adb, a-tiflau.adb, a-ztflau.adb,
|
||
a-wtinau.adb, a-wtmoau.adb: Document recognition of : in place of #.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): For aspects
|
||
that specify stream subprograms, if the prefix is a class-wide
|
||
type then the generated attribute definition clause must apply
|
||
to the same class-wide type.
|
||
(Default_Iterator): An iterator defined by an aspect of some
|
||
container type T must have a first parameter of type T, T'class,
|
||
or an access to such (from code reading RM 5.5.1 (2/3)).
|
||
|
||
2015-01-06 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat1drv.adb: Minor: complete previous change.
|
||
|
||
2015-01-06 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* set_targ.ads (C_Type_For): New function. Return the name of
|
||
a C type supported by the back-end and suitable as a basis to
|
||
construct the standard Ada floating point type identified by
|
||
the T parameter. This is used as a common ground to feed both
|
||
ttypes values and the GNAT tree nodes for the standard floating
|
||
point types.
|
||
* set_targ.adb (Long_Double_Index): The index at which "long
|
||
double" gets registered in the FPT_Mode_Table. This is useful to
|
||
know whether we have a "long double" available at all and get at
|
||
it's characteristics without having to search the FPT_Mode_Table
|
||
when we need to decide which C type should be used as the
|
||
basis for Long_Long_Float in Ada.
|
||
(Register_Float_Type): Fill Long_Double_Index.
|
||
(FPT_Mode_Index_For): New function. Return the index in
|
||
FPT_Mode_Table that designates the entry corresponding to the
|
||
provided C type name.
|
||
(FPT_Mode_Index_For): New function. Return the index in
|
||
FPT_Mode_Table that designates the entry for a back-end type
|
||
suitable as a basis to construct the standard Ada floating point
|
||
type identified by the input T parameter.
|
||
(elaboration code): Register_Back_End_Types unconditionally,
|
||
so C_Type_For can operate regardless of -gnateT. Do it
|
||
early so we can query it for the floating point sizes, via
|
||
FPT_Mode_Index_For. Initialize Float_Size, Double_Size and
|
||
Long_Double_Size from the FPT_Mode_Table, as cstand will do.
|
||
* cstand.adb (Create_Float_Types): Use C_Type_For to determine
|
||
which C type should be used as the basis for the construction
|
||
of the Standard Ada floating point types.
|
||
* get_targ.ads (Get_Float_Size, Get_Double_Size,
|
||
Get_Long_Double_Size): Remove.
|
||
* get_targ.adb: Likewise.
|
||
|
||
2015-01-06 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* sem_cat.adb (In_RCI_Declaration): Remove unnecessary
|
||
parameter and rename to...
|
||
(In_RCI_Visible_Declarations): Fix handling of private part of nested
|
||
package.
|
||
(Validate_RCI_Subprogram_Declaration): Reject illegal function
|
||
returning anonymous access in RCI unit.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (New_Overloaded_Entity): In GNATprove mode, a
|
||
function wrapper may be a homonym of another local declaration.
|
||
* sem_ch8.adb (Analyze_Subprogram_Renaming): In GNATprove mode,
|
||
build function and operator wrappers after the actual subprogram
|
||
has been resolved, and replace the standard renaming declaration
|
||
with the declaration of wrapper.
|
||
* sem_ch12.ads (Build_Function_Wrapper, Build_Operator_Wraooer):
|
||
make public for use elsewhere.
|
||
* sem_ch12.adb (Build_Function_Wrapper, Build_Operator_Wraooer):
|
||
rewrite, now that actual is fully resolved when wrapper is
|
||
constructed.
|
||
|
||
2015-01-06 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_disp.adb: Revert previous change.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_util.adb: Change name Name_Table_Boolean to
|
||
Name_Table_Boolean1.
|
||
* namet.adb: Change name Name_Table_Boolean to Name_Table_Boolean1
|
||
Introduce Name_Table_Boolean2/3.
|
||
* namet.ads: Change name Name_Table_Boolean to Name_Table_Boolean1
|
||
Introduce Name_Table_Boolean2/3.
|
||
* par-ch13.adb: Change name Name_Table_Boolean to
|
||
Name_Table_Boolean1.
|
||
|
||
2015-01-06 Bob Duff <duff@adacore.com>
|
||
|
||
* gnat_rm.texi: Improve documentation regarding No_Task_Termination.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Record_Aggregte, Get_Value): For an
|
||
others choice that covers multiple components, analyze each
|
||
copy with the type of the component even in compile-only mode,
|
||
to detect potential accessibility errors.
|
||
|
||
2015-01-06 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_res.adb (Is_Assignment_Or_Object_Expression): New routine.
|
||
(Resolve_Actuals): An effectively volatile out
|
||
parameter cannot act as an in or in out actual in a call.
|
||
(Resolve_Entity_Name): An effectively volatile out parameter
|
||
cannot be read.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is
|
||
the expansion of an expression function it may be pre-analyzed
|
||
if a 'access attribute is applied to the function, in which case
|
||
last_entity may have been assigned already.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch4.adb (Analyze_One_Call): If formal has an incomplete
|
||
type and actual has the corresponding full view, there is no
|
||
error, but a case of use of incomplete type in a predicate or
|
||
invariant expression.
|
||
|
||
2015-01-06 Vincent Celier <celier@adacore.com>
|
||
|
||
* makeutl.adb (Insert_No_Roots): Make sure that the same source
|
||
in two different project tree is checked in both trees, if they
|
||
are sources of two different projects, extended or not.
|
||
|
||
2015-01-06 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnat1drv.adb: Minor code clean up.
|
||
(Adjust_Global_Switches): Ignore gnatprove_mode in codepeer_mode.
|
||
|
||
2015-01-06 Bob Duff <duff@adacore.com>
|
||
|
||
* osint.adb (Read_Source_File): Don't print out
|
||
file name unless T = Source.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_util.adb (Is_Variable, Is_OK_Variable_For_Out_Formal):
|
||
recognize improper uses of constant_reference types as actuals
|
||
for in-out parameters.
|
||
(Check_Function_Call): Do not collect identifiers if function
|
||
name is missing because of previous error.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* ali-util.adb, sem_prag.adb, rtsfind.adb, sem_util.adb, sem_res.adb,
|
||
ali.adb, binde.adb, namet.adb, namet.ads, gnatls.adb, bcheck.adb:
|
||
Minor change of name Name_Table_Info => Name_Table_Int.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_strm.adb (Build_Elementary_Input_Call): Clarify comments
|
||
in previous checkin.
|
||
* freeze.adb (Freeze_Fixed_Point_Type): Add warning for shaving
|
||
of bounds.
|
||
* sem_prag.adb, sem_ch10.adb, sem_ch6.adb: Minor reformatting.
|
||
|
||
2015-01-06 Vincent Celier <celier@adacore.com>
|
||
|
||
* a-strsup.adb (Times (Natural;String;Positive)): Raise
|
||
Length_Error, not Index_Error, when the result is too long.
|
||
|
||
2015-01-06 Thomas Quinot <quinot@adacore.com>
|
||
|
||
* a-direct.adb (Create_Path): Minor error handling and
|
||
performance improvement.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* checks.ads, sem_ch12.adb: Minor reformatting.
|
||
* exp_ch4.adb (Expand_N_Op_Divide): Generate explicit divide by
|
||
zero check for fixed-point case if Backend_Divide_Checks_On_Target
|
||
is False.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All):
|
||
Do not set restriction No_Elaboration_Code unless the pragma
|
||
appears in the main unit).
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch10.adb (Is_Regular_With_Clause): Add guard to verify
|
||
that with clause has already been analyzed before checking kind
|
||
of with_clause.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* exp_strm.adb (Build_Elementary_Input_Call): Return base type
|
||
(as required by RM).
|
||
|
||
2015-01-06 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* a-reatim.adb ("/"): Add explicit pragma Unsuppress (Division_Check).
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* sem_prag.adb (Process_Suppress_Unsuppress): Add extra warning
|
||
for ignoring pragma Suppress (Elaboration_Check) in SPARK mode.
|
||
|
||
2015-01-06 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_disp.adb (Expand_Interface_Conversion): No displacement
|
||
of the pointer to the object needed when the type of the operand
|
||
is not an interface type and the interface is one of its parent
|
||
types (since they share the primary dispatch table).
|
||
|
||
2015-01-06 Vincent Celier <celier@adacore.com>
|
||
|
||
* prj-env.adb: Minor comment update.
|
||
|
||
2015-01-06 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_res.adb (Valid_Conversion): Restrict the checks on anonymous
|
||
access types whose target type is an interface type to operands
|
||
that are access types; required to report an error when the
|
||
operand is not an access type.
|
||
|
||
2015-01-06 Bob Duff <duff@adacore.com>
|
||
|
||
* a-cfinve.adb (Copy): Set the discriminant to the Length when
|
||
Capacity = 0.
|
||
* a-cofove.ads (Capacity): Add a postcondition.
|
||
* a-cfinve.ads (Capacity): Add a postcondition.
|
||
(Reserve_Capacity): Correct the postcondition in the case where
|
||
Capacity = 0; that means "Capacity => Length (Container)".
|
||
* a-cofove.adb (Elems[c]): Add a comment
|
||
explaining the dangers and how to avoid them.
|
||
|
||
2015-01-06 Ed Schonberg <schonberg@adacore.com>
|
||
|
||
* sem_ch12.adb: Code clean up.
|
||
|
||
2015-01-06 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* gnatvsn.ads: Bump copyright year.
|
||
|
||
2015-01-06 Robert Dewar <dewar@adacore.com>
|
||
|
||
* s-taskin.ads, s-traces.ads: Minor reformatting.
|
||
* exp_util.adb: Minor typo fix.
|
||
|
||
2015-01-06 Vincent Celier <celier@adacore.com>
|
||
|
||
* gnatls.adb (Search_RTS): Invoke Initialize_Default_Project_Path
|
||
with the runtime name.
|
||
* prj-env.adb (Initialize_Default_Project_Path): When both
|
||
Target_Name and Runtime_Name are not empty string, add to the
|
||
project path the two directories .../lib/gnat and .../share/gpr
|
||
related to the runtime.
|
||
* prj-env.ads (Initialize_Default_Project_Path): New String
|
||
parameter Runtime_Name, defaulted to the empty string.
|
||
|
||
2015-01-06 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* frontend.adb: Guard against the case where a configuration
|
||
pragma may be split into multiple pragmas and the original
|
||
rewritten as a null statement.
|
||
* sem_prag.adb (Analyze_Pragma): Insert a brand new Check_Policy
|
||
pragma using Insert_Before rather than Insert_Action. This
|
||
takes care of the configuration pragma case where Insert_Action
|
||
would fail.
|
||
|
||
2015-01-06 Bob Duff <duff@adacore.com>
|
||
|
||
* a-coboho.ads (Element_Access): Add "pragma
|
||
No_Strict_Aliasing (Element_Access);". This is needed because
|
||
we are unchecked-converting from Address to Element_Access.
|
||
* a-cofove.ads, a-cofove.adb (Elems,Elemsc): Fix bounds of the
|
||
result to be 1.
|
||
|
||
2015-01-06 Hristian Kirtchev <kirtchev@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Actuals): Remove the
|
||
restriction which prohibits volatile actual parameters with
|
||
enabled external propery Async_Writers to act appear in procedure
|
||
calls where the corresponding formal is of mode OUT.
|
||
|
||
2015-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gnat_ugn.texi: Bump @copying's copyright year.
|
||
|
||
2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/64492
|
||
* gcc-interface/Makefile.in (../stamp-tools): Reinstate dropped code.
|
||
|
||
2015-01-04 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* gcc-interface/misc.c (internal_error_function): Use xasprintf instead
|
||
of unchecked asprintf.
|
||
|
||
|
||
Copyright (C) 2015 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.
|