-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>
+2016-01-02 Eric Botcazou <ebotcazou@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.
-
\f
-Copyright (C) 2015 Free Software Foundation, Inc.
+Copyright (C) 2016 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
--- /dev/null
+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.
+
+\f
+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.
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2015, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2016, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- Note: Makefile.in uses the library version string to construct the
-- soname value.
- Current_Year : constant String := "2015";
+ Current_Year : constant String := "2016";
-- Used in printing copyright messages
Verbose_Library_Version : constant String := "GNAT Lib v" & Library_Version;