1 2014-12-14 Tobias Burnus <burnus@net-b.de>
4 * gfortran.texi (Standards): Mention TS 18508.
5 (Fortran 2003 and 2008 Status): Add section on TS 18508 status.
6 * intrinsic.texi (EVENT_QUERY): Add.
8 2014-12-12 Tobias Burnus <burnus@net-b.de>
11 * expr.c (gfc_is_simply_contiguous): Optionally permit array elements.
12 (gfc_check_pointer_assign): Update call.
13 * interface.c (compare_parameter): Ditto.
14 * trans-array.c (gfc_conv_array_parameter): Ditto.
15 * trans-intrinsic.c (gfc_conv_intrinsic_transfer,
16 conv_isocbinding_function): Ditto.
17 * gfortran.h (gfc_is_simply_contiguous): Update prototype.
19 2014-12-12 Tobias Burnus <burnus@net-b.de>
22 * check.c (gfc_check_reshape): Replace %<%d%> by %qd.
23 * matchexp.c (gfc_match_defined_op_name): Use %qc.
24 * symbol.c (gfc_add_new_implicit_range,
25 gfc_merge_new_implicit): Ditto.
27 2015-12-10 David Malcolm <dmalcolm@redhat.com>
29 * io.c (gfc_match_open): Fix indentation.
31 2015-12-09 Tobias Burnus <burnus@net-b.de>
32 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
34 * trans.c (gfc_allocate_using_lib,gfc_deallocate_with_status):
35 Introducing __asm__ __volatile__ ("":::"memory")
36 after image control statements.
37 * trans-stmt.c (gfc_trans_sync, gfc_trans_event_post_wait,
38 gfc_trans_lock_unlock, gfc_trans_critical): Ditto.
39 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
40 conv_caf_send): Introducing __asm__ __volatile__ ("":::"memory")
41 after send, before get and around sendget.
43 2015-12-09 Tobias Burnus <burnus@net-b.de>
46 * decl.c (gfc_verify_c_interop_param, variable_decl): Use
47 %< ... %> for quoting in diagnostics.
48 * io.c (check_format): Ditto.
49 * resolve.c (resolve_operator): Ditto.
50 * symbol.c (check_conflict): Ditto.
51 * trans-common.c (translate_common): Ditto.
53 2015-12-07 David Malcolm <dmalcolm@redhat.com>
55 * error.c (gfc_format_decoder): Update for change of
56 text_info::set_range to text_info::set_location.
58 2015-12-05 Paul Thomas <pault@gcc.gnu.org>
61 * decl.c (gfc_match_formal_arglist): Correct error, where 'sym'
62 was used instead of 'progname'.
64 2015-12-02 Tobias Burnus <burnus@net-b.de>
65 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
67 * check.c (gfc_check_event_query): New function.
68 * dump-parse-tree.c (show_code_node): Handle EXEC_EVENT_POST,
70 * expr.c (gfc_check_vardef_context): New check for event variables
72 * gfortran.h (gfc_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
73 (gfc_isym_id): GFC_ISYM_EVENT_QUERY.
74 (struct symbol_attribute): New field.
75 (gfc_exec_op): Add EXEC_EVENT_POST and EXEC_EVENT_WAIT.
76 * gfortran.texi: Document about new events functions and minor
78 * interface.c (compare_parameter): New check.
79 (gfc_procedure_use): New check for explicit procedure interface.
80 (add_subroutines): Add event_query.
81 * intrinsic.h (gfc_check_event_query,gfc_resolve_event_query):
83 * iresolve.c (gfc_resolve_event_query): New function.
84 * iso-fortran-env.def (event_type): New type.
85 * match.c (event_statement,gfc_match_event_post,gfc_match_event_wait):
87 (gfc_match_name): New event post and event wait.
88 * match.h (gfc_match_event_post,gfc_match_event_wait):
90 * module.c (ab_attribute): Add AB_EVENT_COMP.
91 (attr_bits): Likewise.
92 (mio_symbol_attribute): Handle event_comp attribute.
93 * parse.c (decode_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
94 (next_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
95 (gfc_ascii_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
96 (parse_derived): Check for event_type components.
97 * resolve.c (resolve_allocate_expr): Check for event variable def.
98 (resolve_lock_unlock): Renamed to resolve_lock_unlock_event. It
99 includes logic for locks and events.
100 (gfc_resolve_code): Call it.
101 (gfc_resolve_symbol): New check for event variable to be a corray.
102 * st.c (gfc_free_statement): Handle new EXEC_EVENT_POST and
104 * trans-decl.c (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
105 gfor_fndecl_caf_event_query): New global variables.
106 (generate_coarray_sym_init): Checking for event_type.
107 (gfc_conv_procedure_call): Check for C bind attribute.
108 * trans-intrinsic.c (conv_intrinsic_event_query): New function.
109 (conv_intrinsic_move_alloc): Call it.
110 * trans-stmt.c (gfc_trans_lock_unlock): Passing address
112 (gfc_trans_sync): Likewise.
113 (gfc_trans_event_post_wait): New function.
114 * trans-stmt.h (gfc_trans_event_post_wait): New prototype.
115 * trans-types.c (gfc_get_derived_type): Integer_kind as event_type.
116 * trans.c (gfc_allocate_using_lib): New argument and logic for events.
117 (gfc_allocate_allocatable): Passing new argument.
118 (trans_code): Handle EXEC_EVENT_POST, EXEC_EVENT_WAIT.
119 * trans.h (gfc_coarray_type): New elements.
120 (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
121 gfor_fndecl_caf_event_query): Declare them.
123 2015-12-02 Cesar Philippidis <cesar@codesourcery.com>
126 * openmp.c (gfc_match_omp_clauses): Allow subarrays for acc reductions.
127 (resolve_omp_clauses): Error on any acc reductions on arrays.
129 2015-12-01 Cesar Philippidis <cesar@codesourcery.com>
131 * dump-parse-tree.c (show_omp_clauses): Handle optional num and static
132 arguments for the gang clause.
133 * gfortran.h (gfc_omp_clauses): Rename gang_expr as gang_num_expr.
134 Add gang_static_expr.
135 * openmp.c (gfc_free_omp_clauses): Update to free gang_num_expr and
137 (match_oacc_clause_gang): Update to support both num and static in
139 (resolve_omp_clauses): Formatting. Also handle gang_num_expr and
141 (resolve_oacc_params_in_parallel): New const char arg argument.
142 Use it to report more accurate gang, worker and vector clause errors.
143 (resolve_oacc_loop_blocks): Update calls to
144 resolve_oacc_params_in_parallel.
145 * trans-openmp.c (gfc_trans_omp_clauses): Update the gimplification of
147 (gfc_trans_oacc_combined_directive): Make use of gang_num_expr and
148 gang_static_expr. Remove OMP_LIST_REDUCTION from construct_clauses.
150 2015-11-30 Cesar Philippidis <cesar@codesourcery.com>
151 James Norris <jnorris@codesourcery.com>
152 Nathan Sidwell <nathan@codesourcery.com>
154 * f95-lang.c (gfc_attribute_table): Add an "oacc function"
156 * gfortran.h (symbol_attribute): Add an oacc_function bit-field.
157 (gfc_oacc_routine_name): New struct;
158 (gfc_get_oacc_routine_name): New macro.
159 (gfc_namespace): Add oacc_routine_clauses, oacc_routine_names and
161 (gfc_exec_op): Add EXEC_OACC_ROUTINE.
162 * openmp.c (OACC_ROUTINE_CLAUSES): New mask.
163 (gfc_oacc_routine_dims): New function.
164 (gfc_match_oacc_routine): Add support for named routines and the
165 gang, worker vector and seq clauses.
166 * parse.c (is_oacc): Add EXEC_OACC_ROUTINE.
167 * resolve.c (gfc_resolve_blocks): Likewise.
168 * st.c (gfc_free_statement): Likewise.
169 * trans-decl.c (add_attributes_to_decl): Attach an 'oacc function'
170 attribute and shape geometry for acc routine.
172 2015-11-30 Paul Thomas <pault@gcc.gnu.org>
175 * decl.c (gfc_match_formal_arglist): Cope with zero formal args
176 either in interface declaration or in procedure declaration in
179 2015-11-25 Steven G. Kargl <kargl@gcc.gnu.org>
182 * trans-stmt.c (gfc_do_allocate): Convert gcc_assert argument into
183 into part of conditional statement.
185 2015-11-25 Ilmir Usmanov <me@ilmir.us>
186 Cesar Philippidis <cesar@codesourcery.com>
189 * scanner.c (skip_oacc_attribute): Remove continue_flag parameter.
191 (skip_free_oacc_sentinel): ... this.
192 (skip_omp_attribute): Remove continue_flag parameter. Rename as ...
193 (skip_free_omp_sentinel): ... this.
194 (skip_free_comments): Update to call skip_free_oacc_sentinel and
195 skip_free_omp_sentinel.
196 (skip_fixed_omp_sentinel): New function.
197 (skip_fixed_oacc_sentinel): New function.
198 (skip_fixed_comments): Fix mix of OpenACC and OpenMP sentinels in
201 2015-11-24 Steven G. Kargl <kargl@gcc.gnu.org>
204 * simplify.c (gfc_simplify_cshift): Allow all EXPR_*.
206 2015-11-22 Steven G. Kargl <kargl@gcc.gnu.org>
209 * simplify.c (gfc_simplify_cshift): Add EXPR_OP to mix.
211 2015-11-22 James Norris <jnorris@codesourcery.com>
212 Steven G. Kargl <kargl@gcc.gnu.org>
214 * openmp.c (match_oacc_clause_gang): Fix uninitialized variable.
215 (gfc_resolve_oacc_declare): Fix comparision.
217 2015-11-22 James Norris <jnorris@codesourcery.com>
218 Cesar Philippidis <cesar@codesourcery.com>
220 * dump-parse-tree.c (show_namespace): Handle declares.
221 * gfortran.h (struct symbol_attribute): New fields.
222 (enum gfc_omp_map_map): Add OMP_MAP_DEVICE_RESIDENT and OMP_MAP_LINK.
223 (OMP_LIST_LINK): New enum.
224 (struct gfc_oacc_declare): New structure.
225 (gfc_get_oacc_declare): New definition.
226 (struct gfc_namespace): Change type.
227 (enum gfc_exec_op): Add EXEC_OACC_DECLARE.
228 (struct gfc_code): New field.
229 * module.c (enum ab_attribute): Add AB_OACC_DECLARE_CREATE,
230 AB_OACC_DECLARE_COPYIN, AB_OACC_DECLARE_DEVICEPTR,
231 AB_OACC_DECLARE_DEVICE_RESIDENT, AB_OACC_DECLARE_LINK
232 (attr_bits): Add new initializers.
233 (mio_symbol_attribute): Handle new atributes.
234 * openmp.c (gfc_free_oacc_declare_clauses): New function.
235 (gfc_match_oacc_clause_link: Likewise.
236 (OMP_CLAUSE_LINK): New definition.
237 (gfc_match_omp_clauses): Handle OMP_CLAUSE_LINK.
238 (OACC_DECLARE_CLAUSES): Add OMP_CLAUSE_LINK
239 (gfc_match_oacc_declare): Add checking and module handling.
240 (resolve_omp_clauses): Add array initializer.
241 (gfc_resolve_oacc_declare): Reimplement.
242 * parse.c (case_decl): Add ST_OACC_DECLARE.
243 (parse_spec): Remove handling.
244 (parse_progunit): Remove handling.
245 * parse.h (struct gfc_state_data): Change type.
246 * resolve.c (gfc_resolve_blocks): Handle EXEC_OACC_DECLARE.
247 * st.c (gfc_free_statement): Handle EXEC_OACC_DECLARE.
248 * symbol.c (check_conflict): Add conflict checks.
249 (gfc_add_oacc_declare_create, gfc_add_oacc_declare_copyin,
250 gfc_add_oacc_declare_deviceptr, gfc_add_oacc_declare_device_resident):
252 (gfc_copy_attr): Handle new symbols.
253 * trans-decl.c (add_clause, find_module_oacc_declare_clauses,
254 finish_oacc_declare): New functions.
255 (gfc_generate_function_code): Replace with call.
256 * trans-openmp.c (gfc_trans_oacc_declare): Reimplement.
257 (gfc_trans_oacc_directive): Handle EXEC_OACC_DECLARE.
258 * trans-stmt.c (gfc_trans_block_construct): Replace with call.
259 * trans-stmt.h (gfc_trans_oacc_declare): Remove argument.
260 * trans.c (trans_code): Handle EXEC_OACC_DECLARE.
262 2015-11-21 Steven G. Kargl <kargl@gcc.gnu.org>
264 * simplify.c (gfc_simplify_cshift): Work around bootstrap issues
265 due to inappropriate warning options.
267 2015-11-21 Steven G. Kargl <kargl@gcc.gnu.org>
269 * simplify.c (gfc_simplify_cshift): Implement simplification of
270 CSHIFT for rank=1 arrays.
271 (gfc_simplify_spread): Remove a FIXME and add error condition.
272 * intrinsic.h: Prototype for gfc_simplify_cshift
273 * intrinsic.c (add_functions): Use gfc_simplify_cshift.
275 2015-11-20 Steven G. Kargl <kargl@gcc.gnu.org>
278 * decl.c (gfc_match_submod_proc): Test the interface symbol
279 before accessing its attributes.
281 2015-11-20 Paul Thomas <pault@gcc.gnu.org>
284 (gfc_get_symbol_decl): Test for attr.used_in_submodule as well
285 as attr.use_assoc (twice).
286 (gfc_create_module_variable): Ditto.
288 2015-11-18 Steven G. Kargl <kargl@gcc.gnu.org>
291 * primary.c (gfc_match_structure_constructor): Reduce a structure
292 constructor in a DATA statement.
294 2015-11-18 Steven G. Kargl <kargl@gcc.gnu.org>
297 * simplify.c (gfc_simplify_spread): Issue error for too large array
298 constructor in a PARAMETER statement.
300 2015-11-17 Steven G. Kargl <kargl@gcc.gnu.org>
302 * primary.c (gfc_match_structure_constructor): Fix whitespace.
304 2015-11-17 Dominique d'Humieres <dominiq@lps.ens.fr>
307 * expr.c (gfc_check_pointer_assign): Fix error message.
309 2015-11-16 Steven G. Kargl <kargl@gcc.gnu.org>
313 * expr.c (gfc_check_init_expr): Prevent a redundant check when a
314 __convert_* function was inserted into an array constructor.
315 (gfc_check_assign_symbol): Check for an initialization expression
316 when a __convert_* was inserted.
318 2015-11-15 Paul Thomas <pault@gcc.gnu.org>
324 * trans_array.c (gfc_conv_scalarized_array_ref): Pass the
325 symbol decl for deferred character length array references.
326 * trans-stmt.c (gfc_trans_allocate): Keep the string lengths
327 to update deferred length character string lengths.
328 * trans-types.c (gfc_get_dtype_rank_type); Use the string
329 length of deferred character types for the dtype size.
330 * trans.c (gfc_build_array_ref): For references to deferred
331 character arrays, use the domain max value, if it is a variable
332 to set the 'span' and use pointer arithmetic for acces to the
334 (trans_code): Set gfc_current_locus for diagnostic purposes.
337 * trans-expr.c (gfc_conv_procedure_call): Do not fix deferred
338 string lengths of components.
341 * resolve.c (deferred_op_assign): New function.
342 (gfc_resolve_code): Call it.
343 * trans-array.c (concat_str_length): New function.
344 (gfc_alloc_allocatable_for_assignment): Jump directly to alloc/
345 realloc blocks for deferred character length arrays because the
346 string length might change, even if the shape is the same. Call
347 concat_str_length to obtain the string length for concatenation
348 since it is needed to compute the lhs string length.
349 Set the descriptor dtype appropriately for the new string
351 * trans-expr.c (gfc_trans_assignment_1): Use the rse string
352 length for all characters, other than deferred types. For
353 concatenation operators, push the rse.pre block to the inner
354 most loop so that the temporary pointer and the assignments
357 2015-11-14 Steven G. Kargl <kargl@gcc.gnu.org>
360 * array.c (gfc_match_array_constructor): If array constructor included
361 a CHARACTER typespec, check array elements for compatible type.
363 2015-11-13 Steven G. Kargl <kargl@gccc.gnu.org>
366 * decl.c (gfc_match_data, gfc_match_entry): Enforce F2008:C1206.
367 * io.c (gfc_match_format): Ditto.
368 * match.c (gfc_match_st_function): Ditto.
370 2015-11-13 David Malcolm <dmalcolm@redhat.com>
372 * error.c (gfc_warning): Pass line_table to rich_location ctor.
373 (gfc_warning_now_at): Likewise.
374 (gfc_warning_now): Likewise.
375 (gfc_error_now): Likewise.
376 (gfc_fatal_error): Likewise.
377 (gfc_error): Likewise.
378 (gfc_internal_error): Likewise.
380 2015-11-12 Steven G. Kargl <kargl@gcc.gnu.org>
383 * decl.c (get_proc_name): Increment reference count for ENTRY.
384 While here, fix comment and use postfix ++ for consistency.
386 2015-11-11 Andrew MacLeod <amacleod@redhat.com>
388 * array.c: Remove unused header files.
389 * convert.c: Likewise.
392 * f95-lang.c: Likewise.
393 * frontend-passes.c: Likewise.
394 * iresolve.c: Likewise.
396 * module.c: Likewise.
397 * options.c: Likewise.
399 * target-memory.c: Likewise.
400 * trans-array.c: Likewise.
401 * trans-common.c: Likewise.
402 * trans-const.c: Likewise.
403 * trans-decl.c: Likewise.
404 * trans-expr.c: Likewise.
405 * trans-intrinsic.c: Likewise.
406 * trans-io.c: Likewise.
407 * trans-openmp.c: Likewise.
408 * trans-stmt.c: Likewise.
409 * trans-types.c: Likewise.
412 2015-11-11 Dominique d'Humieres <dominiq@lps.ens.fr>
415 * openmp.c (gfc_omp_udr_find): Fix typo.
417 2015-11-08 Steven g. Kargl <kargl@gcc.gnu.org>
420 * decl.c (add_init_expr_to_sym): Try to reduce initialization expression
421 before testing for a constant value.
423 2015-11-08 Andre Vehreschild <vehre@gcc.gnu.org>
426 * trans-array.c (gfc_array_init_size): Add gfc_evaluate_now() when
427 array spec in allocate is a function call.
429 2015-11-08 Steven G. Kargl <kargl@gc.gnu.org>
432 * array.c (match_array_element_spec): Check of invalid NULL().
433 While here, fix nearby comments.
435 2015-11-08 Paul Thomas <pault@gcc.gnu.org>
438 * class.c (has_finalizer_component): Prevent infinite recursion
439 through this function if the derived type and that of its
440 component are the same.
441 * trans-types.c (gfc_get_derived_type): Do the same for proc
442 pointers by ignoring the explicit interface for the component.
445 * check.c (same_type_check): If either of the expressions is
446 BT_PROCEDURE, use the typespec from the symbol, rather than the
449 2015-11-07 Steven G. Kargl <kargl@gcc.gnu.org>
452 * check.c (gfc_check_reshape): Improve check for valid SHAPE argument.
454 2015-11-07 Steven G. Kargl <kargl@gcc.gnu.org>
457 * match.c (match_case_selector): Check for invalid type.
459 2015-11-06 David Malcolm <dmalcolm@redhat.com>
461 * cpp.c (cb_cpp_error): Convert parameter from location_t to
462 rich_location *. Eliminate the "column_override" parameter.
463 * error.c (gfc_warning): Update for change in signature of
465 (gfc_format_decoder): Update handling of %C/%L for changes
467 (gfc_diagnostic_starter): Use richloc when determining whether to
468 print one locus or two. When handling a location that will
469 involve a call to diagnostic_show_locus, only attempt to print the
470 locus for the primary location, and don't call into
471 diagnostic_print_caret_line.
472 (gfc_warning_now_at): Update for change in signature of
474 (gfc_warning_now): Likewise.
475 (gfc_error_now): Likewise.
476 (gfc_fatal_error): Likewise.
477 (gfc_error): Likewise.
478 (gfc_internal_error): Likewise.
480 2015-11-05 Cesar Philippidis <cesar@codesourcery.com>
482 * openmp.c (gfc_match_omp_clauses): Update support for the tile
483 and default clauses in OpenACC.
484 (gfc_match_oacc_update): Error when data clauses are supplied.
485 (oacc_compatible_clauses): Delete.
486 (resolve_omp_clauses): Give special care for OpenACC reductions.
487 Also update error reporting for the tile clause.
488 (resolve_oacc_loop_blocks): Update error reporting for the tile clause.
489 * trans-openmp.c (gfc_trans_omp_clauses): Update OMP_CLAUSE_SEQ. Add
490 OMP_CLAUSE_{AUTO,TILE} and add support the the gang static argument.
491 (gfc_trans_oacc_combined_directive): Update the list of clauses which
492 are split to acc loops.
494 2015-11-05 Jakub Jelinek <jakub@redhat.com>
496 * types.def (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
497 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
499 2015-11-03 Thomas Schwinge <thomas@codesourcery.com>
500 Chung-Lin Tang <cltang@codesourcery.com>
502 * gfortran.h (gfc_statement): Add ST_OACC_ATOMIC,
504 (gfc_exec_op): Add EXEC_OACC_ATOMIC.
505 * match.h (gfc_match_oacc_atomic): New prototype.
506 * openmp.c (gfc_match_omp_atomic, gfc_match_oacc_atomic): New
507 wrapper functions around...
508 (gfc_match_omp_oacc_atomic): ... this new function.
509 (oacc_code_to_statement, gfc_resolve_oacc_directive): Handle
511 * parse.c (decode_oacc_directive): Handle "atomic", "end atomic".
512 (case_exec_markers): Add ST_OACC_ATOMIC.
513 (gfc_ascii_statement): Handle ST_OACC_ATOMIC, ST_OACC_END_ATOMIC.
514 (parse_omp_atomic): Rename to...
515 (parse_omp_oacc_atomic): ... this new function. Add omp_p formal
516 parameter. Adjust all users.
517 (parse_executable): Handle ST_OACC_ATOMIC.
518 (is_oacc): Handle EXEC_OACC_ATOMIC.
519 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
521 * st.c (gfc_free_statement): Handle EXEC_OACC_ATOMIC.
522 * trans-openmp.c (gfc_trans_oacc_directive): Handle
524 * trans.c (trans_code): Handle EXEC_OACC_ATOMIC.
526 2015-10-31 Cesar Philippidis <cesar@codesourcery.com>
530 * openmp.c (resolve_omp_clauses): Pass &n->where when calling
533 2015-10-30 Cesar Philippidis <cesar@codesourcery.com>
535 * gfortran.h (gfc_omp_namespace): Add locus where member.
536 * openmp.c (gfc_match_omp_variable_list): Set where for each list
538 (resolve_omp_clauses): Remove where argument and use the where
539 gfc_omp_namespace member when reporting errors.
540 (resolve_omp_do): Update call to resolve_omp_clauses.
541 (resolve_oacc_loop): Likewise.
542 (gfc_resolve_oacc_directive): Likewise.
543 (gfc_resolve_omp_directive): Likewise.
544 (gfc_resolve_omp_declare_simd): Likewise.
546 2015-10-15 Steven G. Kargl <kargl@gcc.gnu.org>
549 * decl.c (gfc_set_constant_character_len): Convert gcc_assert into an
550 if-statement causing an early return leads to valid error message.
552 2015-10-30 Steven G. Kargl <kargl@gcc.gnu.org>
555 * interface.c (get_expr_storage_size): Check for INTEGER type before
556 calling gmp routines.
558 2015-10-30 Steven G. Kargl <kargl@gcc.gnu.org>
561 * decl.c (add_init_expr_to_sym): if the char length in the typespec
562 is NULL, check for and use a constructor.
564 2015-10-30 Steven G. Kargl <kargl@gcc.gnu.org>
567 * decl.c (match_attr_spec): PROTECTED can only be a module.
569 2015-10-29 Steven G. Kargl <kargl@gcc.gnu.org>
572 * trans-decl.c (generate_local_decl): Mark PARAMETER entities in
575 2015-10-29 Andrew MacLeod <amacleod@redhat.com>
577 * array.c: Reorder #include's and remove duplicates.
578 * convert.c: Likewise.
581 * f95-lang.c: Likewise.
582 * frontend-passes.c: Likewise.
583 * iresolve.c: Likewise.
585 * module.c: Likewise.
586 * options.c: Likewise.
588 * resolve.c: Likewise.
589 * simplify.c: Likewise.
590 * target-memory.c: Likewise.
591 * trans-array.c: Likewise.
592 * trans-common.c: Likewise.
593 * trans-const.c: Likewise.
594 * trans-decl.c: Likewise.
595 * trans-expr.c: Likewise.
596 * trans-intrinsic.c: Likewise.
597 * trans-io.c: Likewise.
598 * trans-openmp.c: Likewise.
599 * trans-stmt.c: Likewise.
600 * trans-types.c: Likewise.
603 2015-10-29 Richard Biener <rguenther@suse.de>
605 * f95-lang.c: Properly build variadic types for classification
606 and comparison builtins.
608 2015-10-27 Thomas Schwinge <thomas@codesourcery.com>
609 James Norris <jnorris@codesourcery.com>
612 * openmp.c (resolve_oacc_cache): Remove function.
613 (gfc_match_oacc_cache): Enable array sections.
614 (resolve_omp_clauses, gfc_resolve_oacc_directive): Change
616 * trans-openmp.c (gfc_trans_omp_clauses): Likewise.
618 2015-10-27 Steven G. Kargl <kargl@gcc.gnu.org>
621 * decl.c (char_len_param_value): Check for REF_ARRAY.
623 2015-10-26 Louis Krupp <louis.krupp@zoho.com>
626 * fortran.h: Include namespace pointer in statement label
628 * symbol.c (gfc_get_st_label): Store pointer to namespace
629 that owns the statement label tree in each label.
630 (gfc_free_st_label): Use namespace owning statement label
631 tree when deleting statement label.
632 * io.c: Initialize format_asterisk with NULL namespace pointer.
634 2015-10-26 Steven G. Kargl <kargl@gcc.gnu.org>
637 * array.c (gfc_ref_dimen_size): Check for BT_INTEGER before calling
640 2015-10-26 Andre Vehreschild <vehre@gcc.gnu.org>
643 * trans-array.c (evaluate_bound): For deferred length arrays get the
644 bounds directly from the descriptor, i.e., prevent using constant
645 zero lower bound from the gfc_conv_array_lbound () routine.
646 (gfc_conv_section_startstride): Hand deferred array status to
648 (gfc_conv_expr_descriptor): Same.
650 2015-01-25 Paul Thomas <pault@gcc.gnu.org>
653 * trans-array.c (structure_alloc_comps): On deallocation of
654 class components, reset the vptr to the declared type vtable
655 and reset the _len field of unlimited polymorphic components.
656 *trans-expr.c (gfc_find_and_cut_at_last_class_ref): Bail out on
657 allocatable component references to the right of part reference
658 with non-zero rank and return NULL.
659 (gfc_reset_vptr): Simplify this function by using the function
660 gfc_get_vptr_from_expr. Return if the vptr is NULL_TREE.
661 (gfc_reset_len): If gfc_find_and_cut_at_last_class_ref returns
663 * trans-stmt.c (gfc_trans_allocate): Rely on the use of
664 gfc_trans_assignment if expr3 is a variable expression since
665 this deals correctly with array sections.
667 2015-10-25 Andre Vehreschild <vehre@gcc.gnu.org>
671 * trans-array.c (build_array_ref): Modified call to
672 gfc_get_class_array_ref to adhere to new interface.
673 (gfc_conv_expr_descriptor): For one-based arrays that
674 are filled by a loop starting at one the start index of the
675 source array has to be mangled into the offset.
676 * trans-expr.c (gfc_get_class_array_ref): When the tree to get
677 the _data component is present already, add a way to supply it.
678 (gfc_copy_class_to_class): Allow to copy to a derived type also.
679 * trans-stmt.c (gfc_trans_allocate): Do not conv_expr_descriptor
680 for functions returning a class or derived object. Get the
682 * trans.h: Interface change of gfc_get_class_array_ref.
684 2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
687 * decl.c (gfc_match_decl_type_spec): Check for valid kind in old-style
690 2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
693 * array.c (gfc_match_array_constructor): Check for error from type
695 * decl.c (char_len_param_value): Check for valid of charlen parameter.
696 Reap dead code dating to 2008.
697 match.c (gfc_match_type_spec): Special case the keyword use in REAL.
699 2015-10-23 Mikhail Maltsev <maltsevm@gmail.com>
701 * trans-common.c (create_common): Adjust to use flag_checking.
702 * trans.c (gfc_add_modify_loc): Use gcc_checking_assert.
704 2015-10-21 Martin Sebor <msebor@redhat.com>
707 * lang.opt: End each sentence that describes an option with a period.
709 2015-10-21 Steven G. Kargl <kargl@gcc.gnu.org>
712 * data.c (create_character_initializer): Deal with zero length string.
714 2015-10-19 Steven G. Kargl <kargl@gcc.gnu.org>
716 * resolve.c (gfc_verify_binding_labels): Check for NULL pointer.
718 2015-10-19 Steven G. Kargl <kargl@gcc.gnu.org>
721 * decl.c (add_init_expr_to_sym): Remove an assert() to allow an error
722 message to be issued.
724 2015-10-18 Mikael Morin <mikael@gcc.gnu.org>
727 * gfortran.h (gfc_symbol): Expand comment.
728 * match.c (gfc_match_common): Delay adding the symbol to
729 the common_block after the gfc_add_in_common call.
730 * symbol.c (gfc_free_symbol): Move common block memory handling...
731 (gfc_set_symbol_common_block): ... here as a new function.
732 (restore_old_symbol): Restore common block fields.
733 (gfc_restore_last_undo_checkpoint):
734 Check the common_block pointer instead of the in_common attribute.
735 When a symbol has been removed from the common block linked list,
736 clear its common_next pointer.
738 2015-10-18 Paul Thomas <pault@gcc.gnu.org>
742 * primary.c (match_substring): Add an argument 'deferred' to
743 flag that a substring reference with null start and end should
744 not be optimized away for deferred length strings.
745 (match_string_constant, gfc_match_rvalue): Set the argument.
746 * trans-expr.c (alloc_scalar_allocatable_for_assignment): If
747 there is a substring reference return.
748 * trans-intrinsic.c (conv_intrinsic_move_alloc): For deferred
749 characters, assign the 'from' string length to the 'to' string
750 length. If the 'from' expression is deferred, set its string
751 length to zero. If the 'to' expression has allocatable
752 components, deallocate them.
754 2015-10-17 Steven G. Kargl <kargl@gcc.gnu.org>
757 * decl.c (char_len_param_value): Unwrap unlong line. If LEN < 0,
758 force it to zero per the Fortran 90, 95, 2003, and 2008 Standards.
759 * resolve.c (gfc_resolve_substring_charlen): Unwrap unlong line.
760 If 'start' is larger than 'end', length of substring is negative,
761 so explicitly set it to zero.
762 (resolve_charlen): Remove -Wsurprising warning. Update comment to
763 reflect that the text is from the F2008 standard.
765 2015-10-16 Richard Biener <rguenther@suse.de>
767 * trans-intrinsic.c (gfc_conv_intrinsic_lib_function): Adjust
769 (gfc_conv_intrinsic_mod): Likewise.
770 (gfc_conv_intrinsic_ctime): Likewise.
771 (gfc_conv_intrinsic_fdate): Likewise.
772 (gfc_conv_intrinsic_ttynam): Likewise.
773 (gfc_conv_intrinsic_minmax_char): Likewise.
774 (gfc_conv_intrinsic_index_scan_verify): Likewise.
775 (gfc_conv_intrinsic_trim): Likewise.
777 2015-10-14 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
779 * parse.c (decode_statement): Initialize M to MATCH_NO.
781 2015-10-13 Jakub Jelinek <jakub@redhat.com>
782 Ilya Verbin <ilya.verbin@intel.com>
784 * f95-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
785 DEF_FUNCTION_TYPE_11, DEF_FUNCTION_TYPE_VAR_1): Define.
786 * trans-openmp.c (gfc_trans_omp_clauses): Set
787 OMP_CLAUSE_IF_MODIFIER to ERROR_MARK, OMP_CLAUSE_ORDERED_EXPR
789 (gfc_trans_omp_critical): Adjust for addition of clauses.
790 (gfc_trans_omp_ordered): Likewise.
791 * types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
792 BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
793 BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
794 BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
795 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
796 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
797 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
798 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
799 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
800 BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
801 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
802 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
803 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
805 2015-10-07 Andre Vehreschild <vehre@gcc.gnu.org>
808 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle pointer to and
809 on stack class objects as sizeof parameter.
811 2015-10-06 Louis Krupp <louis.krupp@zoho.com>
813 * resolve.c (gfc_resolve_substring_charlen): For derived type,
814 use typespec of string component when resolving substring length.
816 2015-10-04 Mikael Morin <mikael@gcc.gnu.org>
818 * match.c (gfc_match_common): Remove dead variable old_blank_common.
820 2015-10-04 Mikael Morin <mikael@gcc.gnu.org>
823 * match.c (gfc_match_common): Delay the common_block pointer
824 assignment after error checking.
825 Delay the call to gfc_add_in_common attribute after the handling
827 * resolve.c (resolve_common_vars): Call gfc_add_in_common again.
829 2015-10-04 Mikael Morin <mikael@gcc.gnu.org>
831 * resolve.c (resolve_common_vars): Move access to the common
832 block's head symbol inside the function.
833 (resolve_common_blocks, resolve_types): Update callers.
835 2015-10-01 Louis Krupp <louis.krupp@zoho.com>
840 (store_backend_decl): Create new gfc_charlen instance if requested
841 (get_array_ctor_all_strlen): Call store_backend_decl requesting
843 (trans_array_constructor): Call store_backend_decl requesting
844 new gfc_charlen if get_array_ctor_strlen was called
845 (gfc_add_loop_ss_code): Don't try to convert non-constant length
847 2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
850 * decl.c (add_init_expr_to_sym): Numeric constant for character
851 length must be an INTEGER.
853 2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
856 * io.c (gfc_resolve_filepos): Check for a UNIT number. Add a nearby
857 missing 'return false'.
859 2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
862 * primary.c (gfc_match_structure_constructor): Use a possibly
863 host-associated symtree to prevent ICE.
865 2015-09-28 Paul Thomas <pault@gcc.gnu.org>
869 * decl.c (get_proc_name): Return if statement function is
871 * expr.c (gfc_check_vardef_context): Add error return for
872 derived type expression lacking the derived type itself.
873 * match.c (gfc_match_ptr_fcn_assign): New function.
874 * match.h : Add prototype for gfc_match_ptr_fcn_assign.
875 * parse.c : Add static flag 'in_specification_block'.
876 (decode_statement): If in specification block match a statement
877 function, then, if no error arising from statement function
878 matching, try to match pointer function assignment.
879 (parse_interface): Set 'in_specification_block' on exiting from
881 (parse_spec): Set and then reset 'in_specification_block'.
882 (gfc_parse_file): Set 'in_specification_block'.
883 * resolve.c (get_temp_from_expr): Extend to include functions
884 and array constructors as rvalues..
885 (resolve_ptr_fcn_assign): New function.
886 (gfc_resolve_code): Call it on finding a pointer function as an
887 lvalue. If valid or on error, go back to start of resolve_code.
888 * symbol.c (gfc_add_procedure): Add a sentence to the error to
889 flag up the ambiguity between a statement function and pointer
890 function assignment at the end of the specification block.
892 2015-09-28 Nathan Sidwell <nathan@codesourcery.com>
894 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
895 (DEF_FUNCTION_TYPE_VAR_11): Delete.
896 * types.def (DEF_FUNCTION_TYPE_VAR_6): New.
897 (DEF_FUNCTION_TYPE_VAR_11): Delete.
899 2015-09-26 Mikael Morin <mikael@gcc.gnu.org>
902 * trans-expr.c (gfc_trans_assignment_1): Remove the non-constantness
903 condition guarding deep copy.
905 2013-09-26 Paul Thomas <pault@gcc.gnu.org>
908 * resolve.c (resolve_fl_procedure): For module procedures, take
909 the parent module name and the submodule name from the name of
912 2015-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
915 * resolve.c (gfc_resolve_code): Prevent ICE for invalid EXPR_NULL.
917 2015-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
920 * parse.c (match_deferred_characteristics): Remove an assert, which
921 allows an invalid SELECT TYPE selector to be detected.
923 2015-09-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
925 PR pretty-print/67567
926 * resolve.c (resolve_fl_procedure): Work-around when iface->module
929 2015-09-21 Steven G. Kargl <kargl@gcc.gnu.org>
931 * resolve.c (nonscalar_typebound_assign): Fix typos in comment.
933 2015-09-21 Steven G. Kargl <kargl@gcc.gnu.org>
936 * resolve.c (gfc_resolve_code): Check for scalar expression in
939 2015-09-17 Paul Thomas <pault@gcc.gnu.org>
943 * module.c : Add static no_module_procedures.
944 (gfc_match_submodule): Correct memory leakage caused during the
945 freeing of use_lists.
946 (mio_symbol_attribute): Reset above if module procedure is
948 (gfc_dump_module): Set above and exit without writing smod file
950 * gfortran.texi : Add section on submodule support.
952 2015-09-10 Steven G. Kargl <kargl@gcc.gnu.org>
955 * expr.c (gfc_check_init_expr): Do not dereference a NULL pointer.
957 2015-09-10 Paul Thomas <pault@gcc.gnu.org>
960 * module.c (read_module): If a symtree exists and the symbol has
961 been associated in a submodule from a parent (sub)module, attach
962 the symbol to a 'unique symtree' and the new symbol to the
965 2015-09-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
967 * intrinsic.h (gfc_simplify_mvbits): Remove.
968 * simplify.c (gfc_simplify_mvbits): Remove.
969 * intrinsic.c (add_subroutines): Remove reference to
972 2015-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
975 * error.c (gfc_clear_pp_buffer): Reset last_location, otherwise
976 caret lines might be skipped when actually giving a diagnostic.
978 2015-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
981 * trans.c (gfc_call_free): Don't check if pointer is NULL.
982 * trans.h (gfc_call_free): Adjust comment.
984 2015-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
986 * trans.c (gfc_call_malloc, gfc_allocate_using_malloc,
987 gfc_allocate_using_lib, gfc_allocate_allocatable,
988 gfc_call_realloc): Simplify code.
989 * trans-array.c (gfc_trans_allocate_array_storage,
990 gfc_trans_auto_array_allocation, gfc_conv_array_parameter): Do not
991 convert gfc_call_free() argument.
992 * trans-expr.c (gfc_conv_string_tmp, gfc_conv_procedure_call,
993 fcncall_realloc_result): Likewise.
994 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Likewise.
996 2015-08-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
999 * intrinsic.c (add_functions, add_subroutines): Remove resolution
1000 functions for FREE and MALLOC.
1001 * intrinsic.h (gfc_resolve_malloc, gfc_resolve_free): Remove.
1002 * iresolve.c (gfc_resolve_malloc, gfc_resolve_free): Remove.
1003 * trans-intrinsic.c (conv_intrinsic_free,
1004 gfc_conv_intrinsic_malloc): New functions.
1006 2015-08-24 Louis Krupp <louis.krupp@zoho.com>
1010 * decl.c (gfc_match_end): Clean up nested BLOCKs.
1011 * parse.c (parse_block_construct): Deal gracefully with cleaned-up
1014 2015-08-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1017 * config-lang.in: Add libbacktrace to target_libs.
1019 2015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
1021 * dependency.c, dependency.h, gfortran.h, io.c, module.c,
1022 parse.h, resolve.c, trans-types.h, trans.h: remove useless typedefs.
1024 2015-08-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1027 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Add decl
1028 for quadruple precision BUILT_IN_SQRT.
1030 2015-08-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1032 * trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type
1033 generic BUILT_IN_SIGNBIT.
1034 (conv_intrinsic_ieee_copy_sign): Likewise.
1035 * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_ISINF,
1036 BUILT_IN_ISINF_SIGN, BUILT_IN_SIGNBIT, BUILT_IN_ISLESS,
1037 BUILT_IN_ISLESSGREATER, BUILT_IN_ISGREATER. Remove non-type generic
1038 variants of BUILT_IN_SIGNBIT.
1039 * mathbuiltins.def: Remove SIGNBIT.
1041 2015-08-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1044 * gfortran.texi: New section "File operations on symbolic links".
1046 2015-08-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1049 * gfortranspec.c (lang_specific_driver): Adjust --version output.
1051 2015-08-08 Bud Davis <jmdavis@link.com>
1052 Mikael Morin <mikael@gcc.gnu.org>
1055 * symbol.c (gfc_restore_last_undo_checkpoint): Delete a common block
1056 symbol if it was put in the list.
1058 2015-08-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1061 * expr.c (gfc_check_init_expr): Allow some IEEE functions in
1062 constant expressions.
1063 (external_spec_function): Allow some IEEE functions in specification
1065 * simplify.c (gfc_simplify_ieee_selected_real_kind): Remove.
1066 (simplify_ieee_selected_real_kind, simplify_ieee_support,
1067 matches_ieee_function_name, gfc_simplify_ieee_functions): New
1069 * gfortran.h (gfc_simplify_ieee_selected_real_kind): Remove
1071 (gfc_simplify_ieee_functions): Add prototype.
1073 2015-08-06 Mikael Morin <mikael@gcc.gnu.org>
1075 * trans.h (gfc_trans_scalar_assign): Remove fourth argument.
1076 * trans-expr.c (gfc_trans_scalar_assign): Merge fourth into sixth
1078 (gfc_conv_subref_array_arg, gfc_trans_subarray_assign,
1079 gfc_trans_subcomponent_assign, gfc_trans_assignment_1): Update callers.
1080 * trans-array.c (gfc_conv_expr_descriptor): Ditto.
1081 * trans-stmt.c (forall_make_variable_temp,
1082 generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
1083 gfc_trans_where_assign, gfc_trans_where_3): Ditto.
1085 2015-08-05 Paul Thomas <pault@gcc.gnu.org>
1088 * module.c (check_access): Return true if new static flag
1089 'dump_smod' is true..
1090 (gfc_dump_module): Rename original 'dump_module' and call from
1091 new version. Use 'dump_smod' rather than the stack state to
1092 determine if a submodule is being processed. The new version of
1093 this procedure sets 'dump_smod' depending on the stack state and
1094 then writes both the mod and smod files if a module is being
1095 processed or just the smod for a submodule.
1096 (gfc_use_module): Eliminate the check for module_name and
1097 submodule_name being the same.
1098 * trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array,
1099 get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use
1100 the conditions to set DECL_VISIBILITY as hidden and to set as
1101 true DECL_VISIBILITY_SPECIFIED.
1103 2015-08-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1106 * simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
1107 support to all real kinds.
1109 2015-08-03 Steven G. Kargl <kargl@gcc.gnu.org>
1112 * trans-expr.c (gfc_conv_procedure_call): Avoid NULL pointer reference
1114 2015-08-03 Mikael Morin <mikael@gcc.gnu.org>
1117 * class.c (generate_finalization_wrapper): Set finalization
1118 procedure symbol's always_explicit attribute.
1120 2015-08-01 Paul Thomas <pault@gcc.gnu.org>
1123 * trans-intrinsic.c (gfc_conv_associated): Add the pre and post
1124 blocks for the second argument to se.
1126 2015-07-27 Thomas Schwinge <thomas@codesourcery.com>
1128 * parse.c (parse_oacc_structured_block): Fix logic error.
1129 Reported by Mikael Morin <mikael.morin@sfr.fr>.
1131 2015-07-24 Mikael Morin <mikael@gcc.gnu.org>
1134 * trans-expr.c (gfc_trans_assignment_1): Put component deallocation
1135 code at the beginning of the block.
1137 2015-07-22 Mikael Morin <mikael@gcc.gnu.org>
1141 * trans-array.c (gfc_get_proc_ifc_for_expr): Use esym as procedure
1142 symbol if available.
1144 2015-07-17 Paul Thomas <pault@gcc.gnu.org>
1147 * decl.c (gfc_match_end): Pick out declared submodule name from
1148 the composite identifier.
1149 * gfortran.h : Add 'submodule_name' to gfc_use_list structure.
1150 * module.c (gfc_match_submodule): Define submodule_name and add
1151 static 'submodule_name'.
1152 (gfc_match_submodule): Build up submodule filenames, using '@'
1153 as a delimiter. Store the output filename in 'submodule_name'.
1154 Similarly, the submodule identifier is built using '.' as an
1156 (gfc_dump_module): If current state is COMP_SUBMODULE, write
1157 to file 'submodule_name', using SUBMODULE_EXTENSION.
1158 (gfc_use_module): Similarly, use the 'submodule_name' field in
1159 the gfc_use_list structure and SUBMODULE_EXTENSION to read the
1160 implicitly used submodule files.
1162 2015-07-17 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
1164 * trans-intrinsic.c (conv_co_collective): Remove redundant address
1165 operator in the generated code.
1167 2015-07-17 Andre Vehreschild <vehre@gcc.gnu.org>
1170 * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment):
1171 Compute the size to allocate for class and derived type objects
1173 (gfc_trans_subcomponent_assign): Only allocate memory for a
1174 component when the object to assign is not an allocatable class
1175 object (the memory is already present for allocatable class objects).
1176 Furthermore use copy_class_to_class for assigning the rhs to the
1177 component (may happen for dummy class objects on the rhs).
1179 2015-07-17 Mikael Morin <mikael@gcc.gnu.org>
1180 Dominique d'Humieres <dominiq@lps.ens.fr>
1183 * trans-array.c (gfc_conv_array_parameter): Guard allocatable
1184 component deallocation code generation with descriptorless
1185 calling convention flag.
1186 * trans-expr.c (gfc_conv_expr_reference): Remove allocatable
1187 component deallocation code generation from revision 212329.
1188 (expr_may_alias_variables): New function.
1189 (gfc_conv_procedure_call): New boolean elemental_proc to factor
1190 check for procedure elemental-ness. Rename boolean f to nodesc_arg
1191 and declare it in the outer scope. Use expr_may_alias_variables,
1192 elemental_proc and nodesc_arg to decide whether generate allocatable
1193 component deallocation code.
1194 (gfc_trans_subarray_assign): Set deep copy flag.
1196 2015-07-16 Steven G. Kargl <kargl@gcc.gnu.org>
1200 * io.c (is_char_type): Call gfc_resolve_expr ().
1201 (match_open_element, match_dt_element, match_inquire_element): Fix
1204 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
1206 * trans-types.c: Remove multiline #include comment.
1208 2015-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
1210 * simplify.c (gfc_simplify_floor): Set precision of temporary to
1213 2015-07-13 Andre Vehreschild <vehre@gcc.gnu.org>
1216 * class.c (find_intrinsic_vtab): Put/Search vtabs for intrinsic
1217 types in the top-level namespace.
1219 2015-07-12 Aldy Hernandez <aldyh@redhat.com>
1221 * trans-stmt.c: Fix double word typos.
1223 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
1225 * arith.c: Adjust includes for flags.h changes.
1226 * array.c: Likewise.
1227 * check.c: Likewise.
1229 * error.c: Likewise.
1231 * frontend-passes.c: Likewise.
1232 * interface.c: Likewise.
1233 * intrinsic.c: Likewise.
1235 * match.c: Likewise.
1236 * openmp.c: Likewise.
1237 * parse.c: Likewise.
1238 * primary.c: Likewise.
1239 * resolve.c: Likewise.
1240 * scanner.c: Likewise.
1241 * simplify.c: Likewise.
1242 * symbol.c: Likewise.
1243 * target-memory.c: Likewise.
1245 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
1247 * convert.c: Adjust includes.
1250 * f95-lang.c: Likewise.
1251 * iresolve.c: Likewise.
1252 * match.c: Likewise.
1253 * module.c: Likewise.
1254 * options.c: Likewise.
1255 * target-memory.c: Likewise.
1256 * trans-array.c: Likewise.
1257 * trans-common.c: Likewise.
1258 * trans-const.c: Likewise.
1259 * trans-decl.c: Likewise.
1260 * trans-expr.c: Likewise.
1261 * trans-intrinsic.c: Likewise.
1262 * trans-io.c: Likewise.
1263 * trans-openmp.c: Likewise.
1264 * trans-stmt.c: Likewise.
1265 * trans-types.c: Likewise.
1266 * trans.c: Likewise.
1268 2015-07-07 Andre Vehreschild <vehre@gmx.de>
1271 * trans-array.c (gfc_conv_expr_descriptor): Ensure array descriptor
1272 is one-based for non-full array refs. Correct the offset when a
1275 2015-07-06 Steven G. Kargl <kargl@gcc.gnu.org>
1277 * io.c (check_char_variable): New function.
1278 (match_open_element, match_close_element, match_file_element,
1279 match_dt_element, match_inquire_element, match_wait_element): Use it.
1281 2015-07-06 Andre Vehreschild <vehre@gmx.de>
1284 * resolve.c (resolve_symbol): Non-private functions in modules
1285 with allocatable or pointer components are marked referenced
1286 now. Furthermore is the default init especially for those
1287 components now done in gfc_conf_procedure_call preventing
1289 * trans-decl.c (gfc_generate_function_code): Generate a fake
1290 result decl for functions returning an object with allocatable
1291 components and initialize them.
1292 * trans-expr.c (gfc_conv_procedure_call): For value typed trees
1293 use the tree without indirect ref. And for non-decl trees
1294 add a temporary variable to prevent evaluating the tree
1295 multiple times (prevent multiple function evaluations).
1296 * trans.h: Made gfc_trans_structure_assign () protoype
1297 available, which is now needed by trans-decl.c:gfc_generate_
1298 function_code(), too.
1300 2015-07-04 Steven G. Kargl <kargl@gcc.gnu.org>
1303 * io.c (is_char_type): New function to test for BT_CHARACTER
1304 (gfc_match_open, gfc_match_close, match_dt_element): Use it.
1306 2015-07-02 David Edelsohn <dje.gcc@gmail.com>
1308 * trans-common.c: Include <map> after system.h.
1310 2015-07-02 Paul Thomas <pault@gcc.gnu.org>
1313 * decl.c (get_proc_name): Make a partially populated interface
1314 symbol to carry the characteristics of a module procedure and
1316 (variable_decl): Declarations of dummies or results in the
1317 abreviated form of module procedure is an error.
1318 (gfc_match_import): IMPORT is not permitted in the interface
1319 declaration of module procedures.
1320 (match_attr_spec): Submodule variables have implicit save
1321 attribute for F2008 onwards.
1322 (gfc_match_prefix): Add 'module' as the a prefix and set the
1323 module_procedure attribute.
1324 (gfc_match_formal_arglist): For a module procedure keep the
1325 interface formal_arglist from the interface, match new the
1326 formal arguments and then compare the number and names of each.
1327 (gfc_match_procedure): Add case COMP_SUBMODULE.
1328 (gfc_match_function_decl, gfc_match_subroutine_decl): Set the
1329 module_procedure attribute.
1330 (gfc_match_entry, gfc_match_end): Add case COMP_SUBMODULE. If
1331 attr abr_modproc_decl is set, switch the message accordingly
1332 for subroutines and functions.
1333 (gfc_match_submod_proc): New function to match the abbreviated
1334 style of submodule declaration.
1335 * gfortran.h : Add ST_SUBMODULE and ST_END_SUBMODULE. Add the
1336 attribute bits 'used_in_submodule' and 'module_procedure'. Add
1337 the bit field 'abr_modproc_decl' to gfc_symbol. Add prototypes
1338 for 'gfc_copy_dummy_sym', 'gfc_check_dummy_characteristics' and
1339 'gfc_check_result_characteristics'.
1340 * interface.c : Add the prefix 'gfc_' to the names of functions
1341 'check_dummy(result)_characteristics' and all their references.
1342 * match.h : Add prototype for 'gfc_match_submod_proc' and
1343 'gfc_match_submodule'.
1344 (check_sym_interfaces): A module procedure is not an error in
1345 a module procedure statment in a generic interface.
1346 * module.c (gfc_match_submodule): New function. Add handling
1347 for the 'module_procedure' attribute bit.
1348 (gfc_use_module): Make sure that a submodule cannot use itself.
1349 * parse.c (decode_statement): Set attr has_'import_set' for
1350 the interface declaration of module procedures. Handle a match
1351 occurring in 'gfc_match_submod_proc' and a match for
1353 (gfc_enclosing_unit): Include the state COMP_SUBMODULE.
1354 (gfc_ascii_statement): Add END SUBMODULE.
1355 (accept_statement): Add ST_SUBMODULE.
1356 (parse_spec): Disallow statement functions in a submodule
1358 (parse_contained): Add ST_END_SUBMODULE and COMP_SUBMODULE
1360 (get_modproc_result): Copy the result symbol of the interface.
1361 (parse_progunit): Call it.
1362 (set_syms_host_assoc): Make symbols from the ancestor module
1363 and submodules use associated, as required by the standard and
1364 set all private components public. Module procedures 'external'
1365 attribute bit is reset and the 'used_in_submodule' bit is set.
1366 (parse_module): If this is a submodule, use the ancestor module
1367 and submodules. Traverse the namespace, calling
1368 'set_syms_host_assoc'. Add ST_END_SUBMODULE and COMP_SUBMODULE.
1369 * parse.h : Add COMP_SUBMODULE.
1370 * primary.c (match_variable): Add COMP_SUBMODULE.
1371 * resolve.c (compare_fsyms): New function to compare the dummy
1372 characteristics of a module procedure with its interface.
1373 (resolve_fl_procedure): Compare the procedure, result and dummy
1374 characteristics of a module_procedure with its interface, using
1375 'compare_fsyms' for the dummy arguments.
1376 * symbol.c (gfc_add_procedure): Suppress the check for existing
1377 procedures in the case of a module procedure.
1378 (gfc_add_explicit_interface): Skip checks that must fail for
1380 (gfc_add_type): Allow a new type to be added to module
1381 procedures, their results or their dummy arguments.
1382 (gfc_copy_dummy_sym): New function to generate new dummy args
1383 and copy the characteristics from the interface.
1384 * trans-decl.c (gfc_sym_mangled_function_id): Module procedures
1385 must always have their names mangled as if they are symbols
1386 coming from a declaration in a module.
1387 (gfc_get_symbol_decl): Add 'used_in_submodule' to the assert.
1388 (gfc_finish_var_decl): Symbols with the 'used_in_submodule' bit
1389 set are set DECL_EXTERNAL as if they were use associated.
1391 2015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
1394 * match.c (gfc_match_name): Special case unary minus and plus.
1396 2015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
1399 * primary.c (match_sym_complex_part): Do not dereference NULL pointer.
1401 2015-07-01 Thomas Koenig <tkoenig@gcc.gnu.org>
1403 * arith.c (gfc_arith_divide): With -Winteger-division,
1404 warn about contant integer division if there is a non-zero
1406 * invoke.texi: Document -Winteger-division.
1407 * lang.opt: Add -Winteger-division.
1409 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
1411 * f95-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
1412 * trans-decl.c: Likewise.
1414 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
1416 * trans-decl.c (module_hasher): Likewise.
1417 * trans.h (module_decl_hasher): Likewise.
1419 2015-06-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
1422 * error.c (gfc_warning_check): Restore the default output_buffer
1423 before calling diagnostic_action_after_output.
1424 (gfc_error_check): Likewise.
1425 (gfc_diagnostics_init): Add comment.
1427 2015-06-23 Andre Vehreschild <vehre@gmx.de>
1430 * parse.c (parse_associate): Figure the rank and as of a
1431 class array in an associate early.
1432 * primary.c (gfc_match_varspec): Prevent setting the
1433 dimension attribute on the sym for classes.
1434 * resolve.c (resolve_variable): Correct the component
1435 ref's type for associated variables. Add a full array ref
1436 when class array's are associated.
1437 (resolve_assoc_var): Correct the type of the symbol,
1438 when in the associate the expression's rank becomes scalar.
1439 * trans-expr.c (gfc_conv_variable): Indirect ref needed for
1440 allocatable associated objects.
1442 2015-06-19 Mikael Morin <mikael@gcc.gnu.org>
1445 * resolve.c (resolve_global_procedure): Don't save and restore
1446 OpenMP state around the call to gfc_resolve.
1447 (gfc_resolve): Save OpenMP state on entry and restore it on return.
1449 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
1451 * convert.c: Do not include input.h, line-map.h or is-a.h.
1454 * f95-lang.c: Likewise.
1455 * gfortran.h: Likewise.
1456 * iresolve.c: Likewise.
1457 * match.c: Likewise.
1458 * module.c: Likewise.
1459 * options.c: Likewise.
1460 * target-memory.c: Likewise.
1461 * trans-array.c: Likewise.
1462 * trans-common.c: Likewise.
1463 * trans-const.c: Likewise.
1464 * trans-decl.c: Likewise.
1465 * trans-expr.c: Likewise.
1466 * trans-intrinsic.c: Likewise.
1467 * trans-io.c: Likewise.
1468 * trans-openmp.c: Likewise.
1469 * trans-stmt.c: Likewise.
1470 * trans-types.c: Likewise.
1471 * trans.c: Likewise.
1473 2015-06-15 Andre Vehreschild <vehre@gmx.de>
1478 * gfortran.h: Extend gfc_code.ext.alloc to carry a
1479 flag indicating that the array specification has to be
1481 * resolve.c (resolve_allocate_expr): Add F2008 notify
1482 and flag indicating source driven array spec.
1483 (resolve_allocate_deallocate): Check for source driven
1484 array spec, when array to allocate has no explicit
1486 * trans-array.c (gfc_array_init_size): Get lower and
1487 upper bound from a tree array descriptor, except when
1488 the source expression is an array-constructor which is
1489 fixed to be one-based.
1490 (retrieve_last_ref): Extracted from gfc_array_allocate().
1491 (gfc_array_allocate): Enable allocate(array, source=
1492 array_expression) as specified by F2008:C633.
1493 (gfc_conv_expr_descriptor): Add class tree expression
1494 into the saved descriptor for class arrays.
1495 * trans-array.h: Add temporary array descriptor to
1496 gfc_array_allocate ().
1497 * trans-expr.c (gfc_conv_procedure_call): Special handling
1498 for _copy() routine translation, that comes without an
1499 interface. Third and fourth argument are now passed by value.
1500 * trans-stmt.c (gfc_trans_allocate): Get expr3 array
1501 descriptor for temporary arrays to allow allocate(array,
1502 source = array_expression) for array without array
1505 2015-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1507 * intrinsic.texi: Change \leq to < in descrition of imaginary
1508 part in argument to log.
1510 2015-06-11 Paul Thomas <pault@gcc.gnu.org>
1513 * trans-expr.c (gfc_conv_procedure_call): Allocatable scalar
1514 function results must be freed and nullified after use. Create
1515 a temporary to hold the result to prevent duplicate calls.
1516 * trans-stmt.c (gfc_trans_allocate): Rename temporary variable
1517 as 'source'. Deallocate allocatable components of non-variable
1520 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
1522 * f95-lang.c (gfc_create_decls): Register the main translation unit
1523 through the new debug hook.
1525 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
1527 * convert.c : Adjust include files.
1529 * decl.c : Likewise.
1530 * f95-lang.c : Likewise.
1531 * gfortran.h : Likewise.
1532 * iresolve.c : Likewise.
1533 * match.c : Likewise.
1534 * module.c : Likewise.
1535 * openmp.c : Likewise.
1536 * options.c : Likewise.
1537 * target-memory.c : Likewise.
1538 * trans-array.c : Likewise.
1539 * trans-common.c : Likewise.
1540 * trans-const.c : Likewise.
1541 * trans-decl.c : Likewise.
1542 * trans-expr.c : Likewise.
1543 * trans-intrinsic.c : Likewise.
1544 * trans-io.c : Likewise.
1545 * trans-openmp.c : Likewise.
1546 * trans-stmt.c : Likewise.
1547 * trans-types.c : Likewise.
1548 * trans.c : Likewise.
1550 2015-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
1553 * match.c (gfc_match_type_is, gfc_match_class_is): Check if the
1554 return type spec or derived type spec is validate.
1556 2015-06-06 Thomas Koenig <tkoenig@netcologne.de>
1559 * arith.c (eval_intrinsic_op): Set warn flag for
1560 gfc_type_convert_binary if -Wconversion or -Wconversion-extra
1562 (wprecision_real_real): New function.
1563 (wprecision_int_real): New function.
1564 (gfc_int2int): If -fno-range-check and -Wconversion are specified
1565 and it is a narrowing conversion, warn.
1566 (gfc_int2real): If there is a change in value for the conversion,
1568 (gfc_int2complex): Likewise.
1569 (gfc_real2int): If there is a fractional part to the real number,
1570 warn with -Wconversion, otherwise warn with -Wconversion-extra.
1571 (gfc_real2real): Emit warning if the constant was changed by
1572 conversion with either -Wconversion or -Wconversion-extra. With
1573 -Wconversion-extra, warn if no warning was issued earlier.
1574 (gfc_real2complex): Likewise.
1575 (gfc_complex2int): For -Wconversion or -Wconversion-extra, if
1576 there was an imaginary part, warn; otherwise, warn for change in
1577 value. Warn with -Wconversion-extra if no other warning was
1579 (gfc_complex2real): For -Wconversion or -Wconversion-extra, if
1580 there was an imaginary part, warn; otherwise, warn for change in
1581 value. Warn with -Wconversion-extra if no other warning was
1583 (gfc_complex2complex): For -Wconversion, warn if the value of
1584 either the real or the imaginary part was changed. Warn for
1585 -Wconversion-extra if no prior warning was issued.
1586 * expr.c (gfc_check_assign): Remove check for change in value.
1587 * primary.c (match_real_constant): For -Wconversion-extra, check
1588 against a number in which the last non-zero digit has been
1589 replaced with a zero. If the number compares equal, warn.
1590 * intrinsic.c (gfc_convert_type_warn): Do not warn about constant
1593 2015-06-05 Steven G. Kargl <kargl@gcc.gnu.org>
1596 * resolve.c (apply_default_init_local): Do not dereference a NULL
1599 2015-06-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1602 * frontend-passes.c (combine_array_constructor): Return early if
1603 inside a FORALL loop.
1605 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
1607 * f95-lang.c (gfc_write_global_declarations): Remove.
1608 (LANG_HOOKS_WRITE_GLOBALS): Remove.
1609 (gfc_write_global_declarations): Move code from here to...
1610 (gfc_be_parse_file): ...here.
1611 Call global_decl_processing.
1612 * trans-decl.c (gfc_emit_parameter_debug_info): Rename global_decl
1613 to early_global_decl.
1615 2015-06-05 Russell Whitesides <russelldub@gmail.com>
1616 Steven G. Kargl <kargl@gcc.gnu.org>
1621 * module.c (load_equiv): Add check for loading duplicate EQUIVALENCEs
1622 from different modules. Eliminate the pruning of unused
1625 2015-06-04 Thomas Koenig <tkoenig@netcologne.de>
1628 * iresolve.c (gfc_resolve_adjustl): If string has a charlen,
1629 copy it to the function.
1630 (gfc_resolve_adjustr): Likewise.
1632 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
1634 * convert.c: Adjust includes for restructured coretypes.h.
1637 * f95-lang.c: Likewise.
1638 * iresolve.c: Likewise.
1639 * match.c: Likewise.
1640 * module.c: Likewise.
1641 * options.c: Likewise.
1642 * target-memory.c: Likewise.
1643 * trans-array.c: Likewise.
1644 * trans-common.c: Likewise.
1645 * trans-const.c: Likewise.
1646 * trans-decl.c: Likewise.
1647 * trans-expr.c: Likewise.
1648 * trans-intrinsic.c: Likewise.
1649 * trans-io.c: Likewise.
1650 * trans-openmp.c: Likewise.
1651 * trans-stmt.c: Likewise.
1652 * trans-types.c: Likewise.
1653 * trans.c: Likewise.
1655 2015-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
1658 * simplify.c (gfc_simplify_reshape): Convert assert into returning
1659 NULL, which triggers an error condition.
1661 2015-05-27 Andre Vehreschild <vehre@gmx.de>
1664 * trans-stmt.c (gfc_trans_allocate): Add missing location
1665 information for e3rhs.
1667 2015-05-26 Paul Thomas <pault@gcc.gnu.org>
1670 * trans-array.c (gfc_conv_array_parameter): Ensure that all
1671 non-variable arrays with allocatable components have the
1672 components deallocated after the procedure call.
1674 2015-05-24 Mikael Morin <mikael@gcc.gnu.org>
1677 * resolve.c (resolve_actual_arglist): Don't throw an error
1678 if the argument with procedure pointer component is not a variable.
1680 2015-05-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
1683 * gfortran.h (struct gfc_error_buf): Rename as
1684 gfc_error_buffer. Move closer to push, pop and free
1685 methods. Reimplement using an output_buffer.
1686 * error.c (errors, warnings, warning_buffer, cur_error_buffer):
1687 Delete everywhere in this file.
1688 (error_char): Delete all contents.
1689 (gfc_increment_error_count): Delete.
1690 (gfc_error_now): Update comment. Set error_buffer.flag.
1691 (gfc_warning_check): Do not handle warning_buffer.
1692 (gfc_error_1): Delete.
1693 (gfc_error_now_1): Delete.
1694 (gfc_error_check): Simplify.
1695 (gfc_move_error_buffer_from_to): Renamed from
1696 gfc_move_output_buffer_from_to.
1697 (gfc_push_error): Handle only gfc_error_buffer.
1698 (gfc_pop_error): Likewise.
1699 (gfc_free_error): Likewise.
1700 (gfc_get_errors): Remove warnings and errors.
1701 (gfc_diagnostics_init): Use static error_buffer.
1702 (gfc_error_1,gfc_error_now_1): Delete declarations.
1703 * symbol.c, decl.c, trans-common.c, data.c, expr.c, expr.c,
1704 frontend-passes.c, resolve.c, match.c, parse.c: Replace
1705 gfc_error_1 with gfc_error and gfc_error_now_1 with gfc_error_1
1707 * f95-lang.c (gfc_be_parse_file): Do not update errorcount and
1709 * primary.c (match_complex_constant): Replace gfc_error_buf and
1710 output_buffer with gfc_error_buffer.
1712 2015-05-22 Jim Wilson <jim.wilson@linaro.org>
1714 * Make-lang.in (check_gfortran_parallelize): Update comment.
1716 2015-05-21 Thomas Koenig <tkoenig@gcc.gnu.org>
1719 * frontend-passes.c (check_conjg_variable): New function.
1720 (inline_matmul_assign): Use it to keep track of conjugated
1723 2015-05-20 Andre Vehreschild <vehre@gmx.de>
1726 * trans-stmt.c (gfc_trans_allocate): Always retrieve the
1727 descriptor or a reference to a source= expression for
1728 arrays and non-arrays, respectively. Use a temporary
1729 symbol and gfc_trans_assignment for all source=
1730 assignments to allocated objects besides for class and
1733 2015-05-19 Jakub Jelinek <jakub@redhat.com>
1736 * trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
1737 combined constructs.
1738 (gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
1741 2015-05-19 David Malcolm <dmalcolm@redhat.com>
1743 * cpp.c (maybe_print_line): Strengthen local "map" from
1744 const line_map * to const line_map_ordinary *.
1745 (cb_file_change): Likewise for param "map" and local "from".
1746 (cb_line_change): Likewise for local "map".
1748 2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
1750 * interface.c (compare_actual_formal): Use std::swap instead of
1752 * trans-array.c (gfc_trans_scalarized_loop_end): Likewise.
1753 * trans-intrinsic.c (walk_inline_intrinsic_transpose): Likewise.
1755 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1758 * interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
1759 * match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.
1761 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1764 * decl.c(gfc_match_generic): Detected a malformed GENERIC statement.
1766 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1769 * gfortran.dg/storage_size_6.f90: New tests.
1771 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1774 * gfortran.dg/storage_size_6.f90: New tests.
1776 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1779 * decl.c(gfc_match_entry): Change a gfc_internal_error() into
1782 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1785 * gfortran.dg/storage_size_6.f90: New tests.
1787 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1790 * parse.c(verify_st_order): Replace a gfc_internal_error with your
1793 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1796 * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
1797 BACKSPACE, and ENDFILE statements
1799 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
1802 * symbol.c(check_conflict): Check for a conflict between a dummy
1803 argument and an internal procedure name.
1805 2015-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1808 * io.c (format_lex): Change to NONSTRING when checking for
1809 possible doubled quote.
1810 * scanner.c (gfc_next_char_literal): Revert change from 64506
1811 and add a check for quotes and return.
1813 2015-05-16 Thomas Koenig <tkoenig@gcc.gnu.org>
1816 * expr.c (is_parent_of_current_ns): New function.
1817 (check_restricted): Use it.
1819 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
1823 Replace all calls to gfc_notify_std_1 with gfc_notify_std and
1824 gfc_warning_1 with gfc_warning.
1825 * decl.c (gfc_verify_c_interop_param): Here.
1826 * resolve.c (resolve_branch): Here.
1827 (resolve_fl_derived): Here.
1828 * dependency.c (gfc_check_argument_var_dependency):
1829 * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
1830 counter and locations before and after warning.
1831 * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
1833 (gfc_warning_now_at): Declare.
1834 * error.c (gfc_warning_1): Delete.
1835 (gfc_notify_std_1): Delete.
1836 (gfc_warning_now_1): Delete.
1837 (gfc_format_decoder): Handle two locations.
1838 (gfc_diagnostic_build_prefix): Rename as
1839 gfc_diagnostic_build_kind_prefix.
1840 (gfc_diagnostic_build_locus_prefix): Take an expanded_location
1841 instead of diagnostic_info.
1842 (gfc_diagnostic_build_locus_prefix): Add overload that takes two
1844 (gfc_diagnostic_starter): Handle two locations.
1845 (gfc_warning_now_at): New.
1846 (gfc_diagnostics_init): Initialize caret_chars array.
1847 (gfc_diagnostics_finish): Reset caret_chars array to default.
1849 2015-05-16 Mikael Morin <mikael@gcc.gnu.org>
1850 Paul Thomas <pault@gcc.gnu.org>
1853 * trans-expr.c (gfc_trans_subcomponent_assign): Always assign
1854 the expression component to the destination. In addition, if
1855 the component has allocatable components, copy them and
1856 deallocate those of the expression, if it is not a variable.
1857 The expression is fixed if not a variable to prevent multiple
1860 2015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
1863 * frontend-passes.c (has_dimen_vector_ref): New function.
1864 (inline_matmul_assign): Use it to return early in case
1865 of unhandled vector subscripts.
1867 2015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
1871 * gfortran.h (gfc_array_spec): Add field resolved.
1872 * array.c (gfc_resolve_array_spec): Resolve array spec
1875 2015-05-11 Mikael Morin <mikael@gcc.gnu.org>
1878 * simplify.c (simplify_bound): Fix assert to accept subobject arrays.
1880 2015-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
1883 * frontend-passes.c (scalarized_expr): Set correct dimension and
1884 shape for the expression to be passed to lbound. Remove trailing
1885 references after array refrence.
1886 (inline_matmul_assign): Remove gfc_copy_expr from calls
1887 to scalarized_expr().
1889 2015-05-10 Mikael Morin <mikael@gcc.gnu.org>
1891 * simplify.c (simplify_bound_dim): Don't check for emptyness
1892 in the case of cobound simplification. Factor lower/upper
1893 bound differenciation before the actual simplification.
1894 (simplify_bound): Remove assumed shape specific simplification.
1895 Don't give up early for the lbound of an assumed shape.
1897 2015-05-09 Mikael Morin <mikael@gcc.gnu.org>
1900 * trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
1902 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
1904 (gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
1906 (gfc_walk_elemental_function_args): Set the dummy_arg field.
1907 * trans.h (gfc_ss_info): New subfield dummy_arg.
1908 * trans-expr.c (gfc_conv_procedure_call): Revert the change
1910 (gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
1913 2015-05-08 Mikael Morin <mikael@gcc.gnu.org>
1915 * trans-array.c (gfc_walk_elemental_function_args):
1916 Don't skip the advance to the next dummy argument when skipping
1917 absent optional args.
1919 2015-05-05 David Malcolm <dmalcolm@redhat.com>
1921 * expr.c (check_inquiry): Fix indentation so that it reflects the
1923 * interface.c (compare_parameter): Likewise.
1924 * parse.c (parse_oacc_structured_block): Likewise.
1925 * target-memory.c (expr_to_char): Likewise.
1926 * trans-types.c (gfc_init_kinds): Likewise.
1928 2015-05-02 Steven G. Kargl <kargl@gcc.gnu.org>
1931 * invoke.texi: Remove 'no-' in '-fno-fixed-form'
1933 2015-05-01 Mikael Morin <mikael@gcc.gnu.org>
1935 * simplify.c (simplify_bound_dim): Tighten the check for array fullness
1936 by also checking for absence of subreference.
1937 (simplify_bound): Don't skip simplification if the array
1939 (simplify_cobound): Same.
1941 2015-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
1944 * simplify.c (simplify_bound): Get constant lower bounds of one
1945 from array spec for assumed and explicit shape shape arrays if
1946 the lower bounds are indeed one.
1948 2015-04-30 David Malcolm <dmalcolm@redhat.com>
1950 * options.c (gfc_init_options): Remove spurious second
1952 * trans-stmt.c (gfc_trans_allocate): Likewise.
1954 2015-04-28 Andre Vehreschild <vehre@gmx.de>
1956 * interface.c (gfc_compare_types): Check for unlimited
1957 polymorphism flag in the correct position indepent of the _data
1958 component being present or not. This prevents a segfault, when
1959 the _data component is not present.
1960 * symbol.c (gfc_type_compatible): Same.
1962 2015-04-27 Jim Wilson <jim.wilson@linaro.org>
1964 * Make-lang.in (fortran.mostlyclean): Remove gfortran and
1967 2015-04-27 Andre Vehreschild <vehre@gmx.de>
1971 * trans-array.c (duplicate_allocatable): Fixed deep copy of
1972 allocatable components, which are liable for copy only, when
1974 (gfc_duplicate_allocatable): Add deep-copy code into if
1975 component allocated block. Needed interface change for that.
1976 (gfc_copy_allocatable_data): Supplying NULL_TREE for code to
1977 add into if-block for checking whether a component was
1979 (gfc_duplicate_allocatable_nocopy): Likewise.
1980 (structure_alloc_comps): Likewise.
1981 * trans-array.h: Likewise.
1982 * trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise.
1983 * trans-openmp.c (gfc_walk_alloc_comps): Likewise.
1985 2015-04-23 Andre Vehreschild <vehre@gmx.de>
1988 * expr.c (gfc_lval_expr_from_sym): Code to select the regular
1989 or class array added.
1990 * gfortran.h: Add IS_CLASS_ARRAY macro.
1991 * trans-array.c (gfc_add_loop_ss_code): Treat class objects
1992 to be referenced always.
1993 (build_class_array_ref): Adapt retrieval of array descriptor.
1994 (build_array_ref): Likewise.
1995 (gfc_conv_array_ref): Hand the vptr or the descriptor to
1996 build_array_ref depending whether the sym is class or not.
1997 (gfc_trans_array_cobounds): Select correct gfc_array_spec for
1998 regular and class arrays.
1999 (gfc_trans_array_bounds): Likewise.
2000 (gfc_trans_dummy_array_bias): Likewise.
2001 (gfc_get_dataptr_offset): Correcting call of build_array_ref.
2002 (gfc_conv_expr_descriptor): Set the array's offset to -1 when
2003 lbound in inner most dim is 1 and symbol non-pointer/assoc.
2004 * trans-decl.c (gfc_build_qualified_array): Select correct
2005 gfc_array_spec for regular and class arrays.
2006 (gfc_build_dummy_array_decl): Likewise.
2007 (gfc_get_symbol_decl): Get a dummy array for class arrays.
2008 (gfc_trans_deferred_vars): Tell conv_expr that the descriptor
2010 * trans-expr.c (gfc_class_vptr_get): Get the class descriptor
2011 from the correct location for class arrays.
2012 (gfc_class_len_get): Likewise.
2013 (gfc_conv_intrinsic_to_class): Add handling of _len component.
2014 (gfc_conv_class_to_class): Prevent access to unset array data
2015 when the array is an optional argument. Add handling of _len
2017 (gfc_copy_class_to_class): Check that _def_init is non-NULL
2018 when used in _vptr->copy()
2019 (gfc_trans_class_init_assign): Ensure that the rank of
2021 (gfc_conv_component_ref): Get the _vptr along with _data refs.
2022 (gfc_conv_variable): Make sure the temp array descriptor is
2023 returned for class arrays, too, and that class arrays are
2024 dereferenced correctly.
2025 (gfc_conv_procedure_call): For polymorphic type initialization
2026 the initializer has to be a pointer to _def_init stored in a
2027 dummy variable, which then needs to be used by value.
2028 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
2029 temporary array descriptor for class arrays, too.
2030 (gfc_conv_intrinsic_storage_size): Likewise.
2031 (gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
2033 * trans-stmt.c (trans_associate_var): Use a temporary array for
2034 the associate variable of class arrays, too, making the array
2035 one-based (lbound == 1).
2036 * trans-types.c (gfc_is_nodesc_array): Use the correct
2038 * trans.c (gfc_build_array_ref): Use the dummy array descriptor
2040 * trans.h: Add class_vptr to gfc_se for storing a class ref's
2043 2015-04-22 Steven G. Kargl <kargl@gcc.gnu.org>
2046 * decl.c (add_init_expr_to_sym): Set the length type parameter.
2048 2015-04-10 Tobias Burnus <burnus@net-b.de>
2050 * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib
2051 version; reject not-yet-implemented variants.
2052 * trans-types.c (gfc_get_derived_type): For lock_type with
2053 -fcoarray=lib, use a void pointer as type.
2054 * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable):
2055 Handle lock_type with -fcoarray=lib.
2057 2015-04-10 Mikael Morin <mikael@gcc.gnu.org>
2063 * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
2064 former to the latter and make it non-static. Update callers.
2065 * gfortran.h (gfc_save_symbol_data): New prototype.
2066 * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
2067 before modifying symbols 'sym' and 'dt_sym'.
2069 2013-04-09 Paul Thomas <pault@gcc.gnu.org>
2072 * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any
2073 of the index variables are untyped and errors are present.
2075 2015-04-07 Andre Vehreschild <vehre@gmx.de>
2078 * trans-stmt.c (gfc_trans_allocate): For intrinsic functions
2079 use conv_expr_descriptor() instead of conv_expr_reference().
2081 2015-03-30 Jakub Jelinek <jakub@redhat.com>
2084 * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit
2085 linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN.
2086 For implcitly added !simple OMP_CLAUSE_LINEAR set it too. Use step 1
2087 instead of the original step on the new iterator - count.
2089 2015-03-25 Mikael Morin <mikael@gcc.gnu.org>
2093 * gfortran.h (struct gfc_namespace): New field 'types_resolved'.
2094 * resolve.c (resolve_types): Return early if field 'types_resolved'
2095 is set. Set 'types_resolved' at the end.
2097 2015-03-24 Andre Vehreschild <vehre@gmx.de>
2100 * trans-expr.c (gfc_conv_structure): Fixed indendation.
2101 Using integer_zero_node now instead of explicitly
2102 constructing a integer constant zero node.
2103 (gfc_conv_derived_to_class): Add handling of _len component,
2104 i.e., when the rhs has a string_length then assign that to
2105 class' _len, else assign 0.
2106 (gfc_conv_intrinsic_to_class): Likewise.
2108 2015-03-24 Andre Vehreschild <vehre@gmx.de>
2113 * class.c (gfc_add_component_ref): Free no longer needed
2114 ref-chains to prevent memory loss.
2115 (find_intrinsic_vtab): For deferred length char arrays or
2116 unlimited polymorphic objects, store the size in bytes of one
2117 character in the size component of the vtab.
2118 * gfortran.h: Added gfc_add_len_component () define.
2119 * trans-array.c (gfc_trans_create_temp_array): Switched to new
2120 function name for getting a class' vtab's field.
2121 (build_class_array_ref): Likewise.
2122 (gfc_array_init_size): Using the size information from allocate
2123 more consequently now, i.e., the typespec of the entity to
2124 allocate is no longer needed. This is to address the last open
2125 comment in PR fortran/57456.
2126 (gfc_array_allocate): Likewise.
2127 (structure_alloc_comps): gfc_copy_class_to_class () needs to
2128 know whether the class is unlimited polymorphic.
2129 * trans-array.h: Changed interface of gfc_array_allocate () to
2130 reflect the no longer needed typespec.
2131 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New.
2132 (gfc_reset_len): New.
2133 (gfc_get_class_array_ref): Switch to new function name for
2134 getting a class' vtab's field.
2135 (gfc_copy_class_to_class): Added flag to know whether the class
2136 to copy is unlimited polymorphic. Adding _len dependent code
2137 then, which calls ->vptr->copy () with four arguments adding
2138 the length information ->vptr->copy(from, to, from_len, to_cap).
2139 (gfc_conv_procedure_call): Switch to new function name for
2140 getting a class' vtab's field.
2141 (alloc_scalar_allocatable_for_assignment): Use the string_length
2142 as computed by gfc_conv_expr and not the statically backend_decl
2143 which may be incorrect when ref-ing.
2144 (gfc_trans_assignment_1): Use the string_length variable and
2145 not the rse.string_length. The former has been computed more
2147 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new
2148 function name for getting a class' vtab's field.
2149 (gfc_conv_intrinsic_storage_size): Likewise.
2150 (gfc_conv_intrinsic_transfer): Likewise.
2151 * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate
2152 source=expr3 only once before the loop over the objects to
2153 allocate, when the objects are not arrays. Doing correct _len
2154 initialization and calling of vptr->copy () fixing PR 64787.
2155 (gfc_trans_deallocate): Reseting _len to 0, preventing future
2157 * trans.c (gfc_build_array_ref): Switch to new function name
2158 for getting a class' vtab's field.
2159 (gfc_add_comp_finalizer_call): Likewise.
2160 * trans.h: Define the prototypes for the gfc_class_vtab_*_get ()
2161 and gfc_vptr_*_get () functions.
2162 Added gfc_find_and_cut_at_last_class_ref () and
2163 gfc_reset_len () routine prototype. Added flag to
2164 gfc_copy_class_to_class () prototype to signal an unlimited
2165 polymorphic entity to copy.
2167 2015-03-24 Iain Sandoe <iain@codesourcery.com>
2168 Tobias Burnus <burnus@net-b.de>
2170 * gfortran.texi (_gfortran_caf_sync_memory): Improve wording.
2172 2015-03-23 Paul Thomas <pault@gcc.gnu.org>
2173 Mikael Morin <mikael@gcc.gnu.org>
2176 * gfortran.h (struct symbol_attribute) : New field
2177 'array_outer_dependency'.
2178 * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
2179 * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
2180 (attr_bits): Append same value to initializer.
2181 (mio_symbol_attribute): Handle 'array_outer_dependency' attr
2182 in module read and write.
2183 * resolve.c (update_current_proc_outer_array_dependency): New function.
2184 (resolve_function, resolve_call): Add code to update current procedure's
2185 'array_outer_dependency' attribute.
2186 (resolve_variable): Mark current procedure with attribute
2187 array_outer_dependency if the variable is an array coming from outside
2188 the current namespace.
2189 (resolve_fl_procedure): Mark a procedure without body with attribute
2190 'array_outer_dependency'.
2191 * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
2192 marked as 'array_outer_dependency' generate a temporary.
2193 (gfc_walk_function_expr): If the function may reference external arrays,
2194 mark the head gfc_ss with flag 'array_outer_dependency'.
2196 2015-03-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2198 PR libgfortran/59513
2199 * gfortran.texi (Read/Write after EOF marker): New information.
2201 2015-03-21 H.J. Lu <hongjiu.lu@intel.com>
2203 * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one
2206 2015-03-21 Tobias Burnus <burnus@net-b.de>
2208 * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images,
2209 _gfortran_caf_sync_memory, _gfortran_caf_error_stop,
2210 _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define,
2211 _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas,
2212 _gfortran_caf_atomic_op): New sections.
2214 2015-03-21 Tobias Burnus <burnus@net-b.de>
2216 * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented
2217 coindexed coarray accesses.
2219 2015-03-17 Paul Thomas <pault@gcc.gnu.org>
2222 * trans-types.c (gfc_get_derived_type): If an abstract derived
2223 type with procedure pointer components has no other type of
2224 component, return the backend_decl. Otherwise build the
2225 components if any of the non-procedure pointer components have
2228 2015-03-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2231 *trans-intrinisic.c (conv_intrinsic_system_clock): Check the
2232 smallest kind passed in user arguments and hardcode tesults for
2233 KIND=1 or KIND=2 to indicate no clock available.
2235 2015-03-16 Andre Vehreschild <vehre@gmx.de>
2237 * resolve.c: Prevent segfault on illegal input.
2239 2015-03-14 Mikael Morin <mikael@gcc.gnu.org>
2242 * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY
2243 field before reusing LSE.
2245 2015-03-11 Janne Blomqvist <jb@gcc.gnu.org>
2248 * gfortran.texi: Document behavior when opening files without
2249 explicit ACTION= specifier.
2251 2015-03-10 Paul Thomas <pault@gcc.gnu.org>
2254 * trans-expr.c (gfc_conv_component_ref): If the component
2255 backend declaration is missing and the derived type symbol is
2256 available in the reference, call gfc_build_derived_type.
2258 2015-03-10 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
2259 Tobias Burnus <burnus@net-b.de>
2261 * trans.h (caf_sync_memory): New function decl tree.
2262 * trans-decl.c (gfc_build_builtin_function_decls): Define it.
2263 (create_main_function): Don't call sync_synchronize and leave
2264 it to the CAF library.
2265 * trans-stmt.c (gfc_trans_stop): Ditto.
2266 (gfc_trans_sync): Ditto; add call library call for sync memory.
2268 2015-03-08 Mikael Morin <mikael@gcc.gnu.org>
2271 * resolve.c (resolve_symbol): Check that the symbol found by
2272 name lookup really is the current symbol being resolved.
2274 2015-03-02 Tobias Burnus <burnus@net-b.de>
2276 * check.c (gfc_check_atomic): Properly check for coarrayness
2277 and for being coindexed.
2279 2015-02-26 Martin Liska <mliska@suse.cz>
2281 * resolve.c: Rename enum 'comparison' to 'compare_result' as
2282 solution for -Wodr issue.
2284 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
2287 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
2289 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
2290 * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2291 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2292 Remove function types.
2293 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
2294 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2295 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2298 2015-02-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
2302 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
2303 for component references to class objects.
2304 (gfc_conv_procedure_call): Compare the class by name.
2306 2015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2309 * scanner.c (gfc_next_char_literal): For free form source,
2310 check for '!' and if found, clear the comment and go back
2311 and get the next character. For fixed form source, skip the
2314 2015-02-12 Paul Thomas <pault@gcc.gnu.org>
2317 * trans-stmt.c (gfc_trans_deallocate): If a component array
2318 expression is not a descriptor type and it is a derived type
2319 that has allocatable components and is not finalizable, then
2320 deallocate the allocatable components.
2322 2015-02-08 Mikael Morin <mikael@gcc.gnu.org>
2325 * module.c (check_for_ambiguous): Change argument type
2326 from gfc_symbol to gfc_symtree. Check local (symtree) name
2327 instead of original (symbol) name.
2328 (read_module): Update caller.
2330 2015-02-06 Paul Thomas <pault@gcc.gnu.org>
2333 * gfortran.h: Add 'must finalize' field to gfc_expr and
2334 prototypes for gfc_is_alloc_class_scalar_function and for
2335 gfc_is_alloc_class_array_function.
2336 * expr.c (gfc_is_alloc_class_scalar_function,
2337 gfc_is_alloc_class_array_function): New functions.
2338 * trans-array.c (gfc_add_loop_ss_code): Do not move the
2339 expression for allocatable class scalar functions outside the
2341 (conv_array_index_offset): Cope with deltas being NULL_TREE.
2342 (build_class_array_ref): Do not return with allocatable class
2343 array functions. Add code to pick out the returned class array.
2344 Dereference if necessary and return if not a class object.
2345 (gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
2346 (gfc_walk_function_expr): Return an array ss for the result of
2347 an allocatable class array function.
2348 * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
2349 that the argument should be a variable. If an allocatable class
2350 array function, set the offset to zero and skip the write-out
2352 (gfc_conv_procedure_call): Add allocatable class array function
2353 to the assert. Call gfc_conv_subref_array_arg for allocatable
2354 class array function arguments with derived type formal arg..
2355 Add the code for handling allocatable class functions, including
2356 finalization calls to prevent memory leaks.
2357 (arrayfunc_assign_needs_temporary): Return if an allocatable
2358 class array function.
2359 (gfc_trans_assignment_1): Set must_finalize to rhs expression
2360 for allocatable class functions. Set scalar_to_array as needed
2361 for scalar class allocatable functions assigned to an array.
2362 Nullify the allocatable components corresponding the the lhs
2363 derived type so that the finalization does not free them.
2365 2015-01-29 Andre Vehreschild <vehre@gmx.de>
2366 Janus Weil <janus@gcc.gnu.org>
2369 Initial patch by Janus Weil
2370 * resolve.c (resolve_allocate_expr): Add check for comp. only
2371 when target is not unlimited polymorphic.
2372 * trans-stmt.c (gfc_trans_allocate): Assign correct value to
2373 _len component of unlimited polymorphic entities.
2375 2015-02-05 Tobias Burnus <burnus@net-b.de>
2378 * resolve.c (resolve_transfer): Also check structure
2381 2015-02-05 Paul Thomas <pault@gcc.gnu.org>
2384 * resolve.c (resolve_structure_cons): Obtain the rank of class
2386 * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
2387 assignment to allocatable class array components.
2388 (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
2389 is a class component, allocate to the _data field.
2390 (gfc_trans_subcomponent_assign): If a class component with a
2391 derived type expression set the _vptr field and for array
2392 components, call gfc_trans_alloc_subarray_assign. For scalars,
2393 the assignment is performed here.
2395 2015-02-04 Jakub Jelinek <jakub@redhat.com>
2397 * options.c: Include langhooks.h.
2398 (gfc_post_options): Change lang_hooks.name based on
2399 selected -std= mode.
2401 2015-02-03 Steven G. Kargl <kargl@gcc.gnu.org>
2403 * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
2405 2015-01-30 Andre Vehreschild <vehre@gmx.de>
2407 * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
2408 * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
2409 Fixed datatype of charlen to be a 32-bit int.
2411 2015-02-01 Joseph Myers <joseph@codesourcery.com>
2413 * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
2414 char *, ...)): Remove functions.
2415 * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
2416 (const char *, ...)): Remove declarations.
2417 * arith.c, check.c, data.c, decl.c, frontend-passes.c,
2418 interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
2419 options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
2420 trans-common.c, trans-const.c, trans-stmt.c: All callers of
2421 gfc_warning and gfc_warning_now changed to pass 0 or option number
2424 2015-01-30 Joseph Myers <joseph@codesourcery.com>
2426 * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
2427 callers of fatal_error changed to pass input_location as first
2430 2015-01-28 Tobias Burnus <burnus@net-b.de>
2432 * intrinsic.texi (CO_BROADCAST): Correct argument description.
2434 2015-01-27 Tobias Burnus <burnus@net-b.de>
2437 * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
2438 Fix handling for scalar coarrays.
2439 * trans-types.c (gfc_get_element_type): Add comment.
2441 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2444 * interface.c: Remove <algorithm>.
2445 (check_dummy_characteristics): Use MAX instead of std::max.
2447 2015-01-26 Paul Thomas <pault@gcc.gnu.org>
2450 * resolve.c (resolve_allocate_expr): If the default initializer
2451 is NULL, keep the original MOLD expression so that the correct
2452 typespec is available.
2454 2015-01-26 Tobias Burnus <burnus@net-b.de>
2457 * interface.c (check_dummy_characteristics): Fix coarray handling.
2459 2015-01-26 Tobias Burnus <burnus@net-b.de>
2461 * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
2463 2015-01-26 Janus Weil <janus@gcc.gnu.org>
2466 * class.c (finalize_component): New argument 'sub_ns'. Insert code to
2467 check if 'expr' is associated.
2468 (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
2469 'ptr2'. Pass 'sub_ns' to finalize_component.
2471 2015-01-25 Mikael Morin <mikael@gcc.gnu.org>
2474 * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
2475 * module.c (MOD_VERSION): Bump.
2476 (write_module): Don't write list of extensions.
2477 (read_module): Don't jump over list of extensions;
2478 don't load list of extensions.
2479 (load_derived_extensions, write_dt_extensions,
2480 write_derived_extensions): Remove.
2482 2015-01-24 Tobias Burnus <burnus@net-b.de>
2484 * parse.c (gfc_parse_file): Fix two-location gfc_error call.
2486 2015-01-23 Martin Liska <mliska@suse.cz>
2488 * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
2489 false positive during profiledbootstrap by initializing them.
2490 * matchexp.c (match_mult_operand): Likewise.
2491 * module.c (write_atom): Likewise.
2492 (read_module): Likewise.
2494 2015-01-23 Tom de Vries <tom@codesourcery.com>
2497 * lang.opt (fopenacc): Mark as LTO option.
2499 2015-01-23 Tom de Vries <tom@codesourcery.com>
2502 * lang.opt (fopenmp): Mark as LTO option.
2504 2015-01-23 Andre Vehreschild <vehre@gmx.de>
2506 * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
2507 * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
2509 2015-01-23 Jakub Jelinek <jakub@redhat.com>
2511 * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
2513 2015-01-23 Janus Weil <janus@gcc.gnu.org>
2516 * class.c (finalize_component): Apply the check for 'fini_coarray' only
2517 to coarray components.
2519 2015-01-23 Tobias Burnus <burnus@net-b.de>
2522 * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
2525 2015-01-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2529 * trans-io.c (set_parameter_value): Delete use of has_iostat.
2530 Redefine to not generate any runtime error check calls.
2531 (set_parameter_value_chk): Rename of the former
2532 set_parameter_value with the runtime error checks and fix
2533 whitespace. (set_parameter_value_inquire): New function that
2534 builds a runtime conditional block to set the INQUIRE
2535 common parameter block unit number to -2 when unit numbers
2536 exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
2537 For unit, use the renamed set_parameter_value_chk.
2538 (gfc_trans_close): Likewise use renamed function.
2539 (build_filepos): Whitespace and use renamed function.
2540 (gfc_trans_inquire): Whitespace and for unit use
2541 set_parameter_value and set_parameter_value_inquire.
2542 (gfc_trans_wait): Remove p->iostat from call to
2543 set_parameter_value. Use new set_parameter_value_chk for unit.
2544 (build_dt): Use the new set_parameter_value without p->iostat
2545 and fix whitespace. Use set_parameter_value_chk for unit.
2547 2015-01-21 Thomas Koenig <tkoenig@netcologne.de>
2550 * dependency.c (callback_dummy_intent_not_int): New function.
2551 (dummy_intent_not_in): New function.
2552 (gfc_full_array_ref_p): Use dummy_intent_not_in.
2554 2015-01-18 Andre Vehreschild <vehre@gmx.de>
2555 Janus Weil <janus@gcc.gnu.org>
2558 * class.c (gfc_get_len_component): New.
2559 (gfc_build_class_symbol): Add _len component to unlimited
2560 polymorphic entities.
2561 (find_intrinsic_vtab): Removed emitting of error message.
2562 * gfortran.h: Added prototype for gfc_get_len_component.
2563 * simplify.c (gfc_simplify_len): Use _len component where
2565 * trans-expr.c (gfc_class_len_get): New.
2566 (gfc_conv_intrinsic_to_class): Add handling for deferred
2568 (gfc_conv_structure): Treat _len component correctly.
2569 (gfc_conv_expr): Prevent bind_c handling when not required.
2570 (gfc_trans_pointer_assignment): Propagate _len component.
2571 * trans-stmt.c (class_has_len_component): New.
2572 (trans_associate_var): _len component treatment for associate
2574 (gfc_trans_allocate): Same as for trans_associate_var()
2575 * trans.h: Added prototype for gfc_class_len_get.
2577 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
2580 * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
2581 for allocatable components, where the source is a variable.
2583 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
2586 * primary.c (gfc_match_varspec): Exclude dangling associate-
2587 names with dimension 0 from being counted as arrays.
2588 * resolve.c (resolve_assoc_var): Sub-strings are permissible
2589 for associate-names, so exclude characters from the test for
2591 * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
2592 the hidden string length variable of their associated target.
2593 Signal this by setting 'length' to a constant, if the decl for
2594 the string length is a variable.
2596 2015-01-17 Paul Thomas <pault@gcc.gnu.org>
2599 * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
2600 before reinitializing rse, to add the rse.pre to block before
2602 * trans-intrinsic.c (gfc_conv_associated): Deal with the class
2603 data being a descriptor.
2605 2015-01-17 Andre Vehreschild <vehre@gmx.de>
2608 * primary.c (build_actual_constructor): Prevent warning.
2609 * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
2610 assignment): New function encapsulates treatment of allocatable
2612 (gfc_trans_subcomponent_assign): Needed to distinguish between
2613 regular assignment and initilization.
2614 (gfc_trans_structure_assign): Same.
2615 (gfc_conv_structure): Same.
2618 * gfortran.h: deferred_parameter is not needed, because
2619 it artificial does the trick completely.
2620 * primary.c (build_actual_constructor): Same.
2621 (gfc_convert_to_structure_constructor): Same.
2622 * resolve.c (resolve_fl_derived0): Same.
2623 * trans-expr.c (gfc_conv_component_ref): Prevent treating
2624 allocatable deferred length char arrays here.
2625 (gfc_trans_subcomponent_assign): Same as above.
2626 * trans-types.c (gfc_sym_type): This is done in
2627 gfc_get_derived_type already.
2629 2015-01-17 Andre Vehreschild <vehre@gmx.de>
2632 * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
2633 length when the symbol is declared to be a result.
2634 * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
2635 string length when functions are nested and the string length
2636 is a reference already.
2638 2015-01-16 Janus Weil <janus@gcc.gnu.org>
2641 * decl.c (match_pointer_init): Error out if resolution of init expr
2644 2015-01-15 Tobias Burnus <burnus@net-b.de>
2646 * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
2647 resolve_oacc_deviceptr_clause, resolve_omp_clauses,
2648 gfc_resolve_oacc_declare): Replace '%s' by %qs.
2650 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
2651 Cesar Philippidis <cesar@codesourcery.com>
2652 James Norris <jnorris@codesourcery.com>
2653 Ilmir Usmanov <i.usmanov@samsung.com>
2654 Tobias Burnus <burnus@net-b.de>
2656 * lang.opt (fopenacc): New option.
2657 * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
2658 * dump-parse-tree.c (show_omp_node): Split part of it into...
2659 (show_omp_clauses): ... this new function.
2660 (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
2661 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
2662 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2663 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2664 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2665 (show_namespace): Update for OpenACC.
2666 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
2667 (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
2668 (DEF_GOACC_BUILTIN_COMPILER): New macros.
2669 * types.def (BT_FN_VOID_INT_INT_VAR)
2670 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2671 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2673 * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
2674 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
2675 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
2676 ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
2677 ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
2678 ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
2679 ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
2681 (struct gfc_expr_list): New data type.
2682 (gfc_get_expr_list): New macro.
2683 (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
2684 OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
2685 OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
2686 (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
2687 (OMP_LIST_CACHE): New enumerators.
2688 (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
2689 vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
2690 wait_list, tile_list, async, gang, worker, vector, seq,
2691 independent, wait, par_auto, gang_static, and loc members.
2692 (struct gfc_namespace): Add oacc_declare_clauses member.
2693 (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
2694 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
2695 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2696 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2697 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2698 (gfc_free_expr_list, gfc_resolve_oacc_directive)
2699 (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
2700 (gfc_resolve_oacc_blocks): New prototypes.
2701 * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
2702 EXEC_OACC_PARALLEL_LOOP.
2703 * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
2704 (gfc_match_oacc_update, gfc_match_oacc_declare)
2705 (gfc_match_oacc_loop, gfc_match_oacc_host_data)
2706 (gfc_match_oacc_data, gfc_match_oacc_kernels)
2707 (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
2708 (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
2709 (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
2711 * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
2712 (gfc_free_omp_clauses): Update for members added to struct
2714 (gfc_match_omp_clauses): Change mask paramter to uint64_t. Add
2716 (resolve_omp_clauses): Add openacc parameter. Update for OpenACC.
2717 (struct fortran_omp_context): Add is_openmp member.
2718 (gfc_resolve_omp_parallel_blocks): Initialize it.
2719 (gfc_resolve_do_iterator): Update for OpenACC.
2720 (gfc_resolve_omp_directive): Call
2721 resolve_omp_directive_inside_oacc_region.
2722 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
2723 (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
2724 (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
2725 (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
2726 (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
2727 (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
2728 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
2729 (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
2730 (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
2731 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
2732 (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
2733 (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
2734 (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
2735 (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
2736 (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
2737 (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
2738 (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
2739 (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
2740 (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
2741 (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
2742 (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
2743 (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
2744 (gfc_match_omp_clauses): Handle those.
2745 (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
2746 (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
2747 (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
2748 (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
2749 (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
2750 (OACC_WAIT_CLAUSES): New macros.
2751 (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
2752 (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
2753 (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
2754 (gfc_match_oacc_kernels, gfc_match_oacc_data)
2755 (gfc_match_oacc_host_data, gfc_match_oacc_loop)
2756 (gfc_match_oacc_declare, gfc_match_oacc_update)
2757 (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
2758 (gfc_match_oacc_wait, gfc_match_oacc_cache)
2759 (gfc_match_oacc_routine, oacc_is_loop)
2760 (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
2761 (check_symbol_not_pointer, check_array_not_assumed)
2762 (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
2763 (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
2764 (omp_code_to_statement, oacc_code_to_statement)
2765 (resolve_oacc_directive_inside_omp_region)
2766 (resolve_omp_directive_inside_oacc_region)
2767 (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
2768 (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
2769 (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
2770 (gfc_resolve_oacc_directive): New functions.
2771 * parse.c (next_free): Update for OpenACC. Move some code into...
2772 (verify_token_free): ... this new function.
2773 (next_fixed): Update for OpenACC. Move some code into...
2774 (verify_token_fixed): ... this new function.
2775 (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
2776 ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
2777 (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
2778 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
2779 ST_OACC_KERNELS_LOOP.
2780 (case_decl): Add ST_OACC_ROUTINE.
2781 (push_state, parse_critical_block, parse_progunit): Update for
2783 (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
2784 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
2785 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
2786 ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
2787 ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
2788 ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
2789 ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
2791 (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
2792 (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
2793 ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
2794 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
2795 (decode_oacc_directive, parse_oacc_structured_block)
2796 (parse_oacc_loop, is_oacc): New functions.
2797 * parse.h (struct gfc_state_data): Add oacc_declare_clauses
2799 (is_oacc): New prototype.
2800 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
2801 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
2802 EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
2803 EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
2804 EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
2805 EXEC_OACC_EXIT_DATA.
2806 (resolve_codes): Call gfc_resolve_oacc_declare.
2807 * scanner.c (openacc_flag, openacc_locus): New variables.
2808 (skip_free_comments): Update for OpenACC. Move some code into...
2809 (skip_omp_attribute): ... this new function.
2810 (skip_oacc_attribute): New function.
2811 (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
2812 * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
2813 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
2814 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2815 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2816 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2817 * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
2818 * trans-openmp.c: Include "gomp-constants.h".
2819 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
2820 instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
2821 (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
2822 OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
2823 OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
2824 OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
2825 OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
2826 independent, wait_list, num_gangs_expr, num_workers_expr,
2827 vector_length_expr, vector, vector_expr, worker, worker_expr,
2828 gang, gang_expr members.
2829 (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
2830 (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
2831 (gfc_trans_oacc_executable_directive)
2832 (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
2833 (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
2834 * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
2835 * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
2837 * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
2838 EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
2839 EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
2840 EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
2841 EXEC_OACC_EXIT_DATA.
2842 * gfortran.texi: Update for OpenACC.
2843 * intrinsic.texi: Likewise.
2844 * invoke.texi: Likewise.
2846 2015-01-15 Janus Weil <janus@gcc.gnu.org>
2849 * resolve.c (resolve_fl_derived0): Continue resolving next component
2852 2015-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2855 * io.c (gfc_match_inquire): Generate error if unit number in
2856 inquire statement is a constant -1. All other values allowed.
2857 * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
2858 (create_dummy_iostat): Delete function no longer used.
2860 2015-01-13 Jakub Jelinek <jakub@redhat.com>
2863 * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
2864 on dummy args with VALUE attribute.
2866 2015-01-11 Janus Weil <janus@gcc.gnu.org>
2869 * interface.c (gfc_extend_expr): Look for type-bound operators before
2872 2015-01-11 Janus Weil <janus@gcc.gnu.org>
2875 * resolve.c (resolve_fl_derived0): Set error flag if problems with the
2876 interface of a procedure-pointer component were detected.
2878 2015-01-11 Janus Weil <janus@gcc.gnu.org>
2881 * interface.c (compare_parameter): Interface check for
2882 procedure-pointer component as actual argument.
2884 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
2886 * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
2887 Runtime Library" to "GNU Offloading and Multi Processing Runtime
2889 * intrinsic.texi: Likewise.
2891 2015-01-10 Tobias Burnus <burnus@net-b.de>
2894 * invoke.texi (Wline-truncation): Document new behaviour.
2895 * lang.opt (Wline-truncation): Add Init(-1).
2896 * options.c (gfc_post_options): If -Wline-truncation is unset,
2897 enable it for free-form source files; for the latter, also use
2898 -Werror=line-truncation, unless -Wno-error has been specified.
2900 2015-01-09 Michael Collison <michael.collison@linaro.org>
2902 * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2903 input.h, alias.h, symtab.h, options.h, fold-const.h,
2904 wide-int.h, and inchash.h due to flattening of tree.h.
2905 * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2906 input.h, alias.h, symtab.h, fold-const.h,
2907 wide-int.h, and inchash.h due to flattening of tree.h.
2909 * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2910 input.h, alias.h, symtab.h, options.h, fold-const.h,
2911 wide-int.h, and inchash.h due to flattening of tree.h.
2912 * iresolve.c: Ditto.
2913 * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2914 input.h, alias.h, symtab.h, fold-const.h,
2915 wide-int.h, and inchash.h due to flattening of tree.h.
2916 * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2917 input.h, alias.h, symtab.h, options.h, fold-const.h,
2918 wide-int.h, and inchash.h due to flattening of tree.h.
2920 * target-memory.c: Include hash-set.h, vec.h,
2921 double-int.h, input.h, alias.h, symtab.h, fold-const.h,
2922 wide-int.h, and inchash.h due to flattening of tree.h.
2923 * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2924 input.h, alias.h, symtab.h, options.h, fold-const.h,
2925 wide-int.h, and inchash.h due to flattening of tree.h.
2926 * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2927 input.h, alias.h, symtab.h, options.h, fold-const.h,
2928 wide-int.h, and inchash.h due to flattening of tree.h.
2929 * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2930 input.h, alias.h, symtab.h, fold-const.h,
2931 wide-int.h, and inchash.h due to flattening of tree.h.
2932 * trans-const.c: Ditto.
2933 * trans-decl.c: Ditto.
2934 * trans-expr.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 * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2938 input.h, alias.h, symtab.h, fold-const.h,
2939 wide-int.h, inchash.h and real.h due to flattening of tree.h.
2940 * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2941 input.h, alias.h, symtab.h, options.h, fold-const.h,
2942 wide-int.h, and inchash.h due to flattening of tree.h.
2943 * trans-openmp.c: Ditto.
2944 * trans-stmt.c: Ditto.
2945 * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2946 input.h, alias.h, symtab.h, fold-const.h,
2947 wide-int.h, inchash.h and real.h due to flattening of tree.h.
2949 2015-01-08 Tobias Burnus <burnus@net-b.de>
2951 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
2952 for module coarrays with -fcoarray=lib.
2953 (get_proc_pointer_decl): As module variable, make only public
2954 when not marked as private.
2956 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
2959 * dependency.h: Actually commit changes.
2961 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
2964 * dependency.c: Update copyright years.
2965 (gfc_discard_nops): Add prototype.
2966 * dependency.c (discard_nops): Rename to gfc_discard_nops,
2968 (gfc_discard_nops): Use gfc_discard_nops.
2969 (gfc_dep_difference): Likewise.
2970 * frontend-passes.c Update copyright years.
2971 (realloc_strings): New function. Add prototype.
2972 (gfc_run_passes): Call realloc_strings.
2973 (realloc_string_callback): New function.
2974 (create_var): Add prototype. Handle case of a
2975 scalar character variable.
2976 (optimize_trim): Do not handle allocatable variables.
2978 2015-01-05 Jakub Jelinek <jakub@redhat.com>
2980 Update copyright years.
2982 * gfortranspec.c (lang_specific_driver): Update copyright notice
2984 * gfc-internals.texi: Bump @copying's copyright year.
2985 * gfortran.texi: Ditto.
2986 * intrinsic.texi: Ditto.
2987 * invoke.texi: Ditto.
2989 2015-01-02 Janus Weil <janus@gcc.gnu.org>
2992 * expr.c (find_component_ref): Deal with extended types.
2994 2015-01-02 Tobias Burnus <burnus@net-b.de>
2996 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
2997 for module coarrays with -fcoarray=lib.
2999 2015-01-02 Janus Weil <janus@gcc.gnu.org>
3002 * interface.c (is_procptr_result): New function to check if an
3003 expression is a procedure-pointer result.
3004 (compare_actual_formal): Use it.
3006 Copyright (C) 2015 Free Software Foundation, Inc.
3008 Copying and distribution of this file, with or without modification,
3009 are permitted in any medium without royalty provided the copyright
3010 notice and this notice are preserved.