12016-12-07 Pierre-Marie de Rodat <derodat@adacore.com> 2 3 * gcc-interface/decl.c (gnat_to_gnu_entity): When they are global, 4 consider ___XR GNAT encodings variables for renamings as static so 5 they have a location in the debug info. 6 72016-12-07 Eric Botcazou <ebotcazou@adacore.com> 8 9 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Translate 10 System.Address into ptr_type_node for every foreign convention. 11 (gnat_to_gnu_subprog_type): Likewise for result and parameter types. 12 (gnat_to_gnu_param): Do not do it here for GCC builtins. 13 (intrin_return_compatible_p): Likewise. 14 152016-12-07 Eric Botcazou <ebotcazou@adacore.com> 16 17 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>: 18 Also call finish_character_type on Character subtypes. 19 * gcc-interface/utils.c (finish_character_type): Deal with subtypes. 20 212016-12-05 Mikael Pettersson <mikpe@it.uu.se> 22 23 PR ada/48835 24 * gcc-interface/Makefile.in: Add support for m68k-linux. 25 * system-linux-m68k.ads: New file. 26 272016-12-05 Eric Botcazou <ebotcazou@adacore.com> 28 29 * system-darwin-ppc.ads (Support_Atomic_Primitives): Set to True only 30 if the word size is 64. 31 322016-11-30 Gary Dismukes <dismukes@adacore.com> 33 34 * sem_prag.adb, sem_ch6.adb: Minor reformatting and typo fixes. 35 * g-sechas.adb: Minor reformatting. 36 * lib-xref.ads: minor grammar fix in comment. 37 * lib-xref-spark_specific.adb 38 (Is_SPARK_Reference): do not ignore references to concurrent 39 objects. 40 * sinfo.ads: Fix of unbalanced parens in comment 41 422016-11-30 Ed Schonberg <schonberg@adacore.com> 43 44 * lib-xref.adb (Get_Type_Reference): If the entity is a function 45 returning a classwide type, the type reference is obtained right 46 away and does not need further unwinding. 47 482016-11-30 Javier Miranda <miranda@adacore.com> 49 50 * sem_ch8.adb (Find_Renamed_Entity): For non-overloaded subprogram 51 actuals of generic units check that the spec of the renaming 52 and renamed entities match. 53 542016-11-30 Tristan Gingold <gingold@adacore.com> 55 56 * raise-gcc.c: For CERT runtimes: do not use gcc includes, simplify 57 the handling. 58 * sem_attr.adb (Analyze_Attribute): Check No_Dynamic_Priorities 59 restriction for Priority Attribute. 60 612016-11-27 Eric Botcazou <ebotcazou@adacore.com> 62 63 PR ada/78524 64 * gcc-interface/utils.c (max_size) <tcc_reference>: Add missing 65 conversion to original type in the PLACEHOLDER_EXPR case. 66 672016-11-27 Eric Botcazou <ebotcazou@adacore.com> 68 69 PR ada/78531 70 * namet.h (Max_Line_Length): Define. 71 (struct Bounded_String): Declare Chars with exact size. 72 (namet__get_decoded_name_string): Delete. 73 (Get_Decoded_Name_String): Likewise. 74 (casing__set_all_upper_case): Likewise. 75 762016-11-22 Uros Bizjak <ubizjak@gmail.com> 77 78 * gcc-interface/Make-lang.in (check-acats): Fix detection 79 of -j argument. 80 812016-11-18 Richard Sandiford <richard.sandiford@arm.com> 82 Alan Hayward <alan.hayward@arm.com> 83 David Sherwood <david.sherwood@arm.com> 84 85 * gcc-interface/utils.c (create_label_decl): Use SET_DECL_MODE. 86 872016-11-14 Eric Botcazou <ebotcazou@adacore.com> 88 89 * gcc-interface/Makefile.in: Replace s-interr-hwint.adb with 90 s-interr-vxworks.adb throughout. 91 922016-11-13 Bob Duff <duff@adacore.com> 93 94 * gcc-interface/decl.c (gnat_to_gnu_entity): In assertion about known 95 Esize, protect with !is_type and change !Unknown_Esize to Known_Esize. 96 972016-11-13 Eric Botcazou <ebotcazou@adacore.com> 98 99 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: 100 Look at the underlying type for the signedness of the type. 101 1022016-11-13 Eric Botcazou <ebotcazou@adacore.com> 103 104 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Deal specially 105 with negative constants. 106 1072016-11-13 Eric Botcazou <ebotcazou@adacore.com> 108 109 * gcc-interface/utils2.c (gnat_protect_expr): Also protect only the 110 address if the expression is the component of a dereference. 111 Do not use a reference type for the final temporary reference. 112 1132016-11-13 Eric Botcazou <ebotcazou@adacore.com> 114 115 * gcc-interface/Makefile.in (NO_OMIT_ADAFLAGS): Define. 116 (a-except.o): Replace -fno-inline with NO_INLINE_ADAFLAGS. 117 (s-memory.o): New rule. 118 (tracebak.o): Replace -fno-omit-frame-pointer with NO_OMIT_ADAFLAGS. 119 1202016-11-07 Tamar Christina <tamar.christina@arm.com> 121 122 * adaint.c: Added signal.h for Windows. 123 1242016-10-31 Jakub Jelinek <jakub@redhat.com> 125 126 * gcc-interface/misc.c (gnat_get_array_descr_info): Clear rank field. 127 1282016-10-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 129 130 * gcc-interface/Make-lang.in (lang_checks_parallelized): New target. 131 (check_gnat_parallelize): Likewise. 132 1332016-10-20 Nicolas Roche <roche@adacore.com> 134 135 * gcc-interface/Makefile (x86-64/Darwin): Restore missing pairs. 136 (x86/Darwin): Likewise. 137 1382016-10-19 Eric Botcazou <ebotcazou@adacore.com> 139 140 * system-linux-armel.ads: Rename into... 141 * system-linux-arm.ads: ...this 142 * gcc-interface/Makefile.in (ARM/Android): Adjust to above renaming. 143 (ARM/Linux): Likewise. 144 (Aarch64/Linux): Likewise. 145 1462016-10-18 Eric Botcazou <ebotcazou@adacore.com> 147 148 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Define. 149 (EXTRA_GNATRTL_TASKING_OBJS): Likewise. 150 (ARM/Android): Add atomic support. 151 (SPARC/Solaris): Simplify. 152 (x86/Solaris): Likewise. 153 (x86/Linux): Likewise. 154 (x86-64/kFreeBDS): Adjust and use system-freebsd-x86.ads 155 (x86/FreeBSD): Add s-mudido-affinity.adb. 156 (x86-64/FreeBSD): Likewise and use system-freebsd-x86.ads. 157 (s390/Linux): Simplify. 158 (PowerPC/AIX): Likewise. 159 (Cygwin/Mingw): Likewise. 160 (MIPSel/Linux): Likewise. 161 (ARM/Linux): Add atomic support. 162 (Aarch64/Linux): Use system-linux-armel.ads. 163 (SPARC/Linux): Simplify. 164 (IA-64/Linux): Minor tweak. 165 (IA-64/HP-UX): Likewise. 166 (Alpha/Linux): Likewise. 167 (x86-64/Linux): Use system-linux-x86.ads. 168 (x86/Darwin): Simplify. 169 (PowerPC/Darwin): Likewise. 170 (ARM/Darwin): Use system-darwin-arm.ads. 171 (ADA_EXCLUDE_SRCS): Minor reformatting. 172 * system-aix.ads (Word_Size): Change to Standard'Word_Size. 173 (Memory_Size): Change to 2 ** Word_Size. 174 (Support_Atomic_Primitives): Set to True. 175 * system-aix64.ads: Delete. 176 * system-darwin-arm.ads: New. 177 * system-darwin-ppc.ads (Word_Size): Change to Standard'Word_Size. 178 (Memory_Size): Change to 2 ** Word_Size. 179 (Support_Atomic_Primitives): Set to True. 180 * system-darwin-ppc64.ads: New. 181 * system-darwin-x86.ads (Word_Size): Change to Standard'Word_Size. 182 (Memory_Size): Change to 2 ** Word_Size. 183 * system-darwin-x86_64.ads: Delete. 184 * system-freebsd-x86.ads (Word_Size): Change to Standard'Word_Size. 185 (Memory_Size): Change to 2 ** Word_Size. 186 * system-freebsd-x86_64.ads: Delete. 187 * system-linux-alpha.ads (Support_Atomic_Primitives): Set to True. 188 * system-linux-armeb.ads (Word_Size): Change to Standard'Word_Size. 189 (Memory_Size): Change to 2 ** Word_Size. 190 (Support_Atomic_Primitives): Set to True. 191 * system-linux-armel.ads (Word_Size): Change to Standard'Word_Size. 192 (Memory_Size): Change to 2 ** Word_Size. 193 (Support_Atomic_Primitives): Set to True. 194 * system-linux-mips.ads: (Word_Size): Change to Standard'Word_Size. 195 (Memory_Size): Change to 2 ** Word_Size. 196 * system-linux-mipsel.ads (Word_Size): Change to Standard'Word_Size. 197 (Memory_Size): Change to 2 ** Word_Size. 198 * system-linux-s390.ads (Word_Size): Change to Standard'Word_Size. 199 (Memory_Size): Change to 2 ** Word_Size. 200 (Stack_Check_Probes): Set to True. 201 * system-linux-s390x.ads: Delete. 202 * system-linux-sparc.ads (Word_Size): Change to Standard'Word_Size. 203 (Memory_Size): Change to 2 ** Word_Size. 204 * system-linux-sparcv9.ads: Delete. 205 * system-linux-x86.ads (Word_Size): Change to Standard'Word_Size. 206 (Memory_Size): Change to 2 ** Word_Size. 207 * system-linux-x86_64.ads: Delete. 208 * system-mingw-x86_64.ads: Delete. 209 * system-mingw.ads (Word_Size): Change to Standard'Word_Size. 210 (Memory_Size): Change to 2 ** Word_Size. 211 * system-solaris-sparc.ads (Word_Size): Change to Standard'Word_Size. 212 (Memory_Size): Change to 2 ** Word_Size. 213 (Support_Atomic_Primitives): Set to True. 214 * system-solaris-sparcv9.ads: Delete. 215 * system-solaris-x86.ads (Word_Size): Change to Standard'Word_Size. 216 (Memory_Size): Change to 2 ** Word_Size. 217 * system-solaris-x86_64.ads: Delete. 218 2192016-10-17 Eric Botcazou <ebotcazou@adacore.com> 220 221 * system-darwin-ppc64.ads (Support_64_Bit_Divides): Delete. 222 * system-linux-armeb.ads (Support_64_Bit_Divides): Likewise. 223 * system-linux-mips.ads (Support_64_Bit_Divides): Likewise. 224 * system-linux-mips64el.ads (Support_64_Bit_Divides): Likewise. 225 * system-linux-mipsel.ads (Support_64_Bit_Divides): Likewise. 226 * system-linux-sparcv9.ads (Support_64_Bit_Divides): Likewise. 227 * system-rtems.ads (Support_64_Bit_Divides): Likewise. 228 2292016-10-16 Eric Botcazou <ebotcazou@adacore.com> 230 231 * gcc-interface/misc.c (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS):Define. 232 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Deal with 233 a zero TARGET_CUSTOM_FUNCTION_DESCRIPTORS specially for Code_Address. 234 Otherwise, if TARGET_CUSTOM_FUNCTION_DESCRIPTORS is positive, set 235 FUNC_ADDR_BY_DESCRIPTOR for 'Access/'Unrestricted_Access of nested 236 subprograms if the type can use an internal representation. 237 (call_to_gnu): Likewise, but set CALL_EXPR_BY_DESCRIPTOR on indirect 238 calls if the type can use an internal representation. 239 2402016-10-16 Eric Botcazou <ebotcazou@adacore.com> 241 242 * system-aix.ads (Always_Compatible_Rep): Change to False. 243 * system-aix64.ads (Always_Compatible_Rep): Likewise. 244 * system-hpux-ia64.ads (Always_Compatible_Rep): Likewise. 245 * system-hpux.ads (Always_Compatible_Rep): Likewise. 246 * system-linux-alpha.ads (Always_Compatible_Rep): Likewise. 247 * system-linux-hppa.ads (Always_Compatible_Rep): Likewise. 248 * system-linux-ia64.ads (Always_Compatible_Rep): Likewise. 249 * system-linux-mips.ads (Always_Compatible_Rep): Likewise. 250 * system-linux-mips64el.ads (Always_Compatible_Rep): Likewise. 251 * system-linux-mipsel.ads (Always_Compatible_Rep): Likewise. 252 * system-linux-s390.ads (Always_Compatible_Rep): Likewise. 253 * system-linux-s390x.ads (Always_Compatible_Rep): Likewise. 254 * system-linux-sh4.ads (Always_Compatible_Rep): Likewise. 255 * system-linux-sparc.ads (Always_Compatible_Rep): Likewise. 256 * system-linux-sparcv9.ads (Always_Compatible_Rep): Likewise. 257 * system-rtems.ads (Always_Compatible_Rep): Likewise. 258 2592016-10-14 Eric Botcazou <ebotcazou@adacore.com> 260 261 PR ada/77968 262 * gcc-interface/utils.c (create_var_decl): Do not clear TREE_READONLY 263 in LTO mode for an external variable. 264 (can_materialize_object_renaming_p): Move up. 265 2662016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com> 267 268 * gcc-interface/utils2.c: Include memmodel.h. 269 2702016-10-13 Hristian Kirtchev <kirtchev@adacore.com> 271 272 * sem_ch6.adb (Analyze_Expression_Function): 273 Remove the aspects of the original expression function has been 274 rewritten into a subprogram declaration or a body. Reinsert the 275 aspects once they have been analyzed. 276 2772016-10-13 Tristan Gingold <gingold@adacore.com> 278 279 * exp_ch9.adb (Expand_N_Asynchronous_Select): Return immediately 280 on restricted profile. 281 2822016-10-13 Javier Miranda <miranda@adacore.com> 283 284 * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Register the 285 pragma for its validation after the backend has been called only if 286 its expression has some occurrence of attributes 'size or 'alignment 287 * table.ads (Release_Threshold): New formal. 288 (Release): Adding documentation of its new functionality. 289 * table.adb (Release): Extend its functionality with a 290 Release_Threshold. 291 * nlists.adb (Next_Node table): Set its Release_Threshold. 292 * atree.adb (Orig_Nodes table): Set its Release_Threshold. 293 * atree.ads (Nodes table): Set its Release_Threshold. 294 (Flags table): Set its Release_Threshold. 295 * alloc.ads (Nodes_Release_Threshold): New constant declaration. 296 (Orig_Nodes_Release_Threshold): New constant declaration. 297 * debug.adb (switch d.9): Left free. 298 * gnat1drv.adb (Post_Compilation_Validation_Checks): Enable 299 validation of pragmas Compile_Time_Error and Compile_Time_Warning. 300 3012016-10-13 Hristian Kirtchev <kirtchev@adacore.com> 302 303 * sem_ch6.adb (Create_Extra_Formals): Generate 304 an Itype reference for the object extra formal in case the 305 subprogram is called within the same or nested scope. 306 3072016-10-13 Claire Dross <dross@adacore.com> 308 309 * sem_ch5.adb (Analyze_Iterator_Specification): 310 Also create a renaming in GNATprove mode. 311 3122016-10-13 Ed Schonberg <schonberg@adacore.com> 313 314 * freeze.adb (Freeze_Fixed_Point_Type): in SPARK mode, the 315 given bounds of the type must be strictly representable, and the 316 range reduction by one delta ("shaving") allowed by the Ada RM, 317 is not applicable in SPARK. 318 3192016-10-13 Javier Miranda <miranda@adacore.com> 320 321 * debug.adb (switch d.9): Used to temporarily disable the support 322 needed for this enhancement since it causes regressions with 323 large sources. 324 * gnat1drv.adb (Post_Compilation_Validation_Checks): Temporarily 325 leave the validation of pragmas Compile_Time_Warning and 326 Compile_Time_Error under control of -gnatd.9/ 327 3282016-10-13 Hristian Kirtchev <kirtchev@adacore.com> 329 330 * sem_ch10.adb (Entity_Needs_Body): A generic 331 subprogram renaming needs a body if the renamed unit is declared 332 outside the current compilation unit. 333 3342016-10-13 Hristian Kirtchev <kirtchev@adacore.com> 335 336 * sinfo.ads, sem_ch12.adb, sem.adb, expander.adb, sem_res.ads, 337 sem_ch4.adb, sem_ch8.adb, s-memory.adb: Minor reformatting. 338 3392016-10-13 Vincent Celier <celier@adacore.com> 340 341 * gnatcmd.adb: Delete all temporary files when invoked as gnat 342 list -V -P ... 343 3442016-10-13 Ed Falis <falis@adacore.com> 345 346 * i-vxinco.adb, i-vxinco.ads: New files. 347 * impunit.adb: add i-vxinco.ads. 348 * s-interr-vxworks.adb: add hook for user interrupt connection routine. 349 3502016-10-13 Ed Falis <falis@adacore.com> 351 352 * s-interr-hwint.adb, s-interr-vxworks.adb: Rename s-interr-hwint.adb 353 to s-interr-vxworks.adb. 354 3552016-10-13 Gary Dismukes <dismukes@adacore.com> 356 357 * exp_ch7.adb, einfo.ads, sem_prag.adb, sem_prag.ads, sem.ads, 358 sem_attr.adb, sem_case.adb, sem_ch13.ads: Minor typo fixes and 359 reformatting. 360 3612016-10-13 Javier Miranda <miranda@adacore.com> 362 363 * sem_prag.ads (Process_Compile_Time_Warning_Or_Error): New 364 overloaded subprogram that factorizes code executed as part 365 of the regular processing of these pragmas and as part of its 366 validation after invoking the backend. 367 * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): New 368 subprogram. 369 (Process_Compile_Time_Warning_Or_Error): If the 370 condition is known at compile time then invoke the new overloaded 371 subprogram; otherwise register the pragma in a table to validate 372 it after invoking the backend. 373 * sem.ads, sem.adb (Unlock): New subprogram. 374 * sem_attr.adb (Analyze_Attribute [Size]): If we are processing 375 pragmas Compile_Time_Warning and Compile_Time_Errors after the 376 backend has been called then evaluate this attribute if 'Size 377 is known at compile time. 378 * gnat1drv.adb (Post_Compilation_Validation_Checks): Validate 379 compile time warnings and errors. 380 * sem_ch13.ads, sem_ch13.adb (Validate_Compile_Time_Warning_Error): 381 New subprogram. 382 (Validate_Compile_Time_Warning_Errors): New subprogram. 383 3842016-10-13 Yannick Moy <moy@adacore.com> 385 386 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Adapt to 387 optional refinement for abstract states with only partial refinement 388 visible. 389 3902016-10-13 Justin Squirek <squirek@adacore.com> 391 392 * sem_ch13.adb: Minor correction in comment in 393 Analyze_Aspect_Specifications 394 * sem_prag.adb: Minor reformatting. 395 3962016-10-13 Thomas Quinot <quinot@adacore.com> 397 398 * s-stratt-xdr.adb: Disable compiler unit warnings. 399 4002016-10-13 Ed Schonberg <schonberg@adacore.com> 401 402 * sem_ch3.adb (Visible_Component): In an instance body, check 403 whether the component may be hidden in a selected component by 404 a homonym that is a primitive operation of the type of the prefix. 405 4062016-10-13 Jakub Jelinek <jakub@redhat.com> 407 408 PR target/77957 409 * gcc-interface/misc.c (LANG_HOOKS_GETDECLS): Use hook_tree_void_null 410 instead of lhd_return_null_tree_v. 411 4122016-10-12 Yannick Moy <moy@adacore.com> 413 414 * einfo.adb, einfo.ads (Partial_Refinement_Constituents): Take 415 into account constituents that are themselves abstract states 416 with full or partial refinement visible. 417 * sem_prag.adb (Find_Encapsulating_State): Move function 418 to library-level, to share between subprograms. 419 (Analyze_Refined_Global_In_Decl_Part): Use 420 Find_Encapsulating_State to get relevant encapsulating state. 421 4222016-10-12 Arnaud Charlet <charlet@adacore.com> 423 424 * gnat1drv.adb: Fix minor typo. 425 4262016-10-12 Yannick Moy <moy@adacore.com> 427 428 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Adapt checking 429 for optional refinement of abstract state with partial 430 visible refinement. 431 (Analyze_Refined_Global_In_Decl_Part): Adapt checking for optional 432 refinement of abstract state with partial visible refinement. Implement 433 new rules in SPARK RM 7.2.4 related to optional refinement. 434 Also fix the missing detection of missing items. 435 4362016-10-12 Hristian Kirtchev <kirtchev@adacore.com> 437 438 * einfo.adb Add new usage for Elist29 and Node35. 439 (Anonymous_Designated_Type): New routine. 440 (Anonymous_Master): Removed. 441 (Anonymous_Masters): New routine. 442 (Set_Anonymous_Designated_Type): New routine. 443 (Set_Anonymous_Master): Removed. 444 (Set_Anonymous_Masters): New routine. 445 (Write_Field29_Name): Add output for Anonymous_Masters. 446 (Write_Field35_Name): Remove the output for Anonymous_Master. Add 447 output for Anonymous_Designated_Type. 448 * einfo.ads Remove attribute Anonymous_Master along with 449 usage in entities. Add attributes Anonymous_Designated_Type 450 and Anonymous_Masters along with usage in entities. 451 (Anonymous_Designated_Type): New routine along with pragma Inline. 452 (Anonymous_Master): Removed along with pragma Inline. 453 (Anonymous_Masters): New routine along with pragma Inline. 454 (Set_Anonymous_Designated_Type): New routine along with pragma Inline. 455 (Set_Anonymous_Master): Removed along with pragma Inline. 456 (Set_Anonymous_Masters): New routine along with pragma Inline. 457 * exp_ch7.adb (Build_Anonymous_Master): Reuse an anonymous master 458 defined in the same unit if it services the same designated 459 type, otherwise create a new one. 460 (Create_Anonymous_Master): Reimplemented. 461 (Current_Anonymous_Master): New routine. 462 (In_Subtree): Removed. 463 4642016-10-12 Ed Schonberg <schonberg@adacore.com> 465 466 * sem_prag.adb (Analyze_Pragma, case Dynamic_Predicate): 467 Check properly whether there is an explicit assertion policy 468 for predicate checking, even in the presence of a general Ignore 469 assertion policy. 470 4712016-10-12 Steve Baird <baird@adacore.com> 472 473 * sem.adb (Walk_Library_Items): Cope with ignored ghost units. 474 4752016-10-12 Ed Schonberg <schonberg@adacore.com> 476 477 * lib-writ.adb (Write_ALI): Removal of unused file entries from 478 dependency list must be performed before the list is sorted, 479 so that the dependency number of other files is properly set-up 480 for use in tools that relate entity information to the unit in 481 which they are declared. 482 4832016-10-12 Hristian Kirtchev <kirtchev@adacore.com> 484 485 * exp_aggr.adb (Initialize_Ctrl_Array_Component): 486 Create a copy of the initialization expression to avoid sharing 487 it between multiple components. 488 4892016-10-12 Yannick Moy <moy@adacore.com> 490 491 * einfo.adb, einfo.ads (Has_Partial_Visible_Refinement): New flag 492 in abtract states. 493 (Has_Non_Null_Visible_Refinement): Return true for patial refinement. 494 (Partial_Refinement_Constituents): New function returns the full or 495 partial refinement constituents depending on scope. 496 * sem_ch3.adb (Analyze_Declarations): Remove partial visible 497 refinements when exiting the scope of a package spec or body 498 and those partial refinements are not in scope afterwards. 499 * sem_ch7.adb, sem_ch7.ads (Install_Partial_Declarations): Mark 500 abstract states of parent units with partial refinement so that 501 it is visible. 502 * sem_prag.adb (Analyze_Part_Of_In_Decl_Part): Mark enclosing 503 abstract state if any as having partial refinement in that scope. 504 (Analyze_Refined_Global_In_Decl_Part): Check constituent usage 505 based on full or partial refinement depending on scope. 506 5072016-10-12 Ed Schonberg <schonberg@adacore.com> 508 509 * exp_ch4.adb (Expand_N_Type_Conversion): If the target type 510 has an invariant aspect, insert invariant call at the proper 511 place in the code rather than rewriting the expression as an 512 expression with actions, to prevent spurious semantic errors on 513 the rewritten conversion when it is the object in a renaming. 514 5152016-10-12 Hristian Kirtchev <kirtchev@adacore.com> 516 517 * exp_ch5.adb, sem_ch3.adb, exp_ch9.adb, a-tags.adb, sem_prag.adb, 518 sem_ch12.adb, xref_lib.adb, a-strunb-shared.adb, rtsfind.adb, 519 freeze.adb, sem_attr.adb, sem_case.adb, exp_ch4.adb, ghost.adb, 520 exp_ch6.adb, sem_ch4.adb, restrict.adb, s-os_lib.adb: Minor 521 reformatting. 522 5232016-10-12 Justin Squirek <squirek@adacore.com> 524 525 * sem_ch10.adb (Remove_Limited_With_Clause): Add a check to 526 detect accidental visibility. 527 5282016-10-12 Ed Schonberg <schonberg@adacore.com> 529 530 * exp_ch4.adb (Expand_Allocator): If the expression is a qualified 531 expression, add a predicate check after the constraint check. 532 * sem_res.adb (Resolve_Qualified_Expression): If context is an 533 allocator, do not apply predicate check, as it will be done when 534 allocator is expanded. 535 5362016-10-12 Bob Duff <duff@adacore.com> 537 538 * xref_lib.adb: Use renamings-of-slices to ensure 539 that all references to Tables are properly bounds checked (when 540 checks are turned on). 541 * g-dyntab.ads, g-dyntab.adb: Default-initialize the array 542 components, so we don't get uninitialized pointers in case 543 of Tables containing access types. Misc cleanup of the code 544 and comments. 545 5462016-10-12 Ed Schonberg <schonberg@adacore.com> 547 548 * sem_attr.adb (Analyze_Attribute, case 'Type_Key): Implement 549 functionality of attribute, to provide a reasonably unique key 550 for a given type and detect any changes in the semantics of the 551 type or any of its subcomponents from version to version. 552 5532016-10-12 Bob Duff <duff@adacore.com> 554 555 * sem_case.adb (Check_Choice_Set): Separate 556 checking for duplicates out into a separate pass from checking 557 full coverage, because the check for duplicates does not depend 558 on predicates. Therefore, we shouldn't do it separately for the 559 predicate vs. no-predicate case; we should share code. The code 560 for the predicate case was wrong. 561 5622016-10-12 Jerome Lambourg <lambourg@adacore.com> 563 564 * init.c: Make sure to call finit on x86_64-vx7 to reinitialize 565 the FPU unit. 566 5672016-10-12 Arnaud Charlet <charlet@adacore.com> 568 569 * lib-load.adb (Load_Unit): Generate an error message even when 570 Error_Node is null. 571 5722016-10-12 Ed Schonberg <schonberg@adacore.com> 573 574 * lib-writ.adb (Write_ALI): Disable optimization related to transitive 575 limited_with clauses for now. 576 5772016-10-12 Javier Miranda <miranda@adacore.com> 578 579 * sem_attr.adb (Analyze_Attribute_Old_Result): Generating C 580 code handle 'old located in inlined _postconditions procedures. 581 (Analyze_Attribute [Attribute_Result]): Handle 'result when 582 rewriting the attribute as a reference to the formal parameter 583 _Result of inlined _postconditions procedures. 584 5852016-10-12 Tristan Gingold <gingold@adacore.com> 586 587 * s-rident.ads (Profile_Info): Remove 588 Max_Protected_Entries restriction from GNAT_Extended_Ravenscar 589 * sem_ch9.adb (Analyze_Protected_Type_Declaration): 590 Not a controlled type on restricted runtimes. 591 5922016-10-12 Gary Dismukes <dismukes@adacore.com> 593 594 * sem_ch3.adb (Derive_Subprogram): Add test 595 for Is_Controlled of Parent_Type when determining whether an 596 inherited subprogram with one of the special names Initialize, 597 Adjust, or Finalize should be derived with its normal name even 598 when inherited as a private operation (which would normally 599 result in the inherited operation having a special "hidden" name). 600 6012016-10-12 Ed Schonberg <schonberg@adacore.com> 602 603 * sem_res.adb (Resolve_Call): If a function call returns a 604 limited view of a type replace it with the non-limited view, 605 which must be available when compiling call. This was already 606 done elsewhere for non-overloaded calls, but needs to be done 607 after resolution if function name is overloaded. 608 6092016-10-12 Javier Miranda <miranda@adacore.com> 610 611 * a-tags.adb (IW_Membership [private]): new overloaded 612 subprogram that factorizes the code needed to check if a 613 given type implements an interface type. 614 (IW_Membership 615 [public]): invoke the new internal IW_Membership function. 616 (Is_Descendant_At_Same_Level): Fix this routine to implement RM 617 3.9 (12.3/3) 618 6192016-10-12 Tristan Gingold <gingold@adacore.com> 620 621 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Add support 622 for a secondary procedure in case of missing Ada.Calendar.Delays 623 * rtsfind.ads (RTU_Id): Add System_Relative_Delays. 624 (RE_Id): Add RO_RD_Delay_For. 625 * rtsfind.adb (Output_Entity_Name): Handle correctly units RO_XX. 626 * s-rident.ads: Remove No_Relative_Delays 627 restriction for GNAT_Extended_Ravenscar. 628 6292016-10-12 Ed Schonberg <schonberg@adacore.com> 630 631 * sem_elab.adb (Within_Initial_Condition): When deternining 632 the context of the expression, use the original node if it is 633 a pragma, because Check pragmas are rewritten as conditionals 634 when assertions are not enabled. 635 6362016-10-12 Bob Duff <duff@adacore.com> 637 638 * spitbol_table.ads, spitbol_table.adb (Adjust, Finalize): Add 639 "overriding". 640 6412016-10-12 Bob Duff <duff@adacore.com> 642 643 * a-strunb-shared.ads, a-strunb-shared.adb (Finalize): 644 Make sure Finalize is idempotent. 645 (Unreference): Check for 646 Empty_Shared_String, in case the reference count of the empty 647 string wraps around. 648 Also add "not null" in various places that can't be null. 649 6502016-10-12 Jerome Lambourg <lambourg@adacore.com> 651 652 * init.c: Fix sigtramp with the x86_64-vx7-vxsim target on 653 Windows host. 654 6552016-10-12 Vadim Godunko <godunko@adacore.com> 656 657 * s-os_lib.ads (Is_Owner_Readable_File): Renamed from 658 Is_Readable_File. 659 (Is_Owner_Writable_File): Renamed from Is_Writable_File. 660 (Is_Readable_File): Renames Is_Read_Accessible_File. 661 (Is_Writable_File): Renames Is_Write_Accessible_File. 662 6632016-10-12 Ed Schonberg <schonberg@adacore.com> 664 665 * sem_ch12.adb (Check_Formal_Package_Instance): Skip an internal 666 formal entity without a parent only if the corresponding actual 667 entity has a different kind. 668 * exp_ch9.adb (Build_Class_Wide_Master): If the master is 669 declared locally, insert the renaming declaration after the 670 master declaration, to prevent access before elaboration in gigi. 671 6722016-10-12 Ed Schonberg <schonberg@adacore.com> 673 674 * contracts.adb (Analyze_Contracts): For a type declaration, analyze 675 an iterable aspect when present. 676 6772016-10-12 Ed Schonberg <schonberg@adacore.com> 678 679 * sem_ch12.adb (Check_Formal_Package_Instance): Handle properly 680 an instance of a formal package with defaults, when defaulted 681 parameters include tagged private types and array types. 682 6832016-10-12 Eric Botcazou <ebotcazou@adacore.com> 684 685 PR ada/64057. 686 * exp_ch5.adb (Is_Non_Local_Array): Return true for every array 687 that is not a component or slice of an entity in the current 688 scope. 689 6902016-10-12 Tristan Gingold <gingold@adacore.com> 691 692 * restrict.ads, restrict.adb (Restricted_Profile): Adjust 693 comment, use Restricted_Tasking to compare restrictions. 694 * s-rident.ads (Profile_Name): Add Restricted_Tasking and 695 reorder literals. 696 (Profile_Info): Set restrictions for Restricted_Tasking. 697 6982016-10-12 Ed Schonberg <schonberg@adacore.com> 699 700 * sem_ch3.adb (Analyze_Full_Type_Declaration): Set Ghost status 701 of type before elaborating inherited operations, so that the 702 Ghost status is set properly for them. 703 * ghost.adb (Check_Ghost_Overriding): A ghost subprogram can 704 override an abstract subprogram coming from an interface 705 operation. 706 7072016-10-11 Eric Botcazou <ebotcazou@adacore.com> 708 709 * system-linux-armeb.ads (Backend_Overflow_Checks): Change to True. 710 * system-linux-mips.ads (Backend_Overflow_Checks): Likewise. 711 * system-linux-mips64el.ads (Backend_Overflow_Checks): Likewise. 712 * system-linux-mipsel.ads (Backend_Overflow_Checks): Likewise. 713 * system-linux-sparcv9.ads (Backend_Overflow_Checks): Likewise. 714 * system-rtems.ads (Backend_Overflow_Checks): Likewise. 715 7162016-10-11 Andris Pavenis <andris.pavenis@iki.fi> 717 718 * adaint.c: Include process.h, signal.h, dir.h and utime.h for DJGPP. 719 ISALPHA: include <ctype.h> and define to isalpha for DJGPP when IN_RTS 720 is defined. 721 (DIR_SEPARATOR) define to '\\' for DJGPP. 722 (__gnat_get_file_names_case_sensitive): Return 0 for DJGPP unless 723 overriden in environment. 724 (__gnat_is_absolute_path): Support MS-DOS absolute paths for DJGPP. 725 (__gnat_portable_spawn): Use spewnvp for DJGPP. 726 (__gnat_portable_no_block_spawn): Use spawnvp for DJGPP. 727 (__gnat_portable_wait): Return 0 for DJGPP. 728 7292016-10-11 Andris Pavenis <andris.pavenis@iki.fi> 730 731 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS): Define for DJGPP. 732 (EH_MECHANISM): Define to -gcc for DJGPP. 733 * system-djgpp.ads: New file. 734 7352016-10-11 Andris Pavenis <andris.pavenis@iki.fi> 736 737 * ctrl_c.c: Do not use macro SA_RESTART for DJGPP. 738 * gsocket.h: Do not support sockets for DJGPP. 739 * init.c (__gnat_install_handler): Implememt for DJGPP. 740 * sysdep.c: Include <io.h> for DJGPP. 741 (_setmode): Define to setmode for DJGPP. 742 (__gnat_set_mode): Add implementation for DJGPP. 743 (__gnat_localtime_tzoff): Use localtime_r for DJGPP. 744 * terminals.c: Add DJGPP to list of unsupported platforms. 745 * env.c (__gnat_clearenv): Use _gnat_unsetenv on all entries for DJGPP. 746 7472016-10-11 Pierre-Marie de Rodat <derodat@adacore.com> 748 749 * exp_dbug.adb (Debug_Renaming_Declaration): Process underlying types. 750 Emit GNAT encodings for object renamings involving record components 751 whose normalized bit offset is not null. 752 * uintp.h (UI_No_Uint): Declare. 753 * gcc-interface/gigi.h (can_materialize_object_renaming_p): Likewise. 754 * gcc-interface/utils.c (can_materialize_object_renaming_p): New 755 function. 756 * gcc-interface/trans.c (gnat_to_gnu) <N_Object_Renaming_Declaration>: 757 In code generation mode, materialize all renamings as long as they need 758 debug info and we are not optimizing. 759 7602016-10-11 Pierre-Marie de Rodat <derodat@adacore.com> 761 762 * gcc-interface/utils2.c (build_binary_op): Add a NO_FOLD argument. 763 Disable folding when it is true. 764 * gcc-interface/gigi.h (choices_to_gnu): Remove declaration. 765 (build_binary_op): Update signature and comment. 766 * gcc-interface/decl.c (choices_to_gnu): Make static. Disable 767 folding in calls to build_binary_op. 768 7692016-10-11 Tristan Gingold <gingold@adacore.com> 770 771 * fe.h (Constant_Value): Declare. 772 * gcc-interface/decl.c (compile_time_known_address_p): Also consider 773 references to constants. 774 7752016-10-11 Eric Botcazou <ebotcazou@adacore.com> 776 777 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_Add>: Adjust comment. 778 <N_Op_Minus>: Add comment and missing guard. 779 * gcc-interface/trans.c (build_binary_op_trapv): Use an explicit test. 780 7812016-10-11 Eric Botcazou <ebotcazou@adacore.com> 782 783 * gcc-interface/utils.c (type_unsigned_for_rm): New predicate. 784 (make_type_from_size): Use it. 785 (unchecked_convert): Likewise. Do not skip the extension step if the 786 source type is not integral. 787 7882016-10-11 Eric Botcazou <ebotcazou@adacore.com> 789 Tristan Gingold <gingold@adacore.com> 790 791 * system-linux-ppc64.ads: Delete. 792 * system-linux-ppc.ads: Make 32-bit/64-bit neutral. 793 * gcc-interface/Makefile.in (PowerPC/Linux): Simplify. 794 7952016-10-10 Eric Botcazou <ebotcazou@adacore.com> 796 797 * gcc-interface/decl.c (gnat_to_gnu_entity): Put volatile qualifier 798 on types at the very end of the processing. 799 (gnat_to_gnu_param): Remove redundant test. 800 (change_qualified_type): Do nothing for unconstrained array types. 801 8022016-10-10 Eric Botcazou <ebotcazou@adacore.com> 803 804 * gcc-interface/utils2.c (find_common_type): Do not return the LHS type 805 if it's an array with non-constant lower bound and the RHS type is an 806 array with a constant one. 807 8082016-10-10 Eric Botcazou <ebotcazou@adacore.com> 809 810 * gcc-interface/utils.c (convert): For a biased input type, convert the 811 bias itself to the base type before adding it. 812 8132016-10-08 Eric Botcazou <ebotcazou@adacore.com> 814 815 * gcc-interface/utils.c (convert) <VECTOR_CST>: Add missing break. 816 817 Revert 818 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 819 820 * gcc-interface/decl.c: Fix fall through comment formatting. 821 * gcc-interface/misc.c: Likewise. 822 * gcc-interface/trans.c: Likewise. 823 * gcc-interface/utils.c: Likewise. 824 * gcc-interface/utils2.c: Likewise. 825 8262016-09-29 James Greenhalgh <james.greenhalgh@arm.com> 827 828 * gcc-interface/misc.c (gnat_post_options): Remove special case for 829 TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard. 830 8312016-09-27 Jakub Jelinek <jakub@redhat.com> 832 833 * terminals.c (is_gui_app): Remove break after return. 834 8352016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 836 837 * gcc-interface/decl.c: Fix fall through comment formatting. 838 * gcc-interface/misc.c: Likewise. 839 * gcc-interface/trans.c: Likewise. 840 * gcc-interface/utils.c: Likewise. 841 * gcc-interface/utils2.c: Likewise. 842 8432016-09-23 Jakub Jelinek <jakub@redhat.com> 844 845 * gcc-interface/decl.c (gnat_to_gnu_entity): Use 846 CONSTRUCTOR_NELTS (...) instead of 847 vec_safe_length (CONSTRUCTOR_ELTS (...)). 848 8492016-07-14 Eric Botcazou <ebotcazou@adacore.com> 850 851 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Also use 852 the void pointer type if the designated type is incomplete and has no 853 full view in LTO mode. 854 <E_Access_Protected_Subprogram_Type>: Adjust comment. 855 <E_Incomplete_Type>: Likewise. 856 * gcc-interface/trans.c (Call_to_gnu): Do not convert to the type of 857 the actual if it is a dummy type. 858 8592016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de> 860 861 * gcc-interface/ada-tree.h (TYPE_ALIGN_OK): Define. 862 * gcc-interface/trans.c (Attribute_to_gnu): Adjust call to 863 get_inner_reference. 864 * gcc-interface/utils2.c (build_unary_op): Likewise. 865 8662016-07-11 Eric Botcazou <ebotcazou@adacore.com> 867 868 * gcc-interface/trans.c (add_decl_expr): Minor tweak. 869 * gcc-interface/utils.c (create_var_decl): For an external variable, 870 also clear TREE_READONLY in LTO mode if the initializer is not a valid 871 constant and set DECL_READONLY_ONCE_ELAB instead. 872 8732016-07-11 Eric Botcazou <ebotcazou@adacore.com> 874 875 PR ada/71817 876 * adaint.c (__gnat_is_read_accessible_file): Add parentheses. 877 (__gnat_is_write_accessible_file): Likewise. 878 8792016-07-07 Ed Schonberg <schonberg@adacore.com> 880 881 * exp_ch6.adb (Expand_Internal_Init_Call): Subsidiary procedure 882 to Expand_Protected_ Subprogram_Call, to handle properly a 883 call to a protected function that provides the initialization 884 expression for a private component of the same protected type. 885 * sem_ch9.adb (Analyze_Protected_Definition): Layout must be 886 applied to itypes generated for a private operation of a protected 887 type that has a formal of an anonymous access to subprogram, 888 because these itypes have no freeze nodes and are frozen in place. 889 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a 890 protected type and it is not a current instance, do not examine 891 the first private component of the type. 892 8932016-07-07 Arnaud Charlet <charlet@adacore.com> 894 895 * exp_imgv.adb, g-dynhta.adb, s-regexp.adb, s-fatgen.adb, s-poosiz.adb: 896 Minor removal of extra whitespace. 897 * einfo.ads: minor removal of repeated "as" in comment 898 8992016-07-07 Vadim Godunko <godunko@adacore.com> 900 901 * adaint.c: Complete previous change. 902 9032016-07-07 Vadim Godunko <godunko@adacore.com> 904 905 * adainit.h, adainit.c (__gnat_is_read_accessible_file): New 906 subprogram. 907 (__gnat_is_write_accessible_file): New subprogram. 908 * s-os_lib.ads, s-os_lib.adb (Is_Read_Accessible_File): New subprogram. 909 (Is_Write_Accessible_File): New subprogram. 910 9112016-07-07 Justin Squirek <squirek@adacore.com> 912 913 * sem_ch12.adb (Install_Body): Minor refactoring in the order 914 of local functions. 915 (In_Same_Scope): Change loop condition to be more expressive. 916 9172016-07-07 Gary Dismukes <dismukes@adacore.com> 918 919 * sem_ch3.adb, sem_prag.adb, sem_prag.ads, prj-ext.adb, freeze.adb, 920 sem_attr.adb: Minor reformatting, fix typos. 921 9222016-07-07 Justin Squirek <squirek@adacore.com> 923 924 * sem_ch12.adb (In_Same_Scope): Created this function to check 925 a generic package definition against an instantiation for scope 926 dependancies. 927 (Install_Body): Add function In_Same_Scope and 928 amend conditional in charge of delaying the package instance. 929 (Is_In_Main_Unit): Add guard to check if parent is present in 930 assignment of Current_Unit. 931 9322016-07-07 Eric Botcazou <ebotcazou@adacore.com> 933 934 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove redundant test, 935 adjust comments and formatting. 936 * sem_prag.adb (Inlining_Not_Possible): Do not test Front_End_Inlining 937 here but... 938 (Make_Inline): ...here before calling Inlining_Not_Possible instead. 939 (Set_Inline_Flags): Remove useless test. 940 (Analyze_Pragma) <Pragma_Inline>: Add comment about -gnatn switch. 941 9422016-07-07 Ed Schonberg <schonberg@adacore.com> 943 944 * sem_prag.ads, sem_prag.adb (Build_Classwide_Expression): Include 945 overridden operation as parameter, in order to map formals of 946 the overridden and overring operation properly prior to rewriting 947 the inherited condition. 948 * freeze.adb (Check_Inherited_Cnonditions): Change call to 949 Build_Class_Wide_Expression accordingly. In Spark_Mode, add 950 call to analyze the contract of the parent operation, prior to 951 mapping formals between operations. 952 9532016-07-07 Arnaud Charlet <charlet@adacore.com> 954 955 * adabkend.adb (Scan_Back_End_Switches): Ignore -o/-G switches 956 as done in back_end.adb. 957 (Scan_Compiler_Args): Remove special case for CodePeer/SPARK, no longer 958 needed, and prevents proper handling of multi-unit sources. 959 9602016-07-07 Thomas Quinot <quinot@adacore.com> 961 962 * g-sechas.adb, g-sechas.ads (GNAT.Secure_Hashes.H): Add Hash_Stream 963 type with Write primitive calling Update on the underlying context 964 (and dummy Read primitive raising P_E). 965 9662016-07-07 Thomas Quinot <quinot@adacore.com> 967 968 * sem_ch13.adb: Minor reformatting. 969 9702016-07-07 Thomas Quinot <quinot@adacore.com> 971 972 * g-socket.ads: Document performance consideration for stream 973 wrapper. 974 9752016-07-07 Arnaud Charlet <charlet@adacore.com> 976 977 * osint-c.ads (Set_File_Name): Clarify spec. 978 9792016-07-07 Eric Botcazou <ebotcazou@adacore.com> 980 981 * freeze.adb: Reenable code. 982 9832016-07-07 Yannick Moy <moy@adacore.com> 984 985 * sem_ch6.adb (Process_Formals): Set ghost flag 986 on formal entities of ghost subprograms. 987 * ghost.adb (Check_Ghost_Context.Is_OK_Ghost_Context): Accept ghost 988 entities in use type clauses. 989 9902016-07-06 Javier Miranda <miranda@adacore.com> 991 992 * sem_ch6.adb (Check_Inline_Pragma): if the subprogram has no spec 993 then move its aspects to the internally built subprogram spec. 994 9952016-07-06 Yannick Moy <moy@adacore.com> 996 997 * sem_ch6.adb (Analyze_Expression_Function): Mark body of 998 expression function as ghost if needed when created. 999 * sem_prag.adb (Analyze_Pragma.Process_Inline.Set_Inline_Flags): 1000 Remove special case. 1001 10022016-07-06 Arnaud Charlet <charlet@adacore.com> 1003 1004 * lib.adb (Check_Same_Extended_Unit): Complete previous change. 1005 * sem_intr.adb (Errint): New parameter Relaxed. Refine previous 1006 change to only disable errors selectively. 1007 * sem_util.adb: minor style fix in object declaration 1008 10092016-07-06 Yannick Moy <moy@adacore.com> 1010 1011 * sem_warn.adb (Check_Infinite_Loop_Warning.Find_Var): Special case a 1012 call to a volatile function, so that it does not lead to a warning in 1013 that case. 1014 10152016-07-06 Hristian Kirtchev <kirtchev@adacore.com> 1016 1017 * sem_ch12.adb, sem_ch4.adb, sem_ch6.adb: Minor reformatting. 1018 10192016-07-06 Hristian Kirtchev <kirtchev@adacore.com> 1020 1021 * gnat1drv.adb: Code clean up. Do not emit any 1022 code generation errors when the unit is ignored Ghost. 1023 10242016-07-06 Ed Schonberg <schonberg@adacore.com> 1025 1026 * sem_eval.adb (Check_Non_Static_Context): If the expression 1027 is a real literal of a floating point type that is part of a 1028 larger expression and is not a static expression, transform it 1029 into a machine number now so that the rest of the computation, 1030 even if other components are static, is not evaluated with 1031 extra precision. 1032 10332016-07-06 Javier Miranda <miranda@adacore.com> 1034 1035 * sem_ch13.adb (Freeze_Entity_Checks): Undo previous patch and move the 1036 needed functionality to Analyze_Freeze_Generic_Entity. 1037 (Analyze_Freeze_Generic_Entity): If the entity is not already frozen 1038 and has delayed aspects then analyze them. 1039 10402016-07-06 Yannick Moy <moy@adacore.com> 1041 1042 * sem_prag.adb (Analyze_Pragma.Process_Inline.Set_Inline_Flags): 1043 Special case for unanalyzed body entity of ghost expression function. 1044 10452016-07-06 Javier Miranda <miranda@adacore.com> 1046 1047 * sem_ch7.adb (Analyze_Package_Specification): Insert its 1048 freezing nodes after the last declaration. Needed to ensure 1049 that global entities referenced in aspects of frozen types are 1050 properly handled. 1051 * freeze.adb (Freeze_Entity): Minor code reorganization to ensure 1052 that freezing nodes of generic packages are handled. 1053 * sem_ch13.adb (Freeze_Entity_Checks): Handle N_Freeze_Generic nodes. 1054 * sem_ch12.adb (Save_References_In_Identifier): Handle selected 1055 components which denote a named number that is constant folded 1056 in the analyzed copy of the tree. 1057 10582016-07-06 Hristian Kirtchev <kirtchev@adacore.com> 1059 1060 * exp_aggr.adb Remove with and use clauses for Exp_Ch11 and Inline. 1061 (Initialize_Array_Component): Protect the initialization 1062 statements in an abort defer / undefer block when the associated 1063 component is controlled. 1064 (Initialize_Record_Component): Protect the initialization statements 1065 in an abort defer / undefer block when the associated component is 1066 controlled. 1067 (Process_Transient_Component_Completion): Use Build_Abort_Undefer_Block 1068 to create an abort defer / undefer block. 1069 * exp_ch3.adb Remove with and use clauses for Exp_ch11 and Inline. 1070 (Default_Initialize_Object): Use Build_Abort_Undefer_Block to 1071 create an abort defer / undefer block. 1072 * exp_ch5.adb (Expand_N_Assignment_Statement): Mark an abort 1073 defer / undefer block as such. 1074 * exp_ch9.adb (Find_Enclosing_Context): Do not consider an abort 1075 defer / undefer block as a suitable context for an activation 1076 chain or a master. 1077 * exp_util.adb Add with and use clauses for Exp_Ch11. 1078 (Build_Abort_Undefer_Block): New routine. 1079 * exp_util.ads (Build_Abort_Undefer_Block): New routine. 1080 * sinfo.adb (Is_Abort_Block): New routine. 1081 (Set_Is_Abort_Block): New routine. 1082 * sinfo.ads New attribute Is_Abort_Block along with occurrences 1083 in nodes. 1084 (Is_Abort_Block): New routine along with pragma Inline. 1085 (Set_Is_Abort_Block): New routine along with pragma Inline. 1086 10872016-07-06 Justin Squirek <squirek@adacore.com> 1088 1089 * sem_ch4.adb (Analyze_One_Call): Add a conditional to handle 1090 disambiguation. 1091 10922016-07-06 Hristian Kirtchev <kirtchev@adacore.com> 1093 1094 * einfo.adb Flag252 is now used as Is_Finalized_Transient. Flag295 1095 is now used as Is_Ignored_Transient. 1096 (Is_Finalized_Transient): New routine. 1097 (Is_Ignored_Transient): New routine. 1098 (Is_Processed_Transient): Removed. 1099 (Set_Is_Finalized_Transient): New routine. 1100 (Set_Is_Ignored_Transient): New routine. 1101 (Set_Is_Processed_Transient): Removed. 1102 (Write_Entity_Flags): Output Flag252 and Flag295. 1103 * einfo.ads: New attributes Is_Finalized_Transient 1104 and Is_Ignored_Transient along with occurrences in 1105 entities. Remove attribute Is_Processed_Transient. 1106 (Is_Finalized_Transient): New routine along with pragma Inline. 1107 (Is_Ignored_Transient): New routine along with pragma Inline. 1108 (Is_Processed_Transient): Removed along with pragma Inline. 1109 (Set_Is_Finalized_Transient): New routine along with pragma Inline. 1110 (Set_Is_Ignored_Transient): New routine along with pragma Inline. 1111 (Set_Is_Processed_Transient): Removed along with pragma Inline. 1112 * exp_aggr.adb Add with and use clauses for Exp_Ch11 and Inline. 1113 (Build_Record_Aggr_Code): Change the handling 1114 of controlled record components. 1115 (Ctrl_Init_Expression): Removed. 1116 (Gen_Assign): Add new formal parameter In_Loop 1117 along with comment on usage. Remove local variables Stmt and 1118 Stmt_Expr. Change the handling of controlled array components. 1119 (Gen_Loop): Update the call to Gen_Assign. 1120 (Gen_While): Update the call to Gen_Assign. 1121 (Initialize_Array_Component): New routine. 1122 (Initialize_Ctrl_Array_Component): New routine. 1123 (Initialize_Ctrl_Record_Component): New routine. 1124 (Initialize_Record_Component): New routine. 1125 (Process_Transient_Component): New routine. 1126 (Process_Transient_Component_Completion): New routine. 1127 * exp_ch4.adb (Process_Transient_In_Expression): New routine. 1128 (Process_Transient_Object): Removed. Replace all existing calls 1129 to this routine with calls to Process_Transient_In_Expression. 1130 * exp_ch6.adb (Expand_Ctrl_Function_Call): Remove local constant 1131 Is_Elem_Ref. Update the comment on ignoring transients. 1132 * exp_ch7.adb (Process_Declarations): Do not process ignored 1133 or finalized transient objects. 1134 (Process_Transient_In_Scope): New routine. 1135 (Process_Transients_In_Scope): New routine. 1136 (Process_Transient_Objects): Removed. Replace all existing calls 1137 to this routine with calls to Process_Transients_In_Scope. 1138 * exp_util.adb (Build_Transient_Object_Statements): New routine. 1139 (Is_Finalizable_Transient): Do not consider a transient object 1140 which has been finalized. 1141 (Requires_Cleanup_Actions): Do not consider ignored or finalized 1142 transient objects. 1143 * exp_util.ads (Build_Transient_Object_Statements): New routine. 1144 * sem_aggr.adb: Major code clean up. 1145 * sem_res.adb: Update documentation. 1146 11472016-07-06 Ed Schonberg <schonberg@adacore.com> 1148 1149 * sem_ch3.adb (Analyze_Subtype_Declaration): For generated 1150 subtypes, such as actual subtypes of unconstrained formals, 1151 inherit predicate functions, if any, from the parent type rather 1152 than creating redundant new ones. 1153 11542016-07-06 Hristian Kirtchev <kirtchev@adacore.com> 1155 1156 * exp_attr.adb, sem_attr.adb, sem_ch13.adb: Minor reformatting. 1157 11582016-07-06 Arnaud Charlet <charlet@adacore.com> 1159 1160 * lib.adb (Check_Same_Extended_Unit): Prevent looping forever. 1161 * gnatbind.adb: Disable some consistency checks in codepeer mode, 1162 which are not needed. 1163 11642016-07-06 Ed Schonberg <schonberg@adacore.com> 1165 1166 * sem_ch12.adb (Check_Fixed_Point_Actual): Add a warning when 1167 a formal fixed point type is instantiated with a type that has 1168 a user-defined arithmetic operations, but the generic has no 1169 corresponding formal functions. This is worth a warning because 1170 of the special semantics of fixed-point operators. 1171 11722016-07-06 Bob Duff <duff@adacore.com> 1173 1174 * sem_attr.adb (Analyze_Attribute): Allow any expression of 1175 discrete type. 1176 * exp_attr.adb (Expand_N_Attribute_Reference): Change the 1177 constant-folding code to correctly handle cases newly allowed 1178 by Analyze_Attribute. 1179 11802016-07-05 Eric Botcazou <ebotcazou@adacore.com> 1181 1182 * gcc-interface/decl.c (gnat_to_gnu_entity): Invoke global_bindings_p 1183 last when possible. Do not call elaborate_expression_2 on offsets in 1184 local record types and avoid useless processing for constant offsets. 1185 11862016-07-04 Arnaud Charlet <charlet@adacore.com> 1187 1188 * gnat_rm.texi, gnat_ugn.texi, 1189 doc/gnat_ugn/gnat_project_manager.rst, 1190 doc/gnat_ugn/building_executable_programs_with_gnat.rst, 1191 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, 1192 doc/gnat_ugn/about_this_guide.rst, 1193 doc/gnat_ugn/platform_specific_information.rst, 1194 doc/gnat_ugn/tools_supporting_project_files.rst, 1195 doc/gnat_ugn/gnat_and_program_execution.rst, 1196 doc/gnat_ugn/gnat_utility_programs.rst, 1197 doc/gnat_ugn/the_gnat_compilation_model.rst, 1198 doc/gnat_rm/implementation_defined_attributes.rst, 1199 doc/gnat_rm/implementation_defined_pragmas.rst, 1200 doc/gnat_rm/representation_clauses_and_pragmas.rst, 1201 doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, 1202 doc/gnat_ugn.rst: Update documentation. 1203 12042016-07-04 Arnaud Charlet <charlet@adacore.com> 1205 1206 * gcc-interface/Makefile.in: Cleanups. 1207 12082016-07-04 Ed Schonberg <schonberg@adacore.com> 1209 1210 * sem_attr.adb (Analyze_Attribute_Old_Result): The attributes can 1211 appear in the postcondition of a subprogram renaming declaration, 1212 when the renamed entity is an attribute reference that is a 1213 function (such as 'Value). 1214 * sem_attr.adb (Eval_Attribute): It doesn't 1215 need to be static, just known at compile time, so use 1216 Compile_Time_Known_Value instead of Is_Static_Expression. 1217 This is an efficiency improvement over the previous bug fix. 1218 * sem_ch13.adb (Analyze_One_Aspect): Use Original_Node to detect 1219 illegal aspects on subprogram renaming declarations that may 1220 have been rewritten as bodies. 1221 12222016-07-04 Arnaud Charlet <charlet@adacore.com> 1223 1224 * sem_intr.adb (Errint): Do not emit error message in 1225 Relaxed_RM_Semantics mode. 1226 12272016-07-04 Bob Duff <duff@adacore.com> 1228 1229 * sem_attr.adb (Eval_Attribute): The code was assuming 1230 that X'Enum_Rep, where X denotes a constant, can be constant 1231 folded. Fix it so it makes that assumption only when X denotes 1232 a STATIC constant. 1233 12342016-07-04 Ed Schonberg <schonberg@adacore.com> 1235 1236 * sem_ch4.adb (Compatible_Types_In_Predicate): New function 1237 to handle cases where a formal of a predicate function and the 1238 corresponding actual have different views of the same type. 1239 12402016-07-04 Philippe Gil <gil@adacore.com> 1241 1242 * g-debpoo.adb (Free_Blocks) free blocks also until 1243 Logically_Deallocated less than Maximum_Logically_Freed_Memory 1244 (Dump) add dump of number of traceback & validity elements 1245 already allocated. 1246 12472016-07-04 Justin Squirek <squirek@adacore.com> 1248 1249 * sem_ch12.adb (Instantiate_Package_Body): Add 1250 a guard to ignore Itypes which fail when installing primitives. 1251 12522016-07-04 Bob Duff <duff@adacore.com> 1253 1254 * sem_eval.adb (Decompose_Expr): Set 'out' parameters 1255 Kind and Cons to valid values, to avoid use of uninit vars. 1256 (Extract_Length): Reorder the check to make it clearer that 1257 we're depending on BOTH Ent1 and Ent2 to be Present. 1258 * sem_aggr.adb (Resolve_Aggregate): Remove dead code. 1259 (Check_Misspelled_Component): Remove exit statement, because 1260 it's covered by the 'while' condition. 1261 * checks.adb (Apply_Selected_Range_Checks): Remove useless 1262 condition "or else not Checks_On". 1263 (Selected_Range_Checks): 1264 Initialize Known_LB and Known_HB to False, because they are 1265 tested unconditionally; avoid use of uninit vars. 1266 * frontend.adb (Frontend): Removed useless condition 1267 "Operating_Mode = Check_Semantics and then", and added an Assert 1268 to clarify why it was useless. 1269 * prep.adb (Preprocess): Remove redundant condition. Add an 1270 assertion. 1271 * sem_ch10.adb (Analyze_Proper_Body): Moved redundant condition 1272 "Original_Operating_Mode = Generate_Code" to an Assert. 1273 (Process_Spec_Clauses, Process_Body_Clauses): Change parameters 1274 from 'in out' to 'out', and don't initialize actuals. 1275 * sem_ch12.adb (Is_In_Main_Unit): Removed useless condition 1276 "Unum = Main_Unit or else". 1277 (Save_Global_Descendant): Moved 1278 redundant condition "D = Union_Id (No_List)" to an Assert. 1279 * sem_ch4.adb (Check_Misspelled_Selector): Remove exit 1280 statement, because it's covered by the 'while' condition. 1281 (Analyze_Case_Expression): Initialize Wrong_Alt to Empty, 1282 because it looks like it is used uninitialized otherwise. 1283 * sem_ch6.adb (Check_Return_Subtype_Indication): Moved redundant 1284 condition "not R_Type_Is_Anon_Access" to an Assert. 1285 * sem_elim.adb (Line_Num_Match): Moved redundant condition 1286 "Sloc_Trace (Idx) = '['" to an Assert. 1287 * sem_util.adb (Compile_Time_Constraint_Error): Change "J" to 1288 "J - 1". This code is trying to replace "?" with "<", but not if 1289 the "?" is quoted, as in "'?", so we want to check the PREVIOUS 1290 character for '''. 1291 * snames.adb-tmpl (Is_Pragma_Name): Remove useless condition 1292 "or else N = Name_Relative_Deadline". It's useless because 1293 Name_Relative_Deadline is in the range First_Pragma_Name 1294 .. Last_Pragma_Name. 1295 * treepr.adb (Visit_Node): Moved redundant condition "D = 1296 Union_Id (No_List)" to an Assert. 1297 * sem_ch3.adb (Derive_Subprogram, Derive_Subprograms): Change 1298 parameters from 'in out' to 'out'. 1299 * errout.adb (Error_Msg_Internal): Replace redundant test with Assert. 1300 * inline.adb (Add_Inlined_Body): Code cleanup. 1301 13022016-07-04 Hristian Kirtchev <kirtchev@adacore.com> 1303 1304 * g-sercom-mingw.adb, sem_ch6.adb: Minor reformatting. 1305 13062016-07-04 Olivier Hainque <hainque@adacore.com> 1307 1308 * g-sercom-mingw.adb (Set): Fix port configuration for the 1309 non-blocking + null-timeout case, request of immediate return. 1310 13112016-07-04 Ed Schonberg <schonberg@adacore.com> 1312 1313 * sem_ch6.adb (Is_Non_Overriding_Operation): Add guard to test 1314 of generic parent type when operation is a parameterless function 1315 that may dispatch on result. 1316 13172016-07-04 Hristian Kirtchev <kirtchev@adacore.com> 1318 1319 * freeze.adb, ghost.adb, sem_ch13.adb: Minor reformatting. 1320 13212016-07-04 Pascal Obry <obry@adacore.com> 1322 1323 * g-forstr.ads: More documentation for the Formatted_String 1324 support. 1325 13262016-07-04 Justin Squirek <squirek@adacore.com> 1327 1328 * sem_ch7.adb (Install_Parent_Private_Declarations): When 1329 instantiating a child unit, do not install private declaration of 1330 a non-generic ancestor of the generic that is also an ancestor 1331 of the current unit: its private part will be installed when 1332 private part of ancestor itself is analyzed. 1333 13342016-07-04 Ed Schonberg <schonberg@adacore.com> 1335 1336 * sem_ch12.adb (Instantiate_Object): In SPARK mode add a guard 1337 to verify that the actual is an object reference before checking 1338 for volatility. 1339 (Check_Generic_Child_Unit): Prevent cascaded errors when prefix 1340 is illegal. 1341 13422016-07-04 Gary Dismukes <dismukes@adacore.com> 1343 1344 * sem_ch12.ads, freeze.adb: Minor reformatting and typo fixes. 1345 13462016-07-04 Ed Schonberg <schonberg@adacore.com> 1347 1348 * sem_ch13.adb (New_Stream_Subprogram): If the attribute 1349 definition clause comes from an aspect specification, place the 1350 generated subprogram renaming in the freeze actions of the type. 1351 13522016-07-04 Philippe Gil <gil@adacore.com> 1353 1354 * g-debpoo.adb (Dump.Do_Report) - add space prefix to backtrace 1355 address dump - avoid new line sent directly to stdout. 1356 13572016-07-04 Arnaud Charlet <charlet@adacore.com> 1358 1359 * gnat1drv.adb, sem_ch12.adb, sem_elab.adb, sem_prag.adb, sem_res.adb: 1360 Relax elaboration checks in SPARK_Mode so that we rely on the 1361 static elaboration model (if used). We'll have a more precise 1362 check performed in flow analysis of gnat2why. 1363 13642016-07-04 Ed Schonberg <schonberg@adacore.com> 1365 1366 * ghost.adb (Prune_Node): A freeze node for an ignored ghost 1367 entity must be pruned as well. 1368 13692016-07-04 Gary Dismukes <dismukes@adacore.com> 1370 1371 * sem_type.adb, einfo.ads, freeze.adb, exp_ch6.adb: Minor reformatting 1372 and typo fix. 1373 13742016-07-04 Hristian Kirtchev <kirtchev@adacore.com> 1375 1376 * sem_ch3.adb, sem_type.adb, sem_ch12.adb, xref_lib.adb, 1377 freeze.adb, sinput-l.adb, sinput-l.ads, sem_ch4.adb, sem_ch8.adb: 1378 Minor reformatting. 1379 13802016-07-04 Justin Squirek <squirek@adacore.com> 1381 1382 * sem_prag.adb (Analyze_Unmodified_Or_Unused and 1383 Analyze_Unreferenced_Or_Unused): Change warning message to be 1384 more clear about pragma duplicates. 1385 13862016-07-04 Yannick Moy <moy@adacore.com> 1387 1388 * sinput-l.adb (Create_Instantiation_Source): Set component 1389 Inlined_Call for inherited pragma case. 1390 * sinput.adb, sinput.ads (Instantiation): Return component 1391 Inlined_Call for inherited pragma case. 1392 13932016-07-04 Bob Duff <duff@adacore.com> 1394 1395 * sem_type.adb (Remove_Conversions): Protect 1396 the call to Left_Opnd by checking for Nkind in N_Unary_Op -- 1397 unary operators do not have a left operand. 1398 13992016-07-04 Ed Schonberg <schonberg@adacore.com> 1400 1401 * sem_ch3.adb (Analyze_Object_Declaration): A declaration of a 1402 constant in a protected operation may be a homonym of a private 1403 component of the enclosing protected type. This declaration hides 1404 the component renaming constructed within the protected operation. 1405 14062016-07-04 Bob Duff <duff@adacore.com> 1407 1408 * xref_lib.adb (Parse_X_Filename, Parse_Identifier_Info): Ignore 1409 unknown files. Check that File_Nr is in the range of files we 1410 know about. The previous code was checking the lower bound, 1411 but not the upper bound. 1412 14132016-07-04 Arnaud Charlet <charlet@adacore.com> 1414 1415 * tracebak.c: Minor reformatting. 1416 14172016-07-04 Yannick Moy <moy@adacore.com> 1418 1419 * sem_ch12.adb, sem_ch12.ads Update calls to 1420 Create_Instantiation_Source to use default argument. 1421 (Adjust_Inherited_Pragma_Sloc): New function to adjust sloc 1422 of inherited pragma. 1423 (Set_Copied_Sloc_For_Inherited_Pragma): 1424 New function that wraps call to Create_Instantiation_Source for 1425 copying an inherited pragma. 1426 (Set_Copied_Sloc_For_Inlined_Body): Update call to 1427 Create_Instantiation_Source with new arguments. 1428 * sem_prag.adb (Build_Pragma_Check_Equivalent): In the case 1429 of inherited pragmas, use the generic machinery to get chained 1430 locations for the pragma and its sub-expressions. 1431 * sinput-c.adb: Adapt to new type Source_File_Record. 1432 * sinput-l.adb, sinput-l.ads (Create_Instantiation_Source): 1433 Add parameter Inherited_Pragma and make parameter Inlined_Body 1434 optional. 1435 * sinput.adb, sinput.ads (Comes_From_Inherited_Pragma): New 1436 function to return when a location comes from an inherited pragma. 1437 (Inherited_Pragma): New function to detect when a location comes 1438 from an inherited pragma. 1439 (Source_File_Record): New component Inherited_Pragma. 1440 14412016-07-04 Yannick Moy <moy@adacore.com> 1442 1443 * sem_elab.adb: Register existence of quickfix for error message. 1444 14452016-07-04 Ed Schonberg <schonberg@adacore.com> 1446 1447 * sem_ch4.adb (Resolve_One_Call): In the context of a predicate 1448 function the formal and the actual in a call may have different 1449 views of the same type, because of the delayed analysis of 1450 predicates aspects. Extend the patch that handles this potential 1451 discrepancy to handle private and full views as well. 1452 * sem_ch8.adb (Find_Selected_Component): Refine predicate that 1453 produces additional error when an illegal selected component 1454 looks like a prefixed call whose first formal is untagged. 1455 14562016-07-04 Justin Squirek <squirek@adacore.com> 1457 1458 * einfo.adb (Has_Pragma_Unused): Create this function as a setter 1459 for a new flag294 (Set_Has_Pragma_Unused): Create this procedure 1460 as a getter for flag294 (Write_Entity_Flags): Register the new 1461 flag with an alias 1462 * einfo.ads Add comment documenting Has_Pragma_Unused (flag294) 1463 and subsequent getter and setter declarations. 1464 * lib-xref.adb (Generate_Reference): Recognize Has_Pragma_Unused 1465 flag to print appropriate warning messages. 1466 * par-prag.adb (Prag): Classify Pragma_Unused into "All Other 1467 Pragmas." 1468 * snames.ads-tmpl Add a new name to the name constants and a 1469 new pramga to Pragma_Id for pramga Unused. 1470 * sem_prag.adb (Analyze_Pragma): Create case for Pragma_Unused 1471 and move the block for Pragma_Unmodified and Pragma_Unreferenced 1472 out and into local subprograms. 1473 (Analyze_Unmodified, Analyze_Unreferenced): From the old pragma blocks 1474 that have been separated in to local subprograms add a parameter to 1475 indicate the if they are being called in the context of Pragma_Unused 1476 and handle it accordingly. 1477 (Is_Non_Significant_Pragma_Reference): Add an entry for Pragma_Unused 1478 and correct the position of Pragma_Unevaluated_Use_Of_Old. 1479 * sem_util.adb (Note_Possible_Modification): Recognize 1480 Has_Pragma_Unused flag to print appropriate warning messages. 1481 14822016-07-04 Ed Schonberg <schonberg@adacore.com> 1483 1484 * freeze.adb (Check_Inherited_Conditions): Perform two passes over 1485 the primitive operations of the type: one over source overridings 1486 to build the primitives mapping, and one over inherited operations 1487 to check for the need to create wrappers, and to check legality 1488 of inherited condition in SPARK. 1489 * sem_prag.ads (Update_Primitive_Mapping): Make public, for use 1490 in freeze actions. 1491 * sem_prag.adb (Build_Pragma_Check_Equivalent): Refine error 1492 message in the case of an inherited condition in SPARK that 1493 includes a call to some other overriding primitive. 1494 14952016-07-04 Hristian Kirtchev <kirtchev@adacore.com> 1496 1497 * exp_aggr.adb (Ctrl_Init_Expression): New routine. 1498 (Gen_Assign): Code cleanup. Perform in-place side effect removal when 1499 the expression denotes a controlled function call. 1500 * exp_util.adb (Remove_Side_Effects): Do not remove side effects 1501 on a function call which has this behavior suppressed. 1502 * sem_aggr.adb Code cleanup. 1503 * sinfo.adb (No_Side_Effect_Removal): New routine. 1504 (Set_Side_Effect_Removal): New routine. 1505 * sinfo.ads New attribute No_Side_Effect_Removal along with 1506 occurences in nodes. 1507 (No_Side_Effect_Removal): New routine along with pragma Inline. 1508 (Set_Side_Effect_Removal): New routine along with pragma Inline. 1509 15102016-07-04 Arnaud Charlet <charlet@adacore.com> 1511 1512 * opt.ads, sem_prag.adb (Universal_Addressing_On_AAMP): Removed. 1513 Remove support for pragma No_Run_Time. Update comments. 1514 15152016-07-04 Pascal Obry <obry@adacore.com> 1516 1517 * g-forstr.ads: More documentation for the Formatted_String 1518 support. 1519 15202016-07-04 Ed Schonberg <schonberg@adacore.com> 1521 1522 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 1523 'Address): If the address comes from an aspect specification 1524 and not a source attribute definition clause, do not remove 1525 side effects from the expression, because the expression must 1526 be elaborated at the freeze point of the object and not at the 1527 object declaration, because of the delayed analysis of aspect 1528 specifications. 1529 15302016-06-29 Eric Botcazou <ebotcazou@adacore.com> 1531 1532 PR ada/48835 1533 PR ada/61954 1534 * gcc-interface/gigi.h (enum standard_datatypes): Add ADT_realloc_decl 1535 (realloc_decl): New macro. 1536 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Use local 1537 variable for the entity type and translate it as void pointer if the 1538 entity has convention C. 1539 (gnat_to_gnu_entity) <E_Function>: If this is not a definition and the 1540 external name matches that of malloc_decl or realloc_decl, return the 1541 correspoding node directly. 1542 (gnat_to_gnu_subprog_type): Likewise for parameter and return types. 1543 * gcc-interface/trans.c (gigi): Initialize void_list_node here, not... 1544 Initialize realloc_decl. 1545 * gcc-interface/utils.c (install_builtin_elementary_types): ...here. 1546 (build_void_list_node): Delete. 1547 * gcc-interface/utils2.c (known_alignment) <CALL_EXPR>: Return the 1548 alignment of the system allocator for malloc_decl and realloc_decl. 1549 Do not take alignment from void pointer types either. 1550 15512016-06-29 Eric Botcazou <ebotcazou@adacore.com> 1552 1553 * gcc-interface/misc.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): Reorder. 1554 (LANG_HOOKS_INIT_TS): Likewise. 1555 15562016-06-22 Arnaud Charlet <charlet@adacore.com> 1557 1558 * sem_prag.adb: Revert unwanted change in previous commit, 1559 only keep message fix. 1560 15612016-06-22 Ed Schonberg <schonberg@adacore.com> 1562 1563 * sem_prag.ads (Build_Classwide_Expression): new procedure to 1564 build the expression for an inherited classwide condition, and 1565 to validate such expressions when they apply to an inherited 1566 operation that is not overridden. 1567 * sem_prag.adb (Primitives_Mapping): new data structure to 1568 handle the mapping between operations of a root type and the 1569 corresponding overriding operations of a type extension. Used 1570 to construct the expression for an inherited classwide condition. 1571 (Update_Primitives_Mapping): add to Primitives_Mapping the links 1572 between primitive operations of a root type and those of a given 1573 type extension. 1574 (Build_Pragma_Check_Equivalent): use Primitives_Mapping. 1575 * sem_ch6.adb (New_Overloaded_Entity): Remove call to 1576 Collect_Iherited_Class_Wide_Conditions in GNATprove_Mode. This 1577 needs to be done at freeze point of the type. 1578 * freeze.adb (Check_Inherited_Conditions): new procedure to 1579 verify the legality of inherited classwide conditions. In normal 1580 compilation mode the procedure determines whether an inherited 1581 operation needs a wrapper to handle an inherited condition that 1582 differs from the condition of the root type. In SPARK mode 1583 the routine invokes Collect_Inherited_Class_Wide_Conditions to 1584 produce the SPARK version of these inherited conditions. 1585 (Freeze_Record_Type): For a type extension, call 1586 Check_Inherited_Conditions. 1587 15882016-06-22 Hristian Kirtchev <kirtchev@adacore.com> 1589 1590 * sem_ch3.adb, sem_type.adb, sem.adb, freeze.adb, sem_util.adb, 1591 s-htable.adb, exp_ch11.adb, s-secsta.adb, restrict.adb, exp_disp.adb, 1592 sem_ch8.adb, s-tpobop.adb, exp_aggr.ads, sem_ch13.adb: Minor 1593 reformatting. 1594 15952016-06-22 Yannick Moy <moy@adacore.com> 1596 1597 * lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Inverse order of 1598 treatments so that files without compilation unit are simply skipped 1599 before more elaborate treatments. 1600 16012016-06-22 Bob Duff <duff@adacore.com> 1602 1603 * s-memory.ads: Minor typo fixes in comments. 1604 * s-memory.adb: Code cleanup. 1605 16062016-05-22 Olivier Hainque <hainque@adacore.com> 1607 1608 * vxworks-crtbe-link.spec: Removed, no longer used. 1609 16102016-06-22 Justin Squirek <squirek@adacore.com> 1611 1612 * sem_ch8.adb (Push_Scope): Add a check for when the 1613 scope table is empty to assign the global variable 1614 Configuration_Component_Alignment. 1615 * sem.adb (Do_Analyze): Add Configuration_Component_Alignment 1616 to be assigned when the environment is cleaned instead of the 1617 default. 1618 * sem.ads Add a global variable Configuration_Component_Alignment 1619 to store the value given by pragma Component_Alignment in the 1620 context of a configuration file. 1621 * sem_prag.adb (Analyze_Pragma): Correct the case for 1622 Component_Alignment so that the pragma is verified and add 1623 comments to explain how it is applied to the scope stack. 1624 16252016-06-22 Justin Squirek <squirek@adacore.com> 1626 1627 * sprint.adb (Sprint_Node_Actual): Add check in 1628 the case of an N_Object_Declaration when evaluating an expression 1629 to properly ignore errors. 1630 16312016-06-22 Bob Duff <duff@adacore.com> 1632 1633 * g-comlin.ads (Parameter_Type): Change subtype of Last to 1634 Natural. 1635 * g-comlin.adb (Set_Parameter): Change subtype of Last to 1636 Natural. 1637 (Getopt): Check for Arg = "", and Switches /= "". 1638 (Internal_Initialize_Option_Scan): Check for Argument (Parser, 1639 Index) /= "". 1640 16412016-06-22 Gary Dismukes <dismukes@adacore.com> 1642 1643 * sem_prag.adb, sem_ch8.adb: Minor reformatting. 1644 16452016-06-22 Ed Schonberg <schonberg@adacore.com> 1646 1647 * einfo.ads, einfo.adb (Is_Actual_Subtype): New flag, defined 1648 on subtypes that are created within subprogram bodies to handle 1649 unconstrained composite formals. 1650 * checks.adb (Apply_Predicate_Check): Do not generate a check on 1651 an object whose type is an actual subtype. 1652 * sem_ch6.adb (Set_Actual_Subtypes): Do not generate an 1653 actual subtype for a formal whose base type is private. 1654 Set Is_Actual_Subtype on corresponding entity after analyzing 1655 its declaration. 1656 16572016-06-22 Justin Squirek <squirek@adacore.com> 1658 1659 * sem_prag.adb (Check_Expr_Is_OK_Static_Expression): Fix ordering 1660 of if-block and add in a condition to test for errors during 1661 resolution. 1662 * sem_res.adb (Resolution_Failed): Add comment to explain why 1663 the type of a node which failed to resolve is set to the desired 1664 type instead of Any_Type. 1665 * sem_ch8.adb (Analyze_Object_Renaming): Add a check for Any_Type 1666 to prevent crashes on Is_Access_Constant. 1667 16682016-06-22 Hristian Kirtchev <kirtchev@adacore.com> 1669 1670 * lib-xref-spark_specific.adb, checks.adb, sem_ch13.adb: Minor 1671 reformatting. 1672 * exp_ch7.adb: Minor typo fix. 1673 * lib.ads (Get_Top_Level_Code_Unit): Add comment. 1674 16752016-06-22 Bob Duff <duff@adacore.com> 1676 1677 * s-tassta.adb (Task_Wrapper): Fix handling of Fall_Back_Handler 1678 wrt independent tasks. 1679 16802016-06-22 Ed Schonberg <schonberg@adacore.com> 1681 1682 * sem_dim.adb (Analyze_Dimension): Propagate dimension for 1683 explicit_dereference nodes when they do not come from source, 1684 to handle correctly dimensional analysis on iterators over 1685 containers whose elements have declared dimensions. 1686 16872016-06-22 Arnaud Charlet <charlet@adacore.com> 1688 1689 * spark_xrefs.ads (Scope_Num): type refined to positive integers. 1690 * lib-xref-spark_specific.adb (Detect_And_Add_SPARK_Scope): 1691 moved into scope of Collect_SPARK_Xrefs. 1692 (Add_SPARK_Scope): moved into scope of Collect_SPARK_Xrefs; 1693 now uses Dspec and Scope_Id from Collect_SPARK_Xrefs. 1694 (Collect_SPARK_Xrefs): refactored to avoid retraversing the list 1695 of scopes. 1696 (Traverse_Compilation_Unit): refactored as a generic procedure. 1697 * types.ads (Unit_Number_Type): range refined. 1698 16992016-06-22 Hristian Kirtchev <kirtchev@adacore.com> 1700 1701 * lib-xref-spark_specific.adb, a-cuprqu.ads, sem_ch6.adb: Minor 1702 reformatting. 1703 17042016-06-22 Eric Botcazou <ebotcazou@adacore.com> 1705 1706 * sem_util.ads (Address_Value): Declare new function. 1707 * sem_util.adb (Address_Value): New function extracted 1708 unmodified from Apply_Address_Clause_Check, which returns the 1709 underlying value of the expression of an address clause. 1710 * checks.adb (Compile_Time_Bad_Alignment): Delete. 1711 (Apply_Address_Clause_Check): Call Address_Value on 1712 the expression. Do not issue the main warning here and 1713 issue the secondary warning only when the value of the 1714 expression is not known at compile time. 1715 * sem_ch13.adb (Address_Clause_Check_Record): Add A component and 1716 adjust the description. 1717 (Analyze_Attribute_Definition_Clause): In the case 1718 of an address, move up the code creating an entry in the table of 1719 address clauses. Also create an entry for an absolute address. 1720 (Validate_Address_Clauses): Issue the warning for absolute 1721 addresses here too. Tweak condition associated with overlays 1722 for consistency. 1723 17242016-06-22 Ed Schonberg <schonberg@adacore.com> 1725 1726 * sem_ch13.adb (Is_Predicate_Static): An inherited predicate 1727 can be static only if it applies to a scalar type. 1728 17292016-06-22 Ed Schonberg <schonberg@adacore.com> 1730 1731 * exp_util.adb (Adjust_Result_Type): Convert operand to base 1732 type to prevent spurious constraint checks on subtypes of Boolean. 1733 17342016-06-22 Bob Duff <duff@adacore.com> 1735 1736 * debug.adb: Document debug switch -gnatd.o. 1737 * sem_elab.adb (Check_Internal_Call): Debug switch -gnatd.o 1738 now causes a more conservative treatment of indirect calls, 1739 treating P'Access as a call to P in more cases. We Can't make 1740 this the default, because it breaks common idioms, for example 1741 the soft links. 1742 * sem_util.adb: Add an Assert. 1743 17442016-06-22 Bob Duff <duff@adacore.com> 1745 1746 * a-cuprqu.ads, a-cuprqu.adb: Completely rewrite this package. Use 1747 red-black trees, which gives O(lg N) worst-case performance on 1748 Enqueue and Dequeue. The previous version had O(N) Enqueue in 1749 the worst case. 1750 17512016-06-22 Arnaud Charlet <charlet@adacore.com> 1752 1753 * sem_warn.adb: minor style fix in comment. 1754 * spark_xrefs.ads (Scope_Num): type refined to positive integers. 1755 * lib-xref-spark_specific.adb (Detect_And_Add_SPARK_Scope): 1756 moved into scope of Collect_SPARK_Xrefs. 1757 (Add_SPARK_Scope): moved into scope of Collect_SPARK_Xrefs; 1758 now uses Dspec and Scope_Id from Collect_SPARK_Xrefs. 1759 (Collect_SPARK_Xrefs): refactored to avoid retraversing the list 1760 of scopes. 1761 * sem_ch3.adb (Build_Discriminal): Set Parent of the discriminal. 1762 17632016-06-22 Arnaud Charlet <charlet@adacore.com> 1764 1765 * lib-xref-spark_specific.adb (Generate_Dereference): Assignment to not 1766 commented local variables replaced with direct uses of their values. 1767 17682016-06-22 Hristian Kirtchev <kirtchev@adacore.com> 1769 1770 * exp_ch7.adb (Add_Invariant): Replace the 1771 current type instance with the _object parameter even in ASIS mode. 1772 (Build_Invariant_Procedure_Body): Do not insert the 1773 invariant procedure body into the tree for ASIS and GNATprove. 1774 (Build_Invariant_Procedure_Declaration): Do not insert the 1775 invariant procedure declaration into the tree for ASIS and 1776 GNATprove. 1777 * lib-xref-spark_specific.adb (Add_SPARK_Scope): Update comment. 1778 17792016-06-22 Ed Schonberg <schonberg@adacore.com> 1780 1781 * sem_ch6.adb (Set_Actual_Subtypes): If the type of the actual 1782 has predicates, the actual subtype must be frozen properly 1783 because of the generated tests that may follow. The predicate 1784 may be specified by an explicit aspect, or may be inherited in 1785 a derivation. 1786 17872016-06-22 Ed Schonberg <schonberg@adacore.com> 1788 1789 * exp_ch4.adb (In_Range_Chec)): New predicate, subsidiary of 1790 Expand_N_In: within an expanded range check that might raise 1791 Constraint_Error do not generate a predicate check as well. It 1792 is redundant because the context will add an explicit predicate 1793 check, and it will raise the wrong exception if it fails. 1794 * lib-xref-spark_specific.adb (Add_SPARK_File): Remove useless checks 1795 since dependency units always have an associated compilation unit. 1796 17972016-06-22 Arnaud Charlet <charlet@adacore.com> 1798 1799 * lib.ads: Code cleanup. 1800 * inline.adb: Type refinement for a counter variable. 1801 * lib-xref-spark_specific.adb (Add_SPARK_File): removal of no-op code. 1802 Code cleanup. 1803 18042016-06-21 Eric Botcazou <ebotcazou@adacore.com> 1805 1806 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): New 1807 function. 1808 (set_reverse_storage_order_on_array_type): Likewise. 1809 (gnat_to_gnu_entity) <E_Array_Type>: Call them to set the flags. 1810 <E_Array_Subtype>: Likewise. 1811 <E_String_Literal_Subtype>: Likewise. 1812 (substitute_in_type) <ARRAY_TYPE>: Likewise. 1813 * gcc-interface/utils.c (gnat_pushdecl): Always create a variant for 1814 the DECL_ORIGINAL_TYPE of a type. 1815 18162016-06-20 Hristian Kirtchev <kirtchev@adacore.com> 1817 1818 * make.adb, gnatbind.adb, g-socket.adb, sem_ch13.adb: Minor 1819 reformatting. 1820 * lib.ads, sem_util.adb: Minor typo in comment. 1821 18222016-06-20 Yannick Moy <moy@adacore.com> 1823 1824 * sem_prag.adb, sem_prag.ads (Build_Pragma_Check_Equivalent): 1825 Add parameter Keep_Pragma_Id to optionally keep 1826 the identifier of the pragma instead of converting 1827 to pragma Check. Also set type of new function call 1828 appropriately. (Collect_Inherited_Class_Wide_Conditions): 1829 Call Build_Pragma_Check_Equivalent with the new parameter 1830 Keep_Pragma_Id set to True to keep the identifier of the copied 1831 pragma. 1832 * sinfo.ads: Add comment. 1833 18342016-06-20 Hristian Kirtchev <kirtchev@adacore.com> 1835 1836 * exp_ch7.adb (Build_Invariant_Procedure_Body): 1837 Always install the scope of the invariant procedure 1838 in order to produce better error messages. Do not 1839 insert the body when the context is a generic unit. 1840 (Build_Invariant_Procedure_Declaration): Perform minimal 1841 decoration of the invariant procedure and its formal parameter 1842 in case they are not analyzed. Do not insert the declaration 1843 when the context is a generic unit. 1844 18452016-06-20 Ed Schonberg <schonberg@adacore.com> 1846 1847 * sem_ch13.adb (Visible_Component): New procedure, subsidiary 1848 of Replace_Type_References_ Generic, to determine whether an 1849 identifier in a predicate or invariant expression is a visible 1850 component of the type to which the predicate or invariant 1851 applies. Implements the visibility rule stated in RM 13.1.1 1852 (12/3). 1853 18542016-06-20 Hristian Kirtchev <kirtchev@adacore.com> 1855 1856 * s-regpat.adb, sem_prag.adb, pprint.adb, sem_ch13.adb: Minor 1857 reformatting. 1858 18592016-06-20 Tristan Gingold <gingold@adacore.com> 1860 1861 * make.adb (Check_Standard_Library): Consider system.ads 1862 if s-stalib.adb is not available. 1863 * gnatbind.adb (Add_Artificial_ALI_File): New procedure extracted from 1864 gnatbind. 1865 18662016-06-20 Thomas Quinot <quinot@adacore.com> 1867 1868 * g-socket.adb (Is_IP_Address): A string consisting in digits only is 1869 not a dotted quad. 1870 18712016-06-20 Arnaud Charlet <charlet@adacore.com> 1872 1873 * exp_ch7.adb (Build_Invariant_Procedure_Body): 1874 decorate invariant procedure body with typical properties of 1875 procedure entityes. 1876 18772016-06-20 Arnaud Charlet <charlet@adacore.com> 1878 1879 * a-exetim-darwin.adb: New file. 1880 18812016-06-16 Hristian Kirtchev <kirtchev@adacore.com> 1882 1883 * atree.ads, atree.adb (Elist29): New routine. 1884 (Set_Elist29): New routine. 1885 * atree.h New definition for Elist29. 1886 * einfo.adb Subprograms_For_Type is now an Elist rather than 1887 a node. Has_Invariants is now a synthesized attribute 1888 and does not require a flag. Has_Own_Invariants 1889 is now Flag232. Has_Inherited_Invariants is 1890 Flag291. Is_Partial_Invariant_Procedure is Flag292. 1891 (Default_Init_Cond_Procedure): Reimplemented. 1892 (Has_Inherited_Invariants): New routine. 1893 (Has_Invariants): Reimplemented. 1894 (Has_Own_Invariants): New routine. 1895 (Invariant_Procedure): Reimplemented. 1896 (Is_Partial_Invariant_Procedure): New routine. 1897 (Partial_Invariant_Procedure): Reimplemented. 1898 (Predicate_Function): Reimplemented. 1899 (Predicate_Function_M): Reimplemented. 1900 (Set_Default_Init_Cond_Procedure): Reimplemented. 1901 (Set_Has_Inherited_Invariants): New routine. 1902 (Set_Has_Invariants): Removed. 1903 (Set_Has_Own_Invariants): New routine. 1904 (Set_Invariant_Procedure): Reimplemented. 1905 (Set_Is_Partial_Invariant_Procedure): New routine. 1906 (Set_Partial_Invariant_Procedure): Reimplemented. 1907 (Set_Predicate_Function): Reimplemented. 1908 (Set_Predicate_Function_M): Reimplemented. 1909 (Set_Subprograms_For_Type): Reimplemented. 1910 (Subprograms_For_Type): Reimplemented. 1911 (Write_Entity_Flags): Output Flag232 and Flag291. 1912 * einfo.ads Add new attributes Has_Inherited_Invariants 1913 Has_Own_Invariants Is_Partial_Invariant_Procedure 1914 Partial_Invariant_Procedure Change the documentation 1915 of attributes Has_Inheritable_Invariants Has_Invariants 1916 Invariant_Procedure Is_Invariant_Procedure Subprograms_For_Type 1917 (Has_Inherited_Invariants): New routine along with pragma Inline. 1918 (Has_Own_Invariants): New routine along with pragma Inline. 1919 (Is_Partial_Invariant_Procedure): New routine along with pragma Inline. 1920 (Partial_Invariant_Procedure): New routine. 1921 (Set_Has_Inherited_Invariants): New routine along with pragma Inline. 1922 (Set_Has_Invariants): Removed along with pragma Inline. 1923 (Set_Has_Own_Invariants): New routine along with pragma Inline. 1924 (Set_Is_Partial_Invariant_Procedure): New routine 1925 along with pragma Inline. 1926 (Set_Partial_Invariant_Procedure): New routine. 1927 (Set_Subprograms_For_Type): Update the signature. 1928 (Subprograms_For_Type): Update the signature. 1929 * exp_ch3.adb Remove with and use clauses for Sem_Ch13. 1930 (Build_Array_Invariant_Proc): Removed. 1931 (Build_Record_Invariant_Proc): Removed. 1932 (Freeze_Type): Build the body of the invariant procedure. 1933 (Insert_Component_Invariant_Checks): Removed. 1934 * exp_ch7.adb Add with and use clauses for Sem_Ch6, Sem_Ch13, 1935 and Stringt. 1936 (Build_Invariant_Procedure_Body): New routine. 1937 (Build_Invariant_Procedure_Declaration): New routine. 1938 * exp_ch7.ads (Build_Invariant_Procedure_Body): New routine. 1939 (Build_Invariant_Procedure_Declaration): New routine. 1940 * exp_ch9.adb (Build_Corresponding_Record): Do not propagate 1941 attributes related to invariants to the corresponding record 1942 when building the corresponding record. This is done by 1943 Build_Invariant_Procedure_Declaration. 1944 * exp_util.adb (Make_Invariant_Call): Reimplemented. 1945 * freeze.adb (Freeze_Array_Type): An array type requires an 1946 invariant procedure when its component type has invariants. 1947 (Freeze_Record_Type): A record type requires an invariant 1948 procedure when at least one of its components has an invariant. 1949 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Inherit 1950 invariant-related attributes. 1951 (Analyze_Subtype_Declaration): 1952 Inherit invariant-related attributes. 1953 (Build_Derived_Record_Type): Inherit invariant-related attributes. 1954 (Check_Duplicate_Aspects): Reimplemented. 1955 (Get_Partial_View_Aspect): New routine. 1956 (Process_Full_View): Inherit invariant-related attributes. Reimplement 1957 the check on hidden inheritance of class-wide invariants. 1958 (Remove_Default_Init_Cond_Procedure): Reimplemented. 1959 * sem_ch6.adb (Analyze_Subprogram_Specification): Do not modify 1960 the controlling type for an invariant procedure declaration 1961 or body. 1962 (Is_Invariant_Procedure_Or_Body): New routine. 1963 * sem_ch7.adb (Analyze_Package_Specification): Build the partial 1964 invariant body in order to preanalyze and resolve all invariants 1965 of a private type at the end of the visible declarations. Build 1966 the full invariant body in order to preanalyze and resolve 1967 all invariants of a private type's full view at the end of 1968 the private declarations. 1969 (Preserve_Full_Attributes): Inherit invariant-related attributes. 1970 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Ensure that 1971 aspects are analyzed with the proper view when the protected type 1972 is a completion of a private type. Inherit invariant-related attributes. 1973 (Analyze_Task_Type_Declaration): Ensure that 1974 aspects are analyzed with the proper view when the task type 1975 is a completion of a private type. Inherit invariant-related 1976 attributes. 1977 * sem_ch13.adb Remove with and use clauses for Stringt. 1978 (Build_Invariant_Procedure_Declaration): Removed. 1979 (Build_Invariant_Procedure): Removed. 1980 (Freeze_Entity_Checks): Do not build the body of the invariant 1981 procedure here. 1982 The body is built when the type is frozen in Freeze_Type. 1983 (Inherit_Aspects_At_Freeze_Point): Do not inherit any attributes 1984 related to invariants here because this leads to erroneous 1985 inheritance. 1986 (Replace_Node): Rename to Replace_Type_Ref. 1987 * sem_ch13.ads (Build_Invariant_Procedure_Declaration): Removed. 1988 (Build_Invariant_Procedure): Removed. 1989 * sem_prag.adb Add with and use clauses for Exp_Ch7. 1990 (Analyze_Pragma): Reimplement the analysis of pragma Invariant. 1991 * sem_res.adb (Resolve_Actuals): Emit a specialized error when 1992 the context is an invariant. 1993 * sem_util.adb (Get_Views): New routine. 1994 (Incomplete_Or_Partial_View): Consider generic packages when 1995 examining declarations. 1996 (Inspect_Decls): Consider full type 1997 declarations because they may denote a derivation from a 1998 private type. 1999 (Propagate_Invariant_Attributes): New routine. 2000 * sem_util.ads (Get_Views): New routine. 2001 (Propagate_Invariant_Attributes): New routine. 2002 20032016-06-16 Arnaud Charlet <charlet@adacore.com> 2004 2005 * pprint.adb (Expression_Image): Add better handling of UCs, 2006 we don't want to strip them all for clarity. 2007 2008 20092016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2010 2011 * exp_util.adb (Safe_Unchecked_Type_Conversion): Use "alignment" 2012 instead of "alignement". 2013 20142016-06-16 Gary Dismukes <dismukes@adacore.com> 2015 2016 * sem_util.adb: Minor typo fix. 2017 20182016-06-16 Emmanuel Briot <briot@adacore.com> 2019 2020 * s-regpat.adb: Further fix for invalid index in GNAT.Regexp. 2021 20222016-06-16 Eric Botcazou <ebotcazou@adacore.com> 2023 2024 * sem_ch13.adb (Validate_Address_Clauses): Use the same logic to 2025 issue the warning on the offset for the size as for the alignment 2026 and tweak the wording for the sake of consistency. 2027 20282016-06-16 Ed Schonberg <schonberg@adacore.com> 2029 2030 * sem_prag.adb (Check_Class_Wide_COndition): New procedure, 2031 subsidiary of Analyze_Pre_Post_ Condition_In_Decl_Part, to 2032 check legality rules that follow from the revised semantics of 2033 class-wide pre/postconditions described in AI12-0113. 2034 (Build_Pragma_Check_Equivalent): Abstract subprogram declarations 2035 must be included in list of overriding primitives of a derived 2036 type. 2037 20382016-06-16 Ed Schonberg <schonberg@adacore.com> 2039 2040 * sem_util.adb (May_Be_Lvalue): An actual in an unexpanded 2041 attribute reference 'Read is an assignment and must be considered 2042 a modification of the object. 2043 20442016-06-16 Gary Dismukes <dismukes@adacore.com> 2045 2046 * einfo.adb: Minor editorial. 2047 20482016-06-16 Ed Schonberg <schonberg@adacore.com> 2049 2050 * sem_prag.adb (Overridden_Ancestor): Clean up code to use 2051 controlling type of desired primitive rather than its scope, 2052 because the primitive that inherits the classwide condition may 2053 comes from several derivation steps. 2054 20552016-06-16 Javier Miranda <miranda@adacore.com> 2056 2057 * einfo.adb (Set_Default_Init_Cond_Procedure): Allow calls setting 2058 this attribute to Empty (only if the attribute has not been set). 2059 * sem_util.adb (Build_Default_Init_Cond_Procedure_Body): 2060 No action needed if the spec was not built. 2061 (Build_Default_Init_Cond_Procedure_Declaration): The spec is 2062 not built if DIC is set to NULL or no condition was specified. 2063 * exp_ch3.adb (Expand_N_Object_Declaration): Check availability 2064 of the Init_Cond procedure before generating code to call it. 2065 20662016-06-16 Emmanuel Briot <briot@adacore.com> 2067 2068 * s-regpat.adb: Fix invalid index check when matching end-of-line 2069 on substrings. 2070 20712016-06-16 Arnaud Charlet <charlet@adacore.com> 2072 2073 * gnat1drv.adb: Minor reformatting. 2074 20752016-06-16 Ed Schonberg <schonberg@adacore.com> 2076 2077 * sem_ch3.adb (Check_Entry_Contracts): New procedure, subsidiary 2078 of Analyze_Declarations, that performs pre-analysis of 2079 pre/postconditions on entry declarations before full analysis 2080 is performed after entries have been converted into procedures. 2081 Done solely to capture semantic errors. 2082 * sem_attr.adb (Analyze_Attribute, case 'Result): Add guard to 2083 call to Denote_Same_Function. 2084 20852016-06-16 Emmanuel Briot <briot@adacore.com> 2086 2087 * g-comlin.adb: Fix minor memory leak in GNAT.Command_Line. 2088 20892016-06-16 Hristian Kirtchev <kirtchev@adacore.com> 2090 2091 * exp_ch7.adb (Find_Last_Init): Remove obsolete code. The 2092 logic is now performed by Process_Object_Declaration. 2093 (Process_Declarations): Recognize a controlled deferred 2094 constant which is in fact initialized by means of a 2095 build-in-place function call as needing finalization actions. 2096 (Process_Object_Declaration): Insert the counter after the 2097 build-in-place initialization call for a controlled object. This 2098 was previously done in Find_Last_Init. 2099 * exp_util.adb (Requires_Cleanup_Actions): Recognize a controlled 2100 deferred constant which is in fact initialized by means of a 2101 build-in-place function call as needing finalization actions. 2102 21032016-06-16 Justin Squirek <squirek@adacore.com> 2104 2105 * exp_aggr.adb (Expand_Array_Aggregate): Minor comment changes and 2106 additional style fixes. 2107 * exp_ch7.adb: Minor typo fixes and reformatting. 2108 21092016-06-16 Justin Squirek <squirek@adacore.com> 2110 2111 * sem_ch3.adb (Analyze_Object_Declaration): Add a missing check 2112 for optimized aggregate arrays with qualified expressions. 2113 * exp_aggr.adb (Expand_Array_Aggregate): Fix block and 2114 conditional statement in charge of deciding whether to perform 2115 in-place expansion. Specifically, use Parent_Node to jump over 2116 the qualified expression to the object declaration node. Also, 2117 a check has been inserted to skip the optimization if SPARK 2005 2118 is being used in strict adherence to RM 4.3(5). 2119 21202016-06-16 Tristan Gingold <gingold@adacore.com> 2121 2122 * sem_prag.adb (Analyze_Pragma): Simplify code 2123 for Pragma_Priority. 2124 21252016-06-16 Eric Botcazou <ebotcazou@adacore.com> 2126 2127 * sem_util.ads (Indexed_Component_Bit_Offset): Declare. 2128 * sem_util.adb (Indexed_Component_Bit_Offset): New 2129 function returning the offset of an indexed component. 2130 (Has_Compatible_Alignment_Internal): Call it. 2131 * sem_ch13.adb (Offset_Value): New function returning the offset of an 2132 Address attribute reference from the underlying entity. 2133 (Validate_Address_Clauses): Call it and take the offset into 2134 account for the size warning. 2135 21362016-06-16 Hristian Kirtchev <kirtchev@adacore.com> 2137 2138 * bindgen.adb, exp_util.adb, sem_ch9.adb, sem_util.adb: Minor 2139 reformatting. 2140 21412016-06-16 Gary Dismukes <dismukes@adacore.com> 2142 2143 * sem_ch9.adb, sem_util.ads, sem_res.adb: Minor reformatting and typo 2144 fixes. 2145 21462016-06-16 Javier Miranda <miranda@adacore.com> 2147 2148 * sem_res.adb (Resolve): Under relaxed RM semantics silently 2149 replace occurrences of null by System.Null_Address. 2150 * sem_ch4.adb (Analyze_One_Call, Operator_Check): Under 2151 relaxed RM semantics silently replace occurrences of null by 2152 System.Null_Address. 2153 * sem_util.ad[sb] (Null_To_Null_Address_Convert_OK): New subprogram. 2154 (Replace_Null_By_Null_Address): New subprogram. 2155 21562016-06-16 Bob Duff <duff@adacore.com> 2157 2158 * exp_util.adb (Is_Controlled_Function_Call): 2159 This was missing the case where the call is in prefix format, 2160 with named notation, as in Obj.Func (Formal => Actual). 2161 21622016-06-16 Hristian Kirtchev <kirtchev@adacore.com> 2163 2164 * exp_attr.adb, inline.adb, sem_attr.adb, sem_elab.adb: Minor 2165 reformatting. 2166 21672016-06-16 Bob Duff <duff@adacore.com> 2168 2169 * sem_util.adb (Collect): Avoid Empty Full_T. Otherwise Etype 2170 (Full_T) crashes when assertions are on. 2171 * sem_ch12.adb (Matching_Actual): Correctly handle the case where 2172 "others => <>" appears in a generic formal package, other than 2173 by itself. 2174 21752016-06-16 Arnaud Charlet <charlet@adacore.com> 2176 2177 * usage.adb: Remove confusing comment in usage line. 2178 * bindgen.adb: Fix binder generated file in codepeer mode wrt 2179 recent additions. 2180 21812016-06-16 Javier Miranda <miranda@adacore.com> 2182 2183 * restrict.adb (Check_Restriction_No_Use_Of_Entity): Avoid 2184 never-ending loop, code cleanup; adding also support for Text_IO. 2185 * sem_ch8.adb (Find_Expanded_Name): Invoke 2186 Check_Restriction_No_Use_Entity. 2187 21882016-06-16 Tristan Gingold <gingold@adacore.com> 2189 2190 * exp_ch9.adb: Minor comment fix. 2191 * einfo.ads (Has_Protected): Clarify comment. 2192 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Do not 2193 consider private protected types declared in the runtime for 2194 the No_Local_Protected_Types restriction. 2195 21962016-06-14 Ed Schonberg <schonberg@adacore.com> 2197 2198 * sem_ch6.adb (Set_Actual_Subtypes): Do not generate actual 2199 subtypes for unconstrained formals when analyzing the generated 2200 body of an expression function, because it may lead to premature 2201 and misplaced freezing of the types of formals. 2202 22032016-06-14 Gary Dismukes <dismukes@adacore.com> 2204 2205 * sem_elab.adb, sem_ch4.adb: Minor reformatting and typo fix. 2206 22072016-06-14 Tristan Gingold <gingold@adacore.com> 2208 2209 * einfo.adb (Set_Has_Timing_Event): Add assertion. 2210 * sem_util.ads, sem_util.adb (Propagate_Concurrent_Flags): New 2211 name for Propagate_Type_Has_Flags. 2212 * exp_ch3.adb, sem_ch3.adb, sem_ch7.adb, sem_ch9.adb: Adjust after 2213 renaming. 2214 22152016-06-14 Bob Duff <duff@adacore.com> 2216 2217 * sem_elab.adb (Check_A_Call): Do nothing if the callee is 2218 (or is in) an instance, and the caller is outside. Misc cleanup. 2219 22202016-06-14 Javier Miranda <miranda@adacore.com> 2221 2222 * sem_ch4.adb (Analyze_Quantified_Expression): 2223 Generating C code avoid spurious warning on loop variable of 2224 inlinined postconditions. 2225 22262016-06-14 Javier Miranda <miranda@adacore.com> 2227 2228 * sem_attr.adb (Analyze_Attribute_Old_Result): Adding assertion. 2229 (Analyze_Attribute [Attribute_Old]): Generating C handle 2230 analysis of 'old in inlined postconditions. 2231 (Analyze_Attribute [Attribute_Result]): Generating C handle analysis 2232 of 'result in inlined postconditions. 2233 * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]): 2234 Generating C handle expansion of 'old in inlined postconditions. 2235 * inline.adb (Declare_Postconditions_Result): New subprogram. 2236 * sem_ch12.adb (Copy_Generic_Node): Copy pragmas generated from 2237 aspects when generating C code since pre/post conditions are 2238 inlined and the frontend inlining relies on this routine to 2239 perform inlining. 2240 * exp_ch6.adb (Inlined_Subprogram): Replace Generate_C_Code 2241 by Modify_Tree_For_C. 2242 * exp_unst.adb (Visit_Node): Searching for up-level references 2243 skip entities defined in inlined subprograms. 2244 22452016-06-14 Hristian Kirtchev <kirtchev@adacore.com> 2246 2247 * sem_ch7.adb, sem_ch12.adb, freeze.adb, lib-xref.ads, exp_ch3.adb: 2248 Minor reformatting. 2249 22502016-06-14 Bob Duff <duff@adacore.com> 2251 2252 * sem_elab.adb: Do nothing if the callee is intrinsic. 2253 * sinfo.ads, einfo.ads: Minor comment fixes. 2254 22552016-06-14 Ed Schonberg <schonberg@adacore.com> 2256 2257 * contracts.adb (Has_Null_Body): Move to sem_util, for general 2258 availability. 2259 * sem_util.ads, sem_util.adb (Has_Null_Body): Predicate to 2260 determine when an internal procedure created for some assertion 2261 checking (e.g. type invariant) is a null procedure. Used to 2262 eliminate redundant calls to such procedures when they apply to 2263 components of composite types. 2264 * exp_ch3.adb (Build_Component_Invariant_Call): Do not add call 2265 if invariant procedure has a null body. 2266 22672016-06-14 Thomas Quinot <quinot@adacore.com> 2268 2269 * g-socket.ads (Check_Selector): Clarify effect on IN OUT socket 2270 set parameters. 2271 22722016-06-14 Hristian Kirtchev <kirtchev@adacore.com> 2273 2274 * exp_ch4.adb (Process_Action): Pass the action 2275 list to Process_Transient_Object. 2276 (Process_If_Case_Statements): Pass the action list to 2277 Process_Transient_Object. 2278 (Process_Transient_Object): Add new parameter Stmts and update the 2279 comment on usage. When the context is a Boolean evaluation, insert 2280 any finalization calls after the last statement of the construct. 2281 22822016-06-14 Tristan Gingold <gingold@adacore.com> 2283 2284 * einfo.adb, einfo.ads (Has_Timing_Event, 2285 Set_Has_Timing_Event): Add Has_Timing_Event flag. 2286 (Write_Entity_Flags): Display * sem_util.ads, sem_util.adb: 2287 (Propagate_Type_Has_Flags): New procedure to factorize code. 2288 * exp_ch3.adb (Expand_Freeze_Array_Type, 2289 Expand_Freeze_Record_Type): Call Propagate_Type_Has_Flags. 2290 * sem_ch3.adb (Access_Type_Decalaration): Initialize 2291 Has_Timing_Event flag. (Analyze_Object_Declaration): 2292 Move code that check No_Local_Timing_Events near 2293 the code that check No_Local_Protected_Objects. 2294 (Analyze_Private_Extension_Declaration, Array_Type_Declaration) 2295 (Build_Derived_Type, Copy_Array_Base_Type_Attributes, 2296 Process_Full_View) (Record_Type_Definition): Call 2297 Propagate_Type_Has_Flags. 2298 * sem_ch4.adb (Analyze_Allocator): Check No_Local_Timing_Events. 2299 * sem_ch7.adb (New_Private_Type): Set Has_Timing_Event on the 2300 Timing_Event type. 2301 (Uninstall_Declaration): Call Propagate_Type_Has_Flags. 2302 * sem_ch9.adb (Analyze_Protected_Definition): Call 2303 Propagate_Type_Has_Flags. 2304 23052016-06-14 Arnaud Charlet <charlet@adacore.com> 2306 2307 * sem.ads: Minor style fix. 2308 23092016-06-14 Ed Schonberg <schonberg@adacore.com> 2310 2311 * sem_ch12.adb (Analyze_Associations): An actual parameter 2312 with a box must be included in the count of actuals, to detect 2313 possible superfluous named actuals that do not match any of the 2314 formals of the generic unit in a formal package declaration. 2315 23162016-06-14 Justin Squirek <squirek@adacore.com> 2317 2318 * sem_ch3.adb (Analyze_Object_Declaration): Fix formatting 2319 of error output related to SPARK RM 6.1.7(3) and pragma 2320 Extensions_Visible. 2321 * sem_ch4.adb (Analyze_Type_Conversion): Fix formatting of error 2322 output related to SPARK RM 6.1.7(3) and pragma Extensions_Visible. 2323 * sem_prag.adb (Analyze_Pragma): Fix formatting of error output 2324 related to SPARK RM 7.1.2(15) and pragma Volatile_Function 2325 so that the values True and False are no longer surrounded by 2326 double quotes. 2327 * sem_res.adb (Resolve_Actuals): Fix formatting of error output 2328 related to SPARK RM 6.1.7(3) and pragma Extensions_Visible. 2329 23302016-06-14 Arnaud Charlet <charlet@adacore.com> 2331 2332 * gnat1drv.adb (Adjust_Global_Switches): Enable access checks 2333 in codepeer mode. 2334 * freeze.adb: Minor grammar fix in comment. 23352016-06-14 Hristian Kirtchev <kirtchev@adacore.com> 2336 2337 * lib.adb: Minor reformatting. 2338 * sem_util.adb (Is_OK_Volatile_Context): Do 2339 include Address in the supported attributes. 2340 23412016-06-14 Hristian Kirtchev <kirtchev@adacore.com> 2342 2343 * exp_ch4.adb (Expand_N_Case_Expression): 2344 Code cleanup. Finalize any transient controlled 2345 objects on exit from a case expression alternative. 2346 (Expand_N_If_Expression): Code cleanup. 2347 (Process_Actions): Removed. 2348 (Process_If_Case_Statements): New routine. 2349 (Process_Transient_Object): Change the name of formal Rel_Node to 2350 N and update all occurrences. Update the comment on usage. When 2351 the type of the context is Boolean, the proper insertion point 2352 for the finalization call is after the last declaration. 2353 23542016-06-14 Ed Schonberg <schonberg@adacore.com> 2355 2356 * lib-xref.ads, lib-xref.adb (Has_Deferred_Reference): new 2357 predicate to determine whether an entity appears in a context 2358 for which a Deferred_Reference was created, because it is not 2359 possible to determine when reference is analyzed whether it 2360 appears in a context in which the entity is modified. 2361 * sem_ch5.adb (Analyze_Statement): Do not emit a useless warning 2362 on assignment for an entity that has a deferred_reference. 2363 23642016-06-14 Javier Miranda <miranda@adacore.com> 2365 2366 * sem_res.adb (Resolve_Actuals): Generate a reference to actuals that 2367 come from source. Previously the reference was generated only if the 2368 call comes from source but the call may be rewritten by the expander 2369 thus causing the notification of spurious warnings. 2370 23712016-06-14 Arnaud Charlet <charlet@adacore.com> 2372 2373 * gnat1drv.adb: Remove further references to AAMP. 2374 * checks.adb (Apply_Scalar_Range_Check): Take 2375 Check_Float_Overflow info account. 2376 * live.ads, live.adb Added subprogram headers and 2377 start-of-processing-for comments. 2378 * sem_ch12.adb (Instantiate_Package_Body): Do not suppress 2379 checks when instantiating runtime units in CodePeer mode. 2380 23812016-06-14 Arnaud Charlet <charlet@adacore.com> 2382 2383 * exp_ch3.adb (Expand_N_Object_Declaration): Only consider 2384 nodes from sources. 2385 23862016-06-14 Arnaud Charlet <charlet@adacore.com> 2387 2388 * switch-c.adb, gnat1drv.adb (Adjust_Global_Switches): Only disable 2389 simple value propagation in CodePeer mode when warnings are disabled. 2390 (Scan_Front_End_Switches): Enable relevant front-end switches 2391 when using -gnateC. 2392 23932016-06-14 Hristian Kirtchev <kirtchev@adacore.com> 2394 2395 * sem_util.adb (Is_OK_Volatile_Context): A 2396 reference to a volatile object is considered OK if appears as 2397 the prefix of attributes Address, Alignment, Component_Size, 2398 First_Bit, Last_Bit, Position, Size, Storage_Size. 2399 24002016-06-14 Yannick Moy <moy@adacore.com> 2401 2402 * lib-xref-spark_specific.adb (Add_SPARK_File): Do not traverse 2403 subunits directly, as they are already traversed as part of the 2404 top-level unit to which they belong. 2405 (Add_SPARK_Xrefs): Add assertions to ensure correct sorting. 2406 (Generate_Dereference): Use unique definition place for special 2407 variable __HEAP, to ensure correct sorting of references. 2408 * lib-xref.adb (Generate_Reference): Use top-level unit in case 2409 of subunits. 2410 * lib.adb, lib.ads (Get_Top_Level_Code_Unit): New functions that 2411 compute the top-level code unit for a source location of AST node, 2412 that go past subunits. 2413 24142016-06-13 Eric Botcazou <ebotcazou@adacore.com> 2415 2416 * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Build only a minimal 2417 PARM_DECL when the parameter type is dummy. 2418 * gcc-interface/trans.c (Call_to_gnu): Translate formal types before 2419 formal objects. 2420 24212016-06-13 Eric Botcazou <ebotcazou@adacore.com> 2422 2423 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with 2424 PLUS_EXPR in the expression of a renaming. 2425 24262016-06-13 Eric Botcazou <ebotcazou@adacore.com> 2427 2428 * gcc-interface/utils2.c (known_alignment) <CALL_EXPR>: Deal specially 2429 with calls to malloc. 2430 24312016-06-11 Eric Botcazou <ebotcazou@adacore.com> 2432 2433 * gcc-interface/trans.c (build_binary_op_trapv): If no operand is a 2434 constant, use the generic implementation of the middle-end; otherwise 2435 turn the dynamic conditions into static conditions and simplify. 2436 24372016-06-11 Eric Botcazou <ebotcazou@adacore.com> 2438 2439 * gcc-interface/trans.c (Case_Statement_to_gnu): Deal with characters. 2440 24412016-06-11 Pierre-Marie de Rodat <derodat@adacore.com> 2442 2443 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not clobber 2444 gnat_entity_name with temporary names for XUP and XUT types. 2445 24462016-06-10 Martin Sebor <msebor@redhat.com> 2447 2448 PR c/71392 2449 * gcc/ada/gcc-interface/utils.c (handle_nonnull_attribute): Accept 2450 the nonnull attribute in type-generic builtins. 2451 24522016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2453 2454 * gcc-interface/decl.c (Gigi_Equivalent_Type): Make sure equivalent 2455 types are present before returning them. Remove final assertion. 2456 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Adjust to 2457 above change. 2458 <E_Protected_Type>: Likewise. 2459 24602016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2461 2462 * gcc-interface/trans.c (elaborate_all_entities_for_package): Also do 2463 not elaborate Itypes. 2464 24652016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2466 2467 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support 2468 for noinline and noclone attributes. 2469 (handle_noinline_attribute): New handler. 2470 (handle_noclone_attribute): Likewise. 2471 24722016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2473 2474 * gcc-interface/trans.c (process_type): Beef up comment. 2475 24762016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2477 2478 * gcc-interface/utils2.c (build_call_alloc_dealloc): Do not substitute 2479 placeholder expressions here but... 2480 * gcc-interface/trans.c (gnat_to_gnu) <N_Free_Statement>: ...here. 2481 Make an exception to the protection of a CALL_EXPR result with an 2482 unconstrained type only in the same cases as Call_to_gnu. 2483 24842016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2485 2486 * gcc-interface/trans.c (gnat_to_gnu): Rework special code dealing 2487 with boolean rvalues and set the location directly. Do not set the 2488 location in the other cases for a simple name. 2489 (gnat_to_gnu_external): Clear the location on the expression. 2490 24912016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2492 2493 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Component>: Remove 2494 useless 'else' statements and tidy up. 2495 <E_Array_Subtype>: Fully deal with the declaration here. 2496 <E_Incomplete_Type>: Use properly-typed constant. 2497 Assert that we don't apply the special type treatment to dummy types. 2498 Separate this treatment from the final back-annotation and simplify 2499 the condition for the RM size. 2500 (gnat_to_gnu_param): Add GNU_PARAM_TYPE parameter and adjust. 2501 (gnat_to_gnu_subprog_type): Ajust call to gnat_to_gnu_param. 2502 * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Declaration>: Add 2503 comment. 2504 (process_freeze_entity): Remove obsolete code. 2505 (process_type): Minor tweaks. 2506 25072016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2508 2509 * einfo.ads (Returns_Limited_View): Remove. 2510 (Set_Returns_Limited_View ): Likewise. 2511 * einfo.adb (Returns_Limited_View): Likewise. 2512 (Set_Returns_Limited_View ): Likewise. 2513 * freeze.adb (Late_Freeze_Subprogram): Remove. 2514 (Freeze_Entity): Do not defer the freezing of functions returning an 2515 incomplete type coming from a limited context. 2516 25172016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2518 2519 * gcc-interface/gigi.h (finish_subprog_decl): Add ASM_NAME parameter. 2520 * gcc-interface/decl.c (gnu_ext_name_for_subprog): New function. 2521 (gnat_to_gnu_entity) <E_Subprogram_Type>: Do not check compatibility 2522 of profiles for builtins here... Call gnu_ext_name_for_subprog. 2523 Also update profiles if pointers to limited_with'ed types are 2524 updated. 2525 (gnat_to_gnu_param): Restore the correct source location information 2526 for vector ABI warnings. 2527 (associate_subprog_with_dummy_type): Add comment about AI05-019. 2528 Set TYPE_DUMMY_IN_PROFILE_P flag unconditionally. 2529 (update_profile): Deal with builtin declarations. 2530 Call gnu_ext_name_for_subprog. Adjust call to finish_subprog_decl. 2531 (update_profiles_with): Add comment. 2532 (gnat_to_gnu_subprog_type): Reuse the return type if it is complete. 2533 Likewise for parameter declarations in most cases. Do not change 2534 the return type for the CICO mechanism if the profile is incomplete. 2535 ...but here instead. Always reset the slot for the parameters. 2536 * gcc-interface/utils.c (create_subprog_decl): Call 2537 gnu_ext_name_for_subprog. Do not set the assembler name here but... 2538 (finish_subprog_decl): ...but here instead. Add ASM_NAME parameter. 2539 25402016-06-06 Eric Botcazou <ebotcazou@adacore.com> 2541 2542 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the 2543 declaration of the corresponding record type before that of the 2544 unprotected version of the subprograms that operate on it. 2545 (Expand_Access_Protected_Subprogram_Type): Declare the Equivalent_Type 2546 just before the original type. 2547 * sem_ch3.adb (Handle_Late_Controlled_Primitive): Point the current 2548 declaration to the newly created declaration for the primitive. 2549 (Analyze_Subtype_Declaration): Remove obsolete code forcing the 2550 freezing of the subtype before its declaration. 2551 (Replace_Anonymous_Access_To_Protected_Subprogram): Insert the new 2552 declaration in the nearest enclosing scope for formal parameters too. 2553 (Build_Derived_Access_Type): Restore the status of the created Itype 2554 after it is erased by Copy_Node. 2555 * sem_ch6.adb (Exchange_Limited_Views): Remove guard on entry. 2556 (Analyze_Subprogram_Body_Helper): Call Exchange_Limited_Views only if 2557 the specification is present. 2558 Move around the code changing the designated view of the return type 2559 and save the original view. Restore it on exit. 2560 * sem_ch13.adb (Build_Predicate_Function_Declaration): Always insert 2561 the declaration right after that of the type. 2562 25632016-06-01 Simon Wright <simon@pushface.org> 2564 2565 PR ada/71358 2566 * g-comlin.adb (Display_Section_Help): Do not dereference 2567 Config.Switches if it's null. 2568 (Getopt): Likewise. 2569 25702016-05-31 Eric Botcazou <ebotcazou@adacore.com> 2571 2572 * s-osinte-kfreebsd-gnu.ads (clock_getres): Define. 2573 (Get_Page_Size): Remove duplicate and return int. 2574 25752016-05-31 Jan Sommer <soja-lists@aries.uberspace.de> 2576 2577 PR ada/71317 2578 * s-osinte-rtems.ads (clock_getres): Define. 2579 (Get_Page_Size): Remove duplicate and return int. 2580 25812016-05-20 Eric Botcazou <ebotcazou@adacore.com> 2582 2583 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: 2584 Make same-sized subtypes of signed base types signed. 2585 * gcc-interface/utils.c (make_type_from_size): Adjust to above change. 2586 (unchecked_convert): Likewise. 2587 25882016-05-16 Eric Botcazou <ebotcazou@adacore.com> 2589 2590 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build 2591 a specific type for the object if it is deemed a constant. 2592 25932016-05-16 Eric Botcazou <ebotcazou@adacore.com> 2594 2595 * freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to 2596 components of any elementary types and of composite types. 2597 25982016-05-16 Eric Botcazou <ebotcazou@adacore.com> 2599 2600 * freeze.adb (Freeze_Array_Type): Call Addressable predicate instead 2601 of testing for individual sizes. 2602 (Freeze_Entity): Rework implementation of pragma Implicit_Packing for 2603 array types, in particular test for suitable sizes upfront and do not 2604 mimic the processing that will be redone later in Freeze_Array_Type. 2605 26062016-05-16 Eric Botcazou <ebotcazou@adacore.com> 2607 2608 * gcc-interface/trans.c (elaborate_all_entities_for_package): Also skip 2609 formal objects. 2610 26112016-05-16 Eric Botcazou <ebotcazou@adacore.com> 2612 2613 * doc/gnat_rm/implementation_defined_attributes.rst 2614 (Scalar_Storage_Order): Adjust restriction for packed array types. 2615 * einfo.ads (Is_Bit_Packed_Array): Adjust description. 2616 (Is_Packed): Likewise. 2617 (Is_Packed_Array_Impl_Type): Likewise. 2618 (Packed_Array_Impl_Type): Likewise. 2619 * exp_ch4.adb (Expand_N_Indexed_Component): Do not do anything special 2620 if the prefix is not a packed array implemented specially. 2621 * exp_ch6.adb (Expand_Actuals): Expand indexed components only for 2622 bit-packed array types. 2623 * exp_pakd.adb (Install_PAT): Set Is_Packed_Array_Impl_Type flag on 2624 the PAT before analyzing its declaration. 2625 (Create_Packed_Array_Impl_Type): Remove redundant statements. 2626 * freeze.adb (Check_Component_Storage_Order): Reject packed array 2627 components only if they are bit packed. 2628 (Freeze_Array_Type): Fix logic detecting bit packing and do not bit 2629 pack for composite types whose size is multiple of a byte. 2630 Create the implementation type for packed array types only when it is 2631 needed, i.e. bit packing or packing because of holes in index types. 2632 Make sure the Has_Non_Standard_Rep and Is_Packed flags agree. 2633 * gcc-interface/gigi.h (make_packable_type): Add MAX_ALIGN parameter. 2634 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: 2635 Call maybe_pad_type instead of building the padding type manually. 2636 (gnat_to_gnu_entity) <E_Array_Subtype>: Do not assert that 2637 Packed_Array_Impl_Type is present for packed arrays. 2638 (gnat_to_gnu_component_type): Also handle known alignment for packed 2639 types by passing it to make_packable_type. 2640 * gcc-interface/utils.c (make_packable_type): Add MAX_ALIGN parameter 2641 and deal with it in the array case. Adjust recursive call. Simplify 2642 computation of new size and cap the alignment to BIGGEST_ALIGNMENT. 2643 26442016-05-16 Thomas Quinot <quinot@adacore.com> 2645 2646 * freeze.adb (Check_Component_Storage_Order): Also get full view of 2647 enclosing type. 2648 26492016-05-16 Eric Botcazou <ebotcazou@adacore.com> 2650 2651 * exp_util.adb (Remove_Side_Effects): Also make a constant if we need 2652 to capture the value for a small not by-reference record type. 2653 * freeze.ads (Check_Compile_Time_Size): Adjust comment. 2654 * freeze.adb (Set_Small_Size): Likewise. Accept a size in the range 2655 of 33 .. 64 bits. 2656 (Check_Compile_Time_Size): Merge scalar and access type cases. Change 2657 variable name in array type case. For the computation of the packed 2658 size, deal with record components and remove redundant test. 2659 (Freeze_Array_Type): Also adjust packing status when the size of the 2660 component type is in the range 33 .. 64 bits. 2661 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Turn primitive 2662 into elementary type throughout. Minor tweaks. 2663 (Alignment Clauses): Document actual alignment of packed array types. 2664 (Pragma Pack for Arrays): List only the 3 main cases and adjust. Add 2665 "simple" to the record case. Document effect on non packable types. 2666 (Pragma Pack for Records): Likewise. Add record case and adjust. 2667 26682016-05-16 Eric Botcazou <ebotcazou@adacore.com> 2669 2670 * gcc-interface/Make-lang.in (GNATMAKE_FOR_HOST): In the canadian 2671 cross case, use host_noncanonical instead of host as prefix. 2672 (GNATBIND_FOR_HOST): Likewise. 2673 (GNATLINK_FOR_HOST): Likewise. 2674 (GNATLS_FOR_HOST): Likewise. 2675 26762016-05-06 Eric Botcazou <ebotcazou@adacore.com> 2677 2678 PR ada/70969 2679 * system-darwin-ppc64.ads: Add pragma No_Elaboration_Code_All. 2680 * system-linux-armeb.ads: Likewise. 2681 * system-linux-mips64el.ads: Likewise. 2682 * system-linux-mips.ads: Likewise. 2683 * system-linux-mipsel.ads: Likewise. 2684 * system-linux-ppc64.ads: Likewise. 2685 * system-linux-sparcv9.ads: Likewise. 2686 * system-rtems.ads: Likewise. 2687 26882016-05-04 Samuel Thibault <samuel.thibault@ens-lyon.org> 2689 2690 * s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize 2691 instead of __getpagesize. 2692 26932016-05-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2694 2695 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach. 2696 Honor DESTDIR. 2697 26982016-05-02 Tristan Gingold <gingold@adacore.com> 2699 2700 * fname.adb (Is_Predefined_File_Name): Also consider non-krunched 2701 i-* names. 2702 27032016-05-02 Ed Schonberg <schonberg@adacore.com> 2704 2705 * sem_util.adb (Aggregate_Constraint_Checks): Separate 2706 accessibility checks and non-null checks for aggregate components, 2707 to prevent spurious accessibility errors. 2708 27092016-05-02 Ed Schonberg <schonberg@adacore.com> 2710 2711 * sem_ch3.adb (OK_For_Limited_Init): A type conversion is not 2712 always legal in the in-place initialization of a limited entity 2713 (e.g. an allocator). 2714 * sem_res.adb (Resolve_Allocator): Improve error message with RM 2715 reference when allocator expression is illegal. 2716 27172016-05-02 Ed Schonberg <schonberg@adacore.com> 2718 2719 * exp_ch6.adb (Expand_Call): When inlining a call to a function 2720 declared in a package instance, locate the instance node of the 2721 package after the actual package declaration. skipping over 2722 pragmas that may have been introduced when the generic unit 2723 carries aspects that are transformed into pragmas. 2724 27252016-05-02 Bob Duff <duff@adacore.com> 2726 2727 * s-memory.adb (Alloc, Realloc): Move checks 2728 for Size = 0 or size_t'Last into the Result = System.Null_Address 2729 path for efficiency. Improve comments (based on actual C language 2730 requirements for malloc). 2731 * exp_util.adb (Build_Allocate_Deallocate_Proc): Optimize the 2732 case where we are using the default Global_Pool_Object, and we 2733 don't need the heavy finalization machinery. 2734 27352016-05-02 Gary Dismukes <dismukes@adacore.com> 2736 2737 * exp_util.ads, sem_ch12.adb: Minor reformatting. 2738 27392016-05-02 Javier Miranda <miranda@adacore.com> 2740 2741 * exp_util.ads, exp_util.adb (Force_Evaluation): Adding new formal. 2742 (Remove_Side_Effects): Adding a new formal. 2743 * exp_ch6.adb (Expand_Simple_Function_Return): Generating the 2744 call to the _Postconditions procedure ensure that side-effects 2745 are unconditionally removed. 2746 27472016-05-02 Ed Schonberg <schonberg@adacore.com> 2748 2749 * sem_ch12.adb (Check_Formal_Package_Instance, Check_Mismatch): 2750 Use original node to determine whether the declaration is for 2751 a formal type declaration, to take into account that formwl 2752 private types are rewritten as private extension declarations 2753 to simplify semantic analysis. 2754 27552016-05-02 Gary Dismukes <dismukes@adacore.com> 2756 2757 * exp_ch9.adb, sem_ch6.adb, sem_ch6.ads: Minor reformatting and typo 2758 fixes. 2759 27602016-05-02 Hristian Kirtchev <kirtchev@adacore.com> 2761 2762 * sem_ch3.adb, exp_ch9.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb: Minor 2763 reformatting. 2764 27652016-05-02 Ed Schonberg <schonberg@adacore.com> 2766 2767 * exp_ch4.adb (Expand_N_Allocator): If the designated type 2768 is a private derived type with no discriminants, examine its 2769 underlying_full_view to determine whether the full view has 2770 defaulted discriminants, so their defaults can be used in the 2771 call to the initialization procedure for the designated object. 2772 27732016-05-02 Hristian Kirtchev <kirtchev@adacore.com> 2774 2775 * exp_prag.adb, comperr.adb: Minor reformatting. 2776 27772016-05-02 Ed Schonberg <schonberg@adacore.com> 2778 2779 * exp_pakd.adb (Rj_Unchecked_Convert_To): Do not perform an 2780 unchecked conversion if the source size is 0 (indicating that 2781 its RM size is unknown). This will happen with packed arrays of 2782 non-discrete types, in which case the component type is known 2783 to match. 2784 27852016-05-02 Arnaud Charlet <charlet@adacore.com> 2786 2787 * debug.adb: Reserve -gnatd.V. 2788 27892016-05-02 Javier Miranda <miranda@adacore.com> 2790 2791 * sem_ch3.adb (Process_Full_View): Remove from visibility 2792 wrappers of synchronized types to avoid spurious errors with 2793 their wrapped entity. 2794 * exp_ch9.adb (Build_Wrapper_Spec): Do not generate the wrapper 2795 if no interface primitive is covered by the subprogram and this is 2796 not a primitive declared between two views; see Process_Full_View. 2797 (Build_Protected_Sub_Specification): Link the dispatching 2798 subprogram with its original non-dispatching protected subprogram 2799 since their names differ. 2800 (Expand_N_Protected_Type_Declaration): 2801 If a protected subprogram overrides an interface primitive then 2802 do not build a wrapper if it was already built. 2803 * einfo.ads, einfo.adb (Original_Protected_Subprogram): New attribute. 2804 * sem_ch4.adb (Names_Match): New subprogram. 2805 * sem_ch6.adb (Check_Synchronized_Overriding): Moved 2806 to library level and defined in the public part of the 2807 package to invoke it from Exp_Ch9.Build_Wrapper_Spec 2808 (Has_Matching_Entry_Or_Subprogram): New subprogram. 2809 (Report_Conflict): New subprogram. 2810 28112016-05-02 Jerome Lambourg <lambourg@adacore.com> 2812 2813 * s-unstyp.ads: Code cleanups. 2814 28152016-05-02 Hristian Kirtchev <kirtchev@adacore.com> 2816 2817 * sem_ch13.adb (Size_Too_Small_Error): Fix the error message format. 2818 28192016-05-02 Ed Schonberg <schonberg@adacore.com> 2820 2821 * exp_prag.adb (Expand_attributes_In_Consequence, 2822 Expand_Attributes): If the prefix of'Old is an unconstrained type, 2823 for example an unconstrained formal of the enclosing subprogram, 2824 create an object declaration with an expression to obtain the 2825 actual subtype of the temporary. 2826 28272016-05-02 Arnaud Charlet <charlet@adacore.com> 2828 2829 * comperr.adb (Delete_SCIL_Files): Add missing handling of 2830 N_Subprogram_Declaration. 2831 28322016-05-02 Gary Dismukes <dismukes@adacore.com> 2833 2834 * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb, 2835 gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo 2836 fixes. 2837 * sem_prag.adb, sem_ch12.adb: Minor typo fixes. 2838 28392016-05-02 Ed Schonberg <schonberg@adacore.com> 2840 2841 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The 2842 function call may be wrapped in an explicit type conversion. 2843 28442016-05-02 Jerome Lambourg <lambourg@adacore.com> 2845 2846 * interfac.ads: use pragma No_Elaboration_Code_All. 2847 * s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All. 2848 28492016-05-02 Ed Schonberg <schonberg@adacore.com> 2850 2851 * sem.adb (Analyze: If node is an error node previously created 2852 by the parser, disable expansion to prevent subsequent glitches 2853 in error recovery. 2854 28552016-05-02 Hristian Kirtchev <kirtchev@adacore.com> 2856 2857 * sem_ch13.adb (Alignment_Error): Removed. 2858 (Get_Alignment_Value): Code cleanup. 2859 28602016-05-02 Tristan Gingold <gingold@adacore.com> 2861 2862 * sem_ch3.adb (Analyze_Object_Declaration): Use Has_Protected 2863 to check for the no local protected objects restriction. 2864 28652016-05-02 Hristian Kirtchev <kirtchev@adacore.com> 2866 2867 * einfo.adb Anonymous_Master now uses Node35. 2868 (Anonymous_Master): Update the assertion and node reference. 2869 (Set_Anonymous_Master): Update the assertion and node reference. 2870 (Write_Field35_Name): Add output for Anonymous_Master. 2871 (Write_Field36_Name): The output is now undefined. 2872 * einfo.ads Update the node and description of attribute 2873 Anonymous_Master. Remove prior occurrences in entities as this 2874 is now a type attribute. 2875 * exp_ch3.adb (Expand_Freeze_Array_Type): Remove local variable 2876 Ins_Node. Anonymous access- to-controlled component types no 2877 longer need finalization masters. The master is now built when 2878 a related allocator is expanded. 2879 (Expand_Freeze_Record_Type): Remove local variable Has_AACC. Do not 2880 detect whether the record type has at least one component of anonymous 2881 access-to- controlled type. These types no longer need finalization 2882 masters. The master is now built when a related allocator is expanded. 2883 * exp_ch4.adb Remove with and use clauses for Lib and Sem_Ch8. 2884 (Current_Anonymous_Master): Removed. 2885 (Expand_N_Allocator): Call Build_Anonymous_Master to create a 2886 finalization master for an anonymous access-to-controlled type. 2887 * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call): 2888 Call routine Build_Anonymous_Master to create a finalization master 2889 for an anonymous access-to-controlled type. 2890 * exp_ch7.adb (Allows_Finalization_Master): New routine. 2891 (Build_Anonymous_Master): New routine. 2892 (Build_Finalization_Master): Remove formal parameter 2893 For_Anonymous. Use Allows_Finalization_Master to determine whether 2894 circumstances warrant a finalization master. This routine no 2895 longer creates masters for anonymous access-to-controlled types. 2896 (In_Deallocation_Instance): Removed. 2897 * exp_ch7.ads (Build_Anonymous_Master): New routine. 2898 (Build_Finalization_Master): Remove formal parameter For_Anonymous 2899 and update the comment on usage. 2900 * sem_util.adb (Get_Qualified_Name): New routines. 2901 (Output_Name): Reimplemented. 2902 (Output_Scope): Removed. 2903 * sem_util.ads (Get_Qualified_Name): New routines. 2904 29052016-05-02 Hristian Kirtchev <kirtchev@adacore.com> 2906 2907 * debug.adb: Document the use of switch -gnatd.H. 2908 * gnat1drv.adb (Adjust_Global_Switches): Set ASIS_GNSA mode when 2909 -gnatd.H is present. 2910 (Gnat1drv): Suppress the call to gigi when ASIS_GNSA mode is active. 2911 * opt.ads: Add new option ASIS_GNSA_Mode. 2912 * sem_ch13.adb (Alignment_Error): New routine. 2913 (Analyze_Attribute_Definition_Clause): Suppress certain errors in 2914 ASIS mode for attribute clause Alignment, Machine_Radix, Size, and 2915 Stream_Size. 2916 (Check_Size): Use routine Size_Too_Small_Error to 2917 suppress certain errors in ASIS mode. 2918 (Get_Alignment_Value): Use routine Alignment_Error to suppress certain 2919 errors in ASIS mode. 2920 (Size_Too_Small_Error): New routine. 2921 29222016-05-02 Arnaud Charlet <charlet@adacore.com> 2923 2924 * spark_xrefs.ads Description of the spark cross-references 2925 clarified; small style fixes. 2926 * lib-xref-spark_specific.adb (Add_SPARK_Scope, 2927 Detect_And_Add_SPARK_Scope): consider protected types and bodies 2928 as yet another scopes. 2929 (Enclosing_Subprogram_Or_Library_Package): refactored using 2930 Hristian's suggestions; added support for scopes of protected 2931 types and bodies; fix for entries to return the scope of the 2932 enclosing concurrent type, which is consistent with what is 2933 returned for protected subprograms. 2934 * sem_intr.adb: Minor style fix in comment. 2935 29362016-05-02 Hristian Kirtchev <kirtchev@adacore.com> 2937 2938 * lib-xref.ads, lib-xref-spark_specific.adb, get_spark_xrefs.adb, 2939 put_spark_xrefs.adb: Minor reformatting. 2940 29412016-05-02 Doug Rupp <rupp@adacore.com> 2942 2943 * g-traceb.ads: Document traceback for ARM. 2944 29452016-05-02 Javier Miranda <miranda@adacore.com> 2946 2947 * exp_disp.adb (Make_Tags): Do not generate the 2948 external name of interface tags adding the suffix counter since 2949 it causes problems at link time when the IP routines are inlined 2950 across units with optimization. 2951 29522016-05-02 Ed Schonberg <schonberg@adacore.com> 2953 2954 * einfo.ads, einfo.adb (Predicates_Ignared): new flag to indicate 2955 that predicate checking is disabled for predicated subtypes in 2956 the context of an Assertion_Policy pragma. 2957 * checks.adb (Apply_Predicate_Check): Do nothing if 2958 Predicates_Ignored is true. 2959 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): If 2960 Predicates_Ignores is true, the function Rep_To_Pos does raise 2961 an exception for invalid data. 2962 * exp_ch4.adb (Expand_N_Type_Conversion): IF target is a predicated 2963 type do not apply check if Predicates_Ignored is true. 2964 * exp_ch5.adb (Expand_N_Case_Statement): If Predicates_Ignored 2965 is true, sem_prag.adb: 2966 * sem_ch3.adb (Analyze_Object_Declaration): If Predicates_Ignored 2967 is true do not emit predicate check on initializing expression. 2968 29692016-05-02 Arnaud Charlet <charlet@adacore.com> 2970 2971 * get_spark_xrefs.adb (Get_Nat, Get_Name): Initialize variables when 2972 they are declared; refine type of a counter from Integer to Natural. 2973 * sem_ch5.adb, gnatcmd.adb, s-intman-posix.adb, eval_fat.adb, 2974 prj.adb, sem_util.adb, s-intman-android.adb, prj-nmsc.adb, sem_ch8.adb, 2975 exp_ch3.adb: Minor editing. 2976 29772016-05-02 Yannick Moy <moy@adacore.com> 2978 2979 * a-tigeli.adb (Get_Line): Always set Last prior to returning. 2980 29812016-05-02 Yannick Moy <moy@adacore.com> 2982 2983 * lib-xref.adb: Minor style fix in whitespace of declarations. 2984 * put_spark_xrefs.adb (Put_SPARK_Xrefs): printing of strings 2985 refactored without loops. 2986 * put_spark_xrefs.ads (Write_Info_Str): new formal argument of 2987 generic procedure. 2988 * spark_xrefs.adb (Write_Info_Str): new actual in instantiation 2989 of generic procedure. 2990 29912016-05-02 Arnaud Charlet <charlet@adacore.com> 2992 2993 * lib-xref-spark_specific.adb (Add_SPARK_Scope): add task type scope. 2994 (Detect_And_Add_SPARK_Scope): detect and add task type scope. 2995 (Enclosing_Subprogram_Or_Package): Respect boundaries of task 2996 and entry declarations. 2997 * spark_xrefs.ads: minor typo in comment. 2998 29992016-05-02 Arnaud Charlet <charlet@adacore.com> 3000 3001 * make.adb: Minor: avoid an exception when calling gnatmake with 3002 no argument and gnatmake is built with checks on. 3003 * lib-xref-spark_specific.adb: Minor code cleanup. 3004 30052016-05-02 Ed Schonberg <schonberg@adacore.com> 3006 3007 * sem_util.adb (Normalize_Actuals): Take into account extra 3008 actuals that may have been introduced previously. Normally extra 3009 actuals are introduced when a call is expanded, but a validity 3010 check may copy and reanalyze a call that carries an extra actual 3011 (e.g. an accessibility parameter) before the call itself is 3012 marked Analzyed, and the analysis of the copy has to be able to 3013 cope with the added actual. 3014 30152016-05-02 Bob Duff <duff@adacore.com> 3016 3017 * sem_ch10.adb (Analyze_Compilation_Unit): Preserve 3018 treeishness. Previous version had Context_Items shared between 3019 the spec and body. 3020 30212016-05-02 Ed Schonberg <schonberg@adacore.com> 3022 3023 * sem_aggr.adb (Resolve_Aggr_Expression): For both array and 3024 record cases, apply predicate check on component for expression 3025 only if expression has been analyzed already. For expressions 3026 that need to be duplicated when they cover multiple components, 3027 resolution and predicate checking take place later. 3028 30292016-05-02 Olivier Hainque <hainque@adacore.com> 3030 3031 * a-direct.adb (Delete_Tree): Use full names to designate subdirs 3032 and files therein, instead of local names after a change of 3033 current directory. 3034 30352016-05-02 Thomas Quinot <quinot@adacore.com> 3036 3037 * freeze.adb (Check_Component_Storage_Order): Get full view of 3038 component type. 3039 30402016-05-02 Hristian Kirtchev <kirtchev@adacore.com> 3041 3042 * checks.adb, freeze.adb, sem_res.adb, s-stposu.adb, repinfo.adb: 3043 Minor reformatting. 3044 30452016-05-02 Hristian Kirtchev <kirtchev@adacore.com> 3046 3047 * sem_ch4.adb (Find_Indexing_Operations): Use the underlying type 3048 of the container base type in case the container is a subtype. 3049 * sem_ch5.adb (Analyze_Iterator_Specification): Ensure that 3050 the selector has an entity when checking for a component of a 3051 mutable object. 3052 30532016-05-02 Arnaud Charlet <charlet@adacore.com> 3054 3055 Remove dead code. 3056 * opt.ads (Latest_Ada_Only): New flag. 3057 * sem_prag.adb, par-prag.adb: Ignore pragma Ada_xx under this flag. 3058 * usage.adb, switch-c.adb: Disable support for -gnatxx under this flag. 3059 * einfo.ads (Has_Predicates, Predicate_Function): 3060 Clarify that Has_Predicates does not imply that Predicate_Function 3061 will return a non-empty entity. 3062 30632016-05-02 Ed Schonberg <schonberg@adacore.com> 3064 3065 * sem_res.adb (Resolve_Qualified_Expression): Generate a predicate 3066 check if type requires it. 3067 * checks.adb (Apply_Predicate_Check): Disable checks in the 3068 object declaration created for an expression with side-effects 3069 that requires a predicate check to prevent infinite recursion 3070 during expansion. 3071 30722016-05-02 Ed Schonberg <schonberg@adacore.com> 3073 3074 * sem_ch6.adb (Process_Formals): Check properly the type of a 3075 formal to determine whether a given convention applies to it. 3076 30772016-05-02 Doug Rupp <rupp@adacore.com> 3078 3079 * tracebak.c: Add incantations for arm-vxworks[67] traceback. 3080 30812016-05-02 Thomas Quinot <quinot@adacore.com> 3082 3083 * freeze.adb (Check_Component_Storage_Order): Make it a warning, not an 3084 error, to have a component with implicit SSO within a composite type 3085 that has explicit SSO. 3086 30872016-05-02 Bob Duff <duff@adacore.com> 3088 3089 * s-stposu.adb (Allocate_Any_Controlled): Don't lock/unlock twice. 3090 30912016-05-02 Ed Schonberg <schonberg@adacore.com> 3092 3093 * repinfo.adb (List_Entities): Make procedure recursive, to 3094 provide representation information for subprograms declared 3095 within subprogram bodies. 3096 30972016-05-02 Arnaud Charlet <charlet@adacore.com> 3098 3099 * exp_ch5.adb, layout.adb, gnatcmd.adb exp_attr.adb, make.adb, 3100 bindgen.adb, debug.adb, exp_pakd.adb, freeze.adb, sem_util.adb, 3101 gnatlink.adb, switch-m.adb, exp_ch4.adb, repinfo.adb, adabkend.adb, 3102 osint.adb: Remove dead code. 3103 31042016-05-02 Yannick Moy <moy@adacore.com> 3105 3106 * a-tigeli.adb (Get_Line): Fix bound for test to 3107 decide when to compensate for character 0 added by call to fgets. 3108 31092016-05-02 Ed Schonberg <schonberg@adacore.com> 3110 3111 * sem_ch4.adb (Analyze_Allocator): If the expression does not 3112 have a subtype indication and the type is an unconstrained tagged 3113 type with defaulted discriminants, create an explicit constraint 3114 for it during analysis to prevent out-of-order freezing actions 3115 on generated classwide types. 3116 31172016-05-02 Javier Miranda <miranda@adacore.com> 3118 3119 * exp_ch5.adb (Expand_N_Assignment_Statement): 3120 In the runtime check that ensures that the tags of source an 3121 target match, add missing displacement of the pointer to the 3122 objects if they cover interface types. 3123 31242016-05-02 Ed Schonberg <schonberg@adacore.com> 3125 3126 * sem_attr.adb (Analyze_Attribute, case 'Old): Do not use 3127 base type for attribute when type is discrete: transformation 3128 is not needed for such types, and leads to spurious errors if 3129 the context is a case construct. 3130 31312016-05-02 Eric Botcazou <ebotcazou@adacore.com> 3132 3133 * gcc-interface/decl.c (elaborate_reference_1): Do not bother about 3134 operand #2 for COMPONENT_REF. 3135 * gcc-interface/utils2.c (gnat_save_expr): Likewise. 3136 (gnat_protect_expr): Likewise. 3137 (gnat_stabilize_reference_1): Likewise. 3138 (gnat_rewrite_reference): Do not bother about operand #3 for ARRAY_REF. 3139 (get_inner_constant_reference): Likewise. 3140 (gnat_invariant_expr): Likewise. 3141 * gcc-interface/trans.c (fold_constant_decl_in_expr): Likewise. 3142 31432016-05-02 Eric Botcazou <ebotcazou@adacore.com> 3144 3145 * gcc-interface/trans.c (Range_to_gnu): New static function. 3146 (Raise_Error_to_gnu) <N_In>: Call it to translate the range. 3147 (gnat_to_gnu) <N_In>: Likewise. 3148 31492016-04-30 Eric Botcazou <ebotcazou@adacore.com> 3150 3151 * gcc-interface/Make-lang.in (ACATSCMD): New variable. 3152 (check-acats): Use it. 3153 (check_acats_targets): Likewise. 3154 31552016-04-28 Eric Botcazou <ebotcazou@adacore.com> 3156 3157 PR ada/70786 3158 * a-textio.adb (Get_Immediate): Add missing 'not' in expression. 3159 31602016-04-27 Eric Botcazou <ebotcazou@adacore.com> 3161 3162 * sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged 3163 incomplete type without full view. 3164 * sem_ch6.adb (Exchange_Limited_Views): Change into a function and 3165 return the list of changes. 3166 (Restore_Limited_Views): New procedure to undo the transformation made 3167 by Exchange_Limited_Views. 3168 (Analyze_Subprogram_Body_Helper): Adjust call to Exchange_Limited_Views 3169 and call Restore_Limited_Views at the end, if need be. 3170 (Possible_Freeze): Do not delay freezing because of incomplete types. 3171 (Process_Formals): Remove kludges for class-wide types. 3172 * types.h (By_Copy_Return): Delete. 3173 * gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): Move around. 3174 (TYPE_DUMMY_IN_PROFILE_P): New macro. 3175 * gcc-interface/gigi.h (update_profiles_with): Declare. 3176 (finish_subprog_decl): Likewise. 3177 (get_minimal_subprog_decl): Delete. 3178 (create_subprog_type): Likewise. 3179 (create_param_decl): Adjust prototype. 3180 (create_subprog_decl): Likewise. 3181 * gcc-interface/decl.c (defer_limited_with): Rename into... 3182 (defer_limited_with_list): ...this. 3183 (gnat_to_gnu_entity): Adjust to above renaming. 3184 (finalize_from_limited_with): Likewise. 3185 (tree_entity_vec_map): New structure. 3186 (gt_pch_nx): New helpers. 3187 (dummy_to_subprog_map): New hash table. 3188 (gnat_to_gnu_param): Set the SLOC here. Remove MECH parameter and 3189 add FIRST parameter. Deal with the mechanism here instead of... 3190 Do not make read-only variant of types. Simplify expressions. 3191 In the by-ref case, test the mechanism before must_pass_by_ref 3192 and also TYPE_IS_BY_REFERENCE_P before building the reference type. 3193 (gnat_to_gnu_subprog_type): New static function extracted from... 3194 Do not special-case the type_annotate_only mode. Call 3195 gnat_to_gnu_profile_type instead of gnat_to_gnu_type on return type. 3196 Deal with dummy return types. Likewise for parameter types. Deal 3197 with by-reference types explicitly and add a kludge for null procedures 3198 with untagged incomplete types. Remove assertion on the types and be 3199 prepared for multiple elaboration of the declarations. Skip the whole 3200 CICO processing if the profile is incomplete. Handle the completion of 3201 a previously incomplete profile. 3202 (gnat_to_gnu_entity) <E_Variable>: Rename local variable. 3203 Adjust couple of calls to create_param_decl. 3204 <E_Access_Subprogram_Type, E_Anonymous_Access_Subprogram_Type>: 3205 Remove specific deferring code. 3206 <E_Access_Type>: Also deal with E_Subprogram_Type designated type. 3207 Simplify handling of dummy types and remove obsolete comment. 3208 Constify a couple of variables. Do not set TYPE_UNIVERSAL_ALIASING_P 3209 on dummy types. 3210 <E_Access_Subtype>: Tweak comment and simplify condition. 3211 <E_Subprogram_Type>: ...here. Call it and clean up handling. Remove 3212 obsolete comment and adjust call to gnat_to_gnu_param. Adjust call to 3213 create_subprog_decl. 3214 <E_Incomplete_Type>: Add a couple of 'const' qualifiers and get rid of 3215 inner break statements. Tidy up condition guarding direct use of the 3216 full view. 3217 (get_minimal_subprog_decl): Delete. 3218 (finalize_from_limited_with): Call update_profiles_with on dummy types 3219 with TYPE_DUMMY_IN_PROFILE_P set. 3220 (is_from_limited_with_of_main): Delete. 3221 (associate_subprog_with_dummy_type): New function. 3222 (update_profile): Likewise. 3223 (update_profiles_with): Likewise. 3224 (gnat_to_gnu_profile_type): Likewise. 3225 (init_gnat_decl): Initialize dummy_to_subprog_map. 3226 (destroy_gnat_decl): Destroy dummy_to_subprog_map. 3227 * gcc-interface/misc.c (gnat_get_alias_set): Add guard for accessing 3228 TYPE_UNIVERSAL_ALIASING_P. 3229 (gnat_get_array_descr_info): Minor tweak. 3230 * gcc-interface/trans.c (gigi): Adjust calls to create_subprog_decl. 3231 (build_raise_check): Likewise. 3232 (Compilation_Unit_to_gnu): Likewise. 3233 (Identifier_to_gnu): Accept mismatches coming from a limited context. 3234 (Attribute_to_gnu): Remove kludge for dispatch table entities. 3235 (process_freeze_entity): Do not retrieve old definition if there is an 3236 address clause on the entity. Call update_profiles_with on dummy types 3237 with TYPE_DUMMY_IN_PROFILE_P set. 3238 * gcc-interface/utils.c (build_dummy_unc_pointer_types): Also set 3239 TYPE_REFERENCE_TO to the fat pointer type. 3240 (create_subprog_type): Delete. 3241 (create_param_decl): Remove READONLY parameter. 3242 (finish_subprog_decl): New function extracted from... 3243 (create_subprog_decl): ...here. Call it. Remove CONST_FLAG and 3244 VOLATILE_FLAG parameters and adjust. 3245 (update_pointer_to): Also clear TYPE_REFERENCE_TO in the unconstrained 3246 case. 3247 32482016-04-27 Arnaud Charlet <charlet@adacore.com> 3249 3250 * aa_util.adb, aa_util.ads: Removed, no longer used. 3251 32522016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3253 3254 * sem_prag.adb (Analyze_Pragma): An object 3255 renaming declaration resulting from the expansion of an object 3256 declaration is a suitable context for pragma Ghost. 3257 32582016-04-27 Doug Rupp <rupp@adacore.com> 3259 3260 * init.c: Refine last checkin so the only requirement is the 3261 signaling compilation unit is compiled with the same mode as 3262 the compilation unit containing the initial landing pad. 3263 32642016-04-27 Ed Schonberg <schonberg@adacore.com> 3265 3266 * sem_ch13.adb (Valid_Default_Iterator): Better filter of illegal 3267 specifications for Default_Iterator, including overloaded cases 3268 where no interpretations are legal, and return types that are 3269 not iterator types. 3270 32712016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3272 3273 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not install 3274 an accessibility check when the left hand side of the assignment 3275 denotes a container cursor. 3276 * exp_util.ads, exp_util.adb (Find_Primitive_Operations): Removed. 3277 * sem_ch4.adb (Find_Indexing_Operations): New routine. 3278 (Try_Container_Indexing): Code cleanup. 3279 32802016-04-27 Arnaud Charlet <charlet@adacore.com> 3281 3282 * sem_ch10.adb, sem_case.adb: Mark messages udner -gnatwr when needed. 3283 32842016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3285 3286 * errout.adb, errutil.adb: Minor reformatting. 3287 32882016-04-27 Ed Schonberg <schonberg@adacore.com> 3289 3290 * sem_ch13.adb (Analyze_Aspect_Specifications, case Pre/Post): 3291 Check that the classwide version is illegal when the prefix is 3292 an operation of an untagged synchronized type. 3293 32942016-04-27 Arnaud Charlet <charleT@adacore.com> 3295 3296 * sinput-l.ads, sem_ch13.adb: Minor editing. 3297 32982016-04-27 Doug Rupp <rupp@adacore.com> 3299 3300 * init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]: 3301 Bump the pc so the lower order bit is set. 3302 33032016-04-27 Ed Schonberg <schonberg@adacore.com> 3304 3305 * sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is 3306 enabled, report an empty range in a case construct. 3307 33082016-04-27 Arnaud Charlet <charlet@adacore.com> 3309 3310 * sinput.ads, a-cfdlli.adb, a-crbtgo.adb, a-chtgop.adb, a-cbhama.adb, 3311 a-rbtgbo.adb, a-crdlli.adb, a-chtgbo.adb: Minor editing. 3312 33132016-04-27 Bob Duff <duff@adacore.com> 3314 3315 * a-chtgop.adb (Adjust): Zero the tampering counts on assignment, 3316 as is done for the other containers. 3317 33182016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3319 3320 * ghost.adb (In_Subprogram_Body_Profile): New routine. 3321 (Is_OK_Declaration): Treat an unanalyzed expression 3322 function as an OK context. Treat a reference to a Ghost entity 3323 as OK when it appears within the profile of a subprogram body. 3324 33252016-04-27 Bob Duff <duff@adacore.com> 3326 3327 * errout.ads: Document the fact that informational messages 3328 don't have to be warnings. 3329 * errout.adb (Error_Msg_Internal): In statistics counts, deal 3330 correctly with informational messages that are not warnings. 3331 (Error_Msg_NEL): Remove useless 'if' aroung Set_Posted, because 3332 Set_Posted already checks for errors and ignores others. 3333 * erroutc.adb (Prescan_Message): Set Is_Serious_Error to False 3334 if Is_Info_Msg; the previous code was assuming that Is_Info_Msg 3335 implies Is_Warning_Msg. 3336 * errutil.adb (Error_Msg): In statistics counts, deal correctly 3337 with informational messages that are not warnings. 3338 33392016-04-27 Ed Schonberg <schonberg@adacore.com> 3340 3341 * sem_util.ads, sem_util.adb (Is_Null_Record_Type): New predicate 3342 to determine whether a record type is a null record. 3343 * sem_ch3.adb (Analyze_Object_Declaration): If the type is a 3344 null record and there is no expression in the declaration, 3345 no predicate check applies to the object. 3346 33472016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3348 3349 * sem_ch7.adb (Analyze_Package_Body_Helper): The body of an 3350 instantiated package should not cause freezing of previous contracts. 3351 33522016-04-27 Ed Schonberg <schonberg@adacore.com> 3353 3354 * sem_dim.adb (Analyze_Dimension): Handle subtype declarations 3355 that do not come from source. 3356 (Analyze_Dimension_Subtype_Declaration): Allow confirming 3357 dimensions on subtype entity, either inherited from base type 3358 or provided by aspect specification. 3359 33602016-04-27 Ed Schonberg <schonberg@adacore.com> 3361 3362 * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution): 3363 Add scalar formal object Zero, to allow detection and report 3364 when the matrix is singular. 3365 * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution): 3366 Raise Constraint_Error if the Forward_Eliminate pass has 3367 determined that determinant is Zero.o 3368 * s-ngrear.adb (Solve): Add actual for Zero in corresponding 3369 instantiations. 3370 * s-ngcoar.adb (Solve): Ditto. 3371 33722016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3373 3374 * sem_ch3.adb: Minor reformatting. 3375 33762016-04-27 Ed Schonberg <schonberg@adacore.com> 3377 3378 * sem_dim.adb (Analyze_Dimension, case N_Identifier): Check 3379 that identifier has a usable type before analysis, to handle 3380 properly identifiers introduced after some lexical/syntactic 3381 recovery that created new identifiers. 3382 33832016-04-27 Bob Duff <duff@adacore.com> 3384 3385 * a-coinve.adb, a-comutr.adb, a-conhel.adb, a-convec.adb, 3386 exp_util.adb: Remove assertions that can fail in obscure cases when 3387 assertions are turned on but tampering checks are turned off. 3388 33892016-04-27 Javier Miranda <miranda@adacore.com> 3390 3391 * exp_ch6.adb (Add_Call_By_Copy_Code, 3392 Add_Simple_Call_By_Copy_Code, Expand_Actuals): Handle formals 3393 whose type comes from the limited view. 3394 33952016-04-27 Yannick Moy <moy@adacore.com> 3396 3397 * a-textio.adb: Complete previous patch. 3398 33992016-04-27 Yannick Moy <moy@adacore.com> 3400 3401 * inline.adb (Expand_Inlined_Call): Use Cannot_Inline instead of 3402 Error_Msg_N to issue message about impossibility to inline call, 3403 with slight change of message. 3404 34052016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3406 3407 * exp_spark.adb (Expand_Potential_Renaming): Removed. 3408 (Expand_SPARK): Update the call to expand a potential renaming. 3409 (Expand_SPARK_Potential_Renaming): New routine. 3410 * exp_spark.ads (Expand_SPARK_Potential_Renaming): New routine. 3411 * sem.adb Add with and use clauses for Exp_SPARK. 3412 (Analyze): Expand a non-overloaded potential renaming for SPARK. 3413 34142016-04-27 Ed Schonberg <schonberg@adacore.com> 3415 3416 * sem_ch3.adb (Constrain_Discriminated_Type): In an instance, 3417 check full view for the presence of defaulted discriminants, 3418 even when the partial view of a private type has no visible and 3419 no unknown discriminants. 3420 34212016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3422 3423 * lib-xref.adb, exp_ch3.adb: Minor reformatting. 3424 34252016-04-27 Nicolas Roche <roche@adacore.com> 3426 3427 * rtinit.c: Add weak symbol __gnat_do_argv_expansion. 3428 34292016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3430 3431 * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Code 3432 cleanup. Check the original node when trying to determine the node kind 3433 of pragma Volatile's argument to account for untagged derivations 3434 where the type is transformed into a constrained subtype. 3435 34362016-04-27 Olivier Hainque <hainque@adacore.com> 3437 3438 * mkdir.c (__gnat_mkdir): Rework the vxworks section to use a 3439 consistent posix interface on the caller side. 3440 34412016-04-27 Ed Schonberg <schonberg@adacore.com> 3442 3443 * sem_ch10.adb (Build_Limited_View, Decorate_Type): If this 3444 is a limited view of a type, initialize the Limited_Dependents 3445 field to catch misuses of the type in a client unit. 3446 34472016-04-27 Thomas Quinot <quinot@adacore.com> 3448 3449 * a-strunb-shared.adb (Finalize): add missing Reference call. 3450 * s-strhas.adb: minor grammar fix and extension of comment 3451 * sem_ch8.adb: minor whitespace fixes 3452 34532016-04-27 Ed Schonberg <schonberg@adacore.com> 3454 3455 * lib-xref.adb (Get_Type_Reference): Handle properly the case 3456 of an object declaration whose type definition is a class-wide 3457 subtype and whose expression is a function call that returns a 3458 classwide type. 3459 34602016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3461 3462 * sem_util.ads, sem_util.adb (Output_Entity): New routine. 3463 (Output_Name): New routine. 3464 34652016-04-27 Bob Duff <duff@adacore.com> 3466 3467 * exp_ch3.adb (Rewrite_As_Renaming): Disable previous change for now. 3468 34692016-04-27 Vincent Celier <celier@adacore.com> 3470 3471 * gnatcmd.adb: For "gnat ls -V -P", recognize switch 3472 --unchecked-shared-lib-imports and set the flag 3473 Opt.Unchecked_Shared_Lib_Imports accordingly. 3474 34752016-04-27 Ed Schonberg <schonberg@adacore.com> 3476 3477 * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): 3478 A generic subprogram is never a primitive operation, and thus 3479 a classwide condition for it is not legal. 3480 34812016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3482 3483 * sem_aggr.adb, sem_dim.adb, sem_dim.ads, einfo.adb: Minor 3484 reformatting. 3485 34862016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3487 3488 * sem_res.adb (Flag_Effectively_Volatile_Objects): New routine. 3489 (Resolve_Actuals): Flag effectively volatile objects with enabled 3490 property Async_Writers or Effective_Reads as illegal. 3491 * sem_util.adb (Is_OK_Volatile_Context): Comment reformatting. 3492 34932016-04-27 Javier Miranda <miranda@adacore.com> 3494 3495 * exp_ch3.adb (Make_Predefined_Primitive_Specs): 3496 Do not generate the profile of the equality operator if it has 3497 been explicitly defined as abstract in the parent type. Required 3498 to avoid reporting an spurious error. 3499 35002016-04-27 Ed Schonberg <schonberg@adacore.com> 3501 3502 * sem_dim.ads, sem_dim.adb (Check_Expression_Dimensions): New 3503 procedure to compute the dimension vector of a scalar expression 3504 and compare it with the dimensions if its expected subtype. Used 3505 for the ultimate components of a multidimensional aggregate, 3506 whose components typically are themselves aggregates that are 3507 expanded separately. Previous to this patch, dimensionality 3508 checking on such aggregates generated spurious errors. 3509 * sem_aggr.adb (Resolve_Array_Aggregate): Use 3510 Check_Expression_Dimensions when needed. 3511 35122016-04-27 Javier Miranda <miranda@adacore.com> 3513 3514 * einfo.ads, einfo.adb (Corresponding_Function): New attribute 3515 (applicable to E_Procedure). 3516 (Corresponding_Procedure): New attribute (applicable to E_Function). 3517 * exp_util.adb (Build_Procedure_Form): Link the function with 3518 its internally built proc and viceversa. 3519 * sem_ch6.adb (Build_Subprogram_Declaration): Propagate the 3520 attribute Rewritten_For_C and Corresponding_Procedure to the body. 3521 * exp_ch6.adb (Rewritten_For_C_Func_Id): Removed. 3522 (Rewritten_For_C_Proc_Id): Removed. 3523 * exp_unst.adb (Note_Uplevel_Ref): Use the new attribute to 3524 locate the corresponding procedure. 3525 35262016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3527 3528 * sem_ch13.adb (Analyze_Aspect_Export_Import): Signal that there is no 3529 corresponding pragma. 3530 35312016-04-27 Bob Duff <duff@adacore.com> 3532 3533 * exp_ch3.adb: Minor comment improvement. 3534 35352016-04-27 Ed Schonberg <schonberg@adacore.com> 3536 3537 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): If the 3538 return type is an untagged limited record with only access 3539 discriminants and no controlled components, the return value does not 3540 need to use the secondary stack. 3541 35422016-04-27 Javier Miranda <miranda@adacore.com> 3543 3544 * exp_util.adb (Remove_Side_Effects): When 3545 generating C code handle object declarations that have 3546 discriminants and are initialized by means of a call to a 3547 function. 3548 35492016-04-27 Ed Schonberg <schonberg@adacore.com> 3550 3551 * a-textio.adb (Get_Line function): Handle properly the case of 3552 a line that has the same length as the buffer (or a multiple 3553 thereof) and there is no line terminator. 3554 * a-tigeli.adb (Get_Line procedure): Do not store an end_of_file 3555 in the string when there is no previous line terminator and we 3556 need at most one additional character. 3557 35582016-04-27 Arnaud Charlet <charlet@adacore.com> 3559 3560 * s-rident.ads: Make No_Implicit_Loops non partition wide. 3561 35622016-04-27 Arnaud Charlet <charlet@adacore.com> 3563 3564 * sem_ch11.adb (Analyze_Handled_Statements): check useless 3565 assignments also in entries and task bodies, not only in 3566 procedures and declaration blocks. 3567 * sem_ch5.adb (Analyze_Block_Statement): check useless 3568 assignements in declaration blocks as part of processing their 3569 handled statement sequence, just like it was done for procedures 3570 and now is also done for entries and task bodies. 3571 * sem_warn.adb (Warn_On_Useless_Assignment): detect boundries 3572 of entries and task bodies just like of procedures. 3573 35742016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3575 3576 * sem_util.adb (Is_Volatile_Function): Recognize 3577 a function declared within a protected type as well as the 3578 protected/unprotected version of a function. 3579 35802016-04-27 Bob Duff <duff@adacore.com> 3581 3582 * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite an object 3583 declaration of the form "X : T := Func (...);", where T is 3584 controlled, as a renaming. 3585 * a-strunb-shared.adb (Finalize): Set the Unbounded_String Object 3586 to be an empty string, instead of null-ing out the Reference. 3587 * exp_util.adb (Needs_Finalization): Remove redundant code. 3588 35892016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3590 3591 * aspects.ads Aspects Export and Import do not require delay. They 3592 were classified as delayed aspects, but treated as non-delayed 3593 by the analysis of aspects. 3594 * freeze.adb (Copy_Import_Pragma): New routine. 3595 (Wrap_Imported_Subprogram): Copy the import pragma by first 3596 resetting all semantic fields to avoid an infinite loop when 3597 performing the copy. 3598 * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Add 3599 comment on the processing of aspects Export and Import 3600 at the freeze point. 3601 (Analyze_Aspect_Convention: New routine. 3602 (Analyze_Aspect_Export_Import): New routine. 3603 (Analyze_Aspect_External_Link_Name): New routine. 3604 (Analyze_Aspect_External_Or_Link_Name): Removed. 3605 (Analyze_Aspect_Specifications): Factor out the analysis of 3606 aspects Convention, Export, External_Name, Import, and Link_Name 3607 in their respective routines. Aspects Export and Import should 3608 not generate a Boolean pragma because their corresponding pragmas 3609 have a very different syntax. 3610 (Build_Export_Import_Pragma): New routine. 3611 (Get_Interfacing_Aspects): New routine. 3612 36132016-04-27 Eric Botcazou <ebotcazou@adacore.com> 3614 3615 * inline.adb (Add_Inlined_Body): Overhaul implementation, 3616 robustify handling of -gnatn1, add special treatment for 3617 expression functions. 3618 36192016-04-27 Doug Rupp <rupp@adacore.com> 3620 3621 * g-traceb.ads: Update comment. 3622 * exp_ch2.adb: minor style fix in object declaration 3623 36242016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3625 3626 * sem_elab.adb (Check_Internal_Call): Do not 3627 consider a call when it appears within pragma Initial_Condition 3628 since the pragma is part of the elaboration statements of a 3629 package body and may only call external subprograms or subprograms 3630 whose body is already available. 3631 (Within_Initial_Condition): New routine. 3632 36332016-04-27 Ed Schonberg <schonberg@adacore.com> 3634 3635 * exp_util.adb (Build_Procedure_Form): Prevent double generation 3636 of the procedure form when dealing with an expression function 3637 whose return type is an array. 3638 * sem_ch3.adb: Fix out-of order Has_Predicates setting. 3639 * exp_ch6.adb: Proper conversion for inherited operation in C. 3640 * sem_ch6.adb: Code cleanup. 3641 36422016-04-27 Hristian Kirtchev <kirtchev@adacore.com> 3643 3644 * lib-xref.ads, sem_ch10.adb: minor style fix in comment 3645 * g-socket.adb: Minor reformatting. 3646 * sinfo.ads: Minor comment correction. 3647 * sem_warn.ads: minor grammar fix in comment 3648 36492016-04-27 Eric Botcazou <ebotcazou@adacore.com> 3650 3651 * gcc-interface/gigi.h (gnat_to_gnu_entity): Adjust prototype. 3652 (maybe_pad_type): Adjust comment. 3653 (finish_record_type): Likewise. 3654 (rest_of_record_type_compilation): Likewise. 3655 * gcc-interface/decl.c (gnat_to_gnu_entity): Change DEFINITION type 3656 parameter from integer to boolean. Adjust recursive calls. 3657 <E_Subprogram_Type>: Use copy_type and remove redundant assignments. 3658 <E_Signed_Integer_Subtype>: Adjust comment. Remove call to 3659 rest_of_record_type_compilation. Set TYPE_PADDING_P flag earlier. 3660 Pass false to finish_record_type. Set the debug type later. 3661 <E_Record_Subtype>: Remove call to rest_of_record_type_compilation. 3662 (gnat_to_gnu_component_type): Fix formatting. 3663 (gnat_to_gnu_field_decl): Adjust call to gnat_to_gnu_entity. 3664 (gnat_to_gnu_type): Likewise. 3665 * gcc-interface/trans.c (Identifier_to_gnu): Likewise. 3666 (Loop_Statement_to_gnu): Likewise. 3667 (Subprogram_Body_to_gnu): Likewise. 3668 (Exception_Handler_to_gnu_fe_sjlj): Likewise. 3669 (Exception_Handler_to_gnu_gcc): Likewise. 3670 (Compilation_Unit_to_gnu): Likewise. 3671 (gnat_to_gnu): Likewise. 3672 (push_exception_label_stack): Likewise. 3673 (elaborate_all_entities_for_package): Likewise. 3674 (process_freeze_entity): Likewise. 3675 (process_decls): Likewise. 3676 (process_type): Likewise. 3677 * gcc-interface/utils.c (struct deferred_decl_context_node): Tweak. 3678 (maybe_pad_type): Adjust comments. Set the debug type later. Remove 3679 call to rest_of_record_type_compilation. 3680 (rest_of_record_type_compilation): Use copy_type. 3681 (copy_type): Use correctly typed constants. 3682 (gnat_signed_or_unsigned_type_for): Use copy_type. 3683 * gcc-interface/utils2.c (nonbinary_modular_operation): Likewise. 3684 (build_goto_raise): Adjust call tognat_to_gnu_entity. 3685 36862016-04-27 Eric Botcazou <ebotcazou@adacore.com> 3687 3688 * gcc-interface/misc.c (gnat_init): Do not call 3689 internal_reference_types. 3690 36912016-04-27 Svante Signell <svante.signell@gmail.com> 3692 3693 * gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb. 3694 * s-osinte-gnu.ads: Small tweaks. 3695 * s-osinte-gnu.adb: New file. 3696 36972016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 3698 3699 * sem_prag.adb (Match_Constituent): Treat a constant as a legal 3700 constituent even if it is not to prevent spurious errors. 3701 37022016-04-21 Gary Dismukes <dismukes@adacore.com> 3703 3704 * sem_ch4.adb: Minor typo fixes and reformatting. 3705 37062016-04-21 Dmitriy Anisimkov <anisimko@adacore.com> 3707 3708 * g-calend.ads (No_Time): The same value in any timezone. 3709 * g-socket.adb (Raise_Host_Error): Remove ending 3710 dot from original error message before append colon delimited 3711 host name. 3712 37132016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 3714 3715 * sem_ch3.adb: Code cleanup. 3716 * sem_ch6.adb: Code cleanup. 3717 (Is_Matching_Limited_View): New routine. 3718 (Matches_Limited_With_View): Reimplemented. 3719 * sem_ch10.adb (Decorate_Type): Code cleanup. 3720 37212016-04-21 Doug Rupp <rupp@adacore.com> 3722 3723 * tracebak.c (PPC ELF): Add macro defs for lynxos178e. 3724 37252016-04-21 Ed Schonberg <schonberg@adacore.com> 3726 3727 * sem_ch4.adb (Try_Container_Indexing): If there are overloaded 3728 indexing functions, collect all overloadings of the call firts, 3729 and then transfer them to indexing node, to prevent interleaving 3730 of the set of interpretations of the nodes involved. 3731 * sem_res.adb (Resolve): Suppress cascaded errors that report 3732 ambiguities when one of the actuals in an overloaded generatlized 3733 indexing operation is illegal and has type Any_Type, as is done 3734 for similar cascaded errors in subprogram calls. 3735 (Valid_Tagged_Conversion): Cleanup conversion checks when one 3736 of the types involved is a class-wide subtype. 3737 37382016-04-21 Ed Schonberg <schonberg@adacore.com> 3739 3740 * sem_ch12.adb (Load_Parent_Of_Generic): When looking for the 3741 subprogram declaration within a wrapper package, skip pragmas 3742 that may have been generated by aspect specifications on the 3743 generic instance. 3744 37452016-04-21 Javier Miranda <miranda@adacore.com> 3746 3747 * exp_aggr.adb (Component_Not_OK_For_Backend): Generating C 3748 code return True for array identifiers since the backend needs 3749 to initialize such component by means of memcpy(). 3750 37512016-04-21 Arnaud Charlet <charlet@adacore.com> 3752 3753 * a-tasatt.adb, a-tasatt.ads (Fast_Path): Rewritten to avoid reading 3754 potentially uninitialized memory. 3755 * sem_ch3.adb: Minor style fix in comment. 3756 37572016-04-21 Arnaud Charlet <charlet@adacore.com> 3758 3759 * gnat_rm.texi, gnat_ugn.texi, 3760 doc/gnat_ugn/gnat_project_manager.rst, 3761 doc/gnat_ugn/building_executable_programs_with_gnat.rst, 3762 doc/gnat_ugn/gnat_and_program_execution.rst, 3763 doc/gnat_ugn/gnat_utility_programs.rst, 3764 doc/gnat_ugn/the_gnat_compilation_model.rst, 3765 doc/gnat_rm/implementation_defined_attributes.rst, 3766 doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, 3767 doc/gnat_rm/implementation_defined_pragmas.rst, 3768 doc/gnat_rm/the_gnat_library.rst, 3769 doc/gnat_rm/implementation_defined_aspects.rst: Update doc. 3770 * doc/Makefile: Cleanups. 3771 37722016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 3773 3774 * exp_pakd.adb, sem_ch13.adb: Minor reformatting. 3775 37762016-04-21 Ed Schonberg <schonberg@adacore.com> 3777 3778 * exp_dbug.adb, exp_dbug.ads (Qualify_Entity_Name): Add suffixes to 3779 disambiguate local variables that may be hidden from inner visibility 3780 by nested block declarations or loop variables. 3781 37822016-04-21 Jerome Lambourg <lambourg@adacore.com> 3783 3784 * s-soflin.adb: Initialize the Stack_Limit global variable. 3785 37862016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 3787 3788 * lib-writ.adb: Minor reformatting. 3789 37902016-04-21 Ed Schonberg <schonberg@adacore.com> 3791 3792 * exp_pakd.adb (Compute_Number_Components): New function to 3793 build an expression that computes the number of a components of 3794 an array that may be multidimensional. 3795 (Expan_Packed_Eq): Use it. 3796 37972016-04-21 Arnaud Charlet <charlet@adacore.com> 3798 3799 * g-traceb.ads: Update list of supported platforms. 3800 38012016-04-21 Ed Schonberg <schonberg@adacore.com> 3802 3803 * sem_ch13.adb (Add_Predicates): if the type is declared in 3804 an inner package it may be frozen outside of the package, and 3805 the generated pragma has not been analyzed yet, the expression 3806 for the predicate must be captured and added to the predicate 3807 function at this point. 3808 38092016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 3810 3811 * contracts.adb (Analyze_Package_Body_Contract): Do not check 3812 for a missing package refinement because 1) packages do not have 3813 "refinement" and 2) the check for proper state refinement is 3814 performed in a different place. 3815 * einfo.adb (Has_Non_Null_Visible_Refinement): Reimplemented. 3816 (Has_Null_Visible_Refinement): Reimplemented. 3817 * sem_ch3.adb (Analyze_Declarations): Determine whether all 3818 abstract states have received a refinement and if not, emit 3819 errors. 3820 * sem_ch7.adb (Analyze_Package_Declaration): Code 3821 cleanup. Determine whether all abstract states of the 3822 package and any nested packages have received a refinement 3823 and if not, emit errors. 3824 (Requires_Completion_In_Body): Add new formal parameter 3825 Do_Abstract_States. Update the comment on usage. Propagate the 3826 Do_Abstract_States flag to all Unit_Requires_Body calls. 3827 (Unit_Requires_Body): Remove formal 3828 parameter Ignore_Abstract_States. Add new formal paramter 3829 Do_Abstract_States. Propagate the Do_Abstract_States flag to 3830 all Requires_Completion_In calls. 3831 * sem_ch7.ads (Unit_Requires_Body): Remove formal 3832 parameter Ignore_Abstract_States. Add new formal paramter 3833 Do_Abstract_States. Update the comment on usage. 3834 * sem_ch9.adb (Analyze_Single_Protected_Declaration): Do 3835 not initialize the constituent list as this is now done on a 3836 need-to-add-element basis. 3837 (Analyze_Single_Task_Declaration): 3838 Do not initialize the constituent list as this is now done on 3839 a need-to-add-element basis. 3840 * sem_ch10.adb (Decorate_State): Do not initialize the constituent 3841 lists as this is now done on a need-to-add-element basis. 3842 * sem_prag.adb (Analyze_Constituent): Set the 3843 refinement constituents when adding a new element. 3844 (Analyze_Part_Of_In_Decl_Part): Set the Part_Of constituents when 3845 adding a new element. 3846 (Analyze_Part_Of_Option): Set the Part_Of 3847 constituents when adding a new element. 3848 (Analyze_Pragma): Set the Part_Of constituents when adding a new 3849 element. 3850 (Check_Constituent_Usage (all versions)): Reimplemented. 3851 (Collect_Constituent): Set the refinement constituents when adding 3852 a new element. 3853 (Create_Abstract_State): Do not initialize the 3854 constituent lists as this is now done on a need-to-add-element basis. 3855 (Propagate_Part_Of): Set the Part_Of constituents when 3856 adding a new element. 3857 * sem_util.adb (Check_State_Refinements): New routine. 3858 (Has_Non_Null_Refinement): Reimplemented. 3859 (Has_Null_Refinement): Reimplemented. 3860 (Requires_State_Refinement): Removed. 3861 * sem_util.ads (Check_State_Refinements): New routine. 3862 (Requires_State_Refinement): Removed. 3863 38642016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 3865 3866 * lib-writ.adb, sem_ch6.adb: Minor reformatting and code cleanup. 3867 * sem.adb: Fix comment. 3868 38692016-04-21 Ed Schonberg <schonberg@adacore.com> 3870 3871 * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype 3872 declaration with no aspects, whose subtype_mark is a subtype 3873 with predicates, inherits the list of subprograms for the type. 3874 38752016-04-21 Arnaud Charlet <charlet@adacore.com> 3876 3877 * exp_aggr.adb (Has_Per_Object_Constraint): Refine previous 3878 change. 3879 38802016-04-21 Thomas Quinot <quinot@adacore.com> 3881 3882 * g-socket.adb (Raise_Host_Error): Include additional Name parameter. 3883 38842016-04-21 Ed Schonberg <schonberg@adacore.com> 3885 3886 * lib-writ.adb (Write_ALI): Do not record in ali file units 3887 that are present in the files table but not analyzed. These 3888 units are present because they appear in the context of units 3889 named in limited_with clauses, and the unit being compiled does 3890 not depend semantically on them. 3891 38922016-04-21 Ed Schonberg <schonberg@adacore.com> 3893 3894 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Simplify code to 3895 create the procedure body for an function returning an array type, 3896 when generating C code. Reuse the subprogram body rather than 3897 creating a new one, both as an efficiency measure and because 3898 in an instance the body may contain global references that must 3899 be preserved. 3900 39012016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 3902 3903 * sem_ch3.adb, exp_attr.adb, exp_ch6.adb, exp_aggr.adb: Minor 3904 reformatting. 3905 39062016-04-21 Javier Miranda <miranda@adacore.com> 3907 3908 * exp_aggr.adb (Component_Check): Extend 3909 the check that verifies that the aggregate has no function 3910 calls to handle transformations performed by the frontend. 3911 (Ultimate_Original_Expression): New subprogram. 3912 39132016-04-21 Philippe Gil <gil@adacore.com> 3914 3915 * krunch.adb (Krunch): Fix krunching of i-java. 3916 39172016-04-21 Arnaud Charlet <charlet@adacore.com> 3918 3919 * exp_ch8.adb (Evaluation_Required): Always return 3920 True when Modify_Tree_For_C. 3921 39222016-04-21 Eric Botcazou <ebotcazou@adacore.com> 3923 3924 * gnatlink.adb (Gnatlink): Robustify detection of Windows target. 3925 * alloc.ads: Minor comment fixes. 3926 * einfo.ads: Fix typo. 3927 39282016-04-21 Arnaud Charlet <charlet@adacore.com> 3929 3930 * exp_aggr.adb (Component_Not_OK_For_Backend): Redo previous 3931 changes to handle all cases of components depending on the 3932 discriminant, not just string literals. 3933 39342016-04-21 Ed Schonberg <schonberg@adacore.com> 3935 3936 * sem_ch3.adb (Analyze_Subtype_Declaration): If the subtype 3937 declaration is the generated declaration for a generic actual, 3938 inherit predicates from the actual if it is a predicated subtype. 3939 39402016-04-21 Ed Schonberg <schonberg@adacore.com> 3941 3942 * exp_ch6.adb (Rewrite_Function_Call_For_C): If the function is 3943 inherited and its result is controlling, introduce a conversion 3944 on the actual for the corresponding procedure call, to avoid 3945 spurious type errors. 3946 39472016-04-21 Jerome Lambourg <lambourg@adacore.com> 3948 3949 * krunch.adb (Krunch): Fix krunching of i-vxworks. 3950 39512016-04-21 Gary Dismukes <dismukes@adacore.com> 3952 3953 * exp_aggr.adb: Minor reformatting and code cleanup. 3954 39552016-04-21 Ed Schonberg <schonberg@adacore.com> 3956 3957 * sem_ch13.adb (Resolve_Name): Omit quantified expressions from 3958 resolution, because they introduce local names. Full resolution 3959 will take place when predicate function is constructed. 3960 39612016-04-21 Arnaud Charlet <charlet@adacore.com> 3962 3963 * exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous 3964 change to take into account Per_Object_Constraint field rather 3965 than special casing strings. 3966 * exp_ch6.adb: Fix typo in Replace_Returns. 3967 39682016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 3969 3970 * sem_ch5.adb: Minor reformatting. 3971 39722016-04-21 Arnaud Charlet <charlet@adacore.com> 3973 3974 * exp_aggr.adb (Backend_Processing_Possible): Return False 3975 when generating C and aggregate contains function calls. 3976 39772016-04-21 Tristan Gingold <gingold@adacore.com> 3978 3979 * krunch.adb (Krunch): Only partially krunch children of 3980 Interfaces that aren't known. 3981 39822016-04-21 Ed Schonberg <schonberg@adacore.com> 3983 3984 * sem_prag.adb (Make_Inline): Handle properly the instantiation 3985 of a generic subpprogram that carries an Inline aspect. Place 3986 inline info on the anonymous subprogram that is constructed in 3987 the wrapper package. 3988 (Analyze_Pragma, case Pure): Do not check placement if pragma 3989 appears within an instantiation, which can be nested at any level. 3990 * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not copy Freeze 3991 node from anonymous subprogram to its visible renaming. The 3992 freeze node will be constructed if the subprogram carries 3993 delayed aspects. 3994 (Set_Global): Preserve dimension information if present (from 3995 code reading). 3996 39972016-04-21 Vasiliy Fofanov <fofanov@adacore.com> 3998 3999 * gnatlink.adb: Change wording of the warning message on 4000 problematic filenames to be more neutral. Add a new substring 4001 "patch" introduced on Windows 10. 4002 40032016-04-21 Philippe Gil <gil@adacore.com> 4004 4005 * tracebak.c (__gnat_backtrace): handle bad RIP values (win64 only) 4006 40072016-04-21 Javier Miranda <miranda@adacore.com> 4008 4009 * exp_aggr.adb (Component_Not_OK_For_Backend): Return true for string 4010 literals. 4011 40122016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 4013 4014 * einfo.adb (Has_Non_Null_Abstract_State): New routine. 4015 * einfo.ads New synthesized attribute 4016 Has_Non_Null_Abstract_State along with occurrences in entities. 4017 (Has_Non_Null_Abstract_State): New routine. 4018 * sem_ch7.adb (Unit_Requires_Body): Add local variable 4019 Requires_Body. A package declaring an abstract state requires 4020 a body only when the state is non-null and the package contains 4021 at least one other construct that requires completion in a body. 4022 * sem_util.adb (Mode_Is_Off): Removed. 4023 (Requires_State_Refinement): Remove an obsolete check. Code 4024 cleanup. 4025 40262016-04-21 Bob Duff <duff@adacore.com> 4027 4028 * sem_attr.adb (Analyze_Attribute): In processing 4029 the 'Old attribute, a warning is given for infinite recursion. Fix 4030 the code to not crash when the prefix of 'Old denotes a protected 4031 function. 4032 * sem_ch5.adb (Analyze_Iterator_Specification): 4033 Avoid calling Is_Dependent_Component_Of_Mutable_Object in cases 4034 where the parameter would not be an object. 4035 40362016-04-21 Eric Botcazou <ebotcazou@adacore.com> 4037 4038 * sem_eval.adb (Compile_Time_Compare): Be prepared for an empty 4039 Etype or Underlying_Type of the operands. 4040 40412016-04-21 Eric Botcazou <ebotcazou@adacore.com> 4042 4043 * atree.adb (Print_Statistics): Protect against overflows and 4044 print the memory consumption in bytes. 4045 * table.adb (Reallocate): Do the intermediate calculation of the new 4046 size using the Memory.size_t type. 4047 40482016-04-21 Gary Dismukes <dismukes@adacore.com> 4049 4050 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Suppress 4051 expansion of Attribute_Machine and Attribute_Model for AAMP. 4052 40532016-04-21 Ed Schonberg <schonberg@adacore.com> 4054 4055 * freeze.adb: Disable previous change for now. 4056 40572016-04-21 Ed Schonberg <schonberg@adacore.com> 4058 4059 * sem_ch8.adb (Find_Selected_Component): If prefix has an 4060 access type and designated type is a limited view, introduce 4061 an explicit dereference before continuing the analysis, and 4062 set its type to the non-limited view of the designated type, 4063 if we are in context where it is available. 4064 40652016-04-21 Ed Schonberg <schonberg@adacore.com> 4066 4067 * freeze.adb: Freeze profile in ASIS mode. 4068 40692016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 4070 4071 * sem_aux.ads, sem_aux.adb (Has_Rep_Item): New variant. 4072 * sem_util.adb (Inherit_Rep_Item_Chain): Reimplemented. 4073 40742016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 4075 4076 * exp_ch6.adb: Minor reformatting. 4077 40782016-04-21 Ed Schonberg <schonberg@adacore.com> 4079 4080 * sem_ch13.adb: Minor comment update. 4081 40822016-04-21 Ed Schonberg <schonberg@adacore.com> 4083 4084 * freeze.ads, freeze.adb (Freeze_Entity, Freeze_Before): Add 4085 boolean parameter to determine whether freezing an overloadable 4086 entity freezes its profile as well. This is required by 4087 AI05-019. The call to Freeze_Profile within Freeze_Entity is 4088 conditioned by the value of this flag, whose default is True. 4089 * sem_attr.adb (Resolve_Attribute, case 'Access): The attribute 4090 reference freezes the prefix, but it the prefix is a subprogram 4091 it does not freeze its profile. 4092 40932016-04-21 Javier Miranda <miranda@adacore.com> 4094 4095 * exp_util.adb (Build_Procedure_Form): No action needed for 4096 subprogram renamings since the backend can generate the call 4097 using the renamed subprogram. This leaves the tree more clean 4098 to the backend. 4099 * exp_ch6.adb (Expand_Call): Extend previous patch for 4100 rewritten-for-c entities to handle subprogram renamings. 4101 (Rewrite_Function_Call_For_C): Handle subprogram renamings. 4102 41032016-04-21 Ed Schonberg <schonberg@adacore.com> 4104 4105 * sem_ch13.adb: Code cleanup. 4106 41072016-04-21 Ed Schonberg <schonberg@adacore.com> 4108 4109 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is 4110 created for SPARK_To_C, the entity must remain invisible so it 4111 does not overload subsequent references to the original function. 4112 * exp_ch6.adb (Build_Procedure_Body_Form, Replace_Returns): 4113 Handle Extended_Return_Statements by replacing it with a block 4114 with assignments and a simple return statement. 4115 * exp_util.adb (Build_Procedure_Form): Make procedure entity 4116 invisible after analyzing declaration, to prevent improper 4117 overloading. 4118 41192016-04-21 Javier Miranda <miranda@adacore.com> 4120 4121 * sem_ch6.adb (Build_Subprogram_Declaration): Propagate the 4122 attribute Rewritten_For_C to the body since since the expander 4123 may generate calls using that entity. 4124 * exp_ch6.adb (Expand_Call): For internally generated 4125 calls ensure that they reference the entity of the spec 4126 of the called function. 4127 (Rewritten_For_C_Func_Id): New subprogram. 4128 (Rewritten_For_C_Proc_Id): New subprogram. 4129 (Rewrite_Function_Call_For_C): Invoke the new subprogram to 4130 ensure that we skip freezing entities. 4131 * exp_util.adb (Build_Procedure_Form): No action needed if the 4132 procedure was already built. 4133 41342016-04-21 Hristian Kirtchev <kirtchev@adacore.com> 4135 4136 * sem_ch3.adb, exp_util.adb, sem_ch13.adb, exp_unst.adb: Minor 4137 reformatting. 4138 41392016-04-21 Ed Schonberg <schonberg@adacore.com> 4140 4141 * sem_util.adb (Denotes_Iterator): Use root type to determine 4142 whether the ultimate ancestor is the predefined iterator 4143 interface pakage. 4144 * exp_ch5.adb (Expand_Iterator_Over_Container): simplify code 4145 and avoid reuse of Pack local variable. 4146 41472016-04-21 Olivier Hainque <hainque@adacore.com> 4148 4149 * system-vxworks-arm.ads, system-vxworks-sparcv9.ads, 4150 system-vxworks-ppc.ads, system-vxworks-m68k.ads, 4151 system-vxworks-mips.ads, system-vxworks-x86.ads: Define 4152 Executable_Extension to ".out". 4153 41542016-04-21 Javier Miranda <miranda@adacore.com> 4155 4156 * frontend.adb: Update call to Unnest_Subprograms. 4157 * exp_ch6.ads, exp_ch6.adb, exp_unst.ads, exp_unst.adb 4158 (Unnest_Subprograms): Moved to package exp_unst. 4159 * exp_unst.ads (Unnest_Subprogram): Moved to the body of the 4160 package. 4161 * exp_dbug.adb (Qualify_Entity_Name): Enable qualification of 4162 enumeration literals when generating C code. 4163 41642016-04-21 Javier Miranda <miranda@adacore.com> 4165 4166 * frontend.adb: Remove call to initialize Exp_Ch6. 4167 * exp_ch6.ads, exp_ch6.adb (Initialize): removed. 4168 (Unest_Entry/Unest_Bodies): Removed. 4169 (Unnest_Subprograms): Code cleanup. 4170 41712016-04-21 Arnaud Charlet <charlet@adacore.com> 4172 4173 * set_targ.adb (Read_Target_Dependent_Values): 4174 close target description file once its contents is read. 4175 * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File 4176 and Stderr_File): Close local file descriptors before spawning 4177 child process. 4178 * exp_util.adb (Containing_Package_With_Ext_Axioms): Limit scope of 4179 local variables to make the code easier to understand and avoid 4180 duplicated calls to Parent and Generic_Parent. 4181 41822016-04-20 Bob Duff <duff@adacore.com> 4183 4184 * s-os_lib.ads: Minor comment fix. 4185 41862016-04-20 Ed Schonberg <schonberg@adacore.com> 4187 4188 * exp_ch5.adb (Expand_N_Assignment_Statement): Do no generate 4189 a discriminant check for a type whose partial view has unknown 4190 discriminants when the full view has discriminants with defaults. 4191 41922016-04-20 Javier Miranda <miranda@adacore.com> 4193 4194 * exp_util.adb (Remove_Side_Effects): When generating C code 4195 remove side effect of type conversion of access to unconstrained 4196 array type. 4197 (Side_Effect_Free): Return false for the type 4198 conversion of access to unconstrained array type when generating 4199 C code. 4200 * sem_res.adb (Resolved_Type_Conversion): Remove side effects 4201 of access to unconstrained array type conversion when generating 4202 C code. 4203 42042016-04-20 Ed Schonberg <schonberg@adacore.com> 4205 4206 * sem_ch13.adb (Build_Predicate_Function_Declaration): New 4207 function, to construct the declaration of a predicate function 4208 at the end of the current declarative part rather than at the 4209 (possibly later) freeze point of the type. This also allows uses 4210 of a type with predicates in instantiations elsewhere. 4211 (Resolve_Aspect_Expression): New procedure to detect visiblity 4212 errors in aspect expressions, at the end of the declarative part 4213 that includes the type declaration. 4214 * sem_ch3.adb (Complete_Private_Subtype): Propagate properly the 4215 predicate function from private to full view. 4216 * einfo.adb (Predicate_Function): Refine search for predicate 4217 function when type has a full view and predicate function may 4218 be defined on either view. 4219 42202016-04-20 Javier Miranda <miranda@adacore.com> 4221 4222 * frontend.adb: Passing the root of the tree to 4223 Unnest_Subprograms(). 4224 * exp_ch6.adb (Expand_N_Subprogram_Body): Remove code that 4225 took care of adding subprograms to the Unest_Bodies table since 4226 performing such action too early disables the ability to process 4227 generic instantiations. 4228 (Unnest_Subprograms): Adding parameter. 4229 (Search_Unnesting_Subprograms): New subprogram. 4230 * exp_ch6.ads (Unnest_Subrograms): Update documentation. 4231 42322016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4233 4234 * exp_util.adb, freeze.adb, sem_util.adb: Minor reformatting. 4235 42362016-04-20 Ed Schonberg <schonberg@adacore.com> 4237 4238 * exp_unst.adb (Check_Static_Type): For a private type, check 4239 full view. 4240 42412016-04-20 Ed Schonberg <schonberg@adacore.com> 4242 4243 * sem_attr.adb (Check_Type): Reject an attribute reference in 4244 an aspect expression, when the prefix of the reference is the 4245 current instance of the type to which the aspect applies. 4246 42472016-04-20 Bob Duff <duff@adacore.com> 4248 4249 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about 4250 hiding unless we're actually hiding something. The previous 4251 code would (for example) warn about a "<" on a record type 4252 because it incorrectly thought it was hiding the "<" on Boolean 4253 in Standard. We need to check that the homonym S is in fact a 4254 homograph of a predefined operator. 4255 42562016-04-20 Ed Schonberg <schonberg@adacore.com> 4257 4258 * exp_util.ads, exp_util.adb (Build_Procedure_Form): Moved here 4259 from exp_ch6.adb, for use in SPARK_To_C mode when creating the 4260 procedure equivalent to a function returning an array, when this 4261 construction is deferred to the freeze point of the function. 4262 * sem_util.adb (Is_Unchecked_Conversion_Instance): Include a 4263 function that renames an instance of Unchecked_Conversion. 4264 * freeze.adb (Freeze_Subprogram): Generate the proper procedure 4265 declaration for a function returning an array. 4266 * exp_ch6.adb (Build_Procedure_Form): Moved to exp_util. 4267 42682016-04-20 Ed Schonberg <schonberg@adacore.com> 4269 4270 * sem_util.ads, sem_util.adb (Is_Expanded_Priority_Attribute): 4271 New predicate to determine that in a context with full run-time, 4272 a function call is an expansion of a reference to attribute 4273 Priority. 4274 * sem_ch5.adb (Analyze_Function_Call): use it. 4275 * exp_ch5.adb (Expand_N_Subprogram_Call): use it. 4276 42772016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4278 4279 * einfo.adb Flag286 is now used as Is_Exception_Handler. 4280 (Is_Exception_Handler): New routine. 4281 (Set_Is_Exception_Handler): New routine. 4282 (Write_Entity_Flags): Output the status of Is_Exception_Handler. 4283 * einfo.ads New attribute Is_Exception_Handler along with 4284 occurrences in entities. 4285 (Is_Exception_Handler): New routine along with pragma Inline. 4286 (Set_Is_Exception_Handler): New routine along with pragma Inline. 4287 * exp_ch7.adb (Make_Transient_Block): Ignore blocks generated 4288 for exception handlers with a choice parameter. 4289 * sem_ch11.adb (Analyze_Exception_Handlers): Mark the scope 4290 generated for a choice parameter as an exception handler. 4291 42922016-04-20 Ed Schonberg <schonberg@adacore.com> 4293 4294 * sem_ch3.adb (Build_Derived_Access_Type): Remove dead code. 4295 (Constrain_Discriminated_Type): In an instance, if the type has 4296 unknown discriminants, use its full view. 4297 (Process_Subtype): Check that the base type is private before 4298 adding subtype to Private_Dependents list. 4299 43002016-04-20 Bob Duff <duff@adacore.com> 4301 4302 * sem_ch13.adb: Minor comment fix. 4303 43042016-04-20 Yannick Moy <moy@adacore.com> 4305 4306 * sem_ch4.adb: Fix typos in comments. 4307 * sem_res.adb (Resolve_Case_Expression): Fix type of case alternatives. 4308 43092016-04-20 Ed Schonberg <schonberg@adacore.com> 4310 4311 * sem_ch4.adb (Analyze_Selected_Component): A reference to the 4312 current instance of a task type is legal if the prefix is an 4313 expression of that task type and the selector is an entry or 4314 entry family. 4315 43162016-04-20 Arnaud Charlet <charlet@adacore.com> 4317 4318 * a-cfdlli.ads (List): Type is no longer tagged, not needed. Move 4319 varsize field at the end for efficiency. 4320 43212016-04-20 Vincent Celier <celier@adacore.com> 4322 4323 * gnatcmd.adb: Do not invoke gprls when the invocation of "gnat 4324 ls" includes the switch -V. 4325 * clean.adb: "<target>-gnatclean -P" now calls "gprclean 4326 --target=<target>" 4327 * make.adb: "<target>-gnatmake -P" now calls "gprbuild 4328 --target=<target>" 4329 43302016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4331 4332 * sem_ch12.adb (Qualify_Type): Do not perform 4333 partial qualification when the immediate scope is a generic unit. 4334 43352016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4336 4337 * exp_unst.adb: Minor reformatting. 4338 43392016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4340 4341 * exp_ch4.adb (Expand_Allocator_Expression): Ensure that the 4342 tag assignment and adjustment preceed the accessibility check. 4343 * exp_ch7.adb (Is_Subprogram_Call): Reimplemented. 4344 43452016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4346 4347 * exp_prag.adb (Expand_Attributes): Ensure that 4348 the temporary used to capture the value of attribute 'Old's 4349 prefix is properly initialized. 4350 43512016-04-20 Javier Miranda <miranda@adacore.com> 4352 4353 * exp_unst.ads, exp_unst.adb (Get_Level, Subp_Index): Moved to library 4354 level. 4355 43562016-04-20 Arnaud Charlet <charlet@adacore.com> 4357 4358 * sem_ch9.adb (Analyze_Task_Type_Declaration): Shut down warning 4359 in codepeer mode. 4360 43612016-04-20 Vincent Celier <celier@adacore.com> 4362 4363 * make.adb: Code cleanup. 4364 43652016-04-20 Arnaud Charlet <charlet@adacore.com> 4366 4367 * exp_ch4.adb (Expand_Allocator_Expression): Help C code 4368 generation. 4369 43702016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4371 4372 * sem_ch12.adb (Copy_Generic_Node): Handle the special 4373 qualification installed for universal literals that act as 4374 operands in binary or unary operators. (Qualify_Operand): Mark 4375 the qualification to signal the instantiation mechanism how to 4376 handle global reference propagation. 4377 * sinfo.adb (Is_Qualified_Universal_Literal): New routine. 4378 (Set_Is_Qualified_Universal_Literal): New routine. 4379 * sinfo.ads New attribute Is_Qualified_Universal_Literal along 4380 with occurrences in nodes. 4381 (Is_Qualified_Universal_Literal): 4382 New routine along with pragma Inline. 4383 (Set_Is_Qualified_Universal_Literal): New routine along with 4384 pragma Inline. 4385 43862016-04-20 Ed Schonberg <schonberg@adacore.com> 4387 4388 * sem.adb (Do_Analyze): Save and restore Style_Max_Line_Length 4389 so that the corresponding checks are preserved across compilations 4390 that include System.Constants in their context. 4391 43922016-04-20 Gary Dismukes <dismukes@adacore.com> 4393 4394 * sem_type.adb: Minor typo fix and reformatting. 4395 * a-conhel.ads: Update comment. 4396 43972016-04-20 Bob Duff <duff@adacore.com> 4398 4399 * a-cihama.adb, a-cihase.adb, a-coinve.adb (Copy): Rewrite the 4400 code so it doesn't trigger an "uninit var" warning. 4401 44022016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4403 4404 * sem_attr.ads Add new table Universal_Type_Attribute. 4405 * sem_util.adb (Yields_Universal_Type): Use a table lookup when 4406 checking attributes. 4407 44082016-04-20 Ed Schonberg <schonberg@adacore.com> 4409 4410 * exp_aggr.adb (Init_Stored_Discriminants, 4411 Init_Visible_Discriminants): New procedures, subsidiary of 4412 Build_Record_Aggr_Code, to handle properly the construction 4413 of aggregates for a derived type that constrains some parent 4414 discriminants and renames others. 4415 44162016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4417 4418 * sem_ch12.adb (Qualify_Universal_Operands): New routine. 4419 (Save_References_In_Operator): Add explicit qualifications in 4420 the generic template for all operands of universal type. 4421 * sem_type.adb (Disambiguate): Update the call to Matches. 4422 (Matches): Reimplemented. 4423 * sem_util.ads, sem_util.adb (Yields_Universal_Type): New routine. 4424 44252016-04-20 Ed Schonberg <schonberg@adacore.com> 4426 4427 * sem_ch13.adb (Rep_Item_Too_Late): Better error message for 4428 an illegal aspect that freezes the entity to which it applies. 4429 44302016-04-20 Bob Duff <duff@adacore.com> 4431 4432 * a-stwibo.ads, a-stzbou.ads 4433 ("="): Add overriding keyword before function to avoid crash when 4434 compiler is called with -gnatyO (check overriding indicators). 4435 44362016-04-20 Ed Schonberg <schonberg@adacore.com> 4437 4438 * sem_prag.adb (Analyze_Pragma, case Check_Policy): If this 4439 is a configuration pragma and it uses the ARG syntax, insert 4440 the rewritten pragma after the current one rather than using 4441 Insert_Actions. 4442 44432016-04-20 Arnaud Charlet <charlet@adacore.com> 4444 4445 * exp_aggr.adb (Backend_Processing_Possible): Add handling of 4446 C back-end. 4447 44482016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4449 4450 * s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb, 4451 s-imglli.adb: Minor reformatting. 4452 44532016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4454 4455 * sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the 4456 renamed operator when the associated node appears within a 4457 pre/postcondition. 4458 * sem_util.ads, sem_util.adb (In_Pre_Post_Condition): New routine. 4459 44602016-04-20 Yannick Moy <moy@adacore.com> 4461 4462 * osint.adb (Relocate_Path): Fix test when Path is shorter than Prefix. 4463 * einfo.adb (Set_Overridden_Operation): Add assertion. 4464 * sem_util.adb (Unique_Entity): for renaming-as-body return the spec 4465 entity. 4466 44672016-04-20 Javier Miranda <miranda@adacore.com> 4468 4469 * exp_unst.adb (Append_Unique_Call): New subprogram. 4470 (Unnest_Subprogram): Replace the unique occurrence 4471 of Call.Append() by Append_Unique_Call() which protects us from 4472 adding to the Calls table duplicated entries. 4473 44742016-04-20 Arnaud Charlet <charlet@adacore.com> 4475 4476 * exp_attr.adb (Is_GCC_Target): Fix for C backend. 4477 * xref_lib.ads (Dependencies_Tables): instantiate 4478 Table package with types that guarantee its safe use. 4479 * s-imgllu.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Avoid nested 4480 procedures. 4481 44822016-04-20 Arnaud Charlet <charlet@adacore.com> 4483 4484 * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): 4485 Disable expansion when generating C code. 4486 * sinfo.ads, inline.ads: Minor editing. 4487 44882016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4489 4490 * sem_util.adb, contracts.adb, ghost.adb, exp_ch6.adb: Minor 4491 reformatting. 4492 44932016-04-20 Javier Miranda <miranda@adacore.com> 4494 4495 * contracts.adb (Build_Postconditions_Procedure): Code cleanup. 4496 * ghost.adb (Os_OK_Ghost_Context.Is_OK_Declaration): Handle the 4497 declaration of the internally built _postcondition procedure. 4498 44992016-04-20 Arnaud Charlet <charlet@adacore.com> 4500 4501 * snames.ads-tmpl (Internal_Attribute_Id, Attribute_Class_Array): Fix 4502 indentation. 4503 * sem_util.adb (Is_Unchecked_Conversion_Instance): 4504 defense against library-level renamings of other functions, 4505 which are never instances of Unchecked_Conversion. 4506 * einfo.ads: minor fix of casing in comment 4507 45082016-04-20 Ed Schonberg <schonberg@adacore.com> 4509 4510 * exp_ch6.adb (Expand_N_Subprogram_Stub): Do not expand a body 4511 that has been analyzed and expanded already. Qualify the names 4512 in the proper body for use in the generation of C code. 4513 45142016-04-20 Javier Miranda <miranda@adacore.com> 4515 4516 * contracts.adb (Build_Postconditions_Procedure): Force its 4517 inlining when generating C code. 4518 * sem_attr.adb (Analyze_Attribute_Old_Result): Handle inlined 4519 _postconditions when generating C code. 4520 * exp_ch6.adb (Inlined_Subprogram): Inline calls to 4521 _postconditions when generating C code. 4522 * sinfo.ads, sinfo.adb (Corresponding_Spec, Set_Corresponding_Spec): 4523 types of return value and argument changed from Node_Id to 4524 Entity_Id. 4525 45262016-04-20 Vincent Celier <celier@adacore.com> 4527 4528 * make.adb, clean.adb, gnatname.adb: Revert previous change for now. 4529 45302016-04-20 Eric Botcazou <ebotcazou@adacore.com> 4531 4532 * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset 4533 the Has_Delayed_Freeze flag on the anonymous instance node. 4534 45352016-04-20 Javier Miranda <miranda@adacore.com> 4536 4537 * sem_ch5.adb (Analyze_Iterator_Specification): Remove transient 4538 scope associated with the renaming object declaration. 4539 * exp_util.adb (Insert_Actions): Remove handling of iterator 4540 loop marked as requiring the secondary stack. 4541 45422016-04-20 Ed Schonberg <schonberg@adacore.com> 4543 4544 * sem_attr.adb (Analyze_Attribute, case 'Image): Implement 4545 AI12-0124, which extends the functionality of the attribute so it 4546 reflects the semantics of GNAT 'Img when applied to scalar types. 4547 * lib-xref.adb: minor whitespace layout fix. 4548 45492016-04-20 Vincent Celier <celier@adacore.com> 4550 4551 * clean.adb (Gnatclean): Fail if project file specified and 4552 gprclean is not available. 4553 * gnatname.adb: Fail is -P is used and gprname is not available. 4554 * make.adb (Initialize): Fail if project file specified and 4555 gprbuild is not available. 4556 45572016-04-20 Bob Duff <duff@adacore.com> 4558 4559 * sem_ch5.adb (Analyze_Iterator_Specification): Do not use secondary 4560 stack when possible. 4561 45622016-04-20 Gary Dismukes <dismukes@adacore.com> 4563 4564 * par_sco.adb, sem_util.adb, sem_ch13.adb: Minor typo corrections and 4565 reformatting. 4566 45672016-04-20 Ed Schonberg <schonberg@adacore.com> 4568 4569 * sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool): 4570 If the pragma comes from an aspect specification, verify that 4571 the aspect applies to an entity with a declarative part. 4572 * exp_ch5.adb: Code cleanup. 4573 45742016-04-20 Ed Schonberg <schonberg@adacore.com> 4575 4576 * sem_res.adb (Resolve_If_Expression): If first expression is 4577 universal, resolve subsequent ones with the corresponding class 4578 type (Any_Integer or Any_Real). 4579 45802016-04-20 Ed Schonberg <schonberg@adacore.com> 4581 4582 * sem_ch5.adb (Analyze_Iterator_Specification): If expansion is 4583 disabled, complete the analysis of the iterator name to ensure 4584 that reference for entities within are properly generated. 4585 45862016-04-20 Arnaud Charlet <charlet@adacore.com> 4587 4588 * a-dispat.ads (Yield): add Global contract. 4589 * a-calend.ads, a-reatim.ads: Added Initializes => Clock_Time. 4590 * a-taside.adb: Added Initializes => Tasking_State. 4591 45922016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4593 4594 * sem_ch13.adb (Build_Invariant_Procedure): 4595 Reimplement the invariant procedure spec and body insertion. 4596 45972016-04-20 Hristian Kirtchev <kirtchev@adacore.com> 4598 4599 * sem_ch13.adb (Add_Invariant): Do not replace 4600 the saved expression of an invariatn aspect when inheriting 4601 a class-wide type invariant as this clobbers the existing 4602 expression. Do not use New_Copy_List as it is unnecessary 4603 and leaves the parent pointers referencing the wrong part of 4604 the tree. Do not replace the type references for ASIS when 4605 inheriting a class-wide type invariant as this clobbers the 4606 existing replacement. 4607 46082016-04-20 Ed Schonberg <schonberg@adacore.com> 4609 4610 * sem_util.adb (Build_Explicit_Dereference): If the designated 4611 expression is an entity name, generate reference to the entity 4612 because it will not be resolved again. 4613 46142016-04-19 Arnaud Charlet <charlet@adacore.com> 4615 4616 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, 4617 gnat_rm.texi: Update documentation. 4618 46192016-04-19 Olivier Hainque <hainque@adacore.com> 4620 4621 * par_sco.adb (Traverse_One, case N_Case_Statement): 4622 Skip pragmas before the first alternative. 4623 (Traverse_Handled_Statement_Sequence, Exception_Handlers): Likewise. 4624 46252016-04-19 Tristan Gingold <gingold@adacore.com> 4626 4627 * adaint.c (__gnat_lwp_self): New function (for darwin). 4628 * s-osinte-darwin.ads, s-osinte-darwin.adb (lwp_self): Import 4629 of __gnat_lwp_self. 4630 46312016-04-19 Olivier Hainque <hainque@adacore.com> 4632 4633 * sem_util.adb (Build_Elaboration_Entity): Always request an 4634 elab counter when preserving control-flow. 4635 46362016-04-19 Olivier Hainque <hainque@adacore.com> 4637 4638 * sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set 4639 Needs_Debug_Info when producing SCOs. 4640 * par_sco.adb (Traverse_Aspects): Fix categorization of 4641 Type_Invariant to match actual processing as activated depending 4642 on pragma Assertion_Policy. 4643 * sem_prag.adb (Analyze_Pragma): Remove special case for 4644 Name_Invariant regarding SCO generation, which completely disabled 4645 the production of SCOs for Invariant pragmas and aspects. 4646 46472016-04-19 Hristian Kirtchev <kirtchev@adacore.com> 4648 4649 * checks.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor 4650 reformatting. 4651 46522016-04-19 Ed Schonberg <schonberg@adacore.com> 4653 4654 * freeze.adb (Freeze_Profile): Refine predicate that checks 4655 whether a function that returns a limited view is declared in 4656 another unit and cannot be frozen at this point. 4657 46582016-04-19 Ed Schonberg <schonberg@adacore.com> 4659 4660 * exp_aggr.adb (Component_Count): Handle properly superflat 4661 arrays, i.e. empty arrays where Hi < Lo - 1, to ensure that the 4662 return value of the function is Natural, rather than leaving 4663 the handling of such arrays to the caller of this function. 4664 46652016-04-19 Arnaud Charlet <charlet@adacore.com> 4666 4667 * sem_prag.adb, sem_attr.adb, par-prag.adb, exp_aggr.adb, sem_type.adb 4668 sem_ch12.adb, sem_ch3.adb, exp_ch7.adb, exp_ch9.adb: Code cleanup. 4669 * sem_res.adb, sem_util.ads, sem_util.adb (Is_OK_Volatile_Context): 4670 Promoted from being a nested subprogram in Sem_Res.Resolve_Entity_Name 4671 to publicly visible routine in Sem_Util. 4672 46732016-04-19 Ed Schonberg <schonberg@adacore.com> 4674 4675 * checks.adb (Apply_Parameter_Aliasing_Checks): Do not apply 4676 the check if the type of the actual is By_Reference. 4677 46782016-04-19 Arnaud Charlet <charlet@adacore.com> 4679 4680 * sem_res.adb (Within_Subprogram_Call): Detect 4681 also nodes that appear in entry calls. 4682 (Resolve_Actuals, Insert_Default): Propagate 4683 dimension information if any, from default expression to the 4684 copy that appears in the list of actuals. 4685 * uintp.ads: minor whitespace fix in comment. 4686 * sem_prag.adb, stringt.adb, inline.adb, lib-xref-spark_specific.adb: 4687 Minor code cleanup. 4688 * set_targ.adb (Set_Targ): convert directly from 4689 Natural to Pos, without intermediate conversion to Int. 4690 46912016-04-19 Arnaud Charlet <charlet@adacore.com> 4692 4693 * sem_ch6.adb (Process_Formals): Mark suspicious reference to 4694 SPARK RM in comment. 4695 * sem_prag.adb (Analyze_Global_Item): Fix reference to SPARK RM 4696 in comment. 4697 * sem_res.adb (Property_Error, Resolve_Actuals): Fix reference 4698 to SPARK RM in both comment and error message. 4699 47002016-04-19 Eric Botcazou <ebotcazou@adacore.com> 4701 4702 * sem_ch6.adb (Possible_Freeze): If the type is an incomplete 4703 CW type, then the subprogram must have a delayed freeze. This 4704 ensures that the backend can properly recover the full view when 4705 elaborating the access subprogram declaration. 4706 47072016-04-19 Ed Schonberg <schonberg@adacore.com> 4708 4709 * sem_attr.adb (Resolve_Attribute, case 'Access): Freeze 4710 overloadable entity if originally overloaded. 4711 47122016-04-19 Arnaud Charlet <charlet@adacore.com> 4713 4714 * exp_aggr.adb, exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_code.adb, 4715 exp_fixd.adb, namet.adb, osint.adb, osint.ads, par-ch2.adb, 4716 sem_ch10.adb, sem_ch12.adb, sem_disp.adb, sem_elab.adb, sem_elim.adb 4717 sem_util.adb, styleg.adb, styleg.ads, stylesw.ads: Minor code 4718 clean up. 4719 47202016-04-19 Arnaud Charlet <charlet@adacore.com> 4721 4722 * sem_util.adb (Copy_Node_With_Replacement): 4723 use Set_Comes_From_Source instead of directly manipulating 4724 internals of the node table. 4725 * sem_util.adb (Within_Scope): refactored to remove duplicated code. 4726 * sem_aux.adb (Get_Rep_Pragma, 4727 Subprogram_Body_Entity, Subprogram_Spec): declare variables that 4728 do not change as constants and initialize them in the declaration. 4729 (Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare 4730 variables that do not change as constants and initialize them 4731 in the declaration. 4732 47332016-04-19 Ed Schonberg <schonberg@adacore.com> 4734 4735 * sem_res.adb (Resolve_Entry_Call): If the entry has 4736 preconditions it is rewritten by means of a wrapper that 4737 incorporates the original call. Before rewriting generate a 4738 reference to the entry being called to prevent spurious warnings 4739 and provide correct cross-reference information. 4740 47412016-04-19 Hristian Kirtchev <kirtchev@adacore.com> 4742 4743 * sem_disp.adb (Check_Dispatching_Context): Code cleanup. Add 4744 local constant Scop. Ignore any internally generated loops when 4745 performing the check concerning an abstract subprogram call 4746 without a controlling argument. 4747 * sem_util.ads, sem_util.adb (Current_Scope_No_Loops): New routine. 4748 47492016-04-19 Bob Duff <duff@adacore.com> 4750 4751 * sem_elab.adb (Check_A_Call): There are cases where we have No 4752 (Ent) after the Alias loop, even when there was no previous error, 4753 so we can't assert that there was an error. 4754 47552016-04-19 Ed Schonberg <schonberg@adacore.com> 4756 4757 * sem_attr.adb (Analyze_Access_Attribute, OK_Self_Reference): 4758 Reject use of type name as a prefix to 'access within an aggregate 4759 in a context that is not the declarative region of a type. 4760 47612016-04-19 Vincent Celier <celier@adacore.com> 4762 4763 * gnatcmd.adb: Make "gnat ls -P" invoke gprls Make "gnat bind 4764 -P" invoke "gprbuild -b" Make "gnat link -P" invoke "gprbuild 4765 -l" Fail if the invocation is "gnat find -P" or "gnat xref -P" 4766 Remove anything related to project files 4767 * g-mbdira.adb: minor whitespace cleanup 4768 * g-spipat.adb: minor removal of extra spaces after closing paren 4769 47702016-04-19 Ed Schonberg <schonberg@adacore.com> 4771 4772 * exp_ch6.adb (Expand_Actuals): If post-statements are present 4773 and the enclosing context is a function call or indexing, build 4774 an Expression_With_Actions for the call. 4775 47762016-04-19 Hristian Kirtchev <kirtchev@adacore.com> 4777 4778 * lib-writ.adb (Write_With_Lines): Code cleanup. Do not generate 4779 a with line for an ignored Ghost unit. 4780 * sem_ch7.adb (Analyze_Package_Declaration): Add local constant 4781 Par. A child package is Ghost when its parent is Ghost. 4782 * sem_prag.adb (Analyze_Pragma): Pragma Ghost can now apply to 4783 a subprogram declaration that acts as a compilation unit. 4784 47852016-04-18 Michael Matz <matz@suse.de> 4786 4787 * gcc-interface/decl.c (gnat_to_gnu_entity): Use SET_TYPE_ALIGN. 4788 (gnat_to_gnu_field): Ditto. 4789 (components_to_record): Ditto. 4790 (create_variant_part_from): Ditto. 4791 (copy_and_substitute_in_size): Ditto. 4792 (substitute_in_type): Ditto. 4793 * gcc-interface/utils.c (make_aligning_type): Use SET_TYPE_ALIGN. 4794 (make_packable_type): Ditto. 4795 (maybe_pad_type): Ditto. 4796 (finish_fat_pointer_type): Ditto. 4797 (finish_record_type): Ditto and use SET_DECL_ALIGN. 4798 (rest_of_record_type_compilation): Use SET_TYPE_ALIGN. 4799 (create_field_decl): Use SET_DECL_ALIGN. 4800 48012016-04-18 Arnaud Charlet <charlet@adacore.com> 4802 4803 * einfo.adb (Overridden_Operation): assert that 4804 function is called for valid arguments. 4805 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_type.adb, 4806 s-osinte-vxworks.ads, a-ngcefu.adb, sem_ch10.adb, einfo.ads, 4807 sem_prag.adb, sem_ch12.adb, sem.adb, i-cobol.ads, freeze.adb, 4808 sem_util.adb, a-chtgop.ads, s-rannum.adb, exp_ch6.adb, s-bignum.adb, 4809 s-osinte-freebsd.ads, par-ch5.adb, a-chtgbo.ads, a-cofove.adb: 4810 No space after closing parenthesis except where required for 4811 layout. 4812 * sem_res.adb: Minor reformatting. 4813 48142016-04-18 Arnaud Charlet <charlet@adacore.com> 4815 4816 * exp_ch4.adb (Expand_N_Case_Expression): Convert into a case 4817 statement when relevant. 4818 48192016-04-18 Bob Duff <duff@adacore.com> 4820 4821 * a-cuprqu.adb (Enqueue): Properly handle the 4822 case where the new element has a unique priority. 4823 48242016-04-18 Tristan Gingold <gingold@adacore.com> 4825 4826 * adaint.h: Define stat structures and functions for iOS 4827 simulator. 4828 48292016-04-18 Arnaud Charlet <charlet@adacore.com> 4830 4831 * sem_res.adb (Resolve_Entry_Call): reset 4832 Is_Overloaded flag after resolving calls to overloaded protected 4833 operations. 4834 * exp_spark.adb (Expand_SPARK): call 4835 Qualify_Entity_Names for tasking nodes, i.e. protected types, 4836 task types and entries. 4837 * exp_ch4.adb (Expand_N_If_Expression): Refine previous change 4838 in case of an unconstrained type. 4839 48402016-04-18 Yannick Moy <moy@adacore.com> 4841 4842 * sem_eval.adb, sem_eval.ads (Check_Non_Static_Context): Add 4843 comment to document usage of subprogram in GNATprove. 4844 48452016-04-18 Ed Schonberg <schonberg@adacore.com> 4846 4847 * sem_prag.adb (Analyze_Pragma, case Test_Case): Improve error 4848 message for wrong placement of aspect Test_Case. 4849 48502016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 4851 4852 * einfo.ads: Update the documentation of attribute Renamed_Object. 4853 * exp_spark.adb (Expand_Potential_Renaming): Reimplemented. 4854 48552016-04-18 Gary Dismukes <dismukes@adacore.com> 4856 4857 * exp_ch4.adb (Optimize_Length_Comparison): Return immediately 4858 in the case of AAMP (same as for use of the -gnatd.P switch) to 4859 suppress this optimization, which avoids creating a dependence 4860 on the 64-bit arithmetic package. 4861 48622016-04-18 Arnaud Charlet <charlet@adacore.com> 4863 4864 * exp_ch4.adb: Update comment. 4865 48662016-04-18 Eric Botcazou <ebotcazou@adacore.com> 4867 4868 * exp_ch6.adb (Expand_Call): Make sure instantiations are 4869 registered only once as pending here. 4870 48712016-04-18 Arnaud Charlet <charlet@adacore.com> 4872 4873 * exp_ch4.adb, gnat1drv.adb, opt.ads, sem_res.adb 4874 (Minimize_Expression_With_Actions): New flag. 4875 (Adjust_Global_Switches): Set Minimize_Expression_With_Actions 4876 when generating C. 4877 (Resolve_Short_Circuit): Redo previous change 4878 using Minimize_Expression_With_Actions. 4879 (Expand_N_If_Expression, 4880 Expand_Short_Circuit_Operator): Restore old code to avoid 4881 Expression_With_Actions when Minimize_Expression_With_Actions 4882 is set. 4883 48842016-04-18 Vincent Celier <celier@adacore.com> 4885 4886 * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and 4887 Stderr_File): Close local file descriptors when no longer needed. 4888 48892016-04-18 Ed Schonberg <schonberg@adacore.com> 4890 4891 * sem_ch5.adb (Analyze_Iterator_Specification): Remove SPARK 4892 mode check that the type of the cursor in an iteration over 4893 a formal container is not volatile. The proper check on the 4894 element type is done elsewhere. 4895 48962016-04-18 Ed Schonberg <schonberg@adacore.com> 4897 4898 * sem_ch6.adb (Process_Formals): Do not set a delay freeze on 4899 a subprogram that returns a class-wide type, if the subprogram 4900 is a compilation unit, because otherwise gigi will treat the 4901 subprogram as external, leading to link errors. 4902 49032016-04-18 Arnaud Charlet <charlet@adacore.com> 4904 4905 * sem_res.adb (Resolve_Short_Circuit): Do not use 4906 expression-with-actions when generating C. 4907 49082016-04-18 Yannick Moy <moy@adacore.com> 4909 4910 * sem_util.adb (Apply_Compile_Time_Constraint_Error): Do not generate 4911 raise node in GNATprove mode. 4912 49132016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 4914 4915 * s-fileio.adb: Minor reformatting. 4916 * sem_prag.adb (Analyze_Input_Item): Add local 4917 variable Input_OK. Do not consider mappings of generic formal 4918 parameters to actuals. 4919 49202016-04-18 Ed Schonberg <schonberg@adacore.com> 4921 4922 * sem_ch5.adb (Get_Cursor_Type): If iterator type is a derived 4923 type, the cursor is declared in the scope of the parent type. 4924 (Analyze_Parameter_Specification): A qualified expression with an 4925 iterator type indicates an iteration over a container (explicit 4926 or implicit). 4927 49282016-04-18 Arnaud Charlet <charlet@adacore.com> 4929 4930 * osint-c.ads, osint-c.adb (Delete_C_File, Delete_H_File): New. 4931 * gnat1drv.adb (Gnat1drv): Delete old C files before regenerating them. 4932 * debug.adb: Reserve -gnatd.4 to force generation of C files. 4933 49342016-04-18 Yannick Moy <moy@adacore.com> 4935 4936 * sem_eval.adb (Eval_Arithmetic_Op): Do not issue error on static 4937 division by zero, instead possibly issue a warning. 4938 * sem_res.adb (Resolve_Arithmetic_Op): Do not issue error on 4939 static division by zero, instead add check flag on original 4940 expression. 4941 * sem_util.adb, sem_util.ads (Compile_Time_Constraint_Error): 4942 Only issue error when both SPARK_Mode is On and Warn is False. 4943 49442016-04-18 Yannick Moy <moy@adacore.com> 4945 4946 * checks.adb (Apply_Scalar_Range_Check): Force 4947 warning instead of error when SPARK_Mode is On, on index out of 4948 bounds, and set check flag for GNATprove. 4949 49502016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 4951 4952 * sem_prag.adb (Check_In_Out_States.Check_Constituent_Usage): 4953 Update the comment on usage. Reimplemented. 4954 (Check_Input_States.Check_Constituent_Usage): Update the comment 4955 on usage. A Proof_In constituent can now refine an Input state 4956 as long as there is at least one Input constituent present. 4957 49582016-04-18 Ed Schonberg <schonberg@adacore.com> 4959 4960 * sem_ch6.adb (Check_Inline_Pragma): Use the Sloc of the 4961 body id as the sloc of the entity in the generated subprogram 4962 declaration, to avoid spurious conformance errors when style 4963 checks are enabled. 4964 49652016-04-18 Ed Schonberg <schonberg@adacore.com> 4966 4967 * sem_ch4.adb (Analyze_Selected_Component, Has_Dereference): 4968 Refine check on illegal calls to entities within a task body, 4969 when the entity is declared in an object of the same type. In 4970 a generic context there might be no explicit dereference but if 4971 the prefix includes an access type the construct is legal. 4972 49732016-04-18 Arnaud Charlet <charlet@adacore.com> 4974 4975 * rtsfind.ads, rtsfind.adb (RE_Id, RE_Unit_Table): add 4976 RE_Default_Priority. 4977 49782016-04-18 Bob Duff <duff@adacore.com> 4979 4980 * sem_prag.adb (Check_Arg_Is_Local_Name): Don't do the check 4981 if the pragma came from an aspect specification. 4982 49832016-04-18 Gary Dismukes <dismukes@adacore.com> 4984 4985 * gnat1drv.adb, contracts.adb: Minor reformatting and wording fixes. 4986 49872016-04-18 Ed Schonberg <schonberg@adacore.com> 4988 4989 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): To suppress 4990 superfluous conformance check on an inlined body with a previous 4991 spec, use the fact that the generated declaration does not come 4992 from source. We must treat the entity as coming from source to 4993 enable some back-end inlining when pragma appears after the body. 4994 49952016-04-18 Gary Dismukes <dismukes@adacore.com> 4996 4997 * lib-xref-spark_specific.adb, par-ch2.adb, errout.ads, 4998 exp_intr.adb: Minor reformatting and typo corrections. 4999 50002016-04-18 Ed Schonberg <schonberg@adacore.com> 5001 5002 * sem_ch6.adb: Code cleanup. 5003 50042016-04-18 Thomas Quinot <quinot@adacore.com> 5005 5006 * sem_ch13.adb: Minor reformatting and error message tweaking 5007 (remove extraneous spaces). 5008 50092016-04-18 Johannes Kanig <kanig@adacore.com> 5010 5011 * gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK. 5012 50132016-04-18 Bob Duff <duff@adacore.com> 5014 5015 * s-fileio.adb (Fopen_Mode): If Mode = Out_File, and the file 5016 exists, and it's a fifo, we use "w" as the open string instead of 5017 "r+". This is necessary to make a write to the fifo block until 5018 a reader is ready. 5019 50202016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5021 5022 * sem_attr.adb (Denote_Same_Function): Account 5023 for a special case where a primitive of a tagged type inherits 5024 a class-wide postcondition from a parent type. 5025 50262016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5027 5028 * par-ch2.adb (P_Expression_Or_Reserved_Word): New routine. 5029 (P_Pragma): Signal Scan_Pragma_Argument_Association when the use 5030 of reserved words is OK. 5031 (Scan_Pragma_Argument_Association): 5032 Add new formal Reserved_Words_OK and update the comment on 5033 usage. Code cleanup. Parse an expression or a reserved word in 5034 identifier form for pragmas Restriction_Warnings and Restrictions 5035 No_Use_Of_Attribute. 5036 * restrict.adb (Check_Restriction_No_Use_Of_Attribute): 5037 Reimplemented. (Check_Restriction_No_Use_Of_Pragma): Code cleanup. 5038 (Set_Restriction_No_Specification_Of_Aspect): Properly set the warning 5039 flag for an aspect. 5040 (Set_Restriction_No_Use_Of_Attribute): Properly set the warning 5041 flag for an attribute. (Set_Restriction_No_Use_Of_Entity): 5042 Update the parameter profile. 5043 (Set_Restriction_No_Use_Of_Pragma): Properly set the warning flag for 5044 a pragma. 5045 * restrict.ads (Check_Restriction_No_Use_Of_Attribute): Update 5046 the comment on usage. 5047 (Set_Restriction_No_Use_Of_Entity): Update the parameter profile. 5048 * sem_attr.adb (Analyze_Attribute): Check restriction 5049 No_Use_Of_Attribute. 5050 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check 5051 restriction No_Use_Of_Attribute before any rewritings have 5052 taken place. 5053 * sem_prag.adb (Analyze_Pragma): Check restriction 5054 No_Use_Of_Pragma before any rewritings have taken place. 5055 50562016-04-18 Bob Duff <duff@adacore.com> 5057 5058 * sem_ch6.adb (Is_Inline_Pragma): The pragma 5059 argument can be a selected component, which has no Chars field, 5060 so we need to deal with that case (use the Selector_Name). 5061 (Check_Inline_Pragma): We need to test Is_List_Member before 5062 calling In_Same_List, because in case of a library unit, they're 5063 not in lists, so In_Same_List fails an assertion. 5064 50652016-04-18 Bob Duff <duff@adacore.com> 5066 5067 * namet.ads, namet.adb: Add an Append that appends a 5068 Bounded_String onto a Bounded_String. Probably a little more 5069 efficient than "Append(X, +Y);". Also minor cleanup. 5070 (Append_Decoded, Append_Decoded_With_Brackets, Append_Unqualified, 5071 Append_Unqualified_Decoded): Make sure these work with non-empty 5072 buffers. 5073 * casing.ads, casing.adb (Set_Casing): Pass a Bounded_String 5074 parameter, defaulting to Global_Name_Buffer. 5075 * errout.ads, errout.adb (Adjust_Name_Case): Pass a 5076 Bounded_String parameter, no default. 5077 * exp_ch11.adb (Expand_N_Raise_Statement): Use local 5078 Bounded_String instead of Global_Name_Buffer. 5079 * exp_intr.ads, exp_intr.adb (Write_Entity_Name): Rename it 5080 to Append_Entity_Name, and pass a Bounded_String parameter, 5081 instead of using globals. 5082 (Add_Source_Info): Pass a Bounded_String parameter, instead of 5083 using globals. 5084 (Expand_Source_Info): Use local instead of globals. 5085 * stringt.ads, stringt.adb (Append): Add an Append procedure 5086 for appending a String_Id onto a Bounded_String. 5087 (String_To_Name_Buffer, Add_String_To_Name_Buffer): Rewrite in 5088 terms of Append. 5089 * sem_prag.adb (Set_Error_Msg_To_Profile_Name): Adjust for new 5090 Adjust_Name_Case parameter. 5091 * erroutc.adb, uname.adb: Don't pass D => Mixed_Case to 5092 Set_Casing; that's the default. 5093 * lib-xref-spark_specific.adb (Add_SPARK_Scope): Pretend that calls to 5094 protected subprograms are entry calls; otherwise it is not possible to 5095 distinguish them from regular subprogram calls. 5096 50972016-04-18 Gary Dismukes <dismukes@adacore.com> 5098 5099 * sem_ch13.adb (Has_Good_Profile): Improvement 5100 of error message. Now indicates subtype_mark of formal parameter 5101 rather than the formal's name, plus minor rewording. 5102 51032016-04-18 Pascal Obry <obry@adacore.com> 5104 5105 * adaint.c, adaint.h, s-os_lib.ads: Add new routine Current_Process_Id. 5106 51072016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5108 5109 * stringt.adb, exp_ch6.adb, sem_ch13.adb: Minor reformatting. 5110 51112016-04-18 Gary Dismukes <dismukes@adacore.com> 5112 5113 * par-ch4.adb, sem_prag.adb: Minor reformatting. 5114 51152016-04-18 Bob Duff <duff@adacore.com> 5116 5117 * sinput.ads, sinput.adb (Build_Location_String): Take a 5118 parameter instead of using a global variable. The function 5119 version no longer destroys the Name_Buffer. 5120 * stringt.ads, stringt.adb (String_From_Name_Buffer): Take a 5121 parameter, which defaults to the Global_Name_Buffer, so some 5122 calls can avoid the global. 5123 * exp_ch11.adb, exp_intr.adb: Use new interfaces above 5124 to avoid using globals. All but one call to Build_Location_String 5125 avoids the global. Only one call to String_From_Name_Buffer 5126 avoids it. 5127 51282016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5129 5130 * namet.adb, namet.ads, exp_unst.adb: Minor reformatting. 5131 51322016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5133 5134 * sem_eval.adb (Choice_Matches): Check the expression 5135 against the predicate values when the choice denotes a 5136 subtype with a static predicate. 5137 (Eval_Membership_Op): Code cleanup. Remove the suspicious guard which 5138 tests for predicates. 5139 (Is_OK_Static_Subtype): A subtype with a dynamic predicate 5140 is not static. (Is_Static_Subtype): A subtype with a dynamic 5141 predicate is not static. 5142 * sem_eval.ads (Is_OK_Static_Subtype): Update the comment on usage. 5143 (Is_Static_Subtype): Update the comment on usage. 5144 51452016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5146 5147 * sem_prag.adb (Analyze_Input_Item): Allow 5148 generic formals to appear as initialization items. 5149 51502016-04-18 Ed Schonberg <schonberg@adacore.com> 5151 5152 * sem_ch13.adb (Analyze_Stream_TSS_Definition, 5153 Has_Good_Profile): Additional error message to indicate that 5154 the second parameter of the subprogram must be a first subtype. 5155 51562016-04-18 Ed Schonberg <schonberg@adacore.com> 5157 5158 * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Is_Inline_Pragma): 5159 Use the pragma lookahead that determines whether a subprogram 5160 is to be inlined, when some level of backend optimization is 5161 required. 5162 * sem_ch12.ads, sem_ch12.adb (Add_Pending_Instantiation): Factorize 5163 code used to create an instance body when needed for inlining. 5164 * exp_ch6.adb (Expand_Call): When a call is to be inlined, and the 5165 call appears within an instantiation that is not a compilation 5166 unit, add a pending instantiation for the enclosing instance, 5167 so the backend can inline in turn the calls contained in the 5168 inlined body. 5169 51702016-04-18 Ed Schonberg <schonberg@adacore.com> 5171 5172 * sem_prag.adb (Build_Pragma_Check_Equivalent): The mapping 5173 that relates operations of the parent type to the operations of 5174 the derived type has three distinct sources: 5175 a) explicit operations of the derived type carry an 5176 Overridden_Operation that designates the operation in the 5177 ancestor. 5178 b) Implicit operations that are inherited by the derived type 5179 carry an alias that may be an explicit subprogram (in which case 5180 it may have an Overridden_ Operation indicator) or may also be 5181 inherited and carry its own alias. 5182 c) If the parent type is an interface, the operation of the 5183 derived type does not override, but the interface operation 5184 indicates the operation that implements it. 5185 * sem_prag.adb: Minor reformatting. 5186 * sem_prag.adb (Check_External_Property): Update 5187 the comment on usage. Reimplement. 5188 51892016-04-18 Ed Schonberg <schonberg@adacore.com> 5190 5191 * exp_ch5.adb (Expand_Assignment_Statement): In restricted 5192 profiles such as ZFP, ceiling priority is not available. 5193 51942016-04-18 Bob Duff <duff@adacore.com> 5195 5196 * namet-sp.ads: Minor typo fix, ironically in 'Spelling_Checker'. 5197 51982016-04-18 Bob Duff <duff@adacore.com> 5199 5200 * sem_elab.adb (Output_Calls): Use 5201 Get_Name_String, to clearly indicate that the global Name_Buffer 5202 is being used. The previous code used Is_Internal_Name, which 5203 returns a Boolean, but also has a side effect of setting the 5204 Name_Buffer. Then it called the other Is_Internal_Name, which uses 5205 the Name_Buffer for its input. And then it called Error_Msg_N, 5206 again using the Name_Buffer. We haven't eliminated the global 5207 usage here, but we've made it a bit clearer. 5208 This also allows us to have a side-effect-free version of 5209 Is_Internal_Name. 5210 * namet.ads, namet.adb: Provide a type Bounded_String, along with 5211 routines that can be used without using global variables. Provide 5212 Global_Name_Buffer so existing code can continue to use the 5213 global. Mark the routines that use globals as obsolete. New code 5214 shouldn't call the obsolete ones, and we should clean up existing 5215 code from time to time. 5216 Name_Find_Str is renamed as Name_Find. 5217 * namet.h: Changed as necessary to interface to the new version 5218 of Namet. 5219 * bindgen.adb, exp_unst.adb: Name_Find_Str is renamed as 5220 Name_Find. 5221 52222016-04-18 Yannick Moy <moy@adacore.com> 5223 5224 * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): used 5225 outside of GNATprove, hence it should not be removed. 5226 52272016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5228 5229 * sem_prag.adb (Analyze_Refinement_Clause): 5230 The refinement of an external abstract state can now mention 5231 non-external constituents. 5232 (Check_External_Property): Update all SPARK RM references. 5233 52342016-04-18 Bob Duff <duff@adacore.com> 5235 5236 * exp_intr.adb: Remove some duplicated code. 5237 52382016-04-18 Yannick Moy <moy@adacore.com> 5239 5240 * a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads: Mark 5241 package spec and body out of SPARK. 5242 52432016-04-18 Johannes Kanig <kanig@adacore.com> 5244 5245 * spark_xrefs.ads: Minor comment update. 5246 52472016-04-18 Johannes Kanig <kanig@adacore.com> 5248 5249 * gnat1drv.adb (Gnat1drv): Force loading of System 5250 unit for SPARK. 5251 52522016-04-18 Bob Duff <duff@adacore.com> 5253 5254 * a-cuprqu.adb: Correction to previous change. If a new node 5255 is inserted at the front of the queue (because it is higher 5256 priority than the previous front node), we need to update 5257 Header.Next_Unequal -- not just in the case where the queue was 5258 previously empty. 5259 52602016-04-18 Bob Duff <duff@adacore.com> 5261 5262 * a-cuprqu.ads: Change the representation of List_Type from a 5263 singly-linked list to a doubly-linked list. In addition, add a 5264 pointer Next_Unequal, which points past a possibly-long chain 5265 of equal-priority items. This increases efficiency, especially 5266 in the case of many equal-priority items. 5267 * a-cuprqu.adb (Dequeue, Enqueue): Rewrite algorithms to take 5268 advantage of new data structure. 5269 (Finalize): Rewrite in terms of Dequeue, for simplicity. 5270 52712016-04-18 Yannick Moy <moy@adacore.com> 5272 5273 * contracts.adb (Analyze_Object_Contract, 5274 Analyze_Protected_Contract): Remove tests performed in GNATprove. 5275 * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): 5276 Remove query for tests performed in GNATprove. 5277 52782016-04-18 Ed Schonberg <schonberg@adacore.com> 5279 5280 * sem_aggr.adb (Resolve_Record_Aggregate): If 5281 Warn_On_Redundant_Constructs is enabled, report a redundant box 5282 association that does not cover any components, as it done for 5283 redundant others associations in case statements. 5284 52852016-04-18 Ed Schonberg <schonberg@adacore.com> 5286 5287 * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): 5288 Analyze the generated Check pragma for an inherited condition so 5289 that it does not freeze the dispatching type of the primitive 5290 operation, because it is pre-analyzed at the point of the 5291 subprogram declaration (and not in the subprogram body, as is 5292 done during regular expansion). 5293 52942016-04-18 Vincent Celier <celier@adacore.com> 5295 5296 * ali.ads: Increase the range of all _Id types to 100 millions. 5297 52982016-04-18 Gary Dismukes <dismukes@adacore.com> 5299 5300 * sem_warn.adb (Check_References): Change warning to suggest 5301 using pragma Export rather than saying "volatile has no effect". 5302 53032016-04-18 Bob Duff <duff@adacore.com> 5304 5305 * g-souinf.ads (Compilation_ISO_Date): New function to return 5306 the current date in ISO form. 5307 * exp_intr.adb (Expand_Source_Info, Add_Source_Info): Expand 5308 a call to Compilation_ISO_Date into a string literal containing 5309 the current date in ISO form. 5310 * exp_intr.ads (Add_Source_Info): Improve documentation. 5311 * sem_intr.adb (Check_Intrinsic_Subprogram): Recognize 5312 Compilation_ISO_Date. 5313 * snames.ads-tmpl (Name_Compilation_ISO_Date): New Name_Id. 5314 53152016-04-18 Eric Botcazou <ebotcazou@adacore.com> 5316 5317 * layout.adb (Set_Elem_Alignment): Extend setting of alignment 5318 to subtypes that are not first subtypes. 5319 53202016-04-18 Ed Schonberg <schonberg@adacore.com> 5321 5322 * sem_prag.ads (Collect_Inherited_Class_Wide_Conditions): 5323 Simplify interface. 5324 * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Insert 5325 generated pragmas after subprogram declaration, rather than in 5326 the corresponding subprogram body. 5327 * sem_ch6.adb (New_Overloaded_Entity): In GNATProve 5328 mode, if the operation is overridding, call 5329 Collect_Inherited_Class_Wide_Conditions to generate the 5330 corresponding pragmas immediately after the corresponding 5331 subprogram declaration. 5332 53332016-04-18 Arnaud Charlet <charlet@adacore.com> 5334 5335 * spark_xrefs.ads (Xref_Index, Scope_Index, File_Index): restrict 5336 type to natural numbers. 5337 (Stype): document code characters for concurrent entities. 5338 53392016-04-18 Olivier Hainque <hainque@adacore.com> 5340 5341 * targparm.ads: Update the Frontend_Exceptions default internal 5342 value. 5343 (Frontend_Exceptions_On_Target): Change default value to True. 5344 53452016-04-18 Ed Schonberg <schonberg@adacore.com> 5346 5347 * sem_ch4.adb (Analyze_Selected_Component): Refine error 5348 detection when a selected component in the body of a synchronized 5349 type is a reference to an object of the same type declared 5350 elsewhere. The construct is legal if the prefix of the selected 5351 component includes an explicit dereference at any point. 5352 53532016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5354 5355 * sem_ch3.adb (Analyze_Object_Declaration): Do not consider 5356 internally generated expressions when trying to determine whether 5357 a formal parameter of a tagged type subject to Extensions_Visible 5358 False is used to initialize an object. 5359 * sem_ch4.adb (Analyze_Type_Conversion): Do not consider 5360 internally generated expressions when trying to determine whether 5361 a formal parameter of a tagged type subject to Extensions_Visible 5362 False is used in a type conversion. 5363 53642016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5365 5366 * sem_res.adb (Is_Protected_Operation_Call): 5367 Add guards to account for a non-decorated selected component. 5368 53692016-04-18 Yannick Moy <moy@adacore.com> 5370 5371 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve 5372 implementation of Body_Has_SPARK_Mode_On. 5373 * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_From_Annotation): 5374 New function replacing previous Get_SPARK_Mode_From_Pragma, that 5375 deals also with aspects. 5376 (Get_SPARK_Mode_Type): Make function internal again. 5377 * inline.adb, sem_ch7.adb, sem_util.adb: Use new 5378 Get_SPARK_Mode_From_Annotation. 5379 53802016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5381 5382 * contracts.adb (Analyze_Object_Contract): Update references to 5383 SPARK RM. 5384 * freeze.adb (Freeze_Entity): Update references to SPARK RM. 5385 * ghost.adb Add with and use clauses for Sem_Disp. 5386 (Check_Ghost_Derivation): Removed. 5387 (Check_Ghost_Overriding): 5388 Reimplemented. (Check_Ghost_Policy): Update references to SPARK RM. 5389 (Check_Ghost_Primitive): New routine. 5390 (Check_Ghost_Refinement): New routine. (Is_OK_Ghost_Context): 5391 Update references to SPARK RM. (Is_OK_Pragma): Update references 5392 to SPARK RM. Predicates are now a valid context for references 5393 to Ghost entities. 5394 * ghost.ads (Check_Ghost_Derivation): Removed. 5395 (Check_Ghost_Overriding): Update the comment on usage. 5396 (Check_Ghost_Primitive): New routine. 5397 (Check_Ghost_Refinement): New routine. 5398 (Remove_Ignored_Ghost_Code): Update references to SPARK RM. 5399 * sem_ch3.adb (Process_Full_View): Remove the now obsolete check 5400 related to Ghost derivations 5401 * sem_ch6.adb (Check_Conformance): Remove now obsolete check 5402 related to the convention-like behavior of pragma Ghost. 5403 (Check_For_Primitive_Subprogram): Verify that the Ghost policy 5404 of a tagged type and its primitive agree. 5405 * sem_prag.adb (Analyze_Pragma): Update references to SPARK 5406 RM. Move the verification of pragma Assertion_Policy Ghost 5407 to the proper place. Remove the now obsolete check related 5408 to Ghost derivations. 5409 (Collect_Constituent): Add a call to Check_Ghost_Refinement. 5410 * sem_res.adb (Resolve_Actuals): Update references to SPARK RM. 5411 54122016-04-18 Eric Botcazou <ebotcazou@adacore.com> 5413 5414 * layout.adb: Fix more minor typos in comments. 5415 54162016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5417 5418 * a-calend.ads, sem_prag.adb, sem_ch6.adb: Minor reformatting. 5419 54202016-04-18 Ed Schonberg <schonberg@adacore.com> 5421 5422 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): In GNATprove 5423 mode, collect inherited class-wide conditions to generate the 5424 corresponding pragmas. 5425 * sem_prag.ads (Build_Pragma_Check_Equivalent): Moved from contracts 5426 * contracts.adb (Collect_Inherited_Class_Wide_Conditions): New 5427 procedure for overriding subprograms, used to generate the pragmas 5428 corresponding to an inherited class- wide pre- or postcondition. 5429 * sem_prag.adb (Build_Pragma_Check_Equivalent): moved here 5430 from contracts.adb (Replace_Condition_Entities): Subsidiary 5431 Build_Pragma_Check_Equivalent, to implement the proper semantics 5432 of inherited class-wide conditions, as given in AI12-0113. 5433 (Process_Class_Wide_Condition): Removed. 5434 (Collect_Inherited_Class_Wide_Conditions): Iterate over pragmas 5435 in contract of subprogram, to collect inherited class-wide 5436 conditions. 5437 (Build_Pragma_Check_Equivalent): Moved to sem_prag.adb 5438 54392016-04-18 Yannick Moy <moy@adacore.com> 5440 5441 * a-calend.adb (Ada.Calendar): Mark package body as SPARK_Mode Off. 5442 * a-calend.ads (Ada.Calendar): Mark package spec as 5443 SPARK_Mode and add synchronous external abstract state Clock_Time. 5444 54452016-04-18 Yannick Moy <moy@adacore.com> 5446 5447 * sem_res.adb (Resolve_Call): Prevent inlining of 5448 calls inside expression functions. Factor previous code issuing 5449 errors to call Cannot_Inline instead, which does appropriate 5450 processing of message for GNATprove. 5451 54522016-04-18 Arnaud Charlet <charlet@adacore.com> 5453 5454 * einfo.ads, sem_ch3.adb, sem_ch8.adb, osint-l.adb, rtsfind.adb, 5455 osint-b.adb: Cleanups. 5456 54572016-04-18 Yannick Moy <moy@adacore.com> 5458 5459 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Only create 5460 body to inline in GNATprove mode when SPARK_Mode On applies to 5461 subprogram body. 5462 * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_Type): Make function 5463 public. 5464 54652016-04-18 Eric Botcazou <ebotcazou@adacore.com> 5466 5467 * layout.adb: Fix minor typo in comment. 5468 * inline.adb: Fix minor pasto. 5469 * sem_ch12.ads: Fix minor typos in comments. 5470 54712016-04-18 Ed Schonberg <schonberg@adacore.com> 5472 5473 * sem_disp.adb (Check_Dispatching_Call): Major rewriting to 5474 handle some complex cases of tag indeterminate calls that are 5475 actuals in other dispatching calls that are themselves tag 5476 indeterminate. 5477 (Check_Dispatching_Context): Add parameter to support recursive 5478 check for an enclosing construct that may provide a tag for a 5479 tag-indeterminate call. 5480 54812016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5482 5483 * sem_prag.adb (Analyze_Depends_In_Decl_Part): 5484 Add global variables Task_Input_Seen and Task_Output_Seen. 5485 (Analyze_Global_Item): Detect an illegal use of the current 5486 instance of a single protected/task type in a global annotation. 5487 (Analyze_Input_Output): Inputs and output related to the current 5488 instance of a task unit are now tracked. 5489 (Check_Usage): Require 5490 the presence of the current instance of a task unit only when 5491 one input/output is available. (Current_Task_Instance_Seen): 5492 New routine. 5493 (Is_CCT_Instance): New parameter profile. Update 5494 the comment on usage. The routine now properly recognizes several 5495 cases related to single protected/task types. 5496 54972016-04-18 Hristian Kirtchev <kirtchev@adacore.com> 5498 5499 * freeze.adb (Freeze_Entity): Use New_Freeze_Node 5500 to create a brand new freeze node. This handles a case where an 5501 ignored Ghost context is freezing something which is not ignored 5502 Ghost and whose freeze node should not be removed from the tree. 5503 (New_Freeze_Node): New routine. 5504 55052016-04-18 Jerome Lambourg <lambourg@adacore.com> 5506 5507 * sigtramp.h (__gnat_set_is_vxsim) New function to 5508 tell sigtramp-vxworks to handle vxsim signal contexts. * 5509 sigtramp-vxworks.c (__gnat_sigtramp) Take into account the 5510 differences in the sigcontext structure between the expected 5511 regular x86 or x86_64 ones and the ones received in case of 5512 exexution on the vxworks simulator. 5513 * init.c: also compute is_vxsim in case of x86_64-vx7 target. Provide 5514 this information to sigtramp-vxworks.c. Remove the old mechanism for 5515 vxsim. 5516 * init-vxsim.c, sigtramp-vxworks-vxsim.c: remove, now obsolete. 5517 55182016-04-18 Eric Botcazou <ebotcazou@adacore.com> 5519 5520 * exp_ch3.adb (Inline_Init_Proc): New function returning 5521 whether the initialization procedure of a type should be 5522 inlined. Return again True for controlled type themselves. 5523 (Build_Array_Init_Proc): Call it to set Set_Is_Inlined on Init_Proc. 5524 (Build_Record_Init_Proc): Likewise. 5525 55262016-04-18 Arnaud Charlet <charlet@adacore.com> 5527 5528 * gnatvsn.ads (Library_Version): Bump to 7. 5529 55302016-04-18 Ed Schonberg <schonberg@adacore.com> 5531 5532 * sem_ch6.adb (Analyze_Expression_Function): Set Inlined flag 5533 on the entity of a subprogram declaration that is completed by 5534 an expression function. 5535 55362016-04-18 Ed Schonberg <schonberg@adacore.com> 5537 5538 * sem_util.adb (Is_Current_Instance): A entity given by a subtype 5539 declaration can appear in an aspect specification for a dynamic 5540 predicate, and a pragma for aspect Predicate_Failure. 5541 * exp_util.adb (Replace_Subtype_References): Replace current 5542 occurrences of the subtype to which a dynamic predicate applies, 5543 byt the expression that triggers a predicate check. Needed to 5544 implement new aspect Predicate_Failure. 5545 55462016-04-18 Arnaud Charlet <charlet@adacore.com> 5547 5548 * a-intsig.ads, a-intsig.adb: Removed, no longer used. 5549 * Makefile.rtl: update accordingly. 5550 55512016-04-18 Eric Botcazou <ebotcazou@adacore.com> 5552 5553 * sem_type.adb (Disambiguate): Call Covers only when necessary 5554 for standard operators. 5555 55562016-04-18 Eric Botcazou <ebotcazou@adacore.com> 5557 5558 * atree.ads (Num_Extension_Nodes): Add couple of figures 5559 to comment. 5560 * atree.adb: Add GNAT.Heap_Sort_G dependency. 5561 (Print_Statistics): New exported procedure to print statistics. 5562 55632016-04-18 Eric Botcazou <ebotcazou@adacore.com> 5564 5565 * exp_ch3.adb (Build_Record_Init_Proc): Do not mark the procedure 5566 as to be inlined if the type needs finalization. 5567 55682016-04-18 Jerome Lambourg <lambourg@adacore.com> 5569 5570 * sigtramp-vxworks-target.inc: sigtramp-vxworks: force the stack 5571 alignment for x86_64. 5572 * init.c: Better fix for guard page reset on x86_64-vx7. 5573 Do not try to retrieve the page that actually raised 5574 the signal as the probing mechanism used on x86_64 do not allow 5575 such retrieval. We thus just test if the guard page is active, 5576 and re-activate it if not. 5577 55782016-04-18 Arnaud Charlet <charlet@adacore.com> 5579 5580 * a-sytaco.adb (Suspension_Object): Aspect Default_Initial_Condition 5581 added. 5582 55832016-04-18 Jerome Lambourg <lambourg@adacore.com> 5584 5585 * affinity.c: Use the proper type for task id. 5586 * init.c (__gnat_inum_to_ivec): ivec is a pointer. 5587 55882016-04-18 Arnaud Charlet <charlet@adacore.com> 5589 5590 * sem_prag.adb (Process_Convention): Relax rule on exporting 5591 Intrinsic types if Relaxed_RM_Semantics is True. 5592 55932016-04-18 Vincent Celier <celier@adacore.com> 5594 5595 * sem_ch3.adb, lib.ads, sinfo.ads, sem_ch10.adb, einfo.adb, einfo.ads, 5596 checks.ads, sem_ch12.adb, sem.adb, sem_util.adb, sem_util.ads, 5597 sem_res.adb, sem_attr.adb, par.adb, exp_ch4.adb, errout.ads, 5598 sem_ch4.adb, atree.adb, atree.ads, sem_warn.adb, treepr.adb, 5599 exp_ch3.ads, exp_unst.adb: Change "descendent" to 5600 "descendant" in comments, error messages and identifiers. 5601 * gcc-interface/decl.c: Ditto. 5602 56032016-04-18 Eric Botcazou <ebotcazou@adacore.com> 5604 5605 * sem_type.adb (Operator_Matches_Spec): Call First_Formal on 5606 New_S only once at the beginning of the function. 5607 56082016-04-02 Eric Botcazou <ebotcazou@adacore.com> 5609 5610 * gcc-interface/decl.c (components_to_record): Restrict the previous 5611 change to fields with variable size. 5612 56132016-03-27 Eric Botcazou <ebotcazou@adacore.com> 5614 5615 * gcc-interface/decl.c (components_to_record): Add special case for 5616 single field with representation clause at offset 0. 5617 56182016-03-16 Svante Signell <svante.signell@gmail.com> 5619 5620 * gcc-interface/Makefile.in: Add support for x86 GNU/Hurd. 5621 * s-osinte-gnu.ads: New file. 5622 56232016-03-13 Eric Botcazou <ebotcazou@adacore.com> 5624 5625 * system-vxworks-m68k.ads (Stack_Check_Probes): Set to True. 5626 (Stack_Check_Limits): Set to False. 5627 * system-vxworks-mips.ads (Stack_Check_Probes): Set to True. 5628 (Stack_Check_Limits): Set to False. 5629 * system-vxworks-ppc.ads (Stack_Check_Probes): Set to True. 5630 (Stack_Check_Limits): Set to False. 5631 * system-vxworks-sparcv9.ads (Stack_Check_Probes): Set to True. 5632 (Stack_Check_Limits): Set to False. 5633 * system-vxworks-x86.ads (Stack_Check_Probes): Set to True. 5634 (Stack_Check_Limits): Set to False. 5635 56362016-03-07 Eric Botcazou <ebotcazou@adacore.com> 5637 5638 * gcc-interface/trans.c (statement_node_p): New predicate. 5639 (gnat_to_gnu): Invoke it to detect statement nodes. In ASIS mode, do 5640 not return dummy results for expressions attached to packed array 5641 implementation types. 5642 56432016-03-07 Eric Botcazou <ebotcazou@adacore.com> 5644 5645 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always mark 5646 the expression of a renaming manually in case #3. 5647 56482016-03-02 Dominik Vogt <vogt@linux.vnet.ibm.com> 5649 5650 * system-linux-s390.ads: Enable Stack_Check_Probes. 5651 * system-linux-s390.ads: Likewise. 5652 56532016-02-29 Martin Liska <mliska@suse.cz> 5654 5655 * gcc-interface/utils.c (set_reverse_storage_order_on_pad_type): 5656 Replace ENABLE_CHECKING macro with flag_checking. 5657 56582016-02-29 Eric Botcazou <ebotcazou@adacore.com> 5659 5660 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Retrofit 5661 handling of unconstrained array types as designated types into common 5662 processing. Also handle array types as incomplete designated types. 5663 56642016-02-29 Eric Botcazou <ebotcazou@adacore.com> 5665 5666 * gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In 5667 ASIS mode, fully lay out the minimal record type. 5668 56692016-02-29 Eric Botcazou <ebotcazou@adacore.com> 5670 5671 * gcc-interface/trans.c (finalize_nrv_r): Remove obsolete code. 5672 (build_return_expr): Likewise. 5673 (Call_to_gnu): If this is a function call and there is no target, 5674 create a temporary for the return value for all aggregate types, 5675 but never create it for a return statement. Push a binding level 5676 around the call in more cases. Remove obsolete code. 5677 56782016-02-29 Eric Botcazou <ebotcazou@adacore.com> 5679 5680 * gcc-interface/ada-tree.h (DECL_RETURN_VALUE_P): New macro. 5681 * gcc-interface/gigi.h (gigi): Remove useless attribute. 5682 (gnat_gimplify_expr): Likewise. 5683 (gnat_to_gnu_external): Declare. 5684 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Factor out 5685 code dealing with the expression of external constants into... 5686 Invoke gnat_to_gnu_external instead. 5687 <E_Variable>: Invoke gnat_to_gnu_external to translate renamed objects 5688 when not for a definition. Deal with COMPOUND_EXPR and variables with 5689 DECL_RETURN_VALUE_P set for renamings and with the case of a dangling 5690 'reference to a function call in a renaming. Remove obsolete test and 5691 adjust associated comment. 5692 * gcc-interface/trans.c (Call_to_gnu): Set DECL_RETURN_VALUE_P on the 5693 temporaries created to hold the return value, if any. 5694 (gnat_to_gnu_external): ...this. New function. 5695 * gcc-interface/utils.c (create_var_decl): Detect a constant created 5696 to hold 'reference to function call. 5697 * gcc-interface/utils2.c (build_unary_op) <ADDR_EXPR>: Add folding 5698 for COMPOUND_EXPR in the DECL_RETURN_VALUE_P case. 5699 57002016-02-17 Eric Botcazou <ebotcazou@adacore.com> 5701 5702 * exp_ch4.adb (Expand_N_Indexed_Component): Activate synchronization if 5703 the prefix denotes an entity which Has_Atomic_Components. 5704 * gcc-interface/trans.c (node_is_atomic): Return true if the prefix 5705 denotes an entity which Has_Atomic_Components. 5706 57072016-02-17 Eric Botcazou <ebotcazou@adacore.com> 5708 5709 * gcc-interface/utils2.c (gnat_protect_expr): Make a SAVE_EXPR only 5710 for fat pointer or scalar types. 5711 57122016-02-16 Eric Botcazou <ebotcazou@adacore.com> 5713 5714 * gcc-interface/gigi.h (maybe_debug_type): New inline function. 5715 * gcc-interface/misc.c (gnat_get_array_descr_info): Use it. 5716 Call maybe_character_value on the array bounds. Get to the base type 5717 of the index type and call maybe_debug_type on it. 5718 * gcc-interface/utils.c (finish_character_type): Add special treatment 5719 for char_type_node. 5720 57212016-02-16 Eric Botcazou <ebotcazou@adacore.com> 5722 5723 * gcc-interface/misc.c (gnat_enum_underlying_base_type): New function. 5724 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define to above. 5725 57262016-02-12 Jakub Jelinek <jakub@redhat.com> 5727 5728 * prj-tree.ads: Spelling fixes - behaviour -> behavior and 5729 neighbour -> neighbor. 5730 * prep.adb: Likewise. 5731 * prj.ads: Likewise. 5732 * prepcomp.adb: Likewise. 5733 * g-socket.ads: Likewise. 5734 * s-imgrea.adb: Likewise. 5735 * a-calend.adb: Likewise. 5736 * exp_disp.adb: Likewise. 5737 * doc/gnat_ugn/gnat_utility_programs.rst: Likewise. 5738 * g-socket.adb: Likewise. 5739 * sem_ch12.adb: Likewise. 5740 * terminals.c: Likewise. 5741 57422016-02-08 Bernd Schmidt <bschmidt@redhat.com> 5743 5744 * gcc-interface/misc.c (gnat_init): Remove second argument in call to 5745 build_common_tree_nodes. 5746 57472016-02-08 Eric Botcazou <ebotcazou@adacore.com> 5748 5749 * gcc-interface/utils.c (create_var_decl): Set again DECL_COMMON and 5750 DECL_IGNORED_P last. 5751 57522016-01-28 Eric Botcazou <ebotcazou@adacore.com> 5753 5754 * gcc-interface/gigi.h (enum attr_type): Rename into... 5755 (enum attrib_type): ...this. 5756 (struct attrib): Adjust. 5757 * gcc-interface/decl.c (prepend_one_attribute): Likewise. 5758 57592016-01-20 Eric Botcazou <ebotcazou@adacore.com> 5760 5761 * exp_ch2.adb (Expand_Current_Value): Make an appropriate character 5762 literal if the entity is of a character type. 5763 * gcc-interface/lang.opt (fsigned-char): New option. 5764 * gcc-interface/misc.c (gnat_handle_option): Accept it. 5765 (gnat_init): Adjust comment. 5766 * gcc-interface/gigi.h (finish_character_type): New prototype. 5767 (maybe_character_type): New inline function. 5768 (maybe_character_value): Likewise. 5769 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Type>: For 5770 a character of CHAR_TYPE_SIZE, make a signed type if flag_signed_char. 5771 Set TYPE_ARTIFICIAL early and call finish_character_type on the type. 5772 <E_Enumeration_Subtype>: For a subtype of character with RM_Size and 5773 Esize equal to CHAR_TYPE_SIZE, make a signed type if flag_signed_char. 5774 Copy TYPE_STRING_FLAG from type to subtype. 5775 <E_Array_Type>: Deal with character index types. 5776 <E_Array_Subtype>: Likewise. 5777 * gcc-interface/trans.c (gigi): Replace unsigned_char_type_node with 5778 char_type_node throughout. 5779 (build_raise_check): Likewise. 5780 (get_type_length): Deal with character types. 5781 (Attribute_to_gnu) <Attr_Pos>: Likewise. Remove obsolete range check 5782 code. Minor tweak. 5783 <Attr_Pred>: Likewise. 5784 (Loop_Statement_to_gnu): Likewise. 5785 (Raise_Error_to_gnu): Likewise. 5786 <N_Indexed_Component>: Deal with character index types. Remove 5787 obsolete code. 5788 <N_Slice>: Likewise. 5789 <N_Type_Conversion>: Deal with character types. Minor tweak. 5790 <N_Unchecked_Type_Conversion>: Likewise. 5791 <N_In>: Likewise. 5792 <N_Op_Eq>: Likewise. 5793 (emit_index_check): Delete. 5794 * gcc-interface/utils.c (finish_character_type): New function. 5795 (gnat_signed_or_unsigned_type_for): Deal with built-in character types. 5796 * gcc-interface/utils2.c (expand_sloc): Replace unsigned_char_type_node 5797 with char_type_node. 5798 (build_call_raise): Likewise. 5799 (build_call_raise_column): Likewise. 5800 (build_call_raise_range): Likewise. 5801 58022016-01-18 Eric Botcazou <ebotcazou@adacore.com> 5803 5804 * gcc-interface/gigi.h (build_call_raise_column): Adjust prototype. 5805 (build_call_raise_range): Likewise. 5806 (gnat_unsigned_type): Delete. 5807 (gnat_signed_type): Likewise. 5808 (gnat_signed_or_unsigned_type_for): New prototype. 5809 (gnat_unsigned_type_for): New inline function. 5810 (gnat_signed_type_for): Likewise. 5811 * gcc-interface/cuintp.c (build_cst_from_int): Call build_int_cst. 5812 * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise. 5813 (gnat_to_gnu_entity) <E_Array_Type>: Always translate the index types 5814 and compute their base type from that. 5815 <E_Array_Subtype>: Remove duplicate declaration. 5816 * gcc-interface/misc.c (get_array_bit_stride): Call build_int_cst. 5817 * gcc-interface/trans.c (get_type_length): Likewise. 5818 (Attribute_to_gnu): Likewise. 5819 (Loop_Statement_to_gnu): Likewise. 5820 (Call_to_gnu): Likewise. 5821 (gnat_to_gnu): Call build_real, build_int_cst, gnat_unsigned_type_for 5822 and gnat_signed_type_for. Minor tweaks. 5823 (build_binary_op_trapv): Likewise. 5824 (emit_check): Likewise. 5825 (convert_with_check): Likewise. 5826 (Raise_Error_to_gnu): Adjust calls to the build_call_raise family of 5827 functions. Minor tweaks. 5828 (Case_Statement_to_gnu): Remove dead code. 5829 (gnat_to_gnu): Call gnat_unsigned_type_for and gnat_signed_type_for. 5830 (init_code_table): Minor reordering. 5831 * gcc-interface/utils.c (gnat_unsigned_type): Delete. 5832 (gnat_signed_type): Likewise. 5833 (gnat_signed_or_unsigned_type_for): New function. 5834 (unchecked_convert): Use directly the size in the test for precision 5835 vs size adjustments. 5836 (install_builtin_elementary_types): Call gnat_signed_type_for. 5837 * gcc-interface/utils2.c (nonbinary_modular_operation): Call 5838 build_int_cst. 5839 (build_goto_raise): New function taken from... 5840 (build_call_raise): ...here. Call it. 5841 (build_call_raise_column): Add KIND parameter and call it. 5842 (build_call_raise_range): Likewise. 5843 58442016-01-18 Eric Botcazou <ebotcazou@adacore.com> 5845 5846 * gcc-interface/ada-tree.h (TYPE_IMPLEMENTS_PACKED_ARRAY_P): Rename to 5847 (TYPE_IMPL_PACKED_ARRAY_P): ...this. 5848 (TYPE_CAN_HAVE_DEBUG_TYPE_P): Do not test TYPE_DEBUG_TYPE. 5849 * gcc-interface/decl.c (gnat_to_gnu_entity): Simplify NULL_TREE tests 5850 and tweak gnat_encodings tests throughout. 5851 (initial_value_needs_conversion): Likewise. 5852 (intrin_arglists_compatible_p): Likewise. 5853 * gcc-interface/misc.c (gnat_print_type): Likewise. 5854 (gnat_get_debug_type): Likewise. 5855 (gnat_get_fixed_point_type_info): Likewise. 5856 (gnat_get_array_descr_info): Likewise. 5857 (get_array_bit_stride): Likewise. 5858 (gnat_get_type_bias): Fix formatting. 5859 (enumerate_modes): Likewise. 5860 * gcc-interface/trans.c (gnat_to_gnu): Likewise. 5861 (add_decl_expr): Simplify NULL_TREE test. 5862 (end_stmt_group): Likewise. 5863 (build_binary_op_trapv): Fix formatting. 5864 (get_exception_label): Use switch statement. 5865 (init_code_table): Move around. 5866 * gcc-interface/utils.c (global_bindings_p): Simplify NULL_TREE test. 5867 (gnat_poplevel): Likewise. 5868 (gnat_set_type_context): Likewise. 5869 (defer_or_set_type_context): Fix formatting. 5870 (gnat_pushdecl): Simplify NULL_TREE test. 5871 (maybe_pad_type): Likewise. 5872 (add_parallel_type): Likewise. 5873 (create_range_type): Likewise. 5874 (process_deferred_decl_context): Likewise. 5875 (convert): Likewise. 5876 (def_builtin_1): Likewise. 5877 * gcc-interface/utils2.c (find_common_type): Likewise. 5878 (build_binary_op): Likewise. 5879 (gnat_rewrite_reference): Likewise. 5880 (get_inner_constant_reference): Likewise. 5881 58822016-01-18 Eric Botcazou <ebotcazou@adacore.com> 5883 5884 PR ada/69219 5885 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Consider 5886 the parent function instead of the current function in order to issue 5887 the warning or the error. Add guard for ignored functions. 5888 58892016-01-17 Jakub Jelinek <jakub@redhat.com> 5890 5891 * adaint.c (__gnat_killprocesstree): Avoid -Wparentheses warning. 5892 58932016-01-15 Jakub Jelinek <jakub@redhat.com> 5894 5895 * adaint.c (__gnat_locate_exec_on_path): Use const char * instead 5896 of char * for path_val to avoid warnings. 5897 58982016-01-06 Pierre-Marie de Rodat <derodat@adacore.com> 5899 5900 * gcc-interface/utils.c: Bump copyright year. 5901 (rest_of_record_type_compilation): Add XVE/XVU parallel types to 5902 the current lexical scope. 5903 59042016-01-04 Jakub Jelinek <jakub@redhat.com> 5905 5906 * gnat_ugn.texi: Bump @copying's copyright year. 5907 * gnat_rm.texi: Likewise. 5908 59092016-01-02 Eric Botcazou <ebotcazou@adacore.com> 5910 5911 * gnatvsn.ads: Bump copyright year. 5912 5913 5914Copyright (C) 2016 Free Software Foundation, Inc. 5915 5916Copying and distribution of this file, with or without modification, 5917are permitted in any medium without royalty provided the copyright 5918notice and this notice are preserved. 5919