]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/fortran/ChangeLog
gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function.
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
CommitLineData
e34ccb4c
DK
12009-04-24 Daniel Kraft <d@domob.eu>
2
3 * gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function.
4 (struct gfc_symtree): Moved `typebound' member inside union.
5 (struct gfc_namespace): Add `tb_sym_root' as new symtree to sort out
6 type-bound procedures there.
7 (gfc_get_tbp_symtree): New procedure.
8 * symbol.c (tentative_tbp_list): New global.
9 (gfc_get_namespace): NULL new `tb_sym_root' member.
10 (gfc_new_symtree): Removed initialization of `typebound' member.
11 (gfc_undo_symbols): Process list of tentative tbp's.
12 (gfc_commit_symbols): Ditto.
13 (free_tb_tree): New method.
14 (gfc_free_namespace): Call it.
15 (gfc_get_typebound_proc): New method.
16 (gfc_get_tbp_symtree): New method.
17 (gfc_find_typebound_proc): Adapt to structural changes of gfc_symtree
18 and gfc_namespace with regards to tbp's.
19 * dump-parse-tree.c (show_typebound): Ditto.
20 * primary.c (gfc_match_varspec): Ditto. Don't reference tbp-symbol
21 as it isn't a symbol any longer.
22 * module.c (mio_typebound_symtree): Adapt to changes.
23 (mio_typebound_proc): Ditto, create symtrees using `gfc_get_tbp_symtree'
24 rather than `gfc_get_sym_tree'.
25 (mio_f2k_derived): Ditto.
26 * decl.c (match_procedure_in_type): Ditto.
27 (gfc_match_generic): Ditto. Don't reference tbp-symbol.
28 * resolve.c (check_typebound_override): Adapt to changes.
29 (resolve_typebound_generic): Ditto.
30 (resolve_typebound_procedures): Ditto.
31 (ensure_not_abstract_walker): Ditto.
32 (ensure_not_abstract): Ditto.
33 (resolve_typebound_procedure): Ditto, ignore erraneous symbols (for
34 instance, through removed tentative ones).
35 * gfc-internals.texi (Type-bound procedures): Document changes.
36
87526ff1
JW
372009-04-24 Janus Weil <janus@gcc.gnu.org>
38
39 PR fortran/39861
40 PR fortran/39864
41 * symbol.c (gfc_copy_formal_args_intr): Set attr.flavor and attr.dummy
42 for the formal arguments.
43
d1b38208
TG
442009-04-21 Taras Glek <tglek@mozilla.com>
45
46 * f95-lang.c: Update GTY annotations to new syntax.
47 * trans-intrinsic.c: Likewise.
48 * trans-io.c: Likewise.
49 * trans.h: Likewise.
50
c73b6478
JW
512009-04-22 Janus Weil <janus@gcc.gnu.org>
52
53 PR fortran/39735
54 * decl.c (add_hidden_procptr_result): Bugfix for procptr results.
55 (match_procedure_decl): Set if_source.
56 * expr.c (gfc_check_pointer_assign): Bugfix: Return after error.
57 And: Check interface also for IFSRC_UNKNOWN (return type may be known).
58 * gfortran.h (typedef enum ifsrc): Remove IFSRC_USAGE,
59 add documentation. Rename copy_formal_args and copy_formal_args_intr.
60 * interface.c (gfc_compare_interfaces): Check for return types,
61 handle IFSRC_UNKNOWN.
62 (compare_intr_interfaces,compare_actual_formal_intr): Obsolete, removed.
63 (gfc_procedure_use): Modified handling of intrinsics.
64 * intrinsic.c (add_functions): Bugfix for "dim".
65 * resolve.c (resolve_intrinsic): New function to resolve intrinsics,
66 which copies the interface from isym to sym.
67 (resolve_procedure_expression,resolve_function): Use new function
68 'resolve_intrinsic'.
69 (resolve_symbol): Add function attribute for externals with return type
70 and use new function 'resolve_intrinsic'.
71 * symbol.c (ifsrc_types): Remove string for IFSRC_USAGE.
72 (copy_formal_args): Renamed to gfc_copy_formal_args.
73 (copy_formal_args_intr): Renamed to gfc_copy_formal_args_intr.
74 * trans-const.c (gfc_conv_const_charlen): Handle cl==NULL.
75
ad41bd84
JM
762009-04-21 Joseph Myers <joseph@codesourcery.com>
77
78 * ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
79 ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
80 ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
81 copyright and license notices.
82 * ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
83 ChangeLog-2008: Correct dates.
84
47b0b4fa
TB
852009-04-20 Tobias Burnus <burnus@net-b.de>
86
87 PR fortran/39811
88 * scanner.c (load_line): Fix bogus "&" compile-time diagnostic.
89
c867b7b6
PT
902009-04-20 Paul Thomas <pault@gcc.gnu.org>
91
92 PR fortran/39800
93 * resolve.c (is_sym_host_assoc): New function.
94 (resolve_fl_derived): Call it when checking PRIVATE components
95 of PUBLIC derived types. Change gfc_error to a gfc_notify_std
96 with std=f2003.
97 (resolve_fl_namelist): Call it twice to check for host
98 association.
99
8fa2df72
ILT
1002009-04-20 Ian Lance Taylor <iant@google.com>
101
102 * module.c (import_iso_c_binding_module): Add casts to enum type.
103 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Change op to enum
104 tree_code.
105 (gfc_conv_intrinsic_anyall): Likewise.
106 (gfc_conv_intrinsic_arith): Likewise.
107 (gfc_conv_intrinsic_minmaxloc): Likewise.
108 (gfc_conv_intrinsic_minmaxval): Likewise.
109 (gfc_conv_intrinsic_bitop): Likewise.
110 (gfc_conv_intrinsic_singlebitop): Likewise.
111 (gfc_conv_intrinsic_strcmp): Likewise.
112
34d01e1d
VL
1132009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com>
114 Jakub Jelinek <jakub@redhat.com>
115
116 PR fortran/35423
117 * trans.h (OMPWS_WORKSHARE_FLAG, OMPWS_CURR_SINGLEUNIT,
118 OMPWS_SCALARIZER_WS, OMPWS_NOWAIT): Define.
119 (ompws_flags): New extern decl.
120 * trans-array.c (gfc_trans_scalarized_loop_end): Build OMP_FOR
121 for the outer dimension if ompws_flags allow it.
122 * trans.c (gfc_generate_code): Clear ompws_flags.
123 * trans-expr.c (gfc_trans_assignment_1): Allow worksharing
124 array assignments inside of !$omp workshare.
125 * trans-stmt.c (gfc_trans_where_3): Similarly for where statements
126 and constructs.
127 * trans-openmp.c (ompws_flags): New variable.
128 (gfc_trans_omp_workshare): Rewritten.
129
cadb8f42
DK
1302009-04-11 Daniel Kraft <d@domob.eu>
131
132 PR fortran/37746
133 * gfortran.h (struct gfc_charlen): New field `passed_length' to store
134 the actual passed string length for dummy arguments.
135 * trans-decl.c (gfc_create_string_length): Formatting fixes and added
136 assertion, moved a local variable into the innermost block it is needed.
137 (create_function_arglist): Removed TODO about the check being
138 implemented and initialize cl->passed_length here.
139 (add_argument_checking): New method.
140 (gfc_generate_function_code): Call the argument checking method.
141
d1e49db4
JW
1422009-04-11 Janus Weil <janus@gcc.gnu.org>
143
144 PR fortran/39692
145 * symbol.c (check_conflict): Reject procedure pointers for -std=f95.
146
1472009-04-11 Daniel Franke <franke.daniel@gmail.com>
568eecad
DF
148
149 * resolve.c (resolve_global_procedure): Enable whole-file checking for
150 procedures that are declared later in the file.
151
a862775d
PB
1522009-04-10 Paolo Bonzini <bonzini@gnu.org>
153
154 PR middle-end/39701
155 * trans.c (gfc_allocate_with_status): Fix type mismatches
156 on "pstat == 0".
157
045ac367
DF
1582009-04-10 Daniel Franke <franke.daniel@gmail.com>
159
160 PR fortran/38709
161 * expr.c (find_array_section): Leave early on zero-sized arrays.
162
3070bab4
JW
1632009-04-09 Janus Weil <janus@gcc.gnu.org>
164
165 PR fortran/36704
166 * decl.c (add_hidden_procptr_result): New function for handling
167 procedure pointer return values by adding a hidden result variable.
168 (variable_decl,match_procedure_decl,gfc_match_function_decl,
169 gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer
170 return values.
171 * parse.c (parse_interface): Add EXTERNAL attribute only after
172 FUNCTION/SUBROUTINE declaration is complete.
173 * primary.c (replace_hidden_procptr_result): New function for replacing
174 function symbol by hidden result variable.
175 (gfc_match_rvalue,match_variable): Replace symbol by hidden result
176 variable.
177 * resolve.c (resolve_contained_fntype,resolve_function,resolve_variable,
178 resolve_symbol): Allow for procedure pointer function results.
179 (resolve_fl_procedure): Conflict detection moved here from
180 'check_conflict'.
181 * symbol.c (gfc_check_function_type): Allow for procedure pointer
182 function results.
183 (check_conflict): Move some conflict detection to resolution stage.
184 * trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden
185 result variables.
186
dead0bae
JJ
1872009-04-08 Jakub Jelinek <jakub@redhat.com>
188
189 * trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't
190 contain TYPE_STRING_FLAG types.
191
cba2a54e
JB
1922009-04-08 Janne Blomqvist <jb@gcc.gnu.org>
193
194 PR fortran/39670
195 * invoke.texi (fdollar-ok): Fix typo.
196
f4a55802
DF
1972009-04-08 Daniel Franke <franke.daniel@gmail.com>
198
199 PR fortran/39670
200 * invoke.texi (fdollar-ok): Clarify limitations.
201
bafc96b4
PT
2022009-04-08 Paul Thomas <pault@gcc.gnu.org>
203
204 PR fortran/38863
205 * trans-array.c (gfc_trans_deferred_array): Return if this
206 is a result variable.
207
13d138bf
JW
2082009-04-07 Janus Weil <janus@gcc.gnu.org>
209
210 PR fortran/38152
211 * trans-decl.c (gfc_get_symbol_decl): Correctly set decl location for
212 procedure pointer decls.
213
3afadac3
JW
2142009-04-07 Janus Weil <janus@gcc.gnu.org>
215
c22ba5ff 216 PR fortran/38290
3afadac3
JW
217 * expr.c (gfc_check_pointer_assign): Enable interface check for
218 procedure pointers.
219 * gfortran.h: Add copy_formal_args_intr.
220 * interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces
221 if second argument is an intrinsic.
222 (compare_intr_interfaces): Correctly set attr.function, attr.subroutine
223 and ts.
224 (compare_parameter): Call gfc_compare_interfaces also for intrinsics.
225 * resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve
226 intrinsic interfaces here. Must happen earlier.
227 (resolve_symbol): Resolution of intrinsic interfaces moved here from
228 resolve_specific_..., and formal args are now copied from intrinsic
229 interfaces.
230 * symbol.c (copy_formal_args_intr): New function to copy the formal
231 arguments from an intinsic procedure.
232
ea0a374b
PT
2332009-04-06 Paul Thomas <pault@gcc.gnu.org>
234
235 PR fortran/38863
236 * dependency.c (ref_same_as_full_array): New function.
237 (gfc_dep_resolver): Call it.
238
1d146030
JW
2392009-04-06 Janus Weil <janus@gcc.gnu.org>
240
241 PR fortran/39414
242 * decl.c (match_procedure_decl): Fix double declaration problems with
243 PROCEDURE statements.
244 * symbol.c (gfc_add_type): Ditto.
245
59e36b72
PT
2462009-04-06 Paul Thomas <pault@gcc.gnu.org>
247
248 PR fortran/36091
249 * trans-array.c (gfc_conv_array_ref): If the symbol has the
250 temporary attribute use the array_spec for the bounds.
251 * gfortran.h : Add the temporary field to the structure
252 'symbol_attribute'.
253 * trans-stmt.c (forall_make_variable_temp): Set the symbol's
254 temporary attribute.
255
beb64b4a
DF
2562009-04-05 Daniel Franke <franke.daniel@gmail.com>
257
258 PR fortran/29458
259 * trans-array.c (gfc_trans_array_constructor_value): Shadow
260 implied do-loop variable to avoid spurious middle-end warnings.
261
cf7d2eb0
TB
2622009-04-04 Tobias Burnus <burnus@net-b.de>
263
264 PR fortran/39577
265 * trans-decl.c (gfc_generate_function_code): Move recursive
266 check to the right position.
267
6f85546f
PT
2682009-04-04 Paul Thomas <pault@gcc.gnu.org>
269
270 PR fortran/37614
271 * trans-common.c (translate_common): Do not offset the whole
272 coomon block.
273
6f9c9d6d
TB
2742009-04-03 Tobias Burnus <burnus@net-b.de>
275
276 PR fortran/39594
277 * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
278 if it is not a procedure pointer.
279 * primary.c (match_actual_arg): Ditto.
280
47580d22
JM
2812009-03-31 Joseph Myers <joseph@codesourcery.com>
282
283 PR preprocessor/15638
284 * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL.
285
3759634f
SK
2862009-03-30 Steven G. Kargl <kargls@comcast.net>
287
288 PR fortran/38389
289 * trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG.
290 (gfc_trans_deallocate): Add translation of ERRMSG. Remove stale
291 comments. Minor whitespace cleanup.
292 * resolve.c(is_scalar_expr_ptr): Whitespace cleanup.
293 (resolve_deallocate_expr (gfc_expr *e): Update error message.
294 (resolve_allocate_expr): Remove dead code. Update error message.
295 Move error checking to ...
296 (resolve_allocate_deallocate): ... here. Add additional error
297 checking for STAT, ERRMSG, and allocate-objects.
298 * match.c(gfc_match_allocate,gfc_match_deallocate): Parse ERRMSG.
299 Check for redundant uses of STAT and ERRMSG. Reword error message
300 and add checking for pointer, allocatable, and proc_pointer attributes.
301
71a7778c
PT
3022009-03-30 Paul Thomas <pault@gcc.gnu.org>
303
304 PR fortran/22571
305 PR fortran/26227
306 PR fortran/24886
307 * symbol.c : Add gfc_global_ns_list.
308 * decl.c (add_global_entry): Set the namespace ('ns') field.
309 * gfortran.h : Add the resolved field to gfc_namespace. Add the
310 namespace ('ns') field to gfc_gsymbol. Add flag_whole_file to
311 gfc_option_t. Add the prototype for gfc_free_dt_list.
312 * lang.opt : Add the whole-file option.
313 * invoke.texi : Document the whole-file option.
314 * resolve.c (resolve_global_procedure): If the fwhole-file
315 option is set, reorder gsymbols to ensure that translation is
316 in the right order. Resolve the gsymbol's namespace if that
317 has not occurred and then check interfaces.
318 (resolve_function): Move call to resolve_global_procedure.
319 (resolve_call): The same.
320 (resolve_codes): Store the current labels_obstack.
321 (gfc_resolve) : Return if the namespace is already resolved.
322 trans-decl.c (gfc_get_extern_function_decl): If the whole_file
323 option is selected, use the backend_decl of a gsymbol, if it is
324 available.
325 parse.c (add_global_procedure, add_global_program): If the flag
326 whole-file is set, add the namespace to the gsymbol.
327 (gfc_parse_file): On -fwhole-file, put procedure namespaces on
328 the global namespace list. Rearrange to do resolution of all
329 the procedures in a file, followed by their translation.
330 * options.c (gfc_init_options): Add -fwhole-file.
331 (gfc_handle_option): The same.
332
f6d53468
UW
3332009-03-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
334
335 * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
336 family of intrinsics instead of BUILT_IN_INF family.
337 * trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
338 BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
339
665733c1
JJ
3402009-03-30 Jakub Jelinek <jakub@redhat.com>
341
342 * trans-types.c (gfc_sym_type, gfc_return_by_reference): For
343 sym->attr.result check sym->ns->proc_name->attr.is_bind_c.
344
8ce94e44
JM
3452009-03-30 Joseph Myers <joseph@codesourcery.com>
346
347 PR rtl-optimization/323
348 * options.c (gfc_post_options): Set
349 flag_excess_precision_cmdline. Give an error for
350 -fexcess-precision=standard for processors where the option is
351 significant.
352
148e4216
JM
3532009-03-29 Joseph Myers <joseph@codesourcery.com>
354
355 PR preprocessor/34695
356 * cpp.c (cb_cpp_error): New.
357 (gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings.
358 Don't check cpp_errors (cpp_in).
359 (gfc_cpp_init_0): Set cb->error.
360
6bb62671
SK
3612009-03-29 Steven G. Kargl <kargl@gcc.gnu.org>
362
363 PR fortran/38823
364 * gfortran.h: Add ARITH_PROHIBIT to arith enum.
365 expr.c (gfc_match_init_expr): Add global variable init_flag to
366 flag matching an initialization expression.
367 (check_intrinsic_op): Move no longer reachable error message to ...
368 * arith.c (arith_power): ... here. Remove gfc_ prefix in
369 gfc_arith_power. Use init_flag. Allow constant folding of x**y
370 when y is REAL or COMPLEX.
371 (eval_intrinsic): Remove restriction that y in x**y must be INTEGER
372 for constant folding.
373 * gfc_power: Update gfc_arith_power to arith_power
374
b0e5fa94
DK
3752009-03-29 Daniel Kraft <d@domob.eu>
376
377 PR fortran/37423
378 * gfortran.h (struct gfc_typebound_proc): Added new flag `deferred' and
379 added a comment explaining DEFERRED binding handling.
380 * decl.c (match_binding_attributes): Really match DEFERRED attribute.
381 (match_procedure_in_type): Really match PROCEDURE(interface) syntax
382 and do some validity checks for DEFERRED and this construct.
383 * module.c (binding_overriding): New string constant for DEFERRED.
384 (mio_typebound_proc): Module-IO DEFERRED flag.
385 * resolve.c (check_typebound_override): Ensure that a non-DEFERRED
386 binding is not overridden by a DEFERRED one.
387 (resolve_typebound_procedure): Allow abstract interfaces as targets
388 for DEFERRED bindings.
389 (ensure_not_abstract_walker), (ensure_not_abstract): New methods.
390 (resolve_fl_derived): Use new `ensure_not_abstract' method for
391 non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED
392 binding is overridden.
393 (check_typebound_baseobject): New method.
394 (resolve_compcall), (resolve_typebound_call): Check base-object of
395 the type-bound procedure call.
396 * gfc-internals.texi (Type-bound procedures): Document a little bit
397 about internal handling of DEFERRED bindings.
398
ad41bd84 399