| 2015-12-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils2.c (gnat_rewrite_reference) <REALPART_EXPR>: New |
| case identical to FLOAT_EXPR. |
| <IMAGPART_EXPR>: Likewise. |
| |
| 2015-12-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: During |
| layout in type_annotate_only mode, skip discriminants of derived |
| tagged types renaming those of the parent type. |
| In type_annotate_only mode, if the type is tagged, do not override a |
| size clause but take into account the alignment of the tag. |
| (annotate_rep): In type_annotate_only mode, deal with discriminants |
| of derived tagged types renaming those of the parent type. |
| |
| 2015-12-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (maybe_pad_type): In type_annotate_only mode, |
| retrieve the component type if this is an array and do not issue the |
| warning for concurrent types. |
| |
| 2015-12-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/ada-tree.h (TYPE_DEBUG_TYPE): Remove duplicate. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/ada-tree.h |
| (TYPE_IMPLEMENTS_PACKED_ARRAY_P, TYPE_CAN_HAVE_DEBUG_TYPE_P, |
| TYPE_ORIGINAL_PACKED_ARRAY, SET_TYPE_ORIGINAL_PACKED_ARRAY): New |
| macros. |
| * gcc-interface/decl.c (add_parallel_type_for_packed_array): |
| Rename to associate_original_type_to_packed_array. When |
| -fgnat-encodings=minimal, set original packed array type as so |
| instead of as a parallel type to the implementation type. In |
| this case, also rename the implementation type to the name of |
| the original array type. |
| (gnat_to_gnu_entity): Update invocations to |
| add_parallel_type_for_packed_array. Tag ARRAY_TYPE nodes for |
| packed arrays with the TYPE_PACKED flag. |
| When -fgnat-encodings=minimal: |
| - strip ___XP suffixes in packed arrays' names; |
| - set the debug type for padding records around packed arrays |
| to the packed array; |
| - do not attach ___XUP types as parallel types of constrained |
| array types. |
| * gcc-interface/misc.c (gnat_print_type): Update to handle |
| orignal packed arrays. |
| (gnat_get_debug_type): Update to reject packed arrays |
| implementation types. |
| (get_array_bit_stride): New. |
| (gnat_get_array_descr_info): Add packed arrays handling. |
| * gcc-interface/utils.c (maybe_pad_type): When |
| -fgnat-encodings=minimal, set the name of the padding type to |
| the one of the original packed type, if any. Fix TYPE_DECL |
| peeling around the name of the input type. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/misc.c (gnat_get_type_bias): New. |
| (LANG_HOOKS_GET_TYPE_BIAS): Redefine macro to implement the |
| get_type_bias language hook. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/misc.c (gnat_get_array_descr_info): When the |
| array has more dimensions than the language hook can handle, |
| fall back to a nested arrays description. Handle context-less |
| array types. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity): When |
| -fgnat-encodings-minimal, do not add ___XUP/XUT suffixes to type |
| names and do not generate ___XA parallel types. |
| * gcc-interface/misc.c (gnat_get_array_descr_info): Match fat |
| and thin pointers and generate the corresponding array type |
| descriptions. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/ada-tree.def (POWER_EXPR): New binary operation. |
| * gcc-interface/ada-tree.h (TYPE_FIXED_POINT_P): New macro. |
| (TYPE_IS_FIXED_POINT_P): New macro. |
| (TYPE_SCALE_FACTOR): New macro. |
| (SET_TYPE_SCALE_FACTOR): New macro. |
| * gcc-interface/decl.c: Include urealp.h |
| (gnat_to_gnu_entity): Attach trees to encode scale factors to |
| fixed-point types. |
| * gcc-interface/misc.c (gnat_print_type): Print scale factors |
| for fixed-point types. |
| (gnat_get_fixed_point_type_info): New. |
| (gnat_init_ts): Initialize data for the POWER_EXPR binary |
| operation. |
| (LANG_HOOKS_GET_FIXED_POINT_INFO): Redefine macro to implement |
| the get_fixed_point_type_info language hook. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/ada-tree.h (struct lang_type): Rename the t |
| field as t1 and add a t2 one. |
| (get_lang_specific): New. |
| (GET_TYPE_LANG_SPECIFIC): Refactor to use get_lang_specific. |
| (SET_TYPE_LANG_SPECIFIC): Likewise. |
| (GET_TYPE_LANG_SPECIFIC2): New macro. |
| (SET_TYPE_LANG_SPECIFIC2): New macro. |
| (TYPE_DEBUG_TYPE): New macro. |
| (SET_TYPE_DEBUG_TYPE): New macro. |
| * gcc-interface/decl.c (gnat_to_gnu_entity): When |
| -fgnat-encodings=minimal, set padding types' debug type to the |
| padded one (i.e. strip ___PAD GNAT encodings) and set |
| constrained record subtypes's debug type to the base type. |
| * gcc-interface/misc.c (gnat_print_type): Print debug types. |
| (gnat_get_debug_type): New. |
| (gnat_get_array_descr_info): When -fgnat-encodings=minimal, set |
| a byte stride for arrays that contain a type whose debug type |
| has variable length. |
| (LANG_HOOKS_GET_DEBUG_TYPE): Redefine macro to implement the |
| debug type language hook. |
| * gcc-interface/utils.c (maybe_pad_type): When |
| -fgnat-encodings=minimal, set padding types' debug type to the |
| padded one. Restore XVZ variables creation when |
| -fgnat-encodings-minimal and use them to hold padding types' |
| byte size. For library-level padding types, share this variable |
| across translation units. Tag XVZ variables as artificial. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Disable ___XVS GNAT |
| encodings when -fgnat-encodings=minimal. |
| (components_to_record): Disable ___XVE, ___XVN, ___XVU and |
| ___XVZ GNAT encodings when -fgnat-encodings=minimal. |
| * gcc-interface/utils.c (maybe_pad_type): Disable __XVS GNAT |
| encodings when -fgnat-encodings=minimal. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/misc.c (gnat_encodings): Undefine macro and |
| declare a global variable. |
| (gnat_post_options): Initialize this global from options. |
| |
| 2015-12-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/48013 |
| * gcc-interface/trans.c (empty_stmt_list_p): New predicate. |
| (gigi): Invoke it to compute the No_Elaboration_Code property. |
| (insert_code_for): Do not insert the code if it's empty. |
| |
| 2015-12-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Call_to_gnu): Remove guard for NULL_EXPR. |
| * gcc-interface/utils2.c (gnat_rewrite_reference) <ERROR_MARK>: Return |
| the reference unmodified. |
| <NULL_EXPR>: New case. Likewise. |
| |
| 2015-12-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (create_var_decl): Adjust comment. |
| (create_subprog_decl): Likewise. |
| * gcc-interface/utils.c (create_var_decl): Likewise. |
| (create_subprog_decl): Likewise. |
| |
| 2015-12-10 Tom de Vries <tom@codesourcery.com> |
| |
| PR ada/65102 |
| * gnat-style.texi: Set nodefaultgnufreedocumentationlicensenode and |
| define @node GNU Free Documentation License locally. |
| |
| 2015-12-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/66526 |
| * g-expect.adb (Set_Up_Child_Communications): Add matching condition |
| for uses of Input, Ouput and Error variables after the Execvp call. |
| |
| 2015-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/48088 |
| PR c/68657 |
| * gcc-interface/trans.c (Pragma_to_gnu): Adjust control_warning_option |
| caller. |
| |
| 2015-12-06 Piotr Trojanek <piotr.trojanek@gmail.com> |
| |
| PR ada/60164 |
| * doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Fix typo. |
| |
| 2015-12-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/50048 |
| * gcc-interface/Makefile.in (INCLUDES): Use -iquote. |
| |
| 2015-12-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/56274 |
| * s-osinte-kfreebsd-gnu.ads (pthread_rwlock_t): New subtype. |
| (pthread_rwlockattr_t): Likewise. |
| |
| 2015-12-06 Ludovic Brenta <ludovic@ludovic-brenta.org> |
| |
| PR ada/49944 |
| * s-osinte-freebsd.ads: Minor reformatting. |
| (Stack_Base_Available): Correct comments. |
| * s-osinte-kfreebsd-gnu.ads (Time_Slice_Supported, nanosleep, |
| clock_id_t, clock_gettime, Stack_Base_Available, Get_Page_Size, |
| mprotect, pthread_mutexattr_setprotocol,pthread_mutexattr_getprotocol |
| pthread_mutexattr_setprioceiling, pthread_mutexattr_getprioceiling, |
| pthread_attr_setscope, pthread_attr_getscope, |
| pthread_attr_setinheritsched, pthread_attr_getinheritsched, |
| Time_Slice_Supported): Copy from s-osinte-freebsd.ads. |
| * gcc-interface/Makefile.in (x86/kfreebsd): Use the POSIX version of |
| the System.Task_Primitives.Operations package. |
| |
| 2015-12-06 Ludovic Brenta <ludovic@ludovic-brenta.org> |
| |
| PR ada/49940 |
| * s-osinte-kfreebsd-gnu.ads (lwp_self): New imported function. |
| |
| 2015-12-01 Jan Sommer <soja-lists@aries.uberspace.de> |
| |
| PR ada/68169 |
| * s-oscons-tmplt.c: Generate pthread constants for RTEMS |
| * s-osinte-rtems.ads: Declare pthread structs as opaque types in Ada |
| |
| 2015-12-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Reorder. |
| |
| 2015-11-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gigi): Fix initialization order. |
| |
| 2015-11-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * osint.adb: Add use type clause for CRTL.size_t. |
| (C_String_Length): Return CRTL.size_t instead of Integer. |
| (To_Path_String_Access): Take CRTL.size_t instead of Integer. |
| (Get_Libraries_From_Registry): Use CRTL throughout. |
| (To_Canonical_Dir_Spec): Use CRTL.size_t instead of Integer. |
| (To_Canonical_File_List): Likewise. |
| (To_Canonical_File_Spec): Likewise. |
| (To_Canonical_Path_Spec): Likewise. |
| (To_Host_Dir_Spec): Likewise. |
| (To_Host_File_Spec): Likewise. |
| (Update_Path): Use CRTL throughout. |
| * s-shasto.adb: Add with clause for System.CRTL. |
| (Initialize): Rename CRTL.strncpy instead of importing it manually. |
| |
| 2015-11-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (create_var_decl): Adjust prototype. |
| (create_subprog_decl): Likewise. |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Rename |
| static_p into static_flag and add volatile_flag local variable. |
| Do not locally change the type of a volatile object, except for the |
| pointed-to type if the object is handled by reference. Adjust calls |
| to create_var_decl. |
| <E_Subprogram_Type>: Likewise for const and noreturn subprograms. |
| (get_minimal_subprog_decl): Adjust call to create_subprog_decl. |
| (elaborate_expression_1): Adjust call to create_var_decl. |
| (gnat_to_gnu_field): Minor tweak. |
| * gcc-interface/trans.c (gigi): Adjust calls to create_var_decl and |
| create_subprog_decl. |
| (build_raise_check): Likewise. |
| (Subprogram_Body_to_gnu): Likewise. |
| (create_temporary): Likewise. |
| (Handled_Sequence_Of_Statements_to_gnu): Likewise. |
| (Exception_Handler_to_gnu_gcc): Likewise. |
| (Compilation_Unit_to_gnu): Likewise. |
| (gnat_to_gnu): Likewise. |
| * gcc-interface/utils.c (maybe_pad_type): Likewise. |
| (create_var_decl): Add VOLATILE_FLAG parameter and handle it. |
| (create_subprog_decl): Add CONST_FLAG and VOLATILE_FLAG parameters and |
| handle them. |
| |
| 2015-11-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (is_simple_additive_expression): Declare. |
| * gcc-interface/trans.c (struct range_check_info_d): Add DISP and |
| NEG_P fields. |
| (find_loop_for): Add DISP and NEG_P parameters with default value. |
| Call is_simple_additive_expression to handle additive expressions. |
| (Loop_Statement_to_gnu): Deal with displacement in range checks. |
| (Raise_Error_to_gnu): Likewise. |
| (gnat_to_gnu): Add call to find_loop_for. |
| (is_simple_additive_expression): New function extracted from... |
| (gnat_invariant_expr): ...here. Call it on the expression. |
| |
| 2015-11-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions. |
| |
| 2015-11-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): New macro. |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set PACKED to -2. |
| Remove obsolete code setting the alignment on some atomic types. |
| When the type has no alignment but needs strict alignment and has a |
| size clause, compute a maximum alignment and set it on the type. |
| (adjust_packed): Remove handling of -2 argument. Deal with TYPE_ALIGN |
| and TYPE_MAX_ALIGN directly. |
| (gnat_to_gnu_field): Do not document -2 as argument. |
| (components_to_record): Likewise. |
| * gcc-interface/utils.c (finish_record_type): Do not bump alignment of |
| the record type beyond TYPE_MAX_ALIGN. Reset the latter on exit. |
| |
| * gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): Move around. |
| (GNATLIBCFLAGS_FOR_C): Reformat. |
| (GCC_CFLAGS): Delete. |
| |
| 2015-11-29 Matthias Klose <doko@ubuntu.com> |
| |
| PR ada/68564 |
| * gcc-interface/Makefile.in: Fix powerpc/powerpc64* and |
| mipsel/mips64el bitness detection. |
| Merge the mipsel/mips64el definitions into one. |
| |
| 2015-11-28 Matthias Klose <doko@ubuntu.com> |
| |
| PR ada/68564 |
| * gcc-interface/Makefile.in: Fix sparc/sparc64 bitness detection. |
| |
| 2015-11-25 Arnaud Charlet <charlet@adacore.com> |
| |
| * lib-xref-spark_specific.adb |
| (Add_SPARK_Scope): Take entry families into account. |
| * a-exetim.ads, a-exetim-default.ads, a-exetim-mingw.ads (Clock, |
| Clock_For_Interrupts): preconditions added. |
| * a-extiin.ads (Clock): preconditions added. |
| * par-ch3.adb (P_Declarative_Items): In case of misplaced |
| aspect specifications, ensure that flag Done is properly set to |
| continue parsing. |
| |
| 2015-11-25 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_util.adb (Remove_Side_Effects): Minimize extra temporaries |
| and use of 'Reference when needed. |
| |
| 2015-11-25 Doug Rupp <rupp@adacore.com> |
| |
| * sigtramp-vxworks-target.inc (__x86_64__): Restore context for the |
| sake of uniformity. |
| * init.c (__gnat_inum_to_ivec): Add some casting to avoid |
| warnings when sizeof(long) != sizeof(int) |
| |
| 2015-11-25 Yannick Moy <moy@adacore.com> |
| |
| * lib-xref-spark_specific.adb (SPARK_Entities): Add entries for |
| consideration. |
| (Add_SPARK_Scope): Take tasks into account. |
| (Detect_And_Add_SPARK_Scope): Take tasks into account. |
| (Enclosing_Subprogram_Or_Library_Package): Take tasks into account. |
| |
| 2015-11-25 Bob Duff <duff@adacore.com> |
| |
| * sem_elab.adb (Check_Internal_Call_Continue): Code clean ups. |
| |
| 2015-11-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_util.ads (Has_Compatible_Alignment): Add Layout_Done |
| parameter. |
| * sem_util.adb (Has_Compatible_Alignment): Likewise. |
| (Has_Compatible_Alignment_Internal): Likewise. Do not set the |
| result to Unknown for packed types if Layout_Done is true. |
| * checks.adb (Apply_Address_Clause_Check): Adjust call and |
| pass False to Has_Compatible_Alignment. |
| * sem_ch13.adb (Validate_Address_Clauses): Likewise but pass True. |
| |
| 2015-11-25 Vincent Celier <celier@adacore.com> |
| |
| * gnatcmd.adb: When <target>-gnat is called with switch -P |
| and a GPR tool is invoked, invoke the GPR tool with switch |
| --target=<target>. |
| |
| 2015-11-25 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * opt.adb, bcheck.adb: Minor reformatting. |
| |
| 2015-11-25 Jerome Lambourg <lambourg@adacore.com> |
| |
| * init.c: Enable the signal trampoline on x86_64-vx7 |
| * sigtramp-vxworks-target.inc: Implement the signal trampoline |
| for x86_64 |
| * tracebak.c: Remove the hook to use the generic |
| unwinder on x86_64-vx7. |
| |
| 2015-11-25 Vincent Celier <celier@adacore.com> |
| |
| * gnatcmd.adb: When "gnat name -P" is called, invoke gprname |
| directly if available. |
| |
| 2015-11-25 Tristan Gingold <gingold@adacore.com> |
| |
| * init.c (__gnat_is_stack_guard): Do not use mach calls for |
| IOS simulator. |
| |
| 2015-11-24 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/utils.c (gnat_write_global_declarations): Output |
| debugging information for top-level imported declarations. |
| |
| 2015-11-24 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch3.adb, sem_type.adb, sem_ch7.adb, sem_ch9.adb, checks.adb, |
| sem_prag.adb, contracts.adb, g-strhas.ads, sem_ch6.adb: Minor |
| reformatting, rewording, and typo corrections. |
| |
| 2015-11-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In |
| ASIS mode, do a minimal translation for root types with discriminants. |
| * gcc-interface/trans.c (gnat_to_gnu) <N_Subunit>: Move around. |
| <N_Entry_Body, N_Protected_Body, N_Task_Body>: Likewise. In ASIS mode, |
| process the declarations attached to the body. |
| |
| 2015-11-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_to_gnu): In type_annotate_only mode, do |
| not build a NULL_EXPR for an N_Expanded_Name. |
| |
| 2015-11-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (is_cplusplus_method): Check that the type of |
| the first parameter (indirectly) has C++ convention too. |
| |
| 2015-11-23 Olivier Hainque <hainque@adacore.com> |
| |
| * system-aix.ads: Add Frontend_Exceptions flag. |
| * system-aix64.ads: Likewise. |
| * system-darwin-ppc.ads: Likewise. |
| * system-darwin-ppc64.ads: Likewise. |
| * system-darwin-x86.ads: Likewise. |
| * system-darwin-x86_64.ads: Likewise. |
| * system-dragonfly-x86_64.ads: Likewise. |
| * system-freebsd-x86.ads: Likewise. |
| * system-freebsd-x86_64.ads: Likewise. |
| * system-hpux-ia64.ads: Likewise. |
| * system-hpux.ads: Likewise. |
| * system-linux-alpha.ads: Likewise. |
| * system-linux-armeb.ads: Likewise. |
| * system-linux-armel.ads: Likewise. |
| * system-linux-hppa.ads: Likewise. |
| * system-linux-ia64.ads: Likewise. |
| * system-linux-mips.ads: Likewise. |
| * system-linux-mips64el.ads: Likewise. |
| * system-linux-mipsel.ads: Likewise. |
| * system-linux-ppc.ads: Likewise. |
| * system-linux-ppc64.ads: Likewise. |
| * system-linux-s390.ads: Likewise. |
| * system-linux-s390x.ads: Likewise. |
| * system-linux-sh4.ads: Likewise. |
| * system-linux-sparc.ads: Likewise. |
| * system-linux-sparcv9.ads: Likewise. |
| * system-linux-x86.ads: Likewise. |
| * system-linux-x86_64.ads: Likewise. |
| * system-mingw-x86_64.ads: Likewise. |
| * system-mingw.ads: Likewise. |
| * system-rtems.ads: Likewise. |
| * system-solaris-sparc.ads: Likewise. |
| * system-solaris-sparcv9.ads: Likewise. |
| * system-solaris-x86.ads: Likewise. |
| * system-solaris-x86_64.ads: Likewise. |
| * system-vxworks-arm.ads: Likewise. |
| * system-vxworks-m68k.ads: Likewise. |
| * system-vxworks-mips.ads: Likewise. |
| * system-vxworks-ppc.ads: Likewise. |
| * system-vxworks-sparcv9.ads: Likewise. |
| * system-vxworks-x86.ads: Likewise. |
| * system.ads: Likewise. |
| |
| 2015-11-23 Olivier Hainque <hainque@adacore.com> |
| Eric Botcazou <botcazou@adacore.com> |
| |
| * opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ, |
| Back_End_SJLJ and Back_End_ZCX. |
| (Back_End_Exceptions, Front_End_Exceptions, ZCX_Exceptions, |
| SJLJ_Exceptions): New functions, reflecting properties of the current |
| Exception_Mechanism. |
| * opt.adb: Implement the new functions. |
| * fe.h: Bind the new Exception_Mechanism and helper functions for gigi. |
| |
| * exp_ch11.adb (Expand_At_End_Handler): Replace test on mechanism by |
| use of property helper and update comments. |
| (Expand_Exception_Handlers): Replace tests on mechanism by use of |
| helper. Restrict Abort_Defer to ZCX specifically. |
| * exp_ch9.adb (Expand_N_Asynchronous_Select): Replace tests on |
| mechanism by calls to helper functions. Abort_Undefer for ZCX only, |
| paired with Expand_Exception_Handlers. |
| * exp_sel.adb (Build_Abort_Block_Handler): Replace tests on mechanism |
| by calls to helper functions. Abort_Undefer for ZCX only, paired with |
| Expand_Exception_Handlers. |
| |
| * lib-writ.ads (P line documentation): Add entry for "FX", |
| representative of unit compiled with Frontend_Exceptions True. |
| * lib-writ.adb (Output_Main_Program_Line): Add "FX" on P line if |
| compiled with Frontend_Exceptions True. |
| |
| * ali.ads (ALIs_Record): Ada a Frontend_Exceptions component, to reflect |
| whether the ALI file contained an "FX" indication on the P line. |
| (Frontend_Exceptions_Specified): New boolean, to keep track of whether |
| at least an FX ALI file is in the closure. |
| * ali.adb (Scan_ALI): Handle "FX" on the P line. |
| (Initialize_ALI): Initialize Frontend_Exceptions_Specified to False. |
| |
| * targparm.ads: Update desription of exception schemes. |
| (Frontend_Exceptions_On_Target): New flag, reflect Frontend_Exceptions |
| set to True in system.ads, or not set at all. |
| * targparm.adb (Targparm_Tags): Add FEX to convey Frontend_Exceptions. |
| Rename ZCD to ZCX for consistency. |
| (FEX_Str, Targparm_Str, Get_Target_Parameters): Adjust accordingly. |
| |
| * gnat1drv.adb (Adjust_Global_Switches): Adjust Exception_Mechanism |
| setting, now from combination of Frontend_Exceptions and ZCX_By_Default. |
| |
| * bcheck.adb (Check_Consistent_Zero_Cost_Exception_Handling): Rename |
| as ... |
| (Check_Consistent_Exception_Handling): Check consistency of both |
| ZCX_By_Default and Frontend_Exceptions. |
| (Check_Configuration_Consistency): Check_Consistent_Exception_Handling |
| if either flag was set at least once. |
| |
| * make.adb (Check): Remove processing of a possible -fsjlj coming from |
| lang-specs.h. |
| * gnatlink.adb (Gnatlin): Likewise. |
| |
| * gcc-interface/Makefile.in (gnatlib-sjlj/zcx): Now set |
| both ZCX_By_Default and Frontend_Exceptions. |
| * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable): |
| Use eh property helper to test for back-end exceptions. Adjust |
| mechanism name when testing for front-end sjlj. |
| (case E_Procedure): Likewise. |
| * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): |
| Likewise, and rename local variables. |
| (Exception_Handler_to_gnu_sjlj): Rename as |
| Exception_Handler_to_gnu_fe_sjlj. |
| (Exception_Handler_to_gnu_zcx): Rename as |
| Exception_Handler_to_gnu_gcc and adjust tests on eh mechanisms |
| to use property helpers or correct mechanism name. |
| |
| 2015-11-19 Bob Duff <duff@adacore.com> |
| |
| * sem_elab.adb (Check_Internal_Call_Continue): Correction to previous |
| change: correctly handle generic formals/actuals that look like |
| renamings. |
| |
| 2015-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (elaborate_all_entities_for_package): New |
| function extracted from... Recurse on packages. |
| (elaborate_all_entities): ...here. Call it on packages. |
| |
| 2015-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/ada-tree.h (DECL_INVARIANT_P): New macro. |
| * gcc-interface/gigi.h (enum standard_datatypes): Remove |
| ADT_longjmp_decl and add ADT_not_handled_by_others_decl. |
| (longjmp_decl): Delete. |
| (not_handled_by_others_decl): New macro. |
| (build_simple_component_ref): Delete. |
| (build_component_ref): Adjust prototype. |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to |
| build_component_ref. |
| (gnat_to_gnu_field): Set DECL_INVARIANT_P on discriminants |
| without default value. |
| * gcc-interface/trans.c (gigi): Reorder initialization sequence |
| and add not_handled_by_others_decl. |
| (Attribute_to_gnu): Adjust calls to build_component_ref. |
| (Subprogram_Body_to_gnu): Likewise. |
| (Call_to_gnu): Likewise. |
| (Exception_Handler_to_gnu_sjlj): Likewise. |
| (gnat_to_gnu): Likewise. |
| (range_check_info_d): Add inserted_cond field. |
| (Loop_Statement_to_gnu): Make two passes on the recorded range checks. |
| (build_noreturn_cond): New static function. |
| (Raise_Error_to_gnu): Record range checks in loops at -O1 and above. |
| (make_invariant): New static function. |
| (Loop_Statement_to_gnu): Use it to compute invariant expressions for |
| the loop bounds if possible, but do not require it if loop unswitching |
| is enabled. |
| * gcc-interface/utils.c (convert_to_fat_pointer): Likewise. |
| (convert): Likewise. |
| (maybe_unconstrained_array): Likewise. Call it instead of |
| build_simple_component_ref and add guard for CONSTRUCTORs. |
| (unchecked_convert): Likewise. |
| * gcc-interface/utils2.c (compare_fat_pointers): Likewise. |
| (build_simple_component_ref): Remove COMPONENT parameter, unify |
| code dealing with VIEW_CONVERT_EXPR and make it more general, |
| remove special treatment for CONSTRUCTORs of template types. |
| (build_component_ref): Remove COMPONENT parameter and adjust call |
| to build_simple_component_ref. |
| (maybe_wrap_malloc): Likewise. |
| (build_allocator): Likewise. |
| (gnat_invariant_expr): Look through overflow checks, deal with |
| addition and subtraction of constants and take into account |
| DECL_INVARIANT_P for the COMPONENT_REF case. |
| |
| 2015-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/misc.c: Move global variables to the top of the file. |
| (gnat_handle_option): Remove obsolete ATTRIBUTE_UNUSED markers. |
| (gnat_init_options): Minor tweak. |
| (gnat_post_options): Set -fstrict-overflow if not done by the user. |
| (internal_error_function): Minor reformatting. |
| |
| 2015-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Use case #1 |
| for the renaming of an address. |
| |
| 2015-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (fold_constant_decl_in_expr) <ARRAY_REF>: If |
| the index is not itself constant then bail out. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Try_Container_Indexing): When constructing the |
| parameter list for the potentially overloaded calls to indexing |
| functions, do not propagate overloadings if the actual is a named |
| association: overloadings appear directly on the expression in |
| the association. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_type.adb (Interface_Present_In_Ancestor): If the type is |
| incomplete, the list of ancestors is found either on the full |
| view or the non-limited view of the type. |
| |
| 2015-11-18 Nicolas Roche <roche@adacore.com> |
| |
| * sysdep.c (__gnat_localtime_tzoff): On Windows platform |
| GetTimeZoneInformation function is thread-safe. Thus there |
| is no need to lock the runtime in the implementation of |
| __gnat_localtime_tzoff on that platform. |
| |
| 2015-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * s-arit64.adb (To_Neg_Int): Add a special case for 2**63 input. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * contracts.adb (Analyze_Contracts): New routine. |
| (Analyze_Enclosing_Package_Body_Contract): Removed. |
| (Analyze_Entry_Or_Subprogram_Contract): Add formal parameter |
| Freeze_Id. Propagate the entity of the freezing body to vaious |
| analysis routines. |
| (Analyze_Initial_Declaration_Contract): Removed. |
| (Analyze_Object_Contract): Add formal parameter |
| Freeze_Id. Propagate the entity of the freezing body to vaious |
| analysis routines. |
| (Analyze_Previous_Contracts): New routine. |
| * contracts.ads (Analyze_Enclosing_Package_Body_Contract): Removed. |
| (Analyze_Contracts): New routine. |
| (Analyze_Entry_Or_Subprogram_Contract): Add formal |
| parameter Freeze_Id and update the comment on usage. |
| (Analyze_Initial_Declaration_Contract): Removed. |
| (Analyze_Object_Contract): Add formal parameter Freeze_Id and |
| update the comment on usage. |
| (Analyze_Previous_Contracts): New routine. |
| * sem_ch3.adb (Analyze_Declarations): Use Analyze_Contracts to |
| analyze all contracts of eligible constructs. |
| * sem_ch6.adb (Analyze_Generic_Subprogram_Body): |
| A body no longer freezes the contract of its initial |
| declaration. This effect is achieved through different means. |
| (Analyze_Subprogram_Body_Helper): A body now freezes the contracts |
| of all eligible constructs that precede it. A body no longer |
| freezes the contract of its initial declaration. This effect is |
| achieved through different means. |
| * sem_ch7.adb (Analyze_Package_Body_Helper): A body now freezes |
| the contracts of all eligible constructs that precede it. A body |
| no longer freezes the contract of its initial declaration. This |
| effect is achieved through different means. |
| * sem_ch9.adb (Analyze_Entry_Body): A body now freezes |
| the contracts of all eligible constructs that precede |
| it. A body no longer freezes the contract of its initial |
| declaration. This effect is achieved through different means. |
| (Analyze_Protected_Body): A body now freezes the contracts |
| of all eligible constructs that precede it. A body no longer |
| freezes the contract of its initial declaration. This effect |
| is achieved through different means. |
| (Analyze_Task_Body): A |
| body now freezes the contracts of all eligible constructs that |
| precede it. A body no longer freezes the contract of its initial |
| declaration. This effect is achieved through different means. |
| * sem_prag.adb (Add_Item_To_Name_Buffer): Single protected/task |
| objects now output their respective current instance of xxx |
| type messages. (Analyze_Contract_Cases_In_Decl_Part): Add |
| formal parameter Freeze_Id. Emit a clarification message |
| when an undefined entity may the byproduct of contract |
| freezing. |
| (Analyze_Part_Of_In_Decl_Part): Add formal |
| parameter Freeze_Id. Emit a clarification message when an |
| undefined entity may the byproduct of contract freezing. |
| (Analyze_Pre_Post_Condition_In_Decl_Part): Add formal |
| parameter Freeze_Id. Emit a clarification message when an |
| undefined entity may the byproduct of contract freezing. |
| (Analyze_Refined_State_In_Decl_Part): Do not report unused body |
| states as constituents of single protected/task types may not |
| bave been identified yet. |
| (Collect_Subprogram_Inputs_Outputs): |
| Reimplemented. (Contract_Freeze_Error): New routine. |
| (Process_Overloadable): Use predicate Is_Single_Task_Object. |
| * sem_prag.ads (Analyze_Contract_Cases_In_Decl_Part): |
| Add formal parameter Freeze_Id and update the comment |
| on usage. |
| (Analyze_Part_Of_In_Decl_Part): Add formal |
| parameter Freeze_Id and update the comment on usage. |
| (Analyze_Pre_Post_Condition_In_Decl_Part): Add formal parameter |
| Freeze_Id and update the comment on usage. |
| * sem_util.adb (Check_Unused_Body_States): Remove global |
| variable Legal_Constits. The routine now reports unused |
| body states regardless of whether constituents are |
| legal or not. |
| (Collect_Body_States): A constituent of a |
| single protected/task type is not a visible state of a |
| package body. |
| (Collect_Visible_States): A constituent |
| of a single protected/task type is not a visible |
| state of a package body. |
| (Has_Undefined_Reference): New routine. |
| (Is_Single_Concurrent_Object): Reimplemented. |
| (Is_Single_Protected_Object): New routine. |
| (Is_Single_Task_Object): New routine. |
| (Is_Visible_Object): New routine. |
| (Report_Unused_Body_States): Moved to Check_Unused_Body_States. |
| * sem_util.ads (Check_Unused_Body_States): Update the comment on usage. |
| (Has_Undefined_Reference): New routine. |
| (Is_Single_Protected_Object): New routine. |
| (Is_Single_Task_Object): New routine. |
| (Report_Unused_Body_States): Moved to Check_Unused_Body_States. |
| |
| 2015-11-18 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * Makefile.rtl, impunit.adb: Add g-strhas.ads. |
| * g-strhas.ads: New file. |
| * s-strhas.ads: Add a comment to redirect users to g-strhas.ads. |
| |
| 2015-11-18 Bob Duff <duff@adacore.com> |
| |
| * sem_elab.adb (Check_Internal_Call_Continue): Fix the case |
| where the call in question is to a renaming of a subprogram that |
| can be safely called without ABE. |
| * checks.adb: Minor edits. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * atree.adb (Elist11): New routine. |
| (Set_Elist11): New routine. |
| * atree.ads (Elist11): New routine. |
| (Set_Elist11): New routine. |
| * atree.h: Define Elist11. |
| * contracts.adb (Analyze_Object_Contract): Verify the legality |
| of all references to a variable given that the variable is a |
| constituent of a single protected/task type. |
| * einfo.adb: Part_Of_References now utilizes Elist11. |
| (Part_Of_References): New routine. |
| (Set_Part_Of_References): New routine. |
| (Write_Field11_Name): Add output for Part_Of_References. |
| * einfo.ads New attribute Part_Of_References along with usage |
| in entities. |
| (Part_Of_References): New routine along with |
| pragma Inline. |
| (Set_Part_Of_References): New routine along with pragma Inline. |
| * sem_prag.adb (Analyze_Constituent): Record a possible |
| reference to a concurrent constituent. |
| (Analyze_Global_Item): Record a possible reference to a concurrent |
| constituent. |
| (Analyze_Input_Output): Record a possible reference to a |
| concurrent constituent. |
| * sem_res.adb (Resolve_Entity_Name): Record a possible reference |
| to a concurrent constituent. |
| * sem_util.adb (Check_Part_Of_Reference): New routine. |
| (Record_Possible_Part_Of_Reference): New routine. |
| * sem_util.ads (Check_Part_Of_Reference): New routine. |
| (Record_Possible_Part_Of_Reference): New routine. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): |
| An if_expression is the proper place to apply the overflow |
| minimization procedure if its context is not an enclosing |
| arithmetic expression. |
| |
| 2015-11-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat_ugn/gnat_project_manager.rst, |
| gnat_ugn/building_executable_programs_with_gnat.rst, |
| gnat_ugn/gnat_and_program_execution.rst, |
| gnat_ugn/the_gnat_compilation_model.rst, |
| gnat_rm/implementation_defined_pragmas.rst, |
| gnat_rm/standard_and_implementation_defined_restrictions.rst, |
| gnat_ugn.texi, gnat_rm.texi: Update doc. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * contracts.adb (Add_Contract_Item): Chain pragmas Attach_Handler |
| and Interrupt_Handler on the classifications list of a [generic] |
| procedure N_Contract node. |
| * contracts.ads (Add_Contract_Item): Update the comment on usage. |
| * einfo.adb (Get_Pragma): Pragmas Attach_Handler and |
| Interrupt_Handler are found on the classifications list of |
| N_Contract nodes. |
| * einfo.ads (Get_Pragma): Update the comment on usage. |
| * sem_prag.adb (Process_Interrupt_Or_Attach_Handler): Code |
| reformatting. Store the pragma as a contract item. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch8.adb (Available_Subtype): Use only in GNATprove |
| mode. When generating code it may be necessary to create itypes |
| at the point of use of a selected component, for example in the |
| expansion of a record equality operation. |
| |
| 2015-11-18 Vincent Celier <celier@adacore.com> |
| |
| * s-os_lib.adb (Normalize_Pathname.Get_Directory): When |
| invoking Normalize_Pathname, use the same values for parameters |
| Resolve_Links and Case_Sensitive as the parent Normalize_Pathname. |
| |
| 2015-11-18 Vincent Celier <celier@adacore.com> |
| |
| * a-direct.adb (Containing_Directory): Return "." when the result |
| is the current directory, not specified as an absolute path name. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_aggr.adb (Is_Completely_Hidden_Discriminant): New routine. |
| (Init_Hidden_Discriminants): Code reformatting. Do not initialize |
| a completely hidden discriminant. |
| * a-interr.ads (Get_CPU): Added SPARK_Mode, Volatile_Function |
| and Global aspects on the function. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_intr.adb (Expand_Unc_Deallocation): If the designated |
| type is a concurrent type, the deallocation applies to the |
| corresponding record type, or to its class-wide type if the type |
| is tagged. |
| |
| 2015-11-18 Doug Rupp <rupp@adacore.com> |
| |
| * s-parame-vxworks.adb: Reduce default stack size for stack |
| limit check to a reasonable value |
| * s-tpopsp-vxworks.adb: Make Stack_Limit a task variable for vx5 and |
| vxmils. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Assignment): Diagnose assignment where |
| left-hand side has a limited view of a class-wide type. |
| * sem_ch6.adb (Detected_And_Exchange): Do not install a non-limited |
| view if the scope of the type of the formal is visible through |
| a limited_with_clause, even if the non-limited view is available. |
| |
| 2015-11-18 Emmanuel Briot <briot@adacore.com> |
| |
| * s-pooglo.ads: Make Global_Pool_Object aliased. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute, case 'Access): If the prefix |
| is an expression function, do not analyze the generated body if |
| the current scope is not the scope of the expression function, |
| as may happen if the attribute is an actual in an instantiation. |
| * sem_ch10.adb, sem_ch12.adb, a-stzmap.adb, s-soflin.adb, |
| a-stwima.adb: Fix typos. |
| |
| 2015-11-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_ch11.adb (Expand_N_Exception_Declaration): No-op when |
| generating C code. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| PR ada/66242 |
| * exp_ch3.adb (Default_Initialize_Object): Reimplemented. Abort |
| defer / undefer pairs are now encapsulated in a block with |
| an AT END handler. Partial finalization now takes restriction |
| No_Exception_Propagation into account when generating blocks. |
| * exp_ch7.adb Various reformattings. |
| (Create_Finalizer): Change |
| the generation of abort defer / undefer pairs and explain the |
| lack of an AT END handler. |
| (Process_Transient_Objects): Add generation of abort defer/undefer |
| pairs. |
| * exp_ch9.adb Various reformattings. |
| (Build_Protected_Subprogram_Body): Use |
| Build_Runtime_Call to construct a call to Abort_Defer. |
| (Build_Protected_Subprogram_Call_Cleanup): Use |
| Build_Runtime_Call to construct a call to Abort_Undefer. |
| (Expand_N_Asynchronous_Select): Use Build_Runtime_Call to |
| construct a call to Abort_Defer. |
| * exp_intr.adb (Expand_Unc_Deallocation): Abort defer |
| / undefer pairs are now encapsulated in a block with |
| an AT END handler. Finalization now takes restriction |
| No_Exception_Propagation into account when generating blocks. |
| * exp_util.ads, exp_util.adb (Wrap_Cleanup_Procedure): Removed. |
| |
| 2015-11-18 Vincent Celier <celier@adacore.com> |
| |
| * g-comlin.adb (Find_Longest_Matching_Switch): Do not take into |
| account a switch ending with '=' when the actual command line |
| switch is not followed with a space or '='. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve_Explicit_Dereference): Do not add an access |
| check if the type of the prefix is known to exclude null. |
| * a-coinve.adb (Get_Element_Access): The function returns an |
| access type that excludes null, so add an explicit check for |
| a null element pointer, which is created when Insert_Spaces is |
| called on an indefinite vector container. |
| |
| 2015-11-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * switch-c.adb (Scan_Front_End_Switches): Add a check requiring |
| -gnatc with -gnateg. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch7.adb (Uninstall_Declarations): Before swapping private |
| and full views, ensure that the potential use visbility of the |
| two views is consistent. |
| |
| 2015-11-18 Doug Rupp <rupp@adacore.com> |
| |
| * s-parame-vxworks.adb: Increase default stack size for targets |
| using stack limit checking. |
| |
| 2015-11-18 Jose Ruiz <ruiz@adacore.com> |
| |
| * a-interr.adb, a-interr.ads (Ada.Interrupts.Get_CPU): Add this |
| function that was added to Ada 2005 returning the processor where |
| interrupt handlers execute. |
| |
| 2015-11-18 Tristan Gingold <gingold@adacore.com> |
| |
| * exp_ch9.adb (Is_Pure_Barrier): Handle expanded component |
| declaration of a protected definition. |
| |
| 2015-11-18 Ed Falis <falis@adacore.com> |
| |
| * s-soflin.adb, s-stchop-vxworks.adb: Code clean ups. |
| |
| 2015-11-18 Gary Dismukes <dismukes@adacore.com> |
| |
| * bcheck.adb: Minor editorial changes. |
| |
| 2015-11-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * interfac.ads (Unsigned_24): New type. |
| * sem_ch13.adb (Validate_Unchecked_Conversion): Disable error on |
| unconstrained arrays in Relaxed_RM_Semantics mode. |
| |
| 2015-11-18 Vincent Celier <celier@adacore.com> |
| |
| * bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking): No |
| warning is withed unit is the interface of a Stand-Alone Library. |
| |
| 2015-11-18 Thomas Quinot <quinot@adacore.com> |
| |
| * s-os_lib.ads, s-os_lib.adb(Normalize_Pathname): Support the case of |
| an unresolved Directory argument, by recursively resolving it |
| against the current dir. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Process_Formals): A function declaration that |
| returns a class-wide type must have freeing deferred, so that it |
| is not frozen before the class-wide type and its root type are |
| frozen. This is significant when there may be a limited view of |
| the class_wide type in another package. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * einfo.adb (Has_Non_Null_Refinement): Rename to |
| Has_Non_Null_Visible_Refinement. |
| (Has_Null_Refinement): Rename to Has_Null_Visible_Refinement. |
| * einfo.ads Update the documentation of |
| attribute Has_Non_Null_Refinement and attribute Has_Null_Refinement. |
| (Has_Non_Null_Refinement): Rename to Has_Non_Null_Visible_Refinement |
| and update occurrences in entities. |
| (Has_Null_Refinement): Rename to Has_Null_Visible_Refinement and update |
| occurrences in entities. |
| * sem_prag.adb (Check_In_Out_States): Update the calls to |
| Has_[Non_]Null_Refinement. |
| (Check_Input_States): Update the |
| calls to Has_[Non_]Null_Refinement. |
| (Check_Output_States): Update the calls to Has_[Non_]Null_Refinement. |
| (Check_Proof_In_States): Update the calls to Has_[Non_]Null_Refinement. |
| (Collect_Global_Item): Update the calls to Has_[Non_]Null_Refinement. |
| (Is_Null_Refined_State): Update the calls to Has_[Non_]Null_Refinement. |
| (Match_Item): Update the calls to Has_[Non_]Null_Refinement. |
| * sem_util.adb (Has_Non_Null_Refinement): New routine. |
| (Has_Null_Refinement): New routine. |
| * sem_util.ads (Has_Non_Null_Refinement): New routine. |
| (Has_Null_Refinement): New routine. |
| |
| 2015-11-18 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_util.adb: Minor reformatting and typo fixes. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch4.adb: Minor reformatting. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_util.adb (Expand_Subtype_From_Expr): Add new formal |
| parameter Related_Id and propagate it to Make_Subtype_From_Expr. |
| (Make_Subtype_From_Expr): Add new formal parameter |
| Related_Id. Create external entities when requested by the caller. |
| * exp_util.ads (Expand_Subtype_From_Expr): Add new formal |
| parameter Related_Id. Update the comment on usage. |
| (Make_Subtype_From_Expr): Add new formal parameter |
| Related_Id. Update the comment on usage. |
| * sem_ch3.adb (Analyze_Object_Declaration): Add local variable |
| Related_Id. Generate an external constrained subtype when the |
| object is a public symbol. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Update the grammars of pragmas |
| Abstract_State, Depends, Global, Initializes, Refined_Depends, |
| Refined_Global and Refined_State. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_util.adb (Has_Full_Default_Initialization): |
| Perform the test for the presence of pragma |
| Default_Initial_Condition prior to the specialized type |
| checks. Add a missing case where the lack of a pragma argument |
| yields full default initialization. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_res.adb (Resolve_Entity_Name): Do not check |
| for elaboration issues when a variable appears as the name of |
| an object renaming declaration as this constitutes an aliasing, |
| not a read. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * checks.adb (Overlap_Check): An actual that is an aggregate |
| cannot overlap with another actual, and no check should be |
| generated for it. |
| * targparm.ads: Fix typos. |
| |
| 2015-11-18 Pascal Obry <obry@adacore.com> |
| |
| * adaint.c: Routine __gnat_killprocesstree only implemented on |
| Linux and Windows. |
| |
| 2015-11-18 Pascal Obry <obry@adacore.com> |
| |
| * g-ctrl_c.adb: Minor style fixes. |
| |
| 2015-11-18 Pascal Obry <obry@adacore.com> |
| |
| * adaint.c, s-os_lib.adb, s-os_lib.ads (Kill_Process_Tree): New. |
| |
| 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_util.adb (Check_Nonvolatile_Function_Profile): Place the error |
| message concerning the return type on the result definition. |
| (Is_Volatile_Function): A function with a parameter of a protected |
| type is a protected function if it is defined within a protected |
| definition. |
| |
| 2015-11-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Try_Container_Indexing): When building the |
| parameter list for the function call on indexing functions, |
| preserve overloading of the parameters, which may themselves be |
| generalized indexing operations. |
| |
| 2015-11-13 Arnaud Charlet <charlet@adacore.com> |
| |
| PR ada/68345 |
| * s-osinte-dragonfly.ads (Get_Page_Size): C function returns an int. |
| |
| 2015-11-13 David Malcolm <dmalcolm@redhat.com> |
| |
| * gcc-interface/trans.c (Sloc_to_locus): Add line_table param when |
| calling linemap_position_for_line_and_column. |
| |
| 2015-11-13 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_attr.adb: Minor reformatting. |
| |
| 2015-11-13 Pascal Obry <obry@adacore.com> |
| |
| * adaint.c: Ensure that it is possible to get killed process |
| status on Windows. |
| |
| 2015-11-13 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat_rm.texi, gnat_ugn.texi, doc/gnat_ugn/gnat_project_manager.rst |
| doc/gnat_ugn/building_executable_programs_with_gnat.rst, |
| doc/gnat_ugn/platform_specific_information.rst, |
| doc/gnat_ugn/gnat_and_program_execution.rst, |
| doc/gnat_ugn/gnat_utility_programs.rst, |
| doc/gnat_ugn/the_gnat_compilation_model.rst, |
| doc/gnat_rm/compatibility_and_porting_guide.rst, |
| doc/gnat_rm/implementation_defined_pragmas.rst, |
| doc/gnat_rm/representation_clauses_and_pragmas.rst, |
| doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: |
| Update documentation. |
| |
| 2015-11-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sigtramp-ios.c, init.c: Minor cosmetic tweaks. |
| |
| 2015-11-13 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * s-gloloc.adb, g-debpoo.adb: Minor reformatting. |
| |
| 2015-11-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Iterator_Specification): Improve error |
| message for the case the iterable name (array or container) |
| is a component that depends on a discriminant. |
| |
| 2015-11-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Indicate_Name_And_Type): If the analysis of |
| one interpretation succeeds, set type of name in call, for |
| completeness. |
| (Try_Container_Indexing): If there are multiple indexing |
| functions, collect possible interpretations that are compatible |
| with given parameters, and add implicit dereference types when |
| present. |
| * sem_util.adb (Build_Explicit_Dereference): If the expression |
| is an overloaded function call use the given discriminant to |
| resolve the call, and set properly the type of the call and of |
| the resulting dereference. |
| |
| 2015-11-13 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Pragma Constant_After_Elaboration can |
| now apply to a variable without an initialization expression. |
| |
| 2015-11-13 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch9.adb (Add_Matching_Formals): Parameter Actuals is now of mode |
| IN OUT. Create a new list when list Actuals is not present. |
| (Build_Contract_Wrapper): Create the wrapper |
| only when the entry has at least on checked contract case or |
| pre/postcondition. Ensure that the call to the original entry |
| lacks an actual parameter list when the entry appears without |
| formal parameters. |
| (Expand_Entry_Declaration): Code cleanup. |
| |
| 2015-11-13 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Continue the analysis |
| after encountering an illegal aspect Part_Of. |
| |
| 2015-11-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference, case |
| Overlaps_Storage): Add copies for nodes that represent the integer |
| addresses of the two actuals, to prevent identical nodes in the |
| tree, which the backend cannot handle properly. |
| |
| 2015-11-13 Bob Duff <duff@adacore.com> |
| |
| * sem_ch6.adb (Check_Private_Overriding): Change |
| name of Parent_Is_Private to be Overrides_Private_Part_Op, |
| and use Unit_Declaration_Node. |
| |
| 2015-11-13 Bob Duff <duff@adacore.com> |
| |
| * sinfo.ads: Minor comment fix. |
| * sem_ch6.adb: Minor reformatting. |
| |
| 2015-11-13 Jerome Lambourg <lambourg@adacore.com> |
| |
| * tracebak.c: Do not use the GCC Unwinder to retrieve traceback |
| for x86_64-vx7. |
| |
| 2015-11-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * init.c [Darwin/arm64]: Fix typo. |
| * sigtramp-armios.c: Remove. |
| * sigtramp-ios.c: New file. |
| |
| 2015-11-13 Doug Rupp <rupp@adacore.com> |
| |
| * s-stchop-vxworks.adb (Set_Stack_Limit_For_Current_Task): Set stack |
| limit to 12000 decimal vice 12000 hexadecimal. |
| |
| 2015-11-13 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch9.adb, exp_fixd.adb, exp_util.adb, g-debpoo.adb, |
| impunit.adb, scos.ads, sem_ch4.adb, sem_prag.adb, |
| s-stchop-vxworks.adb: Minor reformatting. |
| |
| 2015-11-13 Tristan Gingold <gingold@adacore.com> |
| |
| * s-rident.ads (Profile_Info): Enable Pure_Barriers for |
| GNAT_Extended_Ravenscar. |
| |
| 2015-11-13 Bob Duff <duff@adacore.com> |
| |
| * sem_ch6.adb (Check_Private_Overriding): Detect the special |
| case where the overriding subprogram is overriding a subprogram |
| that was declared in the same private part. |
| |
| 2015-11-13 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch9.adb: Minor reformatting and typo fixes. |
| |
| 2015-11-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * init.c [Darwin/arm64]: Move __gnat_sigtramp implementation to... |
| (__gnat_map_signal): New function. |
| (__gnat_error_handler): |
| Adjust the context and call above function. |
| * sigtramp-armios.c: ...here. New file. |
| |
| 2015-11-13 Arnaud Charlet <charlet@adacore.com> |
| |
| * bcheck.adb (Check_Consistent_Restrictions): Do not check |
| consistency of No_Dependence for runtime units. |
| |
| 2015-11-13 Tristan Gingold <gingold@adacore.com> |
| |
| * s-rident.ads (Restriction_Id): Add Pure_Barriers. |
| * restrict.ads (Implementation_Restriction): Add Pure_Barriers. |
| * exp_ch9.adb (Expand_Entry_Barrier): Create |
| Is_Simple_Barrier_Name function, add Is_Pure_Barrier and |
| Check_Pure_Barriers. |
| |
| 2015-11-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (Get_Cursor_Type): To determine whether a function |
| First is the proper Iterable primitive, use the base type of the |
| first formal rather than the type. This is needed in the unusual |
| case where the Iterable aspect is specified for an integer type. |
| |
| 2015-11-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Constant_Indexing_OK): If the indexing is the |
| prefix of a procedure call assume that constant indexing is |
| not chosen. |
| |
| 2015-11-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sigtramp.h: Fix formatting throughout, do not include other |
| headers, add missing preprocessor condition and 'extern' keywords. |
| * sigtramp-armdroid.c: Include <sys/ucontext.h>. |
| * init.c [Android]: Likewise. |
| |
| 2015-11-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * init.c [Darwin/arm64] (__gnat_sigtramp): Do not increment PC, |
| fix CFI and add return sequence. |
| |
| 2015-11-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_fixd.adb (Expand_Convert_Float_To_Fixed): If the conversion |
| comes from an attribute reference 'Round, the operation must |
| round and not truncate. |
| * sem_res.adb, sem_ch6.adb: Minor editing. |
| |
| 2015-11-12 Philippe Gil <gil@adacore.com> |
| |
| * g-debpoo.adb (Print_Address): print address in hexadecimal as |
| in previous GNAT version (without secondary stack use) |
| (Deallocate): Deallocate calling once Unlock_Task.all when it |
| raise exception. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Subtype_Declaration): Remove redundant |
| copying of dimensions from parent type to subtype. This is |
| properly done in Analyze_Dimension. |
| * sem_dim.adb (Analyze_Dimension_Subtype_Declaration): Add entity |
| to error message, so that reference to entity can be formatted |
| properly. |
| * opt.ads: Fix typo. |
| |
| 2015-11-12 Bob Duff <duff@adacore.com> |
| |
| * impunit.adb, lib-xref.ads, restrict.ads, scos.ads, sem_attr.ads, |
| types.ads: Get rid of some global variables. |
| * output.adb, output.ads: Move some global variables to the body. |
| |
| 2015-11-12 Yannick Moy <moy@adacore.com> |
| |
| * lib-xref-spark_specific.adb |
| (Is_Constant_Object_Without_Variable_Input): Add special case |
| for imported constants. |
| |
| 2015-11-12 Philippe Gil <gil@adacore.com> |
| |
| * g-debpoo.adb (Allocate): Avoid having allocations not handled. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * checks.adb (Apply_Scalar_Range_Check): If the expression is |
| a real literal and the context type has static bounds, remove |
| range check when possible. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (Collect_Primitive_Operations): If the type is |
| derived from a type declared elsewhere that has an incomplete |
| type declaration, the primitives are found in the scope of the |
| type nat that of its ancestor. |
| |
| 2015-11-12 Arnaud Charlet <charlet@adacore.com> |
| |
| * switch-c.adb, debug.adb, osint-c.adb, gnat1drv.adb: Remove -gnatd.V |
| debug switch. |
| * exp_aggr.adb, exp_util.adb: Fix typos. |
| |
| 2015-11-12 Jerome Lambourg <lambourg@adacore.com> |
| |
| * init.c: Properly adjust PC values in case of signals. |
| |
| 2015-11-12 Bob Duff <duff@adacore.com> |
| |
| * sem_prag.adb (Check_Arg_Is_Library_Level_Local_Name): A |
| pragma that comes from an aspect does not "come from source", |
| so we need to test whether it comes from an aspect. |
| |
| 2015-11-12 Arnaud Charlet <charlet@adacore.com> |
| |
| * switch-c.adb, gnat1drv.adb, opt.ads: Reserve -gnateg for generation |
| of C headers. |
| |
| 2015-11-12 Arnaud Charlet <charlet@adacore.com> |
| |
| * back_end.adb, opt.ads (Debugger_Level): Update comment. |
| (Scan_Back_End_Switches): Set Debugger_Level. |
| |
| 2015-11-12 Bob Duff <duff@adacore.com> |
| |
| * fmap.adb, debug.ads, checks.adb, exp_ch11.adb: Minor edits. |
| |
| 2015-11-12 Doug Rupp <rupp@adacore.com> |
| |
| * s-stchop-vxworks.adb (Stack_Limit): Export vice Import. |
| |
| 2015-11-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_dim.adb: Minor reformatting. |
| |
| 2015-11-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * gnat1drv.adb, opt.ads: Minor reformatting. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Number_Declaration): Call Analyze_Dimension, |
| to propagate dimension information from expression to named |
| number. |
| * sem_dim.ads: Documentation: number declaration and explicit |
| dereference can carry dimension information. |
| * sem_dim.adb (Analyze_Dimension_Number_Declaration): New |
| procedure, to propagate dimension information from expression |
| of declaration to named number, whose type becomes one of the |
| dimensioned base types rather than universal real. |
| (Analyze_Dimension_Binary_Op): |
| a) If one operand is a literal that is the value of a declared |
| constant after constant-foloding, use the dimensions of the |
| declared constant. |
| b) If an operand is a literal that is a contant-folded expression, |
| and expander is active, do not report a dimension mismatch if |
| literal does not carry them, because dimension matching will |
| have been checked previously. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch8.adb (Find_Selected_Component): In a synchronized |
| body, a reference to an operation of an object of the same |
| synchronized type was always interpreted as a reference to the |
| current instance. This is not always the case, as the prefix of |
| the reference may designate an object of the same type declared |
| in the enclosing context prior to the body. |
| |
| 2015-11-12 Arnaud Charlet <charlet@adacore.com> |
| |
| * impunit.ads, impunit.adb (Get_Kind_Of_File): New. Cleaned up |
| implementation from previous Get_Kind_Of_Unit. |
| (Get_Kind_Of_Unit): Reimplemented using Get_Kind_Of_File. |
| * debug.adb: Remove d.4 switch, no longer used. |
| * opt.ads: Update doc on Debugger_Level. |
| * gnat1drv.adb: Code clean ups. |
| * sinput.ads: minor fix in comment |
| |
| 2015-11-12 Bob Duff <duff@adacore.com> |
| |
| * sinfo.adb, sinfo.ads, sem_ch6.adb, atree.ads: Add |
| Was_Expression_Function flag, which is set in sem_ch6.adb when |
| converting an Expression_Function into a Subprogram_Body. |
| |
| 2015-11-12 Pascal Obry <obry@adacore.com> |
| |
| * usage.adb: Update overflow checking documentation. |
| |
| 2015-11-12 Tristan Gingold <gingold@adacore.com> |
| |
| * snames.ads-tmpl: Name_Gnat_Extended_Ravenscar: New identifier. |
| * s-rident.ads (Profile_Name): Add GNAT_Extended_Ravenscar. |
| (Profile_Info): Add new entry for GNAT_Extended_Ravenscar. |
| * sem_prag.adb (Set_Ravenscar_Profile): Add Profile parameter |
| to handle various ravenscar profiles. Adjust error messages. |
| (Analyze_Pragma): Handle GNAT_Extended_Ravenscar profile. |
| * targparm.adb (Get_Target_Parameters): Handle |
| GNAT_Extended_Ravenscar profile. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_warn.adb (Warn_On_Unreferenced_Entity): If the entity is an |
| Out_Parameter the front-end does not emit any warning on it, so |
| do not suppress warnings on the entity because the backend might |
| be able to determine an uninitialized path and warn accordingly. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Analyze_Selected_Component): Diagnose an attempt |
| to reference an internal entity from a synchronized type from |
| within the body of that type, when the prefix of the selected |
| component is not the current instance. |
| |
| 2015-11-12 Ed Falis <falis@adacore.com> |
| |
| * s-stchop-vxworks.adb: Clean up in stack checking code. |
| |
| 2015-11-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch6.adb (Is_Build_In_Place_Function_Call): |
| Test Expression (N) in N_Type_Conversion cases as well, |
| since conversions can occur in actual parameter contexts. |
| (Make_Build_In_Place_Call_In_Anonymous_Context): Retrieve |
| function call from Expression (Func_Call) when Nkind (Func_Call) |
| is N_Type_Conversion, since conversions are allowed in "anonymous" |
| contexts (specifically, as actual parameters). |
| |
| 2015-11-12 Thomas Quinot <quinot@adacore.com> |
| |
| * sem_ch4.adb (analyze_If_Expression): Reject IF-expression where |
| THEN-expression is overloaded and none of its interpretation is |
| compatible with the ELSE-expression. |
| |
| 2015-11-12 Jerome Lambourg <lambourg@adacore.com> |
| |
| * init.c: Do not try to mess with the MSR values in RTP mode: |
| not needed and forbidden. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install |
| full view of a type that has pragma Stream_Convert, because |
| this indicates special processing for the stream operations of |
| the type. |
| |
| 2015-11-12 Jerome Lambourg <lambourg@adacore.com> |
| |
| * init.c: Do not try to mess with the MSR values in RTP mode: |
| not needed and forbidden. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install |
| full view of a type that has pragma Stream_Convert, because |
| this indicates special processing for the stream operations of |
| the type. |
| |
| 2015-11-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch5.adb, sem_ch3.adb, exp_util.ads, inline.adb, freeze.adb, |
| sem_util.adb, sem_util.ads, par-ch6.adb, sem_elab.adb: Minor |
| reformatting and a typo fix. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch12.adb (Preanalyze_Actuals): Add guard on use of |
| Incomplete_Actuals, which are only stored for a package |
| instantiation, in order to place the instance in the body of |
| the enclosing unit. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_intr.adb: Add legality checks on calls to a |
| Generic_Dispatching_Constructor: the given tag must be defined, |
| it cannot be the tag of an abstract type, and its accessibility |
| level must not be greater than that of the constructor. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Try_Container_Indexing, Constant_Indexing_OK): If |
| the context is an overloaded call, assume that Constant_Indexing |
| is not OK if an interpretation has an assignable parameter |
| corresponding to the indexing expression. |
| |
| 2015-11-12 Jerome Lambourg <lambourg@adacore.com> |
| |
| * init.c (__gnat_error_handler): Force the SPE bit of the MSR |
| when executing on e500v2 CPU. |
| |
| 2015-11-12 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Constituent): Stop the |
| analysis after detecting a misplaced constituent as this is a |
| critical error. |
| |
| 2015-11-12 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch10.adb, atree.adb: Minor reformatting. |
| |
| 2015-11-12 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_elab.adb (Check_A_Call): Add new variable |
| Is_DIC_Proc. Report elaboration issue in SPARK concerning calls |
| to source subprograms or nontrivial Default_Initial_Condition |
| procedures. Add specialized error message to avoid outputting |
| the internal name of the Default_Initial_Condition procedure. |
| * sem_util.ads, sem_util.adb |
| (Is_Non_Trivial_Default_Init_Cond_Procedure): New routine. |
| |
| 2015-11-12 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): |
| Remove the guard concerning entry bodies as it is spurious. |
| (Analyze_Entry_Or_Subprogram_Contract): Skip the analysis of |
| Contract_Cases when not annotating the tree. |
| * einfo.adb: Node25 is now used as Contract_Wrapper. |
| (Contract_Wrapper): New routine. |
| (PPC_Wrapper): Removed. |
| (Set_Contract_Wrapper): New routine. |
| (Set_PPC_Wrapper): Removed. |
| (Write_Field25_Name): Add output for Contract_Wrapper. Remove |
| output for PPC_Wrapper. |
| * einfo.ads: New attribute Contract_Wrapper along with usage |
| in entities. Remove attribute PPC_Wrapper along with usage in nodes. |
| (Contract_Wrapper): New routine along with pragma Inline. |
| (PPC_Wrapper): Removed along with pragma Inline. |
| (Set_Contract_Wrapper): New routine along with pragma Inline. |
| (Set_PPC_Wrapper): Removed along with pragma Inline. |
| * exp_ch9.adb (Build_Contract_Wrapper): New routine. |
| (Build_PPC_Wrapper): Removed. |
| (Build_Protected_Entry): Code cleanup. |
| (Expand_Entry_Declaration): Create a contract wrapper |
| which now verifies Contract_Cases along with pre/postconditions. |
| (Expand_N_Task_Type_Declaration): There is no need to check |
| whether an entry has pre/postconditions as this is now done |
| in Build_Contract_Wrapper. |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Pragma |
| Refined_Post is now properly inserted in entry bodies. |
| (Insert_Pragma): Add circuitry to insert in an entry body. Redo |
| the instance "header" circuitry. Remove the now obsolete special |
| case of inserting pre- conditions. |
| * sem_prag.adb (Analyze_Pragma): Pragma Contract_Cases now |
| applies to entries. |
| * sem_res.adb (Resolve_Entry_Call): Update the calls to |
| PPC_Wrapper. |
| |
| 2015-11-12 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_attr.adb, freeze.adb, sem_util.adb, sem_ch13.adb: Minor |
| reformatting. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_attr.adb (Compile_Stream_Body_In_Scope): When compiling |
| a stream operation for an array type, install the scope of the |
| component type if it is private and not in scope, to prevent |
| spurious errors if the full view of the component type has |
| defaulted discriminants. |
| |
| 2015-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): For a |
| variable, if this is not an overlay, set on Treat_As_Volatile on it. |
| * gcc-interface/decl.c (E_Variable): Do not force the type to volatile |
| for address clauses. Tweak and adjust various RM references. |
| |
| 2015-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.ads: Minor comment fix. |
| |
| 2015-11-12 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat_rm.texi, gnat_ugn.texi, |
| doc/gnat_ugn/platform_specific_information.rst, |
| doc/gnat_ugn/gnat_and_program_execution.rst, |
| doc/gnat_ugn/the_gnat_compilation_model.rst, |
| doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, |
| doc/gnat_rm/implementation_defined_pragmas.rst: Update documentation. |
| |
| 2015-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Overlays_Constant): Document usage for E_Constant. |
| * freeze.adb (Warn_Overlay): Small reformatting. |
| (Check_Address_Clause): Deal specifically with deferred |
| constants. For a variable or a non-imported constant |
| overlaying a constant object and with initialization value, |
| either remove the initialization or issue a warning. Fix a |
| couple of typos. |
| * sem_util.adb (Note_Possible_Modification): Overhaul the condition for |
| the warning on modified constants and use Find_Overlaid_Entity instead |
| of doing it manually. |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Compute and |
| set Overlays_Constant once on entry. Do not treat the overlaid |
| entity as volatile. Do not issue the warning on modified |
| constants here. |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove |
| over-restrictive condition for the special treatment of deferred |
| constants. |
| <E_Variable>: Remove obsolete associated code. |
| |
| 2015-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Renaming_Decl>: Do |
| not materialize renamed subprograms if only annotating types. |
| |
| 2015-11-12 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Create |
| IMPORTED_DECL nodes to describe the subprogram renamings which |
| are relevant at debug time. |
| * gcc-interface/gigi.h (get_debug_scope): Add declaration. |
| * gcc-interface/trans.c (Identifier_to_gnu): Consider |
| N_Defining_Operator_Symbol as valid entities. |
| (gnat_to_gnu): Handle N_Defining_Operator_Symbol the same way as |
| other entities. Introduce a specific handling for |
| N_Subprogram_Renaming_Declaration: call gnat_to_gnu_entity on |
| the entity defined for relevant ones. |
| (process_decls): Process subprogram renaming declarations during |
| the second pass only. |
| * gcc-interface/utils.c (get_debug_scope): Make it external. |
| Consider N_Defining_Operator_Symbol as valid entities. |
| (gnat_write_global_declarations): Output debugging information |
| for top-level imported declarations. |
| |
| 2015-11-12 Emmanuel Briot <briot@adacore.com> |
| |
| * s-os_lib.ads: Documentation update. |
| |
| 2015-11-12 Arnaud Charlet <charlet@adacore.com> |
| |
| * s-taprop-vxworks.adb, s-osinte-vxworks.ads: Use a single import of |
| taskDelay to avoid confusion. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch6.adb (Expand_Simple_Function_Return): If the return |
| type is class-wide and the expression is a view conversion, |
| remove the conversion to prevent overriding of the tag, which |
| must be that of the object being returned. |
| |
| 2015-11-12 Tristan Gingold <gingold@adacore.com> |
| |
| * bindgen.adb (Gen_Adainit): Code cleanup. |
| |
| 2015-11-12 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * s-stalib.ads: Code cleanup. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Incomplete_Type_Decl): small optimization. |
| (Analyze_Subtype_Declaration): For floating point types, |
| inherit dimensions. |
| (OK_For_Limited_Init_In_05): Handle properly a conditional |
| expression whose condition is static, and is rewritten as the |
| branch that will be executed. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_attr.adb (Resolve_Attribute, case 'Access): If the context |
| type is an access constant type, do not mark the attribute |
| reference as a possible modification of the prefix. |
| |
| 2015-11-12 Steve Baird <baird@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Procedure_Call) If CodePeer_Mode is True, |
| do not analyze the expression of a machine code insertion. |
| * sem_ch13.adb (Analyze_Code_Statement) If CodePeer_Mode is True, |
| mark the N_Code_Statement node as analyzed and do nothing else. |
| |
| 2015-11-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Check_Limited_Return): Make global to package |
| for use elsewhere. |
| (Analyze_Expression_Function): Remove duplicated code, pre-analyze |
| expression to capture names and call Check_Limited_Return so |
| that semantic checks are identical to those for regular functions |
| returning limited types. |
| |
| 2015-11-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * bindgen.adb: Fix typo. |
| * sem_ch6.adb: Minor reformatting. |
| |
| 2015-11-12 Emmanuel Briot <briot@adacore.com> |
| |
| * s-os_lib.adb (Argument_String_To_List): fix handling of |
| windows separators |
| |
| 2015-11-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gcc-interface/decl.c: Remove unused header files. |
| * gcc-interface/misc.c: Likewise. |
| * gcc-interface/targtyps.c: Likewise. |
| * gcc-interface/trans.c: Likewise. |
| * gcc-interface/utils.c: Likewise. |
| |
| 2015-11-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (set_reverse_storage_order_on_pad_type): |
| Declare. |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Set the |
| storage order on the enclosing record for a packed array type. |
| <E_Array_Type>: Set the storage order. |
| <E_Array_Subtype>: Likewise. |
| <E_Record_Type>: Likewise. |
| <E_Record_Subtype>: Likewise. |
| (gnat_to_gnu_component_type): Set the reverse storage order on a |
| padded type built for a non-bit-packed array. |
| (gnat_to_gnu_field): Likewise. |
| (components_to_record): Deal with TYPE_REVERSE_STORAGE_ORDER. |
| * gcc-interface/utils.c (make_packable_type): Likewise. |
| (pad_type_hasher::equal): Likewise. |
| (gnat_types_compatible_p): Likewise. |
| (unchecked_convert): Likewise. |
| (set_reverse_storage_order_on_pad_type): New public function. |
| * gcc-interface/trans.c (Attribute_to_gnu): Adjust call to |
| get_inner_reference. |
| * gcc-interface/utils2.c (build_unary_op): Likewise. |
| (gnat_build_constructor): Deal with TYPE_REVERSE_STORAGE_ORDER. |
| (gnat_rewrite_reference): Propagate REF_REVERSE_STORAGE_ORDER. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gcc-interface/utils.c: Don't undef DEF_BUILTIN. |
| |
| 2015-10-29 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gcc-interface/decl.c: Reorder #include's and remove duplicates. |
| * gcc-interface/misc.c: Likewise. |
| * gcc-interface/targtyps.c: Likewise. |
| * gcc-interface/trans.c: Likewise. |
| * gcc-interface/utils.c: Likewise. |
| |
| 2015-10-27 Tristan Gingold <gingold@adacore.com> |
| |
| * bindgen.adb (System_BB_CPU_Primitives_Multiprocessors_Used): |
| New variable. |
| (Gen_Adainit): Call Start_All_CPUs if the above |
| variable is set to true. |
| |
| 2015-10-27 Emmanuel Briot <briot@adacore.com> |
| |
| * adaint.c, s-os_lib.adb, s-os_lib.ads (Copy_File_Attributes): New |
| subprogram. |
| |
| 2015-10-27 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * namet.adb, namet.ads: Minor reformatting. |
| |
| 2015-10-27 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Analyze_Allocator): Do not perform legality check |
| on allocators for limited objects in a qualified expression, |
| because expression has not been resolved. |
| * sem_res.adb (Resolve_Allocator): Perform check on legality of |
| limited objects after resolution. Add sem_ch3.adb to context. |
| |
| 2015-10-27 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Refined_Global_In_Decl_Part): Add variable |
| States. |
| (Check_Refined_Global_Item): An object or state acts as a |
| constituent only when the corresponding encapsulating state |
| appears in pragma Global. |
| (Collect_Global_Item): Add a state with non-null visible refinement to |
| list States. |
| |
| 2015-10-27 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_util.ads, par.adb, sem_ch6.adb: Minor reformatting and a few |
| typo corrections. |
| |
| 2015-10-27 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * namet.ads, namet.adb (Name_Equals): New function. |
| * namet.h (Name_Equals): New macro. |
| |
| 2015-10-27 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_ch6.adb (Build_Procedure_Form): Use 'RESULT' for the extra |
| parameter, to avoid ambiguity when generating tmps using _xxx which |
| might end up reusing _result. |
| |
| 2015-10-27 Javier Miranda <miranda@adacore.com> |
| |
| * sem_util.ads, sem_util.adb (Defining_Identifier): Adding a formal to |
| indicate the needed behavior in case of nodes with errors. |
| |
| 2015-10-27 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): If the prefix of attribute |
| Enum_Rep is an object that is a generated loop variable for an |
| element iterator, no folding is possible. |
| * sem_res.adb (Resolve_Entity_Name): Do not check for a missing |
| initialization in the case of a constant that is an object |
| renaming. |
| * exp_attr.adb (Expand_N_Attribute_Reference, case Enum_Rep): |
| If the prefix is a constant that renames an expression there is |
| nothing to evaluate statically. |
| |
| 2015-10-27 Vincent Celier <celier@adacore.com> |
| |
| * gnatlink.adb: Always delete the response file, even when the |
| invocation of gcc to link failed. |
| |
| 2015-10-27 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): |
| Do not inherit the SPARK_Mode from the context if it has been |
| set already. |
| (Build_Subprogram_Declaration): Relocate relevant |
| pragmas from the subprogram body to the generated corresponding |
| spec. Do not copy aspect SPARK_Mode as this leads to circularity |
| in Copy_Separate_Tree. Inherit the attributes that describe |
| pragmas Ghost and SPARK_Mode. |
| (Move_Pragmas): New routine. |
| |
| 2015-10-27 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * inline.adb (Is_Expression_Function): Removed. |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): An internally |
| generated subprogram body that completes an expression function |
| inherits the SPARK_Mode from the spec. |
| * sem_res.adb (Resolve_Call): Update all calls to |
| Is_Expression_Function. |
| * sem_util.ads, sem_util.adb (Is_Expression_Function): Reimplemented. |
| (Is_Expression_Function_Or_Completion): New routine. |
| |
| 2015-10-27 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * lib-xref-spark_specific.adb, a-dirval-mingw.adb, exp_ch6.adb, |
| sem_ch8.adb, s-os_lib.adb: Minor reformatting. |
| |
| 2015-10-27 Yannick Moy <moy@adacore.com> |
| |
| * lib-xref-spark_specific.adb |
| (Enclosing_Subprogram_Or_Library_Package): detect library-level |
| subprograms and handle entries as subprograms, i.e. now both |
| library-level subprograms and entry bodies act as enclosing |
| scopes. |
| (Traverse_Declarations_Or_Statements): process entry bodies just |
| like subprogram bodies. |
| * lib-xref.ads (Enclosing_Subprogram_Or_Library_Package): comment |
| simplified while keeping its the meaning and minor typo fixed |
| ("of" -> "or"). |
| * spark_xrefs.ads (Xref Section): fix in description of the ALI |
| line for subprogram calls; such lines start with captial "F" |
| followed by a space. |
| |
| 2015-10-27 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch8.adb (Find_Direct_Name): A parameter association is |
| a legal context for applying an implicit dereference. |
| (Analyze_Expanded_Name): Minor code cleanup. |
| |
| 2015-10-27 Arnaud Charlet <charlet@adacore.com> |
| |
| * sinput.ads, spark_xrefs.ads, lib-xref.adb: Fix typos. |
| |
| 2015-10-27 Pascal Obry <obry@adacore.com> |
| |
| * a-dirval-mingw.adb: Remove some characters from Invalid_Character set. |
| |
| 2015-10-27 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch6.adb (Rewrite_Function_Call_For_C): Use a named |
| associaion for the added actual in the call because previous |
| actuals may also have been given by explicit associations. |
| * lib-xref.adb: Minor style fixes. |
| |
| 2015-10-27 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat1drv.adb: Remove hard coded restrictions. |
| |
| 2015-10-27 Pascal Obry <obry@adacore.com> |
| |
| * a-dirval-mingw.adb: Minor reformatting. |
| |
| 2015-10-27 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve previous patch. |
| |
| 2015-10-27 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch12.adb (Analyze_Formal_Package_Declaration): Code cleanup. Set |
| and restore the value of global flag Ignore_Pragma_SPARK_Mode. A |
| formal package declaration acts as a package instantation with |
| respect to SPARK_Mode legality. |
| |
| 2015-10-27 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Check_Constituent_Usage): Use |
| logical operators rather than short circuit operators. Emit an |
| error when a state with visible refinement is not refined. |
| * snames.ads-tmpl: Add names for detecting |
| predefined potentially blocking subprograms. |
| |
| 2015-10-27 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Revert previous |
| change. |
| (Expand_Array_Aggregate): Rewrite previous change here |
| as done for other non GCC back-ends. |
| (Build_Record_Aggr_Code): Add special case. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Add_Item_To_Name_Buffer): Update the comment on usage. |
| Add an output string for loop parameters. |
| (Analyze_Global_Items): Loop parameters are now a |
| valid global item. The share the legality checks of constants. |
| (Analyze_Input_Output): Loop parameters are now a valid dependency item. |
| (Find_Role): Loop parameters share the role of constants. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve_Generalized_Indexing): In ASIS mode, |
| preserve the Generalized_ indexing link if the context is not |
| a spec expression that will be analyzed anew. |
| |
| 2015-10-26 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch6.ads, exp_ch6.adb (Build_Procedure_Body_Form): Promote it to |
| library level (to invoke this routine from the semantic analyzer). |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): When generating |
| C code, invoke Build_Procedure_Body_Form to transform a function |
| that returns a constrained array type into a procedure with an |
| out parameter that carries the return value. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * a-reatim.ads: Add "Clock_Time with Synchronous" contract in package |
| Ada.Real_Time. |
| * a-taside.ads: Add "Tasking_State with Synchronous" contract in |
| package Ada.Task_Identification. |
| * sem_ch12.adb: minor typo in comment |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * contracts.adb (Analyze_Object_Contract): Set and restore |
| the SPARK_Mode for both constants and objects. Factor out the |
| semantic checks concerning Ghost objects. |
| * freeze.adb (Freeze_Array_Type): A Ghost array type cannot have a |
| concurrent component type. |
| (Freeze_Entity): A Ghost type cannot also be concurrent. |
| (Freeze_Record_Type): A Ghost record type cannot have a concurrent |
| component. |
| * sem_prag.adb (Analyze_Abstract_State): A Ghost abstract |
| state cannot also be synchronized. |
| (Check_Ghost_Synchronous): New routine. |
| * sem_util.adb (Yields_Synchronized_Object): Correct the case |
| of record components to account for the case where the type has |
| no component list. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * expander.adb (Expand): Expand a single protected declaration. |
| * exp_ch9.ads, exp_ch9.adb (Expand_N_Single_Protected_Declaration): New |
| routine. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_res.adb (Is_OK_Volatile_Context): A volatile object may appear |
| in an object declaration as long as it denotes the name. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch9.adb (Analyze_Single_Protected_Declaration): The anonymous |
| object no longer comes from source. |
| (Analyze_Single_Task_Declaration): The anonymous object no longer |
| comes from source. |
| * sem_prag.adb (Analyze_Pragma): The analysis of pragma SPARK_Mode |
| now recognizes the internal anonymous object created for a single |
| concurren type as a valid context. |
| (Find_Related_Context): The internal anonymous object created for a |
| single concurrent type is now a valid context. |
| (Find_Related_Declaration_Or_Body): The internal anonymous object |
| created for a single concurrent type is now a valid context. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (Inherit_Rep_Item_Chain): Another another guard |
| to prevent circularities in the rep_item_chain of the full view |
| of a type extension in a child unit that extends a private type |
| from the parent. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * atree.ads, atree.adb (Ekind_In): New 10 and 11 parameter versions. |
| * contracts.ads, contracts.adb (Analyze_Initial_Declaration_Contract): |
| New routine. |
| * sem_ch6.adb (Analyze_Generic_Subprogram_Body): |
| Analyze the contract of the initial declaration. |
| (Analyze_Subprogram_Body_Helper): Analyze the contract of the |
| initial declaration. |
| * sem_ch7.adb (Analyze_Package_Body_Helper): Analyze the contract |
| of the initial declaration. |
| * sem_ch9.adb (Analyze_Entry_Body): Analyze the contract of |
| the initial declaration. |
| (Analyze_Protected_Body): Analyze |
| the contract of the initial declaration. |
| (Analyze_Task_Body): Analyze the contract of the initial declaration. |
| * sem_prag.adb (Add_Entity_To_Name_Buffer): Use "type" rather |
| than "unit" as it makes the error messages sound better. |
| (Add_Item_To_Name_Buffer): Update comment on usage. The routine |
| now supports discriminants and current instances of concurrent |
| types. |
| (Analyze_Depends_In_Decl_Part): Install the discriminants |
| of a task type. |
| (Analyze_Global_In_Decl_Part): Install the discriminants of a task type. |
| (Analyze_Global_Item): Add processing for current instances of |
| concurrent types and include discriminants as valid global items. |
| (Analyze_Input_Output): Discriminants and current instances of |
| concurrent types are now valid items. Update various error messages. |
| (Check_Usage): Current instances of protected and task types behaves |
| as formal parameters. |
| (Collect_Subprogram_Inputs_Outputs): There is |
| no longer need to manually analyze [Refined_]Global thanks to |
| freezing of initial declaration contracts. Add processing for |
| the current instance of a concurrent type. |
| (Find_Role): Add categorizations for discriminants, protected and task |
| types. |
| (Is_CCT_Instance): New routine. |
| (Match_Items): Update the comment on usage. Update internal comments. |
| * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update the |
| comment on usage. |
| * sem_util.adb (Entity_Of): Ensure that the entity is an object |
| when traversing a potential renaming chain. |
| (Fix_Msg): Use "type" rather than "unit" as it makes the error messages |
| sound better. |
| * sem_util.ads (Fix_Msg): Update the comment on usage. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * par.adb (Par): Do not generate an error when generating |
| SCIL for predefined units or new children of system and co. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * einfo.adb: Access_Disp_Table applies to a private |
| extension. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve_Generalized_Indexing): In ASIS mode, when |
| restoring original node, remove Generalized_Indexing operation |
| so that it is recreated during re- analysis. |
| |
| 2015-10-26 Javier Miranda <miranda@adacore.com> |
| |
| * exp_unst.adb: (Unnest_Subprogram): |
| Replace absolute references to 1 and 0 by their counterpart |
| relative references through Subps_First. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * par-ch3.adb (P_Declarative_Items): In case of misplaced |
| aspect specifications, ensure that flag Done is properly set to |
| continue parse. |
| * sem_prag.adb, sem_prag.ads: Remove Build_Generic_Class_Condition, |
| unused. |
| |
| 2015-10-26 Emmanuel Briot <briot@adacore.com> |
| |
| * s-os_lib.adb (Argument_String_To_List): Remove backslashes in |
| argument value. |
| |
| 2015-10-26 Javier Miranda <miranda@adacore.com> |
| |
| * exp_unst.ads, exp_unst.adb (Is_Uplevel_Referenced): Removed. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_util.adb, sem_aux.adb, exp_attr.adb, sem_eval.adb: Minor |
| reformatting. |
| * sem_util.adb, sem_ch5.adb: Minor reformatting. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprogram): Add guard to prevent compiler |
| abort when handling a reference to a formal in an aspect of a |
| nested subprogram declaration as an uplevel reference. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * snames.ads-tmpl, aspects.adb, aspects.ads: Add the aspect and |
| pragma names and enter into relevant tables. |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze aspect |
| Predicate_Failure. |
| * sem_prag.adb (Predicate_Failure): Analyze pragma Predicate_Failure. |
| * exp_util.adb (Make_Predicate_Check): When building the Check |
| pragma, if Predicate_Failure has been specified, add the relevant |
| String argument to the pragma. |
| * par-prag.adb (Prag): Add Predicate_Failure to list of pragmas |
| handled during semantic analysis. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Assignment): If the left-hand side |
| is an indexed component with generalized indexing, discard |
| interpretation that yields a reference type, which is not |
| assignable. This prevent spurious ambiguities when the right-hand |
| side is an aggregate which does not provide a target type. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * exp_ch7.adb, exp_ch6.adb: Minor comment fix. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * aspects.adb (Move_Or_Merge_Aspects): Move all aspects related |
| to a single concurrent type declaration to the declaration |
| of the anonymous object if they qualify. |
| (Relocate_Aspect): Update comment on usage. |
| * aspects.ads Add new sectioon on aspect specifications on single |
| concurrent types. Add new table Aspect_On_Anonymous_Object_OK. |
| (Move_Or_Merge_Aspects): Udate the comment on usage. |
| * atree.adb (Elist36): New routine. |
| (Set_Elist36): New routine. |
| * atree.ads (Elist36): New routine along with pragma Inline. |
| (Set_Elist36): New routine along with pragma Inline. |
| * atree.h: Elist36 is now an alias for Field36. |
| * contracts.adb (Add_Contract_Item): Add processing |
| for protected units and extra processing for variables. |
| (Analyze_Object_Contract): Code cleanup. The processing of |
| Part_Of now depends on wherer the object is a constant or |
| a variable. Add processing for pragmas Depends and Global |
| when they apply to a single concurrent object. Verify that a |
| variable which is part of a single concurrent type has full |
| default initialization. Set/restore the SPARK_Mode of a single |
| concurrent object. |
| (Analyze_Protected_Contract): New routine. |
| * contracts.ads (Add_Contract_Item): Update the comment on usage. |
| (Analyze_Object_Contract): Update the comment on usage. |
| (Analyze_Protected_Contract): New routine. |
| (Analyze_Task_Contract): Update the comment on usage. |
| * einfo.adb Part_Of_Constituents now uses Elist10. |
| (Anonymous_Object): New routine. |
| (Contract): Code cleanup. |
| (Has_Option): Remove the assumption that the only simple |
| option is External. |
| (Is_Synchronized_State): New routine. |
| (Part_Of_Constituents): This attribute applies to |
| variables and uses Elist10. |
| (Set_Anonymous_Object): New routine. |
| (Set_Contract): Code cleanup. |
| (Set_Part_Of_Constituents): This attribute applies to variables and |
| uses Elist10. |
| (Set_SPARK_Aux_Pragma): Code cleanup. |
| (Set_SPARK_Aux_Pragma_Inherited): Code cleanup. |
| (Set_SPARK_Pragma): Code cleanup. This attribute applies to |
| variables. |
| (Set_SPARK_Pragma_Inherited): Code cleanup. This |
| attribute applies to variables. |
| (SPARK_Aux_Pragma): Code cleanup. |
| (SPARK_Aux_Pragma_Inherited): Code cleanup. |
| (SPARK_Pragma): Code cleanup. This attribute applies to variables. |
| (SPARK_Pragma_Inherited): Code cleanup. This attribute applies |
| to variables. |
| (Write_Field9_Name): Remove the output for Part_Of_Constituents. |
| (Write_Field10_Name): Add output for Part_Of_Constituents. |
| (Write_Field30_Name): Add output for Anonymous_Object. |
| (Write_Field34_Name): Output SPARK_Pragma |
| for protected types and variables. |
| * einfo.ads: New attributes Anonymous_Object and |
| Is_Synchronized_State along with usage in entities. Update |
| the documentation of attributes Contract Encapsulating_State |
| Part_Of_Constituents SPARK_Aux_Pragma SPARK_Aux_Pragma_Inherited |
| SPARK_Pragma SPARK_Pragma_Inherited (Anonymous_Object): New |
| routine along with pragma Inline. |
| (Is_Synchronized_State): New routine. |
| (Set_Anonymous_Object): New routine along with pragma Inline. |
| * freeze.adb (Freeze_Record_Type): Ensure that a non-synchronized |
| record does not have synchronized components. |
| * sem_ch3.adb (Analyze_Declarations): Code cleanup. Analyze the |
| contract of protected units. |
| * sem_ch9.adb Add with and use clauses for Sem_Prag. Code cleanup. |
| (Analyze_Single_Protected_Declaration): Reimplemented. |
| (Analyze_Single_Task_Declaration): Reimplemented. |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Part_Of |
| can now apply to a single concurrent type declaration. Rely on |
| Insert_Pragma to place the pragma. Update the error message on |
| usage to reflect the new context. |
| (Insert_Pragma): When inserting |
| pragmas for a protected or task type, create a definition if |
| the type lacks one. |
| * sem_elab.adb (Check_A_Call): Code cleanup. Issue error message |
| related to elaboration issues for SPARK when SPARK_Mode is "on" |
| and the offending entity comes from source. |
| * sem_prag.adb (Analyze_Abstract_State): Add new flag |
| Synchronous_Seen. Update the analysis of simple options Externa, |
| Ghost and Synchronous. Update various error messages to reflect |
| the use of single concurrent types. |
| (Analyze_Depends_Global): Pragmas Depends and Global can now apply to |
| a single task type or a single concurrent object created for a task |
| type. |
| (Analyze_Depends_In_Decl_Part): Do not push a scope when the |
| context is a single concurrent object. (Analyze_Part_Of): |
| Moved out of Analyze_Pragma. The routine has a new profile |
| and comment on usage. |
| (Analyze_Part_Of_In_Decl_Part): New routine. |
| (Analyze_Part_Of_Option): Update the call to Analyze_Part_Of. |
| (Analyze_Pragma): Pragma Abstract_State can |
| now carry simple option Synchronous. Pragma Part_Of can now |
| apply to a single concurrent type declaration. The analysis |
| of pragma Part_Of is delayed when the context is a single |
| concurrent object. |
| (Analyze_Refined_Depends_In_Decl_Part): Use the anonymous object when |
| the context is a single concurren type. |
| (Analyze_Refined_Global_In_Decl_Part): Use the |
| anonymous object when the context is a single concurren type. |
| (Check_Ghost_Constituent): Removed. |
| (Check_Matching_Constituent): Renamed to Match_Constituent. |
| (Check_Matching_State): Renamed to Match_State. |
| (Collect_Constituent): Update the comment |
| on usage. Verify various legality rules related to ghost and |
| synchronized entities. |
| (Find_Related_Declaration_Or_Body): A single task declaration is no |
| longer a valid context for a pragma. |
| (Fix_Msg): Moved to Sem_Util. |
| (Process_Overloadable): Add processing for single task objects. |
| (Process_Visible_Part): Add processing for single concurrent |
| types. |
| (Relocate_Pragmas_To_Anonymous_Object): New routine. |
| * sem_prag.ads Add new table Pragma_On_Anonymous_Object_OK. |
| (Analyze_Part_Of_In_Decl_Part): New routine. |
| (Relocate_Pragmas_To_Anonymous_Object): New routine. |
| * sem_util.adb (Defining_Entity): Code cleanup. |
| (Fix_Msg): Moved from Sem_Prag and augmented to handle |
| mode replacements. |
| (Has_Full_Default_Initialization): New routine. |
| (Is_Descendant_Of_Suspension_Object): Moved out of |
| Is_Effectively_Volatile. |
| (Is_Single_Concurrent_Object): New routine. |
| (Is_Single_Concurrent_Type): New routine. |
| (Is_Single_Concurrent_Type_Declaration): New routine. |
| (Is_Synchronized_Object): New routine. |
| (Yields_Synchronized_Object): New routine. |
| * sem_util.ads (Fix_Msg): Moved form Sem_Prag. Update the |
| comment on usage. |
| (Has_Full_Default_Initialization): New routine. |
| (Is_Single_Concurrent_Object): New routine. |
| (Is_Single_Concurrent_Type): New routine. |
| (Is_Single_Concurrent_Type_Declaration): New routine. |
| (Is_Synchronized_Object): New routine. |
| (Yields_Synchronized_Object): New routine. |
| * snames.ads-tmpl: Add name Synchronous. |
| |
| 2015-10-26 Jerome Lambourg <lambourg@adacore.com> |
| |
| * sysdep.c (__gnat_get_task_options): Refine the workaround for |
| the VX_USR_TASK_OPTION bug in VxWorks 7, as we cannot check the |
| value of VX_DEALLOC_TCB in RTP mode, the macro value not being |
| defined in the headers. |
| * g-arrspl.ads: Fix typo. |
| |
| 2015-10-26 Jerome Lambourg <lambourg@adacore.com> |
| |
| * sysdep.c (__gnat_get_task_options): Workaround a VxWorks |
| bug where VX_DEALLOC_TCB task option is forbidden when calling |
| taskCreate but allowed in VX_USR_TASK_OPTIONS. |
| |
| 2015-10-26 Javier Miranda <miranda@adacore.com> |
| |
| * exp_unst.ads, exp_unst.adb (Is_Uplevel_Referenced): New subprogram. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Constant_Indexing_OK): New predicate, subsidiary |
| of Try_Container_Indexing, that implements the name resolution |
| rules given in RM 4.1.6 (13-15). |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch3.adb, sem_util.adb: Minor reformatting. |
| |
| 2015-10-26 Javier Miranda <miranda@adacore.com> |
| |
| * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Return False when |
| generating C code. |
| * sem_ch3.adb: Fix typos. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Build_Predicate_Functions): Change the |
| structure of the predicate functions to reflect the requirements |
| of AI12-0071. |
| (Add_Condition): New procedure to do the "and-then-ing" in Add_Call |
| and Add_Predicates. |
| * einfo.ads (Static_Real_Or_String_Predicate): Change the |
| documentation to reflect the new structure. |
| * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): |
| Change the walking of the predicate expression to reflect the |
| new structure. |
| * exp_util.adb: Minor comment fix. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * s-rident.ads (No_Dynamic_Sized_Objects): New restriction name. |
| * sem_util.ads, sem_util.adb (All_Composite_Constraints_Static): |
| New function to check that all relevant constraints are static. |
| * sem_aggr.adb (Resolve_Array_Aggregate): Call |
| All_Composite_Constraints_Static on the bounds of named array |
| aggregates. |
| * sem_ch3.adb (Analyze_Subtype_Declaration): Call |
| All_Composite_Constraints_Static if the type is composite and |
| the subtype is constrained. |
| |
| 2015-10-26 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch6.adb (Expand_N_Subprogram_Declaration): Skip the frontend |
| transformation of functions that return a constrained array into |
| a procedure when they are unchecked_conversion instances. |
| |
| 2015-10-26 Gary Dismukes <dismukes@adacore.com> |
| |
| * s-os_lib.ads: Minor reformatting/rewording. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * debug.adb: Introduce debug flag -gnatd.5. |
| |
| 2015-10-26 Pascal Obry <obry@adacore.com> |
| |
| * s-os_lib.ads, s-os_lib.adb (Kill): New routine. This routine |
| makes visible support for killing processes in expect.c. |
| * expect.c (__gnat_kill): Removed from here. |
| * adaint.c (__gnat_kill): Added here to be usable in the compiler |
| (System.OS_Lib). |
| * make.adb (Sigint_Intercepted): Use the Kill routine from |
| System.OS_Lib. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * einfo.ads, einfo.adb, exp_unst.adb (Needs_Typedef, |
| Set_Needs_Typedef): Removed, no longer used. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * einfo.adb (First_Component): Update the assertion to allow |
| for concurrent types. |
| (First_Component_Or_Discriminant): Update the assertion to allow for |
| concurrent types. |
| * einfo.ads: Update the documentation of attributes First_Component |
| and First_Component_Or_Discriminant along with uses in entities. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_res.adb (Resolve_Actuals): An effectively |
| volatile object may act as an actual when the corresponding |
| formal is of a non-scalar effectively volatile type, not just |
| a non-scalar volatile type. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * sinfo.ads, sem_util.ads: Update comments. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Refined_Depends_Global_Post): When dealing with |
| protected entries or protected subprograms, use the enclosing protected |
| type to ensure that the protected type declaration is declared |
| in a package spec. Remove an obsolete attempt to ensure the |
| aggregate for of pragma Refined_State as this routine is never |
| called in that case. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): For |
| an element iterator loop, the element is a constant if the |
| container object is a constant, even if the container type has |
| a Variable_Indexing aspect. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * s-fileio.adb (Fopen_Mode): Use "r+" for Out_File/Stream_IO, |
| so the file won't be truncated on 'fopen', as required by |
| AI95-00283-1. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * gnat1drv.adb, prj.adb, sem_ch6.adb, s-regpat.adb, |
| sem_prag.adb: Fix typos. |
| * einfo.ads, restrict.ads: Minor comment fixes. |
| * err_vars.ads, sem_util.adb, errout.ads: Code clean up. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Assignment): Do not check that the |
| Left-hand side is legal in an inlined body, check is done on |
| the original template. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_util.ads, exp_util.adb (Find_Primitive_Operations): New |
| subprogram to retrieve by name the possibly overloaded set of |
| primitive operations of a type. |
| * sem_ch4.adb (Try_Container_Indexing): Use |
| Find_Primitive_Operations to handle overloaded indexing operations |
| of a derived type. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * osint-c.ads: Minor comment update. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads, |
| s-osinte-darwin.ads, s-osinte-android.ads, s-osinte-freebsd.ads, |
| s-taprop-posix.adb (Get_Page_Size): C function returns an int. Adjust |
| callers accordingly. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch4.adb (Is_OK_Object_Reference): New routine. |
| (Substitute_Valid_Check): Perform the 'Valid subsitution but do |
| not suggest the use of the attribute if the left hand operand |
| does not denote an object as it leads to illegal code. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_unst.adb: Minor reformatting. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb: Improve error msg. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_disp.adb (Check_Controlling_Type): Handle properly the |
| case of an incomplete type whose full view is tagged, when a |
| primitive operation of the type is declared between the two views. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * adaint.c (__gnat_locate_exec_on_path): If the PATH environment |
| variable is not set, do not return NULL, because we can still find |
| the executable if it includes a directory name. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_elab.adb (Elab_Warning): Under dynamic elaboration, when |
| elaboration warnings are enabled, emit proper warning header |
| when triggered by an access attribute. |
| |
| 2015-10-26 Steve Baird <baird@adacore.com> |
| |
| * exp_ch11.adb: If CodePeer_Mode is true, generate simplified |
| SCIL for exception declarations. |
| * exp_ch11.adb (Expand_N_Exception_Declaration) If CodePeer_Mode |
| is True, initialize the Full_Name component of the exception |
| record to null instead of to the result of an unchecked |
| conversion. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_unst.adb (Note_Uplevel_Ref) : Handle properly a reference |
| that denotes a function returning a constrained array, that has |
| been rewritten as a procedure. |
| * makeutl.ads: Minor edit. |
| |
| 2015-10-26 Yannick Moy <moy@adacore.com> |
| |
| * lib-xref-spark_specific.adb (Traverse_Protected_Declaration): New |
| procedure for traversal. |
| (Add_SPARK_Xrefs): Remove debugging code. |
| (Traverse_Declaration_Or_Statement): Call the new traversal |
| procedure. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Pragma |
| Extensions_Visible can now appear on an abstract subprogram |
| declaration. |
| |
| 2015-10-26 Yannick Moy <moy@adacore.com> |
| |
| * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Use character 'r' to |
| denote a reference to a constant which may have variable input, and |
| thus may be treated as a variable in GNATprove, instead of the |
| character 'c' used for constants. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (Object_Access_Level): Only aliased formals of |
| functions have the accessibility level of the point of call; |
| aliased formals of procedures have the same level as unaliased |
| formals. |
| (New_Copy_Tree): Add guard on copying itypes. From code reading. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * inline.adb: Minor reformatting. |
| |
| 2015-10-26 Yannick Moy <moy@adacore.com> |
| |
| * get_spark_xrefs.adb (get_SPARK_Xrefs): Remove obsolete |
| assertion. |
| * lib-xref-spark_specific.adb (Traverse_Declaration_Or_Statement): |
| New procedure to factor duplicated code and add |
| treatment of protected entries. |
| (Add_SPARK_Scope, Traverse_Declarations_Or_Statements): Call the new |
| procedure Traverse_Declaration_Or_Statement. Use same character used in |
| normal xrefs for SPARK xrefs, for a given entity used as scope. |
| * spark_xrefs.ads Document character used for entries. |
| * sem_prag.adb (Check_Loop_Pragma_Placement): Account for possible |
| introduction of declarations and statements by the expansion, between |
| two otherwise consecutive loop pragmas. |
| * sem_util.ads, sem_util.adb (Is_Suspension_Object): Lifted from nested |
| function. |
| (Is_Descendant_Of_Suspension_Object): nested function lifted. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): Attribute 'Enum_Rep can be folded |
| when its prefix denotes a constant, an enumeration literal or |
| an enumeration type. Use the expression of the attribute in the |
| enumeration type form, otherwise use the prefix to fold. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * aspects.adb Add an entry for entry bodies in table |
| Has_Aspect_Specifications_Flag. |
| (Aspects_On_Body_Or_Stub_OK): Entry bodies now allow for certain |
| aspects. |
| * contracts.adb (Add_Contract_Items): Code cleanup. Add |
| processing for entry bodies, entry declarations and task units. |
| (Analyze_Subprogram_Body_Contract): Renamed |
| to Analyze_Entry_Or_Subprogram_Body_Contract. Do not |
| analyze the contract of an entry body unless annotating the |
| original tree. |
| (Analyze_Subprogram_Contract): Renamed to |
| Analyze_Entry_Or_Subprogram_Contract. Do not analyze the contract |
| of an entry declaration unless annotating the original tree. |
| (Analyze_Task_Contract): New routine. |
| * contracts.ads (Add_Contract_Item): Update the comment on usage. |
| (Analyze_Package_Body_Contract): Update comment on usage. |
| (Analyze_Package_Contract): Update the comment on usage. |
| (Analyze_Subprogram_Body_Contract): Renamed to |
| Analyze_Entry_Or_Subprogram_Body_Contract. |
| (Analyze_Subprogram_Body_Stub_Contract): Update the comment on usage. |
| (Analyze_Subprogram_Contract): Renamed to |
| Analyze_Entry_Or_Subprogram_Contract. |
| (Analyze_Task_Contract): New routine. |
| * einfo.adb (Contract): Restructure the assertion to include |
| entries and task units. |
| (SPARK_Pragma): This attribute now applies to operators. |
| (SPARK_Pragma_Inherited): This flag now applies to operators. |
| (Set_Contract): Restructure the assertion to include entries and task |
| units. |
| (Set_SPARK_Pragma): This attribute now applies to operators. |
| (Set_SPARK_Pragma_Inherited): This flag now applies to operators. |
| (Write_Field34_Name): Write out all Ekinds that have a contract. |
| (Write_Field40_Name): SPARK_Pragma now applies to operators. |
| * einfo.ads: Update the documentation of attribute Contract along |
| with usage in nodes. Update the documentation of attributes |
| SPARK_Pragma and SPARK_Pragma_Inherited. |
| * exp_ch6.adb (Freeze_Subprogram): Update the call to |
| Analyze_Subprogram_Contract. |
| * par-ch9.adb (P_Entry_Barrier): Do not parse keyword "is" as it |
| is not part of the entry barrier production. |
| (P_Entry_Body): Parse the optional aspect specifications. Diagnose |
| misplaced aspects. |
| * sem_attr.adb (Analyze_Attribute_Old_Result): Update the call |
| to Find_Related_Subprogram_Or_Body. |
| * sem_aux.adb (Unit_Declaration_Node) Add an entry for entry |
| declarations and bodies. |
| * sem_ch3.adb (Analyze_Declarations): Analyze the contracts of |
| entry declarations, entry bodies and task units. |
| * sem_ch6.adb (Analyze_Generic_Subprogram_Body): |
| Update the call to Analyze_Subprogram_Body_Contract. |
| (Analyze_Subprogram_Body_Helper): Update the call to |
| Analyze_Subprogram_Body_Contract. |
| * sem_ch9.adb (Analyze_Entry_Body): Analyze the aspect |
| specifications and the contract. |
| * sem_ch10.adb (Analyze_Compilation_Unit): Update the call to |
| Analyze_Subprogram_Contract. |
| * sem_ch12.adb (Save_References_In_Pragma): Update the call to |
| Find_Related_Subprogram_Or_Body. |
| * sem_ch13.adb (Analyze_Aspects_On_Body_Or_Stub): Use |
| Unique_Defining_Entity rather than rummaging around in nodes. |
| (Diagnose_Misplaced_Aspects): Update comment on usage. Update the |
| error messages to accomondate the increasing number of contexts. |
| * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): |
| Update the call to Find_Related_Subprogram_Or_Body. |
| (Analyze_Depends_Global): Update the call to |
| Find_Related_Subprogram_Or_Body. Add processing for entry |
| declarations. |
| (Analyze_Depends_In_Decl_Part): Update the call |
| to Find_Related_Subprogram_Or_Body. Task units have no formal |
| parameters to install. (Analyze_Global_In_Decl_Part): Update |
| the call to Find_Related_Subprogram_Or_Body. Task units have no |
| formal parameters to install. |
| (Analyze_Global_Item): Use Fix_Msg to handle the increasing number of |
| contexts. |
| (Analyze_Pragma): Update the call to Find_Related_Subprogram_Or_Body. |
| Perform full analysis when various pragmas appear in an entry body. |
| (Analyze_Pre_Post_Condition): Update the call to |
| Find_Related_Subprogram_Or_Body. Perform full analysis when the pragma |
| appears in an entry body. |
| (Analyze_Pre_Post_Condition_In_Decl_Part): Update the call to |
| Find_Related_Subprogram_Or_Body. |
| (Analyze_Refined_Depends_Global_Post): Update |
| the call to Find_Related_Subprogram_Or_Body. Use |
| Fix_Msg to handle the increasing number of contexts. |
| (Analyze_Refined_Depends_In_Decl_Part): Update |
| the call to Find_Related_Subprogram_Or_Body. Use |
| Unique_Defining_Entity to obtain the entity of the |
| spec. Use Fix_Msg to handle the increasing number of contexts. |
| (Analyze_Refined_Global_In_Decl_Part): Update the call to |
| Find_Related_Subprogram_Or_Body. Use Unique_Defining_Entity to obtain |
| the entity of the spec. Use Fix_Msg to handle the increasing number of |
| contexts. |
| (Analyze_Test_Case_In_Decl_Part): Update the call to |
| Find_Related_Subprogram_Or_Body. |
| (Check_Dependency_Clause): Use Fix_Msg to handle the increasing number |
| of contexts. |
| (Check_Mode_Restriction_In_Enclosing_Context): Use |
| Fix_Msg to handle the increasing number of contexts. |
| (Collect_Subprogram_Inputs_Outputs): Use the refined |
| versions of the pragmas when the context is an entry body or |
| a task body. |
| (Find_Related_Subprogram_Or_Body): Renamed to |
| Find_Related_Declaration_Or_Body. Add processing for entries |
| and task units. |
| (Fix_Msg): New routine. |
| (Role_Error): Use Fix_Msg to handle the increasing number of contexts. |
| * sem_prag.ads (Find_Related_Subprogram_Or_Body): Renamed to |
| Find_Related_Declaration_Or_Body. Update the comment on usage. |
| * sem_util.adb (Is_Entry_Body): New routine. |
| (Is_Entry_Declaration): New routine. |
| * sem_util.ads (Is_Entry_Body): New routine. |
| (Is_Entry_Declaration): New routine. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * inline.adb (Has_Excluded_Declaration): A subtype declaration |
| with a predicate aspect generates a subprogram, and therefore |
| prevents the inlining of the enclosing subprogram. |
| * osint.ads: Fix typo. |
| |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_case.adb (Check_Choice_Set): Choose initial choice range |
| below low bound of type, to prevent spurious errors on case |
| statements whose expressions have an integer subtype with a |
| static predicate. |
| * sem_util.ads: Fix typo. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Case_Expression): In the scope of a |
| predicate function, delay the expansion of the expression only |
| if the target type has a specified Static_ Predicate aspect, |
| because the expression is processed later. A dynamic predicate |
| must be expanded in standard fashion. |
| |
| 2015-10-26 Claire Dross <dross@adacore.com> |
| |
| * a-nudira.ads: Remove SPARK_Mode as it currently causes an error. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * sem_aggr.adb, sem_type.adb, sem_ch12.adb, sem_res.adb, sem_ch4.adb, |
| sem_ch8.adb, exp_aggr.adb, sem_eval.adb, s-fatgen.adb, a-tienio.adb: |
| Fix typos. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Specifications): The processing |
| for aspects Abstract_State, Ghost, Initial_Condition, Initializes |
| and Refined_State no longer have to take SPARK_Mode into account. |
| (Insert_After_SPARK_Mode): Removed. |
| (Insert_Pragma): Update profile and comment on usage. The routine can |
| now insert a pragma after the "header" of an instance. |
| * sem_prag.adb (Analyze_If_Available): New routine. |
| (Analyze_Pragma): Do not reset the Analyzed flag of various |
| SPARK pragmas as they use the Is_Analyzed_Pragma attribute to |
| avoid reanalysis. Various pragmas now trigger the analysis |
| of related pragmas that depend on or are dependent on the |
| current pragma. Remove the declaration order checks related |
| to pragmas Abstract_State, Initial_Condition and Initializes. |
| (Analyze_Pre_Post_Condition): Analyze pragmas SPARK_Mode and |
| Volatile_Function prior to analyzing the pre/postcondition. |
| (Check_Declaration_Order): Removed. |
| (Check_Distinct_Name): Ensure that a potentially duplicated pragma |
| Test_Case is not the pragma being analyzed. |
| (Is_Followed_By_Pragma): Removed. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb: Handle subprogram bodies without previous specs. |
| |
| 2015-10-26 Claire Dross <dross@adacore.com> |
| |
| * a-nudira.ads: Specify appropriate SPARK_Mode so that the unit |
| can be used in SPARK code. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * contracts.adb (Analyze_Subprogram_Body_Contract): Do not analyze |
| pragmas Refined_Global and Refined_Depends because these pragmas |
| are now fully analyzed when encountered. |
| (Inherit_Pragma): Update the call to attribute Is_Inherited. |
| * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Add a guard |
| to prevent reanalysis. Mark the pragma as analyzed at the end of |
| the processing. |
| (Analyze_Depends_Global): New parameter profile |
| and comment on usage. Do not fully analyze the pragma, this is |
| now done at the outer level. |
| (Analyze_Depends_In_Decl_Part): Add a guard to prevent reanalysis. |
| Mark the pragma as analyzed at the end of the processing. |
| (Analyze_External_Property_In_Decl_Part): Add a guard to prevent |
| reanalysis. Mark the pragma as analyzed at the end of the processing. |
| (Analyze_Global_In_Decl_Part): Add a guard to prevent reanalysis. Mark |
| the pragma as analyzed at the end of the processing. |
| (Analyze_Initial_Condition_In_Decl_Part): Add a guard to prevent |
| reanalysis. Mark the pragma as analyzed at the end of the processing. |
| (Analyze_Initializes_In_Decl_Part): Add a guard to prevent reanalysis. |
| Mark the pragma as analyzed at the end of the processing. |
| (Analyze_Pragma): Reset the Analyzed flag on various pragmas that |
| require delayed full analysis. Contract_Cases is now analyzed |
| immediately when it applies to a subprogram body stub. Pragmas Depends, |
| Global, Refined_Depends and Refined_Global are now analyzed |
| in pairs when they appear in a subprogram body [stub]. |
| (Analyze_Pre_Post_Condition_In_Decl_Part): Add a guard to |
| prevent reanalysis. Mark the pragma as analyzed at the end of |
| the processing. |
| (Analyze_Refined_Depends_Global_Post): Update the comment on usage. |
| (Analyze_Refined_Depends_In_Decl_Part): Add a guard to prevent |
| reanalysis. Mark the pragma as analyzed at the end of the processing. |
| (Analyze_Refined_Global_In_Decl_Part): Add a guard to prevent |
| reanalysis. Mark the pragma as analyzed at the end of the processing. |
| (Analyze_Refined_State_In_Decl_Part): Add a guard to prevent |
| reanalysis. Mark the pragma as analyzed at the end of the processing. |
| (Analyze_Test_Case_In_Decl_Part): Add a guard to prevent reanalysis. |
| Mark the pragma as analyzed at the end of the processing. |
| (Is_Followed_By_Pragma): New routine. |
| * sinfo.adb (Is_Analyzed_Pragma): New routine. |
| (Is_Inherited): Renamed to Is_Inherited_Pragma. |
| (Set_Is_Analyzed_Pragma): New routine. |
| (Set_Is_Inherited): Renamed to Set_Is_Inherited_Pragma. |
| * sinfo.ads Rename attribute Is_Inherited to Is_Inherited_Pragma |
| and update occurrences in nodes. |
| (Is_Analyzed_Pragma): New routine along with pragma Inline. |
| (Is_Inherited): Renamed to Is_Inherited_Pragma along with pragma Inline. |
| (Set_Is_Analyzed_Pragma): New routine along with pragma Inline. |
| (Set_Is_Inherited): Renamed to Set_Is_Inherited_Pragma along |
| with pragma Inline. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * par-ch3.adb (P_Component_Items): When style checks are enabled, |
| apply them to component declarations in a record type declaration |
| or extension. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_util.adb (Is_Suspension_Object): Ensure that the scope of "Ada" |
| is Standard_Standard. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_res.adb (Is_OK_Volatile_Context): A subprogram call is an OK |
| context for a reference to an effectively volatile object. |
| (Resolve_Actuals): Add references to SPARK RM. |
| (Within_Procedure_Call): Removed. |
| (Within_Subprogram_Call): New routine. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Check_Aggregate_Accessibility): A reference to a |
| formal parameter in an aggregate does not need an accesibility |
| check only if the formal is aliased. |
| |
| 2015-10-26 Claire Dross <dross@adacore.com> |
| |
| * sem_aux.ads (Number_Components): Can return 0 when called on |
| an empty record. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * contracts.adb (Analyze_Subprogram_Body_Contract): Use |
| Unique_Defining_Entity instead of Corresponding_Spec_Of. |
| * einfo.adb SPARK_Pragma and SPARK_Aux_Pragma are now Node40 and |
| Node41 respectively. |
| (SPARK_Aux_Pragma): Update the assertion and node querry. |
| (SPARK_Aux_Pragma_Inherited): Update the assertion and node query. |
| (SPARK_Pragma): Update the assertion and node query. |
| (SPARK_Pragma_Inherited): Update the assertion and node query. |
| (Set_SPARK_Aux_Pragma): Update the assertion and node setting. |
| (Set_SPARK_Aux_Pragma_Inherited): Update the assertion and node setting. |
| (Set_SPARK_Pragma): Update the assertion and node setting. |
| (Set_SPARK_Pragma_Inherited): Update the assertion and node setting. |
| (Write_Field32_Name): Remove the output for SPARK_Pragma. |
| (Write_Field33_Name): Remove the output for SPARK_Aux_Pragma. |
| (Write_Field40_Name): Add output for SPARK_Pragma. |
| (Write_Field41_Name): Add output for SPARK_Aux_Pragma. |
| * einfo.ads Rewrite the documentation on attributes |
| SPARK_Pragma, SPARK_Aux_Pragma, SPARK_Pragma_Inherited and |
| SPARK_Aux_Pragma_Inherited. Update their uses in nodes. |
| * exp_ch4.adb (Create_Anonymous_Master): Use |
| Unique_Defining_Entity instead of Corresponding_Spec_Of. |
| * exp_ch9.adb (Expand_Entry_Declaration): Mark the barrier |
| function as such. |
| (Expand_N_Task_Body): Mark the task body as such. |
| (Expand_N_Task_Type_Declaration): Mark the task body as such. |
| * exp_unst.adb (Visit_Node): Use Unique_Defining_Entity instead |
| of Corresponding_Spec_Of. |
| * sem_attr.adb (Analyze_Attribute_Old_Result): Use |
| Unique_Defining_Entity instead of Corresponding_Spec_Of. |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Entry barrier |
| functions do not inherit the SPARK_Mode from the context. |
| (Build_Subprogram_Declaration): The matching spec is now marked |
| as a source construct to mimic the original stand alone body. |
| * sem_ch7.adb (Analyze_Package_Body_Helper): Code cleanup. |
| * sem_ch9.adb Add with and use clauses for Contracts. |
| (Analyze_Entry_Body): An entry body freezes the contract of |
| the nearest enclosing package body. The entry body now inherits |
| the SPARK_Mode from the context. |
| (Analyze_Entry_Declaration): A protected entry declaration now inherits |
| the SPARK_Mode from the context. |
| (Analyze_Protected_Body): A protected body freezes |
| the contract of the nearest enclosing package body. Set the |
| Etype of a protected body as this is neede for proper aspect |
| analysis. Protected bodies can now carry meaningful aspects and |
| those are now analyzed. |
| (Analyze_Protected_Type_Declaration): A protected type now inherits the |
| SPARK_Mode from the context. |
| (Analyze_Task_Body): A task body freezes the contract of the |
| nearest enclosing package body. Set the Etype of a task body |
| as this is needed for proper aspect analysis. A task body |
| now inherits the SPARK_Mode from the context. Task bodies |
| can now carry meaningful aspects and those are now analyzed. |
| (Analyze_Task_Type_Declaration): A task type declaration now |
| inherits the SPARK_Mode of from the context. |
| * sem_ch10.adb (Analyze_Protected_Body_Stub): Protected body |
| stubs can now carry meaningful aspects. |
| (Analyze_Task_Body_Stub): Task body stubs can now carry meaningful |
| aspects. |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Aspects SPARK_Mode |
| Warnings now use routine Insert_Pragma as means of insertion into |
| the tree. |
| (Insert_After_SPARK_Mode): Clean up documentation. |
| (Insert_Pragma): Clean up documentation. The routine is now |
| capable of operating on synchronized units. |
| * sem_prag.adb (Add_Entity_To_Name_Buffer): New routine. |
| (Analyze_Contract_Cases_In_Decl_Part): Use |
| Unique_Defining_Entity instead of Corresponding_Spec_Of. |
| (Analyze_Depends_Global): Use Unique_Defining_Entity instead |
| of Corresponding_Spec_Of. |
| (Analyze_Depends_In_Decl_Part): Use Unique_Defining_Entity instead of |
| Corresponding_Spec_Of. |
| (Analyze_Global_In_Decl_Part): Use Unique_Defining_Entity instead of |
| Corresponding_Spec_Of. |
| (Analyze_Pragma): Use Unique_Defining_Entity instead of |
| Corresponding_Spec_Of. |
| Update the detection of an illegal pragma Ghost when it applies |
| to a task or protected unit. Reimplement the handling of |
| pragma SPARK_Mode. |
| (Analyze_Pre_Post_Condition_In_Decl_Part): Use Unique_Defining_Entity |
| instead of Corresponding_Spec_Of. |
| (Analyze_Test_Case_In_Decl_Part): Use Unique_Defining_Entity instead of |
| Corresponding_Spec_Of. |
| (Check_Library_Level_Entity): Update the comment on usage. |
| Reimplemented to offer a more specialized errror context. |
| (Check_Pragma_Conformance): Update profile and comment on usage. |
| Handle error message output on single protected or task units. |
| (Collect_Subprogram_Inputs_Outputs): Use Unique_Defining_Entity |
| instead of Corresponding_Spec_Of. |
| (Process_Body): New routine. |
| (Process_Overloadable): New routine. |
| (Process_Private_Part): New routine. |
| (Process_Statement_Part): New routine. |
| (Process_Visible_Part): New routine. |
| (Set_SPARK_Context): New routine. |
| (Set_SPARK_Flags): Removed. |
| * sem_util.adb (Corresponding_Spec_Of): Removed. |
| (Unique_Entity): Reimplemented to handle many more cases. |
| * sem_util.ads (Corresponding_Spec_Of): Removed. |
| (Unique_Defining_Entity): Update the comment on usage. |
| * sinfo.ads (Is_Entry_Barrier_Function): Update the assertion. |
| (Is_Task_Body_Procedure): New routine. |
| (Set_Is_Entry_Barrier_Function): Update the assertion. |
| (Set_Is_Task_Body_Procedure): New routine. |
| * sinfo.adb Update the documentation of attribute |
| Is_Entry_Barrier_Function along with use in nodes. Add new |
| attribute Is_Task_Body_Procedure along with use in nodes. |
| (Is_Task_Body_Procedure): New routine along with pragma Inline. |
| (Set_Is_Task_Body_Procedure): New routine along with pragma Inline. |
| |
| 2015-10-26 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch13.adb: Minor reformatting. |
| |
| 2015-10-26 Steve Baird <baird@adacore.com> |
| |
| * exp_disp.adb: Omit most dispatch table initialization code |
| if Generate_SCIL is true. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * sinfo.ads, exp_ch3.adb: Revert previous change. |
| (Build_Record_Init_Proc): Do not build an aggregate if |
| Modify_Tree_For_C. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Find_Corresponding_Spec): Reject a subprogram |
| body whose signature is type conformant with a previous expression |
| function. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * treepr.adb: Code clean up. |
| |
| 2015-10-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Check_Component_Storage_Order): Skip a record |
| component if it has Complex_Representation. |
| (Freeze_Record_Type): If the type has Complex_Representation, skip the |
| regular treatment of Scalar_Storage_Order attribute and instead issue |
| a warning if it is present. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Check_Iterator_Functions): For a Default_Iterator |
| aspect, make sure an implicitly declared interpretation is |
| overridden by an explicit one. |
| * sem_util.ads: Update comment. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch7.adb, sem_ch6.adb (Analyze_Subprogram_Body_Helper): Only source |
| bodies should "freeze" the contract of the nearest enclosing |
| package body. |
| |
| 2015-10-26 Joel Brobecker <brobecker@adacore.com brobecker> |
| |
| * adaint.c (__gnat_lwp_self): Replace current implementation re-using |
| the Linux one, which uses an __NR_gettid syscall rather than |
| pthread_self. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * sinfo.ads, exp_ch3.adb (Build_Array_Init_Proc, |
| Build_Record_Init_Proc): Do not inline init procs when |
| Modify_Tree_For_C is True. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * errout.ads: Minor comment fix. |
| * einfo.ads: Minor style fix. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * sem_ch3.adb (Derive_Interface_Subprogram): Fix |
| Is_Abstract_Subprogram, which might have been calculated |
| incorrectly, because we're passing Ultimate_Alias (Subp) (and |
| its dispatching type) to Derive_Subprogram, instead of the true |
| parent subprogram and type. |
| |
| 2015-10-26 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Check_Iterator_Functions): When |
| printing the "default iterator must be unique" error message, |
| also print references to the places where the duplicates are |
| declared. This makes the message clearer. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch12.adb (Analyze_Formal_Package_Declaration): Do not set |
| Box_Present when the formal part is (others => <>) even though |
| it is equivalent to a formal part (<>), because ASIS tools depend |
| on the syntactic setting of this flag. |
| |
| 2015-10-26 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch13.adb: Minor reformatting. |
| * einfo.ads: Minor typo. |
| |
| 2015-10-26 Joel Brobecker <brobecker@adacore.com brobecker> |
| |
| * adaint.c (__gnat_open_new_temp): Use mkstemp on Android. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch12.adb (Analyze_Formal_Package_Declaration): Code clean up. |
| * sem_ch13.adb (Check_Inherited_Indexing): New inner procedure |
| of Check_Indexing_Functions, to verify that a derived type with an |
| Indexing aspect is not inheriting such an aspect from an ancestor. |
| (Check_Indexing_Functions): Call Check_Inherited_Indexing within |
| an instance. |
| |
| 2015-10-26 Gary Dismukes <dismukes@adacore.com> |
| |
| * a-reatim.adb, contracts.adb, contracts.ads: Minor reformatting and |
| typo corrections. |
| |
| 2015-10-26 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not |
| recheck the consistency betwen the freeze point and the end of |
| declarations for the expression in an aspect specification, |
| because it was done already in the analysis of the generic. |
| Furthermore, the delayed analysis of an aspect of the instance |
| may produce spurious errors when the generic is a child unit |
| that references entities in the parent (which might not be in |
| scope at the freeze point of the instance). |
| |
| 2015-10-26 Yannick Moy <moy@adacore.com> |
| |
| * sem_res.adb (Resolve_Call): Issue info message |
| instead of warning when call cannot be inlined in GNATprove mode. |
| |
| 2015-10-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_ch6.adb (Build_Procedure_Form): Use _result as the |
| name of the extra parameter, cleaner than a random temp name. |
| * gnat1drv.adb (Gnat1drv): Code clean up. |
| |
| 2015-10-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils2.c (build_binary_op): Tweak formatting. |
| (build_unary_op): Likewise. |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat_rm.texi, gnat_ugn.texi: Regenerate. |
| * doc/share/ada_pygments.py, doc/gnat_ugn/gnat_project_manager.rst, |
| doc/gnat_ugn/building_executable_programs_with_gnat.rst, |
| doc/gnat_ugn/gnat_and_program_execution.rst, |
| doc/gnat_rm/implementation_defined_attributes.rst, |
| doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, |
| doc/gnat_rm/representation_clauses_and_pragmas.rst, |
| doc/gnat_rm/implementation_defined_pragmas.rst, |
| doc/gnat_rm/about_this_guide.rst, |
| doc/gnat_rm/implementation_of_ada_2012_features.rst, |
| doc/gnat_rm/implementation_of_specific_ada_features.rst, |
| doc/gnat_rm/implementation_defined_aspects.rst, |
| doc/gnat_rm/implementation_advice.rst: Update documentation. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * contracts.ads, contracts.adb: New unit. |
| * exp_ch6.adb Add with and use clauses for Contracts. |
| (Expand_Subprogram_Contract): Moved to Contracts. |
| * exp_ch6.ads (Expand_Subprogram_Contract): Moved to Contracts. |
| * sem_ch3.adb Add with and use clauses for Contracts. |
| (Analyze_Object_Contract): Moved to Contracts. |
| (Analyze_Declarations): Remove local variable Pack_Decl. Do not |
| capture global references in contracts. Check the hidden states |
| of a package body. |
| * sem_ch6.adb Add with and use clauses in Contracts. |
| (Analyze_Generic_Subprogram_Body): Do not capture global |
| references in contracts. |
| (Analyze_Subprogram_Body_Contract): |
| Moved to Contracts. |
| (Analyze_Subprogram_Body_Helper): Freeze the |
| contract of the nearest enclosing package body. Always analyze |
| the subprogram body contract. Do not expand the subprogram |
| body contract. |
| (Analyze_Subprogram_Contract): Moved to Contracts. |
| * sem_ch6.ads (Analyze_Subprogram_Body_Contract): Moved to Contracts. |
| (Analyze_Subprogram_Contract): Moved to Contracts. |
| * sem_ch7.adb Add with and use clauses for Contracts. |
| (Analyze_Package_Body_Contract): Moved to Contracts. |
| (Analyze_Package_Body_Helper): Freeze the contract of the |
| nearest enclosing package body. |
| (Analyze_Package_Contract): Moved to Contracts. |
| * sem_ch7.ads (Analyze_Package_Body_Contract): Moved to Contracts. |
| (Analyze_Package_Contract): Moved to Contracts. |
| * sem_ch10.adb Add with and use clauses for Contracts. |
| (Analyze_Compilation_Unit): Do not capture global references |
| in contracts. |
| (Analyze_Subprogram_Body_Stub_Contract): Moved to Contracts. |
| * sem_ch10.ads (Analyze_Subprogram_Body_Stub_Contract): Moved |
| to Contracts. |
| * sem_ch12.adb Add with and use clauses for Contracts. |
| (Analyze_Subprogram_Instantiation): Update the call to |
| Instantiate_Subprogram_Contract. |
| (Instantiate_Package_Body): |
| Do not copy the entity of the spec when creating an entity |
| for the body. Construct a brand new defining identifier for |
| the body and inherit the Comes_From_Source flag from the spec. |
| (Instantiate_Subprogram_Body): Remove Anon_Id to Act_Decl_Id |
| and update all occurrences. Construct a brand new defining |
| identifier for the body and inherit the Comes_From_Source |
| flag from the spec. |
| (Instantiate_Subprogram_Contract): Moved |
| to Contracts. |
| (Save_Global_References_In_Aspects): Moved to |
| the spec of Sem_Ch12. |
| (Save_Global_References_In_Contract): |
| Moved to Contracts. |
| * sem_ch12.ads (Save_Global_References_In_Aspects): Moved from |
| the body of Sem_Ch12. |
| (Save_Global_References_In_Contract): |
| Moved to Contracts. |
| * sem_prag.adb Add with and use clauses for Contracts. |
| (Add_Item): Removed. All references to this routine have been |
| replaced with calls to Append_New_Elmt. |
| (Analyze_Constituent): |
| Add special diagnostics for errors caused by freezing of |
| contracts. |
| (Analyze_Refined_State_In_Decl_Part): Add formal |
| parameter Freeze_Id. Add new global variable Freeze_Posted. |
| (Collect_Body_States): Removed. |
| (Report_Unused_States): Removed. |
| * sem_prag.ads (Analyze_Defined_State_In_Decl_Part): Add formal |
| parameter Freeze_Id and update comment on usage. |
| * sem_util.adb Remove with and use clauses for |
| Sem_Ch12. |
| (Add_Contract_Item): Moved to Contracts. |
| (Check_Unused_Body_States): New routine. |
| (Collect_Body_States): |
| New routine. |
| (Create_Generic_Contract): Moved to Contracts. |
| (Inherit_Subprogram_Contract): Moved to Contracts. |
| (Report_Unused_Body_States): New routine. |
| * sem_util.ads (Add_Contract_Item): Moved to Contracts. |
| (Check_Unused_Body_States): New routine. |
| (Collect_Body_States): New routine. |
| (Create_Generic_Contract): Moved to Contracts. |
| (Inherit_Subprogram_Contract): Moved to Contracts. |
| (Report_Unused_Body_States): New routine. |
| * sinfo.adb (Is_Expanded_Contract): New routine. |
| (Set_Is_Expanded_Contract): New routine. |
| * sinfo.ads New attribute Is_Expanded_Contract along with |
| placement in nodes. |
| (Is_Expanded_Contract): New routine along |
| with pragma Inline. |
| (Set_Is_Expanded_Contract): New routine |
| along with pragma Inline. |
| * gcc-interface/Make-lang.in: Add entry for contracts.o |
| |
| 2015-10-23 Bob Duff <duff@adacore.com> |
| |
| * bindgen.adb, init.c, opt.ads, switch-b.adb: Implement new -Ea and |
| -Es switches. |
| * switch-b.ads: Minor comment fix. |
| * bindusg.adb: Document new -Ea and -Es switches. |
| * s-exctra.ads: Use -Es instead of -E. |
| |
| 2015-10-23 Tristan Gingold <gingold@adacore.com> |
| |
| * gcc-interface/utils2.c (build_call_alloc_dealloc): Check no implicit |
| task and protected object restrictions. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch12.adb, exp_ch6.adb: Minor reformatting. |
| |
| 2015-10-23 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch6.adb: Minor reformatting. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch12.adb (Check_Formal_Packages): A formal package whose |
| actual part is (others => <>) os identical to a formal package |
| with an actual part written as (<>). |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * a-reatim.adb ("/"): For Time_Span division convert the operands |
| to integers and then use integer division, which conforms to |
| the rounding required by Ada RM. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Check_Missing_Return): Do not report a missing |
| return statement on a function body constructed to complete a |
| package body for a premature instantiation. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch6.adb (Build_Procedure_Body_Form): Replace body of |
| original function with that of generated procedure, to simplify |
| processing and avoid scoping problems with local declarations. |
| (Rewrite_Function_Call_For_C): Handle properly the case of a |
| parameterless function. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * a-exextr.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting. |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * s-taskin.ads: Minor code clean up. |
| (Ada_Task_Control_Block): Move fixed size field before variable sized |
| ones. |
| * einfo.ads: Minor editing. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Check_Aggregate_Accessibility): Apply rule in RM |
| 6.5 (8.3) to verify that access discriminants in an aggregate |
| in a return statement have the proper accessibility, i.e. do |
| not lead to dangling references. |
| |
| 2015-10-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Add missing |
| test on Address_Clause_Overlay_Warnings to the "constant overlays |
| variable" warning. For the reverse case, also issue a warning if |
| the modification is potentially made through the initialization |
| of the variable. |
| |
| 2015-10-23 Jose Ruiz <ruiz@adacore.com> |
| |
| * a-exetim-posix.adb (Clock): Use the pthread_getcpuclockid |
| function to have access to CPU clocks for tasks other than the |
| calling task. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * debug.adb: Switch -gnatd.5 is no longer in use, remove the |
| associated documentation. |
| * exp_dbug.adb (Get_External_Name): Do not add a special prefix |
| for ignored Ghost entities or when switch -gnatd.5 is enabled. |
| * exp_dbug.ads Remove the documentation concerning the encoding |
| of ignored Ghost entities. |
| |
| 2015-10-23 Bob Duff <duff@adacore.com> |
| |
| * a-exextr.adb (Notify_Exception): For Unhandled_Raise_In_Main, |
| mimic the output from Ada.Exceptions.Last_Chance_Handler; don't |
| print "Exception raised". |
| * s-stalib.ads, s-exctra.ads, s-exctra.adb: Add |
| Unhandled_Raise_In_Main to types Exception_Trace_Kind/Trace_Kind. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_attr.adb, freeze.adb, sem_attr.adb, exp_aggr.adb, |
| gnatname.adb: Minor reformatting. |
| |
| 2015-10-23 Steve Baird <baird@adacore.com> |
| |
| * a-cbdlli.ads, a-cbhama.ads, a-cbhase.ads, a-cbmutr.ads, |
| a-cborma.ads, a-cborse.ads, a-cbprqu.ads, a-cbsyqu.ads, |
| a-cdlili.ads, a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, |
| a-cfinve.ads, a-cforma.ads, a-cforse.ads, a-cidlli.ads, |
| a-cihama.ads, a-cihase.ads, a-cimutr.ads, a-ciorma.ads, |
| a-ciormu.ads, a-ciorse.ads, a-coboho.ads, a-cobove.ads, |
| a-cofove.ads, a-cohama.ads, a-cohase.ads, a-coinho.ads, |
| a-coinho-shared.ads, a-coinve.ads, a-comutr.ads, a-conhel.ads, |
| a-convec.ads, a-coorma.ads, a-coormu.ads, a-coorse.ads, |
| a-cuprqu.ads, a-cusyqu.ads, a-rbtgbo.ads: Add spec Annotate |
| pragmas. |
| * a-cbdlli.adb, a-cbhama.adb, a-cbhase.adb, a-cbmutr.adb, |
| a-cborma.adb, a-cborse.adb, a-cbprqu.adb, a-cbsyqu.adb, |
| a-cdlili.adb, a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, |
| a-cfinve.adb, a-cforma.adb, a-cforse.adb, a-cidlli.adb, |
| a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb, |
| a-ciormu.adb, a-ciorse.adb, a-coboho.adb, a-cobove.adb, |
| a-cofove.adb, a-cohama.adb, a-cohase.adb, a-coinho.adb, |
| a-coinho-shared.adb, a-coinve.adb, a-comutr.adb, a-conhel.adb, |
| a-convec.adb, a-coorma.adb, a-coormu.adb, a-coorse.adb, |
| a-cuprqu.adb, a-cusyqu.adb, a-rbtgbo.adb: Remove body Annotate |
| pragmas. |
| |
| 2015-10-23 Vincent Celier <celier@adacore.com> |
| |
| * gnatname.adb: When gnatname is invoked with a project file, |
| specified with switch -P, if gprname is available, gnatname will |
| invoke gprname, with the target if it is a cross gnatname. |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_ch4.adb: Fix typo. |
| * exp_ch6.adb: Update comment. |
| * exp_attr.adb (Expand_Min_Max_Attribute): Simplify expansion. |
| * exp_aggr.adb (Convert_To_Positional): Only convert to |
| positional when generating C in case of an object declaration. |
| (In_Object_Declaration): New. |
| (Late_Expansion): Adapt to trees generated by Modify_Tree_For_C. |
| * sinfo.ads: Update documentation. |
| |
| 2015-10-23 Joel Brobecker <brobecker@adacore.com brobecker> |
| |
| * sigtramp.h (struct sigcontext, struct ucontext): Remove declarations, |
| and replace them by include of corresponding header file. |
| |
| 2015-10-23 Bob Duff <duff@adacore.com> |
| |
| * a-convec.adb (Copy): Make sure C is initialized |
| on all paths, including when Checks is False. |
| |
| 2015-10-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove |
| error as unreachable. |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat1drv.adb (Adjust_Global_Switches): Adjust. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_dbug.ads, exp_dbug.adb (Get_External_Name): The special prefix for |
| ignored Ghost entities is now ___ghost_. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * ghost.adb (Is_Subject_To_Ghost): Check the |
| original node when searching for pragma Ghost to catch cases |
| where a source construct has been rewritten into something else. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * einfo.ads, einfo.adb (Rewritten_For_C): New flag on functions |
| that return a constrained array type. When generating C these |
| functions are rewritten as procedures with an out parameter, |
| and calls to such functions are rewritten accordingly. |
| * exp_ch6.adb (Expand_N_Subprogram_Declaration): When |
| Modify_Tree_For_C is set and the function returns a constrained |
| array type, generate a procedure declaration with an additional |
| out parameter. Mark original function as Rewritten_For_C. |
| The new declaration is inserted in tree immediately after |
| current declaration. |
| (Expand_Subprogram_Body): If entity is marked Rewritten_For_C, |
| generate body of corresponding procedure using declarations |
| and statements for function body. Replace return statements |
| with assignments to the out parameter, followed by a simple |
| return statement. |
| (Rewrite_Function_Call_For_C): New procedure to replace a function |
| call that returns an array by a procedure call. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_util.adb (Denotes_Iterator): New routine. |
| (Is_Iterator): Code cleanup. Factor out the detection of a |
| predefined iterator. As a result this fixes a missing case |
| where a tagged type implements interface Reversible_Iterator. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): Constant-fold 'Enabled if |
| not within a generic unit, even if expander is not active, so |
| that instances of container packages remain preelaborable in |
| -gnatc mode. |
| |
| 2015-10-23 Tristan Gingold <gingold@adacore.com> |
| |
| * init.c (__gnat_sigtramp): New assembly function for arm64-darwin. |
| (__gnat_error_handler): Use trampoline for arm64. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch3.adb (Expand_N_Object_Declaration): if the type of the |
| object is a class-wide limited interface type, the expression |
| is not restricted to the forms specified for limited types. |
| |
| 2015-10-23 Vincent Celier <celier@adacore.com> |
| |
| * gnatname.adb: Code clean up. |
| * s-taasde.ads: Fix comment. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (Is_Iterator, Is_Reversible_iterator): Use |
| root type to determine whether the type is a descendant of the |
| corresponding interface type, so take into account multiple |
| levels of subtypes and derivations. |
| |
| 2015-10-23 Olivier Hainque <hainque@adacore.com> |
| |
| * tracebak.c: Refine selection of GCC/GENERIC_UNWINDER for |
| tracebacks on x86 & x86_64. |
| (x86 & x86_64): If !SJLJ, always pick the |
| GCC_UNWINDER for x86_64 (not only on linux). |
| * sem_util.ads: Minor fix in comment. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Pragma Volatile_Function should |
| not apply to a function instantiation. |
| * sem_util.adb (Has_Effectively_Volatile_Profile): New routine. |
| (Is_Volatile_Function): An instance of Ada.Unchecked_Conversion |
| is a volatile function when its profile contains an effectively |
| volatile type. |
| * sem_util.ads (Has_Effectively_Volatile_Profile): New routine. |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprogram): Complete previous |
| change and update comments. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.ads, sem_util.adb (Check_Function_With_Address_Parameter): |
| A subprogram that has an Address parameter and is declared in a Pure |
| package is not considered Pure, because the parameter may be used as a |
| pointer and the referenced data may change even if the address value |
| itself does not. |
| * freeze.adb (Freeze_Subprogram): use it. |
| * exp_ch6.adb (Expand_N_Subprogram_Body): Use it. |
| |
| 2015-10-23 Olivier Hainque <hainque@adacore.com> |
| |
| * tracebak.c: Fallback to generic unwinder for gcc-sjlj on x86 & |
| x86_64 linux |
| * tracebak.c: Rework x86 & x86_64 sections to resort to the |
| generic unwinder if __USING_SJLJ_EXCEPTIONS__. |
| |
| 2015-10-23 Javier Miranda <miranda@adacore.com> |
| |
| * sem_util.adb (Check_Function_Writable_Actuals): For function |
| calls restrict the check to elementary types, as requested by |
| RM 6.4.1(6.15/3) |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprogram): Suppress initialization on |
| Decl_ARECnT since we are taking care of all initializations in |
| the generated code. |
| |
| 2015-10-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_dim.adb (Analyze_Dimension_Extension_Or_Record_Aggregate): |
| Handle properly a box-initialized aggregate component. |
| |
| 2015-10-23 Yannick Moy <moy@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Reject Volatile_Function not placed |
| on a function. |
| |
| 2015-10-23 Yannick Moy <moy@adacore.com> |
| |
| * a-extiin.ads, a-reatim.ads, a-interr.ads, a-exetim-mingw.ads, |
| a-exetim-default.ads, a-exetim.ads, a-taside.ads: Add "Global => null" |
| contract on subprograms. |
| * lib-xref-spark_specific.adb: collect scopes for stubs of |
| protected objects |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat1drv.adb (Adjust_Global_Switches): Enable |
| Back_Annotate_Rep_Info to get size information from gigi. |
| (Gnat1drv): Code clean ups. |
| * frontend.adb (Frontend): Ditto. |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat1drv.adb (Adjust_Global_Switches): Adjust settings. |
| * sem.adb (Semantics): Remove special case. |
| |
| 2015-10-23 Gary Dismukes <dismukes@adacore.com> |
| |
| * bindgen.adb, restrict.adb: Minor spelling/grammar fixes. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_res.adb (Resolve_Entity_Name): Code cleanup. Check for possible |
| elaboration issues in SPARK when the name denotes a source variable. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch7.adb (Process_Transient_Objects): Reimplement to properly |
| handle restriction No_Exception_Propagation. |
| * exp_ch11.adb (Expand_At_End_Handler): Update the parameter |
| profile and all references to Block. |
| * exp_ch11.ads (Expand_At_End_Handler): Update the parameter |
| profile and comment on usage. |
| * exp_intr.adb (Expand_Unc_Deallocation): Reimplement to properly |
| handle restriction No_Exception_Propagation. |
| * gnat1drv.adb, restrict.adb: Update comment. |
| |
| 2015-10-23 Bob Duff <duff@adacore.com> |
| |
| * exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call |
| SS_Release for a block statement enclosing the return statement in the |
| case where a build-in-place function return is returning |
| the result on the secondary stack. This is accomplished by |
| setting the Sec_Stack_Needed_For_Return flag on such blocks. |
| It was already being set for the function itself, and it was |
| already set correctly for blocks in the non-build-in-place case |
| (in Expand_Simple_Function_Return). |
| (Set_Enclosing_Sec_Stack_Return): New procedure to perform |
| the Set_Sec_Stack_Needed_For_Return calls. Called in the |
| build-in-place and non-build-in-place cases. |
| (Expand_Simple_Function_Return): Call |
| Set_Enclosing_Sec_Stack_Return instead of performing the loop |
| in line. |
| |
| 2015-10-23 Bob Duff <duff@adacore.com> |
| |
| * scng.adb (Char_Literal_Case): If an apostrophe |
| follows a reserved word, treat it as a lone apostrophe, rather |
| than the start of a character literal. This was already done for |
| "all", but it needs to be done also for (e.g.) "Delta". |
| |
| 2015-10-23 Bob Duff <duff@adacore.com> |
| |
| * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Use |
| Underlying_Type for B_Typ, in case the Typ is a subtype of a type with |
| unknown discriminants. |
| * g-awk.ads: Minor style fix in comment |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * debug.adb: Document the use of debug switch -gnatd.5. |
| * einfo.adb: Code reformatting. (Is_Ghost_Entity): Moved from ghost.adb. |
| * einfo.ads New synthesized attribute Is_Ghost_Enity along |
| with usage in nodes and pragma Inline. |
| (Is_Ghost_Entity: Moved from ghost.ads. |
| * exp_ch3.adb Code reformatting. |
| (Expand_Freeze_Array_Type): Capture, set and restore the Ghost mode. |
| (Expand_Freeze_Class_Wide_Type): Capture, set and restore the |
| Ghost mode. |
| (Expand_Freeze_Enumeration_Type): Capture, set and |
| restore the Ghost mode. |
| (Expand_Freeze_Record_Type): Capture, set and restore the Ghost mode. |
| * exp_ch6.adb (Expand_Subprogram_Contract): Do not expand the |
| contract of an ignored Ghost subprogram. |
| * exp_ch13.adb Add with and use clauses for Ghost. |
| (Expand_N_Freeze_Entity): Capture, set and restore the Ghost mode. |
| * exp_dbug.adb (Get_External_Name): Code reformatting. Add a |
| special prefix for ignored Ghost entities or when requested by |
| -gnatd.5 for any Ghost entity. |
| * exp_dbug.ads Document the use of prefix "_ghost_" for ignored |
| Ghost entities. |
| * exp_prag.adb (Expand_Pragma_Check): Capture, set and restore the |
| Ghost mode. |
| (Expand_Pragma_Loop_Variant): Use In_Assertion_Expr |
| to signal the original context. |
| * ghost.adb (Check_Ghost_Overriding): Code cleanup. |
| (Is_Ghost_Entity): Moved to einfo.adb. (Is_OK_Declaration): |
| Move the assertion expression check to the outer level. |
| (Is_OK_Ghost_Context): An assertion expression is a valid Ghost |
| context. |
| * ghost.ads (Is_Ghost_Entity): Moved to einfo.ads. |
| * sem_ch3.adb (Analyze_Object_Contract): A source Ghost object |
| cannot be imported or exported. Mark internally generated objects |
| as Ghost when applicable. |
| (Make_Class_Wide_Type): Inherit the ghostness of the root tagged type. |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Mark |
| a stand alone subprogram body as Ghost when applicable. |
| (Analyze_Subprogram_Declaration): Mark internally generated |
| subprograms as Ghost when applicable. |
| * sem_ch7.adb: Code cleanup. |
| * sem_ch13.adb (Add_Invariants): Add various formal |
| parameters to break dependency on global variables. |
| (Build_Invariant_Procedure): Code cleanup. Capture, set and |
| restore the Ghost mode. |
| * sem_res.adb (Resolve_Actuals): The actual parameter of a source |
| Ghost subprogram whose formal is of mode IN OUT or OUT must be |
| a Ghost variable. |
| |
| 2015-10-23 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch8.adb Code cleanup. |
| (Find_Expanded_Name): Replace |
| the call to In_Pragmas_Depends_Or_Global with a call to |
| In_Abstract_View_Pragma. |
| (In_Abstract_View_Pragma): New routine. |
| (In_Pragmas_Depends_Or_Global): Removed. |
| * sem_prag.adb (Analyze_Part_Of): Catch a case where indicator |
| Part_Of denotes the abstract view of a variable. |
| |
| 2015-10-23 Arnaud Charlet <charlet@adacore.com> |
| |
| * sem_util.ads (Unique_Defining_Entity): Document the result |
| for tasks and entries. |
| * sem_util.adb (Unique_Entity): Return declaration entity for task and |
| entry bodies |
| |
| 2015-10-22 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Use gcc_checking_assert. |
| * gcc-interface/trans.c (assoc_to_constructor): Use flag_checking. |
| * gcc-interface/utils.c (relate_alias_sets): Likewise. |
| * gcc-interface/utils2.c (build_binary_op, build_unary_op): Use |
| gcc_checking_assert |
| |
| 2015-10-21 Martin Sebor <msebor@redhat.com> |
| |
| PR driver/68043 |
| * gcc-interface/lang.opt: End each sentence that describes |
| an option with a period. |
| |
| 2015-10-20 Yannick Moy <moy@adacore.com> |
| |
| * fmap.adb, a-cihama.adb, sem_ch5.adb, make.adb, inline.adb, |
| a-cfhase.adb, scng.adb, sem_ch12.adb, freeze.adb, tempdir.adb, |
| sem_util.adb, sem_res.adb, s-regexp.adb, a-clrefi.adb: Fix coding |
| style for marking start of processing of subprograms. |
| |
| 2015-10-20 Yannick Moy <moy@adacore.com> |
| |
| * lib-xref-spark_specific.adb (Add_SPARK_File): Start traversal |
| by requesting info from stubs. (Traverse_All_Compilation_Units): |
| Remove unused procedure. |
| (Traverse_Declarations_Or_Statements): Handle protected and task units. |
| * lib-xref.ads (Traverse_All_Compilation_Units): Remove unused |
| procedure. |
| * restrict.adb (Check_Restriction): Do not ignore |
| restrictions in GNATprove_Mode. |
| |
| 2015-10-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * s-valllu.adb, sem_ch3.adb, layout.adb, a-crbtgo.adb, exp_ch9.adb, |
| make.adb, g-diopit.adb, s-valuns.adb, sem_ch9.adb, sem_ch10.adb, |
| sem_ch12.adb, a-tifiio.adb, g-dynhta.adb, uintp.adb, |
| sem_util.adb, sem_res.adb, s-htable.adb, exp_tss.adb, s-soflin.ads, |
| exp_ch6.adb, sem_ch6.adb, a-rbtgbo.adb, par-ch12.adb, sem_ch8.adb, |
| sem_eval.adb, mdll.adb, par-ch5.adb, s-poosiz.adb, sem_ch4.adb, |
| a-ngelfu.adb, s-taspri-solaris.ads, a-cforse.adb: Fix typos. |
| |
| 2015-10-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * sem_aggr.adb, mlib-prj.adb, prep.adb, eval_fat.adb, rtsfind.adb, |
| freeze.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnatlink.adb, |
| par-ch6.adb, exp_tss.adb, exp_ch4.adb, s-shasto.adb, exp_fixd.adb, |
| sem_ch6.adb, clean.adb, sem_ch8.adb, sem_eval.adb, sem_ch9.adb: Fix |
| typos. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch11.adb (Analyze_Handled_Statements): If the scope is a |
| postcondition subprogram, do not check for useless assignments |
| because there are no source references in such a body, and the |
| call will lose deferred references from the enclosing subprogram. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb: nalyze_Attribute_Definition_Clause, case |
| 'Address): If either object is controlled the overlay is |
| erroneous, but analysis must be completed so that back-end sees |
| address clause and completes code generation. Improve text |
| of warning. |
| |
| 2015-10-20 Thomas Quinot <quinot@adacore.com> |
| |
| * exp_ch4.adb: Minor reformatting. |
| |
| 2015-10-20 Bob Duff <duff@adacore.com> |
| |
| * s-mudido-affinity.adb (Create): Correct subranges of slices of CPU |
| arrays. |
| |
| 2015-10-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * sinfo.ads, g-pehage.adb, par-ch12.adb, |
| layout.adb, exp_util.adb, sem_aux.adb, make.adb, checks.adb, |
| sem_ch12.adb, sem_res.adb, sem_attr.adb, a-ngelfu.adb, sem_ch4.adb, |
| switch-b.adb, sem_ch6.adb, prj-dect.adb, gnatxref.adb, sem_ch13.adb, |
| lib-xref.adb: Fix typos. |
| |
| 2015-10-20 Tristan Gingold <gingold@adacore.com> |
| |
| * exp_ch4.adb (Expand_Array_Comparison): Use |
| generic code if runtime routine is not available. |
| |
| 2015-10-20 Yannick Moy <moy@adacore.com> |
| |
| * a-sytaco.ads (Ada.Synchronous_Task_Control): Package |
| now withs System.Task_Identification. The visible part |
| of the spec has SPARK_Mode. The private part has pragma |
| SPARK_Mode (Off). |
| (Set_True): Added Global and Depends aspects |
| (Set_False): Added Global and Depends aspects (Current_State): |
| Added Volatile_Function aspect and added external state |
| Ada.Task_Identification.Tasking_State as a Global input. |
| (Suspend_Until_True): Added Global and Depends aspects |
| * a-sytaco.adb (Ada.Synchronous_Task_Control): |
| Package body has SPARK_Mode => Off |
| * a-extiin.ads (Ada.Execution_Time.Interrupts): |
| Package now withs Ada.Real_Time and has SPARK_Mode. |
| (Clock): Added Volatile_Function aspect and added external state |
| Ada.Real_Time.Clock_Time as a Global input. |
| * a-reatim.ads (Ada.Real_Time): The visible part of the spec has |
| SPARK_Mode. The private part has pragma SPARK_Mode (Off). The package |
| declares external state Clock_Time with properties Async_Readers and |
| Async_Writers. |
| (Clock): Added Volatile_Function aspect and |
| added external state Clock_Time as a Global input. |
| * a-reatim.adb (Ada.Real_Time): Package body has SPARK_Mode => Off |
| * a-exetim-default.ads, a-exetim-mingw.ads (Ada.Execution_Time): |
| The visible part of the spec has SPARK_Mode. The private part |
| has pragma SPARK_Mode (Off). |
| (Clock): Added Volatile_Function |
| aspect and added external state Clock_Time as a Global input. |
| (Clock_For_Interrupts): Added Volatile_Function aspect and added |
| external state Ada.Real_Time.Clock_Time as a Global input. |
| * a-exetim-mingw.adb (Ada.Execution_Time): Package body has |
| SPARK_Mode => Off |
| * a-interr.ads (Ada.Interrupts): Package now |
| withs Ada.Task_Identification (Is_Reserved): Added |
| SPARK_Mode, Volatile_Function and external state |
| Ada.Task_Identification.Tasking_State as a Global input. |
| (Is_Attached): Added SPARK_Mode, Volatile_Function and external |
| state Ada.Task_Identification.Tasking_State as a Global input. |
| (Attach_Handler): Added SPARK_Mode => Off (Exchange_Handler): |
| Added SPARK_Mode => Off (Detach_Handler): Added SPARK_Mode |
| and external state Ada.Task_Identification.Tasking_State as a |
| Global In_Out. (Reference): Added SPARK_Mode => Off |
| * a-disedf.ads (Get_Deadline): Added SPARK_Mode, Volatile_Function |
| and external state Ada.Task_Identification.Tasking_State as a |
| Global input. |
| * a-taside.ads (Ada.Task_Identification): The visible part of |
| the spec has SPARK_Mode. The private part has pragma SPARK_Mode |
| (Off). The package declares external state Tasking_State with |
| properties Async_Readers and Async_Writers. |
| (Current_Task): Added |
| Volatile_Function aspect and added external state Tasking_State |
| as a Global input. |
| (Environment_Task): Added SPARK_Mode => Off |
| (Is_Terminated): Added Volatile_Function aspect and added external |
| state Tasking_State as a Global input. (Is_Callable): Added |
| Volatile_Function aspect and added external state Tasking_State as |
| a Global input. |
| (Activation_Is_Complete): Added Volatile_Function |
| aspect and added external state Tasking_State as a Global input. |
| * a-taside.adb (Ada.Task_Identification): Package body has |
| SPARK_Mode => Off. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * atree.ads, atree.adb: Enable List38 and List39 on entities. |
| * einfo.ads, einfo.adb (Class_Wide_Preconds) new attribute defined |
| on subprograms. Holds the list of class-wide precondition |
| functions inherited from ancestors. Each such function is an |
| instantiation of the generic function generated from an explicit |
| aspect specification for a class-wide precondition. A type is |
| an ancestor of itself, and therefore a root type has such an |
| instance on its own list. |
| (Class_Wide_Postconds): ditto for postconditions. |
| |
| 2015-10-20 Vincent Celier <celier@adacore.com> |
| |
| * prj-attr.adb: Add packages Prove and GnatTest. |
| |
| 2015-10-20 Steve Baird <baird@adacore.com> |
| |
| * a-conhel.adb: Add an Annotate pragma to help suppress CodePeer's |
| analysis of internals of container generic instances. This pragma |
| has no other effect. |
| * a-conhel.adb (Generic_Implementation) Add "pragma Annotate |
| (CodePeer, Skip_Analysis);". |
| |
| 2015-10-20 Steve Baird <baird@adacore.com> |
| |
| * pprint.adb: Code clean up. |
| |
| 2015-10-20 Bob Duff <duff@adacore.com> |
| |
| * a-cfinve.ads, a-coboho.ads: Improve comments. |
| * a-coboho.adb (Size_In_Storage_Elements): Improve error message |
| in case of "Size is too big" exception. |
| |
| 2015-10-20 Bob Duff <duff@adacore.com> |
| |
| * a-contai.ads: Remove check names (moved to snames.ads-tmpl). |
| * snames.ads-tmpl: Add check names that were previously in |
| a-contai.ads, so they are now visible in configuration files. |
| * types.ads: Add checks corresponding to snames.ads-tmpl. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Loop_Statement): Attach generated loop |
| identifier to the tree, because it may be the root of a tree |
| traversal in Pop_Scope when freeze actions are pending. |
| |
| 2015-10-20 Steve Baird <baird@adacore.com> |
| |
| * pprint.ads (Expression_Image) Add new generic formal flag |
| Hide_Parameter_Blocks. |
| * pprint.adb (Expression_Image) If new flag is set, then display |
| dereferences of parameter block components accordingly. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_prag.adb: Code clean up. |
| |
| 2015-10-20 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch6.adb (Expand_N_Extended_Return_Statement): Code cleanup. |
| (Make_Build_In_Place_Call_In_Object_Declaration): Update the |
| parameter profile. Code cleanup. Request debug info for the |
| object renaming declaration. |
| (Move_Activation_Chain): Add new formal parameter and update the |
| comment on usage. |
| * exp_ch6.ads (Make_Build_In_Place_Call_In_Object_Declaration): |
| Update the parameter profile and comment on usage. |
| * sem_util.ads, sem_util.adb (Remove_Overloaded_Entity): New routine, |
| currently unused. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Analyze_One_Aspect, case |
| Aspect_Disable_Controlled): If expander is not active, pre-analyze |
| expression anyway for ASIS and other tools use. |
| * sem_prag.adb (Build_Generic_Class_Condition): Handle properly |
| anonymous access types in parameter specifications. Make the |
| formal type a formal derived type of the controlling type of |
| the subprogram. |
| |
| 2015-10-20 Tristan Gingold <gingold@adacore.com> |
| |
| * s-rident.ads: No_Task_At_Interrupt_Priority: New restriction. |
| * sem_prag.adb (Analyze_Pragma): Check the restriction. |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): |
| Check the restriction (for aspects). |
| |
| 2015-10-20 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_prag.adb: Minor reformatting. |
| |
| 2015-10-20 Tristan Gingold <gingold@adacore.com> |
| |
| * sem_util.adb (Is_Protected_Self_Reference): Remove reference to |
| UET_Address in comment. |
| * sem_attr.adb (Check_Unit_Name): Adjust comment. |
| (Analyze_Attribute): Remove handling of UET_Address. |
| * sem_attr.ads (Attribute_Impl_Def): Remove Attribute_UET_Address. |
| * snames.ads-tmpl Remove Name_UET_Address, Attribute_UET_Address. |
| * exp_attr.adb (Expand_N_Attribute_Reference): Remove |
| Attribute_UET_Address. |
| |
| 2015-10-20 Bob Duff <duff@adacore.com> |
| |
| * a-cbdlli.adb, a-cdlili.adb, a-chtgop.adb, a-cidlli.adb, |
| * a-cobove.adb, a-coinve.adb, a-convec.adb, a-crbtgo.adb ("="): Avoid |
| modifying the tampering counts unnecessarily. |
| (Adjust): Zero tampering counts unconditionally. |
| |
| 2015-10-20 Jerome Lambourg <lambourg@adacore.com> |
| |
| * init.c: Fix build issue on arm-vx6 when building the RTP |
| run-time. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Object_Declaration): If the expression |
| is an aggregate and compilation is in -gnatI mode (ignore rep |
| clauses) do not delay resolution of aggregate, to prevent freeze |
| actions out of order in the backend. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_prag.ads, sem_prag.adb (Build_Generic_Class_Condition): |
| New procedure to construct a generic function for a class-wide |
| precondition, to implement AI12-0113 concerning the new semantics |
| of class-wide preconditions for overriding uperations. |
| |
| 2015-10-20 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_util.adb (Find_Actual): The routine is |
| now capable of operating on entry calls. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb: Remove redundant check. |
| |
| 2015-10-20 Jerome Lambourg <lambourg@adacore.com> |
| |
| * init.c (__gnat_vxsim_error_handler): Completely disable on |
| VxWorks-7 as the VSBs used to build gcc do not support vxsim |
| architecture. |
| |
| 2015-10-20 Claire Dross <dross@adacore.com> |
| |
| * a-cfdlli.ads, a-cfinve.ads, a-cofove.ads (Generic_Sorting): Explicit |
| SPARK_Mode. |
| * a-cfhase.ads, a-cforse.ads (Generic_Keys): Explicit SPARK_Mode. |
| |
| 2015-10-20 Tristan Gingold <gingold@adacore.com> |
| |
| * exp_ch9.adb (Expand_N_Protected_Type_Declaration): |
| Check for No_Implicit_Protected_Object_Allocations. |
| * fe.h (Check_No_Implicit_Task_Alloc, |
| Check_No_Implicit_Protected_Alloc): Define and declare. |
| * restrict.ads, restrict.adb (Check_No_Implicit_Task_Alloc, |
| Check_No_Implicit_Protected_Alloc): New procedures to check the |
| restrictions. |
| * s-rident.ads (No_Implicit_Task_Allocations) |
| (No_Implicit_Protected_Object_Allocations): Declare new |
| restrictions. |
| |
| 2015-10-20 Yannick Moy <moy@adacore.com> |
| |
| * sem_res.adb (Resolve_Selected_Component): Only set flag |
| when component is defined in a variant part. |
| * sem_util.adb, |
| * sem_util.ads (Is_Declared_Within_Variant): Promote local query |
| as publicy visible one for use in Resolve_Selected_Component. |
| |
| 2015-10-20 Philippe Gil <gil@adacore.com> |
| |
| * g-debpoo.adb: allow instrumented System.Memory to use Debug_Pool |
| from foreign threads. |
| * g-debpoo.adb (Print_Traceback): NEW print traceback if available |
| added to support Stack_Trace_Depth = 0. |
| (Print_Address): NEW print System.Address without no secondary |
| stack use (Address_Image uses secondary stack) |
| |
| 2015-10-20 Yannick Moy <moy@adacore.com> |
| |
| * exp_ch9.adb (Expand_Entry_Barrier): Default initialize local variable |
| Func. |
| |
| 2015-10-20 Jerome Lambourg <lambourg@adacore.com> |
| |
| * init.c (__gnat_error_handler for vxworks): Force |
| SPE bit in the MSR when handling signals |
| |
| 2015-10-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * einfo.ads, sem_ch12.adb, sem_ch6.adb, table.ads, s-stposu.ads, |
| g-table.ads, g-dyntab.ads, makeutl.ads, a-crdlli.ads: Fix typos. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Loop_Statement): Element iterators |
| over multidimensional arrays create additional loops during |
| expansion. For such loops we create a label as a scope |
| name. Attach this label properly to tree, for use in GNATProve |
| over such element iterators. |
| * sem_attr.adb (Analyze_Attribute, case Loop_Entry): The loop to |
| which the attribute applies comes from source, not from expansion |
| of an element iterator or a quantified expression. |
| * exp_attr.adb (Expand_N_Attribute_Reference): Ditto. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch6.adb (Expand_Call): Check for a call to a function |
| declared in a Dimension I/O package, to handle the new Image |
| function. |
| |
| 2015-10-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * inline.ads: Minor comment fixes. |
| |
| 2015-10-20 Bob Duff <duff@adacore.com> |
| |
| * a-comutr.ads (Tree_Node_Access): Add No_Strict_Aliasing, because |
| we're doing unchecked conversions with this pointer. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch9.adb (Next_Protected_Operation): An expression function |
| used as a completion can be the next protected operation in a |
| protected body. |
| |
| 2015-10-20 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_res.adb (Is_OK_Volatile_Context): Add a guard when checking a |
| possible call to an instance of Ada.Unchecked_Conversion to avoid |
| testing protected function calls. Allow references to protected objects |
| in prefixed protected calls. |
| (Is_Protected_Operation_Call): New routine. |
| |
| 2015-10-20 Yannick Moy <moy@adacore.com> |
| |
| * exp_ch5.adb, exp_ch5.ads (Expand_Iterator_Loop_Over_Array): Make |
| query public. Remove code handling with iterator loop over array |
| of the 'in' form, which is not allowed in Ada. * exp_spark.adb |
| (Expand_SPARK): Expand loop statements that take the form of an |
| iterator over an array. |
| * sem_ch5.adb (Analyze_Loop_Statement): Do not analyze loop statements |
| that take the form of an iterator over an array, so that the rewritten |
| form gets analyzed instead. |
| * sem_util.adb, sem_util.ads (Is_Iterator_Over_Array): New query |
| to recognize iterators over arrays. |
| |
| 2015-10-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * s-excdeb.ads, s-excdeb.adb (Debug_Raise_Exception): Add |
| parameter Message. |
| * a-except.adb (Raise_Current_Excep): Update call to |
| Debug_Raise_Exception. |
| * a-except-2005.adb (Complete_Occurrence): Ditto. |
| * sem_ch12.adb: Whitespace fix. |
| |
| 2015-10-20 Yannick Moy <moy@adacore.com> |
| |
| * sem_warn.adb (Is_OK_Fully_Initialized): Consider types with DIC as |
| fully default initialized. |
| * sem_ch6.adb: minor style fix in comment |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * s-diflio.ads, s-diflio.adb (Image): New function for dimensioned |
| quantities, to produce a string that includes the dimension |
| synbol for the quantity, or the vector of dimensions in standard |
| notation. |
| * sem_dim.adb (Expand_Put_Call_With_Symbol): Process new function |
| Image, to include dimension information in the generated string, |
| identical to the string produced by the Put procedure on a string |
| for a dimensioned quantity. |
| |
| 2015-10-20 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch7.adb (Process_Declarations): A loop |
| parameter does not require finalization actions. |
| |
| 2015-10-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Expand_Simple_Function_Return): Do not create an |
| actual subtype for a mutable record return type if the expression |
| is itself a function call. |
| |
| 2015-10-20 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * s-atocou.adb, s-atocou-builtin.adb: Fix implementation description |
| related to new type support. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve_Explicit_Dererence): Call Analyze_Dimension |
| to propagate dimension information from prefix. |
| * sem_dim.adb (Analyze_Dimension): Handle Explicit_Dereference. |
| * inline.ads: minor whitespace fix in comment |
| * sem_ch6.adb: minor gramar fix in comment |
| |
| 2015-10-20 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Object_Contract): |
| A protected type or a protected object is allowed to have a |
| discriminated part. |
| |
| 2015-10-20 Bob Duff <duff@adacore.com> |
| |
| * sem_util.adb (Requires_Transient_Scope): |
| Return true for mutable records if the maximum size is very large. |
| |
| 2015-10-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * a-except-2005.adb (To_Stderr): Import Put_Char_Stderr with |
| the same signature as in System.IO.Put. |
| |
| 2015-10-20 Bob Duff <duff@adacore.com> |
| |
| * a-cobove.adb (Set_Length): Restore previous logic, but with "Checks |
| and then" on the check. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * par-ch3.adb (P_Known_Discriminant_Part_Opt): Handle properly |
| a misplaced "constant" keyword in a discriminant specification. |
| |
| 2015-10-20 Steve Baird <baird@adacore.com> |
| |
| * einfo.ads (Is_Param_Block_Component_Type): New function decl |
| for querying the flag. |
| (Set_Is_Param_Block_Component_Type): New procedure decl for setting |
| the flag. |
| * einfo.adb (Is_Param_Block_Component_Type): New function body. |
| (Set_Is_Param_Block_Component_Type): New procedure body. |
| (Write_Entity_Flags): Display the new flag. |
| * exp_ch9.adb (Build_Parameter_Block): Set flag on parameter |
| block component types. |
| (Expand_N_Entry_Declaration): Set flag on parameter block component |
| types. |
| |
| 2015-10-20 Steve Baird <baird@adacore.com> |
| |
| * sem_elab.adb: Do not pass an N_Attribute_Reference node to |
| Sinfo.Set_No_Elaboration_Check. |
| * sem_elab.adb (Check_Elab_Call) Do not pass a non-call |
| node (specifically, an N_Attribute_Reference node) to |
| Sinfo.Set_No_Elaboration_Check. |
| |
| 2015-10-20 Tristan Gingold <gingold@adacore.com> |
| |
| * adaint.c: File names are case sensitive on aarch64-ios. |
| |
| 2015-10-20 Bob Duff <duff@adacore.com> |
| |
| * a-cbdlli.ads, a-cbhase.ads, a-cbmutr.ads, a-cborse.ads, |
| * a-cdlili.ads, a-cidlli.ads, a-cihase.ads, a-cimutr.ads, |
| * a-ciorse.ads, a-cobove.ads, a-cohase.ads, a-coinve.ads, |
| * a-comutr.ads, a-convec.ads, a-coorse.ads: Use non-private with clause. |
| |
| 2015-10-20 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_util.adb (Requires_Cleanup_Actions): A loop parameter does not |
| require finalization actions. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * par-ch3.adb (P_Declarative_Items): In case of misplaced |
| aspect specifications, ensure that flag Done is properly set to |
| continue parse. |
| |
| 2015-10-20 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * rtsfind.ads Remove the entries for Ada.Synchronous_Task_Control |
| and Suspension_Object from tables RE_Id, RE_Unit_Table and RTU_Id. |
| * sem_util.adb (Is_Descendant_Of_Suspension_Object): Update |
| the comment on usage. Use routine Is_Suspension_Object to detect |
| whether a type matches Suspension_Object. |
| (Is_Suspension_Object): New routine. |
| * snames.ads-tmpl: Add predefined names for Suspension_Object |
| and Synchronous_Task_Control. |
| |
| 2015-10-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_smem.adb (Check_Shared_Var): Clean up code that handles |
| type declarations with discriminants, remove obsolete check. |
| |
| 2015-10-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * par_sco.adb: Minor style fixes. |
| |
| 2015-10-20 Vincent Celier <celier@adacore.com> |
| |
| * debug.adb: Update documentation of -gnatdu. |
| |
| 2015-10-20 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * aspects.adb Add aspect Volatile_Function to table |
| Canonical_Aspect. |
| * aspect.ads Add aspect Volatile_Function to tables |
| Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names |
| and Implementation_Defined_Aspect. Aspects Async_Readers, |
| Async_Writers, Effective_Reads and Effective_Writes are no |
| longer Boolean. |
| * einfo.adb (Get_Pragma): Add an entry for pragma |
| Volatile_Function. |
| * par-prag.adb (Prag): Pragma Volatile_Function does not need |
| special processing by the parser. |
| * rtsfind.ads Add an entry for Ada.Synchronous_Task_Control in |
| table RTU_Id. Add an entry for Suspension_Object in table RE_Id. |
| * sem_ch3.adb Fix SPARK RM references. |
| (Analyze_Object_Contract): Update the error guard. |
| * sem_ch5.adb Fix SPARK RM references. |
| * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Ensure |
| that a non-volatile function does not contain an effectively |
| volatile parameter. |
| (Analyze_Subprogram_Contract): Ensure |
| that a non-volatile function does not contain an effectively |
| volatile parameter. |
| * sem_ch12.adb (Instantiate_Object): Remove the reference to |
| the SPARK RM from the error message. |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Add |
| processing for aspects Async_Readers, Async_Writers, |
| Effective_Reads, Effective_Writes and Volatile_Function. |
| (Check_Aspect_At_Freeze_Point): Aspects Async_Readers, |
| Async_Writers, Effective_Reads, Effective_Writes and |
| Volatile_Function do not need special processing at the freeze |
| point. |
| * sem_prag.adb Add an entry for pragma Volatile_Function in |
| table Sig_Flags. |
| (Analyze_External_Property_In_Decl_Part): |
| Reimplemented as Async_Readers, Async_Writers, Effective_Reads |
| and Effective_Writes are no longer Boolean pragmas. |
| (Analyze_Global_Item): An external state or effectively |
| volatile object cannot appear as an item in pragma |
| [Refined_]Global. |
| (Analyze_Pragma): Change the implementation |
| of Async_Readers, Async_Writers, Effective_Reads and |
| Effective_Writes as these are no longer Boolean pragmas. |
| Use routine Check_Static_Boolean_Expression to verify the |
| optional Boolean expression of Async_Readers, Async_Writers, |
| Constant_After_Elaboration, Effective_Reads, Effective_Writes, |
| Extensions_Visible and Volatile_Function. Add processing for |
| pragma Volatile_Function. |
| (Check_Static_Boolean_Expression): New routine. |
| (Find_Related_Context): Update the comment on usage. |
| (Is_Enabled_Pragma): New routine. |
| * sem_prag.ads (Is_Enabled_Pragma): New routine. |
| * sem_res.adb Fix SPARK RM references. |
| (Is_OK_Volatile_Context): Add detection for return statements. |
| (Resolve_Actuals): Remove the check concerning an effectively volatile |
| OUT actual parameter as this is now done by the SPARK flow analyzer. |
| (Resolve_Entity_Name): Remove the check concerning an effectively |
| volatile OUT formal parameter as this is now done by the SPARK |
| flow analyzer. (Within_Volatile_Function): New routine. |
| * sem_util.adb (Add_Contract_Item): Add processing for pragma |
| Volatile_Function. |
| (Check_Nonvolatile_Function_Profile): New routine. |
| (Is_Descendant_Of_Suspension_Object): New routine. |
| (Is_Effectively_Volatile): Protected types and descendants of |
| Suspension_Object are now treated as effectively volatile. |
| (Is_Enabled): The optional Boolean expression of pragmas |
| Async_Readers, Async_Writers, Effective_Reads and Effective_Writes |
| now appears as the first argument. |
| (Is_Volatile_Function): New routine. |
| * sem_util.ads Add SPARK RM references. |
| (Add_Contract_Item): Update the comment on usage. |
| (Check_Nonvolatile_Function_Profile): New routine. |
| (Is_Effectively_Volatile): Update the comment on usage. |
| (Is_Volatile_Function): New routine. |
| * snames.ads-tmpl Add a predefined name and pragma id for |
| Volatile_Function. |
| |
| 2015-10-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat_ugn.texi, gnat_rm.texi: Regenerate. |
| * doc/gnat_ugn/gnat_project_manager.rst, |
| doc/gnat_ugn/building_executable_programs_with_gnat.rst, |
| doc/gnat_ugn/the_gnat_compilation_model.rst, |
| doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, |
| doc/gnat_rm/implementation_defined_pragmas.rst, |
| doc/gnat_rm/the_gnat_library.rst, |
| doc/gnat_rm/implementation_defined_characteristics.rst: Update doc. |
| |
| 2015-10-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * gcc-interface/Makefile.in: Update targets. |
| |
| 2015-10-20 Bob Duff <duff
|