]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/fortran/ChangeLog
gfortran.h (struct gfc_namespace): New member `implicit_loc'.
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
CommitLineData
52f49934
DK
12008-09-02 Daniel Kraft <d@domob.eu>
2
3 * gfortran.h (struct gfc_namespace): New member `implicit_loc'.
4 (gfc_add_abstract): New method.
5 * decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
6 (gfc_match_derived_decl): Copy abstract attribute in derived symbol.
7 * dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
8 only to allow for ABSTRACT types.
9 * parse.c (parse_interface): Use new gfc_add_abstract.
10 * primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
11 type is constructed.
12 * resolve.c (resolve_typespec_used): New method.
13 (resolve_fl_derived): Check type in respect to ABSTRACT attribute and
14 check that no component is of an ABSTRACT type.
15 (resolve_symbol): Check that no symbol is of an ABSTRACT type.
16 (resolve_types): Check IMPLICIT declarations for ABSTRACT types.
17 * symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
18 (gfc_add_abstract): New method.
19
3e1e5626
DK
202008-09-01 Daniel Kraft <d@domob.eu>
21
22 PR fortran/37193
23 * module.c (read_module): Initialize use_only flag on used symbols.
24
a64a8f2f
DK
252008-09-01 Daniel Kraft <d@domob.eu>
26
27 * gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter
28 and section to document the internals of type-bound procedures.
29 (gfc_expr): Document EXPR_COMPCALL.
30 * gfortran.h (struct gfc_expr): Remove unused `derived' from compcall.
31 * dump-parse-tree.c (show_compcall): New method.
32 (show_expr): Call it for EXPR_COMPCALL.
33 (show_typebound), (show_f2k_derived): New methods.
34 (show_symbol): Call show_f2k_derived.
35 (show_code_node): Handle EXEC_COMPCALL.
36 * primary.c (gfc_match_varspec): Don't initialize removed `derived' in
37 primary->value.compcall.
38
eb829078
RG
392008-08-31 Richard Guenther <rguenther@suse.de>
40
41 * trans-expr.c (gfc_trans_string_copy): Use the correct types
42 to compute slen and dlen.
43
e157f736
DK
442008-08-31 Daniel Kraft <d@domob.eu>
45
46 * gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
47 (struct gfc_tbp_generic): New type.
48 (struct gfc_typebound_proc): Removed `target' and added union with
49 `specific' and `generic' members; new members `overridden',
50 `subroutine', `function' and `is_generic'.
51 (struct gfc_expr): New members `derived' and `name' in compcall union
52 member and changed type of `tbp' to gfc_typebound_proc.
53 (gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
54 * match.h (gfc_typebound_default_access): New global.
55 (gfc_match_generic): New method.
56 * decl.c (gfc_match_generic): New method.
57 (match_binding_attributes): New argument `generic' and handle it.
58 (match_procedure_in_type): Mark matched binding as non-generic.
59 * interface.c (gfc_compare_interfaces): Made public.
60 (gfc_compare_actual_formal): Ditto.
61 (check_interface_1), (compare_parameter): Use new public names.
62 (gfc_procedure_use), (gfc_search_interface): Ditto.
63 * match.c (match_typebound_call): Set base-symbol referenced.
64 * module.c (binding_generic): New global array.
65 (current_f2k_derived): New global.
66 (mio_typebound_proc): Handle IO of GENERIC bindings.
67 (mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
68 * parse.c (decode_statement): Handle GENERIC statement.
69 (gfc_ascii_statement): Ditto.
70 (typebound_default_access), (set_typebound_default_access): Removed.
71 (gfc_typebound_default_access): New global.
72 (parse_derived_contains): New default-access implementation and handle
73 GENERIC statements encountered.
74 * primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
75 structure and removed check for SUBROUTINE/FUNCTION from here.
76 * resolve.c (extract_compcall_passed_object): New method.
77 (update_compcall_arglist): Use it.
78 (resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
79 (resolve_typebound_generic_call): New method.
80 (resolve_typebound_call): Check target is a SUBROUTINE and handle calls
81 to GENERIC bindings.
82 (resolve_compcall): Ditto (check for target being FUNCTION).
83 (check_typebound_override): Handle GENERIC bindings.
84 (check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
85 (resolve_typebound_procedure): Handle GENERIC bindings and set new
86 attributes subroutine, function and overridden in gfc_typebound_proc.
87 (resolve_fl_derived): Ensure extended type is resolved before the
88 extending one is.
89 * st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
90 * symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.
91
041f300d
JH
922008-08-29 Jan Hubicka <jh@suse.cz>
93
8bcf15f6 94 * parse.c (parse_interface): Silence uninitialized var warning.
041f300d 95
a64f5186
JJ
962008-08-29 Jakub Jelinek <jakub@redhat.com>
97
de870512
JJ
98 * trans.h (struct lang_type): Add span.
99 (GFC_TYPE_ARRAY_SPAN): Define.
100 * trans-decl.c (gfc_get_symbol_decl): For subref array pointers,
101 copy TREE_STATIC from decl to span instead of setting it
102 unconditionally, set DECL_ARTIFICIAL, fix type of initializer
103 and set GFC_TYPE_ARRAY_SPAN on decl's type.
104 * trans-types.c (gfc_get_array_descr_info): If
105 GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size.
106
bd11e37d
JJ
107 * trans-decl.c (check_constant_initializer,
108 gfc_emit_parameter_debug_info): New functions.
109 (gfc_generate_module_vars, gfc_generate_function_code): Emit
110 PARAMETERs and unreferenced variables with initializers into
111 debug info.
112
9268ba9a
JJ
113 * gfortran.h (gfc_use_list): Add where field.
114 * module.c (use_locus): New static variable.
115 (gfc_match_use): Set it.
116 (gfc_use_module): Copy it to gfc_use_list's where field.
117 * trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts.
118 (gfc_trans_use_stmts): Set backend locus before calling the debug
119 hook. Allow non-VAR_DECLs to be created even for non-external
120 module. Don't emit anything so far for renames from different
121 modules.
122
714495cd
JJ
123 PR fortran/24790
124 * trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
125 PARM_DECLs with pointer or reference type.
126
25c29c56
JJ
127 * trans-decl.c (gfc_build_qualified_array): Build non-flat
128 array type for debug info purposes.
129
a64f5186
JJ
130 PR fortran/29635
131 PR fortran/23057
132 * f95-lang.c (gfc_init_ts): New function.
133 (LANG_HOOKS_INIT_TS): Define.
134 * gfortran.h (gfc_use_rename): New type, moved from module.c.
135 (gfc_get_use_rename): New macro, moved from module.c.
136 (gfc_use_list): New type.
137 (gfc_get_use_list): New macro.
138 (gfc_namespace): Add use_stmts field.
139 (gfc_free_use_stmts): New prototype.
140 * Make-lang.in (fortran/trans-decl.o): Depend on debug.h.
141 * module.c (gfc_use_rename, gfc_get_use_rename): Moved to
142 gfortran.h.
143 (gfc_use_module): Chain the USE statement info to
144 ns->use_stmts.
145 (gfc_free_use_stmts): New function.
146 * symbol.c (gfc_free_namespace): Call gfc_free_use_stmts.
147 * trans.h (struct module_htab_entry): New type.
148 (gfc_find_module, gfc_module_add_decl): New functions.
149 * trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for
150 the module, adjust DECL_CONTEXTs of module procedures and
151 call gfc_module_add_decl for them.
152 * trans-common.c (build_common_decl): Set DECL_IGNORED_P
153 on the common variable.
154 (create_common): Set DECL_IGNORED_P for use associated vars.
155 * trans-decl.c: Include debug.h.
156 (gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from
157 modules.
158 (build_function_decl): Allow current_function_decl's context
159 to be a NAMESPACE_DECL.
160 (module_htab, cur_module): New variables.
161 (module_htab_do_hash, module_htab_eq, module_htab_decls_hash,
162 module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New
163 functions.
164 (gfc_create_module_variable): Adjust DECL_CONTEXTs of module
165 variables and types and call gfc_module_add_decl for them.
166 (gfc_generate_module_vars): Temporarily set cur_module.
167 (gfc_trans_use_stmts): New function.
168 (gfc_generate_function_code): Call it.
169 (gfc_generate_block_data): Set DECL_IGNORED_P on decl.
170 * trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT
171 and TYPE_CONTEXT of module derived types.
172
8e1f752a
DK
1732008-08-28 Daniel Kraft <d@domob.eu>
174
175 * gfortran.h (enum expr_t): New value `EXPR_COMPCALL'.
176 (gfc_get_typebound_proc): New macro.
177 (struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL.
178 (enum gfc_exec_op): New value `EXEC_COMPCALL'.
179 (gfc_find_typebound_proc): New argument.
180 (gfc_copy_ref), (gfc_match_varspec): Made public.
181 * decl.c (match_procedure_in_type): Use gfc_get_typebound_proc.
182 * expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL.
183 (gfc_copy_ref): Made public and use new name.
184 (simplify_const_ref): Use new name of gfc_copy_ref.
185 (simplify_parameter_variable): Ditto.
186 (gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL.
187 * match.c (match_typebound_call): New method.
188 (gfc_match_call): Allow for CALL's to typebound procedures.
189 * module.c (binding_passing), (binding_overriding): New variables.
190 (expr_types): Add EXPR_COMPCALL.
191 (mio_expr): gcc_unreachable for EXPR_COMPCALL.
192 (mio_typebound_proc), (mio_typebound_symtree): New methods.
193 (mio_f2k_derived): Handle type-bound procedures.
194 * primary.c (gfc_match_varspec): Made public and parse trailing
195 references to type-bound procedures; new argument `sub_flag'.
196 (gfc_match_rvalue): New name and argument of gfc_match_varspec.
197 (match_variable): Ditto.
198 * resolve.c (update_arglist_pass): New method.
199 (update_compcall_arglist), (resolve_typebound_static): New methods.
200 (resolve_typebound_call), (resolve_compcall): New methods.
201 (gfc_resolve_expr): Handle EXPR_COMPCALL.
202 (resolve_code): Handle EXEC_COMPCALL.
203 (resolve_fl_derived): New argument to gfc_find_typebound_proc.
204 (resolve_typebound_procedure): Ditto and removed not-implemented error.
205 * st.c (gfc_free_statement): Handle EXEC_COMPCALL.
206 * symbol.c (gfc_find_typebound_proc): New argument `noaccess' and
207 implement access-checking.
208 * trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable
209 on EXPR_COMPCALL.
210 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break.
211 * trans-openmp.c (gfc_trans_omp_array_reduction): Add missing
212 intialization of ref->type.
213
b7fdeec9
JW
2142008-08-28 Janus Weil <janus@gcc.gnu.org>
215
216 PR fortran/37253
217 * module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of
218 saving attr.procedure and attr.proc_ptr to the module file.
219
9d1210f4
DK
2202008-08-25 Daniel Kraft <d@domob.eu>
221
222 * gfortran.h (gfc_find_component): Add new arguments.
223 * parse.c (parse_derived_contains): Check if the derived-type containing
224 the CONTAINS section is SEQUENCE/BIND(C).
225 * resolve.c (resolve_typebound_procedure): Check for name collision with
226 components.
227 (resolve_fl_derived): Check for name collision with inherited
228 type-bound procedures.
229 * symbol.c (gfc_find_component): New arguments `noaccess' and `silent'.
230 (gfc_add_component): Adapt for new arguments.
231 * primary.c (match_varspec), (gfc_match_structure_constructor): Ditto.
232
8327f9c2
TB
2332008-08-24 Tobias Burnus <burnus@net-b.de>
234
235 PR fortran/37201
236 * decl.c (verify_bind_c_sym): Reject array/string returning
237 functions.
238
3a73a540
TB
2392008-08-24 Tobias Burnus <burnus@net-b.de>
240
241 PR fortran/37201
242 * trans-expr.c (gfc_conv_function_call): Add string_length
243 for character-returning bind(C) functions.
244
30b608eb
DK
2452008-08-24 Daniel Kraft <d@domob.eu>
246
247 * gfortran.h (gfc_typebound_proc): New struct.
248 (gfc_symtree): New member typebound.
249 (gfc_find_typebound_proc): Prototype for new method.
250 (gfc_get_derived_super_type): Prototype for new method.
251 * parse.h (gfc_compile_state): New state COMP_DERIVED_CONTAINS.
252 * decl.c (gfc_match_procedure): Handle PROCEDURE inside derived-type
253 CONTAINS section.
254 (gfc_match_end): Handle new context COMP_DERIVED_CONTAINS.
255 (gfc_match_private): Ditto.
256 (match_binding_attributes), (match_procedure_in_type): New methods.
257 (gfc_match_final_decl): Rewrote to make use of new
258 COMP_DERIVED_CONTAINS parser state.
259 * parse.c (typebound_default_access): New global helper variable.
260 (set_typebound_default_access): New callback method.
261 (parse_derived_contains): New method.
262 (parse_derived): Extracted handling of CONTAINS to new parser state
263 and parse_derived_contains.
264 * resolve.c (resolve_bindings_derived), (resolve_bindings_result): New.
265 (check_typebound_override), (resolve_typebound_procedure): New methods.
266 (resolve_typebound_procedures): New method.
267 (resolve_fl_derived): Call new resolving method for typebound procs.
268 * symbol.c (gfc_new_symtree): Initialize new member typebound to NULL.
269 (gfc_find_typebound_proc): New method.
270 (gfc_get_derived_super_type): New method.
271
d4b7d0f0
JW
2722008-08-23 Janus Weil <janus@gcc.gnu.org>
273
274 * gfortran.h (gfc_component): Add field "symbol_attribute attr", remove
275 fields "pointer", "allocatable", "dimension", "access".
276 Remove functions "gfc_set_component_attr" and "gfc_get_component_attr".
277 * interface.c (gfc_compare_derived_types): Ditto.
278 * trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto.
279 * trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign,
280 gfc_conv_structure): Ditto.
281 * symbol.c (gfc_find_component,free_components,gfc_set_component_attr,
282 gfc_get_component_attr,verify_bind_c_derived_type,
283 generate_isocbinding_symbol): Ditto.
284 * decl.c (build_struct): Ditto.
285 * dump-parse-tree.c (show_components): Ditto.
286 * trans-stmt.c (gfc_trans_deallocate): Ditto.
287 * expr.c (gfc_check_assign,gfc_check_pointer_assign,
288 gfc_default_initializer): Ditto.
289 * module.c (mio_component): Ditto.
290 * trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto.
291 * resolve.c (has_default_initializer,resolve_structure_cons,
292 gfc_iso_c_func_interface,find_array_spec,resolve_ref,
293 resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived,
294 resolve_equivalence_derived): Ditto.
295 * trans-io.c (transfer_expr): Ditto.
296 * parse.c (parse_derived): Ditto.
297 * dependency.c (gfc_check_dependency): Ditto.
298 * primary.c (gfc_variable_attr): Ditto.
299
3434e9a4
TB
3002008-08-23 Tobias Burnus <burnus@net-b.de>
301
302 PR fortran/37076
303 * arith.c (gfc_arith_concat): Fix concat of kind=4 strings.
304
12ba225d
TB
3052008-08-23 Tobias Burnus <burnus@net-b.de>
306
307 PR fortran/37025
308 * target-memory.c (gfc_interpret_character): Support
309 kind=4 characters.
310
fee3292b
DK
3112008-08-22 Daniel Kraft <d@domob.eu>
312
313 PR fortran/30239
314 * symbol.c (gfc_add_type): Warn on -Wsurprising if a function-result
315 type is re-declared but neither -pedantic nor -std=f* is given and so
316 this is no error.
317 * invoke.texi (-Wsurprising): Document this new behaviour.
318
3df684e2
DK
3192008-08-22 Daniel Kraft <d@domob.eu>
320
321 * gfortran.h (in_prefix): Removed from this header.
322 * match.h (gfc_matching_prefix): Moved and renamed from `in_prefix'.
323 * decl.c (in_prefix): Removed from here.
324 (gfc_match_prefix): Use new name of `gfc_matching_prefix'.
325 * symbol.c (gfc_check_symbol_typed): Ditto.
326 * expr.c (check_typed_ns): New helper variable.
327 (expr_check_typed_help): New helper method.
328 (gfc_expr_check_typed): Rewrote to use gfc_traverse_expr to do the
329 work, fixing a minor problem.
330 * match.c (gfc_matching_prefix): New variable.
331
f37e928c
DK
3322008-08-22 Daniel Kraft <d@domob.eu>
333
334 PR fortran/32095
335 PR fortran/34228
336 * gfortran.h (in_prefix): New global.
337 (gfc_check_symbol_typed), (gfc_check_expr_typed): New methods.
338 * array.c (match_array_element_spec): Check that bounds-expressions
339 don't have symbols not-yet-typed in them.
340 * decl.c (var_element): Check that variable used is already typed.
341 (char_len_param_value): Check that expression does not contain
342 not-yet-typed symbols.
343 (in_prefix): New global.
344 (gfc_match_prefix): Record using `in_prefix' if we're at the moment
345 parsing a prefix or not.
346 * expr.c (gfc_expr_check_typed): New method.
347 * parse.c (verify_st_order): New argument to disable error output.
348 (check_function_result_typed): New helper method.
349 (parse_spec): Check that the function-result declaration, if given in
350 a prefix, contains no not-yet-typed symbols when the IMPLICIT rules are
351 parsed.
352 * symbol.c (gfc_check_symbol_typed): Check that a symbol already has
353 a type associated to it, otherwise use the IMPLICIT rules or signal
354 an error.
355
509c9d60
MLI
3562008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
357
358 * f95-lang.c: Update all calls to pedwarn.
359
f34cf28d
DF
3602008-08-18 Daniel Franke <franke.daniel@gmail.com>
361
362 PR fortran/37032
363 * gfortran.texi: Document decision on include file handling in
364 preprocessed files.
365
6c397102
TB
3662008-08-16 Tobias Burnus <burnus@net-b.de>
367
368 PR fortran/36825
369 * libgfortran.h: Reduce GFC_MAX_DIMENSIONS to 7.
370
dad80a1b
JD
3712008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
372
373 PR fortran/35863
374 * io.c (gfc_match_open): Enable UTF-8 in checks.
375 * simplify.c (gfc_simplify_selected_char_kind): Enable iso_10646.
376
beb4bd6c
JW
3772008-08-14 Janus Weil <janus@gcc.gnu.org>
378
379 PR fortran/36705
380 * symbol.c (check_conflict): Move conflict checks for (procedure,save)
381 and (procedure,intent) to resolve_fl_procedure.
382 * resolve.c (resolve_fl_procedure): Ditto.
383
71205d17
MLI
3842008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
385
386 PR 36901
387 * f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
388 'pedwarn0'.
389
63a3341a
PT
3902008-08-09 Paul Thomas <pault@gcc.gnu.org>
391
392 PR fortran/37011
393 * symbol.c (gfc_add_extension): New function.
394 * decl.c (gfc_get_type_attr_spec): Call it.
395 (gfc_match_derived_decl): Set symbol extension attribute from
396 attr.extension.
397 * gfortran.h : Add prototype for gfc_add_extension.
398
e73f7547
MLI
3992008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
400
401 PR 28875
402 * options.c (set_Wall): Replace set_Wunused by warn_unused.
403
f6fad28e
DK
4042008-08-08 Daniel Kraft <d@domob.eu>
405
406 * gfortran.h (gfc_finalizer): Replaced member `procedure' by two
407 new members `proc_sym' and `proc_tree' to store the symtree after
408 resolution.
409 (gfc_find_sym_in_symtree): Made public.
410 * decl.c (gfc_match_final_decl): Adapted for new member name.
411 * interface.c (gfc_find_sym_in_symtree): Made public.
412 (gfc_extend_expr), (gfc_extend_assign): Changed call accordingly.
413 * module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
414 New methods for module-file IO of f2k_derived.
415 (mio_symbol): Do IO of f2k_derived namespace.
416 * resolve.c (gfc_resolve_finalizers): Adapted for new member name and
417 finding the symtree for the symbol here.
418 * symbol.c (gfc_free_finalizer): Adapted for new members.
419
70b1e376
RW
4202008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
421
422 * gfc-internals.texi: Update to GFDL 1.2. Do not list GPL as
423 Invariant Section.
424 * gfortran.texi: Likewise.
425 * intrinsic.texi: Do not list GPL as Invariant Section.
426 * invoke.texi: Likewise. Update copyright years.
427
7d1f1e61
PT
4282008-07-29 Paul Thomas <pault@gcc.gnu.org>
429
430 * trans-expr.c (conv_parent_component_references): New function
431 to build missing parent references.
432 (gfc_conv_variable): Call it
433 * symbol.c (gfc_add_component): Check that component name in a
434 derived type extension does not appear in parent.
435 (gfc_find_component): For a derived type extension, check if
436 the component appears in the parent derived type by calling
437 self. Separate errors for private components and private types.
438 * decl.c (match_data_constant): Add extra arg to call to
439 gfc_match_structure_constructor.
440 (check_extended_derived_type): New function to check that a
441 parent derived type exists and that it is OK for exension.
442 (gfc_get_type_attr_spec): Add extra argument 'name' and return
443 it if extends is specified.
444 (gfc_match_derived_decl): Match derived type extension and
445 build a first component of the parent derived type if OK. Add
446 the f2k namespace if not present.
447 * gfortran.h : Add the extension attribute.
448 * module.c : Handle attribute 'extension'.
449 * match.h : Modify prototypes for gfc_get_type_attr_spec and
450 gfc_match_structure_constructor.
451 * primary.c (build_actual_constructor): New function extracted
452 from gfc_match_structure_constructor and modified to call self
453 iteratively to build derived type extensions, when f2k named
454 components are used.
455 (gfc_match_structure_constructor): Do not throw error for too
456 many components if a parent type is being handled. Use
457 gfc_find_component to generate errors for non-existent or
458 private components. Iteratively call self for derived type
459 extensions so that parent constructor is built. If extension
460 and components left over, throw error.
461 (gfc_match_rvalue): Add extra arg to call to
462 gfc_match_structure_constructor.
463
464 * trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs
465 are the same symbol, aliassing does not matter.
466
e90acd93
JH
4672008-07-29 Jan Hubicka <jh@suse.cz>
468
469 * options.c (gfc_post_options): Do not set flag_no_inline.
470
1fbfb0e2
DK
4712008-07-29 Daniel Kraft <d@domob.eu>
472
473 PR fortran/36403
474 * trans-intrinsic.c (conv_generic_with_optional_char_arg): New method
475 to append a string-length even if the string argument is missing, e.g.
476 for EOSHIFT.
477 (gfc_conv_intrinsic_function): Call the new method for EOSHIFT, PACK
478 and RESHAPE.
479
17b1d2a0
KG
4802008-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
481
482 * gfortran.h (try): Remove macro. Replace try with gfc_try
483 throughout.
484 * array.c: Likewise.
485 * check.c: Likewise.
486 * cpp.c: Likewise.
487 * cpp.h: Likewise.
488 * data.c: Likewise.
489 * data.h: Likewise.
490 * decl.c: Likewise.
491 * error.c: Likewise.
492 * expr.c: Likewise.
493 * interface.c: Likewise.
494 * intrinsic.c: Likewise.
495 * intrinsic.h: Likewise.
496 * io.c: Likewise.
497 * match.h: Likewise.
498 * parse.c: Likewise.
499 * parse.h: Likewise.
500 * resolve.c: Likewise.
501 * scanner.c: Likewise.
502 * simplify.c: Likewise.
503 * symbol.c: Likewise.
504 * trans-openmp.c: Likewise.
505 * trans-types.c: Likewise.
506
8604e2cf
TB
5072008-07-28 Tobias Burnus <burnus@net-b.de>
508
509 * Make-lang.in: Remove -Wno-* from fortran-warn.
510
726a989a
RB
5112008-07-28 Richard Guenther <rguenther@suse.de>
512
513 Merge from gimple-tuples-branch.
514
515 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
516
517 * trans-expr.c: Include gimple.h instead of tree-gimple.h.
518 * trans-array.c: Same.
519 * trans-openmp.c: Same.
520 * trans-stmt.c: Same.
521 * f95-lang.c: Same.
522 * trans-io.c: Same.
523 * trans-decl.c: Same.
524 * trans-intrinsic.c: Same.
525 * trans.c: Same. Include tree-iterator.h.
526 * Make-lang.in (trans.o): Depend on tree-iterator.h
527
528 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
529
530 * trans-array.h (gfc_conv_descriptor_data_set_internal):
531 Rename to gfc_conv_descriptor_data_set.
532 (gfc_conv_descriptor_data_set_tuples): Remove.
533 * trans-array.c (gfc_conv_descriptor_data_get): Rename
534 from gfc_conv_descriptor_data_set_internal.
535 Remove last argument to gfc_add_modify.
536 (gfc_trans_allocate_array_storage): Rename gfc_add_modify_expr to
537 gfc_add_modify.
538 (gfc_trans_create_temp_array): Same.
539 (gfc_conv_array_transpose): Same.
540 (gfc_grow_array): Same.
541 (gfc_put_offset_into_var): Same.
542 (gfc_trans_array_ctor_element): Same.
543 (gfc_trans_array_constructor_subarray): Same.
544 (gfc_trans_array_constructor_value): Same.
545 (gfc_trans_scalarized_loop_end): Same.
546 (gfc_array_init_size): Same.
547 (gfc_array_allocate): Same.
548 (gfc_trans_array_bounds): Same.
549 (gfc_trans_auto_array_allocation): Same.
550 (gfc_trans_g77_array): Same.
551 (gfc_trans_dummy_array_bias): Same.
552 (gfc_conv_expr_descriptor): Same.
553 (structure_alloc_comps): Same.
554 * trans-expr.c: Same.
555 * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
556 Rename gfc_conv_descriptor_data_set_tuples to
557 gfc_conv_descriptor_data_set.
558 (gfc_omp_clause_copy_ctor): Change build_gimple_modify_stmt to
559 build2_v.
560 (gfc_omp_clause_assign_op): Same.
561 (gfc_trans_omp_array_reduction): Rename gfc_add_modify_expr to
562 gfc_add_modify.
563 (gfc_trans_omp_atomic): Same.
564 (gfc_trans_omp_do): Same. Change GIMPLE_MODIFY_STMT to MODIFY_EXPR.
565 Rename gfc_add_modify_stmt to gfc_add_modify.
566 * trans-stmt.c: Rename gfc_add_modify_expr to
567 gfc_add_modify.
568 * trans.c: Rename gfc_add_modify_expr to
569 gfc_add_modify.
570 (gfc_add_modify): Remove last argument.
571 Rename GIMPLE_MODIFY_STMT to MODIFY_EXPR.
572 * trans.h: Remove gfc_add_modify_expr, gfc_add_modify_stmt.
573 Add prototype for gfc_add_modify.
574 * f95-lang.c (union lang_tree_node): Rename GENERIC_NEXT to TREE_CHAIN.
575 * trans-decl.c: Rename gfc_add_modify_stmt to gfc_add_modify.
576 * trans-io.c: Same.
577 * trans-intrinsic.c: Same.
578
579 2008-02-25 Aldy Hernandez <aldyh@redhat.com>
580
581 * Make-lang.in (fortran-warn): Add -Wno-format.
582
583 2008-02-19 Diego Novillo <dnovillo@google.com>
584
585 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
586
587 * fortran/Make-lang.in (fortran-warn): Remove.
588
589 2007-11-22 Aldy Hernandez <aldyh@redhat.com>
590
591 * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a
592 memset.
593
594 2007-11-10 Aldy Hernandez <aldyh@redhat.com>
595
596 * Make-lang.in (fortran-warn): Set to -Wno-format.
597 * trans.c (gfc_trans_code): Update comment to say GENERIC.
598 Call tree_annotate_all_with_locus instead of annotate_all_with_locus.
599
0d52899f
TB
6002008-07-27 Tobias Burnus <burnus@net-b.de>
601
602 PR fortran/36132
603 PR fortran/29952
604 PR fortran/36909
605 * trans.c (gfc_trans_runtime_check): Allow run-time warning besides
606 run-time error.
607 * trans.h (gfc_trans_runtime_check): Update declaration.
608 * trans-array.c (gfc_trans_array_ctor_element,gfc_trans_array_bound_check,
609 gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias):
610 Updated gfc_trans_runtime_check calls.
611 (gfc_conv_array_parameter): Implement flag_check_array_temporaries,
612 fix packing/unpacking for nonpresent optional actuals to optional
613 formals.
614 * trans-array.h (gfc_conv_array_parameter): Update declaration.
615 * trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign,
616 gfc_conv_function_call): Updated gfc_trans_runtime_check calls.
617 (gfc_conv_function_call): Update gfc_conv_array_parameter calls.
618 * trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check
619 calls.
620 * trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto.
621 (gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for
622 gfc_conv_array_parameter.
623 * trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto.
624 * trans-decl.c (gfc_build_builtin_function_decls): Add
625 gfor_fndecl_runtime_warning_at.
626 * lang.opt: New option fcheck-array-temporaries.
627 * gfortran.h (gfc_options): New flag_check_array_temporaries.
628 * options.c (gfc_init_options, gfc_handle_option): Handle flag.
629 * invoke.texi: New option fcheck-array-temporaries.
630
7e8b322a
JH
6312008-07-24 Jan Hubicka <jh@suse.cz>
632
633 * fortran/options.c (gfc_post_options): Remove flag_unline_trees code.
634
c3005b0f
DK
6352008-07-24 Daniel Kraft <d@domob.eu>
636
637 PR fortran/33141
638 * lang.opt (Wnonstd-intrinsics): Removed option.
639 (Wintrinsics-std), (Wintrinsic-shadow): New options.
640 * invoke.texi (Option Summary): Removed -Wnonstd-intrinsics
641 from the list and added -Wintrinsics-std and -Wintrinsic-shadow.
642 (Error and Warning Options): Documented the new options and removed
643 the documentation for -Wnonstd-intrinsics.
644 * gfortran.h (gfc_option_t): New members warn_intrinsic_shadow and
645 warn_intrinsics_std, removed warn_nonstd_intrinsics.
646 (gfc_is_intrinsic): Renamed from gfc_intrinsic_name.
647 (gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard): New.
648 * decl.c (match_procedure_decl): Replaced gfc_intrinsic_name by
649 the new name gfc_is_intrinsic.
650 (warn_intrinsic_shadow): New helper method.
651 (gfc_match_function_decl), (gfc_match_subroutine): Call the new method
652 warn_intrinsic_shadow to check the just-parsed procedure.
653 * expr.c (check_init_expr): Call new gfc_is_intrinsic to check whether
654 the function called is really an intrinsic in the selected standard.
655 * intrinsic.c (gfc_is_intrinsic): Renamed from gfc_intrinsic_name and
656 extended to take into account the selected standard settings when trying
657 to find out whether a symbol is an intrinsic or not.
658 (gfc_check_intrinsic_standard): Made public and extended.
659 (gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface): Removed
660 the calls to check_intrinsic_standard, this check now happens inside
661 gfc_is_intrinsic.
662 (gfc_warn_intrinsic_shadow): New method defined.
663 * options.c (gfc_init_options): Initialize new warning flags to false
664 and removed intialization of Wnonstd-intrinsics flag.
665 (gfc_post_options): Removed logic for Wnonstd-intrinsics flag.
666 (set_Wall): Set new warning flags and removed Wnonstd-intrinsics flag.
667 (gfc_handle_option): Handle the new flags and removed handling of the
668 old Wnonstd-intrinsics flag.
669 * primary.c (gfc_match_rvalue): Replaced call to gfc_intrinsic_name by
670 the new name gfc_is_intrinsic.
671 * resolve.c (resolve_actual_arglist): Ditto.
672 (resolve_generic_f), (resolve_unknown_f): Ditto.
673 (is_external_proc): Ditto.
674 (resolve_generic_s), (resolve_unknown_s): Ditto.
675 (resolve_symbol): Ditto and ensure for symbols declared INTRINSIC that
676 they are really available in the selected standard setting.
677
befdf741
DK
6782008-07-24 Daniel Kraft <d@domob.eu>
679
680 * match.c (gfc_match): Add assertion to catch wrong calls trying to
681 match upper-case characters.
682
bdfd2ff0
TK
6832008-07-24 Thomas Koenig <tkoenig@gcc.gnu.org>
684
685 PR fortran/29952
686 * gfortran.h: Add "warn_array_temp" to gfc_option_t.
687 * lang.opt: Add -Warray-temporaries.
688 * invoke.texi: Document -Warray-temporaries
689 * trans-array.h (gfc_trans_create_temp_array): Add argument of
690 type *locus.
691 (gfc_conv_loop_setup): Likewise.
692 * trans-array.c (gfc_trans_create_temp_array): If
693 -Warray-temporaries is given and locus is present, warn about
694 creation of array temporaries.
695 (gfc_trans_array_constructor_subarray): Add locus to call
696 of gfc_conv_loop_setup.
697 (gfc_trans_array_constructor): Add where argument. Pass where
698 argument to call of gfc_trans_create_temp_array.
699 (gfc_add_loop_ss_code): Add where argument. Pass where argument
700 to recursive call of gfc_add_loop_ss_code and to call of
701 gfc_trans_array_constructor.
702 (gfc_conv_loop_setup): Add where argument. Pass where argument
703 to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array.
704 (gfc_conv_expr_descriptor): Pass location to call of
705 gfc_conv_loop_setup.
706 (gfc_conv_array_parameter): If -Warray-temporaries is given,
707 warn about creation of temporary arrays.
708 * trans-expr.c (gfc_conv_subref_array_arg): Add where argument
709 to call to gfc_conv_loop_setup.
710 (gfc_conv_function_call): Add where argument to call to
711 gfc_trans_creat_temp_array.
712 (gfc_trans_subarray_assign): Likewise.
713 (gfc_trans_assignment_1): Add where argument to call to
714 gfc_conv_loop_setup.
715 * trans-stmt.c (gfc_conv_elemental_dependencies): Add where
716 argument to call to gfc_trans_create_temp_array.
717 (gfc_trans_call): Add where argument to call to gfc_conv_loop_setup.
718 (generate_loop_for_temp_to_lhs): Likewise.
719 (generate_loop_for_rhs_to_temp): Likewise.
720 (compute_inner_temp_size): Likewise.
721 (gfc_trans-pointer_assign_need_temp): Likewise.
722 (gfc_evaluate_where_mask): Likewise.
723 (gfc_trans_where_assign): Likewise.
724 (gfc_trans_where_3): Likewise.
725 * trans-io.c (transfer_srray_component): Add where argument
726 to function. Add where argument to call to gfc_conv_loop_setup.
727 (transfer_expr): Add where argument to call to
728 transfer_array_component.
729 (gfc_trans_transfer): Add where expression to call to
730 gfc_conv_loop_setup.
731 * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Add
732 where argument to call to gfc_conv_loop_setup.
733 (gfc_conv_intrinsic_count): Likewise.
734 (gfc_conv_intrinsic_arith): Likewise.
735 (gfc_conv_intrinsic_dot_product): Likewise.
736 (gfc_conv_intrinsic_minmaxloc): Likewise.
737 (gfc_conv_intrinsic_minmaxval): Likewise.
738 (gfc_conv_intrinsic_array_transfer): Warn about
739 creation of temporary array.
740 Add where argument to call to gfc_trans_create_temp_array.
741 * options.c (gfc_init_options): Initialize gfc_option.warn_array_temp.
742 (gfc_handle_option): Set gfc_option.warn_array_temp.
743
fcf73884
MLI
7442008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
745
746 PR 35058
747 * f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed.
748
9cad01ce
DK
7492008-07-22 Daniel Kraft <d@domob.eu>
750
751 PR fortran/29835
752 * io.c (error_element), (format_locus): New static globals.
753 (unexpected_element): Spelled out this message fully.
754 (next_char): Keep track of locus when not MODE_STRING.
755 (next_char_not_space): Remember last parsed element in error_element.
756 (format_lex): Fix two indentation errors.
757 (check_format): Use format_locus and possibly error_element for a
758 slightly better error message on invalid format.
759 (check_format_string): Set format_locus to start of the string
760 expression used as format.
761
df2fba9e
RW
7622008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
763
764 * expr.c (gfc_check_pointer_assign): Fix typo in string.
765 * io.c (check_format): Fix typo in string. Fix comment typos.
766 * parse.c (gfc_global_used): Likewise.
767 * resolve.c (resolve_allocate_expr): Likewise.
768 * symbol.c (gfc_set_default_type): Likewise.
769 * arith.c: Fix typos in comments.
770 * array.c: Likewise.
771 * data.c: Likewise.
772 * decl.c: Likewise.
773 * dependency.c: Likewise.
774 * f95-lang.c: Likewise.
775 * gfortran.h: Likewise.
776 * matchexp.c: Likewise.
777 * module.c: Likewise.
778 * primary.c: Likewise.
779 * scanner.c: Likewise.
780 * trans-array.c: Likewise.
781 * trans-common.c: Likewise.
782 * trans-decl.c: Likewise.
783 * trans-expr.c: Likewise.
784 * trans-intrinsic.c: Likewise.
785 * trans-types.c: Likewise.
786 * trans.c: Likewise.
787 * trans.h: Likewise.
788
5e2be41f
TB
7892008-07-19 Tobias Burnus <burnus@net-b.de>
790
791 PR fortran/36795
792 * matchexp.c (gfc_get_parentheses): Remove obsolete workaround,
793 which caused the generation of wrong code.
794
e513a086
TB
7952008-07-19 Tobias Burnus <burnus@net-b.de>
796
797 PR fortran/36342
798 * scanner.c (load_file): Add argument to destinguish between
799 true filename and displayed filename.
800 (include_line,gfc_new_file): Adapt accordingly.
801
d1a296c1
TB
8022008-07-19 Tobias Burnus <burnus@net-b.de>
803
804 * check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank
805 checks for cshift's shift and eoshift's shift and boundary args.
806 (gfc_check_unpack): Add rank and shape tests for unpack.
807
7b901ac4
KG
8082008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
809
810 * gfortran.h (new): Remove macro.
811 * array.c (gfc_append_constructor, match_array_list,
812 gfc_match_array_constructor): Likewise.
813 * bbt.c (insert, gfc_insert_bbt): Likewise.
814 * decl.c (var_element, top_var_list, top_val_list, gfc_match_data,
815 get_proc_name): Likewise.
816 * expr.c (gfc_copy_actual_arglist): Likewise.
817 * interface.c (compare_actual_formal, check_new_interface,
818 gfc_add_interface): Likewise.
819 * intrinsic.c gfc_convert_type_warn, gfc_convert_chartype):
820 Likewise.
821 * io.c (match_io_iterator, match_io_list): Likewise.
822 * match.c (match_forall_header): Likewise.
823 * matchexp.c (build_node): Likewise.
824 * module.c (gfc_match_use): Likewise.
825 * scanner.c (load_file): Likewise.
826 * st.c (gfc_append_code): Likewise.
827 * symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
828 gfc_commit_symbols): Likewise.
829 * trans-common.c (build_field): Likewise.
830 * trans-decl.c (gfc_finish_var_decl): Likewise.
831 * trans-expr.c (gfc_free_interface_mapping,
832 gfc_get_interface_mapping_charlen, gfc_add_interface_mapping,
833 gfc_finish_interface_mapping,
834 gfc_apply_interface_mapping_to_expr): Likewise.
835 * trans.h (gfc_interface_sym_mapping): Likewise.
836
a1ee985f
KG
8372008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
838
839 * gfortran.h (operator): Remove macro.
840 (gfc_namespace, gfc_expr): Avoid C++ keywords.
841 * arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3):
842 Likewise.
843 * decl.c (access_attr_decl): Likewise.
844 * dependency.c (gfc_dep_compare_expr): Likewise.
845 * dump-parse-tree.c (show_expr, show_uop, show_namespace):
846 Likewise.
847 * expr.c (gfc_copy_expr, gfc_type_convert_binary,
848 simplify_intrinsic_op, check_intrinsic_op): Likewise.
849 * interface.c (fold_unary, gfc_match_generic_spec,
850 gfc_match_interface, gfc_match_end_interface,
851 check_operator_interface, check_uop_interfaces,
852 gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign,
853 gfc_add_interface, gfc_current_interface_head,
854 gfc_set_current_interface_head): Likewise.
855 * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
856 Likewise.
857 * matchexp.c (gfc_get_parentheses, build_node): Likewise.
858 * module.c (gfc_use_rename, gfc_match_use, find_use_name_n,
859 number_use_names, mio_expr, load_operator_interfaces, read_module,
860 write_operator, write_module): Likewise.
861 * openmp.c (resolve_omp_atomic): Likewise.
862 * resolve.c (resolve_operator, gfc_resolve_character_operator,
863 gfc_resolve_uops): Likewise.
864 * symbol.c (free_uop_tree, gfc_free_namespace): Likewise.
865 * trans-expr.c (gfc_conv_expr_op): Likewise.
866 * trans-openmp.c (gfc_trans_omp_atomic): Likewise.
867
9aa433c2
KG
8682008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
869
870 * gfortran.h (protected): Remove macro.
871 * dump-parse-tree.c (show_attr): Avoid C++ keywords.
872 * expr.c (gfc_check_pointer_assign): Likewise.
873 * interface.c (compare_parameter_protected): Likewise.
874 * intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1,
875 add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3,
876 add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s,
877 add_sym_5s): Likewise.
878 * match.c (gfc_match_assignment, gfc_match_pointer_assignment):
879 Likewise.
880 * module.c (mio_symbol_attribute): Likewise.
881 * primary.c (match_variable): Likewise.
882 * resolve.c (resolve_equivalence): Likewise.
883 * symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr):
884 Likewise.
885 * trans-types.c (gfc_get_array_type_bounds): Likewise.
886
8b11b59f
KG
8872008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
888
889 * arith.c (eval_type_intrinsic0): Avoid C++ keywords.
890 * gfortran.h (try, protected, operator, new): Likewise.
891
bdad0683
TB
8922008-07-17 Tobias Burnus <burnus@net-b.de>
893
894 PR fortran/36825
895 PR fortran/36824
896 * array.c (gfc_match_array_spec): Fix array-rank check.
897 * resolve.c (resolve_fl_derived): Fix constentness check
898 for the array dimensions.
899
e63ea00c
RW
9002008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
901
902 * Make-lang.in (gfortranspec.o): Fix dependencies.
903
41d6f399
JD
9042008-07-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
905
906 PR fortran/36725
907 * io.c: Add error check for g0 edit descriptor followed by '.'.
908
4b156631
DK
9092008-07-12 Daniel Kraft <d@domob.eu>
910
911 * resolve.c (resolve_fl_derived): Allow pointer components to empty
912 derived types fixing a missing part of PR fortran/33221.
913
b1caaefc
DK
9142008-07-10 Daniel Kraft <d@domob.eu>
915
916 * gfc-internals.texi (section gfc_expr): Created documentation about
917 the gfc_expr internal data structure.
918
27696218
TK
9192008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org>
920
921 PR fortran/36670
922 * iresolve.c (gfc_resolve_product): Set shape of return
923 value from array.
924 (gfc_resolve_sum): Likewise.
925
77092cda
JJ
9262008-07-07 Jakub Jelinek <jakub@redhat.com>
927
928 PR middle-end/36726
929 * f95-lang.c (poplevel): Don't ever add subblocks to
930 global_binding_level.
931
8fb74da4
JW
9322008-07-02 Janus Weil <janus@gcc.gnu.org>
933 Tobias Burnus <burnus@net-b.de>
934 Paul Thomas <pault@gcc.gnu.org>
935
936 PR fortran/32580
937 * gfortran.h (struct gfc_symbol): New member "proc_pointer".
938 * check.c (gfc_check_associated,gfc_check_null): Implement
939 procedure pointers.
940 * decl.c (match_procedure_decl): Ditto.
941 * expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto.
942 * interface.c (compare_actual_formal): Ditto.
943 * match.h: Ditto.
944 * match.c (gfc_match_pointer_assignment): Ditto.
945 * parse.c (parse_interface): Ditto.
946 * primary.c (gfc_match_rvalue,match_variable): Ditto.
947 * resolve.c (resolve_fl_procedure): Ditto.
948 * symbol.c (check_conflict,gfc_add_external,gfc_add_pointer,
949 gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto.
950 * trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl,
951 create_function_arglist): Ditto.
952 * trans-expr.c (gfc_conv_variable,gfc_conv_function_val,
953 gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto.
954
04f2b606
TK
9552008-07-02 Thomas Koenig <tkoenig@gcc.gnu.org>
956
957 PR fortran/36590
958 PR fortran/36681
959 * iresolve.c (resolve_mask_arg): Don't convert mask to
960 kind=1 logical if it is of that type already.
961
986a8d11
TK
9622008-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
963
964 PR fortran/36341
965 * iresolve.c (gfc_resolve_matmul): Copy shapes
966 from arguments.
967
082b0571
JD
9682008-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
969
970 * invoke.texi: Add documentation for runtime behavior of
971 -fno-range-check.
972
b66c86cb
DK
9732008-06-28 Daniel Kraft <d@domob.eu>
974
975 * gfc-internals.texi (section gfc_code): Extended documentation about
976 gfc_code in the internal datastructures chapter including details about
977 how IF, DO and SELECT blocks look like and an example for how the
978 block-chaining works.
979
811d3cd3
PT
9802008-06-25 Paul Thomas <pault@gcc.gnu.org>
981
982 PR fortran/36526
983 * interface.c (check_intents): Correct error where the actual
984 arg was checked for a pointer argument, rather than the formal.
985
c4e3543d
PT
9862008-06-24 Paul Thomas <pault@gcc.gnu.org>
987
988 PR fortran/34371
989 * expr.c (gfc_check_assign): Change message and locus for
990 error when conform == 0.
991
94b12901
JJ
9922008-06-23 Jakub Jelinek <jakub@redhat.com>
993
994 PR fortran/36597
995 * cpp.c (cpp_define_builtins): Change _OPENMP value to 200805.
996
95213750
LB
9972008-06-20 Laurynas Biveinis <laurynas.biveinis@gmail.com>
998 Tobias Burnus <burnus@net-b.de>
999
1000 PR fortran/34908
1001 PR fortran/36276
1002 * scanner.c (preprocessor_line): do not call gfc_free for
1003 current_file->filename if it differs from filename.
1004
ece3f663
KG
10052008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1006
1007 * arith.c (hollerith2representation): Fix for -Wc++-compat.
1008 * array.c (gfc_get_constructor): Likewise.
1009 * decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
1010 create_enum_history, gfc_match_final_decl): Likewise.
1011 * error.c (error_char): Likewise.
1012 * expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
1013 * gfortran.h (gfc_get_charlen, gfc_get_array_spec,
1014 gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
1015 gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
1016 gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
1017 gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
1018 gfc_get_alloc, gfc_get_wide_string): Likewise.
1019 * interface.c (count_types_test): Likewise.
1020 * intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
1021 Likewise.
1022 * io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
1023 gfc_match_inquire, gfc_match_wait): Likewise.
1024 * match.c (gfc_match, match_forall_iterator): Likewise.
1025 * module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
1026 add_true_name, parse_string, write_atom, quote_string,
1027 mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
1028 * options.c (gfc_post_options): Likewise.
1029 * primary.c (match_integer_constant, match_hollerith_constant,
1030 match_boz_constant, match_real_constant,
1031 gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
1032 * scanner.c (gfc_widechar_to_char, add_path_to_list,
1033 add_file_change, load_line, get_file, preprocessor_line,
1034 load_file, unescape_filename, gfc_read_orig_filename): Likewise.
1035 * simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
1036 gfc_simplify_ishftc): Likewise.
1037 * symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
1038 gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
1039 Likewise.
1040 * target-memory.c (gfc_target_interpret_expr): Likewise.
1041 * trans-const.c (gfc_build_wide_string_const): Likewise.
1042 * trans-expr.c (gfc_add_interface_mapping): Likewise.
1043 * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
1044 gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
1045 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
1046 gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
1047 gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
1048 gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
1049 gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
1050 * trans.c (gfc_get_backend_locus): Likewise.
1051 * trans.h (gfc_get_ss): Likewise.
1052
d2848082
DK
10532008-06-18 Daniel Kraft <d@domob.eu>
1054
1055 PR fortran/36517, fortran/36492
1056 * array.c (gfc_resolve_character_array_constructor): Call
1057 gfc_set_constant_character_len with changed length-chec argument.
1058 * decl.c (gfc_set_constant_character_len): Changed array argument to
1059 be a generic length-checking argument that can be used for correct
1060 checking with typespec and in special cases where the should-be length
1061 is different from the target length.
1062 (build_struct): Call gfc_set_constant_character_len with changed length
1063 checking argument and introduced additional checks for exceptional
1064 conditions on invalid code.
1065 (add_init_expr_to_sym), (do_parm): Call gfc_set_constant_character_len
1066 with changed argument.
1067 * match.h (gfc_set_constant_character_len): Changed third argument to
1068 int for the should-be length rather than bool.
1069
88fec49f
DK
10702008-06-17 Daniel Kraft <d@domob.eu>
1071
1072 PR fortran/36112
1073 * array.c (gfc_resolve_character_array_constructor): Check that all
1074 elements with constant character length have the same one rather than
1075 fixing it if no typespec is given, emit an error if they don't. Changed
1076 return type to "try" and return FAILURE for the case above.
1077 (gfc_resolve_array_constructor): Removed unneeded call to
1078 gfc_resolve_character_array_constructor in this function.
1079 * gfortran.h (gfc_resolve_character_array_constructor): Returns try.
1080 * trans-array.c (get_array_ctor_strlen): Return length of first element
1081 rather than last element.
1082 * resolve.c (gfc_resolve_expr): Handle FAILURE return from
1083 gfc_resolve_character_array_constructor.
1084
9d5c21c1
PT
10852008-06-17 Paul Thomas <pault@gcc.gnu.org>
1086
1087 PR fortran/34396
1088 * resolve.c (add_dt_to_dt_list): New function.
1089 (resolve_fl_derived): Call new function for pointer components
1090 and when derived type resolved.
1091
a60658ba
JD
10922008-06-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1093
1094 PR fortran/36515
1095 * trans-decl.c (gfc_generate_function_code): Add range_check to options
1096 array.
1097
6ccde948
RW
10982008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1099
1100 * gfc-internals.texi: Expand TABs, drop indentation outside examples.
1101 * gfortran.texi: Likewise.
1102 * intrinsic.texi: Likewise.
1103 * invoke.texi: Likewise.
1104
8a221914
JD
11052008-06-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1106
1107 PR fortran/35863
1108 * trans-io.c (gfc_build_io_library_fndecls): Build declaration for
1109 transfer_character_wide which includes passing in the character kind to
1110 support wide character IO. (transfer_expr): If the kind == 4, create the
1111 argument and build the call.
1112 * gfortran.texi: Fix typo.
1113
357ad64f
TB
11142008-06-13 Tobias Burnus <burnus@net-b.de>
1115
1116 PR fortran/36476
1117 * decl.c (do_parm): Handle init expression for len=*.
1118
f5dce797
TB
11192008-06-12 Tobias Burnus <burnus@net-b.de>
1120
1121 PR fortran/36462
1122 * trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify):
1123 Fix passing of the BACK= argument.
1124
a1968bf9
JD
11252008-06-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1126
1127 * cpp.c: Add copyright notice.
1128 * cpp.h: Add copyright notice.
1129
c1db9545
JW
11302008-06-08 Janus Weil <janus@gcc.gnu.org>
1131
1132 PR fortran/36459
1133 * decl.c (match_procedure_decl): Correctly recognize if the interface
1134 is an intrinsic procedure.
1135
2d9bbb6b
TB
11362008-06-08 Tobias Burnus <burnus@net-b.de>
1137
1138 PR fortran/35830
1139 * resolve.c (resolve_symbol): Copy more attributes for
1140 PROCEDUREs with interfaces.
1141
8955a005
JD
11422008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1143
29d3b5ff
JD
1144 PR fortran/36420
1145 PR fortran/36422
8955a005
JD
1146 * io.c (check_format): Add new error message for zero width.
1147 Use new error message for FMT_A and with READ, FMT_G. Allow
1148 FMT_G with WRITE except when -std=F95 and -std=F2003.
1149
8d82b242
TB
11502008-06-07 Tobias Burnus <burnus@net-b.de>
1151
8cec30d3 1152 PR fortran/36437
8d82b242
TB
1153 * intrinsic.c (add_functions): Implement c_sizeof.
1154 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
1155 create unneeded variable in the scalar case.
1156 * intrinsic.texi: Add C_SIZEOF documentation.
1157
41870ac5
TB
11582008-06-06 Tobias Burnus <burnus@net-b.de>
1159
1160 * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
1161
a68ab351
JJ
11622008-06-06 Jakub Jelinek <jakub@redhat.com>
1163
1164 * scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
1165 * parse.c (next_free): Allow tab after !$omp.
1166 (decode_omp_directive): Handle !$omp task, !$omp taskwait
1167 and !$omp end task.
1168 (case_executable): Add ST_OMP_TASKWAIT.
1169 (case_exec_markers): Add ST_OMP_TASK.
1170 (gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
1171 ST_OMP_TASKWAIT.
1172 (parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
1173 * gfortran.h (gfc_find_sym_in_expr): New prototype.
1174 (gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
1175 (gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
1176 OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
1177 untied fields.
1178 (gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
1179 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
1180 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
1181 LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1182 * trans.h (gfc_omp_clause_default_ctor): Add another argument.
1183 (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
1184 gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
1185 * types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
1186 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1187 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1188 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1189 BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
1190 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1191 (BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
1192 than boolean_type_node.
1193 * dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
1194 EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
1195 untied and collapse clauses.
1196 (gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
1197 * trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
1198 EXEC_OMP_TASKWAIT.
1199 * st.c (gfc_free_statement): Likewise.
1200 * resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
1201 (find_sym_in_expr): Rename to...
1202 (gfc_find_sym_in_expr): ... this. No longer static.
1203 (resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
1204 * match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
1205 prototypes.
1206 * openmp.c (resolve_omp_clauses): Allow allocatable arrays in
1207 firstprivate, lastprivate, reduction, copyprivate and copyin
1208 clauses.
1209 (omp_current_do_code): Made static.
1210 (omp_current_do_collapse): New variable.
1211 (gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
1212 clear omp_current_do_code and omp_current_do_collapse on return.
1213 (gfc_resolve_do_iterator): Handle collapsed do loops.
1214 (resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
1215 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
1216 (gfc_match_omp_clauses): Handle default (firstprivate),
1217 schedule (auto), untied and collapse (n) clauses.
1218 (OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
1219 (OMP_TASK_CLAUSES): Define.
1220 (gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
1221 * trans-openmp.c (gfc_omp_private_outer_ref): New function.
1222 (gfc_omp_clause_default_ctor): Add outer argument. For allocatable
1223 arrays allocate them with the bounds of the outer var if outer
1224 var is allocated.
1225 (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
1226 gfc_omp_clause_dtor): New functions.
1227 (gfc_trans_omp_array_reduction): If decl is allocatable array,
1228 allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
1229 and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
1230 (gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
1231 for assumed-size arrays.
1232 (gfc_trans_omp_do): Add par_clauses argument. If dovar is
1233 present in lastprivate clause and do loop isn't simple,
1234 set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
1235 parallel's lastprivate clause, change it to shared and add
1236 lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
1237 (gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
1238 (gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
1239 OMP_FOR from OMP_PARALLEL.
1240 (gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
1241 OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
1242 (gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
1243 (gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
1244 EXEC_OMP_TASKWAIT.
1245
7db5da56
JW
12462008-06-04 Janus Weil <janus@gcc.gnu.org>
1247
1248 PR fortran/36322
1249 PR fortran/36275
1250 * resolve.c (resolve_symbol): Correctly copy the interface for a
1251 PROCEDURE declaration.
1252
e62532af
JW
12532008-06-02 Janus Weil <janus@gcc.gnu.org>
1254
1255 PR fortran/36361
1256 * symbol.c (gfc_add_allocatable,gfc_add_dimension,
1257 gfc_add_explicit_interface): Added checks.
1258 * decl.c (attr_decl1): Added missing "var_locus".
1259 * parse.c (parse_interface): Checking for errors.
1260
34523524
DK
12612008-06-02 Daniel Kraft <d@domob.eu>
1262
1263 * gfortran.h: New statement-type ST_FINAL for FINAL declarations.
1264 (struct gfc_symbol): New member f2k_derived.
1265 (struct gfc_namespace): New member finalizers, for use in the above
1266 mentioned f2k_derived namespace.
1267 (struct gfc_finalizer): New type defined for finalizers linked list.
1268 * match.h (gfc_match_final_decl): New function header.
1269 * decl.c (gfc_match_derived_decl): Create f2k_derived namespace on
1270 constructed symbol node.
1271 (gfc_match_final_decl): New function to match a FINAL declaration line.
1272 * parse.c (decode_statement): match-call for keyword FINAL.
1273 (parse_derived): Parse CONTAINS section and accept FINAL statements.
1274 * resolve.c (gfc_resolve_finalizers): New function to resolve (that is
1275 in this case, check) a list of finalizer procedures.
1276 (resolve_fl_derived): Call gfc_resolve_finalizers here.
1277 * symbol.c (gfc_get_namespace): Initialize new finalizers to NULL.
1278 (gfc_free_namespace): Free finalizers list.
1279 (gfc_new_symbol): Initialize new f2k_derived to NULL.
1280 (gfc_free_symbol): Free f2k_derived namespace.
1281 (gfc_free_finalizer): New function to free a single gfc_finalizer node.
1282 (gfc_free_finalizer_list): New function to free a linked list of
1283 gfc_finalizer nodes.
1284
1e60697f
DF
12852008-06-02 Daniel Franke <franke.daniel@gmail.com>
1286
1287 PR fortran/36375
1288 PR fortran/36377
1289 * cpp.c (gfc_cpp_init): Do not initialize builtins if
1290 processing already preprocessed input.
1291 (gfc_cpp_preprocess): Finalize output with newline.
1292
d2d586f9
JD
12932008-05-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1294
1295 * intrinsic.texi: Revert wrong commit.
1296
7306494a
SK
12972008-05-31 Steven G. Kargl <kargls@comcast.net>
1298
1299 * arith.c (gfc_arith_init_1): Remove now unused r and c variables.
1300 Cleanup numerical inquiry function initialization.
1301 (gfc_arith_done_1): Replace multiple mpfr_clear() invocations with
1302 a single mpfr_clears().
1303 (gfc_check_real_range): Re-arrange logic to eliminate multiple
1304 unnecessary branching and assignments.
1305 (gfc_arith_times): Use mpfr_clears() in preference to multiple
1306 mpfr_clear().
1307 (gfc_arith_divide): Ditto.
1308 (complex_reciprocal): Eliminate now unused variables a, re, im.
1309 Cleanup the mpfr abuse. Use mpfr_clears() in preference to
1310 multiple mpfr_clear().
1311 (complex_pow): Fix comment whitespace. Use mpfr_clears() in
1312 preference to multiple mpfr_clear().
1313 * simplify.c (gfc_simplify_and): Remove blank line.
1314 (gfc_simplify_atan2): Move error checking earlier to eliminate
1315 a now unnecessay gfc_free_expr().
1316 (gfc_simplify_bessel_j0): Remove unnecessary gfc_set_model_kind().
1317 (gfc_simplify_bessel_j1): Ditto.
1318 (gfc_simplify_bessel_jn): Ditto.
1319 (gfc_simplify_bessel_y0): Ditto.
1320 (gfc_simplify_bessel_y1): Ditto.
1321 (gfc_simplify_bessel_yn): Ditto.
1322 (only_convert_cmplx_boz): Eliminate unnecessary duplicate code, and
1323 combine nested if statement rational expressions.
1324 (gfc_simplify_cos): Use mpfr_clears() in preference to multiple
1325 mpfr_clear().
1326 (gfc_simplify_exp): Ditto.
1327 (gfc_simplify_fraction): Move gfc_set_model_kind() to after the
1328 special case of 0. Use mpfr_clears() in preference to multiple
1329 mpfr_clear().
1330 (gfc_simplify_gamma): Eliminate unnecessary gfc_set_model_kind().
1331 (gfc_simplify_lgamma): Ditto.
1332 (gfc_simplify_log10): Ditto.
1333 (gfc_simplify_log): Move gfc_set_model_kind () inside switch
1334 statement. Use mpfr_clears() in preference to multiple mpfr_clear().
1335 (gfc_simplify_mod): Eliminate now unused variables quot, iquot,
1336 and term. Simplify the mpfr magic.
1337 (gfc_simplify_modulo): Ditto.
1338 (gfc_simplify_nearest): Eliminate unnecessary gfc_set_model_kind().
1339 (gfc_simplify_scale): Use mpfr_clears() in preference to multiple
1340 mpfr_clear().
1341 (gfc_simplify_sin): Ditto
1342 (gfc_simplify_sqrt): Ditto
1343 (gfc_simplify_set_exponent): Move gfc_set_model_kind() to after the
1344 special case of 0. Use mpfr_clears() in preference to multiple
1345 mpfr_clear().
1346
c776a6d0
DF
13472008-05-29 Daniel Franke <franke.daniel@gmail.com>
1348
1349 PR target/36348
1350 * Make-lang.in (F95_OBJS): Added dependency on FORTRAN_TARGET_OBJS.
1351
f2f5443c
FXC
13522008-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1353
1354 * scanner.c (load_line): Add first_char argument. Don't call ungetc.
1355 (gfc_read_orig_filename): Adjust call to load_line. Don't call
1356 ungetc.
1357 (load_file): Adjust call to load_line.
1358
e6895430
JW
13592008-05-28 Janus Weil <janus@gcc.gnu.org>
1360
1361 PR fortran/36325
1362 PR fortran/35830
1363 * interface.c (gfc_procedure_use): Enable argument checking for
1364 external procedures with explicit interface.
1365 * symbol.c (check_conflict): Fix conflict checking for externals.
1366 (copy_formal_args): Fix handling of arrays.
1367 * resolve.c (resolve_specific_f0, resolve_specific_s0): Fix handling
1368 of intrinsics.
1369 * parse.c (parse_interface): Non-abstract INTERFACE statement implies
1370 EXTERNAL attribute.
1371
691da334
FXC
13722008-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1373
1374 PR fortran/36319
1375 * intrinsic.c (gfc_convert_chartype): Don't mark conversion
1376 function as pure.
1377 * trans-array.c (gfc_trans_array_ctor_element): Divide element
1378 size by the size of one character to obtain length.
1379 * iresolve.c (gfc_resolve_cshift): Call the _char4 variant when
1380 appropriate.
1381 (gfc_resolve_eoshift): Likewise.
1382 * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Minor beautification.
1383 (gfc_conv_intrinsic_fdate): Minor beautification.
1384 (gfc_conv_intrinsic_ttynam): Minor beautification.
1385 (gfc_conv_intrinsic_minmax_char): Allow all character kinds.
1386 (size_of_string_in_bytes): New function.
1387 (gfc_conv_intrinsic_size): Call size_of_string_in_bytes for
1388 character expressions.
1389 (gfc_conv_intrinsic_sizeof): Likewise.
1390 (gfc_conv_intrinsic_array_transfer): Likewise.
1391 (gfc_conv_intrinsic_trim): Allow all character kinds. Minor
1392 beautification.
1393 (gfc_conv_intrinsic_repeat): Fix comment typo.
1394 * simplify.c (gfc_convert_char_constant): Take care of conversion
1395 of array constructors.
1396
795dc587
TB
13972008-05-27 Tobias Burnus <burnus@net-b.de>
1398
1399 PR fortran/36316
1400 * trans-array.c (gfc_set_loop_bounds_from_array_spec):
1401 Add missing fold_convert.
1402
3c2a68b3
DF
14032008-05-26 Daniel Franke <franke.daniel@gmail.com>
1404
1405 * fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
1406 added FIXME instead.
1407
670637ee
DF
14082008-05-26 Daniel Franke <franke.daniel@gmail.com>
1409
1410 PR fortran/18428
1411 * lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory,
1412 imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc,
1413 o, undef, v): New options.
1414 * options.c (gfc_init_options): Also initialize preprocessor
1415 options.
1416 (gfc_post_options): Also handle post-initialization of preprocessor
1417 options.
1418 (gfc_handle_option): Check if option is a preprocessor option.
1419 If yes, let gfc_cpp_handle_option() handle the option.
1420 * lang-specs.h: Reorganized to handle new options.
1421 * scanner.c (gfc_new_file): Read temporary file instead of
1422 input source if preprocessing is enabled.
1423 * f95-lang.c (gfc_init): Initialize preprocessor.
1424 (gfc_finish): Clean up preprocessor.
1425 * cpp.c: New.
1426 * cpp.h: New.
1427 * Make-lang.in: Added new objects and dependencies.
1428 * gfortran.texi: Updated section "Preprocessing and
1429 conditional compilation".
1430 * invoke.texi: Added new section "Preprocessing Options",
1431 listed and documented the preprocessing options handled
1432 by gfortran.
1433
5ec81069
TB
14342008-05-25 Tobias Burnus <burnus@net-b.de>
1435
1436 PR fortran/32600
1437 * trans-expr.c (gfc_conv_function_call): Remove library
1438 call for c_f_pointer with scalar Fortran pointers and for
1439 c_f_procpointer.
1440
31579a22
FXC
14412008-05-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1442
1443 PR fortran/36257
1444 * iresolve.c (check_charlen_present): Don't force the rank to 1.
1445
16a55411
FXC
14462008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1447
1448 PR fortran/36265
1449 * trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
1450 the temporary variable.
1451
9e23c1aa
FXC
14522008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1453
1454 * simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize
1455 result variable to avoid warnings.
1456
d393bbd7
FXC
14572008-05-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1458
1459 * intrinsic.c (char_conversions, ncharconv): New static variables.
1460 (find_char_conv): New function.
1461 (add_functions): Add simplification functions for ADJUSTL and
1462 ADJUSTR. Don't check the kind of their argument. Add checking for
1463 LGE, LLE, LGT and LLT.
1464 (add_subroutines): Fix argument type for SLEEP. Fix argument name
1465 for SYSTEM.
1466 (add_char_conversions): New function.
1467 (gfc_intrinsic_init_1): Call add_char_conversions.
1468 (gfc_intrinsic_done_1): Free char_conversions.
1469 (check_arglist): Use kind == 0 as a signal that we don't want
1470 the kind value to be checked.
1471 (do_simplify): Also simplify character functions.
1472 (gfc_convert_chartype): New function
1473 * trans-array.c (gfc_trans_array_ctor_element): Don't force the
1474 use of default character type.
1475 (gfc_trans_array_constructor_value): Likewise.
1476 (get_array_ctor_var_strlen): Use integer kind to build an integer
1477 instead of a character kind!
1478 (gfc_build_constant_array_constructor): Don't force the use of
1479 default character type.
1480 (gfc_conv_loop_setup): Likewise.
1481 * trans-expr.c (gfc_conv_string_tmp): Don't force the use of
1482 default character type. Allocate enough memory for wide strings.
1483 (gfc_conv_concat_op): Make sure operand kind are the same.
1484 (string_to_single_character): Remove gfc_ prefix. Reindent.
1485 Don't force the use of default character type.
1486 (gfc_conv_scalar_char_value): Likewise.
1487 (gfc_build_compare_string): Call string_to_single_character.
1488 (fill_with_spaces): New function
1489 (gfc_trans_string_copy): Add kind arguments. Use them to deal
1490 with wide character kinds.
1491 (gfc_conv_statement_function): Whitespace fix. Call
1492 gfc_trans_string_copy with new kind arguments.
1493 (gfc_conv_substring_expr): Call gfc_build_wide_string_const
1494 instead of using gfc_widechar_to_char.
1495 (gfc_conv_string_parameter): Don't force the use of default
1496 character type.
1497 (gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy.
1498 * intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant,
1499 gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes.
1500 * decl.c (gfc_set_constant_character_len): Don't assert the
1501 existence of a single character kind.
1502 * trans-array.h (gfc_trans_string_copy): New prototype.
1503 * gfortran.h (gfc_check_character_range, gfc_convert_chartype):
1504 New prototypes.
1505 * error.c (print_wide_char_into_buffer): New function lifting
1506 code from gfc_print_wide_char. Fix order to output '\x??' instead
1507 of 'x\??'.
1508 (gfc_print_wide_char): Call print_wide_char_into_buffer.
1509 (show_locus): Call print_wide_char_into_buffer with buffer local
1510 to this function.
1511 * trans-const.c (gfc_build_wide_string_const): New function.
1512 (gfc_conv_string_init): Deal with wide characters strings
1513 constructors.
1514 (gfc_conv_constant_to_tree): Call gfc_build_wide_string_const.
1515 * trans-stmt.c (gfc_trans_label_assign): Likewise.
1516 (gfc_trans_character_select): Deal with wide strings.
1517 * expr.c (gfc_check_assign): Allow conversion between character
1518 kinds on assignment.
1519 * trans-const.h (gfc_build_wide_string_const): New prototype.
1520 * trans-types.c (gfc_get_character_type_len_for_eltype,
1521 gfc_get_character_type_len): Create too variants of the old
1522 gfc_get_character_type_len, one getting kind argument and the
1523 other one directly taking a type tree.
1524 * trans.h (gfor_fndecl_select_string_char4,
1525 gfor_fndecl_convert_char1_to_char4,
1526 gfor_fndecl_convert_char4_to_char1): New prototypes.
1527 * trans-types.h (gfc_get_character_type_len_for_eltype): New
1528 prototype.
1529 * resolve.c (resolve_operator): Exit early when kind mismatches
1530 are detected, because that makes us issue an error message later.
1531 (validate_case_label_expr): Fix wording of error message.
1532 * iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New
1533 functions.
1534 (gfc_resolve_pack): Call _char4 variants of library function
1535 when dealing with wide characters.
1536 (gfc_resolve_reshape): Likewise.
1537 (gfc_resolve_spread): Likewise.
1538 (gfc_resolve_transpose): Likewise.
1539 (gfc_resolve_unpack): Likewise.
1540 * target-memory.c (size_character): Take character kind bit size
1541 correctly into account (not that it changes anything for now, but
1542 it's more generic).
1543 (gfc_encode_character): Added gfc_ prefix. Encoding each
1544 character of a string by calling native_encode_expr for the
1545 corresponding unsigned integer.
1546 (gfc_target_encode_expr): Add gfc_ prefix to encode_character.
1547 * trans-decl.c (gfc_build_intrinsic_function_decls): Build
1548 gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4
1549 and gfor_fndecl_convert_char4_to_char1.
1550 * target-memory.h (gfc_encode_character): New prototype.
1551 * arith.c (gfc_check_character_range): New function.
1552 (eval_intrinsic): Allow non-default character kinds.
1553 * check.c (gfc_check_access_func): Only allow default
1554 character kind arguments.
1555 (gfc_check_chdir): Likewise.
1556 (gfc_check_chdir_sub): Likewise.
1557 (gfc_check_chmod): Likewise.
1558 (gfc_check_chmod_sub): Likewise.
1559 (gfc_check_lge_lgt_lle_llt): New function.
1560 (gfc_check_link): Likewise.
1561 (gfc_check_link_sub): Likewise.
1562 (gfc_check_symlnk): Likewise.
1563 (gfc_check_symlnk_sub): Likewise.
1564 (gfc_check_rename): Likewise.
1565 (gfc_check_rename_sub): Likewise.
1566 (gfc_check_fgetputc_sub): Likewise.
1567 (gfc_check_fgetput_sub): Likewise.
1568 (gfc_check_stat): Likewise.
1569 (gfc_check_stat_sub): Likewise.
1570 (gfc_check_date_and_time): Likewise.
1571 (gfc_check_ctime_sub): Likewise.
1572 (gfc_check_fdate_sub): Likewise.
1573 (gfc_check_gerror): Likewise.
1574 (gfc_check_getcwd_sub): Likewise.
1575 (gfc_check_getarg): Likewise.
1576 (gfc_check_getlog): Likewise.
1577 (gfc_check_hostnm): Likewise.
1578 (gfc_check_hostnm_sub): Likewise.
1579 (gfc_check_ttynam_sub): Likewise.
1580 (gfc_check_perror): Likewise.
1581 (gfc_check_unlink): Likewise.
1582 (gfc_check_unlink_sub): Likewise.
1583 (gfc_check_system_sub): Likewise.
1584 * primary.c (got_delim): Perform correct character range checking
1585 for all kinds.
1586 * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate
1587 calls to library functions convert_char4_to_char1 and
1588 convert_char1_to_char4 for character conversions.
1589 (gfc_conv_intrinsic_char): Allow all character kings.
1590 (gfc_conv_intrinsic_strcmp): Fix whitespace.
1591 (gfc_conv_intrinsic_repeat): Take care of all character kinds.
1592 * intrinsic.texi: For all GNU intrinsics accepting character
1593 arguments, mention that they're restricted to the default kind.
1594 * simplify.c (simplify_achar_char): New function.
1595 (gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char.
1596 gfc_simplify_ichar): Don't error out for wide characters.
1597 (gfc_convert_char_constant): New function.
1598
e7bff0d1
TB
15992008-05-18 Steven G. Kargl <kargls@comcast.net>
1600
1601 PR fortran/36251
1602 * symbol.c (check_conflict): Issue errors for abuse of PUBLIC, PRIVATE,
1603 and BIND(C).
1604 * resolve.c (gfc_verify_binding_labels): Fix NULL pointer dereference.
1605
16062008-05-17 Tobias Burnus <burnus@net-b.de>
7d4cf3d9
TB
1607
1608 * intrinsic.texi: Correct description of GET_COMMAND_ARGUMENT
1609 and GET_ENVIRONMENT_VARIABLE; fix keyword= name for GETENV,
1610 GETLOG, GMTIME, HOSTNM, IRAND, ITIME, KILL.
1611 Move LOG_GAMMA after LOG10.
1612
e7bff0d1 16132008-05-17 Tobias Burnus <burnus@net-b.de>
ca41838c
TB
1614
1615 * intrinsic.c (add_functions): Change FLUSH(C) to FLUSH(UNIT).
1616 * intrinsic.texi: Change INTEGER(*) to INTEGER; fix keyword= name for
1617 ABS, ADJUSTL, AINT, ALLOCATED, ANINT, ASSOCIATED, C_ASSOCIATED,
1618 CEILING, DBLE, DFLOAT, DOT_PRODUCT, DREAL, FLOAT, FLOOR, GET_COMMAND.
1619
ae772c2d
PT
16202008-05-16 Paul Thomas <pault@gcc.gnu.org>
1621
1622 PR fortran/35756
1623 PR fortran/35759
1624 * trans-stmt.c (gfc_trans_where): Tighten up the dependency
1625 check for calling gfc_trans_where_3.
1626
1627 PR fortran/35743
1628 * trans-stmt.c (gfc_trans_where_2): Set the mask size to zero
1629 if it is calculated to be negative.
1630
1631 PR fortran/35745
1632 * trans-stmt.c (gfc_trans_where_3, gfc_trans_where_assign): Set
1633 ss->where for scalar right hand sides.
1634 * trans-array.c (gfc_add_loop_ss_code): If ss->where is set do
1635 not evaluate scalars outside the loop. Clean up whitespace.
1636 * trans.h : Add a bitfield 'where' to gfc_ss.
1637
a4cd1610
TB
16382008-05-16 Tobias Burnus <burnus@net-b.de>
1639
1640 * libgfortran.h: Increase GFC_MAX_DIMENSIONS to 15.
1641 * array.c (gfc_match_array_spec): Error with -std=f2003 if rank > 7.
1642
c03fc95d
DK
16432008-04-16 Daniel Kraft <d@domob.eu>
1644
1645 PR fortran/27997
1646 * gfortran.h: Added field "length_from_typespec" to gfc_charlength.
1647 * aray.c (gfc_match_array_constructor): Added code to parse typespec.
1648 (check_element_type, check_constructor_type, gfc_check_constructor_type):
1649 Extended to support explicit typespec on constructor.
1650 (gfc_resolve_character_array_constructor): Pad strings correctly for
1651 explicit, constant character length.
1652 * trans-array.c: New static global variable "typespec_chararray_ctor"
1653 (gfc_trans_array_constructor): New code to support explicit but dynamic
1654 character lengths.
1655
acb388a0
JD
16562008-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1657
c03fc95d
DK
1658 PR fortran/34325
1659 * decl.c (match_attr_spec): Check for matching pairs of parenthesis.
1660 * expr.c (gfc_specification_expr): Supplement the error message with the
1661 type that was found.
1662 * resolve.c (gfc_resolve_index): Likewise.
1663 * match.c (gfc_match_parens): Clarify error message with "at or before".
1664 (gfc_match_do): Check for matching pairs of parenthesis.
acb388a0 1665
d1325932
TB
16662008-05-16 Tobias Burnus <burnus@net-b.de
1667
1668 * intrinsic.texi: Write Fortran 77/90/95 instead of F77/90/95;
1669 add missing KIND argument to ACHAR and NINT; and state that
1670 the KIND argument is a F2003 extension for ACHAR, COUNT, IACHAR,
1671 ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY.
1672
fa9290d3
DK
16732008-05-16 Daniel Kraft <d@domob.eu>
1674
1675 * primary.c: New private structure "gfc_structure_ctor_component".
1676 (gfc_free_structure_ctor_component): New helper function.
1677 (gfc_match_structure_constructor): Extended largely to support named
1678 arguments and default initialization for structure constructors.
1679
d93712d9
SK
16802008-05-15 Steven G. Kargl <kargls@comcast.net>
1681
1682 * simplify.c (gfc_simplify_dble, gfc_simplify_float,
1683 simplify_bound, gfc_simplify_nearest, gfc_simplify_real): Plug
1684 possible memory leaks.
1685 (gfc_simplify_reshape): Plug possible memory leaks and dereferencing
1686 of NULL pointers.
1687
16882008-05-15 Steven G. Kargl <kargls@comcast.net>
1689
1690 PR fortran/36239
1691 * simplify.c (gfc_simplify_int, gfc_simplify_intconv): Replaced hand
1692 rolled integer conversion with gfc_int2int, gfc_real2int, and
1693 gfc_complex2int.
1694 (gfc_simplify_intconv): Renamed to simplify_intconv.
1695
16962008-05-15 Steven G. Kargl, <kargl@comcast.net>
1697 * gfortran.dg/and_or_xor.f90: New test
1698
1699 * fortran/simplify.c (gfc_simplify_and, gfc_simplify_or,
1700 gfc_simplify_xor): Don't range check logical results.
1701
374929b2
FXC
17022008-05-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1703
1704 * trans-expr.c (gfc_conv_concat_op): Take care of nondefault
1705 character kinds.
1706 (gfc_build_compare_string): Add kind argument and use it.
1707 (gfc_conv_statement_function): Fix indentation.
1708 * gfortran.h (gfc_character_info): New structure.
1709 (gfc_character_kinds): New array.
1710 * trans-types.c (gfc_character_kinds, gfc_character_types,
1711 gfc_pcharacter_types): New array.
1712 (gfc_init_kinds): Fill character kinds array.
1713 (validate_character): Take care of nondefault character kinds.
1714 (gfc_build_uint_type): New function.
1715 (gfc_init_types): Take care of nondefault character kinds.
1716 (gfc_get_char_type, gfc_get_pchar_type): New functions.
1717 (gfc_get_character_type_len): Use gfc_get_char_type.
1718 * trans.h (gfc_build_compare_string): Adjust prototype.
1719 (gfor_fndecl_compare_string_char4, gfor_fndecl_concat_string_char4,
1720 gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
1721 gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
1722 gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
1723 gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4): New
1724 prototypes.
1725 * trans-types.h (gfc_get_char_type, gfc_get_pchar_type): New
1726 prototypes.
1727 * trans-decl.c (gfor_fndecl_compare_string_char4,
1728 gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
1729 gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
1730 gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
1731 gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4,
1732 gfor_fndecl_concat_string_char4): New function decls.
1733 (gfc_build_intrinsic_function_decls): Define new *_char4 function
1734 decls.
1735 * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char,
1736 gfc_conv_intrinsic_len_trim, gfc_conv_intrinsic_ichar,
1737 gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_trim,
1738 gfc_conv_intrinsic_function): Deal with nondefault character kinds.
1739
d06abff5
SL
17402008-05-15 Sa Liu <saliu@de.ibm.com>
1741
1742 * iso-c-binding.def: Add standard parameter to macro NAMED_INTCST.
1743 All existing NAMED_INTCST definitions has standard GFC_STD_F2003,
1744 c_int128_t, c_int_least128_t and c_int_fast128_t are added as
1745 GNU extensions.
1746 * iso-fortran-evn.def: Add standard parameter GFC_STD_F2003
1747 to macro NAMED_INTCST.
1748 * symbol.c (std_for_isocbinding_symbol): New helper function to
1749 return the standard that supports this isocbinding symbol.
1750 (generate_isocbinding_symbol): Do not generate GNU extension symbols
1751 if std=f2003. Add new parameter to NAMED_INTCST.
1752 * module.c (use_iso_fortran_env_module): Add new parameter to
1753 NAMED_INTCST and new field standard to struct intmod_sym.
1754 * gfortran.h: Add new parameter to NAMED_INTCST.
1755 * trans-types.c (init_c_interop_kinds): Add new parameter to
1756 NAMED_INTCST.
1757 * intrinsic.texi: Documented new types C_INT128_T, C_INT_LEASE128_T
1758 and C_INT_FAST128_T.
1759
1c3339af
FXC
17602008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1761
1762 PR fortran/36059
1763 * trans-decl.c (gfc_build_dummy_array_decl): Don't repack
1764 arrays that have the TARGET attribute.
1765
6401bf9c
FXC
17662008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1767
1768 PR fortran/36186
1769 * simplify.c (only_convert_cmplx_boz): New function.
1770 (gfc_simplify_cmplx, gfc_simplify_complex, gfc_simplify_dcmplx):
1771 Call only_convert_cmplx_boz.
1772
16f2a7a4
PT
17732008-05-14 Paul Thomas <pault@gcc.gnu.org>
1774
6401bf9c
FXC
1775 PR fortran/36233
1776 * interface.c (compare_actual_formal): Do not check sizes if the
1777 actual is BT_PROCEDURE.
16f2a7a4 1778
4c7382bb
FXC
17792008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1780
1781 PR fortran/35682
1782 * trans-array.c (gfc_conv_ss_startstride): Any negative size is
1783 the same as zero size.
1784 (gfc_conv_loop_setup): Fix size calculation.
1785
f10827b1
FXC
17862008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1787
1788 PR fortran/35685
1789 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Correctly
1790 handle zero-size sections.
1791
b0b14c7b
FXC
17922008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1793
1794 PR fortran/36215
1795 * scanner.c (preprocessor_line): Allocate enough memory for a
1796 wide string.
1797
b7d36ea3
FXC
17982008-05-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1799
1800 PR fortran/36176
1801 * target-memory.c (gfc_target_expr_size): Correctly treat
1802 substrings.
1803 (gfc_target_encode_expr): Likewise.
1804 (gfc_interpret_complex): Whitespace change.
1805
8f0aaee5
TK
18062008-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
1807
1808 PR fortran/35719
1809 * trans.c (gfc_call_malloc): If size equals zero, allocate one
1810 byte; don't return a null pointer.
1811
1ed5323b
FXC
18122008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1813
1814 PR fortran/36197
1815 * module.c (quote_string): Fix sprintf format.
1816
3ee6cb3f
FXC
18172008-05-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1818
1819 PR fortran/36162
1820 * module.c (quote_string, unquote_string,
1821 mio_allocated_wide_string): New functions.
1822 (mio_expr): Call mio_allocated_wide_string where needed.
1823
becfd6e5
KZ
18242008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1825
1826 * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
1827 Rename DECL_IS_PURE to DECL_PURE_P.
1828
00660189
FXC
18292008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1830
1831 * arith.c: (gfc_arith_concat, gfc_compare_string,
1832 gfc_compare_with_Cstring, hollerith2representation,
1833 gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex,
1834 gfc_hollerith2character, gfc_hollerith2logical): Use wide
1835 characters for character constants.
1836 * data.c (create_character_intializer): Likewise.
1837 * decl.c (gfc_set_constant_character_len): Likewise.
1838 * dump-parse-tree.c (show_char_const): Correctly dump wide
1839 character strings.
1840 error.c (print_wide_char): Rename into gfc_print_wide_char.
1841 (show_locus): Adapt to new prototype of gfc_print_wide_char.
1842 expr.c (free_expr0): Representation is now disjunct from
1843 character string value, so we always free it.
1844 (gfc_copy_expr, find_substring_ref, gfc_simplify_expr): Adapt
1845 to wide character strings.
1846 * gfortran.h (gfc_expr): Make value.character.string a wide string.
1847 (gfc_wide_toupper, gfc_wide_strncasecmp, gfc_wide_memset,
1848 gfc_widechar_to_char, gfc_char_to_widechar): New prototypes.
1849 (gfc_get_wide_string): New macro.
1850 (gfc_print_wide_char): New prototype.
1851 * io.c (format_string): Make a wide string.
1852 (next_char, gfc_match_format, compare_to_allowed_values,
1853 gfc_match_open): Deal with wide strings.
1854 * module.c (mio_expr): Convert between wide strings and ASCII ones.
1855 * primary.c (match_hollerith_constant, match_charkind_name):
1856 Handle wide strings.
1857 * resolve.c (build_default_init_expr): Likewise.
1858 * scanner.c (gfc_wide_toupper, gfc_wide_memset,
1859 gfc_char_to_widechar): New functions.
1860 (wide_strchr, gfc_widechar_to_char, gfc_wide_strncasecmp):
1861 Changes in prototypes.
1862 (gfc_define_undef_line, load_line, preprocessor_line,
1863 include_line, load_file, gfc_read_orig_filename): Handle wide
1864 strings.
1865 * simplify.c (gfc_simplify_achar, gfc_simplify_adjustl,
1866 gfc_simplify_adjustr, gfc_simplify_char, gfc_simplify_iachar,
1867 gfc_simplify_ichar, simplify_min_max, gfc_simplify_new_line,
1868 gfc_simplify_repeat): Handle wide strings.
1869 (wide_strspn, wide_strcspn): New helper functions.
1870 (gfc_simplify_scan, gfc_simplify_trim, gfc_simplify_verify):
1871 Handle wide strings.
1872 * symbol.c (generate_isocbinding_symbol): Likewise.
1873 * target-memory.c (size_character, gfc_target_expr_size,
1874 encode_character, gfc_target_encode_expr, gfc_interpret_character,
1875 gfc_target_interpret_expr): Handle wide strings.
1876 * trans-const.c (gfc_conv_string_init): Lower wide strings to
1877 narrow ones.
1878 (gfc_conv_constant_to_tree): Likewise.
1879 * trans-expr.c (gfc_conv_substring_expr): Handle wide strings.
1880 * trans-io.c (gfc_new_nml_name_expr): Likewise.
1881 * trans-stmt.c (gfc_trans_label_assign): Likewise.
1882
1b38192d
FXC
18832008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1884
1885 * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
1886 gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
1887 gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): Mark arguments
1888 with ATTRIBUTE_UNUSED.
1889
37a2dc42
FXC
18902008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1891
1892 * check.c (gfc_check_sizeof): Switch to ATTRIBUTE_UNUSED.
1893 * simplify.c (gfc_simplify_lgamma): Likewise.
1894
18952008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
8fc541d3
FXC
1896
1897 * openmp.c (gfc_match_omp_eos): Use gfc_next_ascii_char and
1898 gfc_peek_ascii_char.
1899 * decl.c (gfc_match_kind_spec, gfc_match_type_spec,
1900 gfc_match_implicit_none, match_implicit_range, gfc_match_implicit,
1901 match_string_p, match_attr_spec, gfc_match_suffix,
1902 match_procedure_decl, gfc_match_entry, gfc_match_subroutine):
1903 Likewise.
1904 * gfortran.h (gfc_char_t): New type.
1905 (gfc_linebuf): Make line member a gfc_char_t.
1906 (locus): Make nextc member a gfc_char_t.
1907 (gfc_wide_is_printable, gfc_wide_is_digit, gfc_wide_fits_in_byte,
1908 gfc_wide_tolower, gfc_wide_strlen, gfc_next_ascii_char,
1909 gfc_peek_ascii_char, gfc_check_digit): New prototypes.
1910 * error.c (print_wide_char): New function.
1911 (show_locus): Use print_wide_char and gfc_wide_strlen.
1912 * io.c (next_char): Use gfc_char_t type.
1913 (match_io): Use gfc_peek_ascii_char and gfc_next_ascii_char.
1914 * match.c (gfc_match_parens, gfc_match_eos,
1915 gfc_match_small_literal_int, gfc_match_name, gfc_match_name_C,
1916 gfc_match_intrinsic_op, gfc_match_char, gfc_match_return,
1917 gfc_match_common): Likewise.
1918 * match.h (gfc_match_special_char): Change prototype.
1919 * parse.c (decode_specification_statement, decode_statement,
1920 decode_omp_directive, next_free, next_fixed): Use
1921 gfc_peek_ascii_char and gfc_next_ascii_char.
1922 * primary.c (gfc_check_digit): Change name.
1923 (match_digits, match_hollerith_constant, match_boz_constant,
1924 match_real_constant, next_string_char, match_charkind_name,
1925 match_string_constant, match_logical_constant_string,
1926 match_complex_constant, match_actual_arg, match_varspec,
1927 gfc_match_rvalue, match_variable): Use gfc_peek_ascii_char and
1928 gfc_next_ascii_char.
1929 * scanner.c (gfc_wide_fits_in_byte, wide_is_ascii,
1930 gfc_wide_is_printable, gfc_wide_tolower, gfc_wide_is_digit,
1931 gfc_wide_is_digit, wide_atoi, gfc_wide_strlen, wide_strcpy,
1932 wide_strchr, widechar_to_char, wide_strncmp, wide_strncasecmp,
1933 gfc_next_ascii_char, gfc_peek_ascii_char):
1934 New functions.
1935 (next_char, gfc_define_undef_line, skip_free_comments,
1936 gfc_next_char_literal, gfc_next_char, gfc_peek_char,
1937 gfc_error_recovery, load_line, preprocessor_line, include_line,
1938 load_file, gfc_read_orig_filename): Use gfc_char_t for source
1939 characters and the {gfc_,}wide_* functions to manipulate wide
1940 strings.
1941
3c3f4265
TB
19422008-05-06 Tobias Burnus <burnus@net-b.de>
1943
1944 PR fortran/36117
1945 * intrinsic.c (add_functions): Call gfc_simplify_bessel_*.
1946 * intrinsic.h: Add prototypes for gfc_simplify_bessel_*.
1947 * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
1948 gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
1949 gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): New.
1950
ed54a884
JW
19512008-05-03 Janus Weil <jaydub66@gmail.com>
1952
1953 * misc.c (gfc_clear_ts): Set interface to NULL.
1954
ad7ee6f8
JD
19552008-05-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1956
1957 PR fortran/33268
1958 * gfortran.h: Add extra_comma pointer to gfc_dt structure. Add iokind to
1959 gfc_expr value union. Add io_kind enum to here from io.c.
1960 * io.c (gfc_free_dt): Free extra_comma.
1961 (gfc_resolve_dt): If an extra comma was encountered and io_unit is type
1962 BT_CHARACTER, resolve to format_expr and set default unit. Error if
1963 io_kind is M_WRITE. (match_io): Match the extra comma and set new
1964 pointer, extra_comma.
1965
00113de8
BD
19662008-05-01 Bud Davis <bdavis9659@sbcglobal.net>
1967
1968 PR35940/Fortran
1969 * simplify.c (gfc_simplify_index): Check for direction argument
1970 being a constant.
1971
32d99e68
JW
19722008-05-01 Janus Weil <jaydub66@gmail.com>
1973
1974 * gfortran.h (struct gfc_symbol): Moving "interface" member to
1975 gfc_typespec (plus fixing a small docu error).
1976 * interface.c (gfc_procedure_use): Ditto.
1977 * decl.c (match_procedure_decl): Ditto.
1978 * resolve.c (resolve_specific_f0,
1979 resolve_specific_f0, resolve_symbol): Ditto.
1980
a39fafac
FXC
19812008-04-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1982
1983 * intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic.
1984 * intrinsic.h (gfc_check_selected_char_kind,
1985 gfc_simplify_selected_char_kind): New prototypes.
1986 * gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND.
1987 * trans.h (gfor_fndecl_sc_kind): New function decl.
1988 * trans-decl.c (gfor_fndecl_sc_kind): Build new decl.
1989 * arith.c (gfc_compare_with_Cstring): New function.
1990 * arith.h (gfc_compare_with_Cstring): New prototype.
1991 * check.c (gfc_check_selected_char_kind): New function.
1992 * primary.c (match_string_constant, match_kind_param): Mark
1993 symbols used as literal constant kind param as referenced.
1994 * trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function.
1995 (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind.
1996 * intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic.
1997 * simplify.c (gfc_simplify_selected_char_kind): New function.
1998
29d40637
PT
19992008-04-28 Paul Thomas <pault@gcc.gnu.org>
2000
a39fafac
FXC
2001 PR fortran/35997
2002 * module.c (find_symbol): Do not return a result for a symbol
2003 that has been renamed in another module.
29d40637 2004
da69cc91
GH
20052008-04-26 George Helffrich <george@gcc.gnu.org>
2006
2007 PR fortran/35892
2008 PR fortran/35154
2009 * trans-common.c (create_common): Add decl to function
2010 chain (if inside one) to preserve identifier scope in debug output.
2011
e3b5732b
JH
20122008-04-25 Jan Hubicka <jh@suse.cz>
2013
2014 * trans-decl.c (trans_function_start): Update.
2015
ccc2ed87
TB
20162008-04-25 Tobias Burnus <burnus@net-b.de>
2017 Daniel Franke <franke.daniel@gmail.com>
2018
2019 PR fortran/35156
2020 * gfortranspec.c (lang_specific_driver): Deprecate
2021 -M option; fix ICE when "-M" is last argument and
2022 make "-M<dir>" work.
2023 * options.c (gfc_handle_module_path_options):
2024 Use -J instead of -M in error messages.
2025 * invoke.texi: Mark -M as depecated.
2026
4e77ad24
JD
20272008-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2028 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2029
2030 PR fortran/35994
2031 * trans-instrinsic.c (gfc_conv_intrinsic_minmaxloc): Correctly adjust
2032 loop counter offset.
2033
51eed280
PB
20342008-04-23 Paolo Bonzini <bonzini@gnu.org>
2035
2036 * trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT.
2037 * trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT.
2038 (gfc_trans_array_constructor_value): Don't set TREE_INVARIANT.
2039 (gfc_build_constant_array_constructor): Don't set TREE_INVARIANT.
2040 (gfc_conv_array_initializer): Don't set TREE_INVARIANT.
2041 * trans-common.c (get_init_field): Don't set TREE_INVARIANT.
2042 (create_common): Don't set TREE_INVARIANT.
2043 * trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT.
2044 * trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT.
2045
6384205f
SE
20462008-04-21 Steve Ellcey <sje@cup.hp.com>
2047
2048 * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode.
2049
3d4cb550
DF
20502008-04-21 Daniel Franke <franke.daniel@gmail.com>
2051
2052 PR fortran/35019
2053 * gfortranspec.c (lookup_option): Properly handle separated arguments
2054 in -J option, print missing argument message when necessary.
2055
f449022d
JD
20562008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2057
2058 PR fortran/35882
2059 * scanner.c (skip_fixed_comments): Update continue_line when comment is
2060 detected. (gfc_next_char_literal): Likewise.
2061
f40eccb0
PT
20622008-04-19 Paul Thomas <pault@gcc.gnu.org>
2063
2064 PR fortran/35944
2065 PR fortran/35946
2066 PR fortran/35947
2067 * trans_array.c (gfc_trans_array_constructor): Temporarily
2068 realign loop, if loop->from is not zero, before creating
2069 the temporary array and provide an offset.
2070
2071 PR fortran/35959
2072 * trans-decl.c (gfc_init_default_dt): Add gfc_ prefix to name
2073 and allow for NULL body. Change all references from
2074 init_default_dt to gfc_init_default_dt.
2075 * trans.h : Add prototype for gfc_init_default_dt.
2076 * trans-array.c (gfc_trans_deferred_vars): After nullification
2077 call gfc_init_default_dt for derived types with allocatable
2078 components.
2079
6c0c6ecc
JD
20802008-04-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2081
766cb661 2082 PR fortran/35892
6c0c6ecc
JD
2083 * trans-common.c (create_common): Revert patch causing regression.
2084
554ef027
JD
20852008-04-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2086
2087 PR fortran/35724
2088 * iresolve.c (gfc_resolve_eoshift): Check for NULL symtree in test for
2089 optional argument attribute.
2090
c2408681
PT
20912008-04-16 Paul Thomas <pault@gcc.gnu.org>
2092
2093 PR fortran/35932
2094 * trans-intrinsic.c (gfc_conv_intrinsic_char): Even though KIND
2095 is not used, the argument must be converted.
2096
fc207c37
JJ
20972008-04-16 Jakub Jelinek <jakub@redhat.com>
2098
2099 PR target/35662
2100 * f95-lang.c (gfc_init_builtin_functions): Make sure
2101 BUILT_IN_SINCOS{,F,L} types aren't varargs.
2102
05e6ff80
PT
21032008-04-15 Paul Thomas <pault@gcc.gnu.org>
2104
2105 PR fortran/35864
2106 * expr.c (scalarize_intrinsic_call): Reorder identification of
2107 array argument so that if one is not found a segfault does not
2108 occur. Return FAILURE if all scalar arguments.
2109
dfbfb630
JD
21102008-04-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2111 Tobias Burnus <burnus@net-b.de>
2112
2113 PR fortran/35882
2114 * options.c (gfc_init_options): Set the default maximum continuation
2115 lines to 255 for both free and fixed form source for warnings.
2116 (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and
2117 the -std=f95 free form max continuations to 39 for warnings.
2118 * scanner.c (gfc_next_char_literal): Adjust the current_line number only
2119 if it is less than the current locus.
2120
d06b3496
JD
21212008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2122
2123 PR fortran/25829 28655
2124 * io.c (io_tag): Add new tags for decimal, encoding, asynchronous,
2125 round, sign, and id. (match_open_element): Match new tags.
2126 (gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding
2127 for DEFAULT only. Update error messages. (match_dt_element): Fix match
2128 tag for asynchronous. Update error messages. (gfc_free_inquire): Free
2129 new expressions. (match_inquire_element): Match new tags.
2130 (gfc_match_inquire): Add constraint for ID and PENDING.
2131 (gfc_resolve_inquire): Resolve new tags.
2132 * trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of
2133 mask for ID parameter.
2134 * ioparm.def: Fix order of parameters for pending, round, and sign.
2135 NOTE: These must line up with the definitions in libgfortran/io/io.h. or
2136 things don't work.
2137
679d9637
PT
21382008-04-06 Paul Thomas <pault@gcc.gnu.org>
2139
2140 PR fortran/35780
2141 * expr.c (scalarize_intrinsic_call): Identify which argument is
2142 an array and use that as the template.
2143 (check_init_expr): Remove tests that first argument is an array
2144 in the call to scalarize_intrinsic_call.
2145
95213750 21462008-04-06 Tobias Schlüter <tobi@gcc.gnu.org>
9b8d1901
TS
2147
2148 PR fortran/35832
2149 * io.c (io_tag): Add field 'value'. Split 'spec' field in
2150 existing io_tags.
2151 (match_etag, match_vtag, match_ltag): Split parsing in two steps
2152 to give better error messages.
2153
fbe88ffa
TB
21542008-04-06 Tobias Burnus <burnus@net-b.de>
2155
2156 * io.c (check_io_constraints): Add constrains. ID= requires
2157 asynchronous= and asynchronous= must be init expression.
2158
3135ce84
FXC
21592008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2160
2161 * f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".
2162
6c1abb5c
FXC
21632008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2164
2165 * dump-parse-tree.c: Use fprintf, fputs and fputc instead of
2166 gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
2167 functions and make them static. Add new gfc_dump_parse_tree
2168 function.
2169 * gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
2170 (gfc_status, gfc_status_char): Delete prototypes.
2171 * error.c (gfc_status, gfc_status_char): Remove functions.
2172 * scanner.c (gfc_new_file): Use printf instead of gfc_status.
2173 * options.c (gfc_init_options): Rename verbose into dump_parse_tree.
2174 (gfc_handle_module_path_options): Use gfc_fatal_error instead of
2175 gfc_status and exit.
2176 (gfc_handle_option): Rename verbose into dump_parse_tree.
daf5afd4 2177 * parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
6c1abb5c 2178
6f0f0b2e
JD
21792008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2180 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2181
2182 PR fortran/25829 28655
2183 * dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
2184 * gfortran.h (gfc_statement): Add ST_WAIT enumerator.
2185 (gfc_open): Add pointers for decimal, encoding, round, sign,
2186 asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
2187 encoding, pending, round, sign, size, id.
2188 (gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
2189 asynchronous, blank, decimal, delim, pad, round, sign.
2190 (gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
2191 wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
2192 * trans-stmt.h (gfc_trans_wait): New function prototype.
2193 * trans.c (gfc_trans_code): Add case for EXEC_WAIT.
2194 * io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
2195 ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
2196 (gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
2197 tags. (gfc_resolve_open): Remove comment around check for allowed
2198 values and ASYNCHRONOUS, update it. Likewise for DECIMAL, ENCODING,
2199 ROUND, and SIGN. (match_dt_element): Add matching for new tags.
2200 (gfc_free_wait): New function. (gfc_resolve_wait): New function.
2201 (match_wait_element): New function. (gfc_match_wait): New function.
2202 * resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
2203 (resolve_code): Add case for EXEC_WAIT.
2204 * st.c (gfc_free_statement): Add case for EXEC_WAIT.
2205 * trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
2206 Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
2207 (gfc_build_io_library_fndecls): Add function declaration for st_wait.
2208 (gfc_trans_open): Add mask bits for new I/O tags.
2209 (gfc_trans_inquire): Add mask bits for new I/O tags.
2210 (gfc_trans_wait): New translation function.
2211 (build_dt): Add mask bits for new I/O tags.
2212 * match.c (gfc_match_if) Add matcher for "wait".
2213 * match.h (gfc_match_wait): Prototype for new function.
2214 * ioparm.def: Add new I/O parameter definitions.
2215 * parse.c (decode_statement): Add match for "wait" statement.
2216 (next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.
2217
637b5a8e
JJ
22182008-04-03 Jakub Jelinek <jakub@redhat.com>
2219
2220 PR fortran/35786
2221 * openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
2222 isn't a variable.
2223
6cba282a
TT
22242008-04-03 Tom Tromey <tromey@redhat.com>
2225
2226 * Make-lang.in (fortran_OBJS): New variable.
2227
9ff420f1
PB
22282008-04-03 Paolo Bonzini <bonzini@gnu.org>
2229
6c1abb5c 2230 * f95-lang.c (insert_block): Kill.
9ff420f1 2231
7151ffbe
GH
22322008-04-01 George Helffrich <george@gcc.gnu.org>
2233
623f8e39 2234 PR fortran/35154, fortran/23057
7151ffbe
GH
2235 * trans-common.c (create_common): Add decl to function
2236 chain to preserve identifier scope in debug output.
2237
7f9766e4
JM
22382008-04-01 Joseph Myers <joseph@codesourcery.com>
2239
2240 * gfortran.texi: Include gpl_v3.texi instead of gpl.texi
2241 * Make-lang.in (GFORTRAN_TEXI): Include gpl_v3.texi instead of
2242 gpl.texi.
2243
23d1b451
PT
22442008-03-30 Paul Thomas <pault@gcc.gnu.org>
2245
2246 PR fortran/35740
2247 * resolve.c (resolve_function, resolve_call): If the procedure
2248 is elemental do not look for noncopying intrinsics.
2249
067feae3
PT
22502008-03-29 Paul Thomas <pault@gcc.gnu.org>
2251
2252 PR fortran/35698
2253 * trans-array.c (gfc_array_init_size): Set 'size' zero if
2254 negative in one dimension.
2255
2256 PR fortran/35702
2257 * trans-expr.c (gfc_trans_string_copy): Only assign a char
2258 directly if the lhs and rhs types are the same.
2259
01d2a7d7
DF
22602008-03-28 Daniel Franke <franke.daniel@gmail.com>
2261 Paul Richard Thomas <paul.richard.thomas@gmail.com>
2262
2263 PR fortran/34714
2264 * primary.c (match_variable): Improved matching of function
2265 result variables.
2266 * resolve.c (resolve_allocate_deallocate): Removed checks if
2267 the actual argument for STAT is a variable.
2268
b0be8e5c
TB
22692008-03-28 Tobias Burnus <burnus@net-b.de>
2270
2271 * symbol.c (gfc_get_default_type): Fix error message; option
2272 -fallow_leading_underscore should be -fallow-leading-underscore
2273
97d650cc
JD
22742008-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2275
2276 PR fortran/35724
2277 * iresolve.c (gfc_resolve_cshift): Check for NULL symtree in test for
2278 optional argument attribute.
2279
e980df8e
TT
22802008-03-27 Tom Tromey <tromey@redhat.com>
2281
2282 * Make-lang.in: Revert automatic dependency patch.
2283
2fe3178b
TT
22842008-03-25 Tom Tromey <tromey@redhat.com>
2285
2286 * Make-lang.in: Remove .o targets.
2287 (fortran_OBJS): New variable.
2288 (fortran/gfortranspec.o): Move to fortran/. Reduce to variable
2289 setting.
2290 (GFORTRAN_D_OBJS): Update.
2291 (GFORTRAN_TRANS_DEPS): Remove.
2292
c1203a70
PT
22932008-03-24 Paul Thomas <pault@gcc.gnu.org>
2294
2295 PR fortran/34813
2296 * resolve.c (resolve_structure_cons): It is an error to assign
2297 NULL to anything other than a pointer or allocatable component.
2298
2299 PR fortran/33295
2300 * resolve.c (resolve_symbol): If the symbol is a derived type,
2301 resolve the derived type. If the symbol is a derived type
2302 function, ensure that the derived type is visible in the same
2303 namespace as the function.
2304
95213750 23052008-03-23 Tobias Schlüter <tobi@gcc.gnu.org>
47056774
TS
2306
2307 * trans.h: Use fold_build in build1_v, build2_v and build3_v
2308 macros.
2309 * trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single):
2310 Don't use build2_v macro.
2311
ac05557c
DF
23122008-03-19 Daniel Franke <franke.daniel@gmail.com>
2313
2314 PR fortran/35152
2315 * interface.c (gfc_procedure_use): Check for keyworded arguments in
2316 procedures without explicit interfaces.
2317
c52938ec
PT
23182008-03-16 Paul Thomas <pault@gcc.gnu.org>
2319
2320 PR fortran/35470
2321 * resolve.c (check_assumed_size_reference): Only visit the
2322 first reference and look directly at the highest dimension.
2323
db5cf0c7
JD
23242008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2325
2326 PR fortran/35184
2327 * trans-array.c (gfc_conv_array_index_offset): Remove unnecessary
2328 assert.
2329
ab551054
DF
23302008-03-15 Daniel Franke <franke.daniel@gmail.com>
2331
2332 PR fortran/35584
2333 * resolve.c (resolve_branch): Less strict and pessimistic warning
2334 message.
2335
30e257e5
PB
23362008-03-11 Paolo Bonzini <bonzini@gnu.org>
2337
ab551054
DF
2338 * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
2339 (gfc_be_parse_file): Call clear_binding_stack from here.
30e257e5
PB
2340 (gfc_clear_binding_stack): Rename to clear_binding_stack.
2341
81c10953
PT
23422008-03-09 Paul Thomas <pault@gcc.gnu.org>
2343
2344 PR fortran/35474
2345 * module.c (mio_symtree_ref): After providing a symbol for a
2346 missing equivalence member, resolve and NULL the fixups.
2347
802e3f8c
RW
23482008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2349
2350 * invoke.texi (Error and Warning Options): Document
2351 -Wline-truncation.
2352
ba4698e1
FXC
23532008-03-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2354
2355 PR fortran/34956
2356 * trans-array.c (gfc_conv_ss_startstride): Fix the logic to avoid
2357 checking bounds of absent optional arguments.
2358
fdc54e88
FXC
23592008-03-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2360
2361 PR fortran/33197
2362 * intrinsic.c (add_functions): Add simplification routines for
2363 ERF, DERF, ERFC and DERFC.
2364 * decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU
2365 extensions into Fortran 2008 features.
2366 * intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New
2367 prototypes.
2368 * simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions.
2369
f489fba1
FXC
23702008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2371
2372 PR fortran/33197
2373 * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
2374 ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
2375 ERFC_SCALED, LOG_GAMMA and HYPOT.
2376 * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
2377 gfc_resolve_hypot): New prototypes.
2378 * mathbuiltins.def: Add HYPOT builtin. Make complex versions of
2379 ACOSH, ASINH and ATANH available.
2380 * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
2381 * lang.opt: Add -std=f2008 option.
2382 * libgfortran.h: Define GFC_STD_F2008.
2383 * lang-specs.h: Add .f08 and .F08 file suffixes.
2384 * iresolve.c (gfc_resolve_hypot): New function.
2385 * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
2386 * check.c (gfc_check_hypot): New function.
2387 * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
2388 * options.c (set_default_std_flags): Allow Fortran 2008 by default.
2389 (form_from_filename): Add .f08 suffix.
2390 (gfc_handle_option): Handle -std=f2008 option.
2391 * simplify.c (gfc_simplify_hypot): New function.
2392 * gfortran.texi: Document Fortran 2008 status and file extensions.
2393 * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
2394 as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
2395 ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
2396 * invoke.texi: Document the new -std=f2008 option.
2397
0e5997c0
JJ
23982008-03-02 Jakub Jelinek <jakub@redhat.com>
2399
2400 * gfortranspec.c (lang_specific_driver): Update copyright notice
2401 dates.
2402
44000dbb
JD
24032008-02-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2404
2405 PR fortran/35059
2406 * expr.c (find_array_element): Modify traversing the constructor to
2407 avoid trying to access NULL memory pointed to by next for the
2408 last element. (find_array_section): Exit while loop if cons->next is
2409 NULL.
2410 * trans-expr.c (gfc_conv_scalar_char_value): Initialize gfc_typespec.
2411 (gfc_conv_function_call): Same.
2412 * decl.c (gfc_match_implicit): Same.
2413 * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Same.
2414
766d0c8c
DF
24152008-02-28 Daniel Franke <franke.daniel@gmail.com>
2416
2417 PR fortran/31463
2418 PR fortran/33950
2419 PR fortran/34296
2420 * lang.opt: Added -Wreturn-type.
2421 * options.c (gfc_handle_option): Recognize -Wreturn-type.
2422 * trans-decl.c (gfc_trans_deferred_vars): Emit warnings for funtions
2423 where the result value is not set.
2424 (gfc_generate_function_code): Likewise.
2425 (generate_local_decl): Emit warnings for funtions whose RESULT
2426 variable is not set.
2427
43e7fd21
FXC
24282008-02-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2429
2430 PR fortran/34868
2431 * trans-expr.c (gfc_conv_variable): Don't build indirect
2432 references when explicit interface is mandated.
2433 * resolve.c (resolve_formal_arglist): Set attr.always_explicit
2434 on the result symbol as well as the procedure symbol.
2435
b5a4419c
FXC
24362008-02-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2437
2438 PR fortran/33387
2439 * trans.h: Remove prototypes for gfor_fndecl_math_exponent4,
2440 gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
2441 gfor_fndecl_math_exponent16.
2442 * f95-lang.c (build_builtin_fntypes): Add new function types.
2443 (gfc_init_builtin_functions): Add new builtins for nextafter,
2444 frexp, ldexp, fabs, scalbn and inf.
2445 * iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments.
2446 (gfc_resolve_scale): Don't convert type of second argument.
2447 (gfc_resolve_set_exponent): Likewise.
2448 (gfc_resolve_size): Don't add hidden arguments.
2449 * trans-decl.c: Remove gfor_fndecl_math_exponent4,
2450 gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
2451 gfor_fndecl_math_exponent16.
2452 * trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics
2453 for scalbn, fraction, nearest, rrspacing, set_exponent and
2454 spacing.
2455 (gfc_conv_intrinsic_exponent): Directly call frexp.
2456 (gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest,
2457 gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
2458 gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New
2459 functions.
2460 (gfc_conv_intrinsic_function): Use the new functions above.
2461
e19bb186
TB
24622008-02-26 Tobias Burnus <burnus@net-b.de>
2463
2464 PR fortran/35033
2465 * interface.c (check_operator_interface): Show better line for error
2466 messages; fix constrains for user-defined assignment operators.
2467 (gfc_extend_assign): Fix constrains for user-defined assignment
2468 operators.
2469
2d593c86
TT
24702008-02-26 Tom Tromey <tromey@redhat.com>
2471
2472 * trans-io.c (set_error_locus): Remove old location code.
2473 * trans-decl.c (gfc_set_decl_location): Remove old location code.
2474 * f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION.
2475 * scanner.c (gfc_gobble_whitespace): Remove old location code.
2476 (get_file): Likewise.
2477 (preprocessor_line): Likewise.
2478 (load_file): Likewise.
2479 (gfc_new_file): Likewise.
2480 * trans.c (gfc_trans_runtime_check): Remove old location code.
2481 (gfc_get_backend_locus): Likewise.
2482 (gfc_set_backend_locus): Likewise.
2483 * data.c (gfc_assign_data_value): Remove old location code.
2484 * error.c (show_locus): Remove old location code.
2485 * gfortran.h (gfc_linebuf): Remove old location code.
2486 (gfc_linebuf_linenum): Remove old-location variant.
2487
ee37d2f5
FXC
24882008-02-25 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2489
2490 PR fortran/34729
2491 * trans-const.c (gfc_build_string_const): Don't call gettext.
2492 (gfc_build_localized_string_const): New function.
2493 * trans-const.h (gfc_build_localized_string_const): New prototype.
2494 * trans.c (gfc_trans_runtime_check): Use
2495 gfc_build_localized_string_const instead of gfc_build_string_const.
2496 (gfc_call_malloc): Likewise.
2497 (gfc_allocate_with_status): Likewise.
2498 (gfc_allocate_array_with_status): Likewise.
2499 (gfc_deallocate_with_status): Likewise.
2500 (gfc_call_realloc): Likewise.
2501 * trans-io.c (gfc_trans_io_runtime_check): Likewise.
2502
95213750 25032008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
835aac92
TS
2504
2505 * arith.c: Update copyright years.
2506 * arith.h: Likewise.
2507 * array.c: Likewise.
2508 * bbt.c: Likewise.
2509 * check.c: Likewise.
2510 * data.c: Likewise.
2511 * data.h: Likewise.
2512 * decl.c: Likewise.
2513 * dependency.c: Likewise.
2514 * dependency.h: Likewise.
2515 * dump-parse-tree.c: Likewise.
2516 * error.c: Likewise.
2517 * expr.c: Likewise.
2518 * gfc-internals.texi: Likewise.
2519 * gfortran.h: Likewise.
2520 * gfortran.texi: Likewise.
2521 * gfortranspec.c: Likewise.
2522 * interface.c: Likewise.
2523 * intrinsic.c: Likewise.
2524 * intrinsic.h: Likewise.
2525 * intrinsic.texi: Likewise.
2526 * invoke.texi: Likewise.
2527 * io.c: Likewise.
2528 * iresolve.c: Likewise.
2529 * iso-c-binding.def: Likewise.
2530 * iso-fortran-env.def: Likewise.
2531 * lang-specs.h: Likewise.
2532 * lang.opt: Likewise.
2533 * libgfortran.h: Likewise.
2534 * match.c: Likewise.
2535 * match.h: Likewise.
2536 * matchexp.c: Likewise.
2537 * misc.c: Likewise.
2538 * module.c: Likewise.
2539 * openmp.c: Likewise.
2540 * options.c: Likewise.
2541 * parse.c: Likewise.
2542 * parse.h: Likewise.
2543 * primary.c: Likewise.
2544 * resolve.c: Likewise.
2545 * scanner.c: Likewise.
2546 * simplify.c: Likewise.
2547 * st.c: Likewise.
2548 * symbol.c: Likewise.
2549 * target-memory.c: Likewise.
2550 * target-memory.h: Likewise.
2551 * trans-array.h: Likewise.
2552 * trans-const.h: Likewise.
2553 * trans-stmt.h: Likewise.
2554 * trans-types.c: Likewise.
2555 * trans-types.h: Likewise.
2556 * types.def: Likewise.
2557
c05800b6
JD
25582008-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2559
2560 PR fortran/35223
2561 * simplify.c (gfc_simplify_ibclr), (gfc_simplify_ibits),
2562 (gfc_simplify_ibset): Remove call to range_check.
2563 (simplify_cmplx), (gfc_simplify_dble), (gfc_simplify_float)
2564 (gfc_simplify_real): Add call gfc_clear_ts to initialize the
2565 temporary gfc_typspec variable.
2566
95213750 25672008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
0418b811
TS
2568
2569 * trans-array.c (gfc_conv_descriptor_data_get,
2570 gfc_conv_descriptor_data_set_internal,
2571 gfc_conv_descriptor_data_addr, gfc_conv_descriptor_offset,
2572 gfc_conv_descriptor_dtype, gfc_conv_descriptor_dimension,
2573 gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
2574 gfc_conv_descriptor_ubound, gfc_trans_create_temp_array,
2575 gfc_conv_array_transpose, gfc_grow_array,
2576 gfc_trans_array_constructor_subarray,
2577 gfc_trans_array_constructor_value, gfc_trans_scalarized_loop_end,
2578 gfc_array_init_size, gfc_array_allocate, gfc_array_deallocate,
2579 gfc_conv_array_initializer, gfc_trans_array_bounds,
2580 gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2581 gfc_get_dataptr_offset, gfc_conv_array_parameter,
2582 gfc_trans_dealloc_allocated, get_full_array_size,
2583 gfc_duplicate_allocatable, structure_alloc_comps): Use fold_buildN
2584 instead of buildN.
2585 * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
2586 gfc_conv_component_ref, gfc_conv_cst_int_power,
2587 gfc_conv_function_call, gfc_trans_structur_assign): Likewise.
2588 * trans-common.c (create_common): Likewise.
2589 * trans-openmp.c (gfc_trans_omp_atomic, gfc_trans_omp_do):
2590 Likewise.
2591 * trans-const.c (gfc_conv_constant_to_tree): Likewise.
2592 * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_do,
2593 gfc_trans_integer_select, gfc_trans_character_select,
2594 gfc_trans_forall_loop, compute_overall_iter_number,
2595 gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_allocate,
2596 gfc_trans_deallocate): Likewise.
2597 * trans.c (gfc_build_addr_expr, gfc_trans_runtime_check,
2598 gfc_allocate_with_status, gfc_allocate_array_with_status,
2599 gfc_deallocate_with_status): Likewise.
2600 * f95-lang.c (gfc_truthvalue_conversion): Likewise.
2601 * trans-io.c (set_parameter_const, set_parameter_value,
2602 set_parameter_ref, set_string, set_internal_unit, io_result,
2603 set_error_locus, nml_get_addr_expr, transfer_expr): Likewise.
2604 * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
2605 gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
2606 gfc_generate_function_code): Likewise.
2607 * convert.c (convert): Likewise.
2608 * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
2609 build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
2610 gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
2611 gfc_conv_intrinsic_conjg, gfc_conv_intrinsic_abs,
2612 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
2613 gfc_conv_intrinsic_dim, gfc_conv_intrinsic_dprod,
2614 gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
2615 gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
2616 gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_count,
2617 gfc_conv_intrinsic_arith, gfc_conv_intrinsic_dot_product,
2618 gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2619 gfc_conv_intrinsic_btest, gfc_conv_intrinsic_not,
2620 gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
2621 gfc_conv_intrinsic_ichar, gfc_conv_intrinsic_size,
2622 gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
2623 gfc_conv_allocated, gfc_conv_associated, gfc_conv_intrinsic_trim,
2624 gfc_conv_intrinsic_repeat): Likewise.
2625
37a2dc42 26262008-02-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
fb220235
FXC
2627
2628 PR target/25477
2629 * trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}.
2630 * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}.
2631 * trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf,
2632 gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove.
2633 * trans-decl.c: Likewise.
2634
c05800b6
JD
26352008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2636
2637 PR fortran/35059
2638 * expr.c (find_array_element): Modify traversing the constructor to
2639 avoid trying to access NULL memory pointed to by next for the
2640 last element. (find_array_section): Exit while loop if cons->next is
2641 NULL.
2642
26432008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
4af63337
JD
2644
2645 PR fortran/34907
2646 * iresolve.c (resolve_mask_arg): Add gfc_clear_ts to initialize
2647 structure.
2648 (gfc_resolve_aint): Likewise.
2649 (gfc_resolve_anint): Likewise.
2650 (gfc_resolve_besn): Likewise.
2651 (gfc_resolve_cshift): Likewise.
2652 (gfc_resolve_ctime): Likewise.
2653 (gfc_resolve_eoshift): Likewise.
2654 (gfc_resolve_index_func): Likewise.
2655 (gfc_resolve_isatty): Likewise.
2656 (gfc_resolve_malloc): Likewise.
2657 (gfc_resolve_rrspacing): Likewise.
2658 (gfc_resolve_scale): Likewise.
2659 (gfc_resolve_set_exponent): Likewise.
2660 (gfc_resolve_spacing): Likewise.
2661 (gfc_resolve_spacing): Likewise.
2662 (gfc_resolve_fgetc): Likewise.
2663 (gfc_resolve_fputc): Likewise.
2664 (gfc_resolve_ftell): Likewise.
2665 (gfc_resolve_ttynam): Likewise.
2666 (gfc_resolve_alarm_sub): Likewise.
2667 (gfc_resolve_mvbits): Likewise.
2668 (gfc_resolve_getarg): Likewise.
2669 (gfc_resolve_signal_sub): Likewise.
2670 (gfc_resolve_exit): Likewise.
2671 (gfc_resolve_flush): Likewise.
2672 (gfc_resolve_free): Likewise.
2673 (gfc_resolve_ctime_sub): Likewise.
2674 (gfc_resolve_fgetc_sub): Likewise.
2675 (gfc_resolve_fputc_sub): Likewise.
2676 (gfc_resolve_fseek_sub): Likewise.
2677 (gfc_resolve_ftell_sub): Likewise.
2678 (gfc_resolve_ttynam_sub): Likewise.
2679
24219f12
RW
26802008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2681
2682 * gfc-internals.texi: Fix typos and markup nits.
2683 * gfortran.texi: Likewise.
2684 * intrinsic.texi: Likewise.
2685
dedd42d5
RG
26862008-02-21 Richard Guenther <rguenther@suse.de>
2687
2688 * trans-expr.c (gfc_conv_expr_op): Expand INTRINSIC_PARENTHESES
2689 as unary PAREN_EXPR for real and complex typed expressions.
2690 (gfc_conv_unary_op): Fold the built tree.
2691
89a5afda
TB
26922008-02-20 Tobias Burnus <burnus@net-b.de>
2693
2694 PR fortran/34997
2695 * match.c (gfc_match_name): Improve error message for '$'.
2696
606c2c03
DF
26972008-02-19 Daniel Franke <franke.daniel@gmail.com>
2698
2699 PR fortran/35030
2700 * expr.c (gfc_check_pointer_assign): Add type and kind information
2701 to type-mismatch message.
2702 (gfc_check_assign): Unify error messages.
2703
49309826
FXC
27042008-02-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2705
2706 PR fortran/34952
2707 * gfortran.texi: Create new section for unimplemented extensions.
2708 Add "STRUCTURE and RECORD" and "ENCODE and DECODE statements".
2709 Remove "smaller projects" list. Fix a few typos.
2710
6b45fd61
FXC
27112008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2712
2713 * intrinsic.texi: Rename INDEX node to avoid clashing with
2714 index.html on case-insensitive systems.
2715
750606c6
FXC
27162008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2717
2718 PR fortran/35150
2719 * trans-expr.c (gfc_conv_function_call): Force evaluation of
2720 se->expr.
2721
3d39d415
DF
27222008-02-10 Daniel Franke <franke.daniel@gmail.com>
2723
606c2c03 2724 PR fortran/35019
3d39d415
DF
2725 * lang.opt: Allow '-J<dir>' next to '-J <dir>',
2726 likewise '-I <dir>' and '-I<dir>'.
2727
72fb133f
KG
27282008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2729
2730 PR other/35107
2731 * Make-lang.in (f951): Add $(GMPLIBS).
2732
e3ac9b24
FXC
27332008-02-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2734
2735 PR fortran/35037
2736 * trans-common.c (build_field): Mark fields as volatile when needed.
2737
da36ba27
TB
27382008-02-05 Tobias Burnus <burnus@net-b.de>
2739
2740 PR fortran/35093
2741 * data.c (gfc_assign_data_value): Only free "size" if
2742 it has not already been freed.
2743
52f56431
PT
27442008-02-05 Paul Thomas <pault@gcc.gnu.org>
2745
2746 PR fortran/34945
2747 * array.c (match_array_element_spec): Remove check for negative
2748 array size.
2749 (gfc_resolve_array_spec): Add check for negative size.
2750
3969f765
PT
27512008-02-05 Paul Thomas <pault@gcc.gnu.org>
2752
2753 PR fortran/32315
2754 * data.c (gfc_assign_data_value): Add bounds check for array
2755 references.
2756
ba6e57ba
DF
27572008-02-04 Daniel Franke <franke.daniel@gmail.com>
2758
2759 * resolve.c (resolve_where): Fix typo.
2760 (gfc_resolve_where_code_in_forall): Likewise.
2761
b9332b09
PT
27622008-02-03 Paul Thomas <pault@gcc.gnu.org>
2763
2764 PR fortran/32760
2765 * resolve.c (resolve_allocate_deallocate): New function.
2766 (resolve_code): Call it for allocate and deallocate.
2767 * match.c (gfc_match_allocate, gfc_match_deallocate) : Remove
2768 the checking of the STAT tag and put in above new function.
2769 * primary,c (match_variable): Do not fix flavor of host
2770 associated symbols yet if the type is not known.
2771
db39d0c2
PT
27722008-01-31 Paul Thomas <pault@gcc.gnu.org>
2773
2774 PR fortran/34910
2775 * expr.c (gfc_check_assign): It is an error to assign
2776 to a sibling procedure.
2777
a99d95a2
PT
27782008-01-30 Paul Thomas <pault@gcc.gnu.org>
2779
2780 PR fortran/34975
2781 * symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
2782 delete_symtree to gfc_delete_symtree.
2783 * gfortran.h : Add prototype for gfc_delete_symtree.
2784 * module.c (load_generic_interfaces): Transfer symbol to a
2785 unique symtree and delete old symtree, instead of renaming.
2786 (read_module): The rsym and the found symbol are the same, so
2787 the found symtree can be deleted.
2788
2789 PR fortran/34429
2790 * decl.c (match_char_spec): Remove the constraint on deferred
2791 matching of functions and free the length expression.
2792 delete_symtree to gfc_delete_symtree.
2793 (gfc_match_type_spec): Whitespace.
2794 (gfc_match_function_decl): Defer characteristic association for
2795 all types except BT_UNKNOWN.
2796 * parse.c (decode_specification_statement): Only derived type
2797 function matching is delayed to the end of specification.
2798
64a96f5b
TB
27992008-01-28 Tobias Burnus <burnus@net-b.de>
2800
2801 PR libfortran/34980
2802 * simplify.c (gfc_simplify_shape): Simplify rank zero arrays.
2803
938f31f1
JD
28042008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2805
2806 PR fortran/34990
2807 * array.c (gfc_check_constructor_type): Revert clearing the expression.
2808
2c80cb0e
TB
28092008-01-26 Tobias Burnus <burnus@net-b.de>
2810
2811 PR fortran/34848
2812 * trans-expr.c (gfc_conv_function_call): Don't call
2813 gfc_add_interface_mapping if the expression is NULL.
2814
bdfc46af
JD
28152008-01-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2816
2817 PR fortran/31610
2818 * trans-array.c (gfc_trans_create_temp_array): Remove call to
2819 gcc_assert (integer_zerop (loop->from[n])).
2820
42cd23cb
DF
28212008-01-25 Daniel Franke <franke.daniel@gmail.com>
2822
2823 PR fortran/34661
2824 * resolve.c (resolve_where): Added check if user-defined assignment
2825 operator is an elemental subroutine.
2826 (gfc_resolve_where_code_in_forall): Likewise.
2827
79f40de6
DF
28282008-01-24 Daniel Franke <franke.daniel@gmail.com>
2829
2830 PR fortran/33375
2831 PR fortran/34858
2832 * gfortran.h: Revert changes from 2008-01-17.
2833 * match.c: Likewise.
2834 * symbol.c: Likewise.
2835 (gfc_undo_symbols): Undo namespace changes related to common blocks.
2836
7c8d2703
DF
28372008-01-24 Daniel Franke <franke.daniel@gmail.com>
2838
2839 PR fortran/34202
2840 * data.c (formalize_structure_cons): Skip formalization on
2841 empty structures.
2842
3b303683
DF
28432008-01-24 Daniel Franke <franke.daniel@gmail.com>
2844
2845 * gfortran.texi (OpenMP): Extended existing documentation.
2846 (contributors): Added major contributors of 2008 that were
2847 not listed yet.
2848 (proposed extensions): Removed implemented items.
2849
28502008-01-24 Paul Thomas <pault@gcc.gnu.org>
2851
2852 PR fortran/34872
2853 * parse.c (next_statement) : If ST_GET_FCN_CHARACTERISTICS is
2854 seen, check for a statement label and, if present, delete it
2855 and set the locus to the start of the statement.
2856
c63173dd
PT
28572008-01-22 Paul Thomas <pault@gcc.gnu.org>
2858
2859 PR fortran/34875
2860 * trans-io.c (gfc_trans_transfer): If the array reference in a
2861 read has a vector subscript, use gfc_conv_subref_array_arg to
2862 copy back the temporary.
2863
b5ca4fd2
TB
28642008-01-22 Tobias Burnus <burnus@net-b.de>
2865
2866 PR fortran/34848
2867 * interface.c (compare_actual_formal): Fix adding type
2868 to missing_arg_type for absent optional arguments.
2869
2ddd2871
TB
28702008-01-22 Tobias Burnus <burnus@net-b.de>
2871
2872 PR fortran/34907
2873 * parse.c (parse_spec): Change = into ==.
2874
c2916401
DF
28752008-01-22 Daniel Franke <franke.daniel@gmail.com>
2876
2877 PR fortran/34915
2878 * expr.c (check_elemental): Fix check for valid data types.
2879
fd1935d5
TB
28802008-01-22 Tobias Burnus <burnus@net-b.de>
2881
2882 PR fortran/34899
2883 * scanner.c (load_line): Support <tab><digit> continuation lines.
2884 * invoke.texi (-Wtabs): Document this.
2885
87a64f53
PT
28862008-01-22 Paul Thomas <pault@gcc.gnu.org>
2887
2888 PR fortran/34896
2889 * module.c (read_module): Set use_rename attribute.
2890
d68e117b
TB
28912007-01-21 Tobias Burnus <burnus@net-b.de>
2892
2893 PR fortran/34901
2894 * interface.c (compare_parameter): Improved error message
2895 for arguments of same type and mismatched kinds.
2896
f5d67ede
PT
28972008-01-20 Paul Thomas <pault@gcc.gnu.org>
2898
2899 PR fortran/34861
2900 * resolve.c (resolve_entries): Do not do an array bounds check
2901 if the result symbols are the same.
2902
2903 PR fortran/34854
2904 * module.c (read_module) : Hide the symtree of the previous
2905 version of the symbol if this symbol is renamed.
2906
f2d3cb25
PT
29072008-01-20 Paul Thomas <pault@gcc.gnu.org>
2908
2909 PR fortran/34784
2910 * array.c (gfc_check_constructor_type): Clear the expression ts
2911 so that the checking starts from the deepest level of array
2912 constructor.
2913 * primary.c (match_varspec): If an unknown type is changed to
2914 default character and the attempt to match a substring fails,
2915 change it back to unknown.
2916
2917 PR fortran/34785
2918 * trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is
2919 NULL for an array constructor, use the cl.length expression to
2920 build it.
2921 (gfc_conv_array_parameter): Change call to gfc_evaluate_now to
2922 a tree assignment.
2923
c613d540
TK
29242008-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
2925
2926 PR fortran/34817
2927 PR fortran/34838
2928 * iresolve.c (gfc_resolve_all): Remove conversion of mask
2929 argument to kind=1 by removing call to resolve_mask_arg().
2930 (gfc_resolve_any): Likewise.
2931
d7e2fcd0
TB
29322008-01-19 Tobias Burnus <burnus@net-b.de>
2933
2934 PR fortran/34760
2935 * primary.c (match_variable): Handle FL_UNKNOWN without
2936 uneducated guessing.
2937 (match_variable): Improve error message.
2938
a0710c29
TB
29392008-01-18 Tobias Burnus <burnus@net-b.de>
2940
2941 PR fortran/32616
2942 * interface.c (get_expr_storage_size): Return storage size
2943 for array element designators.
2944 (compare_actual_formal): Reject unequal string sizes for
2945 assumed-shape dummy arguments. And fix error message for
2946 array-sections with vector subscripts.
2947
207bde5f
JD
29482008-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2949
2950 PR fortran/34556
2951 * simplify.c (is_constant_array_expr): New static function that returns
2952 true if the given expression is an array and is constant.
2953 (gfc_simplify_reshape): Use new function.
2954
c0184444
L
29552008-01-17 H.J. Lu <hongjiu.lu@intel.com>
2956
2957 PR fortran/33375
2958 * symbol.c (free_common_tree): Renamed to ...
2959 (gfc_free_common_tree): This. Remove static.
2960 (gfc_free_namespace): Updated.
2961
2962 * gfortran.h (gfc_free_common_tree): New.
2963
2964 * match.c (gfc_match_common): Call gfc_free_common_tree () with
2965 gfc_current_ns->common_root and set gfc_current_ns->common_root
2966 to NULL on syntax error.
2967
5cc5439e
RS
29682008-01-18 Richard Sandiford <rsandifo@nildram.co.uk>
2969
2970 PR fortran/34686
2971 * trans-expr.c (gfc_conv_function_call): Use proper
2972 type for returned character pointers.
2973
1c8bcdf7
PT
29742008-01-17 Paul Thomas <pault@gcc.gnu.org>
2975
2976 PR fortran/34429
2977 PR fortran/34431
2978 PR fortran/34471
2979 * decl.c : Remove gfc_function_kind_locus and
2980 gfc_function_type_locus. Add gfc_matching_function.
2981 (match_char_length): If matching a function and the length
2982 does not match, return MATCH_YES and try again later.
2983 (gfc_match_kind_spec): The same.
2984 (match_char_kind): The same.
2985 (gfc_match_type_spec): The same for numeric and derived types.
2986 (match_prefix): Rename as gfc_match_prefix.
2987 (gfc_match_function_decl): Except for function valued character
2988 lengths, defer applying kind, type and charlen info until the
2989 end of specification block.
2990 gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS.
2991 parse.c (decode_specification_statement): New function.
2992 (decode_statement): Call it when a function has kind = -1. Set
2993 and reset gfc_matching function, as function statement is being
2994 matched.
2995 (match_deferred_characteristics): Simplify with a single call
2996 to gfc_match_prefix. Do appropriate error handling. In any
2997 case, make sure that kind = -1 is reset or corrected.
2998 (parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS.
2999 Throw an error if kind = -1 after last specification statement.
3000 parse.h : Prototype for gfc_match_prefix.
3001
6da0839a
TB
30022008-01-16 Tobias Burnus <burnus@net-b.de>
3003
3004 PR fortran/34796
3005 * interface.c (compare_parameter): Allow AS_DEFERRED array
3006 elements and reject attr.pointer array elemenents.
3007 (get_expr_storage_size): Return storage size of elements of
3008 assumed-shape and pointer arrays.
3009
e0e8ce7a
SP
30102008-01-15 Sebastian Pop <sebastian.pop@amd.com>
3011
3012 * f95-lang.c (gfc_init_builtin_functions): Initialize GOMP builtins
3013 for flag_tree_parallelize_loops.
3014
90469382
TK
30152008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
3016
3017 PR libfortran/34671
3018 * iresolve.c (gfc_resolve_all): Call resolve_mask_arg.
3019 (gfc_resolve_any): Likewise.
3020 (gfc_resolve_count): Likewise. Don't append kind of
3021 argument to function name.
3022
5ad6345e
TB
30232008-01-13 Tobias Burnus <burnus@net-b.de>
3024
3025 PR fortran/34665
3026 * resolve.c (resolve_actual_arglist): For expressions,
3027 also check for assume-sized arrays.
3028 * interface.c (compare_parameter): Move F2003 character checks
3029 here, print error messages here, reject elements of
3030 assumed-shape array as argument to dummy arrays.
3031 (compare_actual_formal): Update for the changes above.
3032
083de129
TB
30332008-01-13 Tobias Burnus <burnus@net-b.de>
3034
3035 PR fortran/34763
3036 * decl.c (contained_procedure): Only check directly preceeding state.
3037
86288ff0
TB
30382008-01-13 Tobias Burnus <burnus@net-b.de>
3039
3040 PR fortran/34759
3041 * check.c (gfc_check_shape): Accept array ranges of
3042 assumed-size arrays.
3043
9a528648
JD
30442008-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3045
9a27aa90 3046 PR fortran/34432
9a528648
JD
3047 * match.c (gfc_match_name): Don't error if leading character is a '(',
3048 just return MATCH_NO.
3049
bc9d9552
JD
30502008-01-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3051
3052 PR fortran/34722
3053 * trans-io.c (create_dummy_iostat): Commit the symbol.
3054
d9183bb7
PT
30552008-01-11 Paul Thomas <pault@gcc.gnu.org>
3056
3057 PR fortran/34537
3058 * simplify.c (gfc_simplify_transfer): Return NULL if the size
3059 of the element is unavailable and only assign character length
3060 to the result, if 'mold' is constant.
3061
32be9f94
PT
30622008-01-10 Paul Thomas <pault@gcc.gnu.org>
3063
3064 PR fortran/34396
3065 * trans-array.c (gfc_trans_array_ctor_element): Use gfc_trans_string_copy
3066 to assign strings and perform bounds checks on the string length.
3067 (get_array_ctor_strlen): Remove bounds checking.
3068 (gfc_trans_array_constructor): Initialize string length checking.
3069 * trans-array.h : Add prototype for gfc_trans_string_copy.
3070
416a8af4
RG
30712008-01-08 Richard Guenther <rguenther@suse.de>
3072
3073 PR fortran/34706
3074 PR tree-optimization/34683
3075 * trans-types.c (gfc_get_array_type_bounds): Use an array type
3076 with known size for accesses if that is known.
3077
0c6ce8b0
PT
30782008-01-08 Paul Thomas <pault@gcc.gnu.org>
3079
3080 PR fortran/34476
3081 * expr.c (find_array_element): Check that the array bounds are
3082 constant before using them. Use lower, as well as upper bound.
3083 (check_restricted): Allow implied index variable.
3084
3672065a
PT
30852008-01-08 Paul Thomas <pault@gcc.gnu.org>
3086
3087 PR fortran/34681
3088 * trans_array.c (gfc_trans_deferred_array): Do not null the
3089 data pointer on entering scope, nor deallocate it on leaving
3090 scope, if the symbol has the 'save' attribute.
3091
3092 PR fortran/34704
3093 * trans_decl.c (gfc_finish_var_decl): Derived types with
3094 allocatable components and an initializer must be TREE_STATIC.
3095
3a7b9fda
PT
30962008-01-07 Paul Thomas <pault@gcc.gnu.org>
3097
3098 PR fortran/34672
3099 * module.c (write_generic): Rewrite completely.
3100 (write_module): Change call to write_generic.
3101
bd5db9de
JD
31022008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3103
3104 PR fortran/34659
3105 * scanner.c (load_line): Do not count ' ' as printable when checking for
3106 continuations.
3107
5989df83 31082008-01-06 Paul Thomas <pault@gcc.gnu.org>
ac61ba6a 3109
5989df83
PT
3110 PR fortran/34545
3111 * module.c (load_needed): If the namespace has no proc_name
3112 give it the module symbol.
ac61ba6a 3113
9b09c4de
JD
31142008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3115
3116 PR fortran/34387
3117 * trans-expr.c (gfc_conv_missing_dummy): Use a temporary to type convert
3118 the dummy variable expression, test for NULL, and pass the variable
3119 address to the called function.
3120
346ecba8
TB
31212007-01-06 Tobias Burnus <burnus@net-b.de>
3122
3123 PR fortran/34658
3124 * match.c (gfc_match_common): Remove blank common in
3125 DATA BLOCK warning.
3126 * resolve.c (resolve_common_vars): New function.
3127 (resolve_common_blocks): Move checks to resolve_common_vars
3128 and invoke that function.
3129 (resolve_types): Call resolve_common_vars for blank commons.
3130
cddcf0d4
TB
31312008-01-06 Tobias Burnus <burnus@net-b.de>
3132
3133 PR fortran/34655
3134 * resolve.c (resolve_equivalence_derived): Reject derived types with
3135 default initialization if equivalenced with COMMON variable.
3136
89c32b0f
TB
31372008-01-06 Tobias Burnus <burnus@net-b.de>
3138
3139 PR fortran/34654
3140 * io.c (check_io_constraints): Disallow unformatted I/O for
3141 internal units.
3142
242633d6
TB
31432008-01-06 Tobias Burnus <burnus@net-b.de>
3144
3145 PR fortran/34660
3146 * resolve.c (resolve_formal_arglist): Reject dummy procedure in
3147 ELEMENTAL functions.
3148
a5c655e8
TB
31492008-01-06 Tobias Burnus <burnus@net-b.de>
3150
3151 PR fortran/34662
3152 * interface.c (compare_actual_formal): Reject parameter
3153 actual to intent(out) dummy.
3154
3c721513
TB
31552008-01-04 Tobias Burnus <burnus@net-b.de>
3156
3157 PR fortran/34557
3158 * primary.c (match_varspec): Gobble whitespace before
3159 checking for '('.