]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[Ada] Clean up support for validity checks in the compiler
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
e0ff1639 12019-07-04 Eric Botcazou <ebotcazou@adacore.com>
2
3 * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
4 set the validity settings in CodePeer mode.
5 * par-load.adb (Load): Remove all code dealing with validity
6 settings.
7 * validsw.ads (Validity_Check_Copies): Alphabetize.
8 * validsw.adb (Reset_Validity_Check_Options): Set all options to
9 off.
10 (Save_Validity_Check_Options): Save all options.
11
40bff3a0 122019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
13
14 * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
15 exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb,
16 rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
17 sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor
18 reformatting.
19
0ebaade4 202019-07-04 Joffrey Huguet <huguet@adacore.com>
21
22 * libgnarl/a-taside.ads: Add assertion policy to ignore
23 preconditions.
24 (Abort_Task, Is_Terminated, Is_Callable): Add preconditions.
25
f14a590b 262019-07-04 Eric Botcazou <ebotcazou@adacore.com>
27
28 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix
29 capitalization and parenthesis glitches.
30 * gnat_rm.texi: Regenerate.
31
f5388f99 322019-07-04 Ed Schonberg <schonberg@adacore.com>
33
34 * sem_ch10.adb (Remove_Context_Clauses): Handle properly the
35 removal of a limited_with_clause which appears in the library
36 unit oF the main unit, when some other unit in the context has a
37 regular with_clause on the same unit, to prevent spurious
38 visibility errors in the subsequent analysis of pending instance
39 bodies.
40
c930bc82 412019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
42
43 * sem_elab.adb: Add new type Elaboration_Phase_Status along with
44 a global to keep track of the elaboration phase status.
45 Initialize all internal data structures to Nil for services
46 Elaborated_Units, Internal_Representation, and Scenario_Storage.
47 (Build_Call_Marker): Do not create a call marker when the
48 elaboration phase is not active.
49 (Build_Variable_Reference_Marker): Do not create a call marker
50 when the elaboration phase is not active.
51 (Check_Elaboration_Scenarios): Destroy all internal structures
52 when the elaboration phase does not have to run. Do not execute
53 when the elaboration phase is not active.
54 (Elaboration_Phase_Active): New routine.
55 (Finalize_All_Data_Structures): New routine.
56 (Initialize): Initialize all internal data structures and signal
57 that the elaboration phase has started.
58 (Initialize_All_Data_Structures): New routine.
59 (Initialize_Elaborated_Units): Initialize all internal data
60 structures.
61 (Initialize_Internal_Representation): Initialize all internal
62 data structures.
63 (Initialize_Scenario_Storage): Initialize all internal data
64 structures.
65 (Kill_Elaboration_Scenario): Do not execute when the elaboration
66 phase is not active.
67 (Set_Elaboration_Phase): New routine.
68 (Update_Elaboration_Scenario): Do not execute when the
69 elaboration phase is not active.
70
39dec7f4 712019-07-04 Gary Dismukes <dismukes@adacore.com>
72
73 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special
74 treatment of calling Mask_Unfrozen_Types must also be done in
75 the case of an Ignored_Ghost_Entity, because Expander_Active is
76 False in that case.
77
92b004be 782019-07-04 Yannick Moy <moy@adacore.com>
79
80 * sem_prag.adb (Check_Library_Level_Entity): Update for new rule
81 on SPARK_Mode.
82
12795e1c 832019-07-04 Justin Squirek <squirek@adacore.com>
84
85 * sem_disp.adb (Check_Controlling_Formals): Obtain the full view
86 before type comparison.
87
63fe3141 882019-07-04 Ed Schonberg <schonberg@adacore.com>
89
90 * exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible
91 subprogram, extracted from Expand_Composite_Equality, to handle
92 properly the composition of equality for variant record types.
93 * exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each
94 component, to handle properly the case of a component with a
95 user-defined equality. Revert to predefined equality if the
96 user-defined operation is abstract, to maintain compatibility
97 with older versions,
98
17fa952a 992019-07-04 Justin Squirek <squirek@adacore.com>
100
101 * exp_ch3.adb (Build_Initialization_Call): Fixup
102 *_skip_null_excluding_check argument to handle new default.
103 (Init_Formals): Make *_skip_null_excluding_check formal default
104 to False
105 * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
106 code duplication
107
cf32543d 1082019-07-04 Bob Duff <duff@adacore.com>
109
110 * sem_ch3.adb (Access_Definition): Do not create a master unless
111 Tasking_Allowed. Otherwise, this fails on restricted runtimes.
112
eb4dbf20 1132019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
114
115 * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
116 Default_Initial_Condition attributes to an incomplete type.
117
25ddc6ba 1182019-07-04 Ed Schonberg <schonberg@adacore.com>
119
120 * sem_attr.adb (Check_Array_Type): An array type attribute such
121 as 'First can be applied to an unconstrained array tyope when
122 the attribute reference appears within an aspect specification
123 and the prefix is a current instance, given that the prefix of
124 the attribute will become a formal of the subprogram that
125 implements the aspect (typically a predicate check).
126
74a5962a 1272019-07-04 Piotr Trojanek <trojanek@adacore.com>
128
129 * sem_util.adb (Yields_Synchronized_Object): Fix typos in
130 comments.
131
c65d33a8 1322019-07-04 Yannick Moy <moy@adacore.com>
133
134 * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
135 rule.
136
afd77d39 1372019-07-04 Yannick Moy <moy@adacore.com>
138
139 * sem_spark.adb (Check_Statement): Only check permission of
140 object in extended return when it is of a deep type.
141
2281b807 1422019-07-04 Justin Squirek <squirek@adacore.com>
143
144 * sem_ch12.adb (Perform_Appropriate_Analysis): Added for
145 selecting which type of analysis based on wheither the
146 instantiation is a generic at the library-level. In which case
147 expansion during analysis.
148 (Preanalyze_Actuals): Modify calls to Analyze to use the new
149 routine.
150
542b3e26 1512019-07-04 Ed Schonberg <schonberg@adacore.com>
152
153 * exp_unst.adb: Handle conditional expressions.
154
7754aad4 1552019-07-04 Yannick Moy <moy@adacore.com>
156
157 * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
158 analyze parts of the code marked in SPARK.
159
3843c1bd 1602019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
161
162 * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
163 Minor reformatting.
164
5bc0f990 1652019-07-04 Yannick Moy <moy@adacore.com>
166
167 * sem_spark.adb (Explanation, Get_Expl): New functions to get
168 the explanation for a permission mismatch.
169 (Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take
170 explanation into account for issuing a more precise error
171 message.
172 (Set_Perm_Prefixes, Set_Perm_Extensions,
173 Set_Perm_Extensions_Move): Pass suitable argument for the
174 explanation node.
175
11903e68 1762019-07-04 Arnaud Charlet <charlet@adacore.com>
177
178 * exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add
179 support for record aggregates.
180 (Component_Check): Use Is_CCG_Supported_Aggregate instead of a
181 similar local predicate.
182 (Convert_To_Assignments): Take advantage of In_Place_Assign_OK
183 predicate when possible.
184 (Is_CCG_Supported_Aggregate): Return False for records with
185 representation clauses and fix the logic for dealing with nested
186 aggregates.
187
b0c19ea3 1882019-07-04 Piotr Trojanek <trojanek@adacore.com>
189
190 * opt.adb (Set_Config_Switches): Keep assertions policy as
191 enabled when analysing internal units in GNATprove mode.
192
90f2b146 1932019-07-04 Arnaud Charlet <charlet@adacore.com>
194
195 * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
196 N_Variable_Reference_Marker when checking for the presence of
197 actions.
198
39ecad34 1992019-07-04 Arnaud Charlet <charlet@adacore.com>
200
201 * exp_aggr.adb (Check_Component): Take into account type
202 conversions.
203
c0e899f1 2042019-07-04 Dmitriy Anisimkov <anisimko@adacore.com>
205
206 * doc/gnat_ugn/platform_specific_information.rst: Document
207 Windows socket timeout particularity.
208 * gnat_ugn.texi: Regenerate.
209 * gsocket.h: Include versionhelpers.h.
210 * socket.c (__gnat_minus_500ms): New function.
211 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New
212 imported function.
213 * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
214 500ms from the requested timeout only on old Windows version.
215
363b1a8e 2162019-07-04 Thomas Quinot <quinot@adacore.com>
217
218 * get_scos.adb: Remove bogus, dead code.
219
4ae0a9ce 2202019-07-04 Ed Schonberg <schonberg@adacore.com>
221
222 * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
223 component is an entity name, its dimensions are those of its
224 type.
225
d60fa3c9 2262019-07-03 Bob Duff <duff@adacore.com>
227
228 * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
229 GNATpp.
230
877ad320 2312019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
232
233 * binde.adb: Remove with clause for System.OS_Lib.
234 (Force_Elab_Order): Refactor the majority of the code in Butil.
235 Use the new forced units iterator to obtain unit names.
236 * bindo-builders.adb: Add with and use clauses for Binderr,
237 Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add
238 a hash table which maps units to line number in the forced
239 elaboration order file.
240 (Add_Unit): New routine.
241 (Build_Library_Graph): Create forced edges between pairs of
242 units listed in the forced elaboration order file.
243 (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number,
244 Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info,
245 Is_Duplicate_Unit, Missing_Unit_Info): New routines.
246 * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit):
247 Refactor some of the behavior to Bindo-Units.
248 * bindo-graphs.ads: Enable the enumeration literal for forced
249 edges.
250 * bindo-units.adb, bindo-units.ads (Is_Internal_Unit,
251 Is_Predefined_Unit): New routines.
252 * butil.adb: Add with and use clauses for Opt, GNAT, and
253 System.OS_Lib. Add with clause for Unchecked_Deallocation.
254 (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name,
255 Read_Forced_Elab_Order_File): New routines.
256 * butil.ads: Add with and use clauses for Types. Add new
257 iterator over the units listed in the forced elaboration order
258 file.
259 (Has_Next, Iterate_Forced_Units, Next): New routine.
260 * namet.adb, namet.ads (Present): New routine.
261
01e6eb2f 2622019-07-03 Bob Duff <duff@adacore.com>
263
264 * sem_ch3.adb (Access_Definition): The code was creating a
265 master in the case where the designated type is a class-wide
266 interface type. Create a master in the noninterface case as
267 well. That is, create a master for all limited class-wide types.
268
9ad42832 2692019-07-03 Yannick Moy <moy@adacore.com>
270
271 * erroutc.adb (Sloc_In_Range): New function to determine whether
272 the range of a pragma Warnings covers a location, taking
273 instantiations into account.
274
f2a8d64e 2752019-07-03 Johannes Kanig <kanig@adacore.com>
276
277 * osint.ads, osint.adb (Get_First_Main_File_Name): New routine
278 to access the first file provided on the command line.
279
d4f28933 2802019-07-03 Ed Schonberg <schonberg@adacore.com>
281
282 * inline.adb (Process_Formals_In_Aspects): New procedure within
283 Expand_Inlined_Call, to perform a replacement of references to
284 formals that appear in aspect specifications within the body
285 being inlined.
286
23e7fc9b 2872019-07-03 Justin Squirek <squirek@adacore.com>
288
289 * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
290 the appropriate actual subtype of the object renaming being
291 analyzed.
292 (Check_Constrained_Object): Minor cleanup.
293
f8e6d133 2942019-07-03 Yannick Moy <moy@adacore.com>
295
296 * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to
297 return go through traversal function call.
298 (Check_Type): Consistently use underlying type.
299 (Get_Perm): Adapt for case of elaboration code where variables
300 are not declared in the environment. Remove incorrect handling
301 of borrow and observe.
302
d044ba5c 3032019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
304
305 * inline.adb (Build_Return_Object_Formal): New routine.
306 (Can_Split_Unconstrained_Function): Code clean up.
307 (Copy_Formals,Copy_Return_Object): New routines.
308 (Split_Unconstrained_Function): Code clean up and refactoring.
309
8699de72 3102019-07-03 Gary Dismukes <dismukes@adacore.com>
311
312 * bindo-augmentors.adb, bindo-augmentors.ads,
313 bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb,
314 sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial
315 corrections and reformatting.
316
2ccf6539 3172019-07-03 Bob Duff <duff@adacore.com>
318
319 * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
320 if an Iterator_Specification is present.
321
17b5260d 3222019-07-03 Bob Duff <duff@adacore.com>
323
324 * doc/gnat_ugn/gnat_utility_programs.rst: Document default
325 new-line behavior.
326
5f71d12c 3272019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
328
329 * ali.adb: Add with and use clauses for GNAT,
330 GNAT.Dynamic_HTables, and Snames. Add a map from invocation
331 signature records to invocation signature ids. Add various
332 encodings of invocation-related attributes. Sort and update
333 table Known_ALI_Lines.
334 (Add_Invocation_Construct, Add_Invocation_Relation,
335 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
336 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
337 Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New
338 routines.
339 (Initialize_ALI): Sort the initialization sequence. Add
340 initialization for all invocation-related tables.
341 (Invocation_Construct_Kind_To_Code,
342 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
343 Invocation_Signature_Of, Present): New routines.
344 (Scan_ALI): Add the default values for invocation-related ids.
345 Scan invocation graph lines.
346 (Scan_Invocation_Graph_Line): New routine.
347 * ali.ads: Add with clause for GNAT.Dynamic_Tables. Add types
348 for invocation constructs, relations, and signatures. Add
349 tables for invocation constructs, relations, and signatures.
350 Update Unit_Record to capture invocation-related ids. Relocate
351 table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array
352 from Binde.
353 (Add_Invocation_Construct, Add_Invocation_Relation,
354 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
355 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
356 Code_To_Invocation_Graph_Line_Kind,
357 Invocation_Construct_Kind_To_Code,
358 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
359 Invocation_Signature_Of, Present): New routines.
360 * binde.adb: Add with and use clause for Types. Add use clause
361 for ALI.Unit_Id_Tables;
362 * binde.ads: Relocate table Unit_Id_Tables and subtypes
363 Unit_Id_Table, Unit_Id_Array to ALI.
364 * bindgen.adb: Remove with and use clause for ALI.
365 * bindgen.ads: Remove with and use clause for Binde. Add with
366 and use clause for ALI.
367 * bindo.adb, bindo.ads, bindo-augmentors.adb,
368 bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads,
369 bindo-diagnostics.adb, bindo-diagnostics.ads,
370 bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb,
371 bindo-graphs.ads, bindo-units.adb, bindo-units.ads,
372 bindo-validators.adb, bindo-validators.ads, bindo-writers.adb,
373 bindo-writers.ads: New units.
374 * debug.adb: Use and describe GNAT debug switches -gnatd_F and
375 -gnatd_G. Add GNATbind debug switches in the ranges dA .. dZ,
376 d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and
377 d_1 .. d_9. Use and describe GNATbind debug switches -d_A,
378 -d_I, -d_L, -d_N, -d_O, -d_T, and -d_V.
379 * exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to
380 Sem_Util.
381 * gnatbind.adb: Add with and use clause for Bindo. Use the new
382 Bindo elaboration order only when -d_N is in effect.
383 * lib-writ.adb
384 (Column, Extra, Invoker, Kind, Line, Locations, Name, Placement,
385 Scope, Signature, Target): New routines.
386 (Write_ALI): Output all invocation-related data.
387 (Write_Invocation_Graph): New routine.
388 * lib-writ.ads: Document the invocation graph ALI line.
389 * namet.adb, namet.ads (Present): New routines.
390 * sem_ch8.adb (Find_Direct_Name): Capture the status of
391 elaboration checks and warnings of an identifier.
392 (Find_Expanded_Name): Capture the status of elaboration checks
393 and warnings of an expanded name.
394 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure
395 that invocation graph-related data within the body of the main
396 unit is encoded in the ALI file.
397 (Analyze_Generic_Subprogram_Declaration): Ensure that invocation
398 graph-related data within the body of the main unit is encoded
399 in the ALI file.
400 (Analyze_Package_Instantiation): Perform minimal decoration of
401 the instance entity.
402 (Analyze_Subprogram_Instantiation): Perform minimal decoration
403 of the instance entity.
404 * sem_elab.adb: Perform heavy refactoring of all code. The unit
405 is now split into "services" which specialize in one area of ABE
406 checks. Add processing in order to capture invocation-graph
407 related attributes of the main unit, and encode them in the ALI
408 file. The Processing phase can now operate in multiple modes,
409 all described by type Processing_Kind. Scenarios and targets
410 are now distinct at the higher level, and carry their own
411 representations. This eliminates the need to constantly
412 recompute their attributes, and offers the various processors a
413 uniform interface. The various initial states of the Processing
414 phase are now encoded using type Processing_In_State, and
415 xxx_State constants.
416 * sem_elab.ads: Update the literals of type
417 Enclosing_Level_Kind. Add Inline pragmas on several routines.
418 * sem_prag.adb (Process_Inline): Ensure that invocation
419 graph-related data within the body of the main unit is encoded
420 in the ALI file.
421 * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
422 Code clean up.
423 (Exceptions_OK): Relocated from Sem_Util.
424 (Mark_Save_Invocation_Graph_Of_Body): New routine.
425 * sem_util.ads (Exceptions_OK): Relocated from Sem_Util.
426 (Mark_Save_Invocation_Graph_Of_Body): New routine.
427 * sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to
428 N_Variable_Reference_Marker.
429 (Is_Elaboration_Warnings_OK_Node): Now applicable to
430 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
431 (Is_Read): Use Flag4.
432 (Is_SPARK_Mode_On_Node): New applicable to
433 N_Variable_Reference_Marker.
434 (Is_Write): Use Flag5.
435 (Save_Invocation_Graph_Of_Body): New routine.
436 (Set_Is_Elaboration_Checks_OK_Node): Now applicable to
437 N_Variable_Reference_Marker.
438 (Set_Is_Elaboration_Warnings_OK_Node): Now applicable to
439 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
440 (Set_Is_SPARK_Mode_On_Node): New applicable to
441 N_Variable_Reference_Marker.
442 (Set_Save_Invocation_Graph_Of_Body): New routine.
443 * sinfo.ads: Update the documentation of attributes
444 Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node,
445 Is_SPARK_Mode_On_Node. Update the flag usage of attributes
446 Is_Read, Is_Write. Add attribute Save_Invocation_Graph_Of_Body
447 and update its occurrence in nodes.
448 (Save_Invocation_Graph_Of_Body): New routine along with pragma
449 Inline.
450 (Set_Save_Invocation_Graph_Of_Body): New routine along with
451 pragma Inline.
452 * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
453 debug switches.
454 (Scan_Debug_Switches): New routine.
455 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine.
456 * libgnat/g-graphs.adb (Associate_Vertices): Update the use of
457 Component_Vertex_Iterator.
458 (Contains_Component, Contains_Edge, Contains_Vertex, Has_Next):
459 Reimplemented.
460 (Iterate_Component_Vertices): New routine.
461 (Iterate_Vertices): Removed.
462 (Next): Update the parameter profile.
463 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
464 routines.
465 * libgnat/g-graphs.ads: Update the initialization of
466 No_Component. Add type Component_Vertex_Iterator. Remove type
467 Vertex_Iterator.
468 (Has_Next): Add new versions and remove old ones.
469 (Iterate_Component_Vertices): New routine.
470 (Iterate_Vertices): Removed.
471 (Next): Add new versions and remove old ones.
472 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
473 routines.
474 * libgnat/g-sets.adb (Contains): Reimplemented.
475 * gcc-interface/Make-lang.in (GNATBIND_OBJS): Add
476 GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units.
477 * rtsfind.ads: Remove extra space.
478
df177848 4792019-07-03 Yannick Moy <moy@adacore.com>
480
481 * sem_spark.adb: Add support for locally borrowing and observing
482 a path.
483 (Get_Root_Object): Add parameter Through_Traversal to denote
484 when we are interesting in getting to the traversed parameter.
485 (Is_Prefix_Or_Almost): New function to support detection of
486 illegal access to borrowed or observed paths.
487 (Check_Pragma): Add analysis of assertion pragmas.
488
f3f142ac 4892019-07-03 Ed Schonberg <schonberg@adacore.com>
490
491 * sem_ch13.adb (Build_Predicate_Functions): In a generic context
492 we do not build the bodies of predicate fuctions, but the
493 expression in a static predicate must be elaborated to allow
494 case coverage checking within the generic unit.
495 (Build_Discrete_Static_Predicate): In a generic context, return
496 without building function body once the
497 Static_Discrete_Predicate expression for the type has been
498 constructed.
499
99d90c85 5002019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
501
502 * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
503 sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.
504
800597f6 5052019-07-03 Bob Duff <duff@adacore.com>
506
507 * par-ch3.adb (P_Defining_Identifier): Call
508 Check_Defining_Identifier_Casing.
509 * style.ads, styleg.ads, styleg.adb
510 (Check_Defining_Identifier_Casing): New procedure to check for
511 mixed-case defining identifiers.
512 * stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New
513 flag for checking for mixed-case defining identifiers.
514 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
515 Document new feature.
516 * gnat_ugn.texi: Regenerate.
517
2c75027a 5182019-07-03 Eric Botcazou <ebotcazou@adacore.com>
519
520 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
521 (Warning message control): Document that -gnatw.z/Z apply to
522 array types.
523 * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
524 types as well, but not if the specified alignment is the minimum
525 one.
526 * gnat_ugn.texi: Regenerate.
527
08237d0d 5282019-07-03 Bob Duff <duff@adacore.com>
529
530 * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
531 correctly.
532
0396441f 5332019-07-03 Ed Schonberg <schonberg@adacore.com>
534
535 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
536 message on attribute applied to a renaming when the renamed
537 object is an aggregate (from code reading).
538 (Check_Aspect_At_End_Of_Declarations): In a generic context
539 where freeze nodes are not generated, the original expression
540 for an aspect may need to be analyzed to precent spurious
541 conformance errors when compared with the expression that is
542 anakyzed at the end of the current declarative list.
543
c8406f30 5442019-07-03 Eric Botcazou <ebotcazou@adacore.com>
545
546 * layout.adb (Layout_Type): Do not set the component size of an
547 array with a scalar component if the component type is
548 overaligned.
549
c38b32ea 5502019-07-03 Ed Schonberg <schonberg@adacore.com>
551
552 * inline.adb (Make_Loop_Labels_Unique): New procedure to modify
553 the source code of subprograms that are inlined by the
554 front-end, to prevent accidental duplication between loop labels
555 in the inlined code and the code surrounding the inlined call.
556
6d6f134e 5572019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
558
559 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
560 the section on resolving elaboration circularities to eliminate
561 certain combinations of switches which together do not produce
562 the desired effect and confuse users.
563 * gnat_ugn.texi: Regenerate.
564
f3e16ef4 5652019-07-03 Arnaud Charlet <charlet@adacore.com>
566
567 * bindgen.adb (Gen_Main): Disable generation of reference to
568 Ada_Main_Program_Name for CCG.
569 * bindusg.adb (Display): Add -G to the command-line usage for
570 gnatbind.
571 * opt.ads (Generate_C_Code): Update comment.
572 * switch-b.adb (Scan_Binder_Switches): Add handling for -G.
573
f4a31b16 5742019-07-03 Arnaud Charlet <charlet@adacore.com>
575
576 * sem_ch7.adb (Has_Referencer): Do not consider inlined
577 subprograms when generating C code, which allows us to generate
578 static inline subprograms.
579
2f65e9f7 5802019-07-03 Justin Squirek <squirek@adacore.com>
581
582 * sem_ch6.adb (Check_Conformance): Add expression checking for
583 constant modifiers in anonymous access types (in addition to
584 "non-null" types) so that they are considered "matching" for
585 subsequent conformance tests.
586
c336ed70 5872019-07-03 Arnaud Charlet <charlet@adacore.com>
588
589 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
590 Clarify wording on No_Multiple_Elaboration.
591 * gnat_rm.texi: Regenerate.
592
78611c86 5932019-07-03 Ed Schonberg <schonberg@adacore.com>
594
595 * sem_ch8.adb (Find_Selected_Component): If the prefix is the
596 current instance of a type or subtype, complete the resolution
597 of the name by finding the component of the type denoted by the
598 selector name.
599
5a87a4d9 6002019-07-03 Eric Botcazou <ebotcazou@adacore.com>
601
602 * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C):
603 Document that boolean types with convention C now map to C99 bool.
604 * gnat_rm.texi: Regenerate.
605
371c539c 6062019-07-03 Javier Miranda <miranda@adacore.com>
607
608 * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
609 removing code that it is now never executed in the CCG compiler
610 (dead code).
611
89d2d652 6122019-07-02 Iain Sandoe <iain@sandoe.co.uk>
613
614 * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
615 PPC Darwin.
616
d21e66fb 6172019-07-01 Ed Schonberg <schonberg@adacore.com>
618
619 * sem_ch12.adb (Is_Defaulted): New predicate in
620 Check_Formal_Package_Intance, to skip the conformance of checks
621 on parameters of a formal package that are defaulted,
622
7a42b778 6232019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
624
625 * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
626 sem_prag.adb, sem_spark.adb: Minor reformatting.
627
fc8ae496 6282019-07-01 Ed Schonberg <schonberg@adacore.com>
629
630 * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
631 of attribute to be an attribute reference of a discrete type.
632
9d27ea41 6332019-07-01 Eric Botcazou <ebotcazou@adacore.com>
634
635 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
636 handling of Has_Pragma_Inline_Always and deal with
637 Has_Pragma_No_Inline.
638
bcb8dcf3 6392019-07-01 Ed Schonberg <schonberg@adacore.com>
640
641 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
642 declared as a subtype of a private type with an inherited
643 discriminant constraint, its generated full base appears as a
644 record subtype, so we need to retrieve its oen base type so that
645 the inherited constraint can be applied to it.
646
d087b9ca 6472019-07-01 Yannick Moy <moy@adacore.com>
648
649 * sem_spark.adb: Completely rework the algorithm for ownership
650 checking, as the rules in SPARK RM have changed a lot.
651 * sem_spark.ads: Update comments.
652
fe48ee0a 6532019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
654
655 * gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in
656 the sockaddr_in structure to determine the existence of length field
657 before the sin_family.
658
b20f7e2c 6592019-07-01 Ed Schonberg <schonberg@adacore.com>
660
661 * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
662 applies to entities with run-time addresses, not to types.
663
374fdf94 6642019-07-01 Piotr Trojanek <trojanek@adacore.com>
665
666 * einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update
667 references to the SPARK RM after the removal of Rule 7.1.4(5).
668
bf13a79d 6692019-07-01 Piotr Trojanek <trojanek@adacore.com>
670
671 * sysdep.c: Cleanup references to LynuxWorks in docs and
672 comments.
673
866fa2d0 6742019-07-01 Ed Schonberg <schonberg@adacore.com>
675
676 * checks.adb (Insert_Valid_Check): Do not apply validity check
677 to variable declared within a protected object that uses the
678 Lock_Free implementation, to prevent unwarranted constant
679 folding, because entities within such an object msut be treated
680 as volatile.
681
bcb5ab83 6822019-07-01 Eric Botcazou <ebotcazou@adacore.com>
683
684 * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.
685
2db33bd6 6862019-07-01 Ed Schonberg <schonberg@adacore.com>
687
688 * exp_unst.adb (Visit_Node, Check_Static_Type): Improve the
689 handling of private and incomplete types whose full view is an
690 access type, to detect additional uplevel references in dynamic
691 bounds. This is relevant to N_Free_Statement among others that
692 manipulate types whose full viww may be an access type.
693
6b4f0b7d 6942019-07-01 Pat Rogers <rogers@adacore.com>
695
696 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct
697 size indicated for R as a component of an array.
698 * gnat_rm.texi: Regenerate.
699
cdee70d7 7002019-07-01 Justin Squirek <squirek@adacore.com>
701
702 * libgnat/s-win32.ads: Add definition for ULONG, modify
703 OVERLAPPED type, and add appropriate pragmas.
704
2cf822b7 7052019-07-01 Bob Duff <duff@adacore.com>
706
707 * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
708 ignored-ghost.
709
0a1ece97 7102019-07-01 Yannick Moy <moy@adacore.com>
711
712 * sem_ch4.adb (Operator_Check): Refine error message.
713
ee4279ef 7142019-07-01 Piotr Trojanek <trojanek@adacore.com>
715
716 * libgnat/a-calend.ads: Revert "Global => null" contracts on
717 non-pure routines.
718
2c6b4ada 7192019-07-01 Piotr Trojanek <trojanek@adacore.com>
720
721 * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
722 componant -> component.
723
175c4526 7242019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
725
726 * libgnat/g-graphs.adb: Use type Directed_Graph rather than
727 Instance in various routines.
728 * libgnat/g-graphs.ads: Change type Instance to Directed_Graph.
729 Update various routines that mention the type.
730
a0d15509 7312019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
732
733 * libgnat/g-sets.adb: Use type Membership_Set rathern than
734 Instance in various routines.
735 * libgnat/g-sets.ads: Change type Instance to Membership_Set.
736 Update various routines that mention the type.
737
205a23a3 7382019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
739
740 * libgnat/g-lists.adb: Use type Doubly_Linked_List rather than
741 Instance in various routines.
742 * libgnat/g-lists.ads: Change type Instance to
743 Doubly_Linked_List. Update various routines that mention the
744 type.
745
17fdf8c2 7462019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
747
748 * libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than
749 Instance in various routines.
750 * libgnat/g-dynhta.ads: Change type Instance to
751 Dynamic_Hash_Table. Update various routines that mention the
752 type.
753
216ffc64 7542019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
755
756 * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
757 sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.
758
5051fe35 7592019-07-01 Javier Miranda <miranda@adacore.com>
760
761 * exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of
762 'Min/'Max on integer, enumeration, fixed point and floating
763 point types since the CCG backend now provides in file
764 standard.h routines to support it.
765
830a2a71 7662019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
767
768 * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
769 * Makefile.rtl, gcc-interface/Make-lang.in: Register unit
770 GNAT.Graphs.
771 * libgnat/g-dynhta.adb: Various minor cleanups (use Present
772 rather than direct comparisons).
773 (Delete): Reimplement to use Delete_Node.
774 (Delete_Node): New routine.
775 (Destroy_Bucket): Invoke the provided destructor.
776 (Present): New routines.
777 * libgnat/g-dynhta.ads: Add new generic formal Destroy_Value.
778 Use better names for the components of iterators.
779 * libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit.
780 * libgnat/g-lists.adb: Various minor cleanups (use Present
781 rather than direct comparisons).
782 (Delete_Node): Invoke the provided destructor.
783 (Present): New routine.
784 * libgnat/g-lists.ads: Add new generic formal Destroy_Element.
785 Use better names for the components of iterators.
786 (Present): New routine.
787 * libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset,
788 Reset): New routines.
789
b0111d94 7902019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
791
792 * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
793 is not defined.
794
7362896b 7952019-07-01 Ed Schonberg <schonberg@adacore.com>
796
797 * exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value):
798 Resolve result of call to Get_Simple_Init_Val, which may be a
799 conversion of a literal.
800
0dae8dc2 8012019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
802
803 * freeze.adb (Freeze_Expression): Remove the horrible useless
804 name hiding of N. Insert the freeze nodes generated by the
805 expression prior to the expression when the nearest enclosing
806 scope is transient.
807
487da8ff 8082019-07-01 Pierre-Marie de Rodat <derodat@adacore.com>
809
810 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
811 formatting issues in the -gnatR section.
812 * gnat_ugn.texi: Regenerate.
813
1d79fa18 8142019-06-30 Iain Sandoe <iain@sandoe.co.uk>
815
816 * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
817 Push -shared-libgcc explicitly, when it is the target default (unless
818 overidden by the static flag).
819 When the user has put an instance of shared/static-libgcc do not push
820 a duplicate of this.
821
a850edcd 8222019-06-29 Eric Botcazou <ebotcazou@adacore.com>
823
824 * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
825 and tweak comment on the assertion about the scopes of Itypes. Do not
826 skip the regular processing for Itypes that are E_Record_Subtype with
827 a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype
828 if the type is dummy and hasn't got its own freeze node.
829 <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
830 <E_Access_Subtype>: Save again the DECL of the equivalent type.
831 (Gigi_Equivalent_Type) <E_Access_Subtype>: New case.
832
b1e46fb1 8332019-06-29 Eric Botcazou <ebotcazou@adacore.com>
834
835 * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip
836 dereferences when padding to have the same size on both sides. Do it
837 for destination types with self-referential size too.
838
07e38949 8392019-06-29 Eric Botcazou <ebotcazou@adacore.com>
840
841 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
842 type requires strict alignment, then set the RM size to the type size.
843 Rework handling of alignment and sizes of tagged types in ASIS mode.
844 (validate_size): Rename local variable and remove special handling for
845 strict-alignment types.
846 * gcc-interface/utils.c (finish_record_type): Constify local variables
847 and use properly typed constants.
848
f4409741 8492019-06-29 Eric Botcazou <ebotcazou@adacore.com>
850
851 * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
852 fields requiring strict alignment, add explicit test on Storage_Unit
853 for position and size, and mention type alignment for position.
854
5882c515 8552019-06-29 Eric Botcazou <ebotcazou@adacore.com>
856
857 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
858 the main variant of a type, if any.
859
d0de0a27 8602019-06-29 Eric Botcazou <ebotcazou@adacore.com>
861
862 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
863 missing guard for the presence of TYPE_CANONICAL.
864 (set_reverse_storage_order_on_array_type): Likewise.
865
2074c859 8662019-06-29 Eric Botcazou <ebotcazou@adacore.com>
867
868 * gcc-interface/gigi.h (make_packable_type): Remove default value.
869 (value_factor_p): Tweak prototype.
870 * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
871 (gnat_to_gnu_component_type): Likewise.
872 (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier
873 and simplify the condition under which the type is packed. Declare
874 local variable is_bitfield. Pass 1 as max_align to make_packable_type
875 if it is set to true.
876 (copy_and_substitute_in_layout): Pass 0 to make_packable_type.
877 * gcc-interface/utils.c (make_packable_array_type): New function.
878 (make_packable_type): Use it to rewrite the type of array field.
879 (maybe_pad_type): Pass align parameter to make_packable_type.
880 (create_field_decl): Minor tweaks.
881 (value_factor_p): Assert that FACTOR is a power of 2 and replace the
882 modulo computation by a masking operation.
883
83c6da22 8842019-06-25 Eric Botcazou <ebotcazou@adacore.com>
885
886 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
887 in previous change.
888 * gcc-interface/gigi.h (maybe_character_type): Fix formatting.
889 (maybe_character_value): Likewise.
890
aaabc7bc 8912019-06-24 Jan Hubicka <jh@suse.cz>
892
893 * gcc-interface/decl.c (gnat_to_gnu_entity): Check that
894 type is array or integer prior checking string flag.
83c6da22 895 * gcc-interface/gigi.h (maybe_character_type): Likewise.
896 (maybe_character_value): Likewise.
aaabc7bc 897
5fe09a56 8982019-06-24 Martin Sebor <msebor@redhat.com>
899
900 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
901 name.
902
bd9331d6 9032019-06-18 Arnaud Charlet <charlet@adacore.com>
904
83c6da22 905 PR ada/80590
bd9331d6 906 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
907 during normal processing.
908
8a5a7d1c 9092019-06-17 Arnaud Charlet <charlet@adacore.com>
910
83c6da22 911 PR ada/80590
8a5a7d1c 912 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
913 conditions to avoid a unnecessary exception propagation in the default
914 case.
915
580934f6 9162019-05-28 Eric Botcazou <ebotcazou@adacore.com>
917
918 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
919
c8956236 9202019-05-28 Eric Botcazou <ebotcazou@adacore.com>
921
922 * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
923 Document additional optional parameters.
924 * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
925 more than one optional parameter.
926 * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
927 the list of supported pragmas. Simplify the handling of parameters
928 and add support for more than one optional parameter.
929 * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
930 (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
931 used, cold, hot, target and target_clones.
932 (begin_subprog_body): Do not create the RTL for the subprogram here.
933 (handle_noicf_attribute): New static function.
934 (handle_noipa_attribute): Likewise.
935 (handle_flatten_attribute): Likewise.
936 (handle_used_attribute): Likewise.
937 (handle_cold_attribute): Likewise.
938 (handle_hot_attribute): Likewise.
939 (handle_target_attribute): Likewise.
940 (handle_target_clones_attribute): Likewise.
941
62b762c2 9422019-05-28 Eric Botcazou <ebotcazou@adacore.com>
943
944 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
945 for 'Size too.
946 (Identifier_to_gnu): Use the actual subtype for a reference to a
947 packed array in a return statement.
948 (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
949 the prefix in every case.
950
336a61a3 9512019-05-28 Eric Botcazou <ebotcazou@adacore.com>
952
953 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
954 Backend_Overflow_Checks_On_Target and rework comments.
955
983c5b5e 9562019-05-28 Eric Botcazou <ebotcazou@adacore.com>
957
958 * gcc-interface/trans.c (walk_nesting_tree): New static function.
959 (finalize_nrv): Use it to walk the entire nesting tree.
960
96b4b84e 9612019-05-28 Eric Botcazou <ebotcazou@adacore.com>
962
963 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
964 obsolete test on Is_For_Access_Subtype.
965
0b74284e 9662019-05-28 Eric Botcazou <ebotcazou@adacore.com>
967
968 * gcc-interface/decl.c (components_to_record): Set a name on the type
969 created for the REP part, if any.
970 * gcc-interface/utils.c (finish_record_type): Only take the maximum
971 when merging sizes for a variant part at offset 0.
972 (merge_sizes): Rename has_rep parameter into max.
973
689dab9d 9742019-05-28 Eric Botcazou <ebotcazou@adacore.com>
975
976 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
977 for stack_protect attribute.
978 (handle_stack_protect_attribute): New static function.
979
804f7d39 9802019-05-28 Eric Botcazou <ebotcazou@adacore.com>
981
982 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
983 false if the internal builtin uses a variable list.
984
f07f94cc 9852019-05-27 Eric Botcazou <ebotcazou@adacore.com>
986
987 * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
988 created out of addressability concerns if it's for the _Init parameter
989 of an initialization procedure.
990
abfd658b 9912019-05-27 Eric Botcazou <ebotcazou@adacore.com>
992
993 * gcc-interface/ada-builtin-types.def: New file.
994 * gcc-interface/ada-builtins.def: Likewise.
995 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
996 (BUILT_IN_UNLIKELY): Likewise.
997 * gcc-interface/trans.c (independent_iterations_p): Initialize the
998 auto-vector to 16 elements.
999 (Call_to_gnu): Remove local variable and change the vector of actual
1000 parameters to an auto-vector. Do not convert actual parameters to
1001 the argument type for front-end built-in functions. Add support for
1002 front-end built-in functions.
1003 (build_noreturn_cond): Use internal instead of built-in function.
1004 * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
1005 (install_builtin_function_types): Likewise.
1006 (install_builtin_functions): Include ada-builtins.def first.
1007
caab73a2 10082019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1009
1010 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
1011 specific case of component types preferably.
1012
f1ca2388 10132019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1014
1015 * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
1016 (gnat_to_gnu): Do not convert the result if it is a reference to an
1017 unconstrained array used as the prefix of an attribute reference that
1018 requires an lvalue.
1019
e3f3573c 10202019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1021
1022 * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
1023 (Identifier_to_gnu): Use it to assert that the type of the identifier
1024 and that of its entity are compatible for gigi. Rename a couple of
1025 local variables and separate the processing of the result type.
1026
2306cd17 10272019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1028
1029 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
1030 putting back an intermediate conversion the type of the actuals.
1031
6e4e9378 10322019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1033
1034 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
1035 count to the unsigned version of its base type before proceeding.
1036
85b9be9b 10372019-05-16 Martin Sebor <msebor@redhat.com>
1038
3d6be0d5 1039 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
1040 reserved names.
85b9be9b 1041
65d973ca 10422019-05-08 Arnaud Charlet <charlet@adacore.com>
1043
1044 * standard.ads.h: New file.
1045
ff628b99 10462019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1047
1048 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
1049 Honor DESTDIR.
1050
ebd761d4 10512019-04-29 Michael K. Darling <darlingm@gmail.com>
1052
1053 * gnatvsn.ads: Bump Library_Version to 10.
1054
5f260823 10552019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1056 Bernd Edlinger <bernd.edlinger@hotmail.de>
1057 Jakub Jelinek <jakub@redhat.com>
1058
1059 PR target/89093
1060 * raise-gcc.c (TARGET_ATTRIBUTE): Define.
1061 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
1062 TARGET_ATTRIBUTE.
1063
d7ca95c0 10642019-04-07 Eric Botcazou <ebotcazou@adacore.com>
1065
1066 * libgnat/i-cexten.ads (CFloat_128): New type.
1067
26b21081 10682019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
1069
1070 PR ada/89583
1071 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
1072 Send_Socket): Fix the computation of structure lengths passed to
1073 low level routines.
1074 (Is_IPv6_Address): Fix the number of expected colons.
1075
2f6d557f 10762019-03-11 Martin Liska <mliska@suse.cz>
1077
d325ee67 1078 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string
1079 format message and fix GNU coding style.
2f6d557f 1080
c1ad6672 10812019-02-08 Eric Botcazou <ebotcazou@adacore.com>
1082
1083 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
1084 * gcc-interface/utils.c (convert): Do not pad when doing an unchecked
1085 conversion here. Use TREE_CONSTANT throughout the function.
1086 (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
1087 destination is a more aligned array type or a larger aggregate type,
1088 but not between original and packable versions of a type.
1089
62a6ebbd 10902019-02-08 Eric Botcazou <ebotcazou@adacore.com>
1091
1092 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
1093 operand with VOID_TYPE.
1094
da383d19 10952019-02-08 Eric Botcazou <ebotcazou@adacore.com>
1096
1097 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
1098 entities of a package renaming another one.
1099
09c123a0 11002019-02-08 Eric Botcazou <ebotcazou@adacore.com>
1101
1102 * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
1103 individual flag_unswitch_loops and flag_tree_loop_vectorize switches
1104 with test on global optimize switch.
1105 (Raise_Error_to_gnu): Likewise.
1106
a9dd7273 11072019-02-07 Eric Botcazou <ebotcazou@adacore.com>
1108
1109 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
1110
4836c4f1 11112019-02-06 Arnaud Charlet <charlet@adacore.com>
1112
1113 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
1114
6b56937c 11152019-01-27 Eric Botcazou <ebotcazou@adacore.com>
1116
1117 * repinfo.adb (List_Component_Layout): Remove superfluous space for
1118 zero-sized field.
1119 * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
1120 * gcc-interface/gigi.h (create_extra_subtype): Declare.
1121 * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
1122 (update_n_elem): New function.
1123 (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
1124 instead of doing it manually.
1125 <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the
1126 index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
1127 of the array to the maximum size.
1128 <E_Array_Subtype>: Create an extra subtype using the index type of the
1129 base array type for self-referential bounds. Use update_n_elem to
1130 compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the
1131 maximum size.
1132 (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
1133 * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
1134 the base type for an extra subtype.
1135 (gnat_type_max_size): Remove obsolete code.
1136 * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
1137 (can_be_lower_p): Deal with pathological types.
1138 * gcc-interface/utils.c (create_extra_subtype): New function.
1139 (create_field_decl): Minor tweak.
1140 (max_size) <tcc_reference>: Compute a better value by using the extra
1141 subtypes on the self-referential bounds.
1142 <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types.
1143 <tcc_expression>: Likewise.
1144 * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
1145 of the arrays upfront. Swap only if the second length is not constant.
1146 Use comparisons on the original bounds consistently for the null tests.
1147 (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
1148 (build_allocator): Minor tweak.
1149
ecb2c722 11502019-01-27 Eric Botcazou <ebotcazou@adacore.com>
1151
1152 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
1153 the same value for every dimension of a multidimensional array type.
1154
10f25579 11552019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1156
1157 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
1158 iteration scheme, if present, throughout the translation.
1159
aced6683 11602019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1161
1162 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
1163 DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
1164 by a call to memset if the LHS is a DECL.
1165
18b4b30e 11662019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1167
1168 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
1169 (Loop_Statement_to_gnu): Do not set it.
1170
6dce35b7 11712019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1172
1173 * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
1174 (Acc_gnat_to_gnu): Likewise.
1175 (Acc_Data_to_gnu): Likewise.
1176 (Acc_Var_to_gnu): Likewise.
1177 (Acc_Reduc_to_gnu): Likewise.
1178 (Acc_Size_List_to_gnu): Likewise.
1179 (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
1180 <Pragma_Acc_Data>): Likewise.
1181 (find_loop_for): Remove default value for parameters.
1182 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
1183 <N_Op_Eq>): ...this.
1184
f8cd11ee 11852019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1186
1187 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
1188 the sign bit instead of on the sign of the value.
1189 <PLUS_EXPR>: Turn addition of negative constant into subtraction.
1190 <MULT_EXPR>: Add test for degenerate case.
1191 <BIT_AND_EXPR>: Simplify.
1192
9a3c51d9 11932019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
1194
1195 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
1196
07c11f2b 11972019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1198
1199 PR other/16615
07c11f2b 1200 * exp_ch11.adb: Change "can not" to "cannot".
1201 * sem_ch4.adb: Likewise.
1202
f4d3c071 12032019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1204
1205 PR other/16615
f4d3c071 1206 * exp_ch9.adb: Mechanically replace "can not" with "cannot".
1207 * libgnat/s-regpat.ads: Likewise.
1208 * par-ch4.adb: Likewise.
1209 * set_targ.adb: Likewise.
1210 * types.ads: Likewise.
1211
902071d1 12122019-01-08 Justin Squirek <squirek@adacore.com>
1213
1214 Revert:
902071d1 1215 2018-07-31 Justin Squirek <squirek@adacore.com>
1216
76fb0465 1217 * lib-writ.adb (Write_With_Lines): Modfiy the generation
1218 of dependencies within ali files so that source unit
1219 bodies are properly listed even if said bodies are
1220 missing. Perform legacy behavior in GNATprove mode.
1221 * lib-writ.ads: Modify documentation to reflect current
1222 behavior.
902071d1 1223
1224 and:
902071d1 1225 2018-09-26 Justin Squirek <squirek@adacore.com>
1226
76fb0465 1227 * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
1228 documentation and an extra conditional check for RCI
1229 units so that generated ali files will list the spec
1230 only instead of a body when a body is not found.
902071d1 1231
65a33d4a 12322019-01-04 Eric Botcazou <ebotcazou@adacore.com>
1233
1234 * gnatvsn.ads: Bump copyright year.
1235
3d8932fd 12362019-01-01 Jakub Jelinek <jakub@redhat.com>
8e8f6434 1237
fbd26352 1238 Update copyright years.
1239
277184bc 1240 * gnat_ugn.texi: Bump @copying's copyright year.
1241 * gnat_rm.texi: Likewise.
7dfbd804 1242\f
3d8932fd 1243Copyright (C) 2019 Free Software Foundation, Inc.
7dfbd804 1244
1245Copying and distribution of this file, with or without modification,
1246are permitted in any medium without royalty provided the copyright
1247notice and this notice are preserved.