From 783bfcce4441f3ab4858216d054fde22b593b426 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Sun, 3 Jan 2016 00:41:43 +0000 Subject: [PATCH] * gnatvsn.ads: Bump copyright year. From-SVN: r232039 --- gcc/ada/ChangeLog | 10505 +------------------------------------- gcc/ada/ChangeLog-2015 | 10511 +++++++++++++++++++++++++++++++++++++++ gcc/ada/gnatvsn.ads | 4 +- 3 files changed, 10515 insertions(+), 10505 deletions(-) create mode 100644 gcc/ada/ChangeLog-2015 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 7226214dec5..8813a9b4158 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,10510 +1,9 @@ -2015-12-20 Eric Botcazou - - * gcc-interface/utils2.c (gnat_rewrite_reference) : New - case identical to FLOAT_EXPR. - : Likewise. - -2015-12-20 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : 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 - - * 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 - - * gcc-interface/ada-tree.h (TYPE_DEBUG_TYPE): Remove duplicate. - -2015-12-17 Pierre-Marie de Rodat - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * gcc-interface/trans.c (Call_to_gnu): Remove guard for NULL_EXPR. - * gcc-interface/utils2.c (gnat_rewrite_reference) : Return - the reference unmodified. - : New case. Likewise. - -2015-12-10 Eric Botcazou - - * 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 - - PR ada/65102 - * gnat-style.texi: Set nodefaultgnufreedocumentationlicensenode and - define @node GNU Free Documentation License locally. - -2015-12-09 Eric Botcazou - - 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 - - PR c/48088 - PR c/68657 - * gcc-interface/trans.c (Pragma_to_gnu): Adjust control_warning_option - caller. - -2015-12-06 Piotr Trojanek - - PR ada/60164 - * doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Fix typo. - -2015-12-06 Eric Botcazou - - PR ada/50048 - * gcc-interface/Makefile.in (INCLUDES): Use -iquote. - -2015-12-06 Eric Botcazou - - PR ada/56274 - * s-osinte-kfreebsd-gnu.ads (pthread_rwlock_t): New subtype. - (pthread_rwlockattr_t): Likewise. - -2015-12-06 Ludovic Brenta - - 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 - - PR ada/49940 - * s-osinte-kfreebsd-gnu.ads (lwp_self): New imported function. - -2015-12-01 Jan Sommer - - 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 - - * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Reorder. - -2015-11-30 Eric Botcazou - - * gcc-interface/trans.c (gigi): Fix initialization order. - -2015-11-30 Eric Botcazou - - * 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 - - * gcc-interface/gigi.h (create_var_decl): Adjust prototype. - (create_subprog_decl): Likewise. - * gcc-interface/decl.c (gnat_to_gnu_entity) : 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. - : 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 - - * 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 - - * gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions. - -2015-11-30 Eric Botcazou - - * 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 - - 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 - - PR ada/68564 - * gcc-interface/Makefile.in: Fix sparc/sparc64 bitness detection. - -2015-11-25 Arnaud Charlet - - * 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 - - * exp_util.adb (Remove_Side_Effects): Minimize extra temporaries - and use of 'Reference when needed. - -2015-11-25 Doug Rupp - - * 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 - - * 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 - - * sem_elab.adb (Check_Internal_Call_Continue): Code clean ups. - -2015-11-25 Eric Botcazou - - * 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 - - * gnatcmd.adb: When -gnat is called with switch -P - and a GPR tool is invoked, invoke the GPR tool with switch - --target=. - -2015-11-25 Hristian Kirtchev - - * opt.adb, bcheck.adb: Minor reformatting. - -2015-11-25 Jerome Lambourg - - * 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 - - * gnatcmd.adb: When "gnat name -P" is called, invoke gprname - directly if available. - -2015-11-25 Tristan Gingold - - * init.c (__gnat_is_stack_guard): Do not use mach calls for - IOS simulator. - -2015-11-24 Pierre-Marie de Rodat - - * gcc-interface/utils.c (gnat_write_global_declarations): Output - debugging information for top-level imported declarations. - -2015-11-24 Gary Dismukes - - * 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 - - * gcc-interface/decl.c (gnat_to_gnu_entity) : In - ASIS mode, do a minimal translation for root types with discriminants. - * gcc-interface/trans.c (gnat_to_gnu) : Move around. - : Likewise. In ASIS mode, - process the declarations attached to the body. - -2015-11-24 Eric Botcazou - - * 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 - - * 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 - - * 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 - Eric Botcazou - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Use case #1 - for the renaming of an address. - -2015-11-18 Eric Botcazou - - * gcc-interface/trans.c (fold_constant_decl_in_expr) : If - the index is not itself constant then bail out. - -2015-11-18 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * s-arit64.adb (To_Neg_Int): Add a special case for 2**63 input. - -2015-11-18 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * s-pooglo.ads: Make Global_Pool_Object aliased. - -2015-11-18 Ed Schonberg - - * 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 - - * exp_ch11.adb (Expand_N_Exception_Declaration): No-op when - generating C code. - -2015-11-18 Hristian Kirtchev - - 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 - - * 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 - - * 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 - - * switch-c.adb (Scan_Front_End_Switches): Add a check requiring - -gnatc with -gnateg. - -2015-11-18 Ed Schonberg - - * 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 - - * s-parame-vxworks.adb: Increase default stack size for targets - using stack limit checking. - -2015-11-18 Jose Ruiz - - * 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 - - * exp_ch9.adb (Is_Pure_Barrier): Handle expanded component - declaration of a protected definition. - -2015-11-18 Ed Falis - - * s-soflin.adb, s-stchop-vxworks.adb: Code clean ups. - -2015-11-18 Gary Dismukes - - * bcheck.adb: Minor editorial changes. - -2015-11-18 Arnaud Charlet - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_util.adb: Minor reformatting and typo fixes. - -2015-11-18 Hristian Kirtchev - - * sem_ch4.adb: Minor reformatting. - -2015-11-18 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * adaint.c: Routine __gnat_killprocesstree only implemented on - Linux and Windows. - -2015-11-18 Pascal Obry - - * g-ctrl_c.adb: Minor style fixes. - -2015-11-18 Pascal Obry - - * adaint.c, s-os_lib.adb, s-os_lib.ads (Kill_Process_Tree): New. - -2015-11-18 Hristian Kirtchev - - * 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 - - * 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 - - PR ada/68345 - * s-osinte-dragonfly.ads (Get_Page_Size): C function returns an int. - -2015-11-13 David Malcolm - - * gcc-interface/trans.c (Sloc_to_locus): Add line_table param when - calling linemap_position_for_line_and_column. - -2015-11-13 Hristian Kirtchev - - * exp_attr.adb: Minor reformatting. - -2015-11-13 Pascal Obry - - * adaint.c: Ensure that it is possible to get killed process - status on Windows. - -2015-11-13 Arnaud Charlet - - * 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 - - * sigtramp-ios.c, init.c: Minor cosmetic tweaks. - -2015-11-13 Hristian Kirtchev - - * s-gloloc.adb, g-debpoo.adb: Minor reformatting. - -2015-11-13 Ed Schonberg - - * 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 - - * 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 - - * sem_prag.adb (Analyze_Pragma): Pragma Constant_After_Elaboration can - now apply to a variable without an initialization expression. - -2015-11-13 Hristian Kirtchev - - * 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 - - * sem_ch13.adb (Analyze_Aspect_Specifications): Continue the analysis - after encountering an illegal aspect Part_Of. - -2015-11-13 Ed Schonberg - - * 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 - - * 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 - - * sinfo.ads: Minor comment fix. - * sem_ch6.adb: Minor reformatting. - -2015-11-13 Jerome Lambourg - - * tracebak.c: Do not use the GCC Unwinder to retrieve traceback - for x86_64-vx7. - -2015-11-13 Eric Botcazou - - * init.c [Darwin/arm64]: Fix typo. - * sigtramp-armios.c: Remove. - * sigtramp-ios.c: New file. - -2015-11-13 Doug Rupp - - * s-stchop-vxworks.adb (Set_Stack_Limit_For_Current_Task): Set stack - limit to 12000 decimal vice 12000 hexadecimal. - -2015-11-13 Hristian Kirtchev - - * 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 - - * s-rident.ads (Profile_Info): Enable Pure_Barriers for - GNAT_Extended_Ravenscar. - -2015-11-13 Bob Duff - - * 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 - - * exp_ch9.adb: Minor reformatting and typo fixes. - -2015-11-13 Eric Botcazou - - * 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 - - * bcheck.adb (Check_Consistent_Restrictions): Do not check - consistency of No_Dependence for runtime units. - -2015-11-13 Tristan Gingold - - * 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 - - * 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 - - * 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 - - * sigtramp.h: Fix formatting throughout, do not include other - headers, add missing preprocessor condition and 'extern' keywords. - * sigtramp-armdroid.c: Include . - * init.c [Android]: Likewise. - -2015-11-13 Eric Botcazou - - * init.c [Darwin/arm64] (__gnat_sigtramp): Do not increment PC, - fix CFI and add return sequence. - -2015-11-13 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * lib-xref-spark_specific.adb - (Is_Constant_Object_Without_Variable_Input): Add special case - for imported constants. - -2015-11-12 Philippe Gil - - * g-debpoo.adb (Allocate): Avoid having allocations not handled. - -2015-11-12 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * init.c: Properly adjust PC values in case of signals. - -2015-11-12 Bob Duff - - * 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 - - * switch-c.adb, gnat1drv.adb, opt.ads: Reserve -gnateg for generation - of C headers. - -2015-11-12 Arnaud Charlet - - * back_end.adb, opt.ads (Debugger_Level): Update comment. - (Scan_Back_End_Switches): Set Debugger_Level. - -2015-11-12 Bob Duff - - * fmap.adb, debug.ads, checks.adb, exp_ch11.adb: Minor edits. - -2015-11-12 Doug Rupp - - * s-stchop-vxworks.adb (Stack_Limit): Export vice Import. - -2015-11-12 Gary Dismukes - - * sem_dim.adb: Minor reformatting. - -2015-11-12 Gary Dismukes - - * gnat1drv.adb, opt.ads: Minor reformatting. - -2015-11-12 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * usage.adb: Update overflow checking documentation. - -2015-11-12 Tristan Gingold - - * 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 - - * 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 - - * 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 - - * s-stchop-vxworks.adb: Clean up in stack checking code. - -2015-11-12 Gary Dismukes - - * 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 - - * 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 - - * init.c: Do not try to mess with the MSR values in RTP mode: - not needed and forbidden. - -2015-11-12 Ed Schonberg - - * 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 - - * init.c: Do not try to mess with the MSR values in RTP mode: - not needed and forbidden. - -2015-11-12 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * init.c (__gnat_error_handler): Force the SPE bit of the MSR - when executing on e500v2 CPU. - -2015-11-12 Hristian Kirtchev - - * sem_prag.adb (Analyze_Constituent): Stop the - analysis after detecting a misplaced constituent as this is a - critical error. - -2015-11-12 Hristian Kirtchev - - * sem_ch10.adb, atree.adb: Minor reformatting. - -2015-11-12 Hristian Kirtchev - - * 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 - - * 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 - - * exp_attr.adb, freeze.adb, sem_util.adb, sem_ch13.adb: Minor - reformatting. - -2015-11-12 Ed Schonberg - - * 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 - - * 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 - - * checks.ads: Minor comment fix. - -2015-11-12 Arnaud Charlet - - * 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 - - * 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) : Remove - over-restrictive condition for the special treatment of deferred - constants. - : Remove obsolete associated code. - -2015-11-12 Eric Botcazou - - * gcc-interface/trans.c (gnat_to_gnu) : Do - not materialize renamed subprograms if only annotating types. - -2015-11-12 Pierre-Marie de Rodat - - * 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 - - * s-os_lib.ads: Documentation update. - -2015-11-12 Arnaud Charlet - - * s-taprop-vxworks.adb, s-osinte-vxworks.ads: Use a single import of - taskDelay to avoid confusion. - -2015-11-12 Ed Schonberg - - * 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 - - * bindgen.adb (Gen_Adainit): Code cleanup. - -2015-11-12 Hristian Kirtchev - - * s-stalib.ads: Code cleanup. - -2015-11-12 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * bindgen.adb: Fix typo. - * sem_ch6.adb: Minor reformatting. - -2015-11-12 Emmanuel Briot - - * s-os_lib.adb (Argument_String_To_List): fix handling of - windows separators - -2015-11-11 Andrew MacLeod - - * 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 - - * gcc-interface/gigi.h (set_reverse_storage_order_on_pad_type): - Declare. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Set the - storage order on the enclosing record for a packed array type. - : Set the storage order. - : Likewise. - : Likewise. - : 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 - - * gcc-interface/utils.c: Don't undef DEF_BUILTIN. - -2015-10-29 Andrew MacLeod - - * 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 - - * 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 - - * adaint.c, s-os_lib.adb, s-os_lib.ads (Copy_File_Attributes): New - subprogram. - -2015-10-27 Hristian Kirtchev - - * namet.adb, namet.ads: Minor reformatting. - -2015-10-27 Ed Schonberg - - * 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 - - * 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 - - * sem_util.ads, par.adb, sem_ch6.adb: Minor reformatting and a few - typo corrections. - -2015-10-27 Pierre-Marie de Rodat - - * namet.ads, namet.adb (Name_Equals): New function. - * namet.h (Name_Equals): New macro. - -2015-10-27 Arnaud Charlet - - * 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 - - * 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 - - * 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 - - * gnatlink.adb: Always delete the response file, even when the - invocation of gcc to link failed. - -2015-10-27 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sinput.ads, spark_xrefs.ads, lib-xref.adb: Fix typos. - -2015-10-27 Pascal Obry - - * a-dirval-mingw.adb: Remove some characters from Invalid_Character set. - -2015-10-27 Ed Schonberg - - * 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 - - * gnat1drv.adb: Remove hard coded restrictions. - -2015-10-27 Pascal Obry - - * a-dirval-mingw.adb: Minor reformatting. - -2015-10-27 Javier Miranda - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve previous patch. - -2015-10-27 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * einfo.adb: Access_Disp_Table applies to a private - extension. - -2015-10-26 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * s-os_lib.adb (Argument_String_To_List): Remove backslashes in - argument value. - -2015-10-26 Javier Miranda - - * exp_unst.ads, exp_unst.adb (Is_Uplevel_Referenced): Removed. - -2015-10-26 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_ch7.adb, exp_ch6.adb: Minor comment fix. - -2015-10-26 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * exp_unst.ads, exp_unst.adb (Is_Uplevel_Referenced): New subprogram. - -2015-10-26 Ed Schonberg - - * 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 - - * sem_ch3.adb, sem_util.adb: Minor reformatting. - -2015-10-26 Javier Miranda - - * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Return False when - generating C code. - * sem_ch3.adb: Fix typos. - -2015-10-26 Bob Duff - - * 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 - - * 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 - - * 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 - - * s-os_lib.ads: Minor reformatting/rewording. - -2015-10-26 Arnaud Charlet - - * debug.adb: Introduce debug flag -gnatd.5. - -2015-10-26 Pascal Obry - - * 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 - - * einfo.ads, einfo.adb, exp_unst.adb (Needs_Typedef, - Set_Needs_Typedef): Removed, no longer used. - -2015-10-26 Hristian Kirtchev - - * 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 - - * 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 - - * sinfo.ads, sem_util.ads: Update comments. - -2015-10-26 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * osint-c.ads: Minor comment update. - -2015-10-26 Arnaud Charlet - - * 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 - - * 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 - - * exp_unst.adb: Minor reformatting. - -2015-10-26 Ed Schonberg - - * sem_ch6.adb: Improve error msg. - -2015-10-26 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_prag.adb (Analyze_Pragma): Pragma - Extensions_Visible can now appear on an abstract subprogram - declaration. - -2015-10-26 Yannick Moy - - * 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 - - * 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 - - * inline.adb: Minor reformatting. - -2015-10-26 Yannick Moy - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * a-nudira.ads: Remove SPARK_Mode as it currently causes an error. - -2015-10-26 Arnaud Charlet - - * 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 - - * 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 - - * sem_ch6.adb: Handle subprogram bodies without previous specs. - -2015-10-26 Claire Dross - - * a-nudira.ads: Specify appropriate SPARK_Mode so that the unit - can be used in SPARK code. - -2015-10-26 Hristian Kirtchev - - * 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 - - * 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 - - * sem_util.adb (Is_Suspension_Object): Ensure that the scope of "Ada" - is Standard_Standard. - -2015-10-26 Hristian Kirtchev - - * 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 - - * 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 - - * sem_aux.ads (Number_Components): Can return 0 when called on - an empty record. - -2015-10-26 Hristian Kirtchev - - * 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 - - * sem_ch13.adb: Minor reformatting. - -2015-10-26 Steve Baird - - * exp_disp.adb: Omit most dispatch table initialization code - if Generate_SCIL is true. - -2015-10-26 Arnaud Charlet - - * 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 - - * 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 - - * treepr.adb: Code clean up. - -2015-10-26 Eric Botcazou - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * errout.ads: Minor comment fix. - * einfo.ads: Minor style fix. - -2015-10-26 Bob Duff - - * 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 - - * 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 - - * 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 - - * sem_ch13.adb: Minor reformatting. - * einfo.ads: Minor typo. - -2015-10-26 Joel Brobecker - - * adaint.c (__gnat_open_new_temp): Use mkstemp on Android. - -2015-10-26 Ed Schonberg - - * 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 - - * a-reatim.adb, contracts.adb, contracts.ads: Minor reformatting and - typo corrections. - -2015-10-26 Ed Schonberg - - * 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 - - * sem_res.adb (Resolve_Call): Issue info message - instead of warning when call cannot be inlined in GNATprove mode. - -2015-10-26 Arnaud Charlet - - * 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 - - * gcc-interface/utils2.c (build_binary_op): Tweak formatting. - (build_unary_op): Likewise. - -2015-10-23 Arnaud Charlet - - * 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 - - * 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 - - * 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 - - * gcc-interface/utils2.c (build_call_alloc_dealloc): Check no implicit - task and protected object restrictions. - -2015-10-23 Hristian Kirtchev - - * sem_ch12.adb, exp_ch6.adb: Minor reformatting. - -2015-10-23 Gary Dismukes - - * exp_ch6.adb: Minor reformatting. - -2015-10-23 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * a-exextr.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting. - -2015-10-23 Arnaud Charlet - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_attr.adb, freeze.adb, sem_attr.adb, exp_aggr.adb, - gnatname.adb: Minor reformatting. - -2015-10-23 Steve Baird - - * 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 - - * 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 - - * 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 - - * sigtramp.h (struct sigcontext, struct ucontext): Remove declarations, - and replace them by include of corresponding header file. - -2015-10-23 Bob Duff - - * a-convec.adb (Copy): Make sure C is initialized - on all paths, including when Checks is False. - -2015-10-23 Eric Botcazou - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove - error as unreachable. - -2015-10-23 Arnaud Charlet - - * gnat1drv.adb (Adjust_Global_Switches): Adjust. - -2015-10-23 Hristian Kirtchev - - * exp_dbug.ads, exp_dbug.adb (Get_External_Name): The special prefix for - ignored Ghost entities is now ___ghost_. - -2015-10-23 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * init.c (__gnat_sigtramp): New assembly function for arm64-darwin. - (__gnat_error_handler): Use trampoline for arm64. - -2015-10-23 Ed Schonberg - - * 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 - - * gnatname.adb: Code clean up. - * s-taasde.ads: Fix comment. - -2015-10-23 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * exp_unst.adb (Unnest_Subprogram): Complete previous - change and update comments. - -2015-10-23 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_dim.adb (Analyze_Dimension_Extension_Or_Record_Aggregate): - Handle properly a box-initialized aggregate component. - -2015-10-23 Yannick Moy - - * sem_prag.adb (Analyze_Pragma): Reject Volatile_Function not placed - on a function. - -2015-10-23 Yannick Moy - - * 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 - - * 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 - - * gnat1drv.adb (Adjust_Global_Switches): Adjust settings. - * sem.adb (Semantics): Remove special case. - -2015-10-23 Gary Dismukes - - * bindgen.adb, restrict.adb: Minor spelling/grammar fixes. - -2015-10-23 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - PR driver/68043 - * gcc-interface/lang.opt: End each sentence that describes - an option with a period. - -2015-10-20 Yannick Moy - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_ch4.adb: Minor reformatting. - -2015-10-20 Bob Duff - - * s-mudido-affinity.adb (Create): Correct subranges of slices of CPU - arrays. - -2015-10-20 Arnaud Charlet - - * 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 - - * exp_ch4.adb (Expand_Array_Comparison): Use - generic code if runtime routine is not available. - -2015-10-20 Yannick Moy - - * 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 - - * 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 - - * prj-attr.adb: Add packages Prove and GnatTest. - -2015-10-20 Steve Baird - - * 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 - - * pprint.adb: Code clean up. - -2015-10-20 Bob Duff - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_prag.adb: Code clean up. - -2015-10-20 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * sem_prag.adb: Minor reformatting. - -2015-10-20 Tristan Gingold - - * 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 - - * 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 - - * init.c: Fix build issue on arm-vx6 when building the RTP - run-time. - -2015-10-20 Ed Schonberg - - * 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 - - * 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 - - * sem_util.adb (Find_Actual): The routine is - now capable of operating on entry calls. - -2015-10-20 Ed Schonberg - - * sem_res.adb: Remove redundant check. - -2015-10-20 Jerome Lambourg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_ch9.adb (Expand_Entry_Barrier): Default initialize local variable - Func. - -2015-10-20 Jerome Lambourg - - * init.c (__gnat_error_handler for vxworks): Force - SPE bit in the MSR when handling signals - -2015-10-20 Arnaud Charlet - - * 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 - - * 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 - - * 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 - - * inline.ads: Minor comment fixes. - -2015-10-20 Bob Duff - - * a-comutr.ads (Tree_Node_Access): Add No_Strict_Aliasing, because - we're doing unchecked conversions with this pointer. - -2015-10-20 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_ch7.adb (Process_Declarations): A loop - parameter does not require finalization actions. - -2015-10-20 Eric Botcazou - - * 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 - - * s-atocou.adb, s-atocou-builtin.adb: Fix implementation description - related to new type support. - -2015-10-20 Ed Schonberg - - * 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 - - * 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 - - * sem_util.adb (Requires_Transient_Scope): - Return true for mutable records if the maximum size is very large. - -2015-10-20 Eric Botcazou - - * a-except-2005.adb (To_Stderr): Import Put_Char_Stderr with - the same signature as in System.IO.Put. - -2015-10-20 Bob Duff - - * a-cobove.adb (Set_Length): Restore previous logic, but with "Checks - and then" on the check. - -2015-10-20 Ed Schonberg - - * par-ch3.adb (P_Known_Discriminant_Part_Opt): Handle properly - a misplaced "constant" keyword in a discriminant specification. - -2015-10-20 Steve Baird - - * 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 - - * 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 - - * adaint.c: File names are case sensitive on aarch64-ios. - -2015-10-20 Bob Duff - - * 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 - - * exp_util.adb (Requires_Cleanup_Actions): A loop parameter does not - require finalization actions. - -2015-10-20 Ed Schonberg - - * 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 - - * 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 - - * sem_smem.adb (Check_Shared_Var): Clean up code that handles - type declarations with discriminants, remove obsolete check. - -2015-10-20 Arnaud Charlet - - * par_sco.adb: Minor style fixes. - -2015-10-20 Vincent Celier - - * debug.adb: Update documentation of -gnatdu. - -2015-10-20 Hristian Kirtchev - - * 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 - - * 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 - - * gcc-interface/Makefile.in: Update targets. - -2015-10-20 Bob Duff - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_ch12.adb (Need_Subprogram_Instance_Body): Also return true - for a subprogram nested in an inlined subprogram. - -2015-10-20 Bob Duff - - * a-coinve.adb, a-contai.adb: Update comments. - * pprint.ads: Minor reformatting. - -2015-10-20 Tristan Gingold - - * env.c, init.c: Handle arm64-darwin like arm-darwin. - * tracebak.c: Handle arm64-darwin. - -2015-10-20 Bob Duff - - * s-trasym.adb (Symbolic_Traceback): When giving the traceback - as hexadecimal code addresses, separate by blanks instead of LF. - -2015-10-20 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate freeze - node for subprogram in Compile_Only mode. - -2015-10-20 Dmitriy Anisimkov - - * 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 - - * 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 - - * fe.h: Minor tweak. - -2015-10-20 Vincent Celier - - * sem_cat.adb (Check_Categorization_Dependencies): Do nothing - when -gnatdu is specified. - -2015-10-20 Ed Schonberg - - * 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 - - * sem_ch13.adb: Minor reference change (RM => AARM). - -2015-10-20 Eric Botcazou - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * make.adb (Check): Skip multilib switches reinstated by the - compiler when doing the comparison with switches passed to - gnatmake. - -2015-10-20 Yannick Moy - - * 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 - - * types.ads: Minor reformatting. - -2015-10-20 Hristian Kirtchev - - * 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 - - * 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 - - * prj-attr.adb: Add package Codepeer and its attributes. - -2015-10-20 Thomas Quinot - - * sem_ch3.adb, sem_ch13.adb: Minor reformatting. - -2015-10-20 Eric Botcazou - - * 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 - - * 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 - - * 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 - - * exp_ch5.adb, sem_ch3.adb: Minor reformatting. - -2015-10-20 Vincent Celier - - * a-strsup.adb (Super_Trim): Remove statements that put NUL - characters in unused portion of the Data string. - -2015-10-16 Hristian Kirtchev - - * 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 - - * prj-pp.adb (Pretty_Print.Print): Correctly display extending - packages, instead of making them renamed packages. - -2015-10-16 Hristian Kirtchev - - * 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 - - * exp_ch5.adb: Code clean up. - * sem_ch13.adb: Minor fix in comment. - -2015-10-16 Bob Duff - - * 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 - - * 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 - - * exp_ch7.adb: Minor spelling fixes. - -2015-10-16 Ed Schonberg - - * 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 - - * prj.adb, sem_util.adb, exp_ch6.adb: Minor reformatting. - -2015-10-16 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_util.adb (Is_Object_Reference): Attribute 'Loop_Entry produces - an object. - * sem_ch6.adb: Minor fix in comment. - -2015-10-16 Bob Duff - - * 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 - - * sem_ch13.adb (Chek_Record_Representation_Clause): When - iterating over components, skip anonymous subtypes created for - constrained array components. - -2015-10-16 Eric Botcazou - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * bindgen: Move pragmas Warnings earlier, otherwise - we can get warnings on with_clauses. - -2015-10-16 Arnaud Charlet - - * 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 - - * 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 - - * 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 - - * sinfo.ads, einfo.ads: monir clean ups. - -2015-10-16 Arnaud Charlet - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_attr.adb: Minor editorial changes. - -2015-10-16 Arnaud Charlet - - * 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 - - * 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 - - * sem_ch12.adb: Minor reformatting/rewording. - -2015-10-16 Arnaud Charlet - - * einfo.ads: Minor fix of duplicate words - * rident.ads: Minor style fix in comment - -2015-10-16 Hristian Kirtchev - - * 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 - - * debug.adb: Document -gnatdQ switch. - -2015-10-16 Ed Schonberg - - * 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 - - * sem_util.ads, sinput.ads, bcheck.adb: Minor comment fixes. - -2015-10-16 Javier Miranda - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * gcc-interface/utils.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10, - DEF_FUNCTION_TYPE_11): Define. - -2015-10-09 Eric Botcazou - - * 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 - - * gcc-interface/trans.c (convert_with_check): Use real_arithmetic - instead of REAL_ARITHMETIC. - -2015-10-05 Richard Sandiford - - * gcc-interface/trans.c (convert_with_check): Use real_less instead - of REAL_VALUES_LESS. - -2015-10-02 Doug Rupp - Olivier Hainque - - * 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 - - * gcc-interface/trans.c (Pragma_to_gnu) : Replace - linear search with call to find_opt and issue warnings if the -W - switch is not appropriate. - -2015-10-02 Eric Botcazou - - * 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 - - * 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 - - * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_11): Don't define. - -2015-09-28 Tom de Vries - - * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_6): Define. - -2015-09-17 Eric Botcazou - - * gcc-interface/trans.c (emit_check): Do not touch TREE_SIDE_EFFECTS. - -2015-09-14 Pierre-Marie de Rodat - - * gcc-interface/misc.c (gnat_post_options): Issue a warning if - generating STABS debugging information when not the default. - -2015-09-14 Eric Botcazou - - * 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 - - * gcc-interface/utils2.c (gnat_rewrite_reference) : Add - another acceptable pattern for the RHS. - -2015-07-24 Micahel Darling - - PR other/66259 - * prj-nmsc.adb: Reflects renaming of configure.in to configure.ac - * gcc-interface/Makefile.in: Likewise - -2015-07-12 Aldy Hernandez - - * 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 - - * 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 - - * s-oscons-tmplt.c: Add support for DragonFly alongside FreeBSD. - -2015-06-29 Eric Botcazou - - 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 - - PR fortran/66605 - * gcc-interface/misc.c (gnat_post_options): No need to disable - warn_unused_parameter anymore. - -2015-06-26 Eric Botcazou - - * 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 - - * 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 - - * 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 - - * 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) : 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 - - * 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 - - * 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 - - * 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 - - * gcc-interface/misc.c: Include calls.h not function.h. - -2015-06-19 Eric Botcazou - - * 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. - : Adjust calls to create_var_decl and create_var_decl_1. - Remove DECL_IGNORED_P settings. - : Likewise. - : Likewise. - : 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 - - * gcc-interface/misc.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): Define. - -2015-06-19 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Make sure - the size of a padding type built around the return type is positive. - * gcc-interface/trans.c (gnat_to_gnu) : - Use INIT_EXPR instead of MODIFY_EXPR to assign to the return object. - -2015-06-17 Andrew MacLeod - - * 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 - - * gcc-interface/utils.c (get_global_context): Register the main - translation unit through the new debug hook. - -2015-06-09 Eric Botcazou - - * gcc-interface/misc.c: Remove duplicate include directives. - * gcc-interface/trans.c: Likewise. - * gcc-interface/utils.c: Likewise. - -2015-06-08 Andrew MacLeod - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * gcc-interface/decl.c (gnat_to_gnu_entity) : If - processing a definition, create definitions for padding types - around return types. - -2015-06-03 Eric Botcazou - - * gcc-interface/utils.c (copy_type): Also set TYPE_CANONICAL. - -2015-06-03 Eric Botcazou - - * gcc-interface/trans.c (gnat_to_gnu) : Fix - typo in latest change. - -2015-06-01 Eric Botcazou - - * gcc-interface/Makefile.in: Fix ARM/Darwin configuration. - -2015-06-01 Pierre-Marie de Rodat - - * 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 - - * gcc-interface/decl.c (gnat_to_gnu_entity): Replace pointer types with - references ones for functions that return references. - -2015-06-01 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : 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 - - * 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 - - * 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 - - * gcc-interface/decl.c (gnat_to_gnu_entity) : If the - record has a parent field and a representation clause, make sure that - it is properly aligned. - -2015-06-01 Eric Botcazou - - * gcc-interface/trans.c (lvalue_required_p) : Deal - with character and enumeration literals as index values. - -2015-06-01 Eric Botcazou - - * gcc-interface/gigi.h (build_simple_component_ref): Declare. - * gcc-interface/decl.c (gnat_to_gnu_entity) : 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) : Deal - with the pattern built for aligning types. - : 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 - - * s-oscons-tmplt.c: Add explicit tests for Android alongside Linux. - -2015-05-30 Eric Botcazou - - * 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 - - * gcc-interface/utils.c (max_size) : Add special code to - deal with the subtraction of a "negative" value in an unsigned type. - -2015-05-28 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : 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 - - * 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 - - * 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) : 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. - : New case. - -2015-05-28 Ed Schonberg - - * 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 - - * 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 - - * sem_util.adb (Requires_Transient_Scope): Avoid returning - function results on the secondary stack in so many cases. - -2015-05-28 Ed Schonberg - - * 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 - - * 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 - - * sem_ch13.adb, sem_disp.ads: Minor reformatting. - -2015-05-28 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * gcc-interface/Makefile.in (TOOLS_LIBS): Add @NO_PIE_FLAG@. - -2015-05-27 Eric Botcazou - - * 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 - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Move down - code applying atomic checks to the object. - -2015-05-27 Robert Dewar - - * sem_aux.adb: Minor rewording. - -2015-05-27 Bob Duff - - * exp_prag.adb (Expand_Pragma_Abort_Defer): Make - pragma Abort_Defer do nothing if Abort_Allowed is False. - -2015-05-27 Arnaud Charlet - - * 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 - - * adaint.c (__gnat_tmp_name) [vxworks]: Robustify and use for rtp as - well as kernel. - -2015-05-27 Pierre-Marie de Rodat - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_aux.adb, sem_aux.ads (First_Discriminant): Return empty when - applied to a type with no known discriminants. - -2015-05-26 Robert Dewar - - * errout.ads, sem_ch4.adb, sem_ch6.adb: Minor reformatting. - -2015-05-26 Bob Duff - - * 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 - - * 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 - - * exp_ch7.adb: Minor comment fix. - -2015-05-26 Eric Botcazou - - * gcc-interface/trans.c (Attribute_to_gnu) : Do not - bother about NaN's if Machine_Overflows is true. - -2015-05-26 Eric Botcazou - - * gcc-interface/trans.c (gnat_to_gnu) : 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 - - * gcc-interface/trans.c (Attribute_to_gnu) : 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 - - * 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) : 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 - - * 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) : 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 - - * 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 - - * sem_ch8.adb (Analyze_Object_Renaming): Lift restriction on - components of Volatile_Full_Access objects. - -2015-05-26 Ed Schonberg - - * 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 - - * einfo.adb (Write_Field17_Name): Move E_Incomplete_Subtype - case to... - (Write_Field19_Name): ...here. - -2015-05-26 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_util.adb: Minor typo fix. - -2015-05-26 Yannick Moy - - * sem_aux.adb (Subprogram_Body_Entity): Deal with subprogram stubs. - -2015-05-26 Hristian Kirtchev - - * 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 - - * sem_ch3.adb, sem_aux.adb, sem_aux.ads, exp_ch6.adb, sprint.adb: - Minor reformatting. - -2015-05-26 Gary Dismukes - - * gnat1drv.adb, targparm.adb, targparm.ads, restrict.adb: Minor - reformatting and typo fixes in comments. - -2015-05-26 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * sem_util.adb, sem_util.ads, sem_ch13.adb: Minor typo fixes. - -2015-05-26 Doug Rupp - - * init.c [vxworks]: Refine previous checkin. - -2015-05-26 Robert Dewar - - * exp_ch4.adb (Wrap_MA): New function. - (Expand_N_Op_Expon): Use Wrap_MA. - -2015-05-26 Bob Duff - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * init.c [vxworks] (sysLib.h): Only for x86. - -2015-05-26 Doug Rupp - - * 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 - - * sem_aux.adb, sem_disp.adb, sem_util.ads: Add comment. - * sem_util.adb: Minor reformatting - -2015-05-26 Yannick Moy - - * 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 - - * 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 - - * sinfo.adb: Minor comment addition. - * einfo.adb: Minor whitespace and punctuation fix. - * sem_util.adb: Minor editing of comments. - -2015-05-26 Ed Schonberg - - * 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 - - * exp_prag.adb, gnat1drv.adb: Minor reformatting. - -2015-05-26 Eric Botcazou - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * einfo.ads, sem_util.adb, sem_ch4.adb: Minor reformatting. - -2015-05-26 Robert Dewar - - * exp_unst.adb, exp_unst.ads: Change to using Subps table index for - making AREC entity names unique. - -2015-05-26 Ed Schonberg - - * 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 - - * sem_util.adb: Minor code reorganization. - * sem_ch6.adb: Minor reformatting. - -2015-05-25 Eric Botcazou - - * 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 - - * 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 - - * 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 - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Move around. - : Merge with E_Variable case. - : Remove 'object' label. - -2015-05-25 Eric Botcazou - - * 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 - - * 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. - : Build a variant of the XUA type instead of forcing - TYPE_VOLATILE on it. - : Use the main variant of the base type. - Do not force TYPE_VOLATILE on the type being built. - : Likewise. - : Likewise. - : 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. - : If the renamed object has side-effects - evaluate only its address. - : Adjust call to Call_to_gnu. Use load-modify - store sequence if required. - : 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) : Accept SAVE_EXPR on the LHS. - (gnat_stabilize_reference) : Deal with atomic loads. - -2015-05-25 Eric Botcazou - - * 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) : 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) : 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * switch-c.adb (Scan_Front_End_Switches): Insist on -gnatc - for -gnatd.V. - -2015-05-22 Arnaud Charlet - - * gnatvsn.ads: Minor code reorg to remember more easily to update - variables. - -2015-05-22 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_ch4.adb (Expand_N_Op_Eq): Introduce 'Machine for 'Result - comparison. - -2015-05-22 Eric Botcazou - - * 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 - - * sem_ch13.adb (Minimum_Size): Size is zero for null range - discrete subtype. - -2015-05-22 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * freeze.adb (Freeze_Profile): Suppress warning if imported - subprogram is not at library level. - -2015-05-22 Robert Dewar - - * sem_ch8.adb (Analyze_Object_Renaming): Check for renaming - component of an object to which Volatile_Full_Access applies. - -2015-05-22 Jerome Guitton - - * exp_dbug.ads: Add note about non bit-packed arrays. - -2015-05-22 Eric Botcazou - - * sem_prag.adb: Fix typo. - * einfo.ads: Grammar fixes in comments. - -2015-05-22 Bob Duff - - * 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 - - * 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 - - * osint-c.adb, osint-c.ads (Set_File_Name): Move back to spec. - -2015-05-22 Pascal Obry - - * prj-util.adb: Minor comment editing. - -2015-05-22 Pascal Obry - - * 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 - - * prj-util.ads, prj-util.adb (Relative_Path): New routine. - -2015-05-22 Bob Duff - - * 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 - - * 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 - - * exp_ch4.adb: Minor rewording. - * exp_util.ads: Clarify that Find_Prim_Op is only for - tagged types. - -2015-05-22 Robert Dewar - - * 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 - - * exp_pakd.adb (Install_PAT): Propagate representation aspects - from the original array type to the PAT. - -2015-05-22 Robert Dewar - - * treepr.adb (Print_Node_Header): Add output of Needs_Actuals_Check. - -2015-05-22 Robert Dewar - - * atree.adb, atree.ads (Needs_Actuals_Check): New flag. - -2015-05-22 Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * a-csquin.ads: Use Ada 2012 notation. - * sem_ch8.adb: Minor reformatting. - -2015-05-22 Hristian Kirtchev - - * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Import - acts as a completion. - -2015-05-22 Ed Schonberg - - * sem_ch13.adb: Minor reformatting. - -2015-05-22 Jose Ruiz - - * a-reatim.adb: Minor change, fix typo. - -2015-05-22 Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_ch5.adb: minor reformatting. - -2015-05-21 Robert Dewar - - * freeze.adb (Freeze_Entity): Properly tag -gnatw.z messages. - -2015-05-21 Robert Dewar - - * 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 - - * 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 - - * 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 - - * gcc-interface/trans.c (Sloc_to_locus1): Strenghthen local "map" - from line_map * to line_map_ordinary *. - -2015-05-12 Jason Merrill - - * sigtramp-vxworks.c: Add space between string literal and macro - name. - -2015-05-12 Arnaud Charlet - - * gnat_rm.texi, gnat_ugn.texi, doc: Documentation updates and clean ups - -2015-05-12 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_ch5.adb (Analyze_Iterator_Specification): Implement new - semantics and safety checks specified in AI12-0151. - -2015-05-12 Pierre-Marie de Rodat - - * sem_ch10.adb (Sem_Ch10.Analyze_Proper_Body): Generate SCOs - for subunit in generic units. - -2015-05-12 Robert Dewar - - * sem_elab.adb (Check_A_Call): Avoid checking internal call - from Valid_Scalars - -2015-05-12 Ed Schonberg - - * sem_ch6.adb (Process_Formals): An untagged incomplete type - is legal in the profile of a null procedure. - -2015-05-12 Ed Schonberg - - * 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 - - * 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 - - * targparm.ads: Minor reformatting. - -2015-05-12 Robert Dewar - - * a-reatim.adb (Time_Of): Properly detect overflow when TS = 0.0. - * a-reatim.ads: Minor reformatting. - -2015-05-12 Hristian Kirtchev - - * einfo.ads: Update the documentation of flags - Has_Inherited_Default_Init_Cond and Has_Default_Init_Cond. - -2015-05-12 Robert Dewar - - * impunit.adb: Add entry for a-dhfina.ads - * a-dhfina.ads: New file. - -2015-05-12 Ed Schonberg - - * 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 - - * 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 - - * a-taster.ads: Minor comment fix: fix bad header, this is a - pure RM unit. - -2015-05-12 Robert Dewar - - * sem_intr.adb: (Check_Shift): Diagnose bad modulus value. - -2015-05-12 Robert Dewar - - * 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 - - * g-sercom.ads, g-sercom-linux.adb (GNAT.Serial_Communications. - Data_Rate): New literals B75, B110, B150, B300, B600. - -2015-05-12 Doug Rupp - - * 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 - - * 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 - - * 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 - - * exp_pakd.adb: Make clearer the comment in exp_pakd.adb about - ___XP suffixes. - -2015-05-12 Robert Dewar - - * sem_ch3.adb, sem_util.adb, sem_ch6.adb: Minor reformatting. - -2015-05-12 Robert Dewar - - * exp_unst.adb (Visit_Node): Deal with subprogram and package stubs. - -2015-05-12 Ed Schonberg - - * 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 - - * exp_ch7.adb, exp_ch7.ads, exp_intr.adb, exp_util.adb, - exp_util.ads: Update comments. - -2015-05-12 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_ch6.adb, exp_unst.adb: Minor typo fixes. - -2015-05-12 Robert Dewar - - * sem_ch3.adb: Minor reformatting. - -2015-05-12 Vincent Celier - - * 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 - - * 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 - - * sem_ch3.adb, freeze.adb, sem_ch6.adb: Minor reformatting. - -2015-05-12 Ed Schonberg - - * 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 - - * sem_ch6.adb (Analyze_Subprogram_Declaration): Following - AI12-0147, null procedures and expression functions are allowed - in protected bodies. - -2015-05-12 Tristan Gingold - - * i-cpoint.adb (Copy_Terminated_Array): Copy nothing if Length is 0. - -2015-05-12 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * sem_type.adb, sem_ch10.adb, freeze.adb, sem_ch6.adb, exp_disp.adb: - Minor reformatting. - -2015-05-12 Bob Duff - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * a-reatim.adb ("/"): Add explicit check for Time_Span_First / -1. - -2015-05-12 Ed Schonberg - - * 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 - - * sem_util.adb (Is_Variable): Allow X'Deref(Y) as a variable. - -2015-05-12 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * gcc-interface/utils.c (gnat_write_global_declarations): Use type_decl - method instead of global_decl for TYPE_DECLs. - -2015-04-27 Jim Wilson - - * gcc-interface/Makefile-lan.in (ada.mostlyclean): Remove gnatbind - and gnat1. - -2015-04-13 Eric Botcazou - - * gnatvsn.ads (Library_Version): Bump to 6. - -2015-04-09 Iain Sandoe - - * gcc-interface/Makefile.in (darwin, powerpc): Enable atomics. - -2015-04-08 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make - a function returning an unconstrained type 'const' for the middle-end. - - * gcc-interface/trans.c (Pragma_to_gnu) : Use - exact condition to detect Reason => "..." pattern. - -2015-03-31 Tom de Vries - - 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 - - * gcc-interface/trans.c (Attribute_to_gnu) : New case. - -2015-03-24 Gary Dismukes - - * sem_ch3.adb: Minor typo fix (missing paren). - -2015-03-24 Robert Dewar - - * sinfo.ads: Update comment. - -2015-03-24 Robert Dewar - - * 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 - - * sem_ch13.adb (Rep_Item_Too_Early): allow pragma Convention - on generic type. - -2015-03-24 Gary Dismukes - - * inline.adb: Minor typo fix. - -2015-03-24 Arnaud Charlet - - * 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 - - PR bootstrap/65522 - * adadecode.c (ada_demangle): Guard with IN_RTS instead of IN_GCC. - -2015-03-20 Eric Botcazou - - 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 - - * gcc-interface/utils2.c (gnat_invariant_expr): Return null if the type - of the expression ends up being composite. - -2015-03-16 Eric Botcazou - - * gcc-interface/decl.c (is_from_limited_with_of_main): New predicate. - (gnat_to_gnu_entity) : 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 - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not - short-circuit the regular handling. - -2015-03-13 Robert Dewar - - * 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 - - * 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 - - * 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 - - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Rewrite after review. - -2015-03-13 Robert Dewar - - * exp_util.adb (Is_Volatile_Reference): Compile time known - value is never considered to be a volatile reference. - -2015-03-13 Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_util.ads: Minor fix to comment. - * sem_ch3.adb (Constrain_Index): Correct pasto from previous - change. - -2015-03-13 Robert Dewar - - * 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 - - * gcc-interface/trans.c (Attribute_to_gnu) : - 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 - - * sem_warn.adb: Minor reformatting. - * init.c: Minor tweaks. - -2015-03-04 Dmitriy Anisimko - - * a-coinho-shared.adb: Fix clear of already empty holder. - -2015-03-04 Robert Dewar - - * 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 - - * 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 - - * 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 - - * atree.h: Add entries for Flag287-Flag309. - * einfo.adb: Add (unused) flags Flag287-Flag309. - -2015-03-04 Ed Schonberg - - * sem_util.adb (Collect_Interfaces, Collect): When gathering - interfaces of ancestors, handle properly a subtype of a private - extension. - -2015-03-04 Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_attr.adb: Improve warning messages. - -2015-03-04 Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * scng.adb (Scan): Ignore illegal character in relaxed - semantics mode. - -2015-03-02 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_disp.ads: Minor reformatting. - -2015-03-02 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * einfo.ads, exp_unst.ads: Minor reformatting. - -2015-03-02 Ed Schonberg - - * 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 - - * elists.adb (List_Length): Fix incorrect result. - -2015-03-02 Bob Duff - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_ch3.adb, exp_attr.adb, checks.adb, exp_aggr.adb: Minor - reformatting. - -2015-03-02 Ed Schonberg - - * sem_ch8.adb: extend use of Available_Subtype. - -2015-03-02 Hristian Kirtchev - - * 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 - - * 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 - - * a-strsea.adb: Minor typo fix. - -2015-03-02 Bob Duff - - * einfo.ads: Minor comment fixes. - -2015-03-02 Gary Dismukes - - * einfo.adb, checks.adb: Minor reformatting and typo fixes. - -2015-03-02 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - 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 - - * 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 - - * 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 - - * doc/gnat_ugn/project-manager-figure.png, - doc/gnat_ugn/rtlibrary-structure.png: New. - -2015-02-22 Tom de Vries - - 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 - - * 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 - - * 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 - - * g-alveop.adb: Minor style fixes. - -2015-02-20 Robert Dewar - - * freeze.adb (Warn_Overlay): Guard against blow up with address - clause. - -2015-02-20 Bob Duff - - * 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 - - * a-dispat.adb, a-stcoed.ads: Minor reformatting. - -2015-02-20 Robert Dewar - - * 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 - - * 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 - - * g-allein.ads, g-alveop.adb, g-alveop.ads, opt.ads: Minor reformatting - -2015-02-20 Tristan Gingold - - * 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 - - * 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 - - * g-allein.ads, g-alveop.ads, g-alveop.adb: Code clean ups. - -2015-02-20 Robert Dewar - - * sem_prag.adb: Minor comment clarification. - -2015-02-20 Olivier Hainque - - * 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 - - * switch-c.adb, bindgen.adb: Minor reformatting. - -2015-02-20 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Type_Invariant): - Invariant'class is allowed on an abstract type. - -2015-02-20 Ed Schonberg - - * 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 - - * sem_res.adb: Minor reformatting. - -2015-02-20 Vincent Celier - - * 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 - - * bindgen.adb: Minor reformatting and code reorganization. - -2015-02-20 Jose Ruiz - - * 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 - - * sysdep.c, expect.c, s-oscons-tmplt.c, gsocket.h, adaint.c: Remove - obsolete references to RTX, nucleus, VMS. - -2015-02-20 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_prag.ads: Minor typo in comment. - -2015-02-20 Pascal Obry - - * s-osprim-mingw.adb: Fix Get_Base_Time parameter mode. - -2015-02-20 Vincent Celier - - * makeutl.adb (Get_Directories.Add_Dir): Add a directory only - if it exists. - -2015-02-20 Robert Dewar - - * sem_eval.ads: Minor reformatting. - -2015-02-20 Eric Botcazou - - * 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 - - * 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 - - * 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 - - * s-parame-vxworks.adb, s-os_lib.ads: Update comments. - -2015-02-20 Robert Dewar - - * s-osinte-vxworks.ads (To_Timespec): Add comment about the - issue of negative arguments. - -2015-02-20 Eric Botcazou - - * gnat1drv.adb: Minor consistency fix. - -2015-02-20 Pascal Obry - - * s-osprim-mingw.adb (Get_Base_Time): Properly release lock in all - paths. - -2015-02-20 Eric Botcazou - - * 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 - - * exp_util.adb: Minor reformatting. - -2015-02-20 Vincent Celier - - * 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 - - * 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 - - * exp_ch6.adb: Fix minor typo in comment. - -2015-02-20 Eric Botcazou - - * sinfo.ads: Add comment. - -2015-02-20 Olivier Hainque - - * 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 - - * 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 - - * s-stalib.ads: Fix typo. - -2015-02-20 Ed Schonberg - - * 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 - - * lib-load.adb: Minor comment update. - -2015-02-20 Vincent Celier - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * prj-proc.adb, sem_aux.adb, exp_ch9.adb, errout.adb, prj-dect.adb, - prj-nmsc.adb: Minor reformatting. - -2015-02-05 Ed Schonberg - - * 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 - - * exp_ch3.adb (Make_Tag_Assignment): Do not perform this - expansion activity in ASIS mode. - -2015-02-05 Javier Miranda - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_prag.adb, par-prag.adb: Minor code clean up. - -2015-02-05 Yannick Moy - - * 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 - - * 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 - - * checks.adb (Enable_Range_Check): Disconnect attempted - optimization for the case of range check for subscript of - unconstrained array. - -2015-02-05 Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * lib-xref.adb: Minor reformatting. - -2015-02-05 Tristan Gingold - - PR ada/64349 - * env.c: Fix thinko: handle Darwin case before default one. - -2015-01-30 Robert Dewar - - * 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 - - * gcc-interface/Makefile.in (x86-vxworks): Update GCC_SPEC_FILES to - include cert link spec. - -2015-01-30 Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * errout.ads: Minor reformatting. - -2015-01-30 Yannick Moy - - * 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 - - * g-expect.adb (Get_Command_Output): Use infinite timeout when - calling Expect. - -2015-01-30 Ed Schonberg - - * 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 - - * errout.adb (Error_Msg_PT): Minor error phrasing update. - -2015-01-30 Robert Dewar - - * sem_warn.adb (Warn_On_Known_Condition): Improve error message - for object case. - -2015-01-30 Pierre-Marie de Rodat - - * exp_dbug.adb (Get_Encoded_Name): When - -fgnat-encodings=minimal, do not generate names for biased types. - -2015-01-30 Tristan Gingold - - PR ada/64349 - * env.c: Move vxworks and darwin includes out of #ifdef IN_RTS. - -2015-01-30 Gary Dismukes - - * freeze.adb: Minor reformatting. - -2015-01-30 Javier Miranda - - * 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 - - * sem_warn.adb (Warn_On_Known_Condition): Do special casing of - message for False case. - -2015-01-30 Doug Rupp - - * 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 - - * 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 - - * 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 - - * sem_attr.adb (Analyze_Attribute): Ensure that - the check concerning Refined_Post takes precedence over the - other cases. - -2015-01-30 Gary Dismukes - - * sem_prag.adb: Minor typo fixes and reformatting. - -2015-01-30 Yannick Moy - - * sem_attr.adb: Code clean up. - -2015-01-30 Robert Dewar - - * 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 - - * 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 - - * sem_disp.adb: Minor reformatting. - * sem_disp.ads: Documentation update. - -2015-01-30 Ed Schonberg - - * 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 - - * 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 - - * 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 - - 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 - - PR ada/64640 - * adaint.c: Handle __CYGWIN__ like __MINGW32__ here. - * mingw32.h: Don't include under cygwin. - (_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Set to _O_TEXT if not yet defined. - -2015-01-15 Thomas Schwinge - - * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8) - (DEF_FUNCTION_TYPE_VAR_12): New macros. - -2015-01-09 Michael Collison - - * 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 - - * 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 - - * usage.adb (Usage): Correct documentation of - -gnatw.f switches. - -2015-01-07 Robert Dewar - - * s-fileio.adb: Minor reformatting. - -2015-01-07 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * usage.adb (Usage): Document -gnatw.f switch. - -2015-01-07 Ed Schonberg - - * sem_ch12.adb: Code clean up and minor reformatting. - -2015-01-07 Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded - cross ref files. - -2015-01-07 Robert Dewar - - * s-taprop-linux.adb, clean.adb: Minor reformatting. - -2015-01-07 Arnaud Charlet - - * s-tassta.adb: Relax some overzealous assertions. - -2015-01-07 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * clean.adb: Minor error message change. - -2015-01-07 Tristan Gingold - - PR ada/64349 - * env.c (__gnat_environ): Adjust for darwin9/darwin10. - -2015-01-07 Javier Miranda - - * 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 - - * a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb, - exp_ch3.adb: Minor reformatting. - -2015-01-07 Doug Rupp - - * 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 - - * sem_warn.adb (Check_One_Unit): Guard against context item - with no Entity field. - -2015-01-07 Vincent Celier - - * clean.adb (Gnatclean): Warn that 'gnatclean -P' is obsolete. - * make.adb (Initialize): Warn that 'gnatmake -P' is obsolete. - -2015-01-07 Vincent Celier - - * 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 - - * i-cpoint.adb (Copy_Terminated_Array): Nicely handle null target. - -2015-01-07 Doug Rupp - - * 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 - - * exp_pakd.adb: Add a comment in exp_pakd.adb to explain why we - keep ___XP suffixes - -2015-01-07 Tristan Gingold - - * i-cpoint.adb (Copy_Terminated_Array): Use Copy_Array to - handle overlap. - -2015-01-07 Eric Botcazou - - * 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 - - * 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 - - * 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 - - * 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 - - * gcc-interface/trans.c (gnat_to_gnu, ): - Elaborate the expression as part of the same stmt group as the actions. - -2015-01-07 Robert Dewar - - * sem_ch3.adb: Minor error message change. - -2015-01-07 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Preelaborable_Initialization): - Following AI05-028, the pragam applies legally to any composite type. - -2015-01-07 Arnaud Charlet - - * s-osinte-vxworks.adb, s-osinte-vxworks.ads - (sigwait, sigwaitinfo): Removed, not needed after all on any - VxWorks configurations. - -2015-01-07 Robert Dewar - - * sem_ch3.adb, freeze.adb, exp_disp.adb: Minor reformatting. - -2015-01-07 Javier Miranda - - * exp_disp.adb (Expand_Interface_Conversion): Adding missing - generation of accessibility check. - -2015-01-07 Ed Schonberg - - * 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 - - * prj.ads, i-cpoint.adb, freeze.adb, ghost.adb, prj-err.adb: Minor - reformatting. - -2015-01-07 Robert Dewar - - * 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 - - * 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 - - * 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 - - * freeze.adb (Freeze_Array_Type) : Remove always - true test and unreachable 'else' arm. - -2015-01-06 Vincent Celier - - * 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 - - * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Mode and - Install_Name attribute definitions. - -2015-01-06 Ed Schonberg - - * 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 - - * 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 - - * i-cpoint.adb (Copy_Array): Handle overlap. - -2015-01-06 Pascal Obry - - * bindgen.adb: Minor style fix. - -2015-01-06 Robert Dewar - - * sem_util.ads, sem_util.adb: Minor reformatting. - -2015-01-06 Vincent Celier - - * 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 - - * 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 - - * sem_ch12.adb: Sloc of wrapper is that of instantiation. - -2015-01-06 Robert Dewar - - * sem_ch11.adb: Minor reformatting. - -2015-01-06 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_ch12.adb, sem_ch8.adb: Ongoing work for wrappers for actual - subprograms. - -2015-01-06 Javier Miranda - - * exp_disp.adb (Expand_Interface_Conversion): Reapply patch. - -2015-01-06 Thomas Quinot - - * 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 - - * sem_ch12.adb, sem_ch12.ads, sem_ch8.adb: Ongoing work for wrappers - for operators in SPARK. - -2015-01-06 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * s-valrea.adb (Value_Real): Check for Str'Last = Positive'Last - -2015-01-06 Robert Dewar - - * a-wtgeau.adb, a-ztgeau.adb, a-tigeau.adb (String_Skip): Raise PE if - Str'Last = Positive'Last. - -2015-01-06 Ed Schonberg - - * 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 - - * 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 - - * einfo.ads (Is_Independent): Further document extended usage. - -2015-01-06 Eric Botcazou - - * 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 - - * snames.ads-tmpl: Remove entries for attribute Enum_Image. - * exp_attr.adb: Remove reference to Attribute_Enum_Image. - -2015-01-06 Robert Dewar - - * 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 - - * sem_prag.adb (Process_Inline): Remove redundant construct - warning (-gnatw.r) for an ineffective pragma Inline. - -2015-01-06 Robert Dewar - - * 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 - - * s-valint.adb, s-valuns.adb (Value_Integer): Deal with case where - Str'Last = Positive'Last - -2015-01-06 Thomas Quinot - - * xoscons.adb: Display exception information and return non-zero - exit status in top level exception handler. - -2015-01-06 Ed Schonberg - - * sem_ch8.adb: Code clean up. - -2015-01-06 Tristan Gingold - - * targparm.ads: Remove obsolete comment. - -2015-01-06 Olivier Hainque - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sem_ch8.adb (Analyze_Use_Package): Give more specific error - msg for attempted USE of generic subprogram or subprogram. - -2015-01-06 Robert Dewar - - * 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 - - * 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 - - * gnat1drv.adb: Minor: complete previous change. - -2015-01-06 Olivier Hainque - - * 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 - - * 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 - - * 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 - - * exp_disp.adb: Revert previous change. - -2015-01-06 Robert Dewar - - * 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 - - * gnat_rm.texi: Improve documentation regarding No_Task_Termination. - -2015-01-06 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * gnat1drv.adb: Minor code clean up. - (Adjust_Global_Switches): Ignore gnatprove_mode in codepeer_mode. - -2015-01-06 Bob Duff - - * osint.adb (Read_Source_File): Don't print out - file name unless T = Source. - -2015-01-06 Ed Schonberg - - * 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 - - * 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 - - * 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 - - * a-strsup.adb (Times (Natural;String;Positive)): Raise - Length_Error, not Index_Error, when the result is too long. - -2015-01-06 Thomas Quinot - - * a-direct.adb (Create_Path): Minor error handling and - performance improvement. - -2015-01-06 Robert Dewar - - * 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 - - * 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 - - * 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 - - * exp_strm.adb (Build_Elementary_Input_Call): Return base type - (as required by RM). - -2015-01-06 Arnaud Charlet - - * a-reatim.adb ("/"): Add explicit pragma Unsuppress (Division_Check). - -2015-01-06 Robert Dewar - - * sem_prag.adb (Process_Suppress_Unsuppress): Add extra warning - for ignoring pragma Suppress (Elaboration_Check) in SPARK mode. - -2015-01-06 Javier Miranda - - * 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 - - * prj-env.adb: Minor comment update. - -2015-01-06 Javier Miranda - - * 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 - - * 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 - - * sem_ch12.adb: Code clean up. - -2015-01-06 Arnaud Charlet +2016-01-02 Eric Botcazou * gnatvsn.ads: Bump copyright year. -2015-01-06 Robert Dewar - - * s-taskin.ads, s-traces.ads: Minor reformatting. - * exp_util.adb: Minor typo fix. - -2015-01-06 Vincent Celier - - * 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 - - * 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 - - * 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 - - * 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 - - * gnat_ugn.texi: Bump @copying's copyright year. - -2015-01-05 Eric Botcazou - - PR ada/64492 - * gcc-interface/Makefile.in (../stamp-tools): Reinstate dropped code. - -2015-01-04 Uros Bizjak - - * gcc-interface/misc.c (internal_error_function): Use xasprintf instead - of unchecked asprintf. - -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 diff --git a/gcc/ada/ChangeLog-2015 b/gcc/ada/ChangeLog-2015 new file mode 100644 index 00000000000..7226214dec5 --- /dev/null +++ b/gcc/ada/ChangeLog-2015 @@ -0,0 +1,10511 @@ +2015-12-20 Eric Botcazou + + * gcc-interface/utils2.c (gnat_rewrite_reference) : New + case identical to FLOAT_EXPR. + : Likewise. + +2015-12-20 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : 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 + + * 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 + + * gcc-interface/ada-tree.h (TYPE_DEBUG_TYPE): Remove duplicate. + +2015-12-17 Pierre-Marie de Rodat + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * gcc-interface/trans.c (Call_to_gnu): Remove guard for NULL_EXPR. + * gcc-interface/utils2.c (gnat_rewrite_reference) : Return + the reference unmodified. + : New case. Likewise. + +2015-12-10 Eric Botcazou + + * 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 + + PR ada/65102 + * gnat-style.texi: Set nodefaultgnufreedocumentationlicensenode and + define @node GNU Free Documentation License locally. + +2015-12-09 Eric Botcazou + + 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 + + PR c/48088 + PR c/68657 + * gcc-interface/trans.c (Pragma_to_gnu): Adjust control_warning_option + caller. + +2015-12-06 Piotr Trojanek + + PR ada/60164 + * doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Fix typo. + +2015-12-06 Eric Botcazou + + PR ada/50048 + * gcc-interface/Makefile.in (INCLUDES): Use -iquote. + +2015-12-06 Eric Botcazou + + PR ada/56274 + * s-osinte-kfreebsd-gnu.ads (pthread_rwlock_t): New subtype. + (pthread_rwlockattr_t): Likewise. + +2015-12-06 Ludovic Brenta + + 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 + + PR ada/49940 + * s-osinte-kfreebsd-gnu.ads (lwp_self): New imported function. + +2015-12-01 Jan Sommer + + 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 + + * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Reorder. + +2015-11-30 Eric Botcazou + + * gcc-interface/trans.c (gigi): Fix initialization order. + +2015-11-30 Eric Botcazou + + * 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 + + * gcc-interface/gigi.h (create_var_decl): Adjust prototype. + (create_subprog_decl): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : 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. + : 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 + + * 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 + + * gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions. + +2015-11-30 Eric Botcazou + + * 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 + + 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 + + PR ada/68564 + * gcc-interface/Makefile.in: Fix sparc/sparc64 bitness detection. + +2015-11-25 Arnaud Charlet + + * 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 + + * exp_util.adb (Remove_Side_Effects): Minimize extra temporaries + and use of 'Reference when needed. + +2015-11-25 Doug Rupp + + * 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 + + * 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 + + * sem_elab.adb (Check_Internal_Call_Continue): Code clean ups. + +2015-11-25 Eric Botcazou + + * 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 + + * gnatcmd.adb: When -gnat is called with switch -P + and a GPR tool is invoked, invoke the GPR tool with switch + --target=. + +2015-11-25 Hristian Kirtchev + + * opt.adb, bcheck.adb: Minor reformatting. + +2015-11-25 Jerome Lambourg + + * 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 + + * gnatcmd.adb: When "gnat name -P" is called, invoke gprname + directly if available. + +2015-11-25 Tristan Gingold + + * init.c (__gnat_is_stack_guard): Do not use mach calls for + IOS simulator. + +2015-11-24 Pierre-Marie de Rodat + + * gcc-interface/utils.c (gnat_write_global_declarations): Output + debugging information for top-level imported declarations. + +2015-11-24 Gary Dismukes + + * 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 + + * gcc-interface/decl.c (gnat_to_gnu_entity) : In + ASIS mode, do a minimal translation for root types with discriminants. + * gcc-interface/trans.c (gnat_to_gnu) : Move around. + : Likewise. In ASIS mode, + process the declarations attached to the body. + +2015-11-24 Eric Botcazou + + * 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 + + * 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 + + * 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 + Eric Botcazou + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use case #1 + for the renaming of an address. + +2015-11-18 Eric Botcazou + + * gcc-interface/trans.c (fold_constant_decl_in_expr) : If + the index is not itself constant then bail out. + +2015-11-18 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * s-arit64.adb (To_Neg_Int): Add a special case for 2**63 input. + +2015-11-18 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * s-pooglo.ads: Make Global_Pool_Object aliased. + +2015-11-18 Ed Schonberg + + * 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 + + * exp_ch11.adb (Expand_N_Exception_Declaration): No-op when + generating C code. + +2015-11-18 Hristian Kirtchev + + 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 + + * 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 + + * 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 + + * switch-c.adb (Scan_Front_End_Switches): Add a check requiring + -gnatc with -gnateg. + +2015-11-18 Ed Schonberg + + * 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 + + * s-parame-vxworks.adb: Increase default stack size for targets + using stack limit checking. + +2015-11-18 Jose Ruiz + + * 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 + + * exp_ch9.adb (Is_Pure_Barrier): Handle expanded component + declaration of a protected definition. + +2015-11-18 Ed Falis + + * s-soflin.adb, s-stchop-vxworks.adb: Code clean ups. + +2015-11-18 Gary Dismukes + + * bcheck.adb: Minor editorial changes. + +2015-11-18 Arnaud Charlet + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_util.adb: Minor reformatting and typo fixes. + +2015-11-18 Hristian Kirtchev + + * sem_ch4.adb: Minor reformatting. + +2015-11-18 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * adaint.c: Routine __gnat_killprocesstree only implemented on + Linux and Windows. + +2015-11-18 Pascal Obry + + * g-ctrl_c.adb: Minor style fixes. + +2015-11-18 Pascal Obry + + * adaint.c, s-os_lib.adb, s-os_lib.ads (Kill_Process_Tree): New. + +2015-11-18 Hristian Kirtchev + + * 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 + + * 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 + + PR ada/68345 + * s-osinte-dragonfly.ads (Get_Page_Size): C function returns an int. + +2015-11-13 David Malcolm + + * gcc-interface/trans.c (Sloc_to_locus): Add line_table param when + calling linemap_position_for_line_and_column. + +2015-11-13 Hristian Kirtchev + + * exp_attr.adb: Minor reformatting. + +2015-11-13 Pascal Obry + + * adaint.c: Ensure that it is possible to get killed process + status on Windows. + +2015-11-13 Arnaud Charlet + + * 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 + + * sigtramp-ios.c, init.c: Minor cosmetic tweaks. + +2015-11-13 Hristian Kirtchev + + * s-gloloc.adb, g-debpoo.adb: Minor reformatting. + +2015-11-13 Ed Schonberg + + * 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 + + * 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 + + * sem_prag.adb (Analyze_Pragma): Pragma Constant_After_Elaboration can + now apply to a variable without an initialization expression. + +2015-11-13 Hristian Kirtchev + + * 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 + + * sem_ch13.adb (Analyze_Aspect_Specifications): Continue the analysis + after encountering an illegal aspect Part_Of. + +2015-11-13 Ed Schonberg + + * 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 + + * 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 + + * sinfo.ads: Minor comment fix. + * sem_ch6.adb: Minor reformatting. + +2015-11-13 Jerome Lambourg + + * tracebak.c: Do not use the GCC Unwinder to retrieve traceback + for x86_64-vx7. + +2015-11-13 Eric Botcazou + + * init.c [Darwin/arm64]: Fix typo. + * sigtramp-armios.c: Remove. + * sigtramp-ios.c: New file. + +2015-11-13 Doug Rupp + + * s-stchop-vxworks.adb (Set_Stack_Limit_For_Current_Task): Set stack + limit to 12000 decimal vice 12000 hexadecimal. + +2015-11-13 Hristian Kirtchev + + * 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 + + * s-rident.ads (Profile_Info): Enable Pure_Barriers for + GNAT_Extended_Ravenscar. + +2015-11-13 Bob Duff + + * 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 + + * exp_ch9.adb: Minor reformatting and typo fixes. + +2015-11-13 Eric Botcazou + + * 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 + + * bcheck.adb (Check_Consistent_Restrictions): Do not check + consistency of No_Dependence for runtime units. + +2015-11-13 Tristan Gingold + + * 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 + + * 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 + + * 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 + + * sigtramp.h: Fix formatting throughout, do not include other + headers, add missing preprocessor condition and 'extern' keywords. + * sigtramp-armdroid.c: Include . + * init.c [Android]: Likewise. + +2015-11-13 Eric Botcazou + + * init.c [Darwin/arm64] (__gnat_sigtramp): Do not increment PC, + fix CFI and add return sequence. + +2015-11-13 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * lib-xref-spark_specific.adb + (Is_Constant_Object_Without_Variable_Input): Add special case + for imported constants. + +2015-11-12 Philippe Gil + + * g-debpoo.adb (Allocate): Avoid having allocations not handled. + +2015-11-12 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * init.c: Properly adjust PC values in case of signals. + +2015-11-12 Bob Duff + + * 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 + + * switch-c.adb, gnat1drv.adb, opt.ads: Reserve -gnateg for generation + of C headers. + +2015-11-12 Arnaud Charlet + + * back_end.adb, opt.ads (Debugger_Level): Update comment. + (Scan_Back_End_Switches): Set Debugger_Level. + +2015-11-12 Bob Duff + + * fmap.adb, debug.ads, checks.adb, exp_ch11.adb: Minor edits. + +2015-11-12 Doug Rupp + + * s-stchop-vxworks.adb (Stack_Limit): Export vice Import. + +2015-11-12 Gary Dismukes + + * sem_dim.adb: Minor reformatting. + +2015-11-12 Gary Dismukes + + * gnat1drv.adb, opt.ads: Minor reformatting. + +2015-11-12 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * usage.adb: Update overflow checking documentation. + +2015-11-12 Tristan Gingold + + * 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 + + * 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 + + * 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 + + * s-stchop-vxworks.adb: Clean up in stack checking code. + +2015-11-12 Gary Dismukes + + * 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 + + * 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 + + * init.c: Do not try to mess with the MSR values in RTP mode: + not needed and forbidden. + +2015-11-12 Ed Schonberg + + * 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 + + * init.c: Do not try to mess with the MSR values in RTP mode: + not needed and forbidden. + +2015-11-12 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * init.c (__gnat_error_handler): Force the SPE bit of the MSR + when executing on e500v2 CPU. + +2015-11-12 Hristian Kirtchev + + * sem_prag.adb (Analyze_Constituent): Stop the + analysis after detecting a misplaced constituent as this is a + critical error. + +2015-11-12 Hristian Kirtchev + + * sem_ch10.adb, atree.adb: Minor reformatting. + +2015-11-12 Hristian Kirtchev + + * 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 + + * 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 + + * exp_attr.adb, freeze.adb, sem_util.adb, sem_ch13.adb: Minor + reformatting. + +2015-11-12 Ed Schonberg + + * 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 + + * 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 + + * checks.ads: Minor comment fix. + +2015-11-12 Arnaud Charlet + + * 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 + + * 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) : Remove + over-restrictive condition for the special treatment of deferred + constants. + : Remove obsolete associated code. + +2015-11-12 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : Do + not materialize renamed subprograms if only annotating types. + +2015-11-12 Pierre-Marie de Rodat + + * 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 + + * s-os_lib.ads: Documentation update. + +2015-11-12 Arnaud Charlet + + * s-taprop-vxworks.adb, s-osinte-vxworks.ads: Use a single import of + taskDelay to avoid confusion. + +2015-11-12 Ed Schonberg + + * 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 + + * bindgen.adb (Gen_Adainit): Code cleanup. + +2015-11-12 Hristian Kirtchev + + * s-stalib.ads: Code cleanup. + +2015-11-12 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * bindgen.adb: Fix typo. + * sem_ch6.adb: Minor reformatting. + +2015-11-12 Emmanuel Briot + + * s-os_lib.adb (Argument_String_To_List): fix handling of + windows separators + +2015-11-11 Andrew MacLeod + + * 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 + + * gcc-interface/gigi.h (set_reverse_storage_order_on_pad_type): + Declare. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set the + storage order on the enclosing record for a packed array type. + : Set the storage order. + : Likewise. + : Likewise. + : 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 + + * gcc-interface/utils.c: Don't undef DEF_BUILTIN. + +2015-10-29 Andrew MacLeod + + * 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 + + * 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 + + * adaint.c, s-os_lib.adb, s-os_lib.ads (Copy_File_Attributes): New + subprogram. + +2015-10-27 Hristian Kirtchev + + * namet.adb, namet.ads: Minor reformatting. + +2015-10-27 Ed Schonberg + + * 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 + + * 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 + + * sem_util.ads, par.adb, sem_ch6.adb: Minor reformatting and a few + typo corrections. + +2015-10-27 Pierre-Marie de Rodat + + * namet.ads, namet.adb (Name_Equals): New function. + * namet.h (Name_Equals): New macro. + +2015-10-27 Arnaud Charlet + + * 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 + + * 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 + + * 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 + + * gnatlink.adb: Always delete the response file, even when the + invocation of gcc to link failed. + +2015-10-27 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sinput.ads, spark_xrefs.ads, lib-xref.adb: Fix typos. + +2015-10-27 Pascal Obry + + * a-dirval-mingw.adb: Remove some characters from Invalid_Character set. + +2015-10-27 Ed Schonberg + + * 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 + + * gnat1drv.adb: Remove hard coded restrictions. + +2015-10-27 Pascal Obry + + * a-dirval-mingw.adb: Minor reformatting. + +2015-10-27 Javier Miranda + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve previous patch. + +2015-10-27 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * einfo.adb: Access_Disp_Table applies to a private + extension. + +2015-10-26 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * s-os_lib.adb (Argument_String_To_List): Remove backslashes in + argument value. + +2015-10-26 Javier Miranda + + * exp_unst.ads, exp_unst.adb (Is_Uplevel_Referenced): Removed. + +2015-10-26 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_ch7.adb, exp_ch6.adb: Minor comment fix. + +2015-10-26 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * exp_unst.ads, exp_unst.adb (Is_Uplevel_Referenced): New subprogram. + +2015-10-26 Ed Schonberg + + * 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 + + * sem_ch3.adb, sem_util.adb: Minor reformatting. + +2015-10-26 Javier Miranda + + * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Return False when + generating C code. + * sem_ch3.adb: Fix typos. + +2015-10-26 Bob Duff + + * 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 + + * 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 + + * 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 + + * s-os_lib.ads: Minor reformatting/rewording. + +2015-10-26 Arnaud Charlet + + * debug.adb: Introduce debug flag -gnatd.5. + +2015-10-26 Pascal Obry + + * 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 + + * einfo.ads, einfo.adb, exp_unst.adb (Needs_Typedef, + Set_Needs_Typedef): Removed, no longer used. + +2015-10-26 Hristian Kirtchev + + * 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 + + * 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 + + * sinfo.ads, sem_util.ads: Update comments. + +2015-10-26 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * osint-c.ads: Minor comment update. + +2015-10-26 Arnaud Charlet + + * 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 + + * 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 + + * exp_unst.adb: Minor reformatting. + +2015-10-26 Ed Schonberg + + * sem_ch6.adb: Improve error msg. + +2015-10-26 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_prag.adb (Analyze_Pragma): Pragma + Extensions_Visible can now appear on an abstract subprogram + declaration. + +2015-10-26 Yannick Moy + + * 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 + + * 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 + + * inline.adb: Minor reformatting. + +2015-10-26 Yannick Moy + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * a-nudira.ads: Remove SPARK_Mode as it currently causes an error. + +2015-10-26 Arnaud Charlet + + * 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 + + * 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 + + * sem_ch6.adb: Handle subprogram bodies without previous specs. + +2015-10-26 Claire Dross + + * a-nudira.ads: Specify appropriate SPARK_Mode so that the unit + can be used in SPARK code. + +2015-10-26 Hristian Kirtchev + + * 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 + + * 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 + + * sem_util.adb (Is_Suspension_Object): Ensure that the scope of "Ada" + is Standard_Standard. + +2015-10-26 Hristian Kirtchev + + * 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 + + * 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 + + * sem_aux.ads (Number_Components): Can return 0 when called on + an empty record. + +2015-10-26 Hristian Kirtchev + + * 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 + + * sem_ch13.adb: Minor reformatting. + +2015-10-26 Steve Baird + + * exp_disp.adb: Omit most dispatch table initialization code + if Generate_SCIL is true. + +2015-10-26 Arnaud Charlet + + * 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 + + * 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 + + * treepr.adb: Code clean up. + +2015-10-26 Eric Botcazou + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * errout.ads: Minor comment fix. + * einfo.ads: Minor style fix. + +2015-10-26 Bob Duff + + * 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 + + * 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 + + * 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 + + * sem_ch13.adb: Minor reformatting. + * einfo.ads: Minor typo. + +2015-10-26 Joel Brobecker + + * adaint.c (__gnat_open_new_temp): Use mkstemp on Android. + +2015-10-26 Ed Schonberg + + * 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 + + * a-reatim.adb, contracts.adb, contracts.ads: Minor reformatting and + typo corrections. + +2015-10-26 Ed Schonberg + + * 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 + + * sem_res.adb (Resolve_Call): Issue info message + instead of warning when call cannot be inlined in GNATprove mode. + +2015-10-26 Arnaud Charlet + + * 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 + + * gcc-interface/utils2.c (build_binary_op): Tweak formatting. + (build_unary_op): Likewise. + +2015-10-23 Arnaud Charlet + + * 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 + + * 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 + + * 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 + + * gcc-interface/utils2.c (build_call_alloc_dealloc): Check no implicit + task and protected object restrictions. + +2015-10-23 Hristian Kirtchev + + * sem_ch12.adb, exp_ch6.adb: Minor reformatting. + +2015-10-23 Gary Dismukes + + * exp_ch6.adb: Minor reformatting. + +2015-10-23 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * a-exextr.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting. + +2015-10-23 Arnaud Charlet + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_attr.adb, freeze.adb, sem_attr.adb, exp_aggr.adb, + gnatname.adb: Minor reformatting. + +2015-10-23 Steve Baird + + * 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 + + * 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 + + * 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 + + * sigtramp.h (struct sigcontext, struct ucontext): Remove declarations, + and replace them by include of corresponding header file. + +2015-10-23 Bob Duff + + * a-convec.adb (Copy): Make sure C is initialized + on all paths, including when Checks is False. + +2015-10-23 Eric Botcazou + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove + error as unreachable. + +2015-10-23 Arnaud Charlet + + * gnat1drv.adb (Adjust_Global_Switches): Adjust. + +2015-10-23 Hristian Kirtchev + + * exp_dbug.ads, exp_dbug.adb (Get_External_Name): The special prefix for + ignored Ghost entities is now ___ghost_. + +2015-10-23 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * init.c (__gnat_sigtramp): New assembly function for arm64-darwin. + (__gnat_error_handler): Use trampoline for arm64. + +2015-10-23 Ed Schonberg + + * 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 + + * gnatname.adb: Code clean up. + * s-taasde.ads: Fix comment. + +2015-10-23 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * exp_unst.adb (Unnest_Subprogram): Complete previous + change and update comments. + +2015-10-23 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_dim.adb (Analyze_Dimension_Extension_Or_Record_Aggregate): + Handle properly a box-initialized aggregate component. + +2015-10-23 Yannick Moy + + * sem_prag.adb (Analyze_Pragma): Reject Volatile_Function not placed + on a function. + +2015-10-23 Yannick Moy + + * 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 + + * 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 + + * gnat1drv.adb (Adjust_Global_Switches): Adjust settings. + * sem.adb (Semantics): Remove special case. + +2015-10-23 Gary Dismukes + + * bindgen.adb, restrict.adb: Minor spelling/grammar fixes. + +2015-10-23 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + PR driver/68043 + * gcc-interface/lang.opt: End each sentence that describes + an option with a period. + +2015-10-20 Yannick Moy + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_ch4.adb: Minor reformatting. + +2015-10-20 Bob Duff + + * s-mudido-affinity.adb (Create): Correct subranges of slices of CPU + arrays. + +2015-10-20 Arnaud Charlet + + * 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 + + * exp_ch4.adb (Expand_Array_Comparison): Use + generic code if runtime routine is not available. + +2015-10-20 Yannick Moy + + * 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 + + * 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 + + * prj-attr.adb: Add packages Prove and GnatTest. + +2015-10-20 Steve Baird + + * 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 + + * pprint.adb: Code clean up. + +2015-10-20 Bob Duff + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_prag.adb: Code clean up. + +2015-10-20 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * sem_prag.adb: Minor reformatting. + +2015-10-20 Tristan Gingold + + * 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 + + * 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 + + * init.c: Fix build issue on arm-vx6 when building the RTP + run-time. + +2015-10-20 Ed Schonberg + + * 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 + + * 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 + + * sem_util.adb (Find_Actual): The routine is + now capable of operating on entry calls. + +2015-10-20 Ed Schonberg + + * sem_res.adb: Remove redundant check. + +2015-10-20 Jerome Lambourg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_ch9.adb (Expand_Entry_Barrier): Default initialize local variable + Func. + +2015-10-20 Jerome Lambourg + + * init.c (__gnat_error_handler for vxworks): Force + SPE bit in the MSR when handling signals + +2015-10-20 Arnaud Charlet + + * 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 + + * 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 + + * 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 + + * inline.ads: Minor comment fixes. + +2015-10-20 Bob Duff + + * a-comutr.ads (Tree_Node_Access): Add No_Strict_Aliasing, because + we're doing unchecked conversions with this pointer. + +2015-10-20 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_ch7.adb (Process_Declarations): A loop + parameter does not require finalization actions. + +2015-10-20 Eric Botcazou + + * 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 + + * s-atocou.adb, s-atocou-builtin.adb: Fix implementation description + related to new type support. + +2015-10-20 Ed Schonberg + + * 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 + + * 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 + + * sem_util.adb (Requires_Transient_Scope): + Return true for mutable records if the maximum size is very large. + +2015-10-20 Eric Botcazou + + * a-except-2005.adb (To_Stderr): Import Put_Char_Stderr with + the same signature as in System.IO.Put. + +2015-10-20 Bob Duff + + * a-cobove.adb (Set_Length): Restore previous logic, but with "Checks + and then" on the check. + +2015-10-20 Ed Schonberg + + * par-ch3.adb (P_Known_Discriminant_Part_Opt): Handle properly + a misplaced "constant" keyword in a discriminant specification. + +2015-10-20 Steve Baird + + * 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 + + * 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 + + * adaint.c: File names are case sensitive on aarch64-ios. + +2015-10-20 Bob Duff + + * 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 + + * exp_util.adb (Requires_Cleanup_Actions): A loop parameter does not + require finalization actions. + +2015-10-20 Ed Schonberg + + * 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 + + * 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 + + * sem_smem.adb (Check_Shared_Var): Clean up code that handles + type declarations with discriminants, remove obsolete check. + +2015-10-20 Arnaud Charlet + + * par_sco.adb: Minor style fixes. + +2015-10-20 Vincent Celier + + * debug.adb: Update documentation of -gnatdu. + +2015-10-20 Hristian Kirtchev + + * 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 + + * 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 + + * gcc-interface/Makefile.in: Update targets. + +2015-10-20 Bob Duff + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_ch12.adb (Need_Subprogram_Instance_Body): Also return true + for a subprogram nested in an inlined subprogram. + +2015-10-20 Bob Duff + + * a-coinve.adb, a-contai.adb: Update comments. + * pprint.ads: Minor reformatting. + +2015-10-20 Tristan Gingold + + * env.c, init.c: Handle arm64-darwin like arm-darwin. + * tracebak.c: Handle arm64-darwin. + +2015-10-20 Bob Duff + + * s-trasym.adb (Symbolic_Traceback): When giving the traceback + as hexadecimal code addresses, separate by blanks instead of LF. + +2015-10-20 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate freeze + node for subprogram in Compile_Only mode. + +2015-10-20 Dmitriy Anisimkov + + * 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 + + * 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 + + * fe.h: Minor tweak. + +2015-10-20 Vincent Celier + + * sem_cat.adb (Check_Categorization_Dependencies): Do nothing + when -gnatdu is specified. + +2015-10-20 Ed Schonberg + + * 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 + + * sem_ch13.adb: Minor reference change (RM => AARM). + +2015-10-20 Eric Botcazou + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * make.adb (Check): Skip multilib switches reinstated by the + compiler when doing the comparison with switches passed to + gnatmake. + +2015-10-20 Yannick Moy + + * 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 + + * types.ads: Minor reformatting. + +2015-10-20 Hristian Kirtchev + + * 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 + + * 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 + + * prj-attr.adb: Add package Codepeer and its attributes. + +2015-10-20 Thomas Quinot + + * sem_ch3.adb, sem_ch13.adb: Minor reformatting. + +2015-10-20 Eric Botcazou + + * 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 + + * 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 + + * 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 + + * exp_ch5.adb, sem_ch3.adb: Minor reformatting. + +2015-10-20 Vincent Celier + + * a-strsup.adb (Super_Trim): Remove statements that put NUL + characters in unused portion of the Data string. + +2015-10-16 Hristian Kirtchev + + * 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 + + * prj-pp.adb (Pretty_Print.Print): Correctly display extending + packages, instead of making them renamed packages. + +2015-10-16 Hristian Kirtchev + + * 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 + + * exp_ch5.adb: Code clean up. + * sem_ch13.adb: Minor fix in comment. + +2015-10-16 Bob Duff + + * 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 + + * 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 + + * exp_ch7.adb: Minor spelling fixes. + +2015-10-16 Ed Schonberg + + * 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 + + * prj.adb, sem_util.adb, exp_ch6.adb: Minor reformatting. + +2015-10-16 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_util.adb (Is_Object_Reference): Attribute 'Loop_Entry produces + an object. + * sem_ch6.adb: Minor fix in comment. + +2015-10-16 Bob Duff + + * 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 + + * sem_ch13.adb (Chek_Record_Representation_Clause): When + iterating over components, skip anonymous subtypes created for + constrained array components. + +2015-10-16 Eric Botcazou + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * bindgen: Move pragmas Warnings earlier, otherwise + we can get warnings on with_clauses. + +2015-10-16 Arnaud Charlet + + * 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 + + * 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 + + * 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 + + * sinfo.ads, einfo.ads: monir clean ups. + +2015-10-16 Arnaud Charlet + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_attr.adb: Minor editorial changes. + +2015-10-16 Arnaud Charlet + + * 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 + + * 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 + + * sem_ch12.adb: Minor reformatting/rewording. + +2015-10-16 Arnaud Charlet + + * einfo.ads: Minor fix of duplicate words + * rident.ads: Minor style fix in comment + +2015-10-16 Hristian Kirtchev + + * 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 + + * debug.adb: Document -gnatdQ switch. + +2015-10-16 Ed Schonberg + + * 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 + + * sem_util.ads, sinput.ads, bcheck.adb: Minor comment fixes. + +2015-10-16 Javier Miranda + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * gcc-interface/utils.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10, + DEF_FUNCTION_TYPE_11): Define. + +2015-10-09 Eric Botcazou + + * 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 + + * gcc-interface/trans.c (convert_with_check): Use real_arithmetic + instead of REAL_ARITHMETIC. + +2015-10-05 Richard Sandiford + + * gcc-interface/trans.c (convert_with_check): Use real_less instead + of REAL_VALUES_LESS. + +2015-10-02 Doug Rupp + Olivier Hainque + + * 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 + + * gcc-interface/trans.c (Pragma_to_gnu) : Replace + linear search with call to find_opt and issue warnings if the -W + switch is not appropriate. + +2015-10-02 Eric Botcazou + + * 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 + + * 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 + + * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_11): Don't define. + +2015-09-28 Tom de Vries + + * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_6): Define. + +2015-09-17 Eric Botcazou + + * gcc-interface/trans.c (emit_check): Do not touch TREE_SIDE_EFFECTS. + +2015-09-14 Pierre-Marie de Rodat + + * gcc-interface/misc.c (gnat_post_options): Issue a warning if + generating STABS debugging information when not the default. + +2015-09-14 Eric Botcazou + + * 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 + + * gcc-interface/utils2.c (gnat_rewrite_reference) : Add + another acceptable pattern for the RHS. + +2015-07-24 Micahel Darling + + PR other/66259 + * prj-nmsc.adb: Reflects renaming of configure.in to configure.ac + * gcc-interface/Makefile.in: Likewise + +2015-07-12 Aldy Hernandez + + * 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 + + * 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 + + * s-oscons-tmplt.c: Add support for DragonFly alongside FreeBSD. + +2015-06-29 Eric Botcazou + + 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 + + PR fortran/66605 + * gcc-interface/misc.c (gnat_post_options): No need to disable + warn_unused_parameter anymore. + +2015-06-26 Eric Botcazou + + * 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 + + * 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 + + * 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 + + * 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) : 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 + + * 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 + + * 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 + + * 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 + + * gcc-interface/misc.c: Include calls.h not function.h. + +2015-06-19 Eric Botcazou + + * 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. + : Adjust calls to create_var_decl and create_var_decl_1. + Remove DECL_IGNORED_P settings. + : Likewise. + : Likewise. + : 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 + + * gcc-interface/misc.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): Define. + +2015-06-19 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Make sure + the size of a padding type built around the return type is positive. + * gcc-interface/trans.c (gnat_to_gnu) : + Use INIT_EXPR instead of MODIFY_EXPR to assign to the return object. + +2015-06-17 Andrew MacLeod + + * 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 + + * gcc-interface/utils.c (get_global_context): Register the main + translation unit through the new debug hook. + +2015-06-09 Eric Botcazou + + * gcc-interface/misc.c: Remove duplicate include directives. + * gcc-interface/trans.c: Likewise. + * gcc-interface/utils.c: Likewise. + +2015-06-08 Andrew MacLeod + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * gcc-interface/decl.c (gnat_to_gnu_entity) : If + processing a definition, create definitions for padding types + around return types. + +2015-06-03 Eric Botcazou + + * gcc-interface/utils.c (copy_type): Also set TYPE_CANONICAL. + +2015-06-03 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : Fix + typo in latest change. + +2015-06-01 Eric Botcazou + + * gcc-interface/Makefile.in: Fix ARM/Darwin configuration. + +2015-06-01 Pierre-Marie de Rodat + + * 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 + + * gcc-interface/decl.c (gnat_to_gnu_entity): Replace pointer types with + references ones for functions that return references. + +2015-06-01 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : 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 + + * 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 + + * 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 + + * gcc-interface/decl.c (gnat_to_gnu_entity) : If the + record has a parent field and a representation clause, make sure that + it is properly aligned. + +2015-06-01 Eric Botcazou + + * gcc-interface/trans.c (lvalue_required_p) : Deal + with character and enumeration literals as index values. + +2015-06-01 Eric Botcazou + + * gcc-interface/gigi.h (build_simple_component_ref): Declare. + * gcc-interface/decl.c (gnat_to_gnu_entity) : 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) : Deal + with the pattern built for aligning types. + : 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 + + * s-oscons-tmplt.c: Add explicit tests for Android alongside Linux. + +2015-05-30 Eric Botcazou + + * 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 + + * gcc-interface/utils.c (max_size) : Add special code to + deal with the subtraction of a "negative" value in an unsigned type. + +2015-05-28 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : 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 + + * 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 + + * 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) : 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. + : New case. + +2015-05-28 Ed Schonberg + + * 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 + + * 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 + + * sem_util.adb (Requires_Transient_Scope): Avoid returning + function results on the secondary stack in so many cases. + +2015-05-28 Ed Schonberg + + * 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 + + * 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 + + * sem_ch13.adb, sem_disp.ads: Minor reformatting. + +2015-05-28 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * gcc-interface/Makefile.in (TOOLS_LIBS): Add @NO_PIE_FLAG@. + +2015-05-27 Eric Botcazou + + * 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 + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Move down + code applying atomic checks to the object. + +2015-05-27 Robert Dewar + + * sem_aux.adb: Minor rewording. + +2015-05-27 Bob Duff + + * exp_prag.adb (Expand_Pragma_Abort_Defer): Make + pragma Abort_Defer do nothing if Abort_Allowed is False. + +2015-05-27 Arnaud Charlet + + * 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 + + * adaint.c (__gnat_tmp_name) [vxworks]: Robustify and use for rtp as + well as kernel. + +2015-05-27 Pierre-Marie de Rodat + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_aux.adb, sem_aux.ads (First_Discriminant): Return empty when + applied to a type with no known discriminants. + +2015-05-26 Robert Dewar + + * errout.ads, sem_ch4.adb, sem_ch6.adb: Minor reformatting. + +2015-05-26 Bob Duff + + * 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 + + * 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 + + * exp_ch7.adb: Minor comment fix. + +2015-05-26 Eric Botcazou + + * gcc-interface/trans.c (Attribute_to_gnu) : Do not + bother about NaN's if Machine_Overflows is true. + +2015-05-26 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : 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 + + * gcc-interface/trans.c (Attribute_to_gnu) : 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 + + * 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) : 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 + + * 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) : 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 + + * 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 + + * sem_ch8.adb (Analyze_Object_Renaming): Lift restriction on + components of Volatile_Full_Access objects. + +2015-05-26 Ed Schonberg + + * 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 + + * einfo.adb (Write_Field17_Name): Move E_Incomplete_Subtype + case to... + (Write_Field19_Name): ...here. + +2015-05-26 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_util.adb: Minor typo fix. + +2015-05-26 Yannick Moy + + * sem_aux.adb (Subprogram_Body_Entity): Deal with subprogram stubs. + +2015-05-26 Hristian Kirtchev + + * 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 + + * sem_ch3.adb, sem_aux.adb, sem_aux.ads, exp_ch6.adb, sprint.adb: + Minor reformatting. + +2015-05-26 Gary Dismukes + + * gnat1drv.adb, targparm.adb, targparm.ads, restrict.adb: Minor + reformatting and typo fixes in comments. + +2015-05-26 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * sem_util.adb, sem_util.ads, sem_ch13.adb: Minor typo fixes. + +2015-05-26 Doug Rupp + + * init.c [vxworks]: Refine previous checkin. + +2015-05-26 Robert Dewar + + * exp_ch4.adb (Wrap_MA): New function. + (Expand_N_Op_Expon): Use Wrap_MA. + +2015-05-26 Bob Duff + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * init.c [vxworks] (sysLib.h): Only for x86. + +2015-05-26 Doug Rupp + + * 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 + + * sem_aux.adb, sem_disp.adb, sem_util.ads: Add comment. + * sem_util.adb: Minor reformatting + +2015-05-26 Yannick Moy + + * 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 + + * 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 + + * sinfo.adb: Minor comment addition. + * einfo.adb: Minor whitespace and punctuation fix. + * sem_util.adb: Minor editing of comments. + +2015-05-26 Ed Schonberg + + * 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 + + * exp_prag.adb, gnat1drv.adb: Minor reformatting. + +2015-05-26 Eric Botcazou + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * einfo.ads, sem_util.adb, sem_ch4.adb: Minor reformatting. + +2015-05-26 Robert Dewar + + * exp_unst.adb, exp_unst.ads: Change to using Subps table index for + making AREC entity names unique. + +2015-05-26 Ed Schonberg + + * 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 + + * sem_util.adb: Minor code reorganization. + * sem_ch6.adb: Minor reformatting. + +2015-05-25 Eric Botcazou + + * 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 + + * 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 + + * 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 + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Move around. + : Merge with E_Variable case. + : Remove 'object' label. + +2015-05-25 Eric Botcazou + + * 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 + + * 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. + : Build a variant of the XUA type instead of forcing + TYPE_VOLATILE on it. + : Use the main variant of the base type. + Do not force TYPE_VOLATILE on the type being built. + : Likewise. + : Likewise. + : 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. + : If the renamed object has side-effects + evaluate only its address. + : Adjust call to Call_to_gnu. Use load-modify + store sequence if required. + : 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) : Accept SAVE_EXPR on the LHS. + (gnat_stabilize_reference) : Deal with atomic loads. + +2015-05-25 Eric Botcazou + + * 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) : 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) : 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * switch-c.adb (Scan_Front_End_Switches): Insist on -gnatc + for -gnatd.V. + +2015-05-22 Arnaud Charlet + + * gnatvsn.ads: Minor code reorg to remember more easily to update + variables. + +2015-05-22 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_ch4.adb (Expand_N_Op_Eq): Introduce 'Machine for 'Result + comparison. + +2015-05-22 Eric Botcazou + + * 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 + + * sem_ch13.adb (Minimum_Size): Size is zero for null range + discrete subtype. + +2015-05-22 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * freeze.adb (Freeze_Profile): Suppress warning if imported + subprogram is not at library level. + +2015-05-22 Robert Dewar + + * sem_ch8.adb (Analyze_Object_Renaming): Check for renaming + component of an object to which Volatile_Full_Access applies. + +2015-05-22 Jerome Guitton + + * exp_dbug.ads: Add note about non bit-packed arrays. + +2015-05-22 Eric Botcazou + + * sem_prag.adb: Fix typo. + * einfo.ads: Grammar fixes in comments. + +2015-05-22 Bob Duff + + * 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 + + * 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 + + * osint-c.adb, osint-c.ads (Set_File_Name): Move back to spec. + +2015-05-22 Pascal Obry + + * prj-util.adb: Minor comment editing. + +2015-05-22 Pascal Obry + + * 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 + + * prj-util.ads, prj-util.adb (Relative_Path): New routine. + +2015-05-22 Bob Duff + + * 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 + + * 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 + + * exp_ch4.adb: Minor rewording. + * exp_util.ads: Clarify that Find_Prim_Op is only for + tagged types. + +2015-05-22 Robert Dewar + + * 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 + + * exp_pakd.adb (Install_PAT): Propagate representation aspects + from the original array type to the PAT. + +2015-05-22 Robert Dewar + + * treepr.adb (Print_Node_Header): Add output of Needs_Actuals_Check. + +2015-05-22 Robert Dewar + + * atree.adb, atree.ads (Needs_Actuals_Check): New flag. + +2015-05-22 Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * a-csquin.ads: Use Ada 2012 notation. + * sem_ch8.adb: Minor reformatting. + +2015-05-22 Hristian Kirtchev + + * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Import + acts as a completion. + +2015-05-22 Ed Schonberg + + * sem_ch13.adb: Minor reformatting. + +2015-05-22 Jose Ruiz + + * a-reatim.adb: Minor change, fix typo. + +2015-05-22 Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_ch5.adb: minor reformatting. + +2015-05-21 Robert Dewar + + * freeze.adb (Freeze_Entity): Properly tag -gnatw.z messages. + +2015-05-21 Robert Dewar + + * 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 + + * 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 + + * 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 + + * gcc-interface/trans.c (Sloc_to_locus1): Strenghthen local "map" + from line_map * to line_map_ordinary *. + +2015-05-12 Jason Merrill + + * sigtramp-vxworks.c: Add space between string literal and macro + name. + +2015-05-12 Arnaud Charlet + + * gnat_rm.texi, gnat_ugn.texi, doc: Documentation updates and clean ups + +2015-05-12 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_ch5.adb (Analyze_Iterator_Specification): Implement new + semantics and safety checks specified in AI12-0151. + +2015-05-12 Pierre-Marie de Rodat + + * sem_ch10.adb (Sem_Ch10.Analyze_Proper_Body): Generate SCOs + for subunit in generic units. + +2015-05-12 Robert Dewar + + * sem_elab.adb (Check_A_Call): Avoid checking internal call + from Valid_Scalars + +2015-05-12 Ed Schonberg + + * sem_ch6.adb (Process_Formals): An untagged incomplete type + is legal in the profile of a null procedure. + +2015-05-12 Ed Schonberg + + * 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 + + * 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 + + * targparm.ads: Minor reformatting. + +2015-05-12 Robert Dewar + + * a-reatim.adb (Time_Of): Properly detect overflow when TS = 0.0. + * a-reatim.ads: Minor reformatting. + +2015-05-12 Hristian Kirtchev + + * einfo.ads: Update the documentation of flags + Has_Inherited_Default_Init_Cond and Has_Default_Init_Cond. + +2015-05-12 Robert Dewar + + * impunit.adb: Add entry for a-dhfina.ads + * a-dhfina.ads: New file. + +2015-05-12 Ed Schonberg + + * 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 + + * 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 + + * a-taster.ads: Minor comment fix: fix bad header, this is a + pure RM unit. + +2015-05-12 Robert Dewar + + * sem_intr.adb: (Check_Shift): Diagnose bad modulus value. + +2015-05-12 Robert Dewar + + * 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 + + * g-sercom.ads, g-sercom-linux.adb (GNAT.Serial_Communications. + Data_Rate): New literals B75, B110, B150, B300, B600. + +2015-05-12 Doug Rupp + + * 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 + + * 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 + + * 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 + + * exp_pakd.adb: Make clearer the comment in exp_pakd.adb about + ___XP suffixes. + +2015-05-12 Robert Dewar + + * sem_ch3.adb, sem_util.adb, sem_ch6.adb: Minor reformatting. + +2015-05-12 Robert Dewar + + * exp_unst.adb (Visit_Node): Deal with subprogram and package stubs. + +2015-05-12 Ed Schonberg + + * 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 + + * exp_ch7.adb, exp_ch7.ads, exp_intr.adb, exp_util.adb, + exp_util.ads: Update comments. + +2015-05-12 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_ch6.adb, exp_unst.adb: Minor typo fixes. + +2015-05-12 Robert Dewar + + * sem_ch3.adb: Minor reformatting. + +2015-05-12 Vincent Celier + + * 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 + + * 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 + + * sem_ch3.adb, freeze.adb, sem_ch6.adb: Minor reformatting. + +2015-05-12 Ed Schonberg + + * 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 + + * sem_ch6.adb (Analyze_Subprogram_Declaration): Following + AI12-0147, null procedures and expression functions are allowed + in protected bodies. + +2015-05-12 Tristan Gingold + + * i-cpoint.adb (Copy_Terminated_Array): Copy nothing if Length is 0. + +2015-05-12 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * sem_type.adb, sem_ch10.adb, freeze.adb, sem_ch6.adb, exp_disp.adb: + Minor reformatting. + +2015-05-12 Bob Duff + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * a-reatim.adb ("/"): Add explicit check for Time_Span_First / -1. + +2015-05-12 Ed Schonberg + + * 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 + + * sem_util.adb (Is_Variable): Allow X'Deref(Y) as a variable. + +2015-05-12 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * gcc-interface/utils.c (gnat_write_global_declarations): Use type_decl + method instead of global_decl for TYPE_DECLs. + +2015-04-27 Jim Wilson + + * gcc-interface/Makefile-lan.in (ada.mostlyclean): Remove gnatbind + and gnat1. + +2015-04-13 Eric Botcazou + + * gnatvsn.ads (Library_Version): Bump to 6. + +2015-04-09 Iain Sandoe + + * gcc-interface/Makefile.in (darwin, powerpc): Enable atomics. + +2015-04-08 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make + a function returning an unconstrained type 'const' for the middle-end. + + * gcc-interface/trans.c (Pragma_to_gnu) : Use + exact condition to detect Reason => "..." pattern. + +2015-03-31 Tom de Vries + + 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 + + * gcc-interface/trans.c (Attribute_to_gnu) : New case. + +2015-03-24 Gary Dismukes + + * sem_ch3.adb: Minor typo fix (missing paren). + +2015-03-24 Robert Dewar + + * sinfo.ads: Update comment. + +2015-03-24 Robert Dewar + + * 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 + + * sem_ch13.adb (Rep_Item_Too_Early): allow pragma Convention + on generic type. + +2015-03-24 Gary Dismukes + + * inline.adb: Minor typo fix. + +2015-03-24 Arnaud Charlet + + * 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 + + PR bootstrap/65522 + * adadecode.c (ada_demangle): Guard with IN_RTS instead of IN_GCC. + +2015-03-20 Eric Botcazou + + 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 + + * gcc-interface/utils2.c (gnat_invariant_expr): Return null if the type + of the expression ends up being composite. + +2015-03-16 Eric Botcazou + + * gcc-interface/decl.c (is_from_limited_with_of_main): New predicate. + (gnat_to_gnu_entity) : 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 + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not + short-circuit the regular handling. + +2015-03-13 Robert Dewar + + * 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 + + * 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 + + * 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 + + * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Rewrite after review. + +2015-03-13 Robert Dewar + + * exp_util.adb (Is_Volatile_Reference): Compile time known + value is never considered to be a volatile reference. + +2015-03-13 Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_util.ads: Minor fix to comment. + * sem_ch3.adb (Constrain_Index): Correct pasto from previous + change. + +2015-03-13 Robert Dewar + + * 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 + + * gcc-interface/trans.c (Attribute_to_gnu) : + 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 + + * sem_warn.adb: Minor reformatting. + * init.c: Minor tweaks. + +2015-03-04 Dmitriy Anisimko + + * a-coinho-shared.adb: Fix clear of already empty holder. + +2015-03-04 Robert Dewar + + * 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 + + * 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 + + * 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 + + * atree.h: Add entries for Flag287-Flag309. + * einfo.adb: Add (unused) flags Flag287-Flag309. + +2015-03-04 Ed Schonberg + + * sem_util.adb (Collect_Interfaces, Collect): When gathering + interfaces of ancestors, handle properly a subtype of a private + extension. + +2015-03-04 Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_attr.adb: Improve warning messages. + +2015-03-04 Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * scng.adb (Scan): Ignore illegal character in relaxed + semantics mode. + +2015-03-02 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_disp.ads: Minor reformatting. + +2015-03-02 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * einfo.ads, exp_unst.ads: Minor reformatting. + +2015-03-02 Ed Schonberg + + * 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 + + * elists.adb (List_Length): Fix incorrect result. + +2015-03-02 Bob Duff + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_ch3.adb, exp_attr.adb, checks.adb, exp_aggr.adb: Minor + reformatting. + +2015-03-02 Ed Schonberg + + * sem_ch8.adb: extend use of Available_Subtype. + +2015-03-02 Hristian Kirtchev + + * 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 + + * 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 + + * a-strsea.adb: Minor typo fix. + +2015-03-02 Bob Duff + + * einfo.ads: Minor comment fixes. + +2015-03-02 Gary Dismukes + + * einfo.adb, checks.adb: Minor reformatting and typo fixes. + +2015-03-02 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + 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 + + * 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 + + * 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 + + * doc/gnat_ugn/project-manager-figure.png, + doc/gnat_ugn/rtlibrary-structure.png: New. + +2015-02-22 Tom de Vries + + 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 + + * 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 + + * 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 + + * g-alveop.adb: Minor style fixes. + +2015-02-20 Robert Dewar + + * freeze.adb (Warn_Overlay): Guard against blow up with address + clause. + +2015-02-20 Bob Duff + + * 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 + + * a-dispat.adb, a-stcoed.ads: Minor reformatting. + +2015-02-20 Robert Dewar + + * 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 + + * 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 + + * g-allein.ads, g-alveop.adb, g-alveop.ads, opt.ads: Minor reformatting + +2015-02-20 Tristan Gingold + + * 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 + + * 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 + + * g-allein.ads, g-alveop.ads, g-alveop.adb: Code clean ups. + +2015-02-20 Robert Dewar + + * sem_prag.adb: Minor comment clarification. + +2015-02-20 Olivier Hainque + + * 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 + + * switch-c.adb, bindgen.adb: Minor reformatting. + +2015-02-20 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Type_Invariant): + Invariant'class is allowed on an abstract type. + +2015-02-20 Ed Schonberg + + * 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 + + * sem_res.adb: Minor reformatting. + +2015-02-20 Vincent Celier + + * 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 + + * bindgen.adb: Minor reformatting and code reorganization. + +2015-02-20 Jose Ruiz + + * 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 + + * sysdep.c, expect.c, s-oscons-tmplt.c, gsocket.h, adaint.c: Remove + obsolete references to RTX, nucleus, VMS. + +2015-02-20 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_prag.ads: Minor typo in comment. + +2015-02-20 Pascal Obry + + * s-osprim-mingw.adb: Fix Get_Base_Time parameter mode. + +2015-02-20 Vincent Celier + + * makeutl.adb (Get_Directories.Add_Dir): Add a directory only + if it exists. + +2015-02-20 Robert Dewar + + * sem_eval.ads: Minor reformatting. + +2015-02-20 Eric Botcazou + + * 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 + + * 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 + + * 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 + + * s-parame-vxworks.adb, s-os_lib.ads: Update comments. + +2015-02-20 Robert Dewar + + * s-osinte-vxworks.ads (To_Timespec): Add comment about the + issue of negative arguments. + +2015-02-20 Eric Botcazou + + * gnat1drv.adb: Minor consistency fix. + +2015-02-20 Pascal Obry + + * s-osprim-mingw.adb (Get_Base_Time): Properly release lock in all + paths. + +2015-02-20 Eric Botcazou + + * 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 + + * exp_util.adb: Minor reformatting. + +2015-02-20 Vincent Celier + + * 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 + + * 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 + + * exp_ch6.adb: Fix minor typo in comment. + +2015-02-20 Eric Botcazou + + * sinfo.ads: Add comment. + +2015-02-20 Olivier Hainque + + * 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 + + * 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 + + * s-stalib.ads: Fix typo. + +2015-02-20 Ed Schonberg + + * 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 + + * lib-load.adb: Minor comment update. + +2015-02-20 Vincent Celier + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * prj-proc.adb, sem_aux.adb, exp_ch9.adb, errout.adb, prj-dect.adb, + prj-nmsc.adb: Minor reformatting. + +2015-02-05 Ed Schonberg + + * 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 + + * exp_ch3.adb (Make_Tag_Assignment): Do not perform this + expansion activity in ASIS mode. + +2015-02-05 Javier Miranda + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_prag.adb, par-prag.adb: Minor code clean up. + +2015-02-05 Yannick Moy + + * 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 + + * 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 + + * checks.adb (Enable_Range_Check): Disconnect attempted + optimization for the case of range check for subscript of + unconstrained array. + +2015-02-05 Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * lib-xref.adb: Minor reformatting. + +2015-02-05 Tristan Gingold + + PR ada/64349 + * env.c: Fix thinko: handle Darwin case before default one. + +2015-01-30 Robert Dewar + + * 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 + + * gcc-interface/Makefile.in (x86-vxworks): Update GCC_SPEC_FILES to + include cert link spec. + +2015-01-30 Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * errout.ads: Minor reformatting. + +2015-01-30 Yannick Moy + + * 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 + + * g-expect.adb (Get_Command_Output): Use infinite timeout when + calling Expect. + +2015-01-30 Ed Schonberg + + * 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 + + * errout.adb (Error_Msg_PT): Minor error phrasing update. + +2015-01-30 Robert Dewar + + * sem_warn.adb (Warn_On_Known_Condition): Improve error message + for object case. + +2015-01-30 Pierre-Marie de Rodat + + * exp_dbug.adb (Get_Encoded_Name): When + -fgnat-encodings=minimal, do not generate names for biased types. + +2015-01-30 Tristan Gingold + + PR ada/64349 + * env.c: Move vxworks and darwin includes out of #ifdef IN_RTS. + +2015-01-30 Gary Dismukes + + * freeze.adb: Minor reformatting. + +2015-01-30 Javier Miranda + + * 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 + + * sem_warn.adb (Warn_On_Known_Condition): Do special casing of + message for False case. + +2015-01-30 Doug Rupp + + * 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 + + * 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 + + * 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 + + * sem_attr.adb (Analyze_Attribute): Ensure that + the check concerning Refined_Post takes precedence over the + other cases. + +2015-01-30 Gary Dismukes + + * sem_prag.adb: Minor typo fixes and reformatting. + +2015-01-30 Yannick Moy + + * sem_attr.adb: Code clean up. + +2015-01-30 Robert Dewar + + * 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 + + * 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 + + * sem_disp.adb: Minor reformatting. + * sem_disp.ads: Documentation update. + +2015-01-30 Ed Schonberg + + * 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 + + * 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 + + * 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 + + 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 + + PR ada/64640 + * adaint.c: Handle __CYGWIN__ like __MINGW32__ here. + * mingw32.h: Don't include under cygwin. + (_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Set to _O_TEXT if not yet defined. + +2015-01-15 Thomas Schwinge + + * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8) + (DEF_FUNCTION_TYPE_VAR_12): New macros. + +2015-01-09 Michael Collison + + * 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 + + * 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 + + * usage.adb (Usage): Correct documentation of + -gnatw.f switches. + +2015-01-07 Robert Dewar + + * s-fileio.adb: Minor reformatting. + +2015-01-07 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * usage.adb (Usage): Document -gnatw.f switch. + +2015-01-07 Ed Schonberg + + * sem_ch12.adb: Code clean up and minor reformatting. + +2015-01-07 Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded + cross ref files. + +2015-01-07 Robert Dewar + + * s-taprop-linux.adb, clean.adb: Minor reformatting. + +2015-01-07 Arnaud Charlet + + * s-tassta.adb: Relax some overzealous assertions. + +2015-01-07 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * clean.adb: Minor error message change. + +2015-01-07 Tristan Gingold + + PR ada/64349 + * env.c (__gnat_environ): Adjust for darwin9/darwin10. + +2015-01-07 Javier Miranda + + * 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 + + * a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb, + exp_ch3.adb: Minor reformatting. + +2015-01-07 Doug Rupp + + * 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 + + * sem_warn.adb (Check_One_Unit): Guard against context item + with no Entity field. + +2015-01-07 Vincent Celier + + * clean.adb (Gnatclean): Warn that 'gnatclean -P' is obsolete. + * make.adb (Initialize): Warn that 'gnatmake -P' is obsolete. + +2015-01-07 Vincent Celier + + * 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 + + * i-cpoint.adb (Copy_Terminated_Array): Nicely handle null target. + +2015-01-07 Doug Rupp + + * 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 + + * exp_pakd.adb: Add a comment in exp_pakd.adb to explain why we + keep ___XP suffixes + +2015-01-07 Tristan Gingold + + * i-cpoint.adb (Copy_Terminated_Array): Use Copy_Array to + handle overlap. + +2015-01-07 Eric Botcazou + + * 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 + + * 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 + + * 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 + + * 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 + + * gcc-interface/trans.c (gnat_to_gnu, ): + Elaborate the expression as part of the same stmt group as the actions. + +2015-01-07 Robert Dewar + + * sem_ch3.adb: Minor error message change. + +2015-01-07 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Preelaborable_Initialization): + Following AI05-028, the pragam applies legally to any composite type. + +2015-01-07 Arnaud Charlet + + * s-osinte-vxworks.adb, s-osinte-vxworks.ads + (sigwait, sigwaitinfo): Removed, not needed after all on any + VxWorks configurations. + +2015-01-07 Robert Dewar + + * sem_ch3.adb, freeze.adb, exp_disp.adb: Minor reformatting. + +2015-01-07 Javier Miranda + + * exp_disp.adb (Expand_Interface_Conversion): Adding missing + generation of accessibility check. + +2015-01-07 Ed Schonberg + + * 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 + + * prj.ads, i-cpoint.adb, freeze.adb, ghost.adb, prj-err.adb: Minor + reformatting. + +2015-01-07 Robert Dewar + + * 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 + + * 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 + + * 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 + + * freeze.adb (Freeze_Array_Type) : Remove always + true test and unreachable 'else' arm. + +2015-01-06 Vincent Celier + + * 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 + + * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Mode and + Install_Name attribute definitions. + +2015-01-06 Ed Schonberg + + * 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 + + * 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 + + * i-cpoint.adb (Copy_Array): Handle overlap. + +2015-01-06 Pascal Obry + + * bindgen.adb: Minor style fix. + +2015-01-06 Robert Dewar + + * sem_util.ads, sem_util.adb: Minor reformatting. + +2015-01-06 Vincent Celier + + * 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 + + * 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 + + * sem_ch12.adb: Sloc of wrapper is that of instantiation. + +2015-01-06 Robert Dewar + + * sem_ch11.adb: Minor reformatting. + +2015-01-06 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_ch12.adb, sem_ch8.adb: Ongoing work for wrappers for actual + subprograms. + +2015-01-06 Javier Miranda + + * exp_disp.adb (Expand_Interface_Conversion): Reapply patch. + +2015-01-06 Thomas Quinot + + * 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 + + * sem_ch12.adb, sem_ch12.ads, sem_ch8.adb: Ongoing work for wrappers + for operators in SPARK. + +2015-01-06 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * s-valrea.adb (Value_Real): Check for Str'Last = Positive'Last + +2015-01-06 Robert Dewar + + * a-wtgeau.adb, a-ztgeau.adb, a-tigeau.adb (String_Skip): Raise PE if + Str'Last = Positive'Last. + +2015-01-06 Ed Schonberg + + * 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 + + * 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 + + * einfo.ads (Is_Independent): Further document extended usage. + +2015-01-06 Eric Botcazou + + * 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 + + * snames.ads-tmpl: Remove entries for attribute Enum_Image. + * exp_attr.adb: Remove reference to Attribute_Enum_Image. + +2015-01-06 Robert Dewar + + * 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 + + * sem_prag.adb (Process_Inline): Remove redundant construct + warning (-gnatw.r) for an ineffective pragma Inline. + +2015-01-06 Robert Dewar + + * 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 + + * s-valint.adb, s-valuns.adb (Value_Integer): Deal with case where + Str'Last = Positive'Last + +2015-01-06 Thomas Quinot + + * xoscons.adb: Display exception information and return non-zero + exit status in top level exception handler. + +2015-01-06 Ed Schonberg + + * sem_ch8.adb: Code clean up. + +2015-01-06 Tristan Gingold + + * targparm.ads: Remove obsolete comment. + +2015-01-06 Olivier Hainque + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sem_ch8.adb (Analyze_Use_Package): Give more specific error + msg for attempted USE of generic subprogram or subprogram. + +2015-01-06 Robert Dewar + + * 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 + + * 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 + + * gnat1drv.adb: Minor: complete previous change. + +2015-01-06 Olivier Hainque + + * 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 + + * 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 + + * 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 + + * exp_disp.adb: Revert previous change. + +2015-01-06 Robert Dewar + + * 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 + + * gnat_rm.texi: Improve documentation regarding No_Task_Termination. + +2015-01-06 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * gnat1drv.adb: Minor code clean up. + (Adjust_Global_Switches): Ignore gnatprove_mode in codepeer_mode. + +2015-01-06 Bob Duff + + * osint.adb (Read_Source_File): Don't print out + file name unless T = Source. + +2015-01-06 Ed Schonberg + + * 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 + + * 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 + + * 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 + + * a-strsup.adb (Times (Natural;String;Positive)): Raise + Length_Error, not Index_Error, when the result is too long. + +2015-01-06 Thomas Quinot + + * a-direct.adb (Create_Path): Minor error handling and + performance improvement. + +2015-01-06 Robert Dewar + + * 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 + + * 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 + + * 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 + + * exp_strm.adb (Build_Elementary_Input_Call): Return base type + (as required by RM). + +2015-01-06 Arnaud Charlet + + * a-reatim.adb ("/"): Add explicit pragma Unsuppress (Division_Check). + +2015-01-06 Robert Dewar + + * sem_prag.adb (Process_Suppress_Unsuppress): Add extra warning + for ignoring pragma Suppress (Elaboration_Check) in SPARK mode. + +2015-01-06 Javier Miranda + + * 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 + + * prj-env.adb: Minor comment update. + +2015-01-06 Javier Miranda + + * 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 + + * 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 + + * sem_ch12.adb: Code clean up. + +2015-01-06 Arnaud Charlet + + * gnatvsn.ads: Bump copyright year. + +2015-01-06 Robert Dewar + + * s-taskin.ads, s-traces.ads: Minor reformatting. + * exp_util.adb: Minor typo fix. + +2015-01-06 Vincent Celier + + * 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 + + * 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 + + * 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 + + * 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 + + * gnat_ugn.texi: Bump @copying's copyright year. + +2015-01-05 Eric Botcazou + + PR ada/64492 + * gcc-interface/Makefile.in (../stamp-tools): Reinstate dropped code. + +2015-01-04 Uros Bizjak + + * gcc-interface/misc.c (internal_error_function): Use xasprintf instead + of unchecked asprintf. + + +Copyright (C) 2015 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/gnatvsn.ads b/gcc/ada/gnatvsn.ads index d3ac70a738f..946c140be5a 100644 --- a/gcc/ada/gnatvsn.ads +++ b/gcc/ada/gnatvsn.ads @@ -6,7 +6,7 @@ -- -- -- 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- -- @@ -45,7 +45,7 @@ package Gnatvsn is -- 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; -- 2.30.2