]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[Ada] Minor reformatting
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
50948c8a 12019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2
3 * bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb,
4 exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb,
5 libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads,
6 sem_util.adb: Minor reformatting.
7
a9fa50ab 82019-07-05 Ed Schonberg <schonberg@adacore.com>
9
10 * sem_ch13.adb (Build_Predicate_Functions): If a subtype that
11 carries a static predicate aspect is frozen immediately after
12 its declaration, ensure that the generated function body created
13 for predicate checking is inserted after the corresponding
14 subprogram declaration, which is created at the point the
15 declaration is elaborated.
16
ee4e1dd7 172019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
18
19 * exp_ch7.adb (Cleanup_Record): Use the underlying type when
20 checking for components with tasks.
21
2028580f 222019-07-05 Arnaud Charlet <charlet@adacore.com>
23
24 * libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread.
25
ec1e481f 262019-07-05 Ed Schonberg <schonberg@adacore.com>
27
28 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit
29 range checks when the index type of the bit-packed array is an
30 enumeration type with a non-standard representation,
31
ae60396a 322019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
33
34 * sem_res.adb (Is_Control_Flow_Statement): Delay statements
35 contain an expression, which in turn may have side effects and
36 affect the infinite recursion. As a result, delay statements
37 should not be treated specially.
38
d33025f2 392019-07-05 Arnaud Charlet <charlet@adacore.com>
40
41 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads,
42 libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads,
43 libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads,
44 libgnarl/s-linux__sparc.ads: Fix typos in comments.
45
51f2c7f9 462019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
47
48 * sem_res.adb (Check_Infinite_Recursion): Reimplemented.
49 (Enclosing_Declaration_Or_Statement,
50 Invoked_With_Different_Arguments, Is_Conditional_Statement,
51 Is_Control_Flow_Statement, Is_Immediately_Within_Body,
52 Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement,
53 Preceded_By_Control_Flow_Statement,
54 Within_Conditional_Statement): New routines.
55
0e6f6ee1 562019-07-05 Javier Miranda <miranda@adacore.com>
57
58 * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an
59 accessibility check when the conversion is an access to
60 class-wide interface type and it is an actual parameter.
61 * exp_ch6.adb (Expand_Call_Helper): Add documentation on the
62 accessibility level of an anonymous allocator defining the value
63 of an access parameter.
64 * sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add
65 support for an anonymous allocator whose type is that of a
66 stand-alone object of an anonymous access to object type.
67
f28a3d6c 682019-07-05 Piotr Trojanek <trojanek@adacore.com>
69
70 * einfo.ads, sem_res.adb: Typo fixes in comments.
71
2d8a0eb3 722019-07-05 Bob Duff <duff@adacore.com>
73
74 * exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for
75 Has_Foreign_Convention to the imported case only. If a
76 build-in-place function is exported, and called from Ada code,
77 build-in-place protocols should be used.
78
6eddee84 792019-07-05 Ed Schonberg <schonberg@adacore.com>
80
81 * sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope
82 is a loop, continue climbing the scope stack to find the
83 enclosing subprogram.
84 (Gather_Components): Handle properly a choice in a record
85 aggregate that is given by a subtype with a static predicate.
86
249e38a7 872019-07-05 Javier Miranda <miranda@adacore.com>
88
89 * debug.adb (-gnatd.K): Leave available this switch.
90 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
91 Remove.
92 * scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag,
93 Contract_Only_Body_Nodes, Get_Contract_Only_Body,
94 Is_Contract_Only_Body, Set_Contract_Only_Body): Remove.
95
33ae0c9f 962019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
97
98 * libgnat/a-strunb.ads: Import documentation from the RM
99
70f9c8aa 1002019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
101
102 * libgnat/a-strfix.ads: Import documentation from the RM
103
1bc68ac2 1042019-07-05 Yannick Moy <moy@adacore.com>
105
106 * adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast
107 switches.
108
2500be2f 1092019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
110
111 * ali.adb: Relocate types Invocation_Construct_Record,
112 Invocation_Relation_Record, and Invocation_Signature_Record to
113 the body of ALI. Relocate tables Invocation_Constructs,
114 Invocation_Relations, and Invocation_Signatures to the body of
115 ALI. Remove type Body_Placement_Codes. Add new types
116 Declaration_Placement_Codes, and
117 Invocation_Graph_Encoding_Codes. Update the literals of type
118 Invocation_Graph_Line_Codes.
119 (Add_Invocation_Construct): Update the parameter profile. Add an
120 invocation construct built from all attributes provided.
121 (Add_Invocation_Relation): Update the parameter profile. Add an
122 invocation relation built from all attributes provided.
123 (Body_Placement): New routine.
124 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
125 Removed.
126 (Code_To_Declaration_Placement_Kind,
127 Code_To_Invocation_Graph_Encoding_Kind, Column,
128 Declaration_Placement_Kind_To_Code, Extra,
129 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
130 Invocation_Graph_Encoding,
131 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
132 Locations, Name): New routine.
133 (Scan_Invocation_Construct_Line): Reimplement the scanning
134 mechanism.
135 (Scan_Invocation_Graph_Attributes_Line): New routine.
136 (Scan_Invocation_Graph_Line): Use a case statement to dispatch.
137 (Scan_Invocation_Relation_Line): Reimplement the scanning
138 mechanism.
139 (Scope): New routine.
140 (Set_Invocation_Graph_Encoding, Signature, Spec_Placement,
141 Target): New routine.
142 * ali.ads: Add new type Invocation_Graph_Encoding_Kind. Add
143 component Invocation_Graph_Encoding to type Unit_Record.
144 Relocate various types and data structures to the body of ALI.
145 (Add_Invocation_Construct, Add_Invocation_Relation): Update the
146 parameter profile.
147 (Body_Placement): New routine.
148 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
149 Removed.
150 (Code_To_Declaration_Placement_Kind,
151 Code_To_Invocation_Graph_Encoding_Kind, Column,
152 Declaration_Placement_Kind_To_Code, Extra,
153 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
154 Invocation_Graph_Encoding,
155 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
156 Locations, Name, Scope, Set_Invocation_Graph_Encoding,
157 Signature, Spec_Placement, Target): New routine.
158 * bindo.adb: Add with clause for Binde. Add with and use
159 clauses for Debug. Update the documentation. Add new switches.
160 (Find_Elaboration_Order): Dispatch to the proper elaboration
161 mechanism.
162 * bindo-augmentors.adb:
163 Remove with and use clauses for GNAT and GNAT.Sets. Remove
164 membership set VS. Update the parameter profiles of most
165 routines to use better parameter names. Update the
166 implementation of most routine to use the new parameter names.
167 Remove various redundant assertions.
168 * bindo-builders.adb: Use better names for instantiated data
169 structures. Update all references to these names. Update the
170 parameter profiles of most routines to use better parameter
171 names. Update the implementation of most routine to use the new
172 parameter names.
173 (Build_Library_Graph): Update the parameter profile. Update the
174 call to Create.
175 (Create_Vertex): Reimplemented.
176 (Declaration_Placement_Vertex): New routine.
177 * bindo-builders.ads (Build_Library_Graph): Update the parameter
178 profile and comment on usage.
179 * bindo-diagnostics.adb: Almost a new unit.
180 * bindo-diagnostics.ads: Add a use clause for
181 Bindo.Graphs.Invocation_Graphs. Remove package
182 Cycle_Diagnostics.
183 (Diagnose_Circularities): New routine.
184 * bindo-elaborators.adb: Remove the with and use clauses for
185 Binderr and GNAT.Sets. Remove the use clause for
186 Bindo.Diagnostics.Cycle_Diagnostics. Remove membership set VS.
187 Update the parameter profiles of most routines to use better
188 parameter names. Update the implementation of most routine to
189 use the new parameter names. (Elaborate_Units_Common): Update
190 the parameter profile. Pass an infication to the library graph
191 builder whether the dynamic model is in effect.
192 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Use
193 Diagnose_Circularities to provide diagnostics.
194 (Update_Successor): Use routine In_Same_Component to determine
195 whether the predecessor and successor reside in different
196 components.
197 * bindo-graphs.adb: Add with and use clauses for Butil, Debug,
198 Output, and Bindo.Writers. Remove with and use clauses for
199 GNAT.Lists. Update the parameter profiles of most routines to
200 use better parameter names. Update the implementation of most
201 routine to use the new parameter names. Remove various
202 redundant assertions. Remove doubly linked list EL. Add new
203 type Precedence_Kind.
204 (Add_Cycle): New routine.
205 (Add_Vertex): Update the parameter profile. Update the creation
206 of vertex attributes.
207 (Add_Vertex_And_Complement, Body_Vertex, Column,
208 Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New
209 routines.
210 (Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle,
211 Destroy_Library_Graph_Edge, Extra, File_Name,
212 Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge,
213 Find_Cycles, Find_First_Lower_Precedence_Cycle,
214 Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle,
215 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
216 Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort,
217 Invocation_Edge_Count, Invocation_Graph_Encoding,
218 Is_Cycle_Initiating_Edge, Is_Cyclic_Edge,
219 Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge,
220 Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge,
221 Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge,
222 Is_Dynamically_Elaborated, Is_Elaborate_All_Edge,
223 Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines.
224 (Is_Existing_Predecessor_Successor_Relation): Removed.
225 (Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle,
226 Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind,
227 Length): New routine.
228 (Lib_Vertex): Removed.
229 (Line, Links_Vertices_In_Same_Component,
230 Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle,
231 Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence,
232 Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines.
233 (Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge.
234 (Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex.
235 (Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge.
236 (Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex.
237 (Set_Is_Existing_Predecessor_Successor_Relation): Removed.
238 (Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge,
239 Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge,
240 Trace_Eol, Trace_Vertex): New routines.
241 * bindo-graphs.ads: Add with and use clauses for Types and
242 GNAT.Lists. Update the parameter profiles of most routines to
243 use better parameter names. Update the implementation of most
244 routine to use the new parameter names. Add the new
245 instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists,
246 LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets. Add new type
247 Library_Graph_Cycle_Id along with an empty and initial value.
248 Remove component Lib_Vertex and add new components Body_Vertex
249 and Spec_Vertex to type Invocation_Graph_Vertex_Attributes. Add
250 new type Library_Graph_Cycle_Kind. Add new iterators
251 All_Cycle_Iterator and Edges_Of_Cycle_Iterator. Add new type
252 Library_Graph_Cycle_Attributes. Add new components
253 Cycle_Attributes, Cycles, and Dynamically_Elaborated to type
254 Library_Graph_Attributes.
255 (Body_Vertex, Column, Destroy_Invocation_Graph_Edge,
256 Destroy_Library_Graph_Cycle_Attributes,
257 Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles,
258 Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle,
259 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
260 In_Same_Component, Invocation_Edge_Count,
261 Invocation_Graph_Encoding, Is_Dynamically_Elaborated,
262 Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge,
263 Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge,
264 Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind):
265 New routines.
266 (Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present,
267 Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines.
268 * bindo-units.adb (File_Name, Invocation_Graph_Encoding): New
269 routines.
270 * bindo-units.ads: Add new instantiated data structure
271 Unit_Sets.
272 (File_Name, Invocation_Graph_Encoding): New routine.
273 * bindo-validators.adb: Remove with and use clauses for GNAT and
274 GNAT.Sets. Remove membership set US. Update the parameter
275 profiles of most routines to use better parameter names. Update
276 the implementation of most routine to use the new parameter
277 names.
278 (Validate_Cycle, Validate_Cycle_Path, Validate_Cycles,
279 Validate_Invocation_Graph_Vertex): Remove the validation of
280 component Lib_Vertex. Add the validation of components
281 Body_Vertex and Spec_Vertex.
282 (Write_Error): New routine.
283 * bindo-validators.ads (Validate_Cycles): New routine.
284 * bindo-writers.adb: Update the parameter profiles of most
285 routines to use better parameter names. Update the
286 implementation of most routine to use the new parameter names.
287 (Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines.
288 (Write_Invocation_Graph_Vertex): Remove the output of component
289 Lib_Vertex. Add the output of components Body_Vertex and
290 Spec_Vertex.
291 * bindo-writers.ads (Write_Cycles): New routine.
292 * debug.adb: Use binder switches -d_C and -d_P, add
293 documentation on their usage.
294 * gnatbind.adb: Remove with and use clauses for Binde. Delegate
295 the choice of elaboration mechanism to Bindo.
296 * lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations,
297 Name, Placement, Scope, Signature, Target): Removed.
298 (Write_Invocation_Graph): Moved at the top level.
299 (Write_Invocation_Graph_Attributes): New routine.
300 (Write_Invocation_Relation, Write_Invocation_Signature): Moved
301 at the top level.
302 * lib-writ.ads: Add a documentation section on invocation graph
303 attributes.
304 * sem_elab.adb (Body_Placement_Of): New routine.
305 (Declare_Invocation_Construct): Update the call to
306 Add_Invocation_Construct.
307 (Declaration_Placement_Of_Node): New routine.
308 (Get_Invocation_Attributes): Correct the retrieval of the
309 enclosing subprogram where the postcondition procedure lives.
310 (Placement_Of, Placement_Of_Node): Removed.
311 (Record_Invocation_Graph): Record the encoding format used.
312 (Record_Invocation_Graph_Encoding): New routine.
313 (Record_Invocation_Relation): Update the call to
314 Add_Invocation_Relation.
315 (Spec_Placement_Of): Removed.
316 * libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine.
317
164597c5 3182019-07-05 Ed Schonberg <schonberg@adacore.com>
319
320 * checks.adb (Apply_Predicate_Check): Except within the
321 subprogram body that defines the formal, do not apply predicate
322 check on a formal IN parameter: such a check is redundant and
323 its expansion can lead to out-of-scope references when it is
324 originates in a function call in a precondition,
325
572a4bc5 3262019-07-05 Yannick Moy <moy@adacore.com>
327
328 * sem_res.adb (Resolve_Call): Cannot inline in quantified
329 expressions.
330 * sem_util.adb, sem_util.ads (In_Quantified_Expression): New
331 function.
332
2c3ad474 3332019-07-05 Bob Duff <duff@adacore.com>
334
335 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
336 Fix typo.
337 * gnat_rm.texi: Regenerate.
338
2f67af4c 3392019-07-05 Bob Duff <duff@adacore.com>
340
341 * exp_attr.adb (Input): Take the No_Stream_Optimizations
342 restriction into account.
343
1cb1fd0f 3442019-07-05 Claire Dross <dross@adacore.com>
345
346 * libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal
347 vectors are now always bounded so that they do not need to be
348 limited anymore.
349
d2d09f3e 3502019-07-05 Dmitriy Anisimkov <anisimko@adacore.com>
351
352 * libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New
353 function.
354
14e0bfed 3552019-07-04 James Clarke <jrtc27@debian.org>
356
357 * libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type
358 definition public.
359 (CLOCK_REALTIME): Make value public.
360
ecd07d3b 3612019-07-04 Javier Miranda <miranda@adacore.com>
362
363 * exp_tss.adb (Init_Proc): Adding missing support for access to
364 subprograms and access to protected subprograms of non-default
365 C++ constructors.
366
e0ff1639 3672019-07-04 Eric Botcazou <ebotcazou@adacore.com>
368
369 * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
370 set the validity settings in CodePeer mode.
371 * par-load.adb (Load): Remove all code dealing with validity
372 settings.
373 * validsw.ads (Validity_Check_Copies): Alphabetize.
374 * validsw.adb (Reset_Validity_Check_Options): Set all options to
375 off.
376 (Save_Validity_Check_Options): Save all options.
377
40bff3a0 3782019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
379
380 * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
381 exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb,
382 rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
383 sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor
384 reformatting.
385
0ebaade4 3862019-07-04 Joffrey Huguet <huguet@adacore.com>
387
388 * libgnarl/a-taside.ads: Add assertion policy to ignore
389 preconditions.
390 (Abort_Task, Is_Terminated, Is_Callable): Add preconditions.
391
f14a590b 3922019-07-04 Eric Botcazou <ebotcazou@adacore.com>
393
394 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix
395 capitalization and parenthesis glitches.
396 * gnat_rm.texi: Regenerate.
397
f5388f99 3982019-07-04 Ed Schonberg <schonberg@adacore.com>
399
400 * sem_ch10.adb (Remove_Context_Clauses): Handle properly the
401 removal of a limited_with_clause which appears in the library
402 unit oF the main unit, when some other unit in the context has a
403 regular with_clause on the same unit, to prevent spurious
404 visibility errors in the subsequent analysis of pending instance
405 bodies.
406
c930bc82 4072019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
408
409 * sem_elab.adb: Add new type Elaboration_Phase_Status along with
410 a global to keep track of the elaboration phase status.
411 Initialize all internal data structures to Nil for services
412 Elaborated_Units, Internal_Representation, and Scenario_Storage.
413 (Build_Call_Marker): Do not create a call marker when the
414 elaboration phase is not active.
415 (Build_Variable_Reference_Marker): Do not create a call marker
416 when the elaboration phase is not active.
417 (Check_Elaboration_Scenarios): Destroy all internal structures
418 when the elaboration phase does not have to run. Do not execute
419 when the elaboration phase is not active.
420 (Elaboration_Phase_Active): New routine.
421 (Finalize_All_Data_Structures): New routine.
422 (Initialize): Initialize all internal data structures and signal
423 that the elaboration phase has started.
424 (Initialize_All_Data_Structures): New routine.
425 (Initialize_Elaborated_Units): Initialize all internal data
426 structures.
427 (Initialize_Internal_Representation): Initialize all internal
428 data structures.
429 (Initialize_Scenario_Storage): Initialize all internal data
430 structures.
431 (Kill_Elaboration_Scenario): Do not execute when the elaboration
432 phase is not active.
433 (Set_Elaboration_Phase): New routine.
434 (Update_Elaboration_Scenario): Do not execute when the
435 elaboration phase is not active.
436
39dec7f4 4372019-07-04 Gary Dismukes <dismukes@adacore.com>
438
439 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special
440 treatment of calling Mask_Unfrozen_Types must also be done in
441 the case of an Ignored_Ghost_Entity, because Expander_Active is
442 False in that case.
443
92b004be 4442019-07-04 Yannick Moy <moy@adacore.com>
445
446 * sem_prag.adb (Check_Library_Level_Entity): Update for new rule
447 on SPARK_Mode.
448
12795e1c 4492019-07-04 Justin Squirek <squirek@adacore.com>
450
451 * sem_disp.adb (Check_Controlling_Formals): Obtain the full view
452 before type comparison.
453
63fe3141 4542019-07-04 Ed Schonberg <schonberg@adacore.com>
455
456 * exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible
457 subprogram, extracted from Expand_Composite_Equality, to handle
458 properly the composition of equality for variant record types.
459 * exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each
460 component, to handle properly the case of a component with a
461 user-defined equality. Revert to predefined equality if the
462 user-defined operation is abstract, to maintain compatibility
463 with older versions,
464
17fa952a 4652019-07-04 Justin Squirek <squirek@adacore.com>
466
467 * exp_ch3.adb (Build_Initialization_Call): Fixup
468 *_skip_null_excluding_check argument to handle new default.
469 (Init_Formals): Make *_skip_null_excluding_check formal default
470 to False
471 * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
472 code duplication
473
cf32543d 4742019-07-04 Bob Duff <duff@adacore.com>
475
476 * sem_ch3.adb (Access_Definition): Do not create a master unless
477 Tasking_Allowed. Otherwise, this fails on restricted runtimes.
478
eb4dbf20 4792019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
480
481 * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
482 Default_Initial_Condition attributes to an incomplete type.
483
25ddc6ba 4842019-07-04 Ed Schonberg <schonberg@adacore.com>
485
486 * sem_attr.adb (Check_Array_Type): An array type attribute such
487 as 'First can be applied to an unconstrained array tyope when
488 the attribute reference appears within an aspect specification
489 and the prefix is a current instance, given that the prefix of
490 the attribute will become a formal of the subprogram that
491 implements the aspect (typically a predicate check).
492
74a5962a 4932019-07-04 Piotr Trojanek <trojanek@adacore.com>
494
495 * sem_util.adb (Yields_Synchronized_Object): Fix typos in
496 comments.
497
c65d33a8 4982019-07-04 Yannick Moy <moy@adacore.com>
499
500 * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
501 rule.
502
afd77d39 5032019-07-04 Yannick Moy <moy@adacore.com>
504
505 * sem_spark.adb (Check_Statement): Only check permission of
506 object in extended return when it is of a deep type.
507
2281b807 5082019-07-04 Justin Squirek <squirek@adacore.com>
509
510 * sem_ch12.adb (Perform_Appropriate_Analysis): Added for
511 selecting which type of analysis based on wheither the
512 instantiation is a generic at the library-level. In which case
513 expansion during analysis.
514 (Preanalyze_Actuals): Modify calls to Analyze to use the new
515 routine.
516
542b3e26 5172019-07-04 Ed Schonberg <schonberg@adacore.com>
518
519 * exp_unst.adb: Handle conditional expressions.
520
7754aad4 5212019-07-04 Yannick Moy <moy@adacore.com>
522
523 * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
524 analyze parts of the code marked in SPARK.
525
3843c1bd 5262019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
527
528 * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
529 Minor reformatting.
530
5bc0f990 5312019-07-04 Yannick Moy <moy@adacore.com>
532
533 * sem_spark.adb (Explanation, Get_Expl): New functions to get
534 the explanation for a permission mismatch.
535 (Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take
536 explanation into account for issuing a more precise error
537 message.
538 (Set_Perm_Prefixes, Set_Perm_Extensions,
539 Set_Perm_Extensions_Move): Pass suitable argument for the
540 explanation node.
541
11903e68 5422019-07-04 Arnaud Charlet <charlet@adacore.com>
543
544 * exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add
545 support for record aggregates.
546 (Component_Check): Use Is_CCG_Supported_Aggregate instead of a
547 similar local predicate.
548 (Convert_To_Assignments): Take advantage of In_Place_Assign_OK
549 predicate when possible.
550 (Is_CCG_Supported_Aggregate): Return False for records with
551 representation clauses and fix the logic for dealing with nested
552 aggregates.
553
b0c19ea3 5542019-07-04 Piotr Trojanek <trojanek@adacore.com>
555
556 * opt.adb (Set_Config_Switches): Keep assertions policy as
557 enabled when analysing internal units in GNATprove mode.
558
90f2b146 5592019-07-04 Arnaud Charlet <charlet@adacore.com>
560
561 * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
562 N_Variable_Reference_Marker when checking for the presence of
563 actions.
564
39ecad34 5652019-07-04 Arnaud Charlet <charlet@adacore.com>
566
567 * exp_aggr.adb (Check_Component): Take into account type
568 conversions.
569
c0e899f1 5702019-07-04 Dmitriy Anisimkov <anisimko@adacore.com>
571
572 * doc/gnat_ugn/platform_specific_information.rst: Document
573 Windows socket timeout particularity.
574 * gnat_ugn.texi: Regenerate.
575 * gsocket.h: Include versionhelpers.h.
576 * socket.c (__gnat_minus_500ms): New function.
577 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New
578 imported function.
579 * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
580 500ms from the requested timeout only on old Windows version.
581
363b1a8e 5822019-07-04 Thomas Quinot <quinot@adacore.com>
583
584 * get_scos.adb: Remove bogus, dead code.
585
4ae0a9ce 5862019-07-04 Ed Schonberg <schonberg@adacore.com>
587
588 * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
589 component is an entity name, its dimensions are those of its
590 type.
591
d60fa3c9 5922019-07-03 Bob Duff <duff@adacore.com>
593
594 * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
595 GNATpp.
596
877ad320 5972019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
598
599 * binde.adb: Remove with clause for System.OS_Lib.
600 (Force_Elab_Order): Refactor the majority of the code in Butil.
601 Use the new forced units iterator to obtain unit names.
602 * bindo-builders.adb: Add with and use clauses for Binderr,
603 Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add
604 a hash table which maps units to line number in the forced
605 elaboration order file.
606 (Add_Unit): New routine.
607 (Build_Library_Graph): Create forced edges between pairs of
608 units listed in the forced elaboration order file.
609 (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number,
610 Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info,
611 Is_Duplicate_Unit, Missing_Unit_Info): New routines.
612 * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit):
613 Refactor some of the behavior to Bindo-Units.
614 * bindo-graphs.ads: Enable the enumeration literal for forced
615 edges.
616 * bindo-units.adb, bindo-units.ads (Is_Internal_Unit,
617 Is_Predefined_Unit): New routines.
618 * butil.adb: Add with and use clauses for Opt, GNAT, and
619 System.OS_Lib. Add with clause for Unchecked_Deallocation.
620 (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name,
621 Read_Forced_Elab_Order_File): New routines.
622 * butil.ads: Add with and use clauses for Types. Add new
623 iterator over the units listed in the forced elaboration order
624 file.
625 (Has_Next, Iterate_Forced_Units, Next): New routine.
626 * namet.adb, namet.ads (Present): New routine.
627
01e6eb2f 6282019-07-03 Bob Duff <duff@adacore.com>
629
630 * sem_ch3.adb (Access_Definition): The code was creating a
631 master in the case where the designated type is a class-wide
632 interface type. Create a master in the noninterface case as
633 well. That is, create a master for all limited class-wide types.
634
9ad42832 6352019-07-03 Yannick Moy <moy@adacore.com>
636
637 * erroutc.adb (Sloc_In_Range): New function to determine whether
638 the range of a pragma Warnings covers a location, taking
639 instantiations into account.
640
f2a8d64e 6412019-07-03 Johannes Kanig <kanig@adacore.com>
642
643 * osint.ads, osint.adb (Get_First_Main_File_Name): New routine
644 to access the first file provided on the command line.
645
d4f28933 6462019-07-03 Ed Schonberg <schonberg@adacore.com>
647
648 * inline.adb (Process_Formals_In_Aspects): New procedure within
649 Expand_Inlined_Call, to perform a replacement of references to
650 formals that appear in aspect specifications within the body
651 being inlined.
652
23e7fc9b 6532019-07-03 Justin Squirek <squirek@adacore.com>
654
655 * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
656 the appropriate actual subtype of the object renaming being
657 analyzed.
658 (Check_Constrained_Object): Minor cleanup.
659
f8e6d133 6602019-07-03 Yannick Moy <moy@adacore.com>
661
662 * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to
663 return go through traversal function call.
664 (Check_Type): Consistently use underlying type.
665 (Get_Perm): Adapt for case of elaboration code where variables
666 are not declared in the environment. Remove incorrect handling
667 of borrow and observe.
668
d044ba5c 6692019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
670
671 * inline.adb (Build_Return_Object_Formal): New routine.
672 (Can_Split_Unconstrained_Function): Code clean up.
673 (Copy_Formals,Copy_Return_Object): New routines.
674 (Split_Unconstrained_Function): Code clean up and refactoring.
675
8699de72 6762019-07-03 Gary Dismukes <dismukes@adacore.com>
677
678 * bindo-augmentors.adb, bindo-augmentors.ads,
679 bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb,
680 sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial
681 corrections and reformatting.
682
2ccf6539 6832019-07-03 Bob Duff <duff@adacore.com>
684
685 * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
686 if an Iterator_Specification is present.
687
17b5260d 6882019-07-03 Bob Duff <duff@adacore.com>
689
690 * doc/gnat_ugn/gnat_utility_programs.rst: Document default
691 new-line behavior.
692
5f71d12c 6932019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
694
695 * ali.adb: Add with and use clauses for GNAT,
696 GNAT.Dynamic_HTables, and Snames. Add a map from invocation
697 signature records to invocation signature ids. Add various
698 encodings of invocation-related attributes. Sort and update
699 table Known_ALI_Lines.
700 (Add_Invocation_Construct, Add_Invocation_Relation,
701 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
702 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
703 Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New
704 routines.
705 (Initialize_ALI): Sort the initialization sequence. Add
706 initialization for all invocation-related tables.
707 (Invocation_Construct_Kind_To_Code,
708 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
709 Invocation_Signature_Of, Present): New routines.
710 (Scan_ALI): Add the default values for invocation-related ids.
711 Scan invocation graph lines.
712 (Scan_Invocation_Graph_Line): New routine.
713 * ali.ads: Add with clause for GNAT.Dynamic_Tables. Add types
714 for invocation constructs, relations, and signatures. Add
715 tables for invocation constructs, relations, and signatures.
716 Update Unit_Record to capture invocation-related ids. Relocate
717 table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array
718 from Binde.
719 (Add_Invocation_Construct, Add_Invocation_Relation,
720 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
721 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
722 Code_To_Invocation_Graph_Line_Kind,
723 Invocation_Construct_Kind_To_Code,
724 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
725 Invocation_Signature_Of, Present): New routines.
726 * binde.adb: Add with and use clause for Types. Add use clause
727 for ALI.Unit_Id_Tables;
728 * binde.ads: Relocate table Unit_Id_Tables and subtypes
729 Unit_Id_Table, Unit_Id_Array to ALI.
730 * bindgen.adb: Remove with and use clause for ALI.
731 * bindgen.ads: Remove with and use clause for Binde. Add with
732 and use clause for ALI.
733 * bindo.adb, bindo.ads, bindo-augmentors.adb,
734 bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads,
735 bindo-diagnostics.adb, bindo-diagnostics.ads,
736 bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb,
737 bindo-graphs.ads, bindo-units.adb, bindo-units.ads,
738 bindo-validators.adb, bindo-validators.ads, bindo-writers.adb,
739 bindo-writers.ads: New units.
740 * debug.adb: Use and describe GNAT debug switches -gnatd_F and
741 -gnatd_G. Add GNATbind debug switches in the ranges dA .. dZ,
742 d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and
743 d_1 .. d_9. Use and describe GNATbind debug switches -d_A,
744 -d_I, -d_L, -d_N, -d_O, -d_T, and -d_V.
745 * exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to
746 Sem_Util.
747 * gnatbind.adb: Add with and use clause for Bindo. Use the new
748 Bindo elaboration order only when -d_N is in effect.
749 * lib-writ.adb
750 (Column, Extra, Invoker, Kind, Line, Locations, Name, Placement,
751 Scope, Signature, Target): New routines.
752 (Write_ALI): Output all invocation-related data.
753 (Write_Invocation_Graph): New routine.
754 * lib-writ.ads: Document the invocation graph ALI line.
755 * namet.adb, namet.ads (Present): New routines.
756 * sem_ch8.adb (Find_Direct_Name): Capture the status of
757 elaboration checks and warnings of an identifier.
758 (Find_Expanded_Name): Capture the status of elaboration checks
759 and warnings of an expanded name.
760 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure
761 that invocation graph-related data within the body of the main
762 unit is encoded in the ALI file.
763 (Analyze_Generic_Subprogram_Declaration): Ensure that invocation
764 graph-related data within the body of the main unit is encoded
765 in the ALI file.
766 (Analyze_Package_Instantiation): Perform minimal decoration of
767 the instance entity.
768 (Analyze_Subprogram_Instantiation): Perform minimal decoration
769 of the instance entity.
770 * sem_elab.adb: Perform heavy refactoring of all code. The unit
771 is now split into "services" which specialize in one area of ABE
772 checks. Add processing in order to capture invocation-graph
773 related attributes of the main unit, and encode them in the ALI
774 file. The Processing phase can now operate in multiple modes,
775 all described by type Processing_Kind. Scenarios and targets
776 are now distinct at the higher level, and carry their own
777 representations. This eliminates the need to constantly
778 recompute their attributes, and offers the various processors a
779 uniform interface. The various initial states of the Processing
780 phase are now encoded using type Processing_In_State, and
781 xxx_State constants.
782 * sem_elab.ads: Update the literals of type
783 Enclosing_Level_Kind. Add Inline pragmas on several routines.
784 * sem_prag.adb (Process_Inline): Ensure that invocation
785 graph-related data within the body of the main unit is encoded
786 in the ALI file.
787 * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
788 Code clean up.
789 (Exceptions_OK): Relocated from Sem_Util.
790 (Mark_Save_Invocation_Graph_Of_Body): New routine.
791 * sem_util.ads (Exceptions_OK): Relocated from Sem_Util.
792 (Mark_Save_Invocation_Graph_Of_Body): New routine.
793 * sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to
794 N_Variable_Reference_Marker.
795 (Is_Elaboration_Warnings_OK_Node): Now applicable to
796 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
797 (Is_Read): Use Flag4.
798 (Is_SPARK_Mode_On_Node): New applicable to
799 N_Variable_Reference_Marker.
800 (Is_Write): Use Flag5.
801 (Save_Invocation_Graph_Of_Body): New routine.
802 (Set_Is_Elaboration_Checks_OK_Node): Now applicable to
803 N_Variable_Reference_Marker.
804 (Set_Is_Elaboration_Warnings_OK_Node): Now applicable to
805 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
806 (Set_Is_SPARK_Mode_On_Node): New applicable to
807 N_Variable_Reference_Marker.
808 (Set_Save_Invocation_Graph_Of_Body): New routine.
809 * sinfo.ads: Update the documentation of attributes
810 Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node,
811 Is_SPARK_Mode_On_Node. Update the flag usage of attributes
812 Is_Read, Is_Write. Add attribute Save_Invocation_Graph_Of_Body
813 and update its occurrence in nodes.
814 (Save_Invocation_Graph_Of_Body): New routine along with pragma
815 Inline.
816 (Set_Save_Invocation_Graph_Of_Body): New routine along with
817 pragma Inline.
818 * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
819 debug switches.
820 (Scan_Debug_Switches): New routine.
821 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine.
822 * libgnat/g-graphs.adb (Associate_Vertices): Update the use of
823 Component_Vertex_Iterator.
824 (Contains_Component, Contains_Edge, Contains_Vertex, Has_Next):
825 Reimplemented.
826 (Iterate_Component_Vertices): New routine.
827 (Iterate_Vertices): Removed.
828 (Next): Update the parameter profile.
829 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
830 routines.
831 * libgnat/g-graphs.ads: Update the initialization of
832 No_Component. Add type Component_Vertex_Iterator. Remove type
833 Vertex_Iterator.
834 (Has_Next): Add new versions and remove old ones.
835 (Iterate_Component_Vertices): New routine.
836 (Iterate_Vertices): Removed.
837 (Next): Add new versions and remove old ones.
838 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
839 routines.
840 * libgnat/g-sets.adb (Contains): Reimplemented.
841 * gcc-interface/Make-lang.in (GNATBIND_OBJS): Add
842 GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units.
843 * rtsfind.ads: Remove extra space.
844
df177848 8452019-07-03 Yannick Moy <moy@adacore.com>
846
847 * sem_spark.adb: Add support for locally borrowing and observing
848 a path.
849 (Get_Root_Object): Add parameter Through_Traversal to denote
850 when we are interesting in getting to the traversed parameter.
851 (Is_Prefix_Or_Almost): New function to support detection of
852 illegal access to borrowed or observed paths.
853 (Check_Pragma): Add analysis of assertion pragmas.
854
f3f142ac 8552019-07-03 Ed Schonberg <schonberg@adacore.com>
856
857 * sem_ch13.adb (Build_Predicate_Functions): In a generic context
858 we do not build the bodies of predicate fuctions, but the
859 expression in a static predicate must be elaborated to allow
860 case coverage checking within the generic unit.
861 (Build_Discrete_Static_Predicate): In a generic context, return
862 without building function body once the
863 Static_Discrete_Predicate expression for the type has been
864 constructed.
865
99d90c85 8662019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
867
868 * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
869 sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.
870
800597f6 8712019-07-03 Bob Duff <duff@adacore.com>
872
873 * par-ch3.adb (P_Defining_Identifier): Call
874 Check_Defining_Identifier_Casing.
875 * style.ads, styleg.ads, styleg.adb
876 (Check_Defining_Identifier_Casing): New procedure to check for
877 mixed-case defining identifiers.
878 * stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New
879 flag for checking for mixed-case defining identifiers.
880 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
881 Document new feature.
882 * gnat_ugn.texi: Regenerate.
883
2c75027a 8842019-07-03 Eric Botcazou <ebotcazou@adacore.com>
885
886 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
887 (Warning message control): Document that -gnatw.z/Z apply to
888 array types.
889 * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
890 types as well, but not if the specified alignment is the minimum
891 one.
892 * gnat_ugn.texi: Regenerate.
893
08237d0d 8942019-07-03 Bob Duff <duff@adacore.com>
895
896 * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
897 correctly.
898
0396441f 8992019-07-03 Ed Schonberg <schonberg@adacore.com>
900
901 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
902 message on attribute applied to a renaming when the renamed
903 object is an aggregate (from code reading).
904 (Check_Aspect_At_End_Of_Declarations): In a generic context
905 where freeze nodes are not generated, the original expression
906 for an aspect may need to be analyzed to precent spurious
907 conformance errors when compared with the expression that is
908 anakyzed at the end of the current declarative list.
909
c8406f30 9102019-07-03 Eric Botcazou <ebotcazou@adacore.com>
911
912 * layout.adb (Layout_Type): Do not set the component size of an
913 array with a scalar component if the component type is
914 overaligned.
915
c38b32ea 9162019-07-03 Ed Schonberg <schonberg@adacore.com>
917
918 * inline.adb (Make_Loop_Labels_Unique): New procedure to modify
919 the source code of subprograms that are inlined by the
920 front-end, to prevent accidental duplication between loop labels
921 in the inlined code and the code surrounding the inlined call.
922
6d6f134e 9232019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
924
925 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
926 the section on resolving elaboration circularities to eliminate
927 certain combinations of switches which together do not produce
928 the desired effect and confuse users.
929 * gnat_ugn.texi: Regenerate.
930
f3e16ef4 9312019-07-03 Arnaud Charlet <charlet@adacore.com>
932
933 * bindgen.adb (Gen_Main): Disable generation of reference to
934 Ada_Main_Program_Name for CCG.
935 * bindusg.adb (Display): Add -G to the command-line usage for
936 gnatbind.
937 * opt.ads (Generate_C_Code): Update comment.
938 * switch-b.adb (Scan_Binder_Switches): Add handling for -G.
939
f4a31b16 9402019-07-03 Arnaud Charlet <charlet@adacore.com>
941
942 * sem_ch7.adb (Has_Referencer): Do not consider inlined
943 subprograms when generating C code, which allows us to generate
944 static inline subprograms.
945
2f65e9f7 9462019-07-03 Justin Squirek <squirek@adacore.com>
947
948 * sem_ch6.adb (Check_Conformance): Add expression checking for
949 constant modifiers in anonymous access types (in addition to
950 "non-null" types) so that they are considered "matching" for
951 subsequent conformance tests.
952
c336ed70 9532019-07-03 Arnaud Charlet <charlet@adacore.com>
954
955 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
956 Clarify wording on No_Multiple_Elaboration.
957 * gnat_rm.texi: Regenerate.
958
78611c86 9592019-07-03 Ed Schonberg <schonberg@adacore.com>
960
961 * sem_ch8.adb (Find_Selected_Component): If the prefix is the
962 current instance of a type or subtype, complete the resolution
963 of the name by finding the component of the type denoted by the
964 selector name.
965
5a87a4d9 9662019-07-03 Eric Botcazou <ebotcazou@adacore.com>
967
968 * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C):
969 Document that boolean types with convention C now map to C99 bool.
970 * gnat_rm.texi: Regenerate.
971
371c539c 9722019-07-03 Javier Miranda <miranda@adacore.com>
973
974 * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
975 removing code that it is now never executed in the CCG compiler
976 (dead code).
977
89d2d652 9782019-07-02 Iain Sandoe <iain@sandoe.co.uk>
979
980 * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
981 PPC Darwin.
982
d21e66fb 9832019-07-01 Ed Schonberg <schonberg@adacore.com>
984
985 * sem_ch12.adb (Is_Defaulted): New predicate in
986 Check_Formal_Package_Intance, to skip the conformance of checks
987 on parameters of a formal package that are defaulted,
988
7a42b778 9892019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
990
991 * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
992 sem_prag.adb, sem_spark.adb: Minor reformatting.
993
fc8ae496 9942019-07-01 Ed Schonberg <schonberg@adacore.com>
995
996 * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
997 of attribute to be an attribute reference of a discrete type.
998
9d27ea41 9992019-07-01 Eric Botcazou <ebotcazou@adacore.com>
1000
1001 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
1002 handling of Has_Pragma_Inline_Always and deal with
1003 Has_Pragma_No_Inline.
1004
bcb8dcf3 10052019-07-01 Ed Schonberg <schonberg@adacore.com>
1006
1007 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
1008 declared as a subtype of a private type with an inherited
1009 discriminant constraint, its generated full base appears as a
1010 record subtype, so we need to retrieve its oen base type so that
1011 the inherited constraint can be applied to it.
1012
d087b9ca 10132019-07-01 Yannick Moy <moy@adacore.com>
1014
1015 * sem_spark.adb: Completely rework the algorithm for ownership
1016 checking, as the rules in SPARK RM have changed a lot.
1017 * sem_spark.ads: Update comments.
1018
fe48ee0a 10192019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
1020
1021 * gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in
1022 the sockaddr_in structure to determine the existence of length field
1023 before the sin_family.
1024
b20f7e2c 10252019-07-01 Ed Schonberg <schonberg@adacore.com>
1026
1027 * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
1028 applies to entities with run-time addresses, not to types.
1029
374fdf94 10302019-07-01 Piotr Trojanek <trojanek@adacore.com>
1031
1032 * einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update
1033 references to the SPARK RM after the removal of Rule 7.1.4(5).
1034
bf13a79d 10352019-07-01 Piotr Trojanek <trojanek@adacore.com>
1036
1037 * sysdep.c: Cleanup references to LynuxWorks in docs and
1038 comments.
1039
866fa2d0 10402019-07-01 Ed Schonberg <schonberg@adacore.com>
1041
1042 * checks.adb (Insert_Valid_Check): Do not apply validity check
1043 to variable declared within a protected object that uses the
1044 Lock_Free implementation, to prevent unwarranted constant
1045 folding, because entities within such an object msut be treated
1046 as volatile.
1047
bcb5ab83 10482019-07-01 Eric Botcazou <ebotcazou@adacore.com>
1049
1050 * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.
1051
2db33bd6 10522019-07-01 Ed Schonberg <schonberg@adacore.com>
1053
1054 * exp_unst.adb (Visit_Node, Check_Static_Type): Improve the
1055 handling of private and incomplete types whose full view is an
1056 access type, to detect additional uplevel references in dynamic
1057 bounds. This is relevant to N_Free_Statement among others that
1058 manipulate types whose full viww may be an access type.
1059
6b4f0b7d 10602019-07-01 Pat Rogers <rogers@adacore.com>
1061
1062 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct
1063 size indicated for R as a component of an array.
1064 * gnat_rm.texi: Regenerate.
1065
cdee70d7 10662019-07-01 Justin Squirek <squirek@adacore.com>
1067
1068 * libgnat/s-win32.ads: Add definition for ULONG, modify
1069 OVERLAPPED type, and add appropriate pragmas.
1070
2cf822b7 10712019-07-01 Bob Duff <duff@adacore.com>
1072
1073 * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
1074 ignored-ghost.
1075
0a1ece97 10762019-07-01 Yannick Moy <moy@adacore.com>
1077
1078 * sem_ch4.adb (Operator_Check): Refine error message.
1079
ee4279ef 10802019-07-01 Piotr Trojanek <trojanek@adacore.com>
1081
1082 * libgnat/a-calend.ads: Revert "Global => null" contracts on
1083 non-pure routines.
1084
2c6b4ada 10852019-07-01 Piotr Trojanek <trojanek@adacore.com>
1086
1087 * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
1088 componant -> component.
1089
175c4526 10902019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1091
1092 * libgnat/g-graphs.adb: Use type Directed_Graph rather than
1093 Instance in various routines.
1094 * libgnat/g-graphs.ads: Change type Instance to Directed_Graph.
1095 Update various routines that mention the type.
1096
a0d15509 10972019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1098
1099 * libgnat/g-sets.adb: Use type Membership_Set rathern than
1100 Instance in various routines.
1101 * libgnat/g-sets.ads: Change type Instance to Membership_Set.
1102 Update various routines that mention the type.
1103
205a23a3 11042019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1105
1106 * libgnat/g-lists.adb: Use type Doubly_Linked_List rather than
1107 Instance in various routines.
1108 * libgnat/g-lists.ads: Change type Instance to
1109 Doubly_Linked_List. Update various routines that mention the
1110 type.
1111
17fdf8c2 11122019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1113
1114 * libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than
1115 Instance in various routines.
1116 * libgnat/g-dynhta.ads: Change type Instance to
1117 Dynamic_Hash_Table. Update various routines that mention the
1118 type.
1119
216ffc64 11202019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1121
1122 * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
1123 sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.
1124
5051fe35 11252019-07-01 Javier Miranda <miranda@adacore.com>
1126
1127 * exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of
1128 'Min/'Max on integer, enumeration, fixed point and floating
1129 point types since the CCG backend now provides in file
1130 standard.h routines to support it.
1131
830a2a71 11322019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1133
1134 * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
1135 * Makefile.rtl, gcc-interface/Make-lang.in: Register unit
1136 GNAT.Graphs.
1137 * libgnat/g-dynhta.adb: Various minor cleanups (use Present
1138 rather than direct comparisons).
1139 (Delete): Reimplement to use Delete_Node.
1140 (Delete_Node): New routine.
1141 (Destroy_Bucket): Invoke the provided destructor.
1142 (Present): New routines.
1143 * libgnat/g-dynhta.ads: Add new generic formal Destroy_Value.
1144 Use better names for the components of iterators.
1145 * libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit.
1146 * libgnat/g-lists.adb: Various minor cleanups (use Present
1147 rather than direct comparisons).
1148 (Delete_Node): Invoke the provided destructor.
1149 (Present): New routine.
1150 * libgnat/g-lists.ads: Add new generic formal Destroy_Element.
1151 Use better names for the components of iterators.
1152 (Present): New routine.
1153 * libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset,
1154 Reset): New routines.
1155
b0111d94 11562019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
1157
1158 * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
1159 is not defined.
1160
7362896b 11612019-07-01 Ed Schonberg <schonberg@adacore.com>
1162
1163 * exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value):
1164 Resolve result of call to Get_Simple_Init_Val, which may be a
1165 conversion of a literal.
1166
0dae8dc2 11672019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1168
1169 * freeze.adb (Freeze_Expression): Remove the horrible useless
1170 name hiding of N. Insert the freeze nodes generated by the
1171 expression prior to the expression when the nearest enclosing
1172 scope is transient.
1173
487da8ff 11742019-07-01 Pierre-Marie de Rodat <derodat@adacore.com>
1175
1176 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
1177 formatting issues in the -gnatR section.
1178 * gnat_ugn.texi: Regenerate.
1179
1d79fa18 11802019-06-30 Iain Sandoe <iain@sandoe.co.uk>
1181
1182 * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
1183 Push -shared-libgcc explicitly, when it is the target default (unless
1184 overidden by the static flag).
1185 When the user has put an instance of shared/static-libgcc do not push
1186 a duplicate of this.
1187
a850edcd 11882019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1189
1190 * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
1191 and tweak comment on the assertion about the scopes of Itypes. Do not
1192 skip the regular processing for Itypes that are E_Record_Subtype with
1193 a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype
1194 if the type is dummy and hasn't got its own freeze node.
1195 <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
1196 <E_Access_Subtype>: Save again the DECL of the equivalent type.
1197 (Gigi_Equivalent_Type) <E_Access_Subtype>: New case.
1198
b1e46fb1 11992019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1200
1201 * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip
1202 dereferences when padding to have the same size on both sides. Do it
1203 for destination types with self-referential size too.
1204
07e38949 12052019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1206
1207 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
1208 type requires strict alignment, then set the RM size to the type size.
1209 Rework handling of alignment and sizes of tagged types in ASIS mode.
1210 (validate_size): Rename local variable and remove special handling for
1211 strict-alignment types.
1212 * gcc-interface/utils.c (finish_record_type): Constify local variables
1213 and use properly typed constants.
1214
f4409741 12152019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1216
1217 * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
1218 fields requiring strict alignment, add explicit test on Storage_Unit
1219 for position and size, and mention type alignment for position.
1220
5882c515 12212019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1222
1223 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
1224 the main variant of a type, if any.
1225
d0de0a27 12262019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1227
1228 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
1229 missing guard for the presence of TYPE_CANONICAL.
1230 (set_reverse_storage_order_on_array_type): Likewise.
1231
2074c859 12322019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1233
1234 * gcc-interface/gigi.h (make_packable_type): Remove default value.
1235 (value_factor_p): Tweak prototype.
1236 * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
1237 (gnat_to_gnu_component_type): Likewise.
1238 (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier
1239 and simplify the condition under which the type is packed. Declare
1240 local variable is_bitfield. Pass 1 as max_align to make_packable_type
1241 if it is set to true.
1242 (copy_and_substitute_in_layout): Pass 0 to make_packable_type.
1243 * gcc-interface/utils.c (make_packable_array_type): New function.
1244 (make_packable_type): Use it to rewrite the type of array field.
1245 (maybe_pad_type): Pass align parameter to make_packable_type.
1246 (create_field_decl): Minor tweaks.
1247 (value_factor_p): Assert that FACTOR is a power of 2 and replace the
1248 modulo computation by a masking operation.
1249
83c6da22 12502019-06-25 Eric Botcazou <ebotcazou@adacore.com>
1251
1252 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
1253 in previous change.
1254 * gcc-interface/gigi.h (maybe_character_type): Fix formatting.
1255 (maybe_character_value): Likewise.
1256
aaabc7bc 12572019-06-24 Jan Hubicka <jh@suse.cz>
1258
1259 * gcc-interface/decl.c (gnat_to_gnu_entity): Check that
1260 type is array or integer prior checking string flag.
83c6da22 1261 * gcc-interface/gigi.h (maybe_character_type): Likewise.
1262 (maybe_character_value): Likewise.
aaabc7bc 1263
5fe09a56 12642019-06-24 Martin Sebor <msebor@redhat.com>
1265
1266 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
1267 name.
1268
bd9331d6 12692019-06-18 Arnaud Charlet <charlet@adacore.com>
1270
83c6da22 1271 PR ada/80590
bd9331d6 1272 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
1273 during normal processing.
1274
8a5a7d1c 12752019-06-17 Arnaud Charlet <charlet@adacore.com>
1276
83c6da22 1277 PR ada/80590
8a5a7d1c 1278 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
1279 conditions to avoid a unnecessary exception propagation in the default
1280 case.
1281
580934f6 12822019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1283
1284 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
1285
c8956236 12862019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1287
1288 * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
1289 Document additional optional parameters.
1290 * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
1291 more than one optional parameter.
1292 * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
1293 the list of supported pragmas. Simplify the handling of parameters
1294 and add support for more than one optional parameter.
1295 * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
1296 (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
1297 used, cold, hot, target and target_clones.
1298 (begin_subprog_body): Do not create the RTL for the subprogram here.
1299 (handle_noicf_attribute): New static function.
1300 (handle_noipa_attribute): Likewise.
1301 (handle_flatten_attribute): Likewise.
1302 (handle_used_attribute): Likewise.
1303 (handle_cold_attribute): Likewise.
1304 (handle_hot_attribute): Likewise.
1305 (handle_target_attribute): Likewise.
1306 (handle_target_clones_attribute): Likewise.
1307
62b762c2 13082019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1309
1310 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
1311 for 'Size too.
1312 (Identifier_to_gnu): Use the actual subtype for a reference to a
1313 packed array in a return statement.
1314 (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
1315 the prefix in every case.
1316
336a61a3 13172019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1318
1319 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
1320 Backend_Overflow_Checks_On_Target and rework comments.
1321
983c5b5e 13222019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1323
1324 * gcc-interface/trans.c (walk_nesting_tree): New static function.
1325 (finalize_nrv): Use it to walk the entire nesting tree.
1326
96b4b84e 13272019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1328
1329 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
1330 obsolete test on Is_For_Access_Subtype.
1331
0b74284e 13322019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1333
1334 * gcc-interface/decl.c (components_to_record): Set a name on the type
1335 created for the REP part, if any.
1336 * gcc-interface/utils.c (finish_record_type): Only take the maximum
1337 when merging sizes for a variant part at offset 0.
1338 (merge_sizes): Rename has_rep parameter into max.
1339
689dab9d 13402019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1341
1342 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
1343 for stack_protect attribute.
1344 (handle_stack_protect_attribute): New static function.
1345
804f7d39 13462019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1347
1348 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
1349 false if the internal builtin uses a variable list.
1350
f07f94cc 13512019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1352
1353 * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
1354 created out of addressability concerns if it's for the _Init parameter
1355 of an initialization procedure.
1356
abfd658b 13572019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1358
1359 * gcc-interface/ada-builtin-types.def: New file.
1360 * gcc-interface/ada-builtins.def: Likewise.
1361 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
1362 (BUILT_IN_UNLIKELY): Likewise.
1363 * gcc-interface/trans.c (independent_iterations_p): Initialize the
1364 auto-vector to 16 elements.
1365 (Call_to_gnu): Remove local variable and change the vector of actual
1366 parameters to an auto-vector. Do not convert actual parameters to
1367 the argument type for front-end built-in functions. Add support for
1368 front-end built-in functions.
1369 (build_noreturn_cond): Use internal instead of built-in function.
1370 * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
1371 (install_builtin_function_types): Likewise.
1372 (install_builtin_functions): Include ada-builtins.def first.
1373
caab73a2 13742019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1375
1376 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
1377 specific case of component types preferably.
1378
f1ca2388 13792019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1380
1381 * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
1382 (gnat_to_gnu): Do not convert the result if it is a reference to an
1383 unconstrained array used as the prefix of an attribute reference that
1384 requires an lvalue.
1385
e3f3573c 13862019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1387
1388 * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
1389 (Identifier_to_gnu): Use it to assert that the type of the identifier
1390 and that of its entity are compatible for gigi. Rename a couple of
1391 local variables and separate the processing of the result type.
1392
2306cd17 13932019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1394
1395 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
1396 putting back an intermediate conversion the type of the actuals.
1397
6e4e9378 13982019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1399
1400 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
1401 count to the unsigned version of its base type before proceeding.
1402
85b9be9b 14032019-05-16 Martin Sebor <msebor@redhat.com>
1404
3d6be0d5 1405 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
1406 reserved names.
85b9be9b 1407
65d973ca 14082019-05-08 Arnaud Charlet <charlet@adacore.com>
1409
1410 * standard.ads.h: New file.
1411
ff628b99 14122019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1413
1414 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
1415 Honor DESTDIR.
1416
ebd761d4 14172019-04-29 Michael K. Darling <darlingm@gmail.com>
1418
1419 * gnatvsn.ads: Bump Library_Version to 10.
1420
5f260823 14212019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1422 Bernd Edlinger <bernd.edlinger@hotmail.de>
1423 Jakub Jelinek <jakub@redhat.com>
1424
1425 PR target/89093
1426 * raise-gcc.c (TARGET_ATTRIBUTE): Define.
1427 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
1428 TARGET_ATTRIBUTE.
1429
d7ca95c0 14302019-04-07 Eric Botcazou <ebotcazou@adacore.com>
1431
1432 * libgnat/i-cexten.ads (CFloat_128): New type.
1433
26b21081 14342019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
1435
1436 PR ada/89583
1437 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
1438 Send_Socket): Fix the computation of structure lengths passed to
1439 low level routines.
1440 (Is_IPv6_Address): Fix the number of expected colons.
1441
2f6d557f 14422019-03-11 Martin Liska <mliska@suse.cz>
1443
d325ee67 1444 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string
1445 format message and fix GNU coding style.
2f6d557f 1446
c1ad6672 14472019-02-08 Eric Botcazou <ebotcazou@adacore.com>
1448
1449 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
1450 * gcc-interface/utils.c (convert): Do not pad when doing an unchecked
1451 conversion here. Use TREE_CONSTANT throughout the function.
1452 (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
1453 destination is a more aligned array type or a larger aggregate type,
1454 but not between original and packable versions of a type.
1455
62a6ebbd 14562019-02-08 Eric Botcazou <ebotcazou@adacore.com>
1457
1458 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
1459 operand with VOID_TYPE.
1460
da383d19 14612019-02-08 Eric Botcazou <ebotcazou@adacore.com>
1462
1463 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
1464 entities of a package renaming another one.
1465
09c123a0 14662019-02-08 Eric Botcazou <ebotcazou@adacore.com>
1467
1468 * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
1469 individual flag_unswitch_loops and flag_tree_loop_vectorize switches
1470 with test on global optimize switch.
1471 (Raise_Error_to_gnu): Likewise.
1472
a9dd7273 14732019-02-07 Eric Botcazou <ebotcazou@adacore.com>
1474
1475 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
1476
4836c4f1 14772019-02-06 Arnaud Charlet <charlet@adacore.com>
1478
1479 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
1480
6b56937c 14812019-01-27 Eric Botcazou <ebotcazou@adacore.com>
1482
1483 * repinfo.adb (List_Component_Layout): Remove superfluous space for
1484 zero-sized field.
1485 * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
1486 * gcc-interface/gigi.h (create_extra_subtype): Declare.
1487 * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
1488 (update_n_elem): New function.
1489 (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
1490 instead of doing it manually.
1491 <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the
1492 index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
1493 of the array to the maximum size.
1494 <E_Array_Subtype>: Create an extra subtype using the index type of the
1495 base array type for self-referential bounds. Use update_n_elem to
1496 compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the
1497 maximum size.
1498 (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
1499 * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
1500 the base type for an extra subtype.
1501 (gnat_type_max_size): Remove obsolete code.
1502 * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
1503 (can_be_lower_p): Deal with pathological types.
1504 * gcc-interface/utils.c (create_extra_subtype): New function.
1505 (create_field_decl): Minor tweak.
1506 (max_size) <tcc_reference>: Compute a better value by using the extra
1507 subtypes on the self-referential bounds.
1508 <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types.
1509 <tcc_expression>: Likewise.
1510 * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
1511 of the arrays upfront. Swap only if the second length is not constant.
1512 Use comparisons on the original bounds consistently for the null tests.
1513 (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
1514 (build_allocator): Minor tweak.
1515
ecb2c722 15162019-01-27 Eric Botcazou <ebotcazou@adacore.com>
1517
1518 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
1519 the same value for every dimension of a multidimensional array type.
1520
10f25579 15212019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1522
1523 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
1524 iteration scheme, if present, throughout the translation.
1525
aced6683 15262019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1527
1528 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
1529 DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
1530 by a call to memset if the LHS is a DECL.
1531
18b4b30e 15322019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1533
1534 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
1535 (Loop_Statement_to_gnu): Do not set it.
1536
6dce35b7 15372019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1538
1539 * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
1540 (Acc_gnat_to_gnu): Likewise.
1541 (Acc_Data_to_gnu): Likewise.
1542 (Acc_Var_to_gnu): Likewise.
1543 (Acc_Reduc_to_gnu): Likewise.
1544 (Acc_Size_List_to_gnu): Likewise.
1545 (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
1546 <Pragma_Acc_Data>): Likewise.
1547 (find_loop_for): Remove default value for parameters.
1548 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
1549 <N_Op_Eq>): ...this.
1550
f8cd11ee 15512019-01-26 Eric Botcazou <ebotcazou@adacore.com>
1552
1553 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
1554 the sign bit instead of on the sign of the value.
1555 <PLUS_EXPR>: Turn addition of negative constant into subtraction.
1556 <MULT_EXPR>: Add test for degenerate case.
1557 <BIT_AND_EXPR>: Simplify.
1558
9a3c51d9 15592019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
1560
1561 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
1562
07c11f2b 15632019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1564
1565 PR other/16615
07c11f2b 1566 * exp_ch11.adb: Change "can not" to "cannot".
1567 * sem_ch4.adb: Likewise.
1568
f4d3c071 15692019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1570
1571 PR other/16615
f4d3c071 1572 * exp_ch9.adb: Mechanically replace "can not" with "cannot".
1573 * libgnat/s-regpat.ads: Likewise.
1574 * par-ch4.adb: Likewise.
1575 * set_targ.adb: Likewise.
1576 * types.ads: Likewise.
1577
902071d1 15782019-01-08 Justin Squirek <squirek@adacore.com>
1579
1580 Revert:
902071d1 1581 2018-07-31 Justin Squirek <squirek@adacore.com>
1582
76fb0465 1583 * lib-writ.adb (Write_With_Lines): Modfiy the generation
1584 of dependencies within ali files so that source unit
1585 bodies are properly listed even if said bodies are
1586 missing. Perform legacy behavior in GNATprove mode.
1587 * lib-writ.ads: Modify documentation to reflect current
1588 behavior.
902071d1 1589
1590 and:
902071d1 1591 2018-09-26 Justin Squirek <squirek@adacore.com>
1592
76fb0465 1593 * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
1594 documentation and an extra conditional check for RCI
1595 units so that generated ali files will list the spec
1596 only instead of a body when a body is not found.
902071d1 1597
65a33d4a 15982019-01-04 Eric Botcazou <ebotcazou@adacore.com>
1599
1600 * gnatvsn.ads: Bump copyright year.
1601
3d8932fd 16022019-01-01 Jakub Jelinek <jakub@redhat.com>
8e8f6434 1603
fbd26352 1604 Update copyright years.
1605
277184bc 1606 * gnat_ugn.texi: Bump @copying's copyright year.
1607 * gnat_rm.texi: Likewise.
7dfbd804 1608\f
3d8932fd 1609Copyright (C) 2019 Free Software Foundation, Inc.
7dfbd804 1610
1611Copying and distribution of this file, with or without modification,
1612are permitted in any medium without royalty provided the copyright
1613notice and this notice are preserved.