]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/fortran/ChangeLog
PR c/68908
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
CommitLineData
19a468b8 12016-01-01 Paul Thomas <pault@gcc.gnu.org>
2
3 PR fortran/68864
4 * trans-array.c (evaluate_bound): If deferred, test that 'desc'
5 is an array descriptor before using gfc_conv_descriptor_xxx.
6
4136c181 72015-12-29 Andre Vehreschild <vehre@gcc.gnu.org>
8
9 PR fortran/69011
10 * trans-stmt.c (gfc_trans_allocate): Unwrap a NOP_EXPR to make sure
11 the actual type of the source=-expr is used when it is of class type.
12 Furthermore prevent an ICE.
13
3d2337cf 142015-12-18 Paul Thomas <pault@gcc.gnu.org>
15
16 PR fortran/68196
17 *expr.c (gfc_has_default_initializer): Prevent infinite recursion
18 through this function for procedure pointer components.
19 * trans-array.c (structure_alloc_comps): Ditto twice.
20
6c6058a8 212015-12-15 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
22
23 * resolve.c (resolve_critical): Committing symbols of
24 lock variables.
25
78d9d5fc 262014-12-14 Tobias Burnus <burnus@net-b.de>
27
28 PR fortran/68850
29 * gfortran.texi (Standards): Mention TS 18508.
30 (Fortran 2003 and 2008 Status): Add section on TS 18508 status.
31 * intrinsic.texi (EVENT_QUERY): Add.
32
38bb9313 332014-12-12 Tobias Burnus <burnus@net-b.de>
34
35 PR fortran/45859
36 * expr.c (gfc_is_simply_contiguous): Optionally permit array elements.
37 (gfc_check_pointer_assign): Update call.
38 * interface.c (compare_parameter): Ditto.
39 * trans-array.c (gfc_conv_array_parameter): Ditto.
40 * trans-intrinsic.c (gfc_conv_intrinsic_transfer,
41 conv_isocbinding_function): Ditto.
42 * gfortran.h (gfc_is_simply_contiguous): Update prototype.
43
d9102cbe 442014-12-12 Tobias Burnus <burnus@net-b.de>
45
46 PR fortran/68815
47 * check.c (gfc_check_reshape): Replace %<%d%> by %qd.
48 * matchexp.c (gfc_match_defined_op_name): Use %qc.
49 * symbol.c (gfc_add_new_implicit_range,
50 gfc_merge_new_implicit): Ditto.
51
24b1b3eb 522015-12-10 David Malcolm <dmalcolm@redhat.com>
53
54 * io.c (gfc_match_open): Fix indentation.
55
5118f067 562015-12-09 Tobias Burnus <burnus@net-b.de>
57 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
58
59 * trans.c (gfc_allocate_using_lib,gfc_deallocate_with_status):
60 Introducing __asm__ __volatile__ ("":::"memory")
61 after image control statements.
62 * trans-stmt.c (gfc_trans_sync, gfc_trans_event_post_wait,
63 gfc_trans_lock_unlock, gfc_trans_critical): Ditto.
64 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
65 conv_caf_send): Introducing __asm__ __volatile__ ("":::"memory")
66 after send, before get and around sendget.
67
2f7de6c1 682015-12-09 Tobias Burnus <burnus@net-b.de>
69
70 PR fortran/68815
71 * decl.c (gfc_verify_c_interop_param, variable_decl): Use
72 %< ... %> for quoting in diagnostics.
73 * io.c (check_format): Ditto.
74 * resolve.c (resolve_operator): Ditto.
75 * symbol.c (check_conflict): Ditto.
76 * trans-common.c (translate_common): Ditto.
77
d0f713f4 782015-12-07 David Malcolm <dmalcolm@redhat.com>
79
80 * error.c (gfc_format_decoder): Update for change of
81 text_info::set_range to text_info::set_location.
82
cc78610f 832015-12-05 Paul Thomas <pault@gcc.gnu.org>
84
85 PR fortran/68676
86 * decl.c (gfc_match_formal_arglist): Correct error, where 'sym'
87 was used instead of 'progname'.
88
bd47f0bc 892015-12-02 Tobias Burnus <burnus@net-b.de>
90 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
91
92 * check.c (gfc_check_event_query): New function.
93 * dump-parse-tree.c (show_code_node): Handle EXEC_EVENT_POST,
94 EXEC_EVENT_WAIT.
95 * expr.c (gfc_check_vardef_context): New check for event variables
96 definition.
97 * gfortran.h (gfc_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
98 (gfc_isym_id): GFC_ISYM_EVENT_QUERY.
99 (struct symbol_attribute): New field.
100 (gfc_exec_op): Add EXEC_EVENT_POST and EXEC_EVENT_WAIT.
101 * gfortran.texi: Document about new events functions and minor
102 changes.
103 * interface.c (compare_parameter): New check.
104 (gfc_procedure_use): New check for explicit procedure interface.
105 (add_subroutines): Add event_query.
106 * intrinsic.h (gfc_check_event_query,gfc_resolve_event_query):
107 New prototypes.
108 * iresolve.c (gfc_resolve_event_query): New function.
109 * iso-fortran-env.def (event_type): New type.
110 * match.c (event_statement,gfc_match_event_post,gfc_match_event_wait):
111 New functions.
112 (gfc_match_name): New event post and event wait.
113 * match.h (gfc_match_event_post,gfc_match_event_wait):
114 New prototypes.
115 * module.c (ab_attribute): Add AB_EVENT_COMP.
116 (attr_bits): Likewise.
117 (mio_symbol_attribute): Handle event_comp attribute.
118 * parse.c (decode_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
119 (next_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
120 (gfc_ascii_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
121 (parse_derived): Check for event_type components.
122 * resolve.c (resolve_allocate_expr): Check for event variable def.
123 (resolve_lock_unlock): Renamed to resolve_lock_unlock_event. It
124 includes logic for locks and events.
125 (gfc_resolve_code): Call it.
126 (gfc_resolve_symbol): New check for event variable to be a corray.
127 * st.c (gfc_free_statement): Handle new EXEC_EVENT_POST and
128 EXEC_EVENT_WAIT.
129 * trans-decl.c (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
130 gfor_fndecl_caf_event_query): New global variables.
131 (generate_coarray_sym_init): Checking for event_type.
132 (gfc_conv_procedure_call): Check for C bind attribute.
133 * trans-intrinsic.c (conv_intrinsic_event_query): New function.
134 (conv_intrinsic_move_alloc): Call it.
135 * trans-stmt.c (gfc_trans_lock_unlock): Passing address
136 of actual argument.
137 (gfc_trans_sync): Likewise.
138 (gfc_trans_event_post_wait): New function.
139 * trans-stmt.h (gfc_trans_event_post_wait): New prototype.
140 * trans-types.c (gfc_get_derived_type): Integer_kind as event_type.
141 * trans.c (gfc_allocate_using_lib): New argument and logic for events.
142 (gfc_allocate_allocatable): Passing new argument.
143 (trans_code): Handle EXEC_EVENT_POST, EXEC_EVENT_WAIT.
144 * trans.h (gfc_coarray_type): New elements.
145 (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
146 gfor_fndecl_caf_event_query): Declare them.
147
33ae5dfe 1482015-12-02 Cesar Philippidis <cesar@codesourcery.com>
149
150 PR fortran/63861
151 * openmp.c (gfc_match_omp_clauses): Allow subarrays for acc reductions.
152 (resolve_omp_clauses): Error on any acc reductions on arrays.
153
93ecb2f2 1542015-12-01 Cesar Philippidis <cesar@codesourcery.com>
155
156 * dump-parse-tree.c (show_omp_clauses): Handle optional num and static
157 arguments for the gang clause.
158 * gfortran.h (gfc_omp_clauses): Rename gang_expr as gang_num_expr.
159 Add gang_static_expr.
160 * openmp.c (gfc_free_omp_clauses): Update to free gang_num_expr and
161 gang_static_expr.
162 (match_oacc_clause_gang): Update to support both num and static in
163 the same clause.
164 (resolve_omp_clauses): Formatting. Also handle gang_num_expr and
165 gang_static_expr.
166 (resolve_oacc_params_in_parallel): New const char arg argument.
167 Use it to report more accurate gang, worker and vector clause errors.
168 (resolve_oacc_loop_blocks): Update calls to
169 resolve_oacc_params_in_parallel.
170 * trans-openmp.c (gfc_trans_omp_clauses): Update the gimplification of
171 the gang clause.
172 (gfc_trans_oacc_combined_directive): Make use of gang_num_expr and
173 gang_static_expr. Remove OMP_LIST_REDUCTION from construct_clauses.
174
7c1a9598 1752015-11-30 Cesar Philippidis <cesar@codesourcery.com>
176 James Norris <jnorris@codesourcery.com>
177 Nathan Sidwell <nathan@codesourcery.com>
178
179 * f95-lang.c (gfc_attribute_table): Add an "oacc function"
180 attribute.
181 * gfortran.h (symbol_attribute): Add an oacc_function bit-field.
182 (gfc_oacc_routine_name): New struct;
183 (gfc_get_oacc_routine_name): New macro.
184 (gfc_namespace): Add oacc_routine_clauses, oacc_routine_names and
185 oacc_routine fields.
186 (gfc_exec_op): Add EXEC_OACC_ROUTINE.
187 * openmp.c (OACC_ROUTINE_CLAUSES): New mask.
188 (gfc_oacc_routine_dims): New function.
189 (gfc_match_oacc_routine): Add support for named routines and the
190 gang, worker vector and seq clauses.
191 * parse.c (is_oacc): Add EXEC_OACC_ROUTINE.
192 * resolve.c (gfc_resolve_blocks): Likewise.
193 * st.c (gfc_free_statement): Likewise.
194 * trans-decl.c (add_attributes_to_decl): Attach an 'oacc function'
195 attribute and shape geometry for acc routine.
196
a23f57e2 1972015-11-30 Paul Thomas <pault@gcc.gnu.org>
198
199 PR fortran/68534
200 * decl.c (gfc_match_formal_arglist): Cope with zero formal args
201 either in interface declaration or in procedure declaration in
202 submodule.
203
c112228a 2042015-11-25 Steven G. Kargl <kargl@gcc.gnu.org>
205
206 PR fortran/68227
207 * trans-stmt.c (gfc_do_allocate): Convert gcc_assert argument into
208 into part of conditional statement.
209
54485efc 2102015-11-25 Ilmir Usmanov <me@ilmir.us>
211 Cesar Philippidis <cesar@codesourcery.com>
212
213 PR fortran/63858
214 * scanner.c (skip_oacc_attribute): Remove continue_flag parameter.
215 Rename as ...
216 (skip_free_oacc_sentinel): ... this.
217 (skip_omp_attribute): Remove continue_flag parameter. Rename as ...
218 (skip_free_omp_sentinel): ... this.
219 (skip_free_comments): Update to call skip_free_oacc_sentinel and
220 skip_free_omp_sentinel.
221 (skip_fixed_omp_sentinel): New function.
222 (skip_fixed_oacc_sentinel): New function.
223 (skip_fixed_comments): Fix mix of OpenACC and OpenMP sentinels in
224 continuation.
225
15bb708a 2262015-11-24 Steven G. Kargl <kargl@gcc.gnu.org>
227
228 PR fortran/68486
229 * simplify.c (gfc_simplify_cshift): Allow all EXPR_*.
230
415293cc 2312015-11-22 Steven G. Kargl <kargl@gcc.gnu.org>
232
233 PR fortran/68486
234 * simplify.c (gfc_simplify_cshift): Add EXPR_OP to mix.
235
e18d05ea 2362015-11-22 James Norris <jnorris@codesourcery.com>
237 Steven G. Kargl <kargl@gcc.gnu.org>
238
239 * openmp.c (match_oacc_clause_gang): Fix uninitialized variable.
240 (gfc_resolve_oacc_declare): Fix comparision.
241
01d728a4 2422015-11-22 James Norris <jnorris@codesourcery.com>
243 Cesar Philippidis <cesar@codesourcery.com>
244
245 * dump-parse-tree.c (show_namespace): Handle declares.
246 * gfortran.h (struct symbol_attribute): New fields.
247 (enum gfc_omp_map_map): Add OMP_MAP_DEVICE_RESIDENT and OMP_MAP_LINK.
248 (OMP_LIST_LINK): New enum.
249 (struct gfc_oacc_declare): New structure.
250 (gfc_get_oacc_declare): New definition.
251 (struct gfc_namespace): Change type.
252 (enum gfc_exec_op): Add EXEC_OACC_DECLARE.
253 (struct gfc_code): New field.
254 * module.c (enum ab_attribute): Add AB_OACC_DECLARE_CREATE,
255 AB_OACC_DECLARE_COPYIN, AB_OACC_DECLARE_DEVICEPTR,
256 AB_OACC_DECLARE_DEVICE_RESIDENT, AB_OACC_DECLARE_LINK
257 (attr_bits): Add new initializers.
258 (mio_symbol_attribute): Handle new atributes.
259 * openmp.c (gfc_free_oacc_declare_clauses): New function.
260 (gfc_match_oacc_clause_link: Likewise.
261 (OMP_CLAUSE_LINK): New definition.
262 (gfc_match_omp_clauses): Handle OMP_CLAUSE_LINK.
263 (OACC_DECLARE_CLAUSES): Add OMP_CLAUSE_LINK
264 (gfc_match_oacc_declare): Add checking and module handling.
265 (resolve_omp_clauses): Add array initializer.
266 (gfc_resolve_oacc_declare): Reimplement.
267 * parse.c (case_decl): Add ST_OACC_DECLARE.
268 (parse_spec): Remove handling.
269 (parse_progunit): Remove handling.
270 * parse.h (struct gfc_state_data): Change type.
271 * resolve.c (gfc_resolve_blocks): Handle EXEC_OACC_DECLARE.
272 * st.c (gfc_free_statement): Handle EXEC_OACC_DECLARE.
273 * symbol.c (check_conflict): Add conflict checks.
a23f57e2 274 (gfc_add_oacc_declare_create, gfc_add_oacc_declare_copyin,
01d728a4 275 gfc_add_oacc_declare_deviceptr, gfc_add_oacc_declare_device_resident):
276 New functions.
277 (gfc_copy_attr): Handle new symbols.
278 * trans-decl.c (add_clause, find_module_oacc_declare_clauses,
279 finish_oacc_declare): New functions.
280 (gfc_generate_function_code): Replace with call.
281 * trans-openmp.c (gfc_trans_oacc_declare): Reimplement.
282 (gfc_trans_oacc_directive): Handle EXEC_OACC_DECLARE.
283 * trans-stmt.c (gfc_trans_block_construct): Replace with call.
284 * trans-stmt.h (gfc_trans_oacc_declare): Remove argument.
285 * trans.c (trans_code): Handle EXEC_OACC_DECLARE.
286
253279a4 2872015-11-21 Steven G. Kargl <kargl@gcc.gnu.org>
288
289 * simplify.c (gfc_simplify_cshift): Work around bootstrap issues
a23f57e2 290 due to inappropriate warning options.
253279a4 291
ac0e38fe 2922015-11-21 Steven G. Kargl <kargl@gcc.gnu.org>
293
294 * simplify.c (gfc_simplify_cshift): Implement simplification of
295 CSHIFT for rank=1 arrays.
296 (gfc_simplify_spread): Remove a FIXME and add error condition.
297 * intrinsic.h: Prototype for gfc_simplify_cshift
298 * intrinsic.c (add_functions): Use gfc_simplify_cshift.
a23f57e2 299
f68e3b29 3002015-11-20 Steven G. Kargl <kargl@gcc.gnu.org>
fe9d2f5a 301
302 PR fortran/68237
303 * decl.c (gfc_match_submod_proc): Test the interface symbol
304 before accessing its attributes.
305
f68e3b29 3062015-11-20 Paul Thomas <pault@gcc.gnu.org>
fe9d2f5a 307
308 PR fortran/66762
309 (gfc_get_symbol_decl): Test for attr.used_in_submodule as well
310 as attr.use_assoc (twice).
311 (gfc_create_module_variable): Ditto.
312
864efe70 3132015-11-18 Steven G. Kargl <kargl@gcc.gnu.org>
314
315 PR fortran/59910
316 * primary.c (gfc_match_structure_constructor): Reduce a structure
317 constructor in a DATA statement.
318
5008247b 3192015-11-18 Steven G. Kargl <kargl@gcc.gnu.org>
320
321 PR fortran/43996
fe9d2f5a 322 * simplify.c (gfc_simplify_spread): Issue error for too large array
5008247b 323 constructor in a PARAMETER statement.
324
77511595 3252015-11-17 Steven G. Kargl <kargl@gcc.gnu.org>
326
327 * primary.c (gfc_match_structure_constructor): Fix whitespace.
328
30588018 3292015-11-17 Dominique d'Humieres <dominiq@lps.ens.fr>
330
331 PR fortran/65751
332 * expr.c (gfc_check_pointer_assign): Fix error message.
333
de545baf 3342015-11-16 Steven G. Kargl <kargl@gcc.gnu.org>
335
336 PR fortran/58027
337 PR fortran/60993
338 * expr.c (gfc_check_init_expr): Prevent a redundant check when a
339 __convert_* function was inserted into an array constructor.
340 (gfc_check_assign_symbol): Check for an initialization expression
341 when a __convert_* was inserted.
342
ee91fa6b 3432015-11-15 Paul Thomas <pault@gcc.gnu.org>
344
345 PR fortran/50221
346 PR fortran/68216
347 PR fortran/63932
348 PR fortran/66408
349 * trans_array.c (gfc_conv_scalarized_array_ref): Pass the
350 symbol decl for deferred character length array references.
351 * trans-stmt.c (gfc_trans_allocate): Keep the string lengths
352 to update deferred length character string lengths.
353 * trans-types.c (gfc_get_dtype_rank_type); Use the string
354 length of deferred character types for the dtype size.
355 * trans.c (gfc_build_array_ref): For references to deferred
356 character arrays, use the domain max value, if it is a variable
357 to set the 'span' and use pointer arithmetic for acces to the
358 element.
359 (trans_code): Set gfc_current_locus for diagnostic purposes.
360
361 PR fortran/67674
362 * trans-expr.c (gfc_conv_procedure_call): Do not fix deferred
363 string lengths of components.
364
365 PR fortran/49954
366 * resolve.c (deferred_op_assign): New function.
367 (gfc_resolve_code): Call it.
368 * trans-array.c (concat_str_length): New function.
369 (gfc_alloc_allocatable_for_assignment): Jump directly to alloc/
370 realloc blocks for deferred character length arrays because the
371 string length might change, even if the shape is the same. Call
372 concat_str_length to obtain the string length for concatenation
373 since it is needed to compute the lhs string length.
374 Set the descriptor dtype appropriately for the new string
375 length.
376 * trans-expr.c (gfc_trans_assignment_1): Use the rse string
377 length for all characters, other than deferred types. For
378 concatenation operators, push the rse.pre block to the inner
379 most loop so that the temporary pointer and the assignments
380 are properly placed.
381
b34eb330 3822015-11-14 Steven G. Kargl <kargl@gcc.gnu.org>
383
384 PR fortran/67803
385 * array.c (gfc_match_array_constructor): If array constructor included
386 a CHARACTER typespec, check array elements for compatible type.
387
c286c294 3882015-11-13 Steven G. Kargl <kargl@gccc.gnu.org>
389
390 PR fortran/68319
391 * decl.c (gfc_match_data, gfc_match_entry): Enforce F2008:C1206.
392 * io.c (gfc_match_format): Ditto.
393 * match.c (gfc_match_st_function): Ditto.
394
a96cefb2 3952015-11-13 David Malcolm <dmalcolm@redhat.com>
396
397 * error.c (gfc_warning): Pass line_table to rich_location ctor.
398 (gfc_warning_now_at): Likewise.
399 (gfc_warning_now): Likewise.
400 (gfc_error_now): Likewise.
401 (gfc_fatal_error): Likewise.
402 (gfc_error): Likewise.
403 (gfc_internal_error): Likewise.
404
c77c84dd 4052015-11-12 Steven G. Kargl <kargl@gcc.gnu.org>
406
407 PR fortran/68318
408 * decl.c (get_proc_name): Increment reference count for ENTRY.
409 While here, fix comment and use postfix ++ for consistency.
410
6e803544 4112015-11-11 Andrew MacLeod <amacleod@redhat.com>
412
413 * array.c: Remove unused header files.
414 * convert.c: Likewise.
415 * cpp.c: Likewise.
416 * decl.c: Likewise.
417 * f95-lang.c: Likewise.
418 * frontend-passes.c: Likewise.
419 * iresolve.c: Likewise.
420 * match.c: Likewise.
421 * module.c: Likewise.
422 * options.c: Likewise.
423 * parse.c: Likewise.
424 * target-memory.c: Likewise.
425 * trans-array.c: Likewise.
426 * trans-common.c: Likewise.
427 * trans-const.c: Likewise.
428 * trans-decl.c: Likewise.
429 * trans-expr.c: Likewise.
430 * trans-intrinsic.c: Likewise.
431 * trans-io.c: Likewise.
432 * trans-openmp.c: Likewise.
433 * trans-stmt.c: Likewise.
434 * trans-types.c: Likewise.
435 * trans.c: Likewise.
436
7161f884 4372015-11-11 Dominique d'Humieres <dominiq@lps.ens.fr>
438
439 PR fortran/67826
440 * openmp.c (gfc_omp_udr_find): Fix typo.
441
0c0c5469 4422015-11-08 Steven g. Kargl <kargl@gcc.gnu.org>
443
444 PR fortran/68053
445 * decl.c (add_init_expr_to_sym): Try to reduce initialization expression
446 before testing for a constant value.
447
68c5a370 4482015-11-08 Andre Vehreschild <vehre@gcc.gnu.org>
449
450 PR fortran/68218
451 * trans-array.c (gfc_array_init_size): Add gfc_evaluate_now() when
452 array spec in allocate is a function call.
453
b64400b6 4542015-11-08 Steven G. Kargl <kargl@gc.gnu.org>
455
456 PR fortran/68224
457 * array.c (match_array_element_spec): Check of invalid NULL().
458 While here, fix nearby comments.
459
2bd8d01a 4602015-11-08 Paul Thomas <pault@gcc.gnu.org>
461
462 PR fortran/68196
463 * class.c (has_finalizer_component): Prevent infinite recursion
464 through this function if the derived type and that of its
465 component are the same.
466 * trans-types.c (gfc_get_derived_type): Do the same for proc
467 pointers by ignoring the explicit interface for the component.
468
469 PR fortran/66465
470 * check.c (same_type_check): If either of the expressions is
471 BT_PROCEDURE, use the typespec from the symbol, rather than the
472 expression.
473
b093120a 4742015-11-07 Steven G. Kargl <kargl@gcc.gnu.org>
475
476 PR fortran/68153
477 * check.c (gfc_check_reshape): Improve check for valid SHAPE argument.
478
e2198b85 4792015-11-07 Steven G. Kargl <kargl@gcc.gnu.org>
480
481 PR fortran/68151
482 * match.c (match_case_selector): Check for invalid type.
483
f0479000 4842015-11-06 David Malcolm <dmalcolm@redhat.com>
485
486 * cpp.c (cb_cpp_error): Convert parameter from location_t to
487 rich_location *. Eliminate the "column_override" parameter.
488 * error.c (gfc_warning): Update for change in signature of
489 diagnostic_set_info.
490 (gfc_format_decoder): Update handling of %C/%L for changes
491 to struct text_info.
492 (gfc_diagnostic_starter): Use richloc when determining whether to
493 print one locus or two. When handling a location that will
494 involve a call to diagnostic_show_locus, only attempt to print the
495 locus for the primary location, and don't call into
496 diagnostic_print_caret_line.
497 (gfc_warning_now_at): Update for change in signature of
498 diagnostic_set_info.
499 (gfc_warning_now): Likewise.
500 (gfc_error_now): Likewise.
501 (gfc_fatal_error): Likewise.
502 (gfc_error): Likewise.
503 (gfc_internal_error): Likewise.
504
ef014f95 5052015-11-05 Cesar Philippidis <cesar@codesourcery.com>
506
507 * openmp.c (gfc_match_omp_clauses): Update support for the tile
508 and default clauses in OpenACC.
509 (gfc_match_oacc_update): Error when data clauses are supplied.
510 (oacc_compatible_clauses): Delete.
511 (resolve_omp_clauses): Give special care for OpenACC reductions.
512 Also update error reporting for the tile clause.
513 (resolve_oacc_loop_blocks): Update error reporting for the tile clause.
514 * trans-openmp.c (gfc_trans_omp_clauses): Update OMP_CLAUSE_SEQ. Add
515 OMP_CLAUSE_{AUTO,TILE} and add support the the gang static argument.
516 (gfc_trans_oacc_combined_directive): Update the list of clauses which
517 are split to acc loops.
518
9561765e 5192015-11-05 Jakub Jelinek <jakub@redhat.com>
520
521 * types.def (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
522 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
523
9e10bfb7 5242015-11-03 Thomas Schwinge <thomas@codesourcery.com>
525 Chung-Lin Tang <cltang@codesourcery.com>
526
527 * gfortran.h (gfc_statement): Add ST_OACC_ATOMIC,
528 ST_OACC_END_ATOMIC.
529 (gfc_exec_op): Add EXEC_OACC_ATOMIC.
530 * match.h (gfc_match_oacc_atomic): New prototype.
531 * openmp.c (gfc_match_omp_atomic, gfc_match_oacc_atomic): New
532 wrapper functions around...
533 (gfc_match_omp_oacc_atomic): ... this new function.
534 (oacc_code_to_statement, gfc_resolve_oacc_directive): Handle
535 EXEC_OACC_ATOMIC.
536 * parse.c (decode_oacc_directive): Handle "atomic", "end atomic".
537 (case_exec_markers): Add ST_OACC_ATOMIC.
538 (gfc_ascii_statement): Handle ST_OACC_ATOMIC, ST_OACC_END_ATOMIC.
539 (parse_omp_atomic): Rename to...
540 (parse_omp_oacc_atomic): ... this new function. Add omp_p formal
541 parameter. Adjust all users.
542 (parse_executable): Handle ST_OACC_ATOMIC.
543 (is_oacc): Handle EXEC_OACC_ATOMIC.
544 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
545 EXEC_OACC_ATOMIC.
546 * st.c (gfc_free_statement): Handle EXEC_OACC_ATOMIC.
547 * trans-openmp.c (gfc_trans_oacc_directive): Handle
548 EXEC_OACC_ATOMIC.
549 * trans.c (trans_code): Handle EXEC_OACC_ATOMIC.
550
5dfd4cda 5512015-10-31 Cesar Philippidis <cesar@codesourcery.com>
552
553 PR Bootstrap/68168
554
555 * openmp.c (resolve_omp_clauses): Pass &n->where when calling
556 gfc_error.
557
12c17674 5582015-10-30 Cesar Philippidis <cesar@codesourcery.com>
559
560 * gfortran.h (gfc_omp_namespace): Add locus where member.
561 * openmp.c (gfc_match_omp_variable_list): Set where for each list
562 item found.
563 (resolve_omp_clauses): Remove where argument and use the where
564 gfc_omp_namespace member when reporting errors.
565 (resolve_omp_do): Update call to resolve_omp_clauses.
566 (resolve_oacc_loop): Likewise.
567 (gfc_resolve_oacc_directive): Likewise.
568 (gfc_resolve_omp_directive): Likewise.
569 (gfc_resolve_omp_declare_simd): Likewise.
570
00fff882 5712015-10-15 Steven G. Kargl <kargl@gcc.gnu.org>
572
573 PR fortran/51993
574 * decl.c (gfc_set_constant_character_len): Convert gcc_assert into an
575 if-statement causing an early return leads to valid error message.
576
e06323c9 5772015-10-30 Steven G. Kargl <kargl@gcc.gnu.org>
578
579 PR fortran/36192
580 * interface.c (get_expr_storage_size): Check for INTEGER type before
581 calling gmp routines.
582
9123b22a 5832015-10-30 Steven G. Kargl <kargl@gcc.gnu.org>
584
585 PR fortran/68154
586 * decl.c (add_init_expr_to_sym): if the char length in the typespec
2bd8d01a 587 is NULL, check for and use a constructor.
e06323c9 588
9123b22a 5892015-10-30 Steven G. Kargl <kargl@gcc.gnu.org>
8371b2e9 590
591 PR fortran/68054
592 * decl.c (match_attr_spec): PROTECTED can only be a module.
593
758c9897 5942015-10-29 Steven G. Kargl <kargl@gcc.gnu.org>
595
596 PR fortran/67885
597 * trans-decl.c (generate_local_decl): Mark PARAMETER entities in
598 BLOCK construct.
599
4cba6f60 6002015-10-29 Andrew MacLeod <amacleod@redhat.com>
601
602 * array.c: Reorder #include's and remove duplicates.
603 * convert.c: Likewise.
604 * cpp.c: Likewise.
605 * decl.c: Likewise.
606 * f95-lang.c: Likewise.
607 * frontend-passes.c: Likewise.
608 * iresolve.c: Likewise.
609 * match.c: Likewise.
610 * module.c: Likewise.
611 * options.c: Likewise.
612 * parse.c: Likewise.
613 * resolve.c: Likewise.
614 * simplify.c: Likewise.
615 * target-memory.c: Likewise.
616 * trans-array.c: Likewise.
617 * trans-common.c: Likewise.
618 * trans-const.c: Likewise.
619 * trans-decl.c: Likewise.
620 * trans-expr.c: Likewise.
621 * trans-intrinsic.c: Likewise.
622 * trans-io.c: Likewise.
623 * trans-openmp.c: Likewise.
624 * trans-stmt.c: Likewise.
625 * trans-types.c: Likewise.
626 * trans.c: Likewise.
627
a7a322da 6282015-10-29 Richard Biener <rguenther@suse.de>
629
630 * f95-lang.c: Properly build variadic types for classification
631 and comparison builtins.
632
09382f4e 6332015-10-27 Thomas Schwinge <thomas@codesourcery.com>
634 James Norris <jnorris@codesourcery.com>
635
636 PR fortran/63865
637 * openmp.c (resolve_oacc_cache): Remove function.
638 (gfc_match_oacc_cache): Enable array sections.
639 (resolve_omp_clauses, gfc_resolve_oacc_directive): Change
640 accordingly.
641 * trans-openmp.c (gfc_trans_omp_clauses): Likewise.
642
47977082 6432015-10-27 Steven G. Kargl <kargl@gcc.gnu.org>
644
645 PR fortran/68108
646 * decl.c (char_len_param_value): Check for REF_ARRAY.
647
ef8ded22 6482015-10-26 Louis Krupp <louis.krupp@zoho.com>
649
650 PR fortran/66056
651 * fortran.h: Include namespace pointer in statement label
652 structure.
653 * symbol.c (gfc_get_st_label): Store pointer to namespace
654 that owns the statement label tree in each label.
655 (gfc_free_st_label): Use namespace owning statement label
656 tree when deleting statement label.
657 * io.c: Initialize format_asterisk with NULL namespace pointer.
658
b317b080 6592015-10-26 Steven G. Kargl <kargl@gcc.gnu.org>
660
661 PR fortran/36192
662 * array.c (gfc_ref_dimen_size): Check for BT_INTEGER before calling
663 mpz_set.
664
71eb79ed 6652015-10-26 Andre Vehreschild <vehre@gcc.gnu.org>
666
667 PR fortran/66927
668 * trans-array.c (evaluate_bound): For deferred length arrays get the
669 bounds directly from the descriptor, i.e., prevent using constant
670 zero lower bound from the gfc_conv_array_lbound () routine.
671 (gfc_conv_section_startstride): Hand deferred array status to
672 evaluate_bound ().
673 (gfc_conv_expr_descriptor): Same.
674
9883c975 6752015-01-25 Paul Thomas <pault@gcc.gnu.org>
676
677 PR fortran/67171
678 * trans-array.c (structure_alloc_comps): On deallocation of
679 class components, reset the vptr to the declared type vtable
680 and reset the _len field of unlimited polymorphic components.
681 *trans-expr.c (gfc_find_and_cut_at_last_class_ref): Bail out on
682 allocatable component references to the right of part reference
683 with non-zero rank and return NULL.
684 (gfc_reset_vptr): Simplify this function by using the function
685 gfc_get_vptr_from_expr. Return if the vptr is NULL_TREE.
686 (gfc_reset_len): If gfc_find_and_cut_at_last_class_ref returns
687 NULL return.
688 * trans-stmt.c (gfc_trans_allocate): Rely on the use of
689 gfc_trans_assignment if expr3 is a variable expression since
690 this deals correctly with array sections.
691
9ab3dd73 6922015-10-25 Andre Vehreschild <vehre@gcc.gnu.org>
693
694 PR fortran/66927
9883c975 695 PR fortran/67044
696 * trans-array.c (build_array_ref): Modified call to
9ab3dd73 697 gfc_get_class_array_ref to adhere to new interface.
698 (gfc_conv_expr_descriptor): For one-based arrays that
699 are filled by a loop starting at one the start index of the
700 source array has to be mangled into the offset.
701 * trans-expr.c (gfc_get_class_array_ref): When the tree to get
702 the _data component is present already, add a way to supply it.
703 (gfc_copy_class_to_class): Allow to copy to a derived type also.
704 * trans-stmt.c (gfc_trans_allocate): Do not conv_expr_descriptor
705 for functions returning a class or derived object. Get the
706 reference instead.
707 * trans.h: Interface change of gfc_get_class_array_ref.
708
9627a89d 7092015-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
710
711 PR fortran/68055
712 * decl.c (gfc_match_decl_type_spec): Check for valid kind in old-style
713 declarations.
714
9c5a8acc 7152015-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
716
717 PR fortran/67805
718 * array.c (gfc_match_array_constructor): Check for error from type
719 spec matching.
720 * decl.c (char_len_param_value): Check for valid of charlen parameter.
721 Reap dead code dating to 2008.
722 match.c (gfc_match_type_spec): Special case the keyword use in REAL.
723
1375e422 7242015-10-23 Mikhail Maltsev <maltsevm@gmail.com>
725
726 * trans-common.c (create_common): Adjust to use flag_checking.
727 * trans.c (gfc_add_modify_loc): Use gcc_checking_assert.
728
8204c077 7292015-10-21 Martin Sebor <msebor@redhat.com>
730
731 PR driver/68043
732 * lang.opt: End each sentence that describes an option with a period.
733
c782e805 7342015-10-21 Steven G. Kargl <kargl@gcc.gnu.org>
735
736 PR fortran/67939
737 * data.c (create_character_initializer): Deal with zero length string.
738
e58a0f0d 7392015-10-19 Steven G. Kargl <kargl@gcc.gnu.org>
740
741 * resolve.c (gfc_verify_binding_labels): Check for NULL pointer.
742
f2b5fae9 7432015-10-19 Steven G. Kargl <kargl@gcc.gnu.org>
744
745 PR fortran/68019
746 * decl.c (add_init_expr_to_sym): Remove an assert() to allow an error
747 message to be issued.
748
e8c36e7e 7492015-10-18 Mikael Morin <mikael@gcc.gnu.org>
750
751 PR fortran/67758
752 * gfortran.h (gfc_symbol): Expand comment.
753 * match.c (gfc_match_common): Delay adding the symbol to
754 the common_block after the gfc_add_in_common call.
755 * symbol.c (gfc_free_symbol): Move common block memory handling...
756 (gfc_set_symbol_common_block): ... here as a new function.
757 (restore_old_symbol): Restore common block fields.
758 (gfc_restore_last_undo_checkpoint):
759 Check the common_block pointer instead of the in_common attribute.
760 When a symbol has been removed from the common block linked list,
761 clear its common_next pointer.
762
6f29994c 7632015-10-18 Paul Thomas <pault@gcc.gnu.org>
764
765 PR fortran/67177
766 PR fortran/67977
767 * primary.c (match_substring): Add an argument 'deferred' to
768 flag that a substring reference with null start and end should
769 not be optimized away for deferred length strings.
770 (match_string_constant, gfc_match_rvalue): Set the argument.
771 * trans-expr.c (alloc_scalar_allocatable_for_assignment): If
772 there is a substring reference return.
773 * trans-intrinsic.c (conv_intrinsic_move_alloc): For deferred
774 characters, assign the 'from' string length to the 'to' string
775 length. If the 'from' expression is deferred, set its string
776 length to zero. If the 'to' expression has allocatable
777 components, deallocate them.
778
34bf7ba5 7792015-10-17 Steven G. Kargl <kargl@gcc.gnu.org>
780
781 PR fortran/67987
782 * decl.c (char_len_param_value): Unwrap unlong line. If LEN < 0,
6f29994c 783 force it to zero per the Fortran 90, 95, 2003, and 2008 Standards.
34bf7ba5 784 * resolve.c (gfc_resolve_substring_charlen): Unwrap unlong line.
785 If 'start' is larger than 'end', length of substring is negative,
786 so explicitly set it to zero.
787 (resolve_charlen): Remove -Wsurprising warning. Update comment to
788 reflect that the text is from the F2008 standard.
789
0e49e441 7902015-10-16 Richard Biener <rguenther@suse.de>
791
792 * trans-intrinsic.c (gfc_conv_intrinsic_lib_function): Adjust
793 calls to build_addr.
794 (gfc_conv_intrinsic_mod): Likewise.
795 (gfc_conv_intrinsic_ctime): Likewise.
796 (gfc_conv_intrinsic_fdate): Likewise.
797 (gfc_conv_intrinsic_ttynam): Likewise.
798 (gfc_conv_intrinsic_minmax_char): Likewise.
799 (gfc_conv_intrinsic_index_scan_verify): Likewise.
800 (gfc_conv_intrinsic_trim): Likewise.
801
79e27a6c 8022015-10-14 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
803
804 * parse.c (decode_statement): Initialize M to MATCH_NO.
805
43895be5 8062015-10-13 Jakub Jelinek <jakub@redhat.com>
807 Ilya Verbin <ilya.verbin@intel.com>
808
809 * f95-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
810 DEF_FUNCTION_TYPE_11, DEF_FUNCTION_TYPE_VAR_1): Define.
811 * trans-openmp.c (gfc_trans_omp_clauses): Set
812 OMP_CLAUSE_IF_MODIFIER to ERROR_MARK, OMP_CLAUSE_ORDERED_EXPR
813 to NULL.
814 (gfc_trans_omp_critical): Adjust for addition of clauses.
815 (gfc_trans_omp_ordered): Likewise.
816 * types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
817 BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
818 BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
819 BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
820 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
821 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
822 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
823 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
824 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
825 BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
826 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
827 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
828 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
829
10c26e1e 8302015-10-07 Andre Vehreschild <vehre@gcc.gnu.org>
831
832 PR fortran/65889
833 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle pointer to and
834 on stack class objects as sizeof parameter.
835
0ac42026 8362015-10-06 Louis Krupp <louis.krupp@zoho.com>
837 PR fortran/65766
838 * resolve.c (gfc_resolve_substring_charlen): For derived type,
839 use typespec of string component when resolving substring length.
840
f6392e58 8412015-10-04 Mikael Morin <mikael@gcc.gnu.org>
842
843 * match.c (gfc_match_common): Remove dead variable old_blank_common.
844
d2f74bc8 8452015-10-04 Mikael Morin <mikael@gcc.gnu.org>
846
847 PR fortran/67758
848 * match.c (gfc_match_common): Delay the common_block pointer
849 assignment after error checking.
850 Delay the call to gfc_add_in_common attribute after the handling
851 of array specs.
852 * resolve.c (resolve_common_vars): Call gfc_add_in_common again.
853
eca581b5 8542015-10-04 Mikael Morin <mikael@gcc.gnu.org>
855
856 * resolve.c (resolve_common_vars): Move access to the common
857 block's head symbol inside the function.
858 (resolve_common_blocks, resolve_types): Update callers.
859
e94e23b8 8602015-10-01 Louis Krupp <louis.krupp@zoho.com>
861
862 PR fortran/62242
863 PR fortran/52332
864 * trans-array.c
865 (store_backend_decl): Create new gfc_charlen instance if requested
866 (get_array_ctor_all_strlen): Call store_backend_decl requesting
867 new gfc_charlen
868 (trans_array_constructor): Call store_backend_decl requesting
869 new gfc_charlen if get_array_ctor_strlen was called
870 (gfc_add_loop_ss_code): Don't try to convert non-constant length
871
f8e2139b 8722015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
873
874 PR fortran.67802
875 * decl.c (add_init_expr_to_sym): Numeric constant for character
876 length must be an INTEGER.
877
c06a57e4 8782015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
879
880 PR fortran/66979
881 * io.c (gfc_resolve_filepos): Check for a UNIT number. Add a nearby
882 missing 'return false'.
883
80ae9b8a 8842015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
885
886 PR fortran/67616
887 * primary.c (gfc_match_structure_constructor): Use a possibly
888 host-associated symtree to prevent ICE.
889
97323566 8902015-09-28 Paul Thomas <pault@gcc.gnu.org>
891
892 PR fortran/40054
893 PR fortran/63921
894 * decl.c (get_proc_name): Return if statement function is
895 found.
896 * expr.c (gfc_check_vardef_context): Add error return for
897 derived type expression lacking the derived type itself.
898 * match.c (gfc_match_ptr_fcn_assign): New function.
899 * match.h : Add prototype for gfc_match_ptr_fcn_assign.
900 * parse.c : Add static flag 'in_specification_block'.
901 (decode_statement): If in specification block match a statement
902 function, then, if no error arising from statement function
903 matching, try to match pointer function assignment.
904 (parse_interface): Set 'in_specification_block' on exiting from
905 parse_spec.
906 (parse_spec): Set and then reset 'in_specification_block'.
907 (gfc_parse_file): Set 'in_specification_block'.
908 * resolve.c (get_temp_from_expr): Extend to include functions
909 and array constructors as rvalues..
910 (resolve_ptr_fcn_assign): New function.
911 (gfc_resolve_code): Call it on finding a pointer function as an
912 lvalue. If valid or on error, go back to start of resolve_code.
913 * symbol.c (gfc_add_procedure): Add a sentence to the error to
914 flag up the ambiguity between a statement function and pointer
915 function assignment at the end of the specification block.
916
e561d5e1 9172015-09-28 Nathan Sidwell <nathan@codesourcery.com>
918
919 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
920 (DEF_FUNCTION_TYPE_VAR_11): Delete.
921 * types.def (DEF_FUNCTION_TYPE_VAR_6): New.
922 (DEF_FUNCTION_TYPE_VAR_11): Delete.
923
89bf82d6 9242015-09-26 Mikael Morin <mikael@gcc.gnu.org>
925
926 PR fortran/67721
927 * trans-expr.c (gfc_trans_assignment_1): Remove the non-constantness
928 condition guarding deep copy.
929
ffb03431 9302013-09-26 Paul Thomas <pault@gcc.gnu.org>
931
932 PR fortran/67567
933 * resolve.c (resolve_fl_procedure): For module procedures, take
934 the parent module name and the submodule name from the name of
935 the namespace.
936
08a4b795 9372015-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
938
939 PR fortran/67614
940 * resolve.c (gfc_resolve_code): Prevent ICE for invalid EXPR_NULL.
941
8ec43c08 9422015-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
943
944 PR fortran/67525
945 * parse.c (match_deferred_characteristics): Remove an assert, which
946 allows an invalid SELECT TYPE selector to be detected.
947
a6871bda 9482015-09-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
949
950 PR pretty-print/67567
951 * resolve.c (resolve_fl_procedure): Work-around when iface->module
952 == NULL.
953
54f3d072 9542015-09-21 Steven G. Kargl <kargl@gcc.gnu.org>
955
956 * resolve.c (nonscalar_typebound_assign): Fix typos in comment.
ffb03431 957
465f5e88 9582015-09-21 Steven G. Kargl <kargl@gcc.gnu.org>
959
960 PR fortran/67615
ffb03431 961 * resolve.c (gfc_resolve_code): Check for scalar expression in
465f5e88 962 arithmetic-if.
963
32c2c7e7 9642015-09-17 Paul Thomas <pault@gcc.gnu.org>
965
966 PR fortran/52846
967 PR fortran/67588
968 * module.c : Add static no_module_procedures.
969 (gfc_match_submodule): Correct memory leakage caused during the
970 freeing of use_lists.
971 (mio_symbol_attribute): Reset above if module procedure is
972 encountered.
973 (gfc_dump_module): Set above and exit without writing smod file
974 if it reset.
975 * gfortran.texi : Add section on submodule support.
976
be0fbcfb 9772015-09-10 Steven G. Kargl <kargl@gcc.gnu.org>
978
979 PR fortran/67526
980 * expr.c (gfc_check_init_expr): Do not dereference a NULL pointer.
981
8cff2296 9822015-09-10 Paul Thomas <pault@gcc.gnu.org>
983
984 PR fortran/66993
985 * module.c (read_module): If a symtree exists and the symbol has
986 been associated in a submodule from a parent (sub)module, attach
987 the symbol to a 'unique symtree' and the new symbol to the
988 existing symtree.
989
3e6bab83 9902015-09-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
991
992 * intrinsic.h (gfc_simplify_mvbits): Remove.
993 * simplify.c (gfc_simplify_mvbits): Remove.
994 * intrinsic.c (add_subroutines): Remove reference to
995 gfc_simplify_mvbits.
996
bd956670 9972015-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
998
999 PR fortran/67429
1000 * error.c (gfc_clear_pp_buffer): Reset last_location, otherwise
1001 caret lines might be skipped when actually giving a diagnostic.
1002
130d2faa 10032015-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1004
1005 PR fortran/54833
1006 * trans.c (gfc_call_free): Don't check if pointer is NULL.
1007 * trans.h (gfc_call_free): Adjust comment.
1008
1d5e34dd 10092015-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1010
1011 * trans.c (gfc_call_malloc, gfc_allocate_using_malloc,
1012 gfc_allocate_using_lib, gfc_allocate_allocatable,
1013 gfc_call_realloc): Simplify code.
1014 * trans-array.c (gfc_trans_allocate_array_storage,
1015 gfc_trans_auto_array_allocation, gfc_conv_array_parameter): Do not
1016 convert gfc_call_free() argument.
1017 * trans-expr.c (gfc_conv_string_tmp, gfc_conv_procedure_call,
1018 fcncall_realloc_result): Likewise.
1019 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Likewise.
1020
c338399c 10212015-08-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1022
1023 PR fortran/53668
1024 * intrinsic.c (add_functions, add_subroutines): Remove resolution
1025 functions for FREE and MALLOC.
1026 * intrinsic.h (gfc_resolve_malloc, gfc_resolve_free): Remove.
1027 * iresolve.c (gfc_resolve_malloc, gfc_resolve_free): Remove.
1028 * trans-intrinsic.c (conv_intrinsic_free,
1029 gfc_conv_intrinsic_malloc): New functions.
1030
8097c1a6 10312015-08-24 Louis Krupp <louis.krupp@zoho.com>
1032
1033 PR fortran/62536
1034 PR fortran/66175
1035 * decl.c (gfc_match_end): Clean up nested BLOCKs.
1036 * parse.c (parse_block_construct): Deal gracefully with cleaned-up
1037 BLOCKs.
1038
4e7d6e89 10392015-08-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1040
1041 PR libfortran/54572
1042 * config-lang.in: Add libbacktrace to target_libs.
1043
6dc50383 10442015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
1045
1046 * dependency.c, dependency.h, gfortran.h, io.c, module.c,
bd9ed111 1047 parse.h, resolve.c, trans-types.h, trans.h: remove useless typedefs.
6dc50383 1048
6de19d80 10492015-08-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1050
1051 PR fortran/54656
1052 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Add decl
1053 for quadruple precision BUILT_IN_SQRT.
1054
d351aaf5 10552015-08-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1056
1057 * trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type
1058 generic BUILT_IN_SIGNBIT.
1059 (conv_intrinsic_ieee_copy_sign): Likewise.
1060 * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_ISINF,
1061 BUILT_IN_ISINF_SIGN, BUILT_IN_SIGNBIT, BUILT_IN_ISLESS,
1062 BUILT_IN_ISLESSGREATER, BUILT_IN_ISGREATER. Remove non-type generic
1063 variants of BUILT_IN_SIGNBIT.
1064 * mathbuiltins.def: Remove SIGNBIT.
1065
9be7a73d 10662015-08-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1067
1068 PR fortran/41387
1069 * gfortran.texi: New section "File operations on symbolic links".
1070
d961899a 10712015-08-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1072
1073 PR fortran/67059
1074 * gfortranspec.c (lang_specific_driver): Adjust --version output.
1075
9f24c029 10762015-08-08 Bud Davis <jmdavis@link.com>
1077 Mikael Morin <mikael@gcc.gnu.org>
1078
1079 PR fortran/59746
1080 * symbol.c (gfc_restore_last_undo_checkpoint): Delete a common block
1081 symbol if it was put in the list.
1082
9f1638d5 10832015-08-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1084
1085 PR fortran/64104
1086 * expr.c (gfc_check_init_expr): Allow some IEEE functions in
1087 constant expressions.
1088 (external_spec_function): Allow some IEEE functions in specification
1089 expressions.
1090 * simplify.c (gfc_simplify_ieee_selected_real_kind): Remove.
1091 (simplify_ieee_selected_real_kind, simplify_ieee_support,
1092 matches_ieee_function_name, gfc_simplify_ieee_functions): New
1093 functions.
1094 * gfortran.h (gfc_simplify_ieee_selected_real_kind): Remove
1095 prototype.
1096 (gfc_simplify_ieee_functions): Add prototype.
1097
0e647125 10982015-08-06 Mikael Morin <mikael@gcc.gnu.org>
1099
1100 * trans.h (gfc_trans_scalar_assign): Remove fourth argument.
1101 * trans-expr.c (gfc_trans_scalar_assign): Merge fourth into sixth
1102 argument.
1103 (gfc_conv_subref_array_arg, gfc_trans_subarray_assign,
1104 gfc_trans_subcomponent_assign, gfc_trans_assignment_1): Update callers.
1105 * trans-array.c (gfc_conv_expr_descriptor): Ditto.
1106 * trans-stmt.c (forall_make_variable_temp,
1107 generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
1108 gfc_trans_where_assign, gfc_trans_where_3): Ditto.
1109
c8ddfd5d 11102015-08-05 Paul Thomas <pault@gcc.gnu.org>
1111
1112 PR fortran/52846
1113 * module.c (check_access): Return true if new static flag
1114 'dump_smod' is true..
1115 (gfc_dump_module): Rename original 'dump_module' and call from
1116 new version. Use 'dump_smod' rather than the stack state to
1117 determine if a submodule is being processed. The new version of
1118 this procedure sets 'dump_smod' depending on the stack state and
1119 then writes both the mod and smod files if a module is being
1120 processed or just the smod for a submodule.
1121 (gfc_use_module): Eliminate the check for module_name and
1122 submodule_name being the same.
1123 * trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array,
1124 get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use
1125 the conditions to set DECL_VISIBILITY as hidden and to set as
1126 true DECL_VISIBILITY_SPECIFIED.
1127
c53bd1d9 11282015-08-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1129
1130 PR fortran/64022
1131 * simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
1132 support to all real kinds.
1133
ddfc9c60 11342015-08-03 Steven G. Kargl <kargl@gcc.gnu.org>
1135
1136 PR fortran/66942
1137 * trans-expr.c (gfc_conv_procedure_call): Avoid NULL pointer reference
1138
c63a11d6 11392015-08-03 Mikael Morin <mikael@gcc.gnu.org>
1140
1141 PR fortran/64921
1142 * class.c (generate_finalization_wrapper): Set finalization
1143 procedure symbol's always_explicit attribute.
1144
814b1ca2 11452015-08-01 Paul Thomas <pault@gcc.gnu.org>
1146
1147 PR fortran/67091
1148 * trans-intrinsic.c (gfc_conv_associated): Add the pre and post
1149 blocks for the second argument to se.
1150
1ed4ddb2 11512015-07-27 Thomas Schwinge <thomas@codesourcery.com>
1152
1153 * parse.c (parse_oacc_structured_block): Fix logic error.
1154 Reported by Mikael Morin <mikael.morin@sfr.fr>.
1155
69dcb06f 11562015-07-24 Mikael Morin <mikael@gcc.gnu.org>
1157
1158 PR fortran/64986
1159 * trans-expr.c (gfc_trans_assignment_1): Put component deallocation
1160 code at the beginning of the block.
1161
c70b8740 11622015-07-22 Mikael Morin <mikael@gcc.gnu.org>
1163
1164 PR fortran/61831
1165 PR fortran/66929
1166 * trans-array.c (gfc_get_proc_ifc_for_expr): Use esym as procedure
1167 symbol if available.
1168
df8f279f 11692015-07-17 Paul Thomas <pault@gcc.gnu.org>
1170
1171 PR fortran/52846
1172 * decl.c (gfc_match_end): Pick out declared submodule name from
1173 the composite identifier.
1174 * gfortran.h : Add 'submodule_name' to gfc_use_list structure.
1175 * module.c (gfc_match_submodule): Define submodule_name and add
1176 static 'submodule_name'.
1177 (gfc_match_submodule): Build up submodule filenames, using '@'
1178 as a delimiter. Store the output filename in 'submodule_name'.
1179 Similarly, the submodule identifier is built using '.' as an
1180 identifier.
1181 (gfc_dump_module): If current state is COMP_SUBMODULE, write
1182 to file 'submodule_name', using SUBMODULE_EXTENSION.
1183 (gfc_use_module): Similarly, use the 'submodule_name' field in
1184 the gfc_use_list structure and SUBMODULE_EXTENSION to read the
1185 implicitly used submodule files.
1186
af80543e 11872015-07-17 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
1188
1189 * trans-intrinsic.c (conv_co_collective): Remove redundant address
1190 operator in the generated code.
1191
635e1b2f 11922015-07-17 Andre Vehreschild <vehre@gcc.gnu.org>
1193
1194 PR fortran/66035
1195 * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment):
1196 Compute the size to allocate for class and derived type objects
1197 correclty.
1198 (gfc_trans_subcomponent_assign): Only allocate memory for a
1199 component when the object to assign is not an allocatable class
1200 object (the memory is already present for allocatable class objects).
1201 Furthermore use copy_class_to_class for assigning the rhs to the
1202 component (may happen for dummy class objects on the rhs).
1203
ac189a3f 12042015-07-17 Mikael Morin <mikael@gcc.gnu.org>
1205 Dominique d'Humieres <dominiq@lps.ens.fr>
1206
1207 PR fortran/61831
1208 * trans-array.c (gfc_conv_array_parameter): Guard allocatable
1209 component deallocation code generation with descriptorless
1210 calling convention flag.
1211 * trans-expr.c (gfc_conv_expr_reference): Remove allocatable
1212 component deallocation code generation from revision 212329.
1213 (expr_may_alias_variables): New function.
1214 (gfc_conv_procedure_call): New boolean elemental_proc to factor
1215 check for procedure elemental-ness. Rename boolean f to nodesc_arg
1216 and declare it in the outer scope. Use expr_may_alias_variables,
1217 elemental_proc and nodesc_arg to decide whether generate allocatable
1218 component deallocation code.
1219 (gfc_trans_subarray_assign): Set deep copy flag.
1220
f45f5f63 12212015-07-16 Steven G. Kargl <kargl@gcc.gnu.org>
1222
1223 PR fortran/66724
1224 PR fortran/66724
1225 * io.c (is_char_type): Call gfc_resolve_expr ().
1226 (match_open_element, match_dt_element, match_inquire_element): Fix
1227 ASYNCHRONOUS case.
1228
e51764ad 12292015-07-15 Andrew MacLeod <amacleod@redhat.com>
1230
1231 * trans-types.c: Remove multiline #include comment.
1232
fc6c2ed9 12332015-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
1234
1235 * simplify.c (gfc_simplify_floor): Set precision of temporary to
1236 that of arg.
1237
43ea3848 12382015-07-13 Andre Vehreschild <vehre@gcc.gnu.org>
1239
1240 PR fortran/64589
1241 * class.c (find_intrinsic_vtab): Put/Search vtabs for intrinsic
1242 types in the top-level namespace.
1243
47ae02b7 12442015-07-12 Aldy Hernandez <aldyh@redhat.com>
1245
1246 * trans-stmt.c: Fix double word typos.
1247
1eacc14a 12482015-07-09 Andrew MacLeod <amacleod@redhat.com>
1249
1250 * arith.c: Adjust includes for flags.h changes.
1251 * array.c: Likewise.
1252 * check.c: Likewise.
1253 * decl.c: Likewise.
1254 * error.c: Likewise.
1255 * expr.c: Likewise.
1256 * frontend-passes.c: Likewise.
1257 * interface.c: Likewise.
1258 * intrinsic.c: Likewise.
1259 * io.c: Likewise.
1260 * match.c: Likewise.
1261 * openmp.c: Likewise.
1262 * parse.c: Likewise.
1263 * primary.c: Likewise.
1264 * resolve.c: Likewise.
1265 * scanner.c: Likewise.
1266 * simplify.c: Likewise.
1267 * symbol.c: Likewise.
1268 * target-memory.c: Likewise.
1269
9ef16211 12702015-07-07 Andrew MacLeod <amacleod@redhat.com>
1271
1272 * convert.c: Adjust includes.
1273 * cpp.c: Likewise.
1274 * decl.c: Likewise.
1275 * f95-lang.c: Likewise.
1276 * iresolve.c: Likewise.
1277 * match.c: Likewise.
1278 * module.c: Likewise.
1279 * options.c: Likewise.
1280 * target-memory.c: Likewise.
1281 * trans-array.c: Likewise.
1282 * trans-common.c: Likewise.
1283 * trans-const.c: Likewise.
1284 * trans-decl.c: Likewise.
1285 * trans-expr.c: Likewise.
1286 * trans-intrinsic.c: Likewise.
1287 * trans-io.c: Likewise.
1288 * trans-openmp.c: Likewise.
1289 * trans-stmt.c: Likewise.
1290 * trans-types.c: Likewise.
1291 * trans.c: Likewise.
1292
2331e65c 12932015-07-07 Andre Vehreschild <vehre@gmx.de>
1294
1295 PR fortran/66578
1296 * trans-array.c (gfc_conv_expr_descriptor): Ensure array descriptor
1297 is one-based for non-full array refs. Correct the offset when a
1298 rank_remap occurs.
1299
ffe67beb 13002015-07-06 Steven G. Kargl <kargl@gcc.gnu.org>
1301
1302 * io.c (check_char_variable): New function.
1303 (match_open_element, match_close_element, match_file_element,
1304 match_dt_element, match_inquire_element, match_wait_element): Use it.
1305
1caa6ab1 13062015-07-06 Andre Vehreschild <vehre@gmx.de>
1307
1308 PR fortran/58586
1309 * resolve.c (resolve_symbol): Non-private functions in modules
1310 with allocatable or pointer components are marked referenced
1311 now. Furthermore is the default init especially for those
1312 components now done in gfc_conf_procedure_call preventing
1313 duplicate code.
1314 * trans-decl.c (gfc_generate_function_code): Generate a fake
1315 result decl for functions returning an object with allocatable
1316 components and initialize them.
1317 * trans-expr.c (gfc_conv_procedure_call): For value typed trees
1318 use the tree without indirect ref. And for non-decl trees
1319 add a temporary variable to prevent evaluating the tree
1320 multiple times (prevent multiple function evaluations).
1321 * trans.h: Made gfc_trans_structure_assign () protoype
1322 available, which is now needed by trans-decl.c:gfc_generate_
1323 function_code(), too.
1324
a5baeed0 13252015-07-04 Steven G. Kargl <kargl@gcc.gnu.org>
1326
1327 PR fortran/66725
1328 * io.c (is_char_type): New function to test for BT_CHARACTER
1329 (gfc_match_open, gfc_match_close, match_dt_element): Use it.
1330
e1c33af9 13312015-07-02 David Edelsohn <dje.gcc@gmail.com>
1332
1333 * trans-common.c: Include <map> after system.h.
1334
4b8eb6ca 13352015-07-02 Paul Thomas <pault@gcc.gnu.org>
1336
1337 PR fortran/52846
1338 * decl.c (get_proc_name): Make a partially populated interface
1339 symbol to carry the characteristics of a module procedure and
1340 its result.
1341 (variable_decl): Declarations of dummies or results in the
1342 abreviated form of module procedure is an error.
1343 (gfc_match_import): IMPORT is not permitted in the interface
1344 declaration of module procedures.
1345 (match_attr_spec): Submodule variables have implicit save
1346 attribute for F2008 onwards.
1347 (gfc_match_prefix): Add 'module' as the a prefix and set the
1348 module_procedure attribute.
1349 (gfc_match_formal_arglist): For a module procedure keep the
1350 interface formal_arglist from the interface, match new the
1351 formal arguments and then compare the number and names of each.
1352 (gfc_match_procedure): Add case COMP_SUBMODULE.
1353 (gfc_match_function_decl, gfc_match_subroutine_decl): Set the
1354 module_procedure attribute.
1355 (gfc_match_entry, gfc_match_end): Add case COMP_SUBMODULE. If
1356 attr abr_modproc_decl is set, switch the message accordingly
1357 for subroutines and functions.
1358 (gfc_match_submod_proc): New function to match the abbreviated
1359 style of submodule declaration.
1360 * gfortran.h : Add ST_SUBMODULE and ST_END_SUBMODULE. Add the
1361 attribute bits 'used_in_submodule' and 'module_procedure'. Add
1362 the bit field 'abr_modproc_decl' to gfc_symbol. Add prototypes
1363 for 'gfc_copy_dummy_sym', 'gfc_check_dummy_characteristics' and
1364 'gfc_check_result_characteristics'.
1365 * interface.c : Add the prefix 'gfc_' to the names of functions
1366 'check_dummy(result)_characteristics' and all their references.
1367 * match.h : Add prototype for 'gfc_match_submod_proc' and
1368 'gfc_match_submodule'.
1369 (check_sym_interfaces): A module procedure is not an error in
1370 a module procedure statment in a generic interface.
1371 * module.c (gfc_match_submodule): New function. Add handling
1372 for the 'module_procedure' attribute bit.
1373 (gfc_use_module): Make sure that a submodule cannot use itself.
1374 * parse.c (decode_statement): Set attr has_'import_set' for
1375 the interface declaration of module procedures. Handle a match
1376 occurring in 'gfc_match_submod_proc' and a match for
1377 'submodule'.
1378 (gfc_enclosing_unit): Include the state COMP_SUBMODULE.
1379 (gfc_ascii_statement): Add END SUBMODULE.
1380 (accept_statement): Add ST_SUBMODULE.
1381 (parse_spec): Disallow statement functions in a submodule
1382 specification part.
1383 (parse_contained): Add ST_END_SUBMODULE and COMP_SUBMODULE
1384 twice each.
1385 (get_modproc_result): Copy the result symbol of the interface.
1386 (parse_progunit): Call it.
1387 (set_syms_host_assoc): Make symbols from the ancestor module
1388 and submodules use associated, as required by the standard and
1389 set all private components public. Module procedures 'external'
1390 attribute bit is reset and the 'used_in_submodule' bit is set.
1391 (parse_module): If this is a submodule, use the ancestor module
1392 and submodules. Traverse the namespace, calling
1393 'set_syms_host_assoc'. Add ST_END_SUBMODULE and COMP_SUBMODULE.
1394 * parse.h : Add COMP_SUBMODULE.
1395 * primary.c (match_variable): Add COMP_SUBMODULE.
1396 * resolve.c (compare_fsyms): New function to compare the dummy
1397 characteristics of a module procedure with its interface.
1398 (resolve_fl_procedure): Compare the procedure, result and dummy
1399 characteristics of a module_procedure with its interface, using
1400 'compare_fsyms' for the dummy arguments.
1401 * symbol.c (gfc_add_procedure): Suppress the check for existing
1402 procedures in the case of a module procedure.
1403 (gfc_add_explicit_interface): Skip checks that must fail for
1404 module procedures.
1405 (gfc_add_type): Allow a new type to be added to module
1406 procedures, their results or their dummy arguments.
1407 (gfc_copy_dummy_sym): New function to generate new dummy args
1408 and copy the characteristics from the interface.
1409 * trans-decl.c (gfc_sym_mangled_function_id): Module procedures
1410 must always have their names mangled as if they are symbols
1411 coming from a declaration in a module.
1412 (gfc_get_symbol_decl): Add 'used_in_submodule' to the assert.
1413 (gfc_finish_var_decl): Symbols with the 'used_in_submodule' bit
1414 set are set DECL_EXTERNAL as if they were use associated.
1415
fb1481e4 14162015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
1417
1418 PR fortran/56520
1419 * match.c (gfc_match_name): Special case unary minus and plus.
1420
968f733d 14212015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
1422
1423 PR fortran/66545
1424 * primary.c (match_sym_complex_part): Do not dereference NULL pointer.
1425
2cc308f8 14262015-07-01 Thomas Koenig <tkoenig@gcc.gnu.org>
1427
1428 * arith.c (gfc_arith_divide): With -Winteger-division,
1429 warn about contant integer division if there is a non-zero
1430 remainder.
1431 * invoke.texi: Document -Winteger-division.
1432 * lang.opt: Add -Winteger-division.
1433
ec2e0095 14342015-06-25 Andrew MacLeod <amacleod@redhat.com>
1435
1436 * f95-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
1437 * trans-decl.c: Likewise.
1438
b594087e 14392015-06-25 Richard Sandiford <richard.sandiford@arm.com>
1440
1441 * trans-decl.c (module_hasher): Likewise.
1442 * trans.h (module_decl_hasher): Likewise.
1443
964f793c 14442015-06-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
1445
1446 PR fortran/66528
1447 * error.c (gfc_warning_check): Restore the default output_buffer
1448 before calling diagnostic_action_after_output.
1449 (gfc_error_check): Likewise.
1450 (gfc_diagnostics_init): Add comment.
1451
505aa56a 14522015-06-23 Andre Vehreschild <vehre@gmx.de>
1453
1454 PR fortran/64674
1455 * parse.c (parse_associate): Figure the rank and as of a
1456 class array in an associate early.
1457 * primary.c (gfc_match_varspec): Prevent setting the
1458 dimension attribute on the sym for classes.
1459 * resolve.c (resolve_variable): Correct the component
1460 ref's type for associated variables. Add a full array ref
1461 when class array's are associated.
1462 (resolve_assoc_var): Correct the type of the symbol,
1463 when in the associate the expression's rank becomes scalar.
1464 * trans-expr.c (gfc_conv_variable): Indirect ref needed for
1465 allocatable associated objects.
1466
f1c53664 14672015-06-19 Mikael Morin <mikael@gcc.gnu.org>
1468
1469 PR fortran/66549
1470 * resolve.c (resolve_global_procedure): Don't save and restore
1471 OpenMP state around the call to gfc_resolve.
1472 (gfc_resolve): Save OpenMP state on entry and restore it on return.
1473
f2ab3bac 14742015-06-17 Andrew MacLeod <amacleod@redhat.com>
1475
1476 * convert.c: Do not include input.h, line-map.h or is-a.h.
1477 * cpp.c: Likewise.
1478 * decl.c: Likewise.
1479 * f95-lang.c: Likewise.
1480 * gfortran.h: Likewise.
1481 * iresolve.c: Likewise.
1482 * match.c: Likewise.
1483 * module.c: Likewise.
1484 * options.c: Likewise.
1485 * target-memory.c: Likewise.
1486 * trans-array.c: Likewise.
1487 * trans-common.c: Likewise.
1488 * trans-const.c: Likewise.
1489 * trans-decl.c: Likewise.
1490 * trans-expr.c: Likewise.
1491 * trans-intrinsic.c: Likewise.
1492 * trans-io.c: Likewise.
1493 * trans-openmp.c: Likewise.
1494 * trans-stmt.c: Likewise.
1495 * trans-types.c: Likewise.
1496 * trans.c: Likewise.
1497
7ea35e8f 14982015-06-15 Andre Vehreschild <vehre@gmx.de>
1499
1500 PR fortran/44672
1501 PR fortran/45440
1502 PR fortran/57307
1503 * gfortran.h: Extend gfc_code.ext.alloc to carry a
1504 flag indicating that the array specification has to be
1505 taken from expr3.
1506 * resolve.c (resolve_allocate_expr): Add F2008 notify
1507 and flag indicating source driven array spec.
1508 (resolve_allocate_deallocate): Check for source driven
1509 array spec, when array to allocate has no explicit
1510 array spec.
1511 * trans-array.c (gfc_array_init_size): Get lower and
1512 upper bound from a tree array descriptor, except when
1513 the source expression is an array-constructor which is
1514 fixed to be one-based.
1515 (retrieve_last_ref): Extracted from gfc_array_allocate().
4b8eb6ca 1516 (gfc_array_allocate): Enable allocate(array, source=
7ea35e8f 1517 array_expression) as specified by F2008:C633.
1518 (gfc_conv_expr_descriptor): Add class tree expression
1519 into the saved descriptor for class arrays.
1520 * trans-array.h: Add temporary array descriptor to
1521 gfc_array_allocate ().
1522 * trans-expr.c (gfc_conv_procedure_call): Special handling
1523 for _copy() routine translation, that comes without an
1524 interface. Third and fourth argument are now passed by value.
1525 * trans-stmt.c (gfc_trans_allocate): Get expr3 array
1526 descriptor for temporary arrays to allow allocate(array,
1527 source = array_expression) for array without array
1528 specification.
1529
b27c37b2 15302015-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1531
1532 * intrinsic.texi: Change \leq to < in descrition of imaginary
1533 part in argument to log.
1534
e86bbccf 15352015-06-11 Paul Thomas <pault@gcc.gnu.org>
1536
1537 PR fortran/66079
1538 * trans-expr.c (gfc_conv_procedure_call): Allocatable scalar
1539 function results must be freed and nullified after use. Create
1540 a temporary to hold the result to prevent duplicate calls.
1541 * trans-stmt.c (gfc_trans_allocate): Rename temporary variable
1542 as 'source'. Deallocate allocatable components of non-variable
1543 'source's.
1544
f2023823 15452015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
1546
1547 * f95-lang.c (gfc_create_decls): Register the main translation unit
1548 through the new debug hook.
1549
64486212 15502015-06-08 Andrew MacLeod <amacleod@redhat.com>
1551
1552 * convert.c : Adjust include files.
1553 * cpp.c : Likewise.
1554 * decl.c : Likewise.
1555 * f95-lang.c : Likewise.
1556 * gfortran.h : Likewise.
1557 * iresolve.c : Likewise.
1558 * match.c : Likewise.
1559 * module.c : Likewise.
1560 * openmp.c : Likewise.
1561 * options.c : Likewise.
1562 * target-memory.c : Likewise.
1563 * trans-array.c : Likewise.
1564 * trans-common.c : Likewise.
1565 * trans-const.c : Likewise.
1566 * trans-decl.c : Likewise.
1567 * trans-expr.c : Likewise.
1568 * trans-intrinsic.c : Likewise.
1569 * trans-io.c : Likewise.
1570 * trans-openmp.c : Likewise.
1571 * trans-stmt.c : Likewise.
1572 * trans-types.c : Likewise.
1573 * trans.c : Likewise.
1574
9b5d7505 15752015-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
1576
1577 PR fortran/66245
1578 * match.c (gfc_match_type_is, gfc_match_class_is): Check if the
1579 return type spec or derived type spec is validate.
1580
a74c2d0d 15812015-06-06 Thomas Koenig <tkoenig@netcologne.de>
1582
6cff4a01 1583 PR fortran/47659
a74c2d0d 1584 * arith.c (eval_intrinsic_op): Set warn flag for
1585 gfc_type_convert_binary if -Wconversion or -Wconversion-extra
1586 are set.
1587 (wprecision_real_real): New function.
1588 (wprecision_int_real): New function.
1589 (gfc_int2int): If -fno-range-check and -Wconversion are specified
1590 and it is a narrowing conversion, warn.
1591 (gfc_int2real): If there is a change in value for the conversion,
1592 warn.
1593 (gfc_int2complex): Likewise.
1594 (gfc_real2int): If there is a fractional part to the real number,
1595 warn with -Wconversion, otherwise warn with -Wconversion-extra.
1596 (gfc_real2real): Emit warning if the constant was changed by
1597 conversion with either -Wconversion or -Wconversion-extra. With
1598 -Wconversion-extra, warn if no warning was issued earlier.
1599 (gfc_real2complex): Likewise.
1600 (gfc_complex2int): For -Wconversion or -Wconversion-extra, if
1601 there was an imaginary part, warn; otherwise, warn for change in
1602 value. Warn with -Wconversion-extra if no other warning was
1603 issued.
1604 (gfc_complex2real): For -Wconversion or -Wconversion-extra, if
1605 there was an imaginary part, warn; otherwise, warn for change in
1606 value. Warn with -Wconversion-extra if no other warning was
1607 issued.
1608 (gfc_complex2complex): For -Wconversion, warn if the value of
1609 either the real or the imaginary part was changed. Warn for
1610 -Wconversion-extra if no prior warning was issued.
1611 * expr.c (gfc_check_assign): Remove check for change in value.
1612 * primary.c (match_real_constant): For -Wconversion-extra, check
1613 against a number in which the last non-zero digit has been
1614 replaced with a zero. If the number compares equal, warn.
1615 * intrinsic.c (gfc_convert_type_warn): Do not warn about constant
1616 conversions.
1617
ff232eb9 16182015-06-05 Steven G. Kargl <kargl@gcc.gnu.org>
1619
1620 PR fortran/66347
1621 * resolve.c (apply_default_init_local): Do not dereference a NULL
1622 pointer.
1623
aed02d59 16242015-06-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1625
1626 PR fortran/66385
1627 * frontend-passes.c (combine_array_constructor): Return early if
1628 inside a FORALL loop.
1629
3a1c9df2 16302015-06-05 Aldy Hernandez <aldyh@redhat.com>
1631
1632 * f95-lang.c (gfc_write_global_declarations): Remove.
1633 (LANG_HOOKS_WRITE_GLOBALS): Remove.
1634 (gfc_write_global_declarations): Move code from here to...
1635 (gfc_be_parse_file): ...here.
1636 Call global_decl_processing.
1637 * trans-decl.c (gfc_emit_parameter_debug_info): Rename global_decl
1638 to early_global_decl.
1639
bed86f06 16402015-06-05 Russell Whitesides <russelldub@gmail.com>
1641 Steven G. Kargl <kargl@gcc.gnu.org>
1642
1643 PR fortran/40958
1644 PR fortran/60780
1645 PR fortran/66377
1646 * module.c (load_equiv): Add check for loading duplicate EQUIVALENCEs
1647 from different modules. Eliminate the pruning of unused
1648 equivalence-objects
1649
8fa35611 16502015-06-04 Thomas Koenig <tkoenig@netcologne.de>
1651
1652 PR fortran/58749
1653 * iresolve.c (gfc_resolve_adjustl): If string has a charlen,
1654 copy it to the function.
1655 (gfc_resolve_adjustr): Likewise.
1656
f77c0292 16572015-06-04 Andrew MacLeod <amacleod@redhat.com>
1658
1659 * convert.c: Adjust includes for restructured coretypes.h.
1660 * cpp.c: Likewise.
1661 * decl.c: Likewise.
1662 * f95-lang.c: Likewise.
1663 * iresolve.c: Likewise.
1664 * match.c: Likewise.
1665 * module.c: Likewise.
1666 * options.c: Likewise.
1667 * target-memory.c: Likewise.
1668 * trans-array.c: Likewise.
1669 * trans-common.c: Likewise.
1670 * trans-const.c: Likewise.
1671 * trans-decl.c: Likewise.
1672 * trans-expr.c: Likewise.
1673 * trans-intrinsic.c: Likewise.
1674 * trans-io.c: Likewise.
1675 * trans-openmp.c: Likewise.
1676 * trans-stmt.c: Likewise.
1677 * trans-types.c: Likewise.
1678 * trans.c: Likewise.
1679
f1591b49 16802015-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
1681
12e011e3 1682 PR fortran/66380
f1591b49 1683 * simplify.c (gfc_simplify_reshape): Convert assert into returning
1684 NULL, which triggers an error condition.
1685
c26f6f28 16862015-05-27 Andre Vehreschild <vehre@gmx.de>
1687
1688 PR fortran/65548
1689 * trans-stmt.c (gfc_trans_allocate): Add missing location
1690 information for e3rhs.
1691
9ee70f20 16922015-05-26 Paul Thomas <pault@gcc.gnu.org>
1693
1694 PR fortran/66082
1695 * trans-array.c (gfc_conv_array_parameter): Ensure that all
1696 non-variable arrays with allocatable components have the
1697 components deallocated after the procedure call.
1698
904b56f7 16992015-05-24 Mikael Morin <mikael@gcc.gnu.org>
1700
1701 PR fortran/66257
1702 * resolve.c (resolve_actual_arglist): Don't throw an error
1703 if the argument with procedure pointer component is not a variable.
1704
e87256b0 17052015-05-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
1706
1707 PR fortran/44054
1708 * gfortran.h (struct gfc_error_buf): Rename as
1709 gfc_error_buffer. Move closer to push, pop and free
1710 methods. Reimplement using an output_buffer.
1711 * error.c (errors, warnings, warning_buffer, cur_error_buffer):
1712 Delete everywhere in this file.
1713 (error_char): Delete all contents.
1714 (gfc_increment_error_count): Delete.
1715 (gfc_error_now): Update comment. Set error_buffer.flag.
1716 (gfc_warning_check): Do not handle warning_buffer.
1717 (gfc_error_1): Delete.
1718 (gfc_error_now_1): Delete.
1719 (gfc_error_check): Simplify.
1720 (gfc_move_error_buffer_from_to): Renamed from
1721 gfc_move_output_buffer_from_to.
1722 (gfc_push_error): Handle only gfc_error_buffer.
1723 (gfc_pop_error): Likewise.
1724 (gfc_free_error): Likewise.
1725 (gfc_get_errors): Remove warnings and errors.
1726 (gfc_diagnostics_init): Use static error_buffer.
1727 (gfc_error_1,gfc_error_now_1): Delete declarations.
1728 * symbol.c, decl.c, trans-common.c, data.c, expr.c, expr.c,
1729 frontend-passes.c, resolve.c, match.c, parse.c: Replace
1730 gfc_error_1 with gfc_error and gfc_error_now_1 with gfc_error_1
1731 everywhere.
1732 * f95-lang.c (gfc_be_parse_file): Do not update errorcount and
1733 warningcount here.
1734 * primary.c (match_complex_constant): Replace gfc_error_buf and
1735 output_buffer with gfc_error_buffer.
1736
eeec71b4 17372015-05-22 Jim Wilson <jim.wilson@linaro.org>
1738
1739 * Make-lang.in (check_gfortran_parallelize): Update comment.
1740
401a3ee4 17412015-05-21 Thomas Koenig <tkoenig@gcc.gnu.org>
1742
1743 PR fortran/66176
1744 * frontend-passes.c (check_conjg_variable): New function.
1745 (inline_matmul_assign): Use it to keep track of conjugated
1746 variables.
1747
62934d39 17482015-05-20 Andre Vehreschild <vehre@gmx.de>
1749
1750 PR fortran/65548
1751 * trans-stmt.c (gfc_trans_allocate): Always retrieve the
1752 descriptor or a reference to a source= expression for
1753 arrays and non-arrays, respectively. Use a temporary
1754 symbol and gfc_trans_assignment for all source=
1755 assignments to allocated objects besides for class and
1756 derived types.
1757
d7729e26 17582015-05-19 Jakub Jelinek <jakub@redhat.com>
1759
1760 PR middle-end/66199
1761 * trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
1762 combined constructs.
1763 (gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
1764 BIND_EXPR_BLOCK.
1765
551e34da 17662015-05-19 David Malcolm <dmalcolm@redhat.com>
1767
1768 * cpp.c (maybe_print_line): Strengthen local "map" from
1769 const line_map * to const line_map_ordinary *.
1770 (cb_file_change): Likewise for param "map" and local "from".
1771 (cb_line_change): Likewise for local "map".
1772
dfcf26a5 17732015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
1774
1775 * interface.c (compare_actual_formal): Use std::swap instead of
1776 explicit swaps.
1777 * trans-array.c (gfc_trans_scalarized_loop_end): Likewise.
1778 * trans-intrinsic.c (walk_inline_intrinsic_transpose): Likewise.
1779
5b266f8b 17802015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1781
1782 PR fortran/66106
1783 * interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
1784 * match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.
1785
7e8f55c1 17862015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1787
1788 PR fortran/66057
1789 * decl.c(gfc_match_generic): Detected a malformed GENERIC statement.
1790
07914e3e 17912015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1792
1793 PR fortran/66043
1794 * gfortran.dg/storage_size_6.f90: New tests.
1795
54c0257b 17962015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1797
1798 PR fortran/66043
1799 * gfortran.dg/storage_size_6.f90: New tests.
1800
3132dbae 18012015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1802
1803 PR fortran/66044
1804 * decl.c(gfc_match_entry): Change a gfc_internal_error() into
e86bbccf 1805 a gfc_error()
3132dbae 1806
552a6172 18072015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1808
1809 PR fortran/66043
1810 * gfortran.dg/storage_size_6.f90: New tests.
1811
0f91e212 18122015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1813
1814 PR fortran/66040
1815 * parse.c(verify_st_order): Replace a gfc_internal_error with your
1816 generic gfc_error.
1817
753ec85a 18182015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1819
1820 PR fortran/66039
1821 * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
1822 BACKSPACE, and ENDFILE statements
1823
ed95ccea 18242015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1825
1826 PR fortran/64925
1827 * symbol.c(check_conflict): Check for a conflict between a dummy
1828 argument and an internal procedure name.
1829
36411e2f 18302015-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1831
1832 PR fortran/65903
1833 * io.c (format_lex): Change to NONSTRING when checking for
1834 possible doubled quote.
1835 * scanner.c (gfc_next_char_literal): Revert change from 64506
1836 and add a check for quotes and return.
1837
dcd51ab4 18382015-05-16 Thomas Koenig <tkoenig@gcc.gnu.org>
1839
1840 PR fortran/66113
1841 * expr.c (is_parent_of_current_ns): New function.
1842 (check_restricted): Use it.
1843
09172322 18442015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
1845
1846 PR fortran/44054
1847
1848 Replace all calls to gfc_notify_std_1 with gfc_notify_std and
1849 gfc_warning_1 with gfc_warning.
1850 * decl.c (gfc_verify_c_interop_param): Here.
1851 * resolve.c (resolve_branch): Here.
1852 (resolve_fl_derived): Here.
1853 * dependency.c (gfc_check_argument_var_dependency):
1854 * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
1855 counter and locations before and after warning.
1856 * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
1857 Delete.
1858 (gfc_warning_now_at): Declare.
1859 * error.c (gfc_warning_1): Delete.
1860 (gfc_notify_std_1): Delete.
1861 (gfc_warning_now_1): Delete.
1862 (gfc_format_decoder): Handle two locations.
1863 (gfc_diagnostic_build_prefix): Rename as
1864 gfc_diagnostic_build_kind_prefix.
1865 (gfc_diagnostic_build_locus_prefix): Take an expanded_location
1866 instead of diagnostic_info.
1867 (gfc_diagnostic_build_locus_prefix): Add overload that takes two
1868 expanded_location.
1869 (gfc_diagnostic_starter): Handle two locations.
1870 (gfc_warning_now_at): New.
1871 (gfc_diagnostics_init): Initialize caret_chars array.
1872 (gfc_diagnostics_finish): Reset caret_chars array to default.
1873
dcd51ab4 18742015-05-16 Mikael Morin <mikael@gcc.gnu.org>
b8f8c849 1875 Paul Thomas <pault@gcc.gnu.org>
1876
1877 PR fortran/65792
1878 * trans-expr.c (gfc_trans_subcomponent_assign): Always assign
1879 the expression component to the destination. In addition, if
1880 the component has allocatable components, copy them and
1881 deallocate those of the expression, if it is not a variable.
1882 The expression is fixed if not a variable to prevent multiple
1883 evaluations.
1884
2315565f 18852015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
1886
1887 PR fortran/66111
1888 * frontend-passes.c (has_dimen_vector_ref): New function.
1889 (inline_matmul_assign): Use it to return early in case
1890 of unhandled vector subscripts.
1891
b15c0a68 18922015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
1893
1894 PR fortran/66041
1895 PR fortran/37131
1896 * gfortran.h (gfc_array_spec): Add field resolved.
1897 * array.c (gfc_resolve_array_spec): Resolve array spec
1898 only once.
1899
eca9d76c 19002015-05-11 Mikael Morin <mikael@gcc.gnu.org>
1901
1902 PR fortran/66100
1903 * simplify.c (simplify_bound): Fix assert to accept subobject arrays.
1904
c127234a 19052015-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
1906
1907 PR fortran/66041
1908 * frontend-passes.c (scalarized_expr): Set correct dimension and
1909 shape for the expression to be passed to lbound. Remove trailing
1910 references after array refrence.
1911 (inline_matmul_assign): Remove gfc_copy_expr from calls
1912 to scalarized_expr().
1913
ea75b8c3 19142015-05-10 Mikael Morin <mikael@gcc.gnu.org>
1915
1916 * simplify.c (simplify_bound_dim): Don't check for emptyness
1917 in the case of cobound simplification. Factor lower/upper
1918 bound differenciation before the actual simplification.
c127234a 1919 (simplify_bound): Remove assumed shape specific simplification.
ea75b8c3 1920 Don't give up early for the lbound of an assumed shape.
1921
ee00cebb 19222015-05-09 Mikael Morin <mikael@gcc.gnu.org>
1923
1924 PR fortran/65894
1925 * trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
1926 New prototype.
1927 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
1928 New function.
1929 (gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
1930 as conditional.
1931 (gfc_walk_elemental_function_args): Set the dummy_arg field.
1932 * trans.h (gfc_ss_info): New subfield dummy_arg.
1933 * trans-expr.c (gfc_conv_procedure_call): Revert the change
1934 of revision 222361.
1935 (gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
1936 as conditional.
1937
eb42d18a 19382015-05-08 Mikael Morin <mikael@gcc.gnu.org>
1939
1940 * trans-array.c (gfc_walk_elemental_function_args):
1941 Don't skip the advance to the next dummy argument when skipping
1942 absent optional args.
1943
5c6f6a61 19442015-05-05 David Malcolm <dmalcolm@redhat.com>
1945
1946 * expr.c (check_inquiry): Fix indentation so that it reflects the
1947 block structure.
1948 * interface.c (compare_parameter): Likewise.
1949 * parse.c (parse_oacc_structured_block): Likewise.
1950 * target-memory.c (expr_to_char): Likewise.
1951 * trans-types.c (gfc_init_kinds): Likewise.
1952
d76862c8 19532015-05-02 Steven G. Kargl <kargl@gcc.gnu.org>
1954
1955 PR fortran/65976
1956 * invoke.texi: Remove 'no-' in '-fno-fixed-form'
1957
d42fede8 19582015-05-01 Mikael Morin <mikael@gcc.gnu.org>
1959
1960 * simplify.c (simplify_bound_dim): Tighten the check for array fullness
1961 by also checking for absence of subreference.
1962 (simplify_bound): Don't skip simplification if the array
1963 has subreferences.
1964 (simplify_cobound): Same.
1965
3da642f5 19662015-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
1967
1968 PR fortran/37131
1969 * simplify.c (simplify_bound): Get constant lower bounds of one
1970 from array spec for assumed and explicit shape shape arrays if
1971 the lower bounds are indeed one.
1972
7082509e 19732015-04-30 David Malcolm <dmalcolm@redhat.com>
1974
1975 * options.c (gfc_init_options): Remove spurious second
1976 semicolon.
1977 * trans-stmt.c (gfc_trans_allocate): Likewise.
1978
b085c206 19792015-04-28 Andre Vehreschild <vehre@gmx.de>
1980
1981 * interface.c (gfc_compare_types): Check for unlimited
1982 polymorphism flag in the correct position indepent of the _data
1983 component being present or not. This prevents a segfault, when
1984 the _data component is not present.
1985 * symbol.c (gfc_type_compatible): Same.
1986
b1891a46 19872015-04-27 Jim Wilson <jim.wilson@linaro.org>
1988
1989 * Make-lang.in (fortran.mostlyclean): Remove gfortran and
1990 gfortran-cross.
1991
128078ac 19922015-04-27 Andre Vehreschild <vehre@gmx.de>
1993
1994 PR fortran/59678
1995 PR fortran/65841
1996 * trans-array.c (duplicate_allocatable): Fixed deep copy of
1997 allocatable components, which are liable for copy only, when
1998 they are allocated.
1999 (gfc_duplicate_allocatable): Add deep-copy code into if
2000 component allocated block. Needed interface change for that.
2001 (gfc_copy_allocatable_data): Supplying NULL_TREE for code to
2002 add into if-block for checking whether a component was
2003 allocated.
2004 (gfc_duplicate_allocatable_nocopy): Likewise.
2005 (structure_alloc_comps): Likewise.
2006 * trans-array.h: Likewise.
2007 * trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise.
2008 * trans-openmp.c (gfc_walk_alloc_comps): Likewise.
2009
c6793847 20102015-04-23 Andre Vehreschild <vehre@gmx.de>
2011
2012 PR fortran/60322
2013 * expr.c (gfc_lval_expr_from_sym): Code to select the regular
2014 or class array added.
2015 * gfortran.h: Add IS_CLASS_ARRAY macro.
2016 * trans-array.c (gfc_add_loop_ss_code): Treat class objects
2017 to be referenced always.
2018 (build_class_array_ref): Adapt retrieval of array descriptor.
2019 (build_array_ref): Likewise.
b8f8c849 2020 (gfc_conv_array_ref): Hand the vptr or the descriptor to
c6793847 2021 build_array_ref depending whether the sym is class or not.
2022 (gfc_trans_array_cobounds): Select correct gfc_array_spec for
2023 regular and class arrays.
2024 (gfc_trans_array_bounds): Likewise.
b8f8c849 2025 (gfc_trans_dummy_array_bias): Likewise.
c6793847 2026 (gfc_get_dataptr_offset): Correcting call of build_array_ref.
2027 (gfc_conv_expr_descriptor): Set the array's offset to -1 when
2028 lbound in inner most dim is 1 and symbol non-pointer/assoc.
2029 * trans-decl.c (gfc_build_qualified_array): Select correct
2030 gfc_array_spec for regular and class arrays.
2031 (gfc_build_dummy_array_decl): Likewise.
2032 (gfc_get_symbol_decl): Get a dummy array for class arrays.
2033 (gfc_trans_deferred_vars): Tell conv_expr that the descriptor
2034 is desired.
2035 * trans-expr.c (gfc_class_vptr_get): Get the class descriptor
2036 from the correct location for class arrays.
2037 (gfc_class_len_get): Likewise.
2038 (gfc_conv_intrinsic_to_class): Add handling of _len component.
2039 (gfc_conv_class_to_class): Prevent access to unset array data
2040 when the array is an optional argument. Add handling of _len
2041 component.
2042 (gfc_copy_class_to_class): Check that _def_init is non-NULL
2043 when used in _vptr->copy()
2044 (gfc_trans_class_init_assign): Ensure that the rank of
2045 _def_init is zero.
2046 (gfc_conv_component_ref): Get the _vptr along with _data refs.
2047 (gfc_conv_variable): Make sure the temp array descriptor is
2048 returned for class arrays, too, and that class arrays are
2049 dereferenced correctly.
2050 (gfc_conv_procedure_call): For polymorphic type initialization
2051 the initializer has to be a pointer to _def_init stored in a
2052 dummy variable, which then needs to be used by value.
2053 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
2054 temporary array descriptor for class arrays, too.
2055 (gfc_conv_intrinsic_storage_size): Likewise.
2056 (gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
2057 expressions.
2058 * trans-stmt.c (trans_associate_var): Use a temporary array for
2059 the associate variable of class arrays, too, making the array
2060 one-based (lbound == 1).
2061 * trans-types.c (gfc_is_nodesc_array): Use the correct
2062 array data.
2063 * trans.c (gfc_build_array_ref): Use the dummy array descriptor
2064 when present.
2065 * trans.h: Add class_vptr to gfc_se for storing a class ref's
2066 vptr.
2067
9a58b00a 20682015-04-22 Steven G. Kargl <kargl@gcc.gnu.org>
2069
2070 PR fortran/65429
2071 * decl.c (add_init_expr_to_sym): Set the length type parameter.
2072
0c10bedd 20732015-04-10 Tobias Burnus <burnus@net-b.de>
2074
2075 * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib
2076 version; reject not-yet-implemented variants.
2077 * trans-types.c (gfc_get_derived_type): For lock_type with
2078 -fcoarray=lib, use a void pointer as type.
2079 * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable):
2080 Handle lock_type with -fcoarray=lib.
2081
72bec0a3 20822015-04-10 Mikael Morin <mikael@gcc.gnu.org>
2083
2084 PR fortran/56674
2085 PR fortran/58813
2086 PR fortran/59016
2087 PR fortran/59024
2088 * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
2089 former to the latter and make it non-static. Update callers.
2090 * gfortran.h (gfc_save_symbol_data): New prototype.
2091 * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
2092 before modifying symbols 'sym' and 'dt_sym'.
2093
01b65dcf 20942013-04-09 Paul Thomas <pault@gcc.gnu.org>
2095
2096 PR fortran/56852
2097 * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any
2098 of the index variables are untyped and errors are present.
2099
31325b3e 21002015-04-07 Andre Vehreschild <vehre@gmx.de>
2101
2102 PR fortran/65548
2103 * trans-stmt.c (gfc_trans_allocate): For intrinsic functions
2104 use conv_expr_descriptor() instead of conv_expr_reference().
2105
8126264b 21062015-03-30 Jakub Jelinek <jakub@redhat.com>
2107
2108 PR fortran/65597
2109 * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit
2110 linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN.
2111 For implcitly added !simple OMP_CLAUSE_LINEAR set it too. Use step 1
2112 instead of the original step on the new iterator - count.
2113
b07e936a 21142015-03-25 Mikael Morin <mikael@gcc.gnu.org>
2115
2116 PR fortran/64952
2117 PR fortran/65532
2118 * gfortran.h (struct gfc_namespace): New field 'types_resolved'.
2119 * resolve.c (resolve_types): Return early if field 'types_resolved'
2120 is set. Set 'types_resolved' at the end.
2121
2841bae5 21222015-03-24 Andre Vehreschild <vehre@gmx.de>
2123
2124 PR fortran/55901
2125 * trans-expr.c (gfc_conv_structure): Fixed indendation.
2126 Using integer_zero_node now instead of explicitly
2127 constructing a integer constant zero node.
2128 (gfc_conv_derived_to_class): Add handling of _len component,
2129 i.e., when the rhs has a string_length then assign that to
2130 class' _len, else assign 0.
2131 (gfc_conv_intrinsic_to_class): Likewise.
2132
535b0484 21332015-03-24 Andre Vehreschild <vehre@gmx.de>
2134
2135 PR fortran/64787
2136 PR fortran/57456
2137 PR fortran/63230
2138 * class.c (gfc_add_component_ref): Free no longer needed
2139 ref-chains to prevent memory loss.
2140 (find_intrinsic_vtab): For deferred length char arrays or
2141 unlimited polymorphic objects, store the size in bytes of one
2142 character in the size component of the vtab.
2143 * gfortran.h: Added gfc_add_len_component () define.
2144 * trans-array.c (gfc_trans_create_temp_array): Switched to new
2145 function name for getting a class' vtab's field.
2146 (build_class_array_ref): Likewise.
2147 (gfc_array_init_size): Using the size information from allocate
2148 more consequently now, i.e., the typespec of the entity to
2149 allocate is no longer needed. This is to address the last open
2150 comment in PR fortran/57456.
2151 (gfc_array_allocate): Likewise.
2152 (structure_alloc_comps): gfc_copy_class_to_class () needs to
2153 know whether the class is unlimited polymorphic.
2154 * trans-array.h: Changed interface of gfc_array_allocate () to
2155 reflect the no longer needed typespec.
2156 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New.
2157 (gfc_reset_len): New.
2158 (gfc_get_class_array_ref): Switch to new function name for
2159 getting a class' vtab's field.
2160 (gfc_copy_class_to_class): Added flag to know whether the class
2161 to copy is unlimited polymorphic. Adding _len dependent code
2162 then, which calls ->vptr->copy () with four arguments adding
2163 the length information ->vptr->copy(from, to, from_len, to_cap).
2164 (gfc_conv_procedure_call): Switch to new function name for
01b65dcf 2165 getting a class' vtab's field.
535b0484 2166 (alloc_scalar_allocatable_for_assignment): Use the string_length
2167 as computed by gfc_conv_expr and not the statically backend_decl
2168 which may be incorrect when ref-ing.
2169 (gfc_trans_assignment_1): Use the string_length variable and
2170 not the rse.string_length. The former has been computed more
2171 generally.
2172 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new
2173 function name for getting a class' vtab's field.
2174 (gfc_conv_intrinsic_storage_size): Likewise.
2175 (gfc_conv_intrinsic_transfer): Likewise.
2176 * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate
2177 source=expr3 only once before the loop over the objects to
2178 allocate, when the objects are not arrays. Doing correct _len
2179 initialization and calling of vptr->copy () fixing PR 64787.
2180 (gfc_trans_deallocate): Reseting _len to 0, preventing future
2181 errors.
2182 * trans.c (gfc_build_array_ref): Switch to new function name
2183 for getting a class' vtab's field.
2184 (gfc_add_comp_finalizer_call): Likewise.
2185 * trans.h: Define the prototypes for the gfc_class_vtab_*_get ()
2186 and gfc_vptr_*_get () functions.
2187 Added gfc_find_and_cut_at_last_class_ref () and
2188 gfc_reset_len () routine prototype. Added flag to
2189 gfc_copy_class_to_class () prototype to signal an unlimited
01b65dcf 2190 polymorphic entity to copy.
535b0484 2191
629150f9 21922015-03-24 Iain Sandoe <iain@codesourcery.com>
2193 Tobias Burnus <burnus@net-b.de>
2194
2195 * gfortran.texi (_gfortran_caf_sync_memory): Improve wording.
2196
9e578cf5 21972015-03-23 Paul Thomas <pault@gcc.gnu.org>
2198 Mikael Morin <mikael@gcc.gnu.org>
2199
2200 PR fortran/64952
2201 * gfortran.h (struct symbol_attribute) : New field
2202 'array_outer_dependency'.
2203 * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
2204 * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
2205 (attr_bits): Append same value to initializer.
2206 (mio_symbol_attribute): Handle 'array_outer_dependency' attr
2207 in module read and write.
2208 * resolve.c (update_current_proc_outer_array_dependency): New function.
2209 (resolve_function, resolve_call): Add code to update current procedure's
2210 'array_outer_dependency' attribute.
2211 (resolve_variable): Mark current procedure with attribute
2212 array_outer_dependency if the variable is an array coming from outside
2213 the current namespace.
2214 (resolve_fl_procedure): Mark a procedure without body with attribute
2215 'array_outer_dependency'.
2216 * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
2217 marked as 'array_outer_dependency' generate a temporary.
2218 (gfc_walk_function_expr): If the function may reference external arrays,
2219 mark the head gfc_ss with flag 'array_outer_dependency'.
2220
2097ec5e 22212015-03-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2222
2223 PR libgfortran/59513
2224 * gfortran.texi (Read/Write after EOF marker): New information.
2225
7b47ea66 22262015-03-21 H.J. Lu <hongjiu.lu@intel.com>
2227
2228 * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one
2229 line.
2230
3c4e1899 22312015-03-21 Tobias Burnus <burnus@net-b.de>
2232
2233 * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images,
2234 _gfortran_caf_sync_memory, _gfortran_caf_error_stop,
2235 _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define,
2236 _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas,
2237 _gfortran_caf_atomic_op): New sections.
2238
777bb2ed 22392015-03-21 Tobias Burnus <burnus@net-b.de>
2240
2241 * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented
2242 coindexed coarray accesses.
2243
63651ed9 22442015-03-17 Paul Thomas <pault@gcc.gnu.org>
5b861484 2245
2246 PR fortran/59198
2247 * trans-types.c (gfc_get_derived_type): If an abstract derived
2248 type with procedure pointer components has no other type of
2249 component, return the backend_decl. Otherwise build the
2250 components if any of the non-procedure pointer components have
2251 no backend_decl.
2252
1e0061a8 22532015-03-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2254
2255 PR fortran/64432
2256 *trans-intrinisic.c (conv_intrinsic_system_clock): Check the
2257 smallest kind passed in user arguments and hardcode tesults for
2258 KIND=1 or KIND=2 to indicate no clock available.
2259
1891b4bf 22602015-03-16 Andre Vehreschild <vehre@gmx.de>
2261
2262 * resolve.c: Prevent segfault on illegal input.
2263
3ef0f394 22642015-03-14 Mikael Morin <mikael@gcc.gnu.org>
2265
2266 PR fortran/61138
2267 * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY
2268 field before reusing LSE.
2269
771e2b1c 22702015-03-11 Janne Blomqvist <jb@gcc.gnu.org>
2271
2272 PR libfortran/65200
2273 * gfortran.texi: Document behavior when opening files without
2274 explicit ACTION= specifier.
2275
6cb7d18f 22762015-03-10 Paul Thomas <pault@gcc.gnu.org>
2277
2278 PR fortran/65024
2279 * trans-expr.c (gfc_conv_component_ref): If the component
2280 backend declaration is missing and the derived type symbol is
2281 available in the reference, call gfc_build_derived_type.
2282
71cf3ae6 22832015-03-10 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
2284 Tobias Burnus <burnus@net-b.de>
2285
2286 * trans.h (caf_sync_memory): New function decl tree.
2287 * trans-decl.c (gfc_build_builtin_function_decls): Define it.
2288 (create_main_function): Don't call sync_synchronize and leave
2289 it to the CAF library.
2290 * trans-stmt.c (gfc_trans_stop): Ditto.
2291 (gfc_trans_sync): Ditto; add call library call for sync memory.
2292
7f885126 22932015-03-08 Mikael Morin <mikael@gcc.gnu.org>
2294
2295 PR fortran/60898
2296 * resolve.c (resolve_symbol): Check that the symbol found by
2297 name lookup really is the current symbol being resolved.
2298
4ed3f3fd 22992015-03-02 Tobias Burnus <burnus@net-b.de>
2300
2301 * check.c (gfc_check_atomic): Properly check for coarrayness
2302 and for being coindexed.
2303
7627f837 23042015-02-26 Martin Liska <mliska@suse.cz>
2305
2306 * resolve.c: Rename enum 'comparison' to 'compare_result' as
2307 solution for -Wodr issue.
2308
6349b8cc 23092015-02-24 Thomas Schwinge <thomas@codesourcery.com>
2310
2311 PR libgomp/64625
2312 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
2313 Remove macros.
2314 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
2315 * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2316 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2317 Remove function types.
2318 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
2319 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2320 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2321 New function types.
2322
e0eaf973 23232015-02-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
2324
2325 PR fortran/64980
2326 PR fortran/61960
2327 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
2328 for component references to class objects.
2329 (gfc_conv_procedure_call): Compare the class by name.
2330
af40178a 23312015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2332
2333 PR fortran/64506
2334 * scanner.c (gfc_next_char_literal): For free form source,
2335 check for '!' and if found, clear the comment and go back
2336 and get the next character. For fixed form source, skip the
2337 rest of the line.
2338
38ef99c9 23392015-02-12 Paul Thomas <pault@gcc.gnu.org>
2340
2341 PR fortran/64932
2342 * trans-stmt.c (gfc_trans_deallocate): If a component array
2343 expression is not a descriptor type and it is a derived type
2344 that has allocatable components and is not finalizable, then
2345 deallocate the allocatable components.
2346
135f23d5 23472015-02-08 Mikael Morin <mikael@gcc.gnu.org>
2348
2349 PR fortran/63744
2350 * module.c (check_for_ambiguous): Change argument type
2351 from gfc_symbol to gfc_symtree. Check local (symtree) name
2352 instead of original (symbol) name.
2353 (read_module): Update caller.
2354
8ce60dbb 23552015-02-06 Paul Thomas <pault@gcc.gnu.org>
2356
2357 PR fortran/63205
2358 * gfortran.h: Add 'must finalize' field to gfc_expr and
2359 prototypes for gfc_is_alloc_class_scalar_function and for
2360 gfc_is_alloc_class_array_function.
2361 * expr.c (gfc_is_alloc_class_scalar_function,
2362 gfc_is_alloc_class_array_function): New functions.
2363 * trans-array.c (gfc_add_loop_ss_code): Do not move the
2364 expression for allocatable class scalar functions outside the
2365 loop.
2366 (conv_array_index_offset): Cope with deltas being NULL_TREE.
2367 (build_class_array_ref): Do not return with allocatable class
2368 array functions. Add code to pick out the returned class array.
2369 Dereference if necessary and return if not a class object.
2370 (gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
2371 (gfc_walk_function_expr): Return an array ss for the result of
2372 an allocatable class array function.
2373 * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
2374 that the argument should be a variable. If an allocatable class
2375 array function, set the offset to zero and skip the write-out
2376 loop in this case.
2377 (gfc_conv_procedure_call): Add allocatable class array function
2378 to the assert. Call gfc_conv_subref_array_arg for allocatable
2379 class array function arguments with derived type formal arg..
2380 Add the code for handling allocatable class functions, including
2381 finalization calls to prevent memory leaks.
2382 (arrayfunc_assign_needs_temporary): Return if an allocatable
2383 class array function.
2384 (gfc_trans_assignment_1): Set must_finalize to rhs expression
2385 for allocatable class functions. Set scalar_to_array as needed
2386 for scalar class allocatable functions assigned to an array.
2387 Nullify the allocatable components corresponding the the lhs
2388 derived type so that the finalization does not free them.
07fb3232 2389
8ce60dbb 23902015-01-29 Andre Vehreschild <vehre@gmx.de>
2391 Janus Weil <janus@gcc.gnu.org>
07fb3232 2392
2393 PR fortran/60289
2394 Initial patch by Janus Weil
8ce60dbb 2395 * resolve.c (resolve_allocate_expr): Add check for comp. only
2396 when target is not unlimited polymorphic.
2397 * trans-stmt.c (gfc_trans_allocate): Assign correct value to
2398 _len component of unlimited polymorphic entities.
07fb3232 2399
303b9531 24002015-02-05 Tobias Burnus <burnus@net-b.de>
2401
2402 PR fortran/64943
2403 * resolve.c (resolve_transfer): Also check structure
2404 constructors.
2405
0b373205 24062015-02-05 Paul Thomas <pault@gcc.gnu.org>
2407
9c92fb5c 2408 PR fortran/64757
0b373205 2409 * resolve.c (resolve_structure_cons): Obtain the rank of class
2410 components.
2411 * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
2412 assignment to allocatable class array components.
2413 (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
2414 is a class component, allocate to the _data field.
2415 (gfc_trans_subcomponent_assign): If a class component with a
2416 derived type expression set the _vptr field and for array
2417 components, call gfc_trans_alloc_subarray_assign. For scalars,
2418 the assignment is performed here.
2419
f36f9b8b 24202015-02-04 Jakub Jelinek <jakub@redhat.com>
2421
2422 * options.c: Include langhooks.h.
2423 (gfc_post_options): Change lang_hooks.name based on
2424 selected -std= mode.
2425
b821472d 24262015-02-03 Steven G. Kargl <kargl@gcc.gnu.org>
2427
2428 * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
9606162b 2429
24302015-01-30 Andre Vehreschild <vehre@gmx.de>
2431
2432 * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
2433 * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
2434 Fixed datatype of charlen to be a 32-bit int.
2435
6f521718 24362015-02-01 Joseph Myers <joseph@codesourcery.com>
2437
2438 * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
2439 char *, ...)): Remove functions.
2440 * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
2441 (const char *, ...)): Remove declarations.
2442 * arith.c, check.c, data.c, decl.c, frontend-passes.c,
2443 interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
2444 options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
2445 trans-common.c, trans-const.c, trans-stmt.c: All callers of
2446 gfc_warning and gfc_warning_now changed to pass 0 or option number
2447 as first argument.
2448
c05be867 24492015-01-30 Joseph Myers <joseph@codesourcery.com>
2450
2451 * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
2452 callers of fatal_error changed to pass input_location as first
2453 argument.
2454
95a494fd 24552015-01-28 Tobias Burnus <burnus@net-b.de>
2456
2457 * intrinsic.texi (CO_BROADCAST): Correct argument description.
2458
d11808f8 24592015-01-27 Tobias Burnus <burnus@net-b.de>
2460
2461 PR fortran/63861
2462 * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
2463 Fix handling for scalar coarrays.
2464 * trans-types.c (gfc_get_element_type): Add comment.
2465
0480ded1 24662015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2467
2468 PR fortran/64771
2469 * interface.c: Remove <algorithm>.
2470 (check_dummy_characteristics): Use MAX instead of std::max.
2471
82d867c8 24722015-01-26 Paul Thomas <pault@gcc.gnu.org>
2473
2474 PR fortran/62044
2475 * resolve.c (resolve_allocate_expr): If the default initializer
2476 is NULL, keep the original MOLD expression so that the correct
2477 typespec is available.
2478
1b4c7a08 24792015-01-26 Tobias Burnus <burnus@net-b.de>
2480
2481 PR fortran/64771
2482 * interface.c (check_dummy_characteristics): Fix coarray handling.
2483
194f8250 24842015-01-26 Tobias Burnus <burnus@net-b.de>
2485
2486 * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
2487
ae6b205f 24882015-01-26 Janus Weil <janus@gcc.gnu.org>
2489
2490 PR fortran/64230
2491 * class.c (finalize_component): New argument 'sub_ns'. Insert code to
2492 check if 'expr' is associated.
2493 (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
2494 'ptr2'. Pass 'sub_ns' to finalize_component.
2495
f745cbce 24962015-01-25 Mikael Morin <mikael@gcc.gnu.org>
2497
2498 PR fortran/62044
2499 * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
2500 * module.c (MOD_VERSION): Bump.
2501 (write_module): Don't write list of extensions.
2502 (read_module): Don't jump over list of extensions;
2503 don't load list of extensions.
2504 (load_derived_extensions, write_dt_extensions,
2505 write_derived_extensions): Remove.
2506
da9fc492 25072015-01-24 Tobias Burnus <burnus@net-b.de>
2508
2509 * parse.c (gfc_parse_file): Fix two-location gfc_error call.
2510
75e5ecf3 25112015-01-23 Martin Liska <mliska@suse.cz>
2512
2513 * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
2514 false positive during profiledbootstrap by initializing them.
2515 * matchexp.c (match_mult_operand): Likewise.
2516 * module.c (write_atom): Likewise.
2517 (read_module): Likewise.
2518
85977647 25192015-01-23 Tom de Vries <tom@codesourcery.com>
2520
2521 PR libgomp/64672
2522 * lang.opt (fopenacc): Mark as LTO option.
2523
fa175926 25242015-01-23 Tom de Vries <tom@codesourcery.com>
2525
2526 PR libgomp/64707
2527 * lang.opt (fopenmp): Mark as LTO option.
845a9546 2528
25292015-01-23 Andre Vehreschild <vehre@gmx.de>
2530
2531 * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
2532 * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
2533
9d7131bf 25342015-01-23 Jakub Jelinek <jakub@redhat.com>
2535
2536 * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
2537
c09566df 25382015-01-23 Janus Weil <janus@gcc.gnu.org>
2539
2540 PR fortran/60922
2541 * class.c (finalize_component): Apply the check for 'fini_coarray' only
2542 to coarray components.
2543
37ece3a2 25442015-01-23 Tobias Burnus <burnus@net-b.de>
2545
2546 PR fortran/64726
2547 * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
2548 loop generation.
2549
f26dc717 25502015-01-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2551
2552 PR fortran/61933
2553 * libgfortran.h:
2554 * trans-io.c (set_parameter_value): Delete use of has_iostat.
2555 Redefine to not generate any runtime error check calls.
2556 (set_parameter_value_chk): Rename of the former
2557 set_parameter_value with the runtime error checks and fix
2558 whitespace. (set_parameter_value_inquire): New function that
2559 builds a runtime conditional block to set the INQUIRE
2560 common parameter block unit number to -2 when unit numbers
2561 exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
2562 For unit, use the renamed set_parameter_value_chk.
2563 (gfc_trans_close): Likewise use renamed function.
2564 (build_filepos): Whitespace and use renamed function.
2565 (gfc_trans_inquire): Whitespace and for unit use
2566 set_parameter_value and set_parameter_value_inquire.
2567 (gfc_trans_wait): Remove p->iostat from call to
2568 set_parameter_value. Use new set_parameter_value_chk for unit.
2569 (build_dt): Use the new set_parameter_value without p->iostat
2570 and fix whitespace. Use set_parameter_value_chk for unit.
2571
2c9c0c1f 25722015-01-21 Thomas Koenig <tkoenig@netcologne.de>
2573
2574 PR fortran/57023
2575 * dependency.c (callback_dummy_intent_not_int): New function.
2576 (dummy_intent_not_in): New function.
2577 (gfc_full_array_ref_p): Use dummy_intent_not_in.
2578
53ec6b3f 25792015-01-18 Andre Vehreschild <vehre@gmx.de>
2580 Janus Weil <janus@gcc.gnu.org>
2581
2582 PR fortran/60255
2583 * class.c (gfc_get_len_component): New.
2584 (gfc_build_class_symbol): Add _len component to unlimited
2585 polymorphic entities.
2586 (find_intrinsic_vtab): Removed emitting of error message.
2587 * gfortran.h: Added prototype for gfc_get_len_component.
2588 * simplify.c (gfc_simplify_len): Use _len component where
2589 available.
2590 * trans-expr.c (gfc_class_len_get): New.
2591 (gfc_conv_intrinsic_to_class): Add handling for deferred
2592 character arrays.
2593 (gfc_conv_structure): Treat _len component correctly.
2594 (gfc_conv_expr): Prevent bind_c handling when not required.
2595 (gfc_trans_pointer_assignment): Propagate _len component.
2596 * trans-stmt.c (class_has_len_component): New.
2597 (trans_associate_var): _len component treatment for associate
2598 context.
2599 (gfc_trans_allocate): Same as for trans_associate_var()
2600 * trans.h: Added prototype for gfc_class_len_get.
2601
a3de0f07 26022015-01-18 Paul Thomas <pault@gcc.gnu.org>
2603
6b8169f7 2604 PR fortran/57959
a3de0f07 2605 * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
2606 for allocatable components, where the source is a variable.
2607
c3639856 26082015-01-18 Paul Thomas <pault@gcc.gnu.org>
2609
2610 PR fortran/55901
2611 * primary.c (gfc_match_varspec): Exclude dangling associate-
2612 names with dimension 0 from being counted as arrays.
2613 * resolve.c (resolve_assoc_var): Sub-strings are permissible
2614 for associate-names, so exclude characters from the test for
2615 misuse as arrays.
2616 * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
2617 the hidden string length variable of their associated target.
2618 Signal this by setting 'length' to a constant, if the decl for
2619 the string length is a variable.
2620
411ee1e5 26212015-01-17 Paul Thomas <pault@gcc.gnu.org>
2622
2623 PR fortran/64578
2624 * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
2625 before reinitializing rse, to add the rse.pre to block before
2626 creating 'ptrtemp'.
2627 * trans-intrinsic.c (gfc_conv_associated): Deal with the class
2628 data being a descriptor.
2629
50e7673a 26302015-01-17 Andre Vehreschild <vehre@gmx.de>
2631
2632 PR fortran/60357
2633 * primary.c (build_actual_constructor): Prevent warning.
2634 * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
2635 assignment): New function encapsulates treatment of allocatable
2636 components.
2637 (gfc_trans_subcomponent_assign): Needed to distinguish between
2638 regular assignment and initilization.
2639 (gfc_trans_structure_assign): Same.
2640 (gfc_conv_structure): Same.
2641
2642 PR fortran/61275
2643 * gfortran.h: deferred_parameter is not needed, because
2644 it artificial does the trick completely.
2645 * primary.c (build_actual_constructor): Same.
2646 (gfc_convert_to_structure_constructor): Same.
2647 * resolve.c (resolve_fl_derived0): Same.
2648 * trans-expr.c (gfc_conv_component_ref): Prevent treating
2649 allocatable deferred length char arrays here.
2650 (gfc_trans_subcomponent_assign): Same as above.
2651 * trans-types.c (gfc_sym_type): This is done in
2652 gfc_get_derived_type already.
2653
d1b1479f 26542015-01-17 Andre Vehreschild <vehre@gmx.de>
2655
2656 PR fortran/60334
2657 * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
2658 length when the symbol is declared to be a result.
2659 * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
2660 string length when functions are nested and the string length
2661 is a reference already.
2662
7c94d8e5 26632015-01-16 Janus Weil <janus@gcc.gnu.org>
2664
2665 PR fortran/45290
2666 * decl.c (match_pointer_init): Error out if resolution of init expr
2667 failed.
2668
fec37142 26692015-01-15 Tobias Burnus <burnus@net-b.de>
2670
2671 * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
2672 resolve_oacc_deviceptr_clause, resolve_omp_clauses,
2673 gfc_resolve_oacc_declare): Replace '%s' by %qs.
2674
ca4c3545 26752015-01-15 Thomas Schwinge <thomas@codesourcery.com>
2676 Cesar Philippidis <cesar@codesourcery.com>
2677 James Norris <jnorris@codesourcery.com>
2678 Ilmir Usmanov <i.usmanov@samsung.com>
2679 Tobias Burnus <burnus@net-b.de>
2680
2681 * lang.opt (fopenacc): New option.
2682 * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
2683 * dump-parse-tree.c (show_omp_node): Split part of it into...
2684 (show_omp_clauses): ... this new function.
2685 (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
2686 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
2687 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2688 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2689 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2690 (show_namespace): Update for OpenACC.
2691 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
2692 (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
2693 (DEF_GOACC_BUILTIN_COMPILER): New macros.
2694 * types.def (BT_FN_VOID_INT_INT_VAR)
2695 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2696 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2697 New function types.
2698 * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
2699 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
2700 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
2701 ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
2702 ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
2703 ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
2704 ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
2705 ST_OACC_ROUTINE.
2706 (struct gfc_expr_list): New data type.
2707 (gfc_get_expr_list): New macro.
2708 (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
2709 OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
2710 OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
2711 (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
2712 (OMP_LIST_CACHE): New enumerators.
2713 (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
2714 vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
2715 wait_list, tile_list, async, gang, worker, vector, seq,
2716 independent, wait, par_auto, gang_static, and loc members.
2717 (struct gfc_namespace): Add oacc_declare_clauses member.
2718 (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
2719 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
2720 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2721 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2722 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2723 (gfc_free_expr_list, gfc_resolve_oacc_directive)
2724 (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
2725 (gfc_resolve_oacc_blocks): New prototypes.
2726 * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
2727 EXEC_OACC_PARALLEL_LOOP.
2728 * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
2729 (gfc_match_oacc_update, gfc_match_oacc_declare)
2730 (gfc_match_oacc_loop, gfc_match_oacc_host_data)
2731 (gfc_match_oacc_data, gfc_match_oacc_kernels)
2732 (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
2733 (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
2734 (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
2735 prototypes.
2736 * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
2737 (gfc_free_omp_clauses): Update for members added to struct
2738 gfc_omp_clauses.
2739 (gfc_match_omp_clauses): Change mask paramter to uint64_t. Add
2740 openacc parameter.
2741 (resolve_omp_clauses): Add openacc parameter. Update for OpenACC.
2742 (struct fortran_omp_context): Add is_openmp member.
2743 (gfc_resolve_omp_parallel_blocks): Initialize it.
2744 (gfc_resolve_do_iterator): Update for OpenACC.
2745 (gfc_resolve_omp_directive): Call
2746 resolve_omp_directive_inside_oacc_region.
2747 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
2748 (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
2749 (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
2750 (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
2751 (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
2752 (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
2753 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
2754 (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
2755 (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
2756 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
2757 (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
2758 (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
2759 (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
2760 (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
2761 (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
2762 (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
2763 (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
2764 (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
2765 (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
2766 (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
2767 (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
2768 (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
2769 (gfc_match_omp_clauses): Handle those.
2770 (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
2771 (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
2772 (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
2773 (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
2774 (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
2775 (OACC_WAIT_CLAUSES): New macros.
2776 (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
2777 (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
2778 (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
2779 (gfc_match_oacc_kernels, gfc_match_oacc_data)
2780 (gfc_match_oacc_host_data, gfc_match_oacc_loop)
2781 (gfc_match_oacc_declare, gfc_match_oacc_update)
2782 (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
2783 (gfc_match_oacc_wait, gfc_match_oacc_cache)
2784 (gfc_match_oacc_routine, oacc_is_loop)
2785 (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
2786 (check_symbol_not_pointer, check_array_not_assumed)
2787 (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
2788 (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
2789 (omp_code_to_statement, oacc_code_to_statement)
2790 (resolve_oacc_directive_inside_omp_region)
2791 (resolve_omp_directive_inside_oacc_region)
2792 (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
2793 (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
2794 (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
2795 (gfc_resolve_oacc_directive): New functions.
2796 * parse.c (next_free): Update for OpenACC. Move some code into...
2797 (verify_token_free): ... this new function.
2798 (next_fixed): Update for OpenACC. Move some code into...
2799 (verify_token_fixed): ... this new function.
2800 (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
2801 ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
2802 (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
2803 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
2804 ST_OACC_KERNELS_LOOP.
2805 (case_decl): Add ST_OACC_ROUTINE.
2806 (push_state, parse_critical_block, parse_progunit): Update for
2807 OpenACC.
2808 (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
2809 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
2810 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
2811 ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
2812 ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
2813 ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
2814 ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
2815 ST_OACC_ROUTINE.
2816 (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
2817 (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
2818 ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
2819 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
2820 (decode_oacc_directive, parse_oacc_structured_block)
2821 (parse_oacc_loop, is_oacc): New functions.
2822 * parse.h (struct gfc_state_data): Add oacc_declare_clauses
2823 member.
2824 (is_oacc): New prototype.
2825 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
2826 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
2827 EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
2828 EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
2829 EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
2830 EXEC_OACC_EXIT_DATA.
2831 (resolve_codes): Call gfc_resolve_oacc_declare.
2832 * scanner.c (openacc_flag, openacc_locus): New variables.
2833 (skip_free_comments): Update for OpenACC. Move some code into...
2834 (skip_omp_attribute): ... this new function.
2835 (skip_oacc_attribute): New function.
2836 (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
2837 * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
2838 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
2839 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2840 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2841 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2842 * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
2843 * trans-openmp.c: Include "gomp-constants.h".
2844 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
2845 instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
2846 (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
2847 OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
2848 OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
2849 OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
2850 OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
2851 independent, wait_list, num_gangs_expr, num_workers_expr,
2852 vector_length_expr, vector, vector_expr, worker, worker_expr,
2853 gang, gang_expr members.
2854 (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
2855 (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
2856 (gfc_trans_oacc_executable_directive)
2857 (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
2858 (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
2859 * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
2860 * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
2861 New prototypes.
2862 * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
2863 EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
2864 EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
2865 EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
2866 EXEC_OACC_EXIT_DATA.
2867 * gfortran.texi: Update for OpenACC.
2868 * intrinsic.texi: Likewise.
2869 * invoke.texi: Likewise.
2870
727e5f14 28712015-01-15 Janus Weil <janus@gcc.gnu.org>
2872
2873 PR fortran/58023
2874 * resolve.c (resolve_fl_derived0): Continue resolving next component
2875 after error.
2876
579c5597 28772015-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2878
2879 PR fortran/61933
2880 * io.c (gfc_match_inquire): Generate error if unit number in
2881 inquire statement is a constant -1. All other values allowed.
2882 * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
2883 (create_dummy_iostat): Delete function no longer used.
2884
5defa6e6 28852015-01-13 Jakub Jelinek <jakub@redhat.com>
2886
2887 PR fortran/64528
2888 * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
2889 on dummy args with VALUE attribute.
2890
4df331b2 28912015-01-11 Janus Weil <janus@gcc.gnu.org>
2892
2893 PR fortran/63733
2894 * interface.c (gfc_extend_expr): Look for type-bound operators before
2895 non-typebound ones.
2896
ffa1a436 28972015-01-11 Janus Weil <janus@gcc.gnu.org>
2898
2899 PR fortran/58023
2900 * resolve.c (resolve_fl_derived0): Set error flag if problems with the
2901 interface of a procedure-pointer component were detected.
2902
319b6636 29032015-01-11 Janus Weil <janus@gcc.gnu.org>
2904
2905 PR fortran/64508
2906 * interface.c (compare_parameter): Interface check for
2907 procedure-pointer component as actual argument.
2908
c35c9a62 29092015-01-10 Thomas Schwinge <thomas@codesourcery.com>
2910
2911 * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
2912 Runtime Library" to "GNU Offloading and Multi Processing Runtime
2913 Library".
2914 * intrinsic.texi: Likewise.
2915
bf1857ff 29162015-01-10 Tobias Burnus <burnus@net-b.de>
2917
2918 PR fortran/64522
2919 * invoke.texi (Wline-truncation): Document new behaviour.
2920 * lang.opt (Wline-truncation): Add Init(-1).
2921 * options.c (gfc_post_options): If -Wline-truncation is unset,
2922 enable it for free-form source files; for the latter, also use
2923 -Werror=line-truncation, unless -Wno-error has been specified.
2924
1f78217c 29252015-01-09 Michael Collison <michael.collison@linaro.org>
2926
2927 * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2928 input.h, alias.h, symtab.h, options.h, fold-const.h,
2929 wide-int.h, and inchash.h due to flattening of tree.h.
2930 * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2931 input.h, alias.h, symtab.h, fold-const.h,
2932 wide-int.h, and inchash.h due to flattening of tree.h.
2933 * decl.c: Ditto.
2934 * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2935 input.h, alias.h, symtab.h, options.h, fold-const.h,
2936 wide-int.h, and inchash.h due to flattening of tree.h.
2937 * iresolve.c: Ditto.
2938 * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2939 input.h, alias.h, symtab.h, fold-const.h,
2940 wide-int.h, and inchash.h due to flattening of tree.h.
2941 * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2942 input.h, alias.h, symtab.h, options.h, fold-const.h,
2943 wide-int.h, and inchash.h due to flattening of tree.h.
2944 * options.c: Ditto.
2945 * target-memory.c: Include hash-set.h, vec.h,
2946 double-int.h, input.h, alias.h, symtab.h, fold-const.h,
2947 wide-int.h, and inchash.h due to flattening of tree.h.
2948 * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2949 input.h, alias.h, symtab.h, options.h, fold-const.h,
2950 wide-int.h, and inchash.h due to flattening of tree.h.
2951 * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2952 input.h, alias.h, symtab.h, options.h, fold-const.h,
2953 wide-int.h, and inchash.h due to flattening of tree.h.
2954 * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2955 input.h, alias.h, symtab.h, fold-const.h,
2956 wide-int.h, and inchash.h due to flattening of tree.h.
2957 * trans-const.c: Ditto.
2958 * trans-decl.c: Ditto.
2959 * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2960 input.h, alias.h, symtab.h, options.h, fold-const.h,
2961 wide-int.h, and inchash.h due to flattening of tree.h.
2962 * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2963 input.h, alias.h, symtab.h, fold-const.h,
2964 wide-int.h, inchash.h and real.h due to flattening of tree.h.
2965 * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2966 input.h, alias.h, symtab.h, options.h, fold-const.h,
2967 wide-int.h, and inchash.h due to flattening of tree.h.
2968 * trans-openmp.c: Ditto.
2969 * trans-stmt.c: Ditto.
2970 * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2971 input.h, alias.h, symtab.h, fold-const.h,
2972 wide-int.h, inchash.h and real.h due to flattening of tree.h.
2973
3adf245a 29742015-01-08 Tobias Burnus <burnus@net-b.de>
2975
2976 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
2977 for module coarrays with -fcoarray=lib.
2978 (get_proc_pointer_decl): As module variable, make only public
2979 when not marked as private.
2980
8dd9da48 29812015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
2982
2983 PR fortran/47674
2984 * dependency.h: Actually commit changes.
2985
a03c61f8 29862015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
2987
2988 PR fortran/47674
2989 * dependency.c: Update copyright years.
2990 (gfc_discard_nops): Add prototype.
2991 * dependency.c (discard_nops): Rename to gfc_discard_nops,
2992 make non-static.
2993 (gfc_discard_nops): Use gfc_discard_nops.
2994 (gfc_dep_difference): Likewise.
2995 * frontend-passes.c Update copyright years.
2996 (realloc_strings): New function. Add prototype.
2997 (gfc_run_passes): Call realloc_strings.
2998 (realloc_string_callback): New function.
2999 (create_var): Add prototype. Handle case of a
3000 scalar character variable.
3001 (optimize_trim): Do not handle allocatable variables.
3002
e3afb61d 30032015-01-05 Jakub Jelinek <jakub@redhat.com>
3004
d353bf18 3005 Update copyright years.
3006
e3afb61d 3007 * gfortranspec.c (lang_specific_driver): Update copyright notice
3008 dates.
3009 * gfc-internals.texi: Bump @copying's copyright year.
3010 * gfortran.texi: Ditto.
3011 * intrinsic.texi: Ditto.
3012 * invoke.texi: Ditto.
3013
9e1d7062 30142015-01-02 Janus Weil <janus@gcc.gnu.org>
3015
3016 PR fortran/57562
3017 * expr.c (find_component_ref): Deal with extended types.
3018
ac36faf0 30192015-01-02 Tobias Burnus <burnus@net-b.de>
3020
3021 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
3022 for module coarrays with -fcoarray=lib.
3023
23d48c05 30242015-01-02 Janus Weil <janus@gcc.gnu.org>
4c7093c2 3025
23d48c05 3026 PR fortran/60507
3027 * interface.c (is_procptr_result): New function to check if an
3028 expression is a procedure-pointer result.
3029 (compare_actual_formal): Use it.
71a1e0b3 3030^L
ac36faf0 3031Copyright (C) 2015 Free Software Foundation, Inc.
7dfbd804 3032
3033Copying and distribution of this file, with or without modification,
3034are permitted in any medium without royalty provided the copyright
3035notice and this notice are preserved.