]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/fortran/ChangeLog
c-decl.c (c_init_decl_processing): Adjust build_common_tree_nodes call.
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
1 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2
3 * fortran/f95-lang.c (gfc_init_decl_processing): Adjust
4 build_common_tree_nodes call.
5
6 2004-08-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
7
8 * trans-types.c: Spelling and formatting fixes.
9
10 2004-08-23 Richard Henderson <rth@redhat.com>
11
12 * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
13 of going through an intermediate string. Fix 32/64 int/long bug.
14
15 2004-08-23 Eric Christopher <echristo@redhat.com>
16
17 * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
18 usage. Use build_vector_type_for_mode for vector types.
19
20 2004-08-22 Richard Henderson <rth@redhat.com>
21
22 PR 13465
23 * data.c (find_con_by_offset): Search ordered list; handle
24 elements with repeat counts.
25 (gfc_assign_data_value_range): New.
26 * gfortran.h (struct gfc_data_value): Make repeat unsigned.
27 (gfc_assign_data_value_range): Declare.
28 * match.c (top_val_list): Extract repeat count into a temporary.
29 * resolve.c (values): Make left unsigned.
30 (next_data_value): Don't decrement left.
31 (check_data_variable): Use gfc_assign_data_value_range.
32
33 2004-08-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
34
35 * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
36
37 2004-08-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
38
39 * check.c (gfc_check_reduction): Rename to ...
40 (check_reduction): ... this. Make static. Don't check type of
41 first argument.
42 (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
43 * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
44 SUM to use new check functions.
45 (check_specific): Change logic to call new functions.
46 * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
47 Add prototypes.
48 (gfc_check_reduction): Remove prototype.
49
50 2004-08-20 Paul Brook <paul@codesourcery.com>
51 Canqun Yang <canqun@nudt.edu.cn>
52
53 PR fortran/17077
54 * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
55 for automatic arrays.
56 * trans-types.c (gfc_get_nodesc_array_type): Add comment.
57
58 2004-08-19 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
59 (Port from g95)
60
61 PR fortran/17074
62 * match.c (match_simple_forall, match_simple_where): Forward-declare.
63 (gfc_match_if): Order statement list alphabetically, add WHERE and
64 FORALL, remove double PAUSE.
65 (gfc_match_simple_where, match_forall_header,
66 gfc_match_simple_forall): New functions.
67 (gfc_match_forall): Use match_forall_header.
68
69 2004-08-19 Paul Brook <paul@codesourcery.com>
70
71 PR fortran/17091
72 * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
73 * symbol.c (gfc_clear_attr): Use memset.
74
75 2004-08-19 Paul Brook <paul@codesourcery.com>
76
77 PR fortran/14976
78 PR fortran/16228
79 * data.c (assign_substring_data_value): Remove.
80 (create_character_intializer): New function.
81 (gfc_assign_data_value): Track the typespec for the current
82 subobject. Use create_character_intializer.
83
84 2004-08-19 Erik Schnetter <schnetter@aei.mpg.de>
85
86 PR fortran/16946
87 * check.c (gfc_check_reduction): New function.
88 (gfc_check_minval_maxval): Removed.
89 (gfc_check_product): Removed.
90 (gfc_check_sum): Removed.
91 * intrinsic.h: Add/remove declarations for these.
92 * gfortran.h: Add field f3red to union gfc_check_f.
93 * intrinsic.c (add_sym_3red): New function.
94 (add_functions): Register maxval, minval, product, and sum intrinsics
95 through add_sym_3red.
96 (check_specific): Handle f3red union field.
97 * iresolve.c: Whitespace change.
98
99 2004-08-18 Paul Brook <paul@codesourcery.com>
100
101 * trans-types.c (gfc_sym_type): Use pointer types for optional args.
102
103 2004-08-18 Victor Leikehman <lei@il.ibm.com>
104
105 PR fortran/13278
106 * trans-io.c (transfer_namelist_element): New. Recursively handle
107 derived-type variables. Pass string lengths.
108 (build_dt): Code moved to build_namelist, with some
109 changes and additions.
110 (gfc_build_io_library_fndecls): Declare the fifth
111 argument in st_set_nml_var_char -- string_length.
112
113 2004-08-17 Paul Brook <paul@codesourcery.com>
114 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
115
116 PR fortran/13082
117 * decl.c (get_proc_name): Update mystery comment.
118 (gfc_match_entry): Check for errors earlier. Add entry point to list.
119 * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
120 * gfortran.h (symbol_attribute): Add entry_master. Document entry.
121 (struct gfc_entry_list): Define.
122 (gfc_get_entry_list): Define.
123 (struct gfc_namespace): Add refs and entries.
124 (enum gfc_exec_op): Add EXEC_ENTRY.
125 (struct gfc_code): Add ext.entry.
126 * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
127 (mio_symbol_attribute): Don't save/reture addr->entry.
128 (mio_namespace_ref): Refcount namespaces.
129 * parse.c (accept_statement): Handle ST_ENTRY.
130 (gfc_fixup_sibling_symbols): Mark symbol as referenced.
131 (parse_contained): Fixup sibling references to entry points
132 after parsing the procedure body.
133 * resolve.c (resolve_contained_fntype): New function.
134 (merge_argument_lists, resolve_entries): New functions.
135 (resolve_contained_functions): Use them.
136 (resolve_code): Handle EXEC_ENTRY.
137 (gfc_resolve): Call resolve_entries.
138 * st.c (gfc_free_statement): Handle EXEC_ENTRY.
139 * symbol.c (gfc_get_namespace): Refcount namespaces.
140 (gfc_free_namespace): Ditto.
141 * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
142 optional when multiple entry points are present.
143 * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
144 (gfc_get_extern_function_decl): Add assertion. Fix coment.
145 (create_function_arglist, trans_function_start, build_entry_thunks):
146 New functions.
147 (gfc_build_function_decl): Rename ...
148 (build_function_decl): ... to this.
149 (gfc_create_function_decl): New function.
150 (gfc_generate_contained_functions): Use it.
151 (gfc_trans_entry_master_switch): New function.
152 (gfc_generate_function_code): Use new functions.
153 * trans-stmt.c (gfc_trans_entry): New function.
154 * trans-stmt.h (gfc_trans_entry): Add prototype.
155 * trans-types.c (gfc_get_function_type): Add entry point argument.
156 * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
157 (gfc_generate_module_code): Call gfc_create_function_decl.
158 * trans.h (gfc_build_function_decl): Remove.
159 (gfc_create_function_decl): Add prototype.
160
161 2004-08-15 Andrew Pinski <apinski@apple.com>
162
163 PR fortran/17030
164 * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
165 for cabs{,f} and copysign{,f}.
166 * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
167 (gfor_fndecl_math_cabs): Delete.
168 (gfor_fndecl_math_sign4): Delete.
169 (gfor_fndecl_math_sign8): Delete.
170 (gfc_build_intrinsic_function_decls): Remove the
171 initializing of cabs{,f} and copysign{,f} functions.
172 * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
173 instead of the functions definitions.
174 (gfc_conv_intrinsic_sign): Likewise.
175 * trans.h (gfor_fndecl_math_cabsf): Delete.
176 (gfor_fndecl_math_cabs): Delete.
177 (gfor_fndecl_math_sign4): Delete.
178 (gfor_fndecl_math_sign8): Delete.
179
180 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
181
182 * trans-array.c (gfc_trans_array_constructor_value): Use
183 build_int_cst.
184 * trans-const.c (gfc_build_string_const,
185 gfc_init_constants, gfc_conv_mpz_to_tree,
186 gfc_conv_constant_to_tree): Likewise.
187 * trans-decl.c (gfc_get_symbol_decl): Likewise.
188 * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
189 gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
190 * trans-io.c (add_case, set_error_locus, build_dt,
191 transfer_expr): Likewise.
192 * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
193 gfc_trans_stop, gfc_trans_character_select): Likewise.
194 * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
195 * trans.c (gfc_trans_runtime_check): Likewise.
196
197 2004-08-14 Paul Brook <paul@codesourcery.com>
198
199 * trans-decl.c (gfc_build_function_decl): Remove dead code.
200
201 2004-08-14 Paul Brook <paul@codesourcery.com>
202
203 * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
204
205 2004-08-13 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
206
207 * gfortran.h: Add comments.
208 * parse.c (parse_contained): Fix comment typo.
209 * resolve.c (was_declared): Ditto.
210 * symbol.c: Ditto.
211
212 2004-08-11 Paul Brook <paul@codeourcery.com>
213
214 PR fortran/16917
215 * intrinsic.c (add_functions): Add dfloat as an alias for dble.
216
217 2004-08-10 Richard Henderson <rth@redhat.com>
218
219 * f95-lang.c (gfc_init_builtin_functions): Remove
220 __builtin_stack_alloc, add __builtin_alloca.
221 * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
222 * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
223
224 2004-08-10 Paul Brook <paul@codesourcery.com>
225
226 * trans-io.c (transfer_expr): Handle pointters.
227
228 2004-08-10 Paul Brook <paul@codesourcery.com>
229
230 PR fortran/16919
231 * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
232 (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
233 (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
234 Handle GFC_SS_COMPONENT.
235 (gfc_conv_ss_startstride): Ditto. Set ss->shape.
236 (gfc_conv_loop_setup): Tweak commends. Remove dead code.
237 Use ss->shape.
238 (gfc_conv_array_initializer): Call specific initializer routines.
239 * trans-expr.c (gfc_trans_structure_assign): New function.
240 (gfc_trans_subarray_assign): New function.
241 (gfc_trans_subcomponent_assign): New fucntion
242 (gfc_conv_structure): Use them.
243 * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
244 (gfc_ss): Add shape.
245
246 2004-08-08 Victor Leikehman <lei@il.ibm.com>
247
248 * simplify.c (gfc_simplify_shape): Bugfix.
249 * expr.c (gfc_copy_shape_excluding): New function.
250 * gfortran.h (gfc_get_shape): Bugfix.
251 (gfc_copy_shape_excluding): Added declaration.
252 * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
253 gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
254 gfc_resolve_ubound, gfc_resolve_transpose): Added compile
255 time resolution of shape.
256
257 2004-08-06 Janne Blomqvist <jblomqvi@cc.hut.fi>
258
259 * intrinsic.c (add_subroutines): Add getenv and
260 get_environment_variable. (add_sym_5s): New function.
261 * intrinsic.h (gfc_resolve_get_environment_variable): Add
262 prototype.
263 * iresolve.c (gfc_resolve_get_environment_variable): New
264 function.
265
266 2004-08-06 Feng Wang <fengwang@nudt.edu.cn>
267
268 * f95-lang.c (gfc_init_builtin_functions): Fix the number of
269 __builtin_pow[f] arguments.
270
271 2004-08-06 Steven G. Kargl <kargls@comcast.net>
272
273 * arith.c: Add #define for model numbers. Remove global GMP variables.
274 (natural_logarithm,common_logarithm,exponential,sine,
275 cosine,arctangent,hypercos,hypersine ): Remove.
276 (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
277 (arctangent2,gfc_arith_init_1,gfc_arith_done_1
278 gfc_check_real_range, gfc_constant_result, gfc_range_check,
279 gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
280 gfc_arith_divide,complex_reciprocal,complex_pow_ui,
281 gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
282 gfc_convert_complex,gfc_int2real,gfc_int2complex,
283 gfc_real2int,gfc_real2real,gfc_real2complex,
284 gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
285 to MPFR, use new functions.
286 * arith.h: Remove extern global variables.
287 (natural_logarithm,common_logarithm,exponential, sine, cosine,
288 arctangent,hypercos,hypersine): Remove prototypes.
289 (arctangent2): Update prototype from GMP to MPFR.
290 (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
291 * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
292 * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
293 * gfortran.h (GFC_REAL_BITS): Remove.
294 (arith): Add ARITH_NAN.
295 Include mpfr.h. Define GFC_RND_MODE.
296 Rename GCC_GFORTRAN_H GFC_GFC_H.
297 (gfc_expr): Convert GMP to MPFR.
298 * module.c: Add arith.h, correct type in comment.
299 (mio_gmp_real): Convert GMP to MPFR.
300 (mio_expr): Use gfc_set_model_kind().
301 * primary.c: Update copyright date with 2004.
302 (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
303 * simplify.c: Remove global GMP variables
304 (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
305 gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
306 gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
307 gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
308 gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
309 gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
310 gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
311 gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
312 gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
313 gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
314 gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
315 gfc_simplify_rrspacing,gfc_simplify_scale,
316 gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
317 gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
318 gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
319 gfc_simplify_init_1,gfc_simplify_done_1): Convert GMP to MPFR.
320 Use new functions.
321 * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
322 gfc_conv_mpf_to_tree. Convert it to use MPFR
323 (gfc_conv_constant_to_tree): Use it.
324 * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
325 * trans-intrinsic.c: Add arith.h, remove gmp.h
326 (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
327
328 2004-08-06 Victor Leikehman <lei@il.ibm.com>
329 Paul Brook <paul@codesourcery.com>
330
331 * trans-array.c (gfc_trans_allocate_array_storage,
332 gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
333 gfc_conv_loop_setup): For functions, if the shape of the result
334 is not known in compile-time, generate an empty array descriptor for
335 the result and let the callee to allocate the memory.
336 (gfc_trans_dummy_array_bias): Do nothing for pointers.
337 (gfc_conv_expr_descriptor): Use function return values directly.
338 * trans-expr.c (gfc_conv_function_call): Always add byref call
339 insn to pre chain.
340 (gfc_trans_pointer_assignment): Add comments.
341 (gfc_trans_arrayfunc_assign): Don't chain on expression.
342
343 2004-08-01 Roger Sayle <roger@eyesopen.com>
344
345 * options.c (gfc_init_options): Don't warn about the use GNU
346 extensions by default.
347 (gfc_post_options): Warn about GNU extensions with -pedantic.
348 (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
349
350 2004-07-30 Richard Henderson <rth@redhat.com>
351
352 * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
353 for TREE_CONSTANTs.
354
355 2004-07-25 Richard Henderson <rth@redhat.com>
356
357 * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
358 and DECL_IGNORED_P on RESULT_DECL.
359 (gfc_generate_constructors): Likewise.
360
361 2004-07-18 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
362
363 PR fortran/16465
364 * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
365 options.
366 (ffixed-line-length-80, ffixed-line-length-132): Remove.
367 * options.c (gfc_handle_options): Deal with changed options.
368 * scanner.c (load_line): Change second arg to 'char **',
369 allocate if pointing to NULL. Keep track of buffer's length.
370 Adapt buffer size to overlong lines. Pad lines to full length
371 in fixed form.
372 (load_file): Adapt to new interface of load_line.
373
374 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
375
376 * trans.h (builtin_function): Declare.
377
378 2004-07-16 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
379
380 PR fortran/16404
381 (parts ported from g95)
382 * parse.h (gfc_state_data): New field do_variable.
383 (gfc_check_do_variable): Add prototype.
384 * parse.c (push_state): Initialize field 'do_variable'.
385 (gfc_check_do_variable): New function.
386 (parse_do_block): Remember do iterator variable.
387 (parse_file): Initialize field 'do_variable'.
388 * match.c (gfc_match_assignment, gfc_match_do,
389 gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
390 Add previously missing checks.
391 (gfc_match_return): Reformat error message.
392 * io.c (match_out_tag): New function.
393 (match_open_element, match_close_element,
394 match_file_element, match_dt_element): Call match_out_tag
395 instead of match_vtag where appropriate.
396 (match_io_iterator, match_io_element): Add missing check.
397 (match_io): Reformat error message.
398 (match_inquire_element): Call match_out_tag where appropriate.
399
400 * parse.c (gfc_check_do_variable): Fix error locus.
401
402 2004-07-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
403
404 PR fortran/15129
405 * trans-decl.c (gfc_build_function_decl): Create a new chardecl
406 for every assumed length character dummy argument.
407
408 PR fortran/15140
409 * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
410
411 PR fortran/13792
412 * simplify.c (gfc_simplify_bound): Copy the bound expression.
413
414 2004-07-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
415
416 PR fortran/15324
417 * trans-array.c gfc_trans_g77_array,
418 gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
419 for assumed length characters.
420 (gfc_conv_expr_descriptor): Set se->string_length if dealing
421 with a character expression.
422 (gfc_cvonv_array_parameter): Pass string length when passing
423 character array according to g77 conventions.
424
425 2004-07-12 Paul Brook <paul@codesourcery.com>
426
427 * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
428 * trans-array.c (gfc_trans_auto_array_allocation): Remove
429 initialization code.
430 * trans-common.c (create_common): Use gfc_conv_initializer.
431 * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
432 * trans-expr.c (gfc_conv_initializer): New function.
433 (gfc_conv_structure): Use it.
434 * trans.h (gfc_conv_initializer): Add prototype.
435
436 2004-07-11 Paul Brook <paul@codesourcery.com>
437
438 PR fortran/15986
439 * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
440 variables.
441 (parse_contained): Mark contained symbols as referenced.
442
443 2004-07-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
444
445 PR fortran/16455
446 * module.c (gfc_dump_module, gfc_use_module): Print locus
447 when opening of module file fails.
448
449 PR fortran/16404
450 * io.c (match_io): Flag 'WRITE(...), ...' as extension.
451
452 PR fortran/16404
453 * match.c (gfc_match_program): A program name is obligatory.
454 (gfc_match_return): RETURN in main program is an extension.
455 (gfc_match_block_data): A space is required before a block data
456 name.
457
458 PR fortran/16433
459 * primary.c (match_boz_constant): Call gfc_notify_std only if
460 we actually have a non-standard boz-literal-constant.
461
462 PR fortran/15754
463 * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
464 warning if assigning NULL().
465
466 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
467
468 * f95-lang.c (set_block): Remove.
469 (gfc_clear_binding_stack): New.
470 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
471 (struct binding_level): Remove block_created_by_back_end.
472 (clear_binding_level): Likewise.
473 (poplevel): Don't handle block_created_by_back_end.
474
475 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
476
477 * trans-decl.c (gfc_create_module_variable): Nothing to do if
478 symbol is in common, because we ...
479 (gfc_generate_module_vars): Call gfc_trans_common.
480
481 2004-07-10 Paul Brook <paul@codesourcery.com>
482
483 * trans-array.c (gfc_build_null_descriptor): New function.
484 (gfc_trans_static_array_pointer): Use it.
485 * trans-array.h (gfc_build_null_descriptor): Add prototype.
486 * trans-expr.c (gfc_conv_structure): Handle array pointers.
487
488 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
489
490 PR fortran/16336
491 * decl.c (gfc_match_save): Use-associated common block
492 doesn't collide.
493 * gfortran.h (gfc_common_head): Add new field 'name'.
494 Fix typo in comment after #endif.
495 * match.c (gfc_get_common): Add new argument from_common,
496 mangle name if flag is set, fill in new field in structure
497 gfc_common_head.
498 (match_common): Set new arg in call to gfc_get_common,
499 use-associated common block doesn't collide.
500 * match.h (gfc_get_common): Adapt prototype.
501 * module.c (load_commons): Set new arg in call to
502 gfc_get_common.
503 * symbol.c (free_common_tree): New function.
504 (gfc_free_namespace): Call new function.
505 * trans-common.c (several functions): Remove argument
506 'name', use name from gfc_common_head instead.
507
508 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
509
510 * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
511 and RHS match. Return early if the RHS is NULL().
512
513 PR fortran/16336
514 * match.c (match_common): Fix error reporting for used common.
515
516 PR fortran/15969
517 * trans-expr.c (gfc_conv_structure): Handle initialization
518 of scalar pointer components.
519
520 * parse.c (decode_statement): Fix matching of BLOCK DATA.
521
522 * trans-decl.c (generate_local_decl): Remove workaround obsoleted
523 by fix for PR 15481.
524
525 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
526
527 * trans-common.c: Fix whitespace issues, make variable names
528 more readable.
529 (create_common): Additionally, make loop logic more obvious.
530
531 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
532 Paul Brook <paul@codesourcery.com>
533
534 PR fortran/13415
535 * trans-common.c (calculate_length): Remove ...
536 (get_segment_info): Merge into here. Save field type.
537 (build_field): Use saved type.
538 (create_common, new_condition, new_segment, finish_equivalences):
539 Use new get_segment_info.
540 * trans-types.c: Update comment.
541
542 2004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
543
544 PR fortran/14077
545 * moduele.c (mio_symbol): Don't I/O initial values unless
546 symbol is a parameter.
547
548 2004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
549
550 PR fortran/13201
551 * resolve.c (resolve_symbol): Verify that the shape of a
552 parameter array is not only explicit, but also constant.
553 * array.c (gfc_is_compile_time_shape): New function.
554 * gfortran.h (gfc_is_compile_time_shape): Add prototype.
555
556 2004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
557
558 PR fortran/15481
559 PR fortran/13372
560 PR fortran/13575
561 PR fortran/15978
562 * module.c (write_symbol, write_symtree): Remove workaround.
563 * primary.c (match_actual_arglist): Enhance comment.
564 (gfc_match_rvalue): Handle function call with first argument
565 a keyword argument correctly.
566 * resolve.c (resolve_symbol): Change call to
567 gfc_set_default_type to issue error if no implicit type
568 can be found.
569 * trans-decl.c (gfc_create_module_variable): Remove workaround.
570
571 2004-07-08 Paul Brook <paul@codesourcery.com>
572
573 * intrinsic.c (add_sym_4s): New function.
574 (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
575
576 2004-07-04 Janne Blomqvist <jblomqvi@cc.hut.fi>
577 Paul Brook <paul@codesourcery.com>
578
579 PR fortran/15280
580 PR fortran/15665
581 * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
582 GFC_ISYM_COMMAND_ARGUMENT_COUNT.
583 * intrinsic.c (add_functions): Identify iargc. Add
584 command_argument_count.
585 (add_subroutines): Resolve getarg. Add get_command and
586 get_command_argument.
587 * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
588 gfc_resolve_get_command_argument): Add prototypes.
589 * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
590 gfc_resolve_get_command_argument): New functions.
591 * trans-decl.c (gfor_fndecl_iargc): New variable.
592 (gfc_build_intrinsic_function_decls): Set it.
593 * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
594 (gfc_conv_intrinsic_function): Use it.
595 * trans.h (gfor_fndecl_iargc): Declare.
596
597 2004-07-04 Matthias Klose <doko@debian.org>
598
599 * Make-lang.in: Generate and install gfortran man page.
600 * invoke.texi: Remove extra '@c man end'.
601
602 2004-07-04 Richard Henderson <rth@redhat.com>
603
604 * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
605
606 2004-07-04 Paul Brook <paul@codesourcery.com>
607
608 * decl.c (gfc_match_implicit_range): Don't use typespec.
609 (gfc_match_implicit): Handle character selectors.
610 * gfortran.h (gfc_set_implicit): Remove prototype.
611 (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
612 * parse.c (accept_statement): Don't call gfc_set_implicit.
613 * symbol.c (new_ts): Remove.
614 (gfc_set_implicit_none): Use same loop bounds as other functions.
615 (gfc_set_implicit): Remove.
616 (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
617 (gfc_merge_new_implicit): Combine with gfc_set_implicit.
618
619 2004-06-30 Richard Henderson <rth@redhat.com>
620
621 * match.c (var_element): Remove unused variable.
622
623 * trans-decl.c (gfc_generate_function_code): Don't set
624 x_whole_function_mode_p.
625 (gfc_generate_constructors): Likewise.
626
627 2004-06-30 Richard Henderson <rth@redhat.com>
628
629 * trans-decl.c (gfc_generate_function_code): Don't set
630 immediate_size_expand.
631 (gfc_generate_constructors): Likewise.
632
633 2004-06-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
634
635 PR fortran/16161
636 * decl.c (gfc_match_type_spec): Rename second argument to
637 'implicit_flag', reverse meaning. Don't match_char_spec if
638 'implicit_flag' is set. Rename to ...
639 (match_type_spec): ... this.
640 (gfc_match_implicit_none, match_implicit_range): Move here
641 from match.c.
642 (gfc_match_implicit): Move here from match.c, try to
643 match_char_len if match_implicit_range doesn't succeed for
644 CHARACTER implicits. Call renamed fucntion match_type_spec.
645 (gfc_match_data_decl, match_prefix): Call renamed function
646 match_type_spec.
647 * match.c (gfc_match_implicit_none, match_implicit_range,
648 gfc_match_implicit): Move to decl.c.
649 * match.h (gfc_match_implicit_none, gfc_match_implicit):
650 Move protoypes to section 'decl.c'.
651 (gfc_match_type_spec): Remove prototype.
652
653 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
654
655 * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
656 copyright years.
657
658 2004-06-29 Steven Bosscher <stevenb@suse.de>
659
660 Make sure types in assignments are compatible. Mostly mechanical.
661 * trans-const.h (gfc_index_one_node): New define.
662 * trans-array.c (gfc_trans_allocate_array_storage,
663 gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
664 gfc_trans_array_constructor_value, gfc_trans_array_constructor,
665 gfc_conv_array_ubound, gfc_conv_array_ref,
666 gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
667 gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
668 gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
669 gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
670 types in assignments, conversions and conditionals for expressions.
671 * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
672 gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
673 gfc_conv_function_call, gfc_trans_pointer_assignment,
674 gfc_trans_scalar_assign): Likewise.
675 * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
676 gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
677 gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
678 gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
679 gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
680 gfc_conv_allocated, gfc_conv_associated,
681 gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
682 * trans-io.c (set_string): Likewise.
683 * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
684 gfc_do_allocate, generate_loop_for_temp_to_lhs,
685 generate_loop_for_rhs_to_temp, compute_inner_temp_size,
686 compute_overall_iter_number, gfc_trans_assign_need_temp,
687 gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
688 gfc_evaluate_where_mask, gfc_trans_where_assign,
689 gfc_trans_where_2): Likewise.
690 * trans-types.c (gfc_get_character_type, gfc_build_array_type,
691 gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
692
693 * trans.c (gfc_add_modify_expr): Add sanity check that types
694 for the lhs and rhs are the same for scalar assignments.
695
696 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
697
698 * dump-parse-tree.c (show_common): New function.
699 (gfc_show_namespace): Show commons.
700
701 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
702 Andrew Vaught <andyv@firstinter.net>
703
704 PR fortran/13249
705 PR fortran/15481
706 * decl.c (gfc_match_save): Adapt to new common structures,
707 don't allow saving USE-associated common.
708 * dump-parse-tree (gfc_show_attr): (saved_)common are not
709 symbol attributes any longer.
710 (gfc_show_symbol): Don't show old-style commons any longer.
711 (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
712 interface.
713 * gfortran.h (symbol_attribute): Remove common and saved_common
714 attributes.
715 (gfc_symbol): Remove common_head element.
716 (gfc_common_head): New struct.
717 (gfc_get_common_head): New macro.
718 (gfc_symtree): Add field 'common' to union.
719 (gfc_namespace): Add field 'common_root'; change type of field
720 'blank_common' to blank_common.
721 (gfc_add_data): New prototype.
722 (gfc_traverse_symtree): Expect a symtree as first argument
723 instead of namespace.
724 * match.c (gfc_get_common): New function.
725 (match_common_name): Change to take char * as argument, adapt,
726 fix bug with empty name.
727 (gfc_match_common): Adapt to new data structures. Disallow
728 redeclaration of USE-associated COMMON-block. Fix bug with
729 empty common.
730 (var_element): Adapt to new common structures.
731 * match.h (gfc_get_common): Declare.
732 * module.c: Add 2004 to copyright years, add commons to module
733 file layout description.
734 (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
735 for removed attributes.
736 (mio_symbol): Adapt to new way of storing common relations.
737 (load_commons): New function.
738 (read_module): Skip common list on first pass, load_commons at
739 second.
740 (write_commons): New function.
741 (write_module): Call write_commons().
742 * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
743 functions related to removed attributes.
744 (gfc_add_data): New function.
745 (gfc_clear_attr): Don't set removed attributes.
746 (gfc_copy_attr): Don't copy removed attributes.
747 (traverse_symtree): Remove.
748 (gfc_traverse_symtree): Don't traverse symbol
749 tree of the passed namespace, but require a symtree to be passed
750 instead. Unify with traverse_symtree.
751 (gfc_traverse_ns): Call gfc_traverse_symtree according to new
752 interface.
753 (save_symbol): Remove setting of removed attribute.
754 * trans-common.c (gfc_sym_mangled_common_id): Change to
755 take 'char *' argument instead of 'gfc_symbol'.
756 (build_common_decl, new_segment, translate_common): Adapt to new
757 data structures, add new
758 argument name.
759 (create_common): Adapt to new data structures, add new
760 argument name. Fix typo in intialization of derived types.
761 (finish_equivalences): Add second argument in call to
762 create_common.
763 (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
764 (gfc_trans_common): Adapt to new data structures.
765 * trans-decl.c (gfc_create_module_variables): Remove test for
766 removed attribute.
767
768 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
769
770 * io.c: Add 2004 to copyright years.
771
772 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
773 Andrew Vaught <andyv@firstinter.net>
774
775 * gfortran.h (gfc_gsymbol): New typedef.
776 (gfc_gsym_root): New variable.
777 (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
778 * parse.c (global_used): New function.
779 (parse_block_data): Check for double empty BLOCK DATA,
780 use global symbol table.
781 (parse_module): Use global symbol table.
782 (add_global_procedure, add_global_program): New functions.
783 (gfc_parse_file): Use global symbol table.
784 * symbol.c (gfc_gsym_root): New variable.
785 (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
786 functions.
787
788 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
789
790 * module.c (mio_gmp_real): Correct writing of negative numbers.
791
792 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
793
794 PR fortran/15963
795 * expr.c (check_intrinsic_op): Allow comparison of characters.
796 Make logic easier.
797
798 2004-06-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
799 Andrew Vaught <andyv@firstinter.net>
800
801 * decl.c (contained_procedure): New function.
802 (match_end): Verify correctness of END STATEMENT in
803 all cases.
804
805 2004-06-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
806 Andrew Vaught <andyv@firstinter.net>
807
808 PR fortran/15190
809 * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
810 (decode_statement): Enforce required space in free-form.
811
812 2004-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
813
814 * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
815 * trans-array.c (gfc_conv_descriptor_data): Add operand
816 for COMPONENT_REF.
817 (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
818 (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
819 (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
820 * trans-common.c (create_common): Likewise.
821 * trans-expr.c (gfc_conv_component_ref): Likewise.
822 * trans-io.c (set_parameter_value): Likewise.
823 (set_parameter_ref, set_string, set_flag, io_result): Likewise.
824 (transfer_expr): Likewise.
825 * trans-decl.c (gfc_trans_auto_character_variable):
826 Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
827 (gfc_gimplify_function): New function.
828 (gfc_generate_function-code): Properly handle nested functions.
829 * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
830
831 2004-06-22 Janne Blomqvist <jblomqvi@cc.hut.fi>
832
833 PR fortran/15750
834 * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
835 (gfc_resolve_inquire): Resolve the iolength tag. Return
836 SUCCESS at end of function if no failure has occured.
837 * resolve.c (resolve_code): Resolve if iolength is encountered.
838 * trans-io.c: (ioparm_iolength, iocall_iolength,
839 iocall_iolength_done): New variables.
840 (last_dt): Add IOLENGTH.
841 (gfc_build_io_library_fndecls ): Set iolength related variables.
842 (gfc_trans_iolength): Implement.
843 (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
844
845 2004-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de
846
847 PR fortran/15511
848 * scanner.c (load_line): Don't truncate preprocessor lines.
849 Reformat error message.
850 (preprocessor_line): Issue warning in case of malformed
851 preprocessor line.
852
853 2004-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
854
855 * resolve.c (resolve_symbol): Add comment in function body.
856 (check_data_variable): Change type of mark to ar_type, adapt code
857 accordingly.
858
859 2004-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
860
861 * array.c (gfc_insert_constructor): Avoid redundant call to
862 mpz_comp. Add 2004 to copyright years.
863
864 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
865
866 * trans.h (stmtblock_t): Change has_scope to unsigned int.
867
868 2004-06-20 Steven G. Kargl <kargls@comcast.net>
869
870 * arith.c (gfc_range_check): correct complex underflow.
871
872 2004-06-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
873
874 PR fortran/15962
875 * match.c (match_case_selector): Call gfc_match_init_expr
876 instead of gfc_match_expr.
877 * resolve.c (validate_case_label_expr): No need to check for
878 constant, since it wouldn't have been matched with the fix to
879 match.c.
880
881 2004-06-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
882
883 PR fortran/15211
884 * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
885 of strings.
886
887 2004-06-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
888
889 PR fortran/15510
890 * trans-deecl.c (generate_local_decl): Do not issue warning for
891 unused variables if they're use associated.
892
893 2004-06-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
894 Andrew Vaught <andyv@firstinter.net>
895
896 PR fortran/14928
897 * gfortran.h (gfc_check_f): Add new field f3ml.
898 * check.c (gfc_check_minloc_maxloc): Take argument list instead
899 of individual arguments, reorder if necessary.
900 * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
901 * intrinsic.c (add_sym_3ml): New function.
902 (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
903 (check_specific): Catch special case MINLOC, MAXLOC.
904
905 2004-06-14 Paul Brook <paul@codesourcery.com>
906
907 * intrinsic.c (add_sym_2s): Use correct function types.
908
909 2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
910
911 * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize. Move data.c
912 * data.c (gfc_get_section_index): Remove dependency on trans.h.
913
914 2004-06-12 Steven G. Kargl <kargls@comcast.net>
915
916 * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
917 gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
918 * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
919 GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
920 * trans-intrinsic.c: Use symbols.
921 * intrinsic.c (add_sym_2s): New function.
922 * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
923 * intrinsic.h: Function prototypes.
924 * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
925 gfc_resolve_srand): New functions.
926
927 2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
928
929 PR fortran/14957
930 * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
931 contained procedure.
932
933 2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
934
935 PR fortran/12841
936 * interface.c (compare_parameter, compare_actual_formal): Don't
937 check types and array shapes for NULL()
938 * trans-expr.c (conv_function_call): No double indirection for
939 NULL()
940
941 2004-06-09 Toon Moene <toon@moene.indiv.nluug.nl>
942
943 * trans-expr.c (gfc_conv_cst_int_power): Compute
944 x**(-n) by converting it to (1/x)**n instead of
945 1/x**n.
946
947 2004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
948
949 PR fortran/13372
950 * module.c (write_symbol, write_symtree): Don't write symbols
951 wrongly added to namespace.
952 * trans-decl.c (gfc_create_module_variable): Don't create a
953 backend decl for a symbol incorrectly added to namespace.
954
955 2004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
956
957 PR fortran/13201
958 * resolve.c (resolve_symbol): Verify that parameter array has an
959 explicit shape. Fix typos and coding style issues in surrounding
960 lines.
961
962 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
963
964 PR fortran/15478
965 * gfortran.texi: The documentation doesn't contain infomration on
966 how to report bugs, and shouldn't, so remove the line which
967 says it does.
968
969 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
970
971 * intrinsic.c (sort_actual): Keep track of type of missing
972 arguments. (Missing from previous commit.)
973
974 2004-06-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
975
976 * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
977 * interface.c (compare_actual_formal): Keep type of omitted
978 optional arguments.
979 * trans-expr.c (gfc_conv_function_call): Add string length
980 argument for omitted string argument.
981
982 2004-06-03 Paul Brook <paul@codesourcery.com>
983
984 * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
985 lists instead of compound expr chains.
986 (gfc_trans_code): Annotate statement lists.
987
988 2004-06-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
989
990 * trans-array.c: Fix spelling in comments.
991
992 2004-06-02 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
993
994 PR fortran/15557
995 * data.c (assign_substring_data_value): New function.
996 (gfc_assign_data_value): Call the new function if we're dealing
997 with a substring LHS.
998
999 2004-06-01 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1000
1001 PR fortran/15477
1002 * gfortran.h (GFC_VERSION): Remove.
1003 * gfortran.texi (version-gfortran): Remove, replace by version-GCC
1004 where used.
1005
1006 2004-05-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1007
1008 * trans-types.c: Fix spelling & layout in comments.
1009
1010 2004-05-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1011
1012 PR fortran/14067
1013 * trans-const.c (gfc_conv_string_init): Allow variable string
1014 length lower than initialization string length.
1015
1016 2004-05-30 Paul Brook <paul@codesourcery.com>
1017
1018 PR fortran/15620
1019 * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
1020 * trans-expr.c (gfc_trans_string_copy): New function.
1021 (gfc_conv_statement_function): Use them. Create temp vars. Enforce
1022 character lengths.
1023 (gfc_conv_string_parameter): Use gfc_trans_string_copy.
1024 * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
1025 * trans.h (struct gfc_saved_var): Define.
1026 (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
1027
1028 2004-05-30 Steven G. Kargl <kargls@comcast.net>
1029
1030 * iresolve.c (gfc_resolve_random_number): Clean up conditional.
1031
1032 2004-05-29 Steven G. Kargl <kargls@comcast.net>
1033
1034 * simplify.c (gfc_simplify_log): Remove useless line of code.
1035
1036 2004-05-29 Paul Brook <paul@codesourcery.com>
1037
1038 * trans-common.c (find_equivalence): Find multiple rules.
1039
1040 2004-05-27 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1041
1042 * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
1043 (gfc_current_locus): Declare new global variable.
1044 * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
1045 (gfc_current_locus1): Rename ...
1046 (gfc_current_locus): ... to this.
1047 (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
1048 skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
1049 gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
1050 gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
1051 and gfc_current_locus(), respectively.
1052 * array.c (match_subscript, gfc_match_array_ref, match_array_list,
1053 match_array_cons_element, gfc_match_array_constructor):
1054 Read/modify gfc_current_locus instead of calling gfc_set_locus()
1055 and gfc_current_locus().
1056 * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
1057 match_attr_spec, gfc_match_function_decl, gfc_match_end,
1058 attr_decl1, gfc_match_save): Likewise.
1059 * error.c (error_print, gfc_internal_error): Likewise.
1060 * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
1061 * interface.c (gfc_add_interface): Likewise.
1062 * io.c (gfc_match_format, match_dt_format, match_dt_element,
1063 match_io_iterator, match_io): Likewise.
1064 * match.c (gfc_match_space, gfc_match_eos,
1065 gfc_match_small_literal_int, gfc_match_st_label,
1066 gfc_match_strings, gfc_match_name, gfc_match_iterator,
1067 gfc_match_char, gfc_match, gfc_match_assignment,
1068 gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
1069 gfc_match_nullify, gfc_match_call, match_implicit_range,
1070 gfc_match_implicit, gfc_match_data, match_case_selector,
1071 gfc_match_case, match_forall_iterator): Likewise.
1072 * matchexp.c (gfc_match_defined_op_name, next_operator,
1073 match_level_1, match_mult_operand, match_ext_mult_operand,
1074 match_add_operand, match_ext_add_operand, match_level_2,
1075 match_level_3, match_level_4, match_and_operand, match_or_operand,
1076 match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
1077 * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
1078 * parse.c (match_word, decode_statement, next_free, next_fixed,
1079 add_statement, verify_st_order, parse_if_block, gfc_parse_file):
1080 Likewise.
1081 * primary.c (match_digits, match_integer_constant,
1082 match_boz_constant, match_real_constant, match_substring,
1083 next_string_char, match_charkind_name, match_string_constant,
1084 match_logical_constant, match_const_complex_part,
1085 match_complex_constant, match_actual_arg, match_keyword_arg,
1086 gfc_match_actual_arglist, gfc_match_structure_constructor,
1087 gfc_match_rvalue, gfc_match_variable): Likewise.
1088 * st.c (gfc_get_code): Likewise.
1089 * symbol.c (check_conflict, check_used, check_done,
1090 duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
1091 gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
1092 gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
1093
1094 2004-05-26 Roger Sayle <roger@eyesopen.com>
1095
1096 * io.c (format_asterisk): Silence compiler warnings by correcting
1097 the number of elements of a "locus" initializer.
1098
1099 2004-05-25 Roger Sayle <roger@eyesopen.com>
1100
1101 PR fortran/13912
1102 * matchexp.c: Allow unary operators after arithmetic operators
1103 as a GNU extension.
1104 (match_ext_mult_operand, match_ext_add_operand): New functions.
1105 (match_mult_operand): Tweak to call match_ext_mult_operand.
1106 (match_add_operand): Tweak to call match_ext_mult_operand.
1107 (match_level_2): Rearrange to call match_ext_add_operand.
1108
1109 2004-05-25 Paul Brook <paul@codesourcery.com>
1110
1111 * expr.c (check_inquiry): Remove bogus tests.
1112
1113 2004-05-23 Paul Brook <paul@codesourcery.com>
1114
1115 PR fortran/13773
1116 * expr.c (restricted_args): Remove redundant checks/argument.
1117 (external_spec_function): Update to match.
1118 (restricted_intrinsic): Rewrite.
1119
1120 2004-05-23 Paul Brook <paul@codesourcery.com>
1121 Victor Leikehman <lei@haifasphere.co.il>
1122
1123 * gfortran.h (struct gfc_symbol): Add equiv_built.
1124 * trans-common.c: Change int to HOST_WIDE_INT. Capitalize error
1125 messages.
1126 (current_length): Remove.
1127 (add_segments): New function.
1128 (build_equiv_decl): Create initialized common blocks.
1129 (build_common_decl): Always add decl to bindings.
1130 (create_common): Create initializers.
1131 (find_segment_info): Reformat to match coding conventions.
1132 (new_condition): Use add_segments.
1133 (add_condition, find_equivalence, add_equivalences): Move iteration
1134 inside functions. Only process each segment once.
1135 (new_segment, finish_equivalences, translate_common): Simplify.
1136
1137 2004-05-23 Steven G. Kargl <kargls@comcast.net>
1138
1139 * check.c (gfc_check_random_seed): Issue for too many arguments.
1140
1141 2004-05-22 Steven G. Kargl <kargls@comcast.net>
1142
1143 * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
1144
1145 2004-05-22 Paul Brook <paul@codesourcery.com>
1146
1147 * dump-parse-tree.c (gfc_show_equiv): New function.
1148 (gfc_show_namespace): Use it.
1149
1150 2004-05-22 Victor Leikehman <lei@haifasphere.co.il>
1151
1152 PR fortran/13249
1153 * symbol.c (gfc_add_common): Disable checks to work around other more
1154 fundamental inadequacies.
1155
1156 2004-05-22 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1157
1158 * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
1159 only for functions.
1160 (gfc_build_function_decl): Likewise.
1161
1162 2004-05-22 Steven G. Kargl <kargls@comcast.net>
1163
1164 * check.c (gfc_check_system_clock): New function.
1165 * intrinsic.c (add_sym_3s): New function.
1166 (add_subroutines): Use it.
1167 * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
1168 Add prototypes.
1169 * iresolve.c (gfc_resolve_system_clock): New function.
1170
1171 2004-05-22 Steven G. Kargl <kargls@comcast.net>
1172
1173 * invoke.texi: Document -Wunderflow and spell check.
1174 * lang.opt: Add Wunderflow.
1175 * gfortran.h (gfc_option_t): Add warn_underflow option.
1176 * options.c (gfc_init_options, set_Wall): Use it.
1177 * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
1178 * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
1179 gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
1180 gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
1181 * arith.c (common_logarithm): Fix typo in comment.
1182
1183 2004-05-21 Roger Sayle <roger@eyesopen.com>
1184
1185 * io.c (check_format): As a GNU extension, allow the comma after a
1186 string literal to be optional in a format. Use gfc_notify_std to
1187 issue an error/warning as appropriate.
1188
1189 2004-05-21 Roger Sayle <roger@eyesopen.com>
1190
1191 * io.c (check_format): Use gfc_notify_std to determine whether to
1192 issue an error/warning for omitting the digits from the X format.
1193
1194 2004-05-20 Roger Sayle <roger@eyesopen.com>
1195
1196 * io.c (check_format): Allow the number before the X format to
1197 be optional when not -pedantic.
1198
1199 2004-05-18 Feng Wang <fengwang@nudt.edu.cn>
1200 Paul Brook <paul@codesourcery.com>
1201
1202 * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
1203 Create decls for __builtin_pow{,f}.
1204 * gfortran.h (PREFIX_LEN): Define.
1205 * trans-decl.c (gfor_fndecl_math_powi): Add.
1206 (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
1207 (gfc_build_intrinsic_function_decls): Create decls for powi.
1208 * trans-expr.c (powi_table): Add.
1209 (gfc_conv_integer_power): Remove.
1210 (gfc_conv_powi): New function.
1211 (gfc_conv_cst_int_power): New function.
1212 (gfc_conv_power_op): Use new powi routines.
1213 * trans.h (struct gfc_powdecl_list): Add.
1214 (gfor_fndecl_math_powi): Add.
1215 (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
1216
1217 2004-05-18 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1218
1219 * trans.c, trans-decl.c: Fix comment typos.
1220
1221 2004-05-18 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1222
1223 * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
1224
1225 2004-05-18 Steve Kargl <kargls@comcast.net>
1226
1227 * arith.c (gfc_int2complex): Fix incorrect range checking.
1228
1229 2004-05-18 Paul Brook <paul@codesourcery.com>
1230
1231 PR fortran/13930
1232 * decl.c (add_init_expr_to_sym): Remove incorrect check.
1233 (default_initializer): Move to expr.c.
1234 (variable_decl): Don't assign default initializer to variables.
1235 * expr.c (gfc_default_initializer): Move to here.
1236 * gfortran.h (gfc_default_initializer): Add prototype.
1237 * resolve.c (resolve_symbol): Check for illegal initializers.
1238 Assign default initializer.
1239
1240 2004-05-17 Steve Kargl <kargls@comcast.net>
1241
1242 * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
1243
1244 2004-05-17 Steve Kargl <kargls@comcast.net>
1245
1246 * arith.c (gfc_real2complex): Range checking wrong part of complex
1247 number.
1248
1249 2004-05-16 Paul Brook <paul@codesourcery.com>
1250
1251 * options.c (gfc_handle_module_path_options): Fix buffer overrun.
1252
1253 2004-05-16 Paul Brook <paul@codesourcery.com>
1254
1255 * arith.c (gfc_range_check): Fix logic error.
1256
1257 2004-05-16 Steve Kargl <sgk@troutmask.apl.washington.edu>
1258
1259 * arith.c: Fix comment typos.
1260
1261 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1262
1263 PR fortran/13742
1264 * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
1265 not initialized in a disallowed fashion.
1266 * match.c (gfc_match_common): Likewise.
1267 (var_element): Verify that variable is not in the blank COMMON,
1268 if it is in a common.
1269
1270 2004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
1271
1272 * Make-lang.in (f95.generated-manpages): Remove.
1273 (f95.srcextra): New.
1274 (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
1275 f95.maintainer-clean): Generate info and dvi files in objdir/doc.
1276 (f95.dvi): Remove.
1277 (dvi): New.
1278 (f95.install-info): Remove.
1279 (install-info): New.
1280
1281 2004-05-15 Victor Leikehman <lei@haifasphere.co.il>
1282
1283 * decl.c (add_init_expr_to_sym): Check for variable size arrays.
1284
1285 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1286
1287 * primary.c (match_boz_constant): Use gfc_notify_std() for
1288 issuing a warning or an error.
1289
1290 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1291
1292 PR fortran/13826
1293 * primary.c (match_structure_constructor): Rename ...
1294 (gfc_match_structure_constructor): ... to this. Make non-static.
1295 (gfc_match_rvalue): Call renamed function.
1296 * match.h (gfc_match_structure_constructor): Declare.
1297 * match.c (gfc_match_data_constant): Handle structure
1298 constructor.
1299
1300 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1301
1302 PR fortran/13702
1303 (Port from g95)
1304 * gfortran.h (gfc_linebuf): New typedef.
1305 (linebuf): Remove.
1306 (gfc_file): Revamped, use new gfc_linebuf.
1307 (locus): Revamped, use new types.
1308 (gfc_current_file): Remove.
1309 (gfc_current_form, gfc_source_file): New global variables.
1310 * match.c (gfc_match_space, gfc_match_strings): Use
1311 gfc_current_form to find source form.
1312 * module.c (gfc_dump_module): Use gfc_source_file when printing
1313 module header.
1314 * error.c (show_locus, show_loci) Use new data structures to print
1315 locus.
1316 * scanner.c (first_file, first_duplicated_file, gfc_current_file):
1317 Remove.
1318 (file_head, current_file, gfc_current_form, line_head, line_tail,
1319 gfc_current_locus1, gfc_source_file): New global variables.
1320 (gfc_scanner_init1): Set new global variables.
1321 (gfc_scanner_done1): Free new data structures.
1322 (gfc_current_locus): Return pointer to gfc_current_locus1.
1323 (gfc_set_locus): Set gfc_current_locus1.
1324 (gfc_at_eof): Set new variables.
1325 (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
1326 to new locus structure.
1327 (gfc_check_include): Remove.
1328 (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
1329 (gfc_skip_comments): Use gfc_current_form, find locus with
1330 gfc_current_locus1.
1331 (gfc_next_char): Use gfc_current_form.
1332 (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
1333 (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
1334 comment formatting.
1335 (get_file): New function.
1336 (preprocessor_line, include_line): New functions.
1337 (load_file): Move down, rewrite to match new data structures.
1338 (gfc_new_file): Rewrite to match new data structures.
1339 * parse.c (next_statement): Remove code which is now useless. Use
1340 gfc_source_form and gfc_source_file where appropriate.
1341 * trans-decl.c (gfc_get_label_decl): adapt to new data structures
1342 when determining locus of frontend code.
1343 * trans-io.c (set_error_locus): Same.
1344 * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
1345 * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
1346 preprocessor flags.
1347 (all): Add missing initializers.
1348
1349 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1350
1351 * Make-lang.in (trans-common.o): Remove redundant dependency.
1352 (data.c): Replace object file name ...
1353 (data.o): ... by the correct one.
1354
1355 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1356
1357 * dump-parse-tree.c (gfc_show_array_ref): Print colon only
1358 for ranges when dumping array references.
1359
1360 2004-05-14 Victor Leikehman <lei@haifasphere.co.il>
1361
1362 * decl.c (variable_decl): Always apply default initializer.
1363
1364 2004-05-08 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1365
1366 PR fortran/15206
1367 * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
1368 handle zero correctly.
1369
1370 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1371
1372 * match.c (gfc_match): Eliminate dead code.
1373
1374 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1375
1376 * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
1377 Detect bad continuation line in fixed form sources.
1378
1379 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1380
1381 PR fortran/15205
1382 * iresolve.c (gfc_resolve_nearest): Add new function.
1383 * intrinsic.h: ... declare it here.
1384 * intrinsic.c (add_functions): ... add it as resolving function
1385 for NEAREST.
1386
1387 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1388
1389 PR fortran/14066
1390 * match.c (gfc_match_do): Allow infinite loops with
1391 label-do-stmt. Do not enforce space after comma.
1392
1393 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1394
1395 PR fortran/15051
1396 * parse.c (parse_interface): Allow empty INTERFACE, remove
1397 seen_body.
1398
1399 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1400
1401 * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
1402 decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
1403 expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
1404 intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
1405 matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
1406 primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
1407 trans-array.c, trans-array.h, trans-common.c, trans-const.c,
1408 trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
1409 trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
1410 trans-types.h, trans.c, trans.h: Update copyright years and
1411 boilerplate.
1412 * data.c: Likewise, also removed two whitespace-only lines.
1413 * gfortranspec.c, lang.opt: Update copyright years.
1414
1415 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1416
1417 PR fortran/14568
1418 * trans-decl.c (generate_local_decl): Don't warn for unused
1419 variables which are in common blocks.
1420
1421 2004-05-13 Diego Novillo <dnovillo@redhat.com>
1422
1423 * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
1424 trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
1425 trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
1426
1427 2004-05-13 Victor Leikehman <lei@haifasphere.co.il>
1428
1429 PR fortran/15314
1430 * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
1431
1432 2004-05-13 Joseph S. Myers <jsm@polyomino.org.uk>
1433
1434 * gfortran.texi: Use @table @emph instead of @itemize @emph.
1435 Remove "set DEVELOPMENT".
1436 (Compiling GFORTRAN): Remove.
1437
1438 2004-05-09 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1439
1440 * array.c (match_subscript, match_array_ref): Add comments
1441 explaining argument 'init'.
1442 * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
1443 trans-expr.c, trans.c: Fix some typos in comments.
1444 * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
1445 * primary.c (match_digits, match_integer_constant): Add comment
1446 explaining signflag.
1447
1448 2004-05-01 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1449
1450 PR fortran/13940
1451 * primary.c: Include system.h and flags.h, needed for pedantic.
1452 (match_boz_constant): Allow "x" for hexadecimal constants, warn if
1453 pedantic is set.
1454
1455 2004-05-01 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1456
1457 PR fortran/13940
1458 * match.c (match_data_constant): Handle case where
1459 gfc_find_symbol sets sym to NULL
1460
1461 2004-04-28 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1462
1463 * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
1464 dependency on mathbuiltins.def
1465
1466 2004-04-24 Victor Leikehman <lei@il.ibm.com>
1467
1468 * trans-io.c (transfer_expr): Implemented recursive printing
1469 of derived types.
1470
1471 2004-04-24 Andrew Pinski <pinskia@physics.uc.edu>
1472
1473 * gfortranspec.c: Do not include multilib.h.
1474
1475 2004-04-24 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1476
1477 * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
1478 2004 to copyright years.
1479 * trans-expr.c, trans-decl.c: Comment update, we now generate
1480 GENERIC, not SIMPLE. Add 2004 to copyright years.
1481
1482 2004-04-24 Paul Brook <paul@codesourcery.com>
1483
1484 * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
1485
1486 2004-04-24 Feng Wang <fengwang@nudt.edu.cn>
1487
1488 PR 14817
1489 * arith.c (gfc_arith_divide): Fix complex divide.
1490
1491 2004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
1492
1493 * gfortranspec.c: Include the target headers.
1494
1495 2004-04-18 Feng Wang <fengwang@nudt.edu.cn>
1496
1497 PR fortran/14921
1498 PR fortran/14540
1499 * arith.c (arctangent2): New function.
1500 * arith.h (arctangent2): Add function prototype.
1501 * simplify.c (gfc_simplify_atan2): Use it.
1502 (gfc_simplify_log): Use it.
1503
1504 2004-04-12 Diego Novillo <dnovillo@redhat.com>
1505
1506 * fortran/f95-lang.c (gfc_expand_stmt): Remove.
1507 (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
1508
1509 2004-04-11 Bud Davis <bdavis9659@comcast.net>
1510
1511 PR fortran/14872
1512 * trans-io.c (build_dt): Change REC to value.
1513
1514 2004-04-11 Feng Wang <fengwang@nudt.edu.cn>
1515
1516 PR 14394
1517 * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
1518 the real value when converting mpf to string.
1519
1520 2004-04-11 Feng Wang <fengwang@nudt.edu.cn>
1521
1522 PR 14395
1523 * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
1524 the result.
1525
1526 2004-04-11 Feng Wang <fengwang@nudt.edu.cn>
1527
1528 PR fortran/14377
1529 * simplify.c (simplify_min_max): Convert the type of the result.
1530
1531 2004-04-11 Paul Brook <paul@codesourcery.com>
1532
1533 * gfortran.texi: Use full target triplet.
1534
1535 2004-04-11 Paul Brook <paul@codesourcery.com>
1536
1537 * Make-lang.in (GFORTRAN_TEXI): Set it.
1538 (fortran/dfortran.dvi): Use it. Add fortran to include paths.
1539 (fortran/gfortran.info): Ditto.
1540 * gfortran.texi: Major update.
1541 * invoke.texi: New file.
1542
1543 2004-04-10 Paul Brook <paul@codesourcery.com>
1544
1545 * trans-array.c (gfc_trans_allocate_temp_array,
1546 gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
1547 * trans-decl.c (gfc_build_dummy_array_decl,
1548 gfc_get_symbol_decl, gfc_build_function_decl,
1549 gfc_create_module_variable): Ditto.
1550 * trans-expr.c (gfc_conv_variable): Ditto.
1551 * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
1552 * trans.h (GFC_DECL_STRING): Remove.
1553 (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
1554 GFC_DECL_ASSIGN): Renumber flags.
1555
1556 2004-04-05 Paul Brook <paul@codesourcery.com>
1557
1558 PR 13252
1559 PR 14081
1560 * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
1561 and stack_restore.
1562 * gfortran.h (struct gfc_charlen): Add backend_decl.
1563 * trans-array.c (gfc_trans_allocate_temp_array,
1564 gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
1565 (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
1566 Remove old, broken string handling.
1567 (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
1568 gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
1569 gfc_trans_deferred_array): Handle character arrays.
1570 * trans-const.c (gfc_conv_const_charlen): New function.
1571 * trans-const.h (gfc_conv_const_charlen): Add prototype.
1572 * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
1573 as static.
1574 (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
1575 (gfc_create_string_length): New function.
1576 (gfc_get_symbol_decl): Create lengths for character variables.
1577 (gfc_get_fake_result_decl): Ditto.
1578 (gfc_build_function_decl): Only set length for assumed length
1579 character arguments.
1580 (gfc_trans_dummy_character): New function.
1581 (gfc_trans_auto_character_variable): Rewrite.
1582 (gfc_trans_deferred_vars): Handle more types of character variable.
1583 (gfc_create_module_variable): String lengths have moved.
1584 (gfc_generate_function_code): Initialize deferred var chain earlier.
1585 * trans-expr.c (gfc_conv_init_string_length): Rename ...
1586 (gfc_trans_init_string_length): ... to this.
1587 (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
1588 gfc_conv_function_call): Update to new format for character variables.
1589 (gfc_conv_string_length): Remove.
1590 (gfc_conv_string_parameter): Update assertion.
1591 * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
1592 * trans-io.c (set_string): Use new macro names.
1593 * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
1594 * trans-types.c (gfc_get_character_type): Use existing length expr.
1595 (gfc_is_nodesc_array): Make public.
1596 (gfc_get_dtype_cst): Rename ...
1597 (gfc_get_dtype): ... to this. Handle unknown size arrays.
1598 (gfc_get_nodesc_array_type): Use new name.
1599 (gfc_sym_type): New character variable code.
1600 (gfc_get_derived_type): Ditto.
1601 (gfc_get_function_type): Evaluate character variable lengths.
1602 * trans-types.h (gfc_strlen_kind): Define.
1603 (gfc_is_nodesc_array): Add prototype.
1604 * trans.h: Update prototypes.
1605 (struct lang_type): Update comments.
1606 (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
1607 (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
1608
1609 2004-04-04 Paul Brook <paul@codesourcery.com>
1610
1611 * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
1612 * options.c (gfc_init.options, gfc_handle_option): Ditto.
1613 * trans-expr.c (gfc_conv_function_call): Ditto.
1614 * trans-types.c (gfc_is_nodesc_array): Ditto
1615 * lang.opt (fg77-calls): Remove.
1616
1617 2004-04-04 Paul Brook <paul@codesourcery.com>
1618
1619 * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
1620 (gfc_conv_descriptor_base): Rename ...
1621 (gfc_conv_descriptor_offset): ... to this.
1622 (gfc_trans_allocate_array_storage): Set offset to zero.
1623 (gfc_conv_array_base): Rename ...
1624 (gfc_conv_array_offset): ... to this.
1625 (gfc_conv_array_index_ref): Add offset parameter.
1626 (gfc_conv_array_ref): Include offset.
1627 (gfc_trans_preloop_setup): Use existing offset.
1628 (gfc_trans_allocate_temp_array, gfc_array_allocate,
1629 gfc_trans_auto_array_allocation, gfc_trans_g77_array,
1630 gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
1631 gfc_conf_ss_descriptor): Set offset.
1632 * trans-array.h: Rename prototypes.
1633 * trans-const.h (gfc_index_zero_node): Define.
1634 * trans-decl.c (gfc_build_qualified_array): Change base to offset.
1635 * trans-types.c (gfc_get_array_type_bounds): Ditto.
1636 (gfc_get_nodesc_array_type): Calculate offset before upper bound.
1637
1638 2004-03-25 Diego Novillo <dnovillo@redhat.com>
1639
1640 * convert.c (convert): Don't handle WITH_RECORD_EXPR.
1641
1642 2004-03-24 Bud Davis <bdavis9659@comcast.net>
1643
1644 PR 14055
1645 * arith.c (gfc_convert_integer,gfc_convert_real): Removed leading '+'
1646 before conversion by gmp library call.
1647
1648 2004-03-24 Bud Davis <bdavis9659@comcast.net>
1649
1650 PR 12921
1651 * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
1652
1653 2004-02-24 Richard Henderson <rth@redhat.com>
1654
1655 * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
1656
1657 2004-02-19 Loren J. Rittle <ljrittle@acm.org>
1658
1659 * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
1660 (fortran/gfortran.info): ... to here.
1661 (f95.srcinfo): New.
1662
1663 2004-02-16 Richard Henderson <rth@redhat.com>
1664
1665 * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
1666 * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
1667 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
1668 (gfc_expand_function): Rename from expand_function_body, make static,
1669 don't do anything except invoke tree_rest_of_compilation.
1670 (gfc_be_parse_file): Invoke cgraph.
1671 (gfc_expand_decl): Remove.
1672 (gfc_init_builtin_functions): Add __builtin_init_trampoline and
1673 __builtin_adjust_trampoline.
1674 * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
1675 (gfc_finalize): New.
1676 (gfc_generate_function_code): Use it. Lower nested functions.
1677 * trans-expr.c (gfc_conv_function_call): Add static chain operand
1678 to call_expr.
1679 * trans.c (gfc_build_function_call): Likewise.
1680 * trans.h (expand_function_body): Remove.
1681
1682 2004-02-15 Victor Leikehman <lei@il.ibm.com>
1683
1684 PR gfortran/13433
1685 * trans-decl.c (gfc_build_function_decl) For functions
1686 returning CHARACTER pass an extra length argument,
1687 following g77 calling conventions.
1688 * trans-types.c (gfc_get_function_type) Ditto.
1689 * trans-expr.c (gfc_conv_function_call) Ditto.
1690
1691 2004-02-14 Paul Brook <paul@codesourcery.com>
1692
1693 * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
1694
1695 2004-02-12 Paul Brook <paul@nowt.org>
1696
1697 * BUGS: Remove.
1698
1699 2004-02-08 Steve Kargl <sgk@troutmask.apl.washington.edu>
1700
1701 * gfortran.texi: Fix typos.
1702
1703 2004-02-07 Bud Davis <bdavis9659@comcast.net>
1704
1705 PR gfortran/13909
1706 * intrinsic.c (add_conversions) Use logical conversion instead
1707 of real.
1708 * trans-types.c (gfc_get_logical_type) implemented logical*1
1709 and logical*2.
1710
1711 2004-01-17 Paul Brook <paul@codesourcery.com>
1712
1713 * lang-specs.h: Remove %<fixed-form.
1714
1715 2004-01-15 Toon Moene <toon@moene.indiv.nluug.nl>
1716
1717 * lang-specs.h: Enable preprocessing of source files
1718 ending in .F, .fpp, .FPP, .F90 and .F95.
1719
1720 2004-01-13 Toon Moene <toon@moene.indiv.nluug.nl>
1721
1722 PR fortran/12912
1723 * lang-specs.h: Enable compilation of files ending
1724 in .f, .for and .FOR.
1725
1726 2004-01-11 Paul Brook <paul@codesourcery.com>
1727
1728 * trans-stmt.c (gfc_trans_if_1): New function.
1729 (gfc_trans_if): Use it.
1730
1731 2004-01-11 Erik Schnetter <schnetter@uni-tuebingen.de>
1732
1733 * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
1734 (gfc_option_t): Add max_identifier_length.
1735 * lang.opt: Add fmax-identifier-length.
1736 * match.c (parse_name): Use limit.
1737 * options.c (gfc_init_options): Set max_identifier_length.
1738 (gfc_handle_option): Ditto.
1739
1740 2004-01-11 Feng Wang <fengwang@nudt.edu.cn>
1741
1742 * intrinsic.c (add_functions): Add resolve function to dcmplx.
1743 * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
1744 * iresolve.c (gfc_resolve_dcmplx): New function.
1745
1746 2004-01-10 Paul Brook <paul@codesourcery.com>
1747
1748 * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
1749 * trans-types.c (gfc_sym_type): Handle external dummy procedures.
1750 (gfc_return_by_reference): Correct condition.
1751 (gfc_get_function_type): Ditto.
1752
1753 2004-01-10 Paul Brook <paul@codesourcery.com>
1754
1755 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
1756 types.
1757
1758 2004-01-10 Huang Chun <chunhuang73@hotmail.com>
1759
1760 * iresolve.c: Use correct kind.
1761
1762 2004-01-10 Huang Chun <chunhuang73@hotmail.com>
1763
1764 PR fortran/13467
1765 * trans-decl.c (gfc_create_module_variable): Output array valued
1766 parameters.
1767
1768 2004-01-10 Paul Brook <paul@codesourcery.com>
1769
1770 * resolve.c (resolve_branch): Get error message right way round.
1771
1772 2004-01-10 Canqun Yang <canqun@nudt.edu.cn>
1773
1774 * trans-array (gfc_conv_loop_setup): Adjust comment to track
1775 reality.
1776 (gfc_array_allocate): Don't count size of element twice.
1777
1778 2004-01-04 Paul Brook <paul@codesourcery.com>
1779
1780 * lang.opt (i8, r8, std=*): Remove RejectNegative.
1781
1782 2004-01-04 Paul Brook <paul@codesourcery.com>
1783
1784 * error.c (gfc_notify_std): New function.
1785 * gfortran.h (gfc_notify_std): Declare.
1786 (GFC_STD_*): Define.
1787 (gfc_option_t): Add warn_std and allow_std.
1788 * intrinsic.c (gfc_init_expr_extensions): Fix logic.
1789 (gfc_intrinsic_func_interface): Use gfc_notify_std.
1790 * check.c (check_rest): Use gfc_notify_std.
1791 * match.c (gfc_match_pause): Ditto.
1792 (gfc_match_assign): Ditto.
1793 (gfc_match_goto): Ditto.
1794 * resolve.c (resolve_branch): Ditto.
1795 * lang.opt: Add std=<foo> and w.
1796 * options.c (gfc_init_options): Set allow_std and warn_std.
1797 (gfc_handle_option): Handle OPT_std_* and OPT_w.
1798
1799 2004-01-01 Paul Brook <paul@codesourcery.com>
1800
1801 * array.c (gfc_append_constructor): Take constructor, not expression.
1802 * data.c (struct gfc_expr_stack): Remove.
1803 (expr_stack): Remove.
1804 (find_con_by_offset): Rename from find_expr_in_con.
1805 (find_con_by_component): Rename from find_component_in_con.
1806 (gfc_get_expr_stack): Remove.
1807 (gfc_assign_data_value): Rewrite.
1808 (gfc_expr_push): Remove.
1809 (gfc_expr_pop): Remove.
1810 (gfc_advance_section): Rename from
1811 gfc_modify_index_and_calculate_offset. Handle unbounded sections.
1812 (gfc_get_section_index): Handle unbounded sections.
1813 * gfortran.h: Update prototypes.
1814 * resolve.c (check_data_variable): Array section maight not be the
1815 last ref.
1816
1817 2004-01-01 Paul Brook <paul@codesourcery.com>
1818
1819 PR fortran/13432
1820 * resolve.c (resolve_symbol): Allow assumed length function results.
1821
1822 2004-01-01 Steve Kargl <sgk@troutmask.apl.washington.edu>
1823
1824 * match.c (gfc_match_pause): Fix spelling.
1825
1826 2004-01-01 Steven Bosscher <stevenb@suse.de>
1827
1828 PR fortran/13251
1829 * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
1830 reference from the expression.
1831
1832 2003-12-26 Feng Wang <fengwang@nudt.edu.cn>
1833
1834 * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
1835 dumping.
1836 * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
1837 (gfc_exec_op): New EXEC_LABEL_ASSIGN.
1838 (symbol_attribute):New variable attribute: assign.
1839 * io.c (resolve_tag):Integer variable is allowed.
1840 (match_dt_format): Add ASSIGN statement. Set assign flag.
1841 * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
1842 (gfc_match_assign): Add ASSIGN statement. Set assign flag.
1843 (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
1844 * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
1845 (next_statement): Add ST_LABEL_ASSIGNMENT.
1846 (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
1847 * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
1848 (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
1849 * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
1850 * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
1851 assign. Put them into the stuct lang_decl.
1852 * trans-io.c (set_string): Add the assign statement.
1853 * trans-stmt.c (gfc_trans_label_assign): New function.
1854 (gfc_trans_goto): Translate ASSIGNED GOTO statement.
1855 * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
1856 * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
1857 * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
1858 (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
1859 (GFC_DECL_ASSIGN(node)): New macro to access flag.
1860
1861 2003-12-31 Huang Chun <chunhuang73@hotmail.com>
1862
1863 PR fortran/13434
1864 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
1865 minval/maxval.
1866
1867 2003-12-22 Toon Moene <toon@moene.indiv.nluug.nl>
1868
1869 * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
1870 that arguments to subroutines/functions can't alias themselves, nor global
1871 memory.
1872
1873 2003-12-20 Steven Bosscher <stevenb@suse.de>
1874
1875 * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
1876 * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
1877
1878 2003-12-12 Huang Chun <chunhuang73@hotmail.com>
1879
1880 * primary.c (match_substring): Fix substring bug for start point
1881 or end point is NULL.
1882 * trans-expr.c (gfc_conv_substring): Ditto
1883 * trans-types.c (gfc_sym_type): Get correct type of scalar
1884 character variables.
1885 * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in
1886 derived type.
1887
1888 2003-12-10 Richard Henderson <rth@redhat.com>
1889
1890 * options.c (gfc_post_options): Don't ever use rtl inlining.
1891
1892 2003-12-05 Canqun Yang <canqun@nudt.edu.cn>
1893
1894 * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
1895 * trans-equivalence.c: Remove.
1896 * trans-decl.c (gfc_get_symbol_decl): Update to match.
1897 (gfc_generate_function_code): Ditto.
1898 * trans-array.c (gfc_conv_array_parameter): Ditto.
1899 * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
1900 (F95_ADDITIONAL_OBJS): Add stor-layout.o
1901 * trans.h (gfc_trans_equivalence): Remove.
1902 * gfortran.h (struct gfc_equiv): Add used field.
1903 (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
1904 equiv_offset fields.
1905
1906 2003-12-05 Richard Henderson <rth@redhat.com>
1907
1908 * trans.c (gfc_build_addr_expr): New.
1909 (gfc_build_indirect_ref, gfc_build_array_ref): New.
1910 * trans.h: Declare them.
1911 * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
1912 trans-stmt.c, trans.c (*): Use them.
1913
1914 * f95-lang.c (gfc_post_options): Remove dead prototype.
1915 * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
1916 * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
1917 allocation size.
1918
1919 2003-12-01 Feng Wang <fengwang@nudt.edu.cn>
1920
1921 * io.c (gfc_match_format): Check for missing format label.
1922
1923 2003-11-30 Huang Chun <chunhuang73@hotmail.com>
1924
1925 PR fortran/13155
1926 * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
1927 from interfaces in modules.
1928
1929 2003-11-30 Paul Brook <paul@nowt.org>
1930
1931 * trans-array.c (gfc_trans_g77_array): Make non-static.
1932 (gfc_trans_assumed_size): Remove.
1933 (gfc_trans_dummy_array_bias): Explicitly free temporary.
1934 * trans-array.h (gfc_trans_g77_array): Add prototype.
1935 (gfc_trans_assumed_size): Remove.
1936 * trans-decls.c (gfor_fndecl_push_context): Remove.
1937 (gfor_fndecl_pop_context): Remove.
1938 (gfc_build_function)decls): Don't create them.
1939 (gfc_trans_deferred_vars): Update to match. Remove dead code.
1940 * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
1941
1942 2003-11-30 Kejia Zhao <kejia_zh@nudt.edu.cn>
1943
1944 * trans-array.c (gfc_conv_array_parameter): Simplify
1945 array argument passing for array name actual argument.
1946 * trans-expr.c (gfc_conv_function_call): Ditto
1947 * trans-types.c (gfc_is_nodesc_array):Ditto.
1948
1949 2003-11-30 Paul Brook <paul@nowt.org>
1950
1951 * f95-lang.c (gfc_post_options): Move ...
1952 * options.c (gfc_post_options): .. to here. Handle inlining options.
1953 * gfortran.h (gfc_post_options): Add prototype.
1954
1955 2003-11-28 Richard Henderson <rth@redhat.com>
1956
1957 * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
1958
1959 2003-11-28 Huang Chun <chunhuang73@hotmail.com>
1960
1961 * trans.h (has_alternate_specifier): New global variable.
1962 * match.c (gfc_match_call): Handle actual arguments associated with
1963 alternate return indicators.
1964 * trans-expr.c (gfc_conv_function_call): Ditto
1965 * trans-stmt.c (gfc_trans_call): Ditto
1966 (gfc_trans_return): Handle return statement with value.
1967 * trans-decl.c (gfc_generate_function_code): Handle functions with
1968 asterisk dummy.
1969 (gfc_get_fake_result_decl): Ditto
1970 * trans-types.c (gfc_get_function_type): Ditto
1971 * resolve.c (resolve_actual_arglist): Check alternate return indicators.
1972 (resolve_formal_arglist): Check asterisk dummy.
1973
1974 2003-11-27 Paul Brook <paul@nowt.org>
1975
1976 * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
1977 allocation interface.
1978 (gfc_conv_ array_parameter): Ditto.
1979 (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
1980 * trans-array.c: Update prototype.
1981 * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
1982 (gfc_trans_auto_character_variable): Use new memory alloc interface.
1983 * trans-expr.c (gfc_conv_string_tmp): Ditto.
1984 (gfc_conv_function_call): Use gfc_conv_string_tmp.
1985 * trans-stmt.c (gfc_do_allocate): Use new memory alloc interface.
1986 * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
1987 * trans.h (gfc_ss_info): Remove unused pdata field.
1988 * trans.c (gfc_create_var_np): Change T to V.
1989
1990 2003-11-26 Richard Henderson <rth@redhat.com>
1991
1992 * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
1993 * trans-intrinsic.c (gfc_intrinsic_map): ... here. Add SCALE,
1994 FRACTION, NEAREST, SET_EXPONENT.
1995 (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
1996 Fix GTY marking. Remove unnecessary const's.
1997 (LIBM_FUNCTION): Rename from I_LIB.
1998 (LIBF_FUNCTION): New.
1999 (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
2000 conventions. Assume the expr signature is correct. Mark const.
2001 (gfc_conv_intrinsic_exponent): Use library functions.
2002 (gfc_conv_intrinsic_set_exponent): Remove.
2003 (gfc_conv_intrinsic_scale): Remove.
2004 (gfc_conv_intrinsic_nearest): Remove.
2005 (gfc_conv_intrinsic_fraction): Remove.
2006 (gfc_conv_intrinsic_function): Update.
2007 * trans-decl.c (gfor_fndecl_math_exponent4): New.
2008 (gfor_fndecl_math_exponent8): New.
2009 (gfc_build_intrinsic_function_decls): Set them.
2010 * trans.h: Declare them.
2011
2012 2003-11-25 Canqun Yang <canqun@nudt.edu.cn>
2013
2014 * trans-common.c (gfc_layout_global_equiv): Locate the error for
2015 underflow COMMON block.
2016 (gfc_trans_one_common): Fix bug for size of COMMON block containing
2017 EQUIVALENCE object. Also fix typo in an error message.
2018
2019 2003-11-25 Diego Novillo <dnovillo@redhat.com>
2020
2021 * Make-lang.in: Add check-gfortran to lang_checks.
2022 (check-f95): Alias for check-gfortran.
2023
2024 2003-11-25 Jason Merrill <jason@redhat.com>
2025
2026 * Make-lang.in (f95.tags): Create TAGS.sub files in each
2027 directory and TAGS files that include them for each front end.
2028
2029 2003-11-24 Paul Brook <paul@nowt.org>
2030
2031 PR fortran/13154
2032 * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
2033
2034 2003-11-24 Paul Brook <paul@nowt.org>
2035
2036 * expr.c (simplify_const_ref): Return SUCCESS for things we don't
2037 handle.
2038 * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
2039
2040 2003-11-24 Paul Brook <paul@nowt.org>
2041
2042 PR fortran/13105
2043 * array.c (gfc_array_ref_shape): Handle elemental dimensions.
2044 * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
2045
2046 2003-11-20 Richard Henderson <rth@redhat.com>
2047
2048 * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
2049 (gfc_conv_array_base): Likewise.
2050 * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
2051 * trans-expr.c (gfc_conv_string_tmp): Likewise.
2052 * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
2053 * trans-stmt.c (gfc_trans_character_select): Likewise.
2054
2055 2003-11-13 Paul Brook <paul@nowt.org>
2056
2057 * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
2058
2059 2003-11-13 Canqun Yang <canqun@nudt.edu.cn>
2060
2061 * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
2062 (resolve_equivalence): New function.
2063 (resolve_equivalence_derived): New function.
2064
2065 2003-11-12 Richard Henderson <rth@redhat.com>
2066
2067 * trans.c (gfc_trans_code): Use annotate_with_locus instead of
2068 annotate_all_with_locus.
2069
2070 2003-11-11 Canqun Yang <canqun@nudt.edu.cn>
2071
2072 * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
2073 * trans-decl.c (gfc_finish_var_decl): Modified.
2074
2075 2003-11-08 Paul Brook <paul@nowt.org>
2076
2077 PR fortran/12704
2078 * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
2079 arrays.
2080
2081 2003-11-06 Paul Brook <paul@nowt.org>
2082
2083 * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
2084
2085 2003-11-02 Canqun Yang <canqun@nudt.edu.cn>
2086
2087 * match.c (gfc_match_stopcode): Assign '0' to stop_code.
2088
2089 2003-10-27 Anthony Green <green@redhat.com>
2090
2091 * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
2092 (f95.stagefeedback): Ditto.
2093
2094 2003-10-27 Andrew Pinski <pinskia@physics.uc.edu>
2095
2096 PR fortran/12682
2097 * Make-lang.in (f95.stageprofile): Add.
2098 (f95.stagefeedback): Add.
2099
2100 2003-10-23 Richard Henderson <rth@redhat.com>
2101
2102 * f96-lang.c (gfc_gimplify_expr): Remove.
2103 (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
2104 (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
2105
2106 2003-10-23 Richard Henderson <rth@redhat.com>
2107
2108 * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
2109
2110 2003-10-20 Paul Brook <paul@nowt.org>
2111
2112 * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
2113 * trans-stmt.c (gfc_trans_do_while): Ditto.
2114
2115 2003-10-17 Paul Brook <paul@nowt.org>
2116
2117 * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
2118
2119 2003-10-17 Paul Brook <paul@nowt.org>
2120
2121 * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
2122
2123 2003-10-17 Feng Wang <wf_cs@yahoo.com>
2124
2125 * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
2126 (gfc_resolve_minloc): Ditto.
2127 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
2128 Return the value after subtracting the lower bound.
2129
2130 2003-10-16 Richard Henderson <rth@redhat.com>
2131
2132 * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
2133
2134 2003-10-16 Steven Bosscher <steven@gcc.gnu.org>
2135
2136 * lang.c: Remove -M option for now, it's in the way for C.
2137
2138 2003-10-14 Jason Merrill <jason@redhat.com>
2139
2140 * Make-lang.in (f95.tags): New rule.
2141
2142 2003-10-13 Richard Henderson <rth@redhat.com>
2143
2144 * trans.c (gfc_trans_code): Use annotate_all_with_locus.
2145
2146 2003-10-13 Paul Brook <paul@nowt.org>
2147
2148 * trans-decl.c (generate_local_decl): Don't create junk variables.
2149
2150 2003-10-13 Paul Brook <paul@nowt.org>
2151
2152 * resolve.c (resolve_formal_arglist): Use function result decl in
2153 preference to function decl.
2154
2155 2003-10-12 Richard Henderson <rth@redhat.com>
2156
2157 * f95-lang.c (gfc_define_builtin): New const_p argument. Set
2158 TREE_READONLY. Update all callers.
2159
2160 2003-10-12 Feng Wang <wf_cs@yahoo.com>
2161
2162 * iresolve.c (gfc_resolve_cshift): Change to match implementation.
2163 * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
2164 (gfc_is_intrinsic_libcall): Add CSHIFT.
2165
2166 2003-10-12 Richard Henderson <rth@redhat.com>
2167
2168 * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
2169 (gfc_trans_array_constructor_value): Likewise.
2170 (gfc_conv_array_initializer): Likewise.
2171 * trans-stmt.c (gfc_trans_character_select): Likewise.
2172
2173 2003-11-12 Kejia Zhao <kejia_zh@yahoo.com.cn>
2174
2175 * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
2176
2177 2003-10-11 Huang Chun <jiwang@mail.edu.cn>
2178
2179 * check.c (gfc_check_repeat): Check arguments are scalar.
2180 (gfc_check_trim): New function.
2181 * intrinsic.h (gfc_check_trim): Add prototype.
2182 * intrinsic.c (add_functions): Use it.
2183 * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
2184 Decalare.
2185 * trans-decl.c: Ditto.
2186 (gfc_build_intrinsic_fucntion_decls): Set them.
2187 * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
2188 (gfc_conv_intrinsic_trim): New function.
2189 (gfc_conv_intrinsic_repeat): New function.
2190 (gfc_conv_intrinsic_function): Use them.
2191
2192 2003-10-11 Huang Chun <jiwang@mail.edu.cn>
2193
2194 * trans-types.c (gfc_sym_type): Handle result variables.
2195
2196 2003-10-11 Huang Chun <jiwang@mail.edu.cn>
2197
2198 * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
2199 gfc_get_character_type.
2200
2201 2003-10-11 Feng Wang <wf_cs@yahoo.com>
2202
2203 * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
2204
2205 2003-10-11 Paul Brook <paul@nowt.org>
2206
2207 * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
2208 (gfc_resolve_dprod): New function.
2209 (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
2210 * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
2211 (gfc_resolve_dprod): Declare.
2212 * intrinsic.c (add_functions): Use them.
2213 * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
2214
2215 2003-10-06 Richard Henderson <rth@redhat.com>
2216
2217 * f95-lang.c (gfc_init_builtin_functions): Add clzll.
2218 * trans-intrinsic.c (call_builtin_clz): Use it.
2219
2220 2003-10-05 Paul Brook <paul@nowt.org>
2221
2222 * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
2223 * trans-decl.c (gfc_generate_function_code): Set
2224 cfun->function_end_locus.
2225
2226 2003-09-24 Jason Merrill <jason@redhat.com>
2227
2228 * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
2229 TREE_LOCUS.
2230
2231 2003-09-21 Lifang Zeng <zlf605@hotmail.com>
2232 Paul Brook <paul@nowt.org>
2233
2234 * Make-lang.in (F95_OBJS): Add fortran/data.o.
2235 * array.c (gfc_inser_constructor): New function.
2236 (gfc_get_constructor): New function.
2237 (gfc_free_constructor): Initialize offset and repeat.
2238 (iterator_stack): Remove.
2239 (expand_info): Add offset, component and repeat fields.
2240 (expand_constructor): Set them.
2241 (expand): Set new fields.
2242 (gfc_copy_constructor): Ditto. Avoid recursion.
2243 * gfortran.h: Add prototypes for new functions.
2244 (gfc_constructor): Add offset, component and repeat.
2245 (iteratio_stack): Move to here.
2246 * resolve.c (check_data_variable): Convert data values into variable
2247 initializers.
2248 (traverse_data_list): Build implicit loop chain.
2249 (gfc_resolve): Ditto.
2250 * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
2251 * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
2252 * trans-expr.c (gfc_conv_structure): Handle array initializers.
2253 (gfc_conv_expr): Update to match.
2254 * trans.h (gfc_conv_structure): Declare.
2255 * data.c: New file.
2256
2257 2003-09-20 Kejia Zhao <kejia_zh@yahoo.com.cn>
2258
2259 * trans.h: Add declarations for gfor_fndecl_si_kind and
2260 gfor_fndecl_sr_kind.
2261 * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
2262 * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
2263 (g95_conv_intrinsic_sr_kind): New function.
2264 (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
2265 SELECTED_REAL_KIND.
2266
2267 2003-09-17 Lars Segerlund <Lars.Segerlund@comsys.se>
2268
2269 * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
2270 instead of _4 and _8 as postfix for libgfortran calls.
2271
2272 2003-09-16 Paul Brook <paul@nowt.org>
2273
2274 * array.c (compare_bounds): New function.
2275 (gfc_compare_array_spec): Use it.
2276
2277 2003-09-14 Paul Brook <paul@nowt.org>
2278
2279 * primary.c (gfc_match_rvalue): Make sure sym->result is set.
2280 * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
2281
2282 2003-09-14 Paul Brook <paul@nowt.org>
2283
2284 * check.c (dim_rank_check): Allow assumed bounds if requested.
2285 (gfc_check_lbound): Call it.
2286 (gfc_check_ubound): Ditto.
2287 (gfc_check_size): Change to match.
2288 * simplify.c (gfc_simplify_bound): New function.
2289 (gfc_simplify_lbound): New function.
2290 (gfc_simplify_ubound): New function.
2291 * intrinsic.h: Declare them.
2292 * intrinsic.c (add_functions): Use them.
2293
2294 2003-09-14 Paul Brook <paul@nowt.org>
2295
2296 * io.c (format_lex): Initialize negative_flag.
2297 (check_format): Intialize repeat.
2298 * trans-io.c (gfc_new_nml_name_expr): Declare static.
2299 (gfc_new_var_expr): Ditto.
2300
2301 2003-09-14 Paul Brook <paul@nowt.org>
2302
2303 * trans-array.c (gfc_conv_array_initializer): Handle derived types.
2304 * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
2305
2306 2003-09-12 Paul Brook <paul@nowt.org>
2307
2308 * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
2309
2310 2003-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2311
2312 * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
2313 for a correct expression.
2314
2315 2003-09-10 Kejia Zhao <kejia_zh@yahoo.com.cn>
2316
2317 * trans-intrinsic.c (real_compnt_info): New struct.
2318 (prepare_arg_info): New function.
2319 (gfc_conv_intrinsic_set_exponent): New function.
2320 (gfc_conv_intrinsic_scale): New function.
2321 (gfc_conv_intrinsic_nearest): New function.
2322 (gfc_conv_intrinsic_fraction): New function.
2323 (gfc_conv_intrinsic_exponent): New function.
2324 (gfc_conv_intrinsic_spacing): New function.
2325 (gfc_conv_intrinsic_rrspacing): New function.
2326 (gfc_conv_intrinsic_function): Use them.
2327
2328 2003-08-24 XiaoQiang Zhang (zhangapache@yahoo.com>
2329
2330 * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for
2331 build_int_2 changed from (high, low) to (low, high).
2332 * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
2333 ioparm_namelist_read_mode, iocall_set_nml_val_int,
2334 iocall_set_nml_val_float, iocall_set_nml_val_char,
2335 iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
2336 (gfc_build_io_library_fndecls): Add variable initialization.
2337 (gfc_new_nml_name_expr, get_new_var_expr): New function.
2338 (build_dt): Add namelist support.
2339 * io.c (value): New variable.
2340 (check_format): Support FMT_H now.
2341
2342 2003-09-07 Paul Brook <paul@nowt.org>
2343
2344 * io.c (gfc_resolve_dt): Error if format label is not defined.
2345
2346 2003-09-07 Kejia Zhao <kejia_zh@yahoo.com.cn>
2347
2348 * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is
2349 about case_switch's break. The other is about building the condition
2350 statement tree, which judges the argument in the range of the
2351 corresponding integer type.
2352 * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
2353 for the large values.
2354
2355 2003-09-05 Paul Brook <paul@nowt.org>
2356
2357 * f95-lang.c (expand_function_body): Gimplify the function.
2358
2359 2003-09-04 Jeff Law <law@redhat.com>
2360
2361 * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
2362 index zero!
2363
2364 2003-09-04 Paul Brook <paul@nowt.org>
2365
2366 * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
2367 (gfc_expand_stmt): New function.
2368 (LANG_HOOKS_RTL_EXPAND_STMT): Define.
2369 (expand_function_body): Use tree_rest_of_compilation.
2370 * trans-decl.c (gfc_generate_function_code): Don't free cfun.
2371
2372 2003-09-03 Jeff Law <law@redhat.com>
2373
2374 * f95-lang.c (gfc_init_builtin_functions): C arrays start at
2375 index zero!
2376
2377 2003-08-30 Paul Brook <paul@nowt.org>
2378
2379 * f95-lang.c (builtin_function): Remove #if 0 code.
2380 (gfc_define_builtin): New function.
2381 (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
2382 * mathbuiltins.def: New file.
2383 * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
2384 (gfc_intrinsic_map): Use mathbuiltins.def.
2385 (gfc_intrinsic_builtin_t): Remove.
2386 (gfc_build_intrinsic_lib_fndecls): Update.
2387 * trans-types.c (gfc_init_types): Remove redundant initilaization of
2388 signed_size_type_node.
2389
2390 2003-08-29 Paul Brook <paul@nowt.org>
2391
2392 * arith.c (gfc_real_kinds): Use correct minimum exponents.
2393
2394 2003-08-22 Kejia Zhao <kejia_zh@yahoo.com.cn>
2395
2396 * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
2397 (gfc_conv_intrinsic_function): Add MODULO.
2398
2399 2003-08-22 Jason Merrill <jason@redhat.com>
2400
2401 * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
2402
2403 2003-08-22 Andreas Jaeger <aj@suse.de>
2404
2405 * Make-lang.in (f95.install-common): Add DESTDIR support.
2406 * (f95.install-info): Likewise.
2407 (f95.uninstall): Likewise.
2408
2409 2003-08-19 Diego Novillo <dnovillo@redhat.com>
2410
2411 * trans-types.c (gfc_init_types): Initialize
2412 signed_size_type_node with size_type_node.
2413
2414 2003-08-18 Paul Brook <paul@nowt.org>
2415
2416 * dependency.c (gfc_dependency): New enum.
2417 (check_another_array_ref): Remove.
2418 (gfc_get_array_from_component): Remove.
2419 (get_x): Remove.
2420 (get_range): Remove.
2421 (get_no_of_elements): Use mpz_t, not mpf_t.
2422 (transform_sections): New function.
2423 (gfc_check_range_range): Rename ...
2424 (gfc_check_section_vs_section): ... to this. Use new function.
2425 (gfc_is_inside_range): Rewrite to match.
2426 (gfc_check_element_vs_section): Ditto.
2427 (gfc_check_element_vs_element): Ditto.
2428 (get_deps): Ditto.
2429 (gfc_dep_resolver): Ditto. Remove unused parameter.
2430 * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
2431 gfc_check_element_vs_element, gfc_is_inside_range,
2432 gfc_get_array_from_component): Remove prototypes for static functions.
2433 (gfc_dep_resolver): Update prototype.
2434 * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
2435
2436 2003-08-15 Paul Brook <paul@nowt.org>
2437
2438 * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
2439 return values to parent scope.
2440 (gfc_build_dummy_array_decl): Ditto.
2441
2442 2003-08-14 Paul Brook <paul@nowt.org>
2443
2444 * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
2445 size of the type, not the pointer.
2446 * resolve.c (resolve_symbol): Give more accurate error message.
2447
2448 2003-08-10 Paul Brook <paul@nowt.org>
2449
2450 * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
2451
2452 2003-08-10 Paul Brook <paul@nowt.org>
2453
2454 * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
2455 type components.
2456
2457 2003-08-10 Chun Huang <compiler@sohu.com>
2458
2459 * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
2460 (resolve_symbol): Ditto.
2461 * trans-expr.c (gfc_conv_statement_function): New function.
2462 (gfc_conv_function_expr): Use it.
2463
2464 2003-08-10 Paul Brook <paul@nowt.org>
2465
2466 * trans-array.c (gfc_conv_ss_startstride): Handle functions.
2467 (walk_function_expr): Set section rank.
2468 * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
2469
2470 2003-08-10 Paul Brook <paul@nowt.org>
2471
2472 * intrinsic.c (add_sym): Prefix names with correct string.
2473 (add_sym_0s): New function.
2474 (add_subroutines): Register abort.
2475
2476 2003-08-10 Erik Schnetter <schnetter@uni-tuebingen.de>
2477
2478 * gfortran.h: Introduce options to control the mangling.
2479 * lang.opt: Likewise.
2480 * options.c (gfc_init_options): Handle the options.
2481 * trans-common.c (gfc_sym_mangled_common_id): New function.
2482 (gfc_build_common_decl): Call it.
2483 * trans-decl.c (gfc_sym_mangled_function_id): New function.
2484 (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
2485
2486 2003-08-09 Paul Brook <paul@nowt.org>
2487
2488 * module.c (mio_symbol): Always ouput a namespace for formal args.
2489 (load_needed): Namespace now belong to their proper symbol.
2490 (gfc_dump_module): Change G95=>GFORTRAN.
2491
2492 2003-08-05 Paul Brook <paul@nowt.org>
2493
2494 * options.c: Force -fg77-calls.
2495
2496 2003-08-02 Paul Brook <paul@nowt.org>
2497
2498 * Makelang.in: Rename G95_* to GFORTRAN_*.
2499 * All sources: Rename G95_* to GFC_*.
2500
2501 2003-08-01 Paul Brook <paul@nowt.org>
2502
2503 * fortran/Make-lang.in: Use GMPLIBS.
2504 * fortran/config-lang.in: Set need_gmp.
2505 * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
2506
2507 2003-07-27 Andreas Jaeger <aj@suse.de>
2508
2509 * trans-decl.c (gfc_generate_constructors): Convert prototype to
2510 ISO C90.
2511 * trans-const.c (gfc_init_constants): Likewise.
2512 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
2513
2514 * gfortranspec.c: Convert to ISO C90.
2515 (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
2516
2517 2003-07-26 Paul Brook <paul@nowt.org>
2518
2519 * lang.opt: Add -fdump-parse-tree.
2520 * options.c (gfc_handle_option): Ditto.
2521 * resolve.c (resolve_forall_iterators): Convert to proper type.
2522 * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
2523
2524 2003-07-26 Paul Brook <paul@nowt.org>
2525
2526 * Makefile.in: Add build dependencies on files common with rest of gcc.
2527
2528 2003-07-26 Lifang Zeng <zlf605@hotmail.com>
2529
2530 * trans.h: Declare g95_trans_pointer_assignment.
2531 * trans-expr.c (g95_trans_pointer_assignment): New function.
2532 (g95_trans_pointer_assign): Use it.
2533 * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
2534 (g95_trans_pointer_assign_need_temp): New function.
2535
2536 2003-07-26 Paul Brook <paul@nowt.org>
2537
2538 * gfortran.texi: Replace references to g95.
2539
2540 2003-07-26 Paul Brook <paul@nowt.org>
2541
2542 Rename g95_* to gfc_*.
2543
2544 2003-07-25 Paul Brook <paul@nowt.org>
2545
2546 * gfortran.h: Rename from g95.h.
2547 * trans-types.c (boolean_type_node, booelan_true_node,
2548 boolean_false_node): Remove.
2549 * trans-types.h: Ditto.
2550
2551 2003-07-25 Chun Huang <compiler@sohu.com>
2552
2553 * parse.c (accept_statement): Implement BLOCK DATA statement.
2554 * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
2555 variables.
2556
2557 2003-07-24 Lifang Zeng <zlf605@hotmail.com>
2558
2559 * trans-stmt.c (temporary_list): Define.
2560 (g95_trans_assign_need_temp): New function.
2561 (g95_trans_forall_1): Modified for WHERE.
2562 (g95_trans_where_assign): Modified.
2563 (g95_trans_where_2): Modified.
2564 (g95_evaluate_where_mask): Modified.
2565 (g95_trans_where): Modified.
2566 (g95_get_temp_expr): Removed.
2567 (g95_add_to_where_stmt_list): Removed.
2568 (compute_overall_iter_number): Modified for WHERE.
2569 * trans.h: Remove where_stmt_list.
2570
2571 2003-07-24 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2572
2573 * lang.opt: Correct description of options -J and -M.
2574
2575 2003-07-23 Steven Bosscher <steven@gcc.gnu.org>
2576
2577 * lang.opt: Move help text to here.
2578 * lang-options.h: Remove.
2579
2580 2003-07-23 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2581 * iresolve.c (g95_resolve_transpose): Proper variable in switch.
2582 * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
2583 on kind.
2584
2585 2003-07-22 Steven Bosscher <steven@gcc.gnu.org>
2586 Paul Brook <paul@nowt.org>
2587
2588 * check.c (check_rest): Use global pedantic flag.
2589 * io.c (data_desc): Ditto.
2590 * error.c (g95_warning, g95_warning_now): Use global flag.
2591 * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
2592 (expand_function_body): Update to new prototypes.
2593 (g95_init): Use new option names.
2594 * g95.h (g95_option_t): Standardize names.
2595 (g95_init_options, g95_handle_option): Update prototypes.
2596 * interface.c: Use new option names.
2597 * match.c: Ditto.
2598 * module.c: Ditto.
2599 * parse.c: Ditto.
2600 * primary.c: Ditto.
2601 * resolve.c: Ditto.
2602 * scanner.c: Ditto.
2603 * simplify.c: Ditto.
2604 * symbol.c: Ditto.
2605 * trans-array.c: Ditto.
2606 * trans-expr.c: Ditto.
2607 * trans-types.c: Ditto.
2608 * trans-decl.c: Ditto.
2609 (g95_build_library_function_decl): Remove obsolete VPARAMS.
2610 * trans.h: Ditto.
2611 * options.c (g95_display_help): Remove.
2612 (g95_init_options): Convert to new scheme.
2613 (set_Wall): Ditto
2614 (g95module_option): Ditto, rename from g95_parse_arg.
2615 (g95_handle_module_path_options): New function.
2616 * trans-equivalence.c: Fix error message.
2617 * lang.opt: Corrections.
2618
2619 2003-07-21 Steven Bosscher <steven@gcc.gnu.org>
2620
2621 * lang.opt: New file.
2622
2623 2003-07-21 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2624
2625 * decl.c (match_attr_spec): Set colon_seen.
2626
2627 2003-07-14 Paul Brook <paul@nowt.org>
2628
2629 * trans-array.c: Update comment.
2630 (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
2631 * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
2632 minmaxloc,minmaxval): Ditto.
2633 * trans-io.c (g95_trans_transfer): Ditto.
2634 * trans-stmt.c: Remove unneeded prototypes.
2635 (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
2636 (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
2637 (compute_inner_temp_size): Remove bits of dead code. Add comments.
2638 Don't share loopinfo.
2639 (compute_overall_iter_number): Declare as static.
2640 (allocate_temp_for_forall_nest): Ditto.
2641 (g95_trans_forall_1): Don't pass shared loopinfo.
2642 * trans.c (g95_start_block): Expand comment.
2643
2644 2003-07-12 Paul Brook <paul@nowt.org>
2645
2646 * arith.c (g95_index_integer_kind): Remove unused initializer.
2647 * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
2648 index by size of element.
2649 (generate_loop_for_rhs_to_temp): Ditto.
2650 (allocate_temp_for_forall_nest): Use element size, not index size.
2651
2652 2003-07-11 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2653
2654 * arith.c (g95_index_integer_kind): Add a TODO.
2655 * simplify.c (g95_simplify_nearest): Add a TODO.
2656
2657 2003-07-09 Chun Huang <compiler@sohu.com>
2658
2659 * trans.h: Add declarations for gfor_fndecl_string_scan and
2660 gfor_fndecl_string_verify.
2661 * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
2662 * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
2663 (g95_conv_intrinsic_verify): New function.
2664 (g95_conv_intrinsic_function): Add SCAN and VERIFY.
2665 * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
2666 of parameter 'BACK=.TRUE.'
2667
2668 2003-07-05 Lifang Zeng <zlf605@hotmail.com>
2669
2670 * trans-stmt.c (iter_info, forall_info): Define.
2671 (g95_trans_forall_block): Remove.
2672 (g95_trans_forall_loop): Use forall info blocks.
2673 (g95_trans_nested_forall_loop): New function.
2674 (g95_do_allocate): Handle things other than logical masks.
2675 (generate_loop_for_temp_to_lhs): New function.
2676 (generate_loop_for_rsh_to_temp): New function.
2677 (compute_inner_temp_size): New function.
2678 (compute_overall_iter_number): New function.
2679 (allocate_temp_for_forall_nest): New function.
2680 (g95_trans_forall): Move body ...
2681 (g95_trans_forall_1): ... to here. Handle loops with temporaries.
2682
2683 2003-07-02 Paul Brook <paul@nowt.org>
2684
2685 * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
2686 in correct scope. Change callers to match.
2687 * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
2688 * iresolve.c (g95_resolve_reshape): Only use constant shapes.
2689
2690 2003-07-02 Paul Brook <paul@nowt.org>
2691
2692 * trans-array.c (g95_conv_loop_setup): Remove dead var. Use
2693 expression shape for all expressions.
2694 * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
2695
2696 2003-07-03 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2697
2698 * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
2699 g95_parse_arg), intrinsic.c (g95_convert_type): support of
2700 -Wconversion.
2701 * intrinsic.c, g95.h: Add g95_convert_type_warn,
2702 * resolve.c (g95_resolve_index): Call it.
2703
2704 2003-07-02 Paul Brook <paul@nowt.org>
2705
2706 * iresolve.c (g95_resolve_reshape): Set expression shape.
2707 (g95_resolve_shape): Ditto.
2708 * simplify.c (g95_simplify_shape): Move common code outside condition.
2709 * trans-array.c (g95_conv_array_initializer): Teach it how to count.
2710
2711 2003-07-01 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2712
2713 * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
2714 conformance checks.
2715
2716 2003-06-29 Paul Brook <paul@nowt.org>
2717
2718 * array.c (g95_simplify_iterator_var): Don't bother with return value.
2719 * expr.c (find_array_element, find_component_ref): New functions.
2720 (remove_subobject_ref): New function.
2721 (simplify_const_ref): Use them. Rename from simplify_component_ref.
2722 (simplify_ref_chain): New function.
2723 (g95_simplify_expr): Use it. Simplify parameter variable subobjects.
2724 (g95_specification_expr): Simplify the expression.
2725 * resolve.c (resolve_operator): Check simplifications return code.
2726 (g95_resolve_expr): Ditto.
2727
2728 2003-06-26 Paul Brook <paul@nowt.org>
2729
2730 * expr.c (simplify_component_ref): New function.
2731 (g95_simplify_expr): Use it.
2732 * resolve.c (resolve_structure_cons): Handle references.
2733
2734 2003-06-25 Paul Brook <paul@nowt.org>
2735
2736 * trans-io.c (build_dt): Handle internal units.
2737
2738 2003-06-25 Canqun Yang <canqun@yahoo.com.cn>
2739
2740 * trans-common.c (g95_build_common_decl): Array index range starts at 0.
2741 (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
2742 Use g95_array_index_type instead of integer_type_node.
2743 (g95_build_common_decl, g95_set_common_master_type): Use
2744 g95_character1_type_node instead of char_type_node.
2745 * trans-equivalence.c (g95_layout_local_equiv): As above.
2746
2747 2003-06-24 Steven G. Kargl <kargls@attbi.com>
2748
2749 * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
2750 remove last remains of -fquiet.
2751
2752 2003-06-22 Paul Brook <paul@nowt.org>
2753
2754 * resolve.c (resolve_operator): Don't fail if we can't simplify.
2755 (g95_resolve_expr): Ditto.
2756 (resolce_code): Mark as static.
2757 * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
2758 gimplifer doesn't (yet).
2759
2760 2003-06-20 Paul Brook <paul@nowt.org>
2761
2762 * g95.h: Add ST_PAUSE and EXEC_PAUSE.
2763 * match.c (g95_match_if): Add ST_PAUSE.
2764 (g95_match_stopcode): New function.
2765 (g95_match_pause, g95_match_stop): Use it.
2766 * parse.c (g95_ascii_statement): Handle ST_PAUSE.
2767 (decode_stmt, next_statement, parse_executable): Ditto.
2768 * resolve.c (resolve_code): Ditto.
2769 * st.c (g95_free_statement): Ditto.
2770 * trans-stmt.c (g95_trans_pause): New function.
2771 * trans-stmt.h: Declare it.
2772 * trans.c (g95_trans_code): Use it.
2773 * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
2774 Declare.
2775 (g95_build_builtin_function_decls): Initialize them.
2776 * trans.h: Ditto.
2777 * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
2778
2779 2003-06-18 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2780
2781 * io.c (g95_match_open , g95_match_close, g95_match_inquire,
2782 match_filepos): Fix error handling.
2783
2784 2003-06-18 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2785
2786 * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
2787 Add assertions on arguments.
2788 * resolve.c (expression_shape): Remove useless &.
2789 * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
2790 g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
2791 g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
2792 g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
2793 g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
2794 g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
2795 (g95_simplify_not, g95_simplify_scale): Add assertions.
2796
2797 2003-06-15 Paul Brook <paul@nowt.org>
2798
2799 Clean up stuff to work with the ssa optimizers.
2800 * convert.c (convert): Handle BOOLEAN_TYPEs.
2801 * f95-lang.c (g95_truthvalue_conversion): Implement.
2802 * trans-array.c (g95_trans_array_constructor_value): Group multiple
2803 scalar values.
2804 * trans.h (g95_truthvalue_conversion): Declare.
2805 * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
2806 * trans-stmt.c (g95_trans_character_select): Don't create array
2807 assignments. Mark labels as indirect jump targets.
2808 * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
2809 (g95_get_dtype_cst): Handle LOGICAL types.
2810
2811 2003-06-14 Paul Brook <paul@nowt.org>
2812
2813 * f95-lang.c (g95_gimplify_expr): New function.
2814 * trans-array.c (g95_trans_array_constructor_value): Don't create
2815 array assignments.
2816 (g95_conv_expr_descriptor): Rename simple->gimple.
2817 * trans-expr.c (conv_expr_op): Use proper logical operators.
2818 * trans-intrinsic.c (build_fixbound_expr): New function.
2819 (build_fix_expr): Ditto.
2820 (g95_conv_intinsic_aint): Use them. Use builtin functions.
2821 (g95_conv_intrinsic_function): Add FLOOR and CEILING.
2822
2823 2003-06-10 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2824
2825 * array.c (g95_compare_array_spec): Remove unreachable code.
2826 * expr.c (g95_copy_expr): Likewise.
2827 * intrinsic.c (g95_convert_type): Likewise.
2828 * misc.c (g95_code2string): Likewise.
2829 * simplify.c (g95_simplify_ishft, g95_simplify_real,
2830 g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
2831 * trans-stmt.c (g95_trans_select): Likewise.
2832 * primary.c (extend_ref): Add an assertion.
2833 * simplify.c (g95_convert_constant): Add const.
2834 * intrinsic.h: Remove g95_check_x_ni.
2835 * f95-lang.c (g95_finish): Call g95_release_include_path.
2836
2837 2003-06-10 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2838
2839 * resolve.c (resolve_contained_functions): Fix typo introduced on
2840 2003-01-13.
2841
2842 2003-06-09 Paul Brook <paul@nowt.org>
2843
2844 * g95.h: Include system.h not hwint.h.
2845 * many: use safe-ctype.h not ctype.h. Change isalpha -> ISALPHA, etc.
2846 * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
2847
2848 2003-06-09 Paul Brook <paul@nowt.org>
2849
2850 * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
2851 * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
2852 * trans-decl.c (g95_add_decl_to_functions): Make non-static.
2853 (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
2854 (g95_generate_function_code): Translate COMMON and EQUIVALENCE
2855 objects.
2856 * trans.h (g95_trans_equivalence, g95_trans_common,
2857 g95_add_decl_to_function): Declare.
2858 * trans-common.c, trans-equivalence.c: New files.
2859
2860 2003-06-08 Steven Bosscher <steven@gcc.gnu.org>
2861
2862 * intrinsic.c (g95_intrinsic_extension): Remove.
2863 (add_functions): Substitute g95_check_x for g95_check_x_ni
2864 everywhere.
2865 (g95_init_expr_extensions): New function.
2866 (g95_intrinsic_func_interface): Use it.
2867 * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
2868 * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
2869 g95_check_precision, g95_check_present, g95_check_radix,
2870 g95_check_range, g95_check_selected_real_kind): Do not set
2871 g95_intrinsic_extension.
2872 (g95_check_x_ni): Remove now duplicate of g95_check_x.
2873
2874 * expr.c (check_inquiry): Add FIXME, fixup some code style.
2875
2876 2003-06-06 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2877
2878 * g95.h (ref_type): Name this type explicitly.
2879 * module.c (MIO_NAME): Add specialisations of mio_name.
2880 (mio_symbol_attribute, mio_typespec, mio_array_ref,
2881 mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
2882 (ab_attribute): Name this type explicitly.
2883 (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
2884
2885 2003-06-05 Kejia Zhao <kejia_zh@yahoo.com.cn>
2886
2887 * trans-intrinsic.c (g95_conv_allocated): New function.
2888 (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
2889
2890 2003-06-05 Steven Bosscher <steven@gcc.gnu.org>
2891
2892 * f95-lang.c: Don't include g95-support.h
2893 (g95_mark_addressable): Add prototype.
2894 (g95_init_decl_processing): Remove C front end hack.
2895 * f95-tree.c: Remove file.
2896 * support.c: Remove file.
2897 * g95-support.h: Remove file.
2898 * trans-types.c (g95_init_types): Set up boolean
2899 type related tree nodes.
2900 * Make-lang.in: Remove rules for dead files and
2901 dependencies on them.
2902
2903 2003-06-05 Steven Bosscher <steven@gcc.gnu.org>
2904
2905 * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
2906 C front end dependency. Also, convert.c does not depend on
2907 g95-support.h anymore.
2908 * convert.c: Don't include c-common.h and g95-support.h
2909 * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
2910 (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
2911 stmts_are_full_exprs_p, current_stmt_tree,
2912 current_scope_stmt_stack): Remove.
2913 * g95-support.h (unsigned_conversion_warning): Kill proto.
2914 (boolean_type_node, boolean_true_node, boolean_false_node):
2915 Don't define here. Instead, make then true tree nodes in
2916 trans-types.
2917 * support.c (c_global_trees): Die, C front end, die!!!
2918 (g95_init_c_decl_hacks): Don't touch intmax_type_node,
2919 uintmax_type_node, string_type_node and const_string_type_node.
2920 (decl_constant_value, overflow_warning): Make static functions.
2921 They are in death row too, though.
2922 (default_conversion, c_expand_asm_operands): Remove.
2923 * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
2924 trans.c: Don't include c-common.h.
2925 * trans-types.c (boolean_type_node, boolean_true_node,
2926 boolean_false_node): Make them real tree nodes.
2927 * trans-types.h (intmax_type_node, string_type_node,
2928 const_string_type_node): Hack to work around C dependencies
2929 in builtin-types.def.
2930
2931 2003-06-04 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2932
2933 * decl.c (decl_types): Add some iterators-like sentinels.
2934 * decl.c (match_attr_spec): Use them.
2935 Use "decl_types" instead of "int".
2936 Add cast in call to g95_match_strings.
2937 * dump-parse-tree.c (g95_show_namespace): Use "g95_intrinsic_op"
2938 instead of "int".
2939 * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
2940 (g95_interface_info): Use "g95_intrinsic_op".
2941 * dump-parse-tree.c (g95_show_namespace): Use them.
2942 * interface.c (g95_check_interfaces): Use them.
2943 * module.c (read_module, write_module): Use them.
2944 * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
2945 Use "g95_intrinsic_op".
2946 * interface.c (check_operator_interface): Use "g95_intrinsic_op".
2947 Add a default case in switch statement.
2948 * intrinsic.h (g95_generic_isym_id): Moved to...
2949 * g95.h (g95_generic_isym_id): here.
2950 (g95_intrinsic_sym): Use "g95_generic_isym_id".
2951 * intrinsic.c (make_generic): Use "g95_generice_isym_id".
2952 * trans-intrinsic.c (g95_intrinsic_map_t,
2953 g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
2954 * match.c (g95_match_intrinsic_op): Add cast in call to
2955 g95_match_strings.
2956
2957 2003-06-03 Steven Bosscher <steven@gcc.gnu.org>
2958
2959 * support.c (skip_evaluation, warn_conversion, lvalue_p,
2960 lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
2961 constant_fits_type_p, convert_and_check,
2962 unsigned_conversion_warning): Remove these ugly remnants
2963 we inherited from the C front end.
2964 (function_types_compatible): Remove '#if 0'-edcode.
2965 (build_modify_expr): Likewise.
2966 (convert_for_assignment): Don't use the deceased functions.
2967 The parameter fundecl is now unused.
2968 (decl_constant_value): Always just return decl. In fact
2969 this function is not used at present, but it might be in
2970 the future, when we start using the tree inliner.
2971 (overflow_warning, default_conversion, c_expand_asm_operands):
2972 Abort when these are called, they are part of the C type
2973 checking implementation and therefore poison to Fortran.
2974
2975 2003-06-04 Steven Bosscher <steven@gcc.gnu.org>
2976
2977 * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
2978 c-pretty-print.o and c-dump.o. Add a comment on why we
2979 depend on c-semantics.c.
2980 * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
2981 Don't use the C front end tree dumper hook to dump the
2982 language specific tree representation -- we don't have
2983 one. So instead, inherit the default langhook.
2984
2985 2003-06-02 Paul Brook <paul@nowt.org>
2986
2987 * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
2988
2989 2003-06-02 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2990
2991 * check.c (g95_check_associated): Use proper types. Remove
2992 extraneous argument in call to g95_error().
2993
2994 2003-06-02 Kejia Zhao <kejia_zh@yahoo.com.cn>
2995
2996 * resolve.c (resolve_operator): Make logical operands convert to the
2997 type with higher kind.
2998
2999 2003-06-02 Kejia Zhao <kejia_zh@yahoo.com.cn>
3000
3001 * check.c (g95_check_associated): Make sure both pointer and target has
3002 the same type and rank. Null pointer or array section with vector
3003 subscript as target are not allowed.
3004 * trans.h: Declare gfor_fndecl_associated.
3005 * trans-decl.c: (g95_build_builtin_function_decls): Initialize
3006 gfor_fndecl_associated.
3007 * trans-intrinsic.c (g95_conv_associated): New function.
3008 (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
3009
3010 2003-06-02 Kejia Zhao <kejia_zh@yahoo.com.cn>
3011
3012 * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
3013 according to POINTER itself rather than TARGET.
3014 (g95_conv_expr_descriptor): Make lbound start at 1.
3015 * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
3016
3017 2003-06-01 Paul Brook <paul@nowt.org>
3018
3019 * expr.c (g95_type_convert_binary): Make it match the standard.
3020 * g95.texi: Remove dead link.
3021
3022 2003-06-01 Steven Bosscher <steven@gcc.gnu.org>
3023
3024 * g95.texi: Cleanup somewhat in preparation for inclusion
3025 in GCC CVS.
3026
3027 2003-05-23 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3028 Canqun Yang <canqun@yahoo.com.cn>
3029
3030 * resolve.c (compare_bound_int, resolve_where_shape): Proper return
3031 type.
3032 (g95_find_forall_index): Return proper value.
3033 (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
3034 compare the return value from g95_find_forall_index.
3035
3036 2003-05-23 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3037 * g95.h, io.c (g95_st_label): Remove "length".
3038 (g95_symtree): Remove "link".
3039 (g95_case): Remove "code".
3040 * arith.c, arith.h (g95_compare_string, g95_convert_integer,
3041 g95_convert_real): Make an argument pointer to const.
3042 * decl.c (colon_seen): Add a TODO.
3043 * interface.c (g95_compare_types): Fix typo.
3044 * interface.c (compare_interfaces): Preserve value of "p".
3045 * intrinsic.c (sort_actual): Remove "i".
3046 * match.c (g95_match_assign): Proper type in call to g95_match().
3047 * parse.c (next_free): Avoid duplicate call due to macro.
3048 * parse.c (check_statement_label): wrong type in call to g95_error.
3049 * primary.c (match_real_constant): Add a TODO.
3050 * resolve.c (resolve_select): Remove useless conditional.
3051 * simplify.c (g95_simplify_repeat): Proper assignment to
3052 "value.character.string".
3053 * simplify.c (g95_simplify_reshape): Wrong variable in call to
3054 g95_error.
3055
3056 2003-05-20 Canqun Yang <canqun@yahoo.com.cn>
3057
3058 * trans-stmt.c: Remove unnecessary include file defaults.h.
3059
3060 2003-05-19 Lifang Zeng <zlf605@hotmail.com>
3061
3062 * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
3063 stride.
3064 (g95_trans_forall): Allow arbitrary number of FORALL indexes and
3065 actual variables used as FORALL indexes.
3066
3067 2003-05-15 Paul Brook <paul@nowt.org>
3068
3069 * trans-array.c (g95_trans_static_array_pointer): Use
3070 null_pointer_node.
3071 (g95_trans_deferred_array): Initialize static array pointers.
3072 * trans-expr.c (g95_conv_function_call): Use formal arglist to
3073 correctly pass POINTER and absent CHARACTER arguments.
3074
3075 2003-05-14 Lifang Zeng <zlf605@hotmail.com>
3076
3077 * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
3078 (g95_resolve_forall_body): Resolve FORALL body.
3079 (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
3080 (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
3081 (g95_find_forall_index): Check whether the FORALL index appears in
3082 the expression or not.
3083 (resolve_code): Modified.
3084
3085 2003-05-14 Paul Brook <paul@nowt.org>
3086
3087 * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
3088
3089 2003-05-13 Paul Brook <paul@nowt.org>
3090
3091 * trans-types.c (g95_max_array_element_size): Now a tree node.
3092 (g95_init_types): Work out max size properly.
3093 (g95_get_dtype_cst): Modify to match.
3094
3095 2003-05-11 Paul Brook <paul@nowt.org>
3096
3097 * trans-io.c (add_case): Create a label decl for case labels.
3098
3099 2003-05-11 Paul Brook <paul@nowt.org>
3100
3101 * arith.c (g95_integer_index_kind): New variable.
3102 * f95-lang.c (g95_init): Move frontend initialization here ...
3103 (g95_post_options): ... from here.
3104 * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
3105 * intrinsic.c (add_functions): Use index kinds.
3106 * iresolve.c: Convert to index_kind where needed.
3107 * resolve.c (g95_resolve_index): Make public, use index_kind.
3108 (resolve_array_ref): Adjust to match.
3109 * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
3110 * trans-stmt.c: Ditto.
3111 * trans-types.c: Ditto.
3112 * trans-types.h (g95_array_index_kind): Remove declaration.
3113 * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
3114
3115 2003-05-07 Paul Brook <paul@nowt.org>
3116
3117 * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
3118 * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
3119 of bound indices.
3120
3121 2003-05-07 Paul Brook <paul@nowt.org>
3122
3123 * trans-array.c (trans_static_array_pointer,
3124 g95_trans_array_constructor_value, g95_conv_array_initializer,
3125 g95_conv_structure): CONSTRUCTOR nodes only have one operand.
3126 (g95_add_loop_ss_code): Convert subscripts to the correct type.
3127 * trans-stmt.c (g95_trans_character_select): Ditto.
3128 * trans-types.c (g95_init_types): Ditto.
3129
3130 2003-05-07 Steven Bosscher <steven@gcc.gnu.org>
3131
3132 * f95-lang.c (expand_function_body): Use input_line, not lineno.
3133 * trans-decl.c (g95_generate_function_code,
3134 g95_generate_constructors): Likewise.
3135 * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
3136 g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
3137 Likewise.
3138
3139 2003-05-07 Kejia Zhao <kejia_zh@yahoo.com.cn>
3140 * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
3141 with components point to the DERIVED type itself, and two DERIVED
3142 type with components point to each other.
3143 * trans-expr.c (g95_conv_componet_ref): Modified
3144
3145 2003-05-07 Kejia Zhao <kejia_zh@yahoo.com.cn>
3146 * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
3147 null_pointer_node.
3148 (g95_trans_pointer_assign): Implement Nullify.
3149
3150 2003-05-01 Paul Brook <paul@nowt.org>
3151
3152 * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
3153 * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
3154
3155 2003-05-01 Paul Brook <paul@nowr.org>
3156
3157 * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
3158 trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
3159 IS_EMPTY_STMT.
3160
3161 2003-05-01 Canqun Yang <canqun@yahoo.com.cn>
3162
3163 * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
3164 CASE_LABEL_EXPR.
3165
3166 2003-04-28 Paul Brook <paul@nowt.org>
3167
3168 * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
3169 as their kind suggests.
3170 (g95_resolve_reshape): Ditto.
3171
3172 2003-04-28 Chun Huang <compiler@sohu.com>
3173
3174 * trans-expr.c (g95_conv_substring_expr): New function.
3175 (g95_conv_expr): Use it.
3176
3177 2003-04-28 Paul Brook <paul@nowt.org>
3178
3179 * iresolve.c (g95_resolve_transpose): Make it match the
3180 implementation.
3181 * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
3182
3183 2003-04-18 Steven Bosscher <steven@gcc.gnu.org>
3184
3185 * trans-types.c (g95_add_field_to_struct): New function to
3186 add a field to a UNION_TYPE or RECORD_TYPE.
3187 * trans-types.h (g95_add_field_to_struct): Prototype.
3188 (g95_get_derived_type): Use g95_add_field_to_struct to add
3189 components.
3190 * trans-io.c (g95_add_field): Remove.
3191 (ADD_FIELD): Use new g95_add_field_to_struct function.
3192 (ADD_STRING): Likewise.
3193 * trans-stmt.c (g95_trans_select): Likewise.
3194 (g95_add_field): Remove duplicated function.
3195
3196 2003-04-18 Canqun Yang <canqun@yahoo.com.cn>
3197
3198 Port implementation for CHARACTER SELECT from Andy's tree.
3199 * trans-stmt.c (g95_trans_character_select): Implement character
3200 select. (g95_add_field): New function.
3201 * trans-decl.c: Declare 'gfor_gndecl_select_string'.
3202 (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
3203 * g95.h (struct g95_case): Add field 'int n'.
3204 * trans.h: Declare 'gfor_fndecl_select_string'.
3205
3206 2003-04-18 Steven Bosscher <steven@gcc.gnu.org>
3207
3208 * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
3209 (g95_insert_bbd): Die on duplicates.
3210 * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
3211
3212 2003-04-14 Steven Bosscher <steven@gcc.gnu.org>
3213
3214 * g95.texi: Require GMP 4.0 -- like we actually
3215 do. Explain the testsuite and what-goes-where.
3216 Don't use undefined texinfo symbol. Break very
3217 long line. Remove finished item from the list
3218 of open projects.
3219
3220 2003-04-11 Canqun Yang <canqun@yahoo.com.cn>
3221
3222 * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
3223 LOGICAL type.
3224
3225 2003-04-10 Canqun Yang <canqun@yahoo.com.cn>
3226
3227 * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
3228 (g95_trans_forall_body): New function.
3229
3230 2003-04-10 Canqun Yang <canqun@yahoo.com.cn>
3231
3232 * resolve.c (resove_where): New function.
3233 (resolve_where_shape): New function.
3234 (resolve_code): Add call to 'resolve_where'
3235 * trans-stmt.c (g95_trans_where): Modified.
3236 (g95_trans_where_2): New function.
3237 (g95_trans_where_assign): New function.
3238 (g95_evaluate_where_mask): New function.
3239 (g95_add_to_stmt_list): New function.
3240 (g95_get_temp_expr): New function.
3241 * trans.h (where_stmt_list): New structure.
3242
3243 2003-04-10 Paul Brook <paul@nowt.org>
3244
3245 * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
3246 (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
3247
3248 2003-04-10 Steven Bosscher <steven@gcc.gnu.org>
3249
3250 Update after mainline -> tree-ssa-branch merge.
3251 * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
3252 call.
3253 (g95_init): Update for new lang_hooks definition.
3254 (g95_post_options): New langhook.
3255 (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
3256 * scanner.c (g95_new_file): Comment update.
3257
3258 2003-04-09 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3259
3260 * g95.h, lang-options.h: Add -Wimplicit-interface.
3261 * options.c (g95_init_options, g95_parse_arg): Set it.
3262 * interface.c (check_intents): Warn about call with implicit
3263 interface.
3264 * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
3265 g95_procedure_use.
3266
3267 2003-04-05 Paul Brook <paul@nowt.org>
3268
3269 * iresolve.c (g95_resolve_spread): Don't resole based on type.
3270 * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
3271
3272 2003-03-29 Paul Brook <paul@nowt.org>
3273
3274 * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
3275 (g95_resolve_unpack): Ditto.
3276 * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
3277 (g95_conv_intrinsic_function): Use it. Remove PACK and UNPACK.
3278 (g95_is_intrinsic_libcall): Add PACK and UNPACK.
3279
3280 2003-03-25 Paul Brook <paul@nowt.org>
3281
3282 * arith.c (g95_unary_user, g95_user): Remove dead functions.
3283 * arith.h: Ditto.
3284 * array.c (g95_free_array_ref): Ditto.
3285 * g95.h: Ditto.
3286 * symbol.c (g95_use_derived_tree): Ditto.
3287 * intrinsic.c (add_functions): Use simplification for SCALE.
3288 * primary.c (g95_match_rvalue): Test sym, not symtree.
3289
3290 2003-03-25 Paul Brook <paul@nowt.org>
3291
3292 * trans-decl.c (build_function_decl): Add parameter before it gets
3293 turned into a constant.
3294 * iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
3295 * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
3296 * trans-decl.c (g95_create_module_variable): Don't pushdecl constants.
3297
3298 2003-03-22 Paul Brook <paul@nowt.org>
3299
3300 * trans-array.c (g95_conv_array_initializer): Allow scalar
3301 expressions.
3302 * trans-decl.c (g95_finish_var_decl): Result variables are not
3303 module variables.
3304 * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
3305 (g95_conv_intrinsic_function): Use it.
3306 * trans-types.h (g95_type_spec): Remove dead declaration.
3307
3308 2003-03-21 Paul Brook <paul@nowt.org>
3309
3310 * trans-decl.c (g95_build_function_decl): Mark string parameters.
3311
3312 2003-03-20 Paul Brook <paul@nowt.org>
3313
3314 * trans-decl.c (g95_build_function_decl): Put character length
3315 parameters at the end of the function declaration.
3316 * trans-expr.c (g95_conv_function_call): Ditto.
3317 * trans-types.c (g95_get_function_type): Ditto.
3318
3319 2003-03-20 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3320
3321 * resolve.c (resolve_formal_arglist): Don't impose intent for
3322 procedure arguments of pure functions.
3323 (resolve_select): Remove redundant assignment.
3324
3325 2003-03-19 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3326
3327 * arith.c (validate_logical), g95.h, options.c (g95_init_options):
3328 Remove option l1.
3329 * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
3330 * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
3331 const.
3332 * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
3333 Order list.
3334 * symbol.c (g95_add_type): Fix typo in comment.
3335
3336
3337 2003-03-16 Paul Brook <paul@nowt.org>
3338
3339 * dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
3340 * expr.c (g95_build_call): Remove.
3341 * f95-lang.c (puchdecl_top_level): New function.
3342 * g95.h (g95_code): Store resolved symbol, not just the name.
3343 * intrinsic.c (g95_intrinsic_namespace): New global namespace.
3344 (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
3345 (g95_get_intrinsic_sub_symbol): New function.
3346 * iresolve.c (g95_resolve_cpu_time): Use it.
3347 (g95_resolve_random_number): Ditto.
3348 * resolve.c: Set code->resolved_sym instead of code->sub_name.
3349 * trans-decl.c (g95_get_extern_function_decl): Give external decls
3350 the correct DECL_CONTEXT. Add global symbold to the global scope.
3351 * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
3352 fixed.
3353
3354 2003-03-16 Paul Brook <paul@nowt.org>
3355
3356 * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
3357 * options.c (g95_parse_arg): Ditto.
3358 * module.c (mio_symbol_attribute): Handle the always_explicit bit.
3359 * resolve.c (resolve_formal_arglist): The always_explicit sould be set
3360 for the procedure, not the parameter.
3361 * trans-array.c (g95_trans_g77_array): New function.
3362 (g95_trans_assumed_size): Use it.
3363 (g95_trans_dummy_array_bias): Ditto.
3364 (g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
3365 (g95_conv_expr_descriptor): ... to here. Update callers.
3366 * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
3367 (g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
3368 * trans-expr.c (g95_conv_function_call): Handle g77 arrays.
3369 * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
3370 * trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
3371 (g95_sym_type): Ditto.
3372
3373 2003-03-15 Paul Brook <paul@nowt.org>
3374
3375 * trans-array.c (g95_walk_elemental_function_args): Don't amputate the
3376 first chain.
3377 * trans-expr.c (g95_conv_function_call): Use the resolved symbol.
3378
3379 2003-03-14 Paul Brook <paul@nowt.org>
3380
3381 * trans-array.c (g95_array_is_packed): Remove.
3382 (g95_conv_array_base): Correctly handle all descriptorless cases.
3383 (g95_conv_array_stride): Use descriptorless strides.
3384 (g95_trans_dummy_array_bias): Don't always repack the array.
3385 (g95_build_dummy_array_decl): Automatic dummy arrays are only partial
3386 packed.
3387 * trans-types.c (g95_get_nodesc_array_type): Differentiate between
3388 dummy and non-dummy arrays...
3389 (g95_sym_type, g95_get_derived_type): ... like these.
3390 (g95_get_array_type_bounds): Allow discontiguous arrays.
3391
3392 2003-03-12 Paul Brook <paul@nowt.org>
3393
3394 * array.c (g95_resolve_array_spec): Fix comment.
3395 * g95.h (symbol_attributes): New flag always_explicit.
3396 * resolve.c (resolve_formal_arglist): Set it always_explicit.
3397 * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
3398 * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
3399 (g95_trans_array_bounds): Allow assumed shape arrays.
3400 (g95_trans_repack_array): Remove.
3401 (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
3402 * trans-decl.c (g95_build_qualified_array): Only ignore absent
3403 bounds for assumed size arrays.
3404 (g95_build_dummy_array_decl): Use descriptorless arrays.
3405 * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
3406 (g95_trans_pointer_assign): Fix typo.
3407 * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
3408 code.
3409 (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
3410 * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
3411 Also modify callers.
3412 * trans-types.h (g95_get_nodesc_array_type): Modify prototype.
3413
3414 2003-03-08 Paul Brook <paul@nowt.org>
3415
3416 * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
3417 (g95_conv_array_ubound): Provide dummy value for assumed size arrays.
3418 * resolve.c (compare_spec_to_ref): Allow full array sections.
3419
3420 2003-03-08 Paul Brook <paul@nowt.org>
3421
3422 * expr.c (g95_simplify_expr): Also simplify array index and
3423 substring expressions.
3424 * resolve.c (compare_spec_to_ref): Check for assumed size bounds.
3425 * trans-array.c (g95_trans_array_bounds): New function.
3426 (g95_trans_auto_array_allocation): Use it.
3427 (g95_trans_assumed_size): Rewrite.
3428 * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
3429 (gfor_fndecl_repack): Remove.
3430 (g95_build_qualified_array): Handle absent upper bounds.
3431 (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
3432 (g95_get_symbol_decl): Update.
3433 (g95_build_intrinsic_function_decls): Initialize new decls.
3434 * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
3435 (gfor_fndecl_repack): Remove.
3436 * trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
3437 * trans-types.c: (g95_build_array_type): Merge duplicated code..
3438 (g95_get_nodesc_array_type): Handle absent bounds.
3439 * trans-types.h (g95_get_nodesc_array_type): Declare.
3440
3441 2003-03-04 Paul Brook <paul@nowt.org>
3442
3443 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
3444 builtin-types.def.
3445
3446 2003-03-02 Paul Brook <paul@nowt.org>
3447
3448 * options.c (g95_init_options): Drfault to 1.
3449 (g95_pasrse_arg): Add -frepack-arrays, use strcmp.
3450 * trans-array.c (g95_conv_array_data, g95_conv_array_base,
3451 g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
3452 Handle non-constant size automatic arrays.
3453 (g95_conv_section_upper_bound, g95_conv_section_startstride): Use
3454 generic bound functions.
3455 (g95_trans_auto_array_allocation): Don't create a descriptor.
3456 (g95_trans_assumed_size): New function (broken).
3457 (g95_trans_dummy_array_bias): Remove unused var.
3458 * trans-array.h (g95_trans_assumed_size): Declare.
3459 * trans-decl.c (create_index_var): New fuction.
3460 (g95_build_qualified_array): New function.
3461 (g95_get_symbol_decl): Use it.
3462 (g95_trans_deferred_vars): Handle assumed shape seperately.
3463 * trans-types.c (get_element_type): Handle heap allocated arrays.
3464 (g95_is_nodesc_array): Include non-const size arrays.
3465 (g95_get_nodesc_array_type): Ditto.
3466
3467 2003-02-23 Paul Brook <paul@nowt.org>
3468
3469 * trans-array.c (g95_array_init_size): Should use stride, not size of
3470 last dimension.
3471
3472 2003-02-18 Paul Brook <paul@nowt.org>
3473
3474 * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
3475 after intrinsic function check.
3476
3477 2003-02-18 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3478
3479 * io.c (match_io): Fix missing return value and remove useless
3480 assignment.
3481 * match.c (g95_match): Remove useless assignment.
3482 * module.c (parse_string): Remove useless post increment.
3483 * simplify.c (g95_simplify_verify): Remove useless assignment.
3484
3485 2003-02-15 Paul Brook <paul@nowt.org>
3486
3487 * expr.c (restricted_intrinsic): Handle bad values gracefully.
3488 * g95.h (symbol_attribute): Add referenced member.
3489 (g95_symbol): Add dummy_order member.
3490 (g95_set_sym_referenced): Declare.
3491 * match.c (g95_match_assignment, g95_match_call): Use it
3492 * primary.c (match_actual_arg, g95_match_rvalue,
3493 g95_match_variable): Ditto.
3494 * symbol.c (next_dummy_order): New variable.
3495 (g95_set_sym_referenced): New function.
3496 (check_done): New function.
3497 (g95_add_*): Use it.
3498 * trans-decl.c: Make formatting conform to GCC standards.
3499 (g95_defer_symbol_init): Add dummy variables in the right order.
3500 (g95_get_symbol_decl): Only accept referenced variables.
3501 (g95_create_module_variable): Module variables are always required.
3502 (generatr_local_decls): New function.
3503 (generate_local_vars): New function.
3504 (g95_generate_function_code): Use it.
3505
3506 2003-02-13 Paul Brook <paul@nowt.org>
3507
3508 * trans-decl.c (g95_conv_struct_cons): Remove.
3509 (g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
3510 * trans-expr.c (g95_conv_structure): New function.
3511 (g95_conv_expr): Use it.
3512
3513 2003-02-09 Paul Brook <paul@nowt.org>
3514
3515 * trans-array.c (g95_array_init_size): Don't evaluate the linit
3516 expressions multiple times.
3517 (g95_trans_auto_arry_allocation): Use pointer not tmp.
3518
3519 2003-02-08 Paul Brook <paul@nowt.org>
3520
3521 * module.c (mio_symtree_ref): Declare as static.
3522 (mio_expr): Remove dead code.
3523 (read_module): Set the symtree link for fixups.
3524 * trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
3525 (build_round_expr): ... to this.
3526 (g95_conv_intrinsic_aint): New function.
3527 (g95_conv_intrinsic_function): Use it.
3528
3529 2003-02-08 Paul Brook <paul@nowt.org>
3530
3531 * trans-array.c (g95_trans_array_constructor_value): Use the acutal
3532 offset after modificaton, not the increment expression.
3533 * dependency.c: Kill excess whitespace.
3534
3535 2003-02-07 Sanjiv Gupta <sanjivg@noida.hcltech.com>
3536
3537 * dependency.h: Remove some function declarations.
3538 * dependency.c (get_no_of_elements): Change this function not to
3539 return int.
3540 * other: Add comments for all modified functions.
3541
3542 2003-02-06 Paul Brook <paul@nowt.org>
3543
3544 * g95spec.c (lang_specific_functions): Fix initializer warning.
3545 * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
3546 for structure type names.
3547 * trans-decl.c (g95_cons_structure_cons): New function.
3548 (g95_get_symbol_decl): Use it.
3549 * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
3550 referencing code.
3551
3552 2003-02-06 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3553
3554 * resolve.c (compare_cases): Add const to casts.
3555
3556 2003-01-30 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3557
3558 * g95.h (g95_check_f): Change a1 to f1m.
3559 * intrinsic.c (add_sym_1m, check_specific,
3560 g95_intrinsic_func_interface): Use it.
3561
3562 * module.c (init_pi_tree): Remove useless cast.
3563 (fp2): Fix argument type.
3564
3565 * parse.c (parse_select_block): Add comment.
3566
3567 2003-02-05 Toon Moene <toon@moene.indiv.nluug.nl>
3568
3569 * lang-options.h: Fix warning involving C90 concatenated
3570 strings.
3571
3572 2003-02-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
3573 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3574
3575 * io.c (format_asterisk): Complete initializer to kill warning.
3576 * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
3577 DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
3578 (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
3579 new defines to complete initializers. Kills all warnings.
3580
3581 * Make-lang.in: Comment cleanup.
3582
3583 2003-02-05 Paul Brook <paul@nowt.org>
3584
3585 * array.c (g95_free_constructor): Handle NULL expressions.
3586 * resolve.c (resolve_structure_cons): Ditto.
3587 * decl.c (g95_match_null): New Function.
3588 (variable_decl): Use it.
3589 * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
3590 * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
3591 * trans-types.c (g95_set_decl_attributes): Remove empty function.
3592
3593 2003-02-05 Paul Brook <paul@nowt.org>
3594
3595 * trans.h (build1_v): New macro.
3596 (build_v): Remove pointless and incorrect prototype.
3597 * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
3598 * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.
3599
3600 2003-02-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
3601
3602 * Make-lang.in (F95_OBJS): Remove one more dead file.
3603
3604 2003-02-01 Paul Brook <paul@nowt.org>
3605
3606 * lang-specs.h: Don't pass -ffixed-form to the linker.
3607 * trans-decl.c (g95_generate_function_code): Clear saved decl chain.
3608
3609 2003-02-01 Paul Brook <paul@nowt.org>
3610
3611 * Make-lang.in (F95_OBJS): Remove dead files.
3612 * trans-array.c (g95_array_init_size): Do the right thing when
3613 ubound=NULL.
3614 * trans-decl.c (g95_generate_function_code): Initialize deffered
3615 symbol list before translating contained subroutines.
3616 * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
3617 scalar invariant values here...
3618 (g95_conv_variable, g95_conv_function_call): ... instead of here ...
3619 * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.
3620
3621 2003-01-29 Paul Brook <paul@nowt.org>
3622
3623 * trans-array.c (g95_add_loop_code): Put pre code in the right block.
3624 (g95_walk_elemental_function_args): Reverse chains before adding.
3625 (g95_reverse_ss): Move about a bit.
3626 * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
3627 function arguments.
3628
3629 2003-01-28 Paul Brook <paul@nowt.org>
3630
3631 * intrinsic.c (resolve_intrinsic): Use correct union member.
3632 * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
3633 parameters.
3634 * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
3635 use associated variables.
3636 * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
3637 * trans-expr.c (g95_conv_expr_present): ... to here.
3638 * trans.h: Declare it.
3639 * trans-types.c (g95_sym_type): Assume subroutine if not specified.
3640
3641 2003-01-28 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3642
3643 * array.c (expand_iterator): Suppress useless assignment.
3644 * decl.c (match_char_spec): Ditto.
3645 * io.c (match_io_iterator): Ditto.
3646 * primary.c (match_real_constant): Ditto.
3647 * interface.c (fold_unary, g95_free_interface, g95_extend_expr):
3648 Ditto. Also, use g95_intrinsic_op not int for intrinsic operators.
3649 * matchexp.c (match_add_operand, match_level_5): Likewise.
3650 * module.c (parse_atom, find_enum): Likewise.
3651 * resolve.c: move #include <string.h>
3652 (resolve_select): Fix serious typo.
3653
3654 2003-01-28 Steven Bosscher <s.bosscher@student.tudelft.n>
3655
3656 * Make-lang.in: Don't build with broken tree-ssa-pre.
3657
3658 2003-01-28 Steven Bosscher <s.bosscher@student.tudelft.nl>
3659
3660 * resolve.c (resolve_index): Add a TODO.
3661 * symbol.c: Remove useless "#include <ctype.h>".
3662
3663 2003-01-27 Paul Brook <paul@nowt.org>
3664
3665 * check.c (check_rest): Allow different type kinds as an extension.
3666 * g95.h (g95_resolve_f): Add f1m.
3667 * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
3668 * intrinsic.h: Chenge prototypes for MIN and MAX.
3669 * iresolve.c (g95_resolve_minmax): New function.
3670 (g95_resolve_min, g95_resolve_max): Use it.
3671 * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
3672 arguments once.
3673 (g95_conv_intrinsic_present): Fix logic.
3674
3675 2003-01-27 Steven Bossche <s.bosscher@student.tudelft.nl>
3676
3677 * g95.h (g95_case): Don't be a tree, be a double linked list.
3678 * match.c (match_case_selector): Remove redundant semantics check.
3679 Clean up a few goto's to make it a tiny little bit faster.
3680 * resolve.c (case_tree): Die.
3681 (compare_cases): Accept and compare unbounded cases too.
3682 (check_case_overlap): Don't build a tree. Instead, merge-sort the
3683 whole list of g95_cases passed from resolve_select.
3684 (sane_logical_select): Die.
3685 (check_case_expr): Return FAILURE if a CASE label is of the wrong
3686 type kind.
3687 (resolve_select): Fixup case expression for computed GOTOs, put it
3688 in expr, not expr2, for easier handing in the parse tree dumper and
3689 the code generator. Rewrite the rest of the function: Kill
3690 unreachable case labels and unreachable case blocks.
3691 * dump-parse-tree.c (g95_show_code_node): Always dump expr for
3692 an EXEC_SELECT, not case2 anymore.
3693 * trans-const.c (g95_conv_constant_to_tree): New function.
3694 (g95_conv_constant): Use it.
3695 * trans-const.h: Declare prototype for the new function.
3696 * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
3697 g95_trans_character_select): New static functions.
3698 (g95_trans_select): Rewrite.
3699
3700 2003-01-26 Paul Brook <paul@nowt.org>
3701
3702 * intrinsic.c (add_fnctions): Properly add dreal.
3703 * trans-intrinsic.c (g95_conv_intrinsic_present): New function.
3704 (g95_conv_intrinsic_function): Use it.
3705 * trans-io.c (build_dt): Abort on internal files (unimplemented).
3706
3707 2003-01-26 Paul Brook <paul@nowt.org>
3708
3709 Widespread changes to the handling of symbols in expressions. These
3710 are now linked via g95_symtree nodes.
3711 * parse.c (g95_fixup_sibling symbols): New function.
3712 (parse_contained): Use it.
3713 * g95.h (symbol_attribute): Add contained. Indicates a symbol is a
3714 contained procedure that has bee correctly fixed up.
3715 (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.
3716
3717 2003-01-24 Paul Brook <paul@nowt.org>
3718
3719 * trans-array.c (g95_walk_expr): Function result attributes are in
3720 sym->result.
3721 * trans-expr.c (g95_conv_function_call,
3722 g95_trans_arrayfunc_assign): Ditto.
3723 * trans-decl.c (g95_get_symbol_for_expr): Set sym->result.
3724
3725 2003-01-23 Steven Bosscher <s.bosscher@student.tudelft.nl>
3726
3727 * expr.c (check_restricted): Fix error message.
3728 * symbol.c (free_st_labels): Plug memleak.
3729
3730 2003-01-22 Steven Bosscher <s.bosscher@student.tudelft.nl>
3731
3732 * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
3733 reduce_binary_aa, reduce_binary, eval_intrinsic,
3734 eval_intrinsic_f2): Use typesafe prototypes for eval functions.
3735 * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
3736 for typesafe intrinsics helper functions.
3737 (g95_intrinsic_sym): Use them.
3738 * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
3739 add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
3740 add_sym_5, add_conv, resolve_intrinsic, do_simplify,
3741 check_specific, g95_intrinsic_func_interface,
3742 g95_intrinsic_sub_interface): Adjust all calls to intrinsics
3743 helper functions.
3744 * trans-decl.c (g95_get_extern_function_decl): Likewise.
3745 * Make-lang.in: Don't disable warnings for strict prototypes
3746 any longer, everything is typesafe now.
3747
3748 2003-01-22 Steven Bosscher <s.bosscher@student.tudelft.nl>
3749
3750 * bbt.c (duplicate_node): Make static.
3751 * module.c (module_name): Make static.
3752 * scanner.c (include_dirs): Make static.
3753
3754 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
3755
3756 Hard coded _gfor_'s should not show up anymore.
3757 * g95.h (PREFIX): New macro.
3758 * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
3759 hard-coded "_gfor".
3760 (g95_resolve_random_number): Likewise.
3761 * trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
3762 * trans-io.c: Remove 'prefix' macro. Replace all uses with
3763 the new PREFIX macro from g95.h.
3764
3765 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
3766
3767 The troubles of forking... Andy implemented this just now too.
3768 Let's stick to that and keep the trees close.
3769 * g95.h (g95_st_label): 'format' member is now a g95_expr.
3770 * io.c: Revert previous changes.
3771 (g95_match_format): Match the format string as a character
3772 literal expression.
3773 * match.h (g95_statement_label): Declare external.
3774 * parse.c: Revert previous changes.
3775 * symbol.c (g95_free_st_label): Free a g95_expr instead
3776 if a 'char *'.
3777 * trans-io.c: Revert previous changes.
3778 (build_dt): Use set_string to set the format string.
3779
3780 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
3781
3782 * io.c (format_string): Make non-static.
3783 (g95_match_format): Remember the format string.
3784 (terminate_io): Add I/O termination for empty I/O lists.
3785 * match.h: Declare external format_string.
3786 * parse.c (check_statement_label): Attack the format string
3787 to a format label for FORMAT statements.
3788 * trans-io.c (g95_add_field): Define prefix macro. Replace
3789 all uses of PREFIX define with a use of this macro.
3790 (build_dt): Implement formatted I/O for format labels.
3791
3792 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
3793
3794 * lang-options.h: Kill "-std=F".
3795 * options.c: Remove unimplemented "-std=F". Modify
3796 web address.
3797 * misc.c (g95_terminal_width): New function.
3798 * error.c (g95_error_init_1): Use g95_terminal_width.
3799 * g95.h: Add prototype for g95_terminal_width, remove
3800 fmode flag.
3801
3802 2003-01-19 Steven Bosscher <s.bosscher@student.tudelft.nl>
3803
3804 * Make-lang.in: Fix typo.
3805
3806 2003-01-18 Steven Bosscher <s.bosscher@student.tudelft.nl>
3807
3808 * g95.h (struct g95_case): Remove unused cruft, new member
3809 'where' to keep track of the locus of the default case.
3810 * match.c (g95_match_case): Add locus to the current case.
3811 (match_case_selector): Likewise.
3812 * parse.c (parse_select_block): Move semantics check for
3813 multiple DEFAULT cases out of here to...
3814 * resolve.c (check_case_overlap): ...here. Return sooner
3815 when possible.
3816 (check_case_expr): Take two g95_cases now, use to sure the
3817 expression kinds are the same.
3818 (resolve_select): Cleanup.
3819
3820 2003-01-18 Paul Brook <paul@nowt.org>
3821
3822 * trans-io.c: Fix typos in ported IO work (set_fla[tg]).
3823 * trans-decl.c (g95_set_symbol_decl): Handle non-array result
3824 variables.
3825 (g95_get_extern_function_decl): Put decls in the correct context.
3826
3827 2003-01-18 Steven Bosscher <s.bosscher@student.tudelft.nl>
3828
3829 * trans-io.c: Port changes from Andy to set ERR flag.
3830
3831 2003-01-17 Paul Brook <paul@nowt.org>
3832
3833 * trans-array.c: Add various comments.
3834 (g95_ss_terminator): Declare as const.
3835 (g95_walk_expr): Remove first parameter and update all callers.
3836 (g95_walk_op_expr): Initialize scalar SS properly.
3837 * trans-array.h (g95_walk_expr): Update prototype.
3838 * trans-expr.c: Update for new g95_walk_expr.
3839 * trans-intrinsic.c: Ditto.
3840 * trans-io.c: Ditto.
3841 * trans.h: Various comments for SS chains.
3842
3843 2003-01-17 Paul Brook <paul@nowt.org>
3844
3845 * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
3846 and RRSPACING.
3847 * intrinsic.c (add_functions): Use them.
3848 * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
3849 * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.
3850
3851 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
3852
3853 Fallout of a small merge conflict:
3854 * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).
3855
3856 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
3857
3858 * initrinsic.c: New add_sym_* functions for strong typing.
3859 (add_conv): Make prototype strict.
3860 * dump-parse-tree.c, dependency.c: Include config.h
3861 * resolve.c, trans-io.c: Fix typos.
3862
3863 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
3864
3865 * dump-parse-tree.c (g95_show_code_node): Show the
3866 condition for a computed GOTO that was transformed
3867 to a SELECT CASE construct.
3868 * resolve.c (check_case_overlap): Revert previous switch
3869 to treaps, it was too slow and didn't catch all trouble.
3870 (resolve_symbol): Be more flexible about module procedures.
3871 * symbol.c (check_conflict): Point to relevant section in
3872 the standard for dubious conflict. Allow procedure
3873 dummy arguments to be optional again.
3874 * trans-io (add_field): Rename to g95_add_field. Change
3875 all callers.
3876 * trans-stmt (trans_select): Handle unbounded cases for
3877 integer SELECT CASE constructs. Fix/add more comment.
3878
3879 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
3880
3881 * g95.h: Uses GCC's function attribute macros.
3882 * error.c, module.c, parse.c, g95.h: More function attributes.
3883
3884 2003-01-16 Steven Bosscher <s.bosscher@student.tudelft.nl>
3885 Forgot a file...
3886 * trans-decl.c (get_label_decl): Use TREE_LINENO instead
3887 of DECL_SOURCE_LINE, and TREE_FILENAME instead of
3888 DECL_SOURCE_FILE.
3889
3890 2003-01-16 Steven Bosscher <s.bosscher@student.tudelft.nl>
3891
3892 * f95-lang.c (pushdecl): Use TREE_LINENO instead of
3893 DECL_SOURCE_LINE.
3894 * trans.c (g95_trans_code): Use annotate_all_with_file_line
3895 instead of nowdead wrap_all_with_wfl.
3896
3897 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
3898
3899 * parse.c (g95_parse_file): In verbose mode, dump the parse tree
3900 before generating code, so we can still see it even if the code
3901 generation phase dies.
3902
3903 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
3904
3905 * decl.c (build_sym): Split out initialization expression parts...
3906 (add_init_expr_to_sym): ...to here.
3907 (variable_decl): Add the symbol following an attribute list to the
3908 symbol tree before parsing the optional initialization expression
3909 if the symbol is not of a derived type.
3910 * primary.c (g95_match_rvalue): Don't assume a symbol always has
3911 a value if it is a PARAMETER.
3912
3913 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
3914
3915 * misc.c: Don't #include <mcheck.h>
3916 * module.c: Ditto. Kill uses of mtrace, muntrace. If there
3917 ever was a glibc bug, then either this was never reported to
3918 glibc people, or it has been fixed for so long that there's
3919 no information you can find about it, anywhere.
3920
3921 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
3922
3923 Fix warnings:
3924 * module.c (attr_bits, bt_types, array_spec_types):
3925 Switch 'const' and 'static'.
3926 * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.
3927
3928 GNU'ify source code:
3929 * trans-io.c: Numerous fixes, one fixed warning and a few
3930 TODO markers so that we don't forget about them.
3931
3932 2003-01-13 Paul Brook <paul@nowt.org>
3933
3934 * intrinsic.c (add_functions): Add G95_ISYM_SCALE.
3935 * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
3936 Add G95_ISYM_SCALE.
3937 * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
3938 * match.c (g95_match_stop): Fix dumb == -> != error.
3939
3940 2003-01-13 Steven Bosscher <s.bosscher@student.tudelft.nl>
3941
3942 * dump-parse-tree.c (show_indent): Add line breaks. This
3943 whole dumping process needs cleanups.
3944 * f95-lang.c (g95_mark_addressable): Fix prototype to match
3945 the langhook. Fix 'return's accordingly.
3946 * g95-support.h: Adjust prototype.
3947 * g95.h: Add 'no_backend' member to 'g95_option_t' struct.
3948 * lang-options.h: Add '-fsyntax-only'.
3949 * options.c (g95_init_options): Init 'no_backend'.
3950 (g95_parse_arg): Deal with '-fsyntax-only'.
3951 * parse.c (g95_parse_file): Do not generate code if 'no_backend'
3952 is set.
3953
3954 2003-01-13 Steven Bosscher <s.bosscher@student.tudelft.nl>
3955 Patch from Arnaud
3956 * resolve.c (resolve_symbol): Assumed shape arrays must be dummy
3957 arguments. Also make sure that if a symbol is marked INTRINSIC,
3958 an intrinsic with the symbol's name actually exists.
3959 (check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
3960 Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
3961 ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.
3962
3963 2003-01-13 Steven Bosscher <s.bosscher@student.tudelft.nl>
3964
3965 * resolve.c (resolve_contained_functions): Fix condition, don't
3966 throw internal_error if a child namespace has no name. Apparently
3967 this can be the case?
3968
3969 2003-01-11 Paul Brook <paul@nowt.org>
3970
3971 Port changes from Andy's tree:
3972 * g95.h (g95_code): Add stop_code.
3973 * match.c (g95_match_stop): Detter syntax checking.
3974 * resolve.c (resolve_generic_f0): Return match type.
3975 (resolve_generic_f): Remove dead/duplicated code.
3976 (resolve_specific_f): Ditto.
3977 * dump-parse-tree.c (g95_show_code_node): Handle new STOP format.
3978 * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes.
3979 * trans-stmt.c (g95_trans_stop): Handle new STOP format.
3980
3981 2003-01-11 Paul Brook <paul@nowt.org>
3982
3983 * trans-array.c: Various documentation/comment changes.
3984 * trans-stmt.c: Ditto.
3985
3986
3987 2003-01-10 Paul Brook <paul@nowt.org>
3988
3989 * options.c/h: Add -fdump-parse-tree as alias of -v.
3990
3991 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
3992
3993 * dump-parse-tree.c (g95_show_namespace): Fixed another
3994 typo. Sorry, it's Friday...
3995
3996 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
3997
3998 Spotted by Tobi:
3999 * trans-array.c, trans-array.h, trans.c, trans-const.c,
4000 trans-const.h, trans-decl.c, trans-expr.c, trans.h
4001 trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h
4002 trans-types.c: Fix bogus copyright years, add 2003.
4003 * trans-types.h: Give copyright header.
4004
4005 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
4006
4007 * dump-parse-tree.c (g95_show_namespace): Fixed typo.
4008 * expr.c, options.c, scanner.c: Add some more 'const' markers.
4009 * intrinsic.c: Some constant strings moved to read-only memory.
4010 * io.c (format_asterisk): Move to...
4011 * g95.h: ...here.
4012
4013 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
4014
4015 * dump-parse-tree.c (g95_show_namespace): Dump implicit
4016 types for ranges instead of per-letter. Indent the
4017 'CONTAINS' just like everything else.
4018 * resolve.c (resolve_contained_functions): Clarify comment.
4019 Explain non-obvious conditional expression. Improve
4020 diagnostics if tyoe cannot be resolved.
4021 Port semi-fix from Andy's tree:
4022 (was_declared): Move up before first use.
4023 (generic_sym, specific_sym): New functions. Code moved
4024 out if procedure_kind.
4025 (procedure_kind): Simplify using new functions.
4026 (resolve_generic_f): Make sure the functions we find in
4027 a parent namespace is generic.
4028 (resolve_specific_f): Ditto for specific functions.
4029
4030 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
4031
4032 * trans-stmt.c, trans.c: Fix some code style issues. Add
4033 some more comment (but still not enough!).
4034
4035 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
4036
4037 * symbol.c (flavors, procedures, intents, acces_types,
4038 access_types, ifsrc_types): Make const.
4039 * misc.c (g95_string2code): Make 'm' param 'const'.
4040 * module.c (find_enum, write_atom, mio_name): Make
4041 'm' param 'const'.
4042 (attr_bits, bt_types, array_spec_types, array_ref_types,
4043 ref_types, expr_types): Make const.
4044 * g95.h: Adjust external decls.
4045
4046 2003-01-09 Paul Brook <paul@nowt.org>
4047
4048 * Testsuite: Add a load of new cases.
4049
4050 2003-01-08 Steven Bosscher <s.bosscher@student.tudelft.nl>
4051
4052 * Make-file.in: Add dependency on back end header files;
4053 a parallel build should work now.
4054 * f95-lang-c (lang_identifier): Remove bogus comment.
4055 (g95_be_parse_file): Fix prototype.
4056 (g95_init): Make static.
4057 (g95_finish): Make static.
4058 * error.c (g95_syntax_error): Kill. Make define in...
4059 * g95.h (g95_syntax_error): Define.
4060 (g95.options): Make 'source' member 'const'.
4061 * interface.c (g95_match_interface): Explain
4062 hard-to-read condition.
4063 (g95_match_end_interface): Ditto.
4064 * trans_const.c (g95_build_string_const): Make 's' parameter
4065 'const'.
4066 * trans_const.h: Adjust protoype accordingly.
4067 * trans-decl.c: Include tree-dump.h
4068 (g95_generate_function_code): Build fixes for recent changes
4069 in the tree-ssa branch.
4070
4071 2003-01-08 Steven Bosscher <s.bosscher@student.tudelft.nl>
4072
4073 * format.c: Kill, move code from here...
4074 * io.c: ...to here.
4075 * Make-lang.in: Adjust.
4076 * MANIFEST: Ditto.
4077 * match.h: Ditto.
4078 * BUGS: Mention where to submit bugs. Move old content...
4079 * TODO: ...to here. New file.
4080
4081 2003-01-08 Steven Bosscher <s.bosscher@student.tudelft.nl>
4082 Fix most warnings, and suppress the ones we can't fix for now.
4083 * Make-lang.in: Suppress warnings about bad proto's in g95.h,
4084 these warnings just clutter the screen and there's not much
4085 we can do about them for now anyway.
4086 * check.c, iresolve.c: Mark unused function parameters.
4087 * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN,
4088 they should be resolved before they get here.
4089 * error.c: Remove unused FILE *status_out.
4090 * f95-lang.c (g95_init): Remove bogus cast.
4091 * Many files: Make things 'const' where required.
4092 * g95.h: Fix prototypes for all modified functions above.
4093 (g95_options): Remove 'object' member.
4094
4095 2003-01-07 Steven Bosscher <s.bosscher@student.tudelft.nl>
4096
4097 * Make-file.in: Cleanup bogus targets. Add more comment.
4098 * lang-options.h: New option '-w'.
4099 * g95.h: add no_options field to struct g95_options.
4100 * options.c (g95_init_options): Default no_warnings to off.
4101 (g95_parse_arg): Recognise the '-w' switch and its alias,
4102 '-fno-warnings'.
4103 * error.c (g95_warning, g95_warning_now): Don't emit warning if
4104 no_warning option is set.
4105 * iresolve.c (g95_resolve_shape): Fix warning.
4106
4107 2003-01-07 Steven Bosscher <s.bosscher@student.tudelft.nl>
4108
4109 * primary.c (g95_next_string_char): Rename next_string_char, and
4110 make static. Adjust callers accordingly.
4111 * resolve.c (resolve_generic_f0): Return try, not match. Adjust
4112 callers accordingly.
4113 * g95.h: Split out all g95_match* functions to...
4114 * match.h: ...here. New file.
4115 * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c,
4116 matchexp.c, module.c, parse.c, primary.c: Inlcude match.h
4117
4118 2003-01-07 Steven Bosscher <s.bosscher@student.tudelft.nl>
4119
4120 * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range,
4121 g95_merge_new_implicit): New functions.
4122 (g95_match_implicit_none, g95_match_implicit): Move from here...
4123 * match.c (g95_match_implicit_none, g95_match_implicit): ... to here.
4124 Modify to use the new functions in symbol.c.
4125 * g95.h: Add and move prototypes.
4126
4127 2003-01-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
4128
4129 * bbt.c (insert): Use a typedef'ed compare_fn prototype for the
4130 node compare function.
4131 (g95_insert_bbt): Likewise.
4132 (g95_insert_bbt_with_overlap): Likewise.
4133 (g95_delete_bbt): Likewise.
4134 (delete_treap): Likewise. Also fix a potential bug when calling it.
4135 * module.c (compare_pointers): Change proto to compare_fn.
4136 (compare_integers): Likewise.
4137 (compare_true_names): Likewise.
4138 (find_true_name): Adjust call to compare_true_names to match proto.
4139 (require_atom, write_atom, mio_name): Fix 'const' warnings.
4140 (init_pi_tree): Make compare a compare_fn instead of (int *).
4141 * resolve.c (compare_cases): Change proto to compare_fn.
4142 * symbol.c (g95_compare_symtree): Change proto to compare_fn, make
4143 it static, and rename to compare_symtree.
4144 (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed
4145 function.
4146 * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes
4147 of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt.
4148
4149 2003-01-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
4150 * Make-lang.in: Fix spaces/tabs issues from previous patch.
4151 * patch.options: Blow away Paul's checkin mistake :-)
4152 * io.c (terminate_io): Fix memory leak (Arnaud).
4153
4154 2003-01-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
4155
4156 * Make-lang.in: Teach about building DVI, info manual.
4157 * g95.texi: New file.
4158
4159 2003-01-02 Paul Brook <paul@nowt.org>
4160
4161 * trans-array.c (g95_reverse_ss): Make static and don't use.
4162 (g95_conv_ss_descriptor): Don't use g95_loopinfo
4163 (g95_conv_array_parameters): Modify for pointer assignments.
4164 (g95_walk_subexpr): New function.
4165 (g95_walk_expr*): Use it.
4166 * trans-array.h (g95_reverse_ss): Remove prototype.
4167 * trans-expr.c (g95_trans_pointer_assign): Implement.
4168 (Many): Set se.want_pointer before calling g95_conv_array_parameter.
4169 * trans-intrinsic.c: Sync with scalarizer changes.
4170 * trans-io.c: Ditto.
4171
4172 2002-12-29 Paul Brook <paul@nowt.org>
4173
4174 * trans-array.c: Document calling convention for arrays.
4175
4176 2002-12-19 Paul Brook <paul@nowt.org>
4177
4178 * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect
4179 assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass
4180 optional parameters for some intrinsics.
4181 (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE.
4182 * trans-expr.c (g95_conv_function_call): Pass NULL for absent
4183 optional parameters.
4184 * trans.h (g95_se): Add ignore_optional flag.
4185
4186 2002-12-15 Paul Brook <paul@nowt.org>
4187
4188 * trans-array.c (g95_conv_array_parameter): Fix partial rank sections.
4189 * trans-decl.c (g95_generate_function_code): Use TDI_original.
4190
4191 2002-12-14 Paul Brook <paul@nowt.org>
4192
4193 * trans-stmt.c (g95_trans_call): Use resolved symbol name.
4194
4195 2002-12-12 Paul Brook <paul@nowt.org>
4196
4197 * trans-array.c (g95_trans_array_constructor_subarray): Fully
4198 initialize the scalarizer.
4199 (various): Update to new format of g95_expr->value.constructor.
4200
4201 2002-12-08 Paul Brook <paul@nowt.org>
4202
4203 * trans-array.c (g95_put_offset_into_var): New function.
4204 (g95_trans_array_constructor_subarray): New function.
4205 (g95_trans_array_constructor_value): Use it.
4206 (g95_array_cons_size): Don't abort() on array components.
4207
4208 2002-12-08 Paul Brook <paul@nowt.org>
4209
4210 * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o.
4211 * support.c: Update #includes.
4212 (statement_code_p, c_size_in_bytes, s_size_type_node): Remove.
4213 * trans-array.c: Update #includes.
4214 * trans.c: Ditto.
4215 * trans-const.c: Ditto.
4216 * trans-io.c: Ditto.
4217 * trans-types.c: Ditto.
4218 (g95_init_types): Set size_type_node.
4219 * trans-decl.c: Update #includes.
4220 (gfor_fndecl_adjust{l,r}): Declare and initialize.
4221 * trans-stmt.c: Update #includes.
4222 (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR.
4223 (g95_trans_select): Fix check for unbounded ranges.
4224 * trans-expr.c: Update #includes.
4225 (g95_conv_string_tmp): New function.
4226 (g95_conv_concat_op): Use it.
4227 * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare.
4228 * Trans-intrisic.c: Update #includes.
4229 (g95_conv_intrinsic_strcmp): New function.
4230 (g95_conv_intrinsic_adjust): Ditto.
4231 (g95_conv_intrinsic_function: Use them.
4232
4233 2002-11-30 Paul Brook <paul@nowt.org>
4234
4235 * trans-array.c (g95_walk_function_expr): Handle non-array return by
4236 reference.
4237 * trans-dec.c (g95_build_function_decl): Handle character return
4238 parammeters.
4239 (g95_get_fake_result_decl): Ditto.
4240 (g95_trans_deferred_vars): Ditto.
4241 * trans-expr.c (g95_conv_function_call): Ditto.
4242 (g95_trans_arrayfunc_assign) Limit to array valued functions.
4243 * trans-intrinsic.c (g95_conv_intrinsic_char): New function.
4244 (g95_conv_intrinsic_function): Use it.
4245 * trans-types.c (g95_sym_type): Handle functions returning strings.
4246 (g95_return_by_reference): Ditto.
4247 (g95_get_function_type): Ditto.
4248
4249 2002-11-18 Paul Brook <paul@nowt.org>
4250
4251 * trans-stmt.c (g95_trans_if): Fix IF statements when the condition
4252 requires a temporary.
4253 (g95_trans_select): Handle computed gotos.
4254 * trans-types.c (g95_build_array_type): Warn about non-functional
4255 assumed shape arrays.
4256 * trans-expr.c (g95_trans_scalar_assign): Correctly handle post
4257 blocks.
4258 * trans-intrinsic.c (g95_conv_intrinsic_round): New function.
4259 (g95_conv_intrinsic_int): New function.
4260 (g95_conv_intrinsic_mod): New function.
4261 (g95_conv_intrinsic_ichar): New function.
4262 (g95_conv_intrinsic_function): Use them.
4263 (g95_conv_intrinsic_dim): Use g95_evaluate_now.
4264
4265 2002-11-17 Toon Moene <toon@moene.indiv.nluug.nl>
4266
4267 * trans-types.c (g95_build_array_type): Assumed
4268 sized arrays can have rank > 1.
4269 * trans.c (g95_trans_code): Remove erroneous
4270 warning about CONTINUE.
4271 * trans-expr.c (g95_conv_variable): Remove
4272 erroneous assert.
4273
4274 2002-11-15 Paul Brook <paul@nowt.org>
4275
4276 * trans-array.c (g95_conv_array_parameter): Check for NULL stride.
4277
4278 2002-10-31 Paul Brook <paul@nowt.org>
4279
4280 * f95-tree.c: Remove tree copying stuff that's now in gimple.c
4281 * trans-expr.c (g95_conv_component_ref): Handle character string
4282 components.
4283 (g95_conv_string_parameter): Ditto.
4284 * trans-types.c (g95_get_derived_type): Add length decl to caracter
4285 string components.
4286
4287 2002-10-10 Paul Brook <paul@nowt.org>
4288
4289 * trans-decl.c (gfor_fndecl_size?): Declare and initialize.
4290 * trans-expr.c (g95_conv_function_call): Remove unreliable return value
4291 check.
4292 * trans-intrinsic.c (g95_conv_intrinsic_size): New function.
4293 (g95_conv_intrinsic_function): Handle size and shape intrinsics.
4294 (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE.
4295 * trans-types.c (pvoid_type_node): Declare and initialize.
4296 * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT
4297 (g95_array_allocate): Fix when base==data.
4298 (g95_conv_array_parameter): Correctly handle reduced rank sections.
4299 * trans-io.c (g95_trans_write): Correctly handle string modifiers.
4300
4301 2002-10-09 Paul Brook <paul@nowt.org>
4302
4303 * (g95_conv_expr_reference): Handle character strings correctly.
4304
4305 2002-10-07 Paul Brook <paul@nowt.org>
4306
4307 (g95_expand_decl): Rename from f95_expand_decl_stmt and use as
4308 langhook.
4309 * trans-array.c (g95_build_array_initializer): Remove.
4310 (g95_conv_array_initializer): New Function.
4311 (g95_trans_auto_arry_allocation): Cleanup.
4312 (g95_trans_init_character_array): Remove.
4313 * g95spec.c: Link in libgforbegin.
4314 * trans.c (g95_generate_code): Rename main function to MAIN__.
4315 (g95_create_var): New function.
4316 (g95_create_var_np): New function.
4317 (g95_evaluate_now): New function.
4318 (g95_start_block): New function.
4319 (g95_finish_block): New function.
4320 (g95_add_expr_to_block): New function.
4321 (g95_add_block_to_block): New function.
4322 * trans-expr.c (g95_conv_componen_ref): New function.
4323 * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o.
4324 (F95_OBJS): Add dependency.o.
4325 * f95-lang.c (g95_is_simple_stmt): Remove.
4326 * f95-tree.c (mark_not_simple): New function.
4327 (unshare_all_trees): New function.
4328 (create_tmp_var, create_tmp_alias_var): Remove.
4329 * support.c (declare_tmp_vars, tree_last_decl): Remove.
4330 * trans*: Convert to new IR using GENERIC trees. Don't bother about
4331 SIMPLE/GIMPLE rules, this is now done by Lang-independant code.
4332
4333 2002-10-01 Paul Brook <paul@nowt.org>
4334
4335 * trans-array.c: Add support for descriptorless arrays.
4336 (g95_conv_array_data): New function.
4337 (g95_conv_array_base): New function.
4338 * trans-array.h: Declare these here.
4339 * trans-decl.c(g95_create_mopdule_variable): Perform variable
4340 initialization and creation here.
4341 (g95_create_module_vars): Instead of here.
4342 * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*.
4343 * trans-intrinsic.c: Ditto.
4344 * trans-types.c (g95_is_nodesc_array): New function.
4345 (g95_get_nodesc_array_type): New function.
4346 (g95_sym_type, g95_get_derived_type): Use them.
4347 * trans-const.c (g95_conv_mpf_to_tree): Remove workaround.
4348
4349 2002-09-28 Paul Brook <paul@nowt.org>
4350
4351 * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug.
4352 * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex
4353 parameters.
4354
4355 2002-09-24 Paul Brook <paul@nowt.org>
4356
4357 * f95-lang.c (listify): Remove declaration.
4358 (expand_function_body): Use optimize >=1 instead of flag_tree_saa.
4359 (listify)
4360 * f95-tree.c (get_name): New function.
4361 * trans.c (module_namespace): Remove.
4362 * trans-decl.c: Use g95_chainon_list rather than chainon(listify()).
4363 * trans-types.c: Ditto.
4364
4365 2002-09-19 Paul Brook <paul@nowt.org>
4366
4367 * trans-array.c (g95_get_array_cons_size): New Function.
4368 (g95_con_ss_startstride): Handle Array constructors.
4369 (g95_conv_loop_setup): Ditto.
4370 (g95_conv_array_parameter): Ditto.
4371 * tras-decl.c (g95_finish_var_decl): Make initializes variables
4372 static.
4373
4374 2002-09-19 Paul Brook <paul@nowt.org>
4375
4376 * trans.c (g95_simple_fold_tmp): Detect variables inside
4377 NON_LVALUE_EXPR.
4378 * trans-stmt.c (g95_trans_arithmetic_if): Implement this.
4379
4380 2002-09-18 Steven Bosscher <s.bosscher@student.tudelft.nl>
4381
4382 * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o
4383
4384 2002-09-14 Paul Brook <paul@nowt.org>
4385
4386 * trans.c (g95_create_module_variable): Move to trans-decl.c.
4387 * trans-const.c (g95_conv_string_init): New Function.
4388 * trans-const.h: Declare it.
4389 * trans-decl.c (g95_get_symbol_decl): Handle initializers for static
4390 variables. Don't bail on intrinsic symbols.
4391 (get_extern_function_decl): Handle specific intrinsic functions.
4392 * trans-types.c (g95_sym_type): Dummy functions don't return
4393 reference types.
4394 * trans-array.c (g95_build_array_initializer): New Function.
4395 (g95_trans_auto_array_allocation): Build initializer for static decls.
4396 Don't use mpz_addmul, it's GMP4 only.
4397
4398 2002-09-12 Paul Brook <paul@nowt.org>
4399
4400 * trans-decl.c (g95_generate_code): Fix thinko with return variable.
4401 (g95_get_extern_function_decl, g95_build_function_decl): Mangle
4402 assembler names for module procedures.
4403
4404 2002-09-11 Tobias Schlueter <Tobias.Schlueter@physik.uni-muenchen.de>
4405
4406 * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of
4407 dependency/
4408
4409 2002-09-10 Paul Brook <paul@nowt.org>
4410
4411 * trans-array.c: Change format of G95_SS_TEMP strictures.
4412 (g95_check_fncall_dependancy): New function.
4413 (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating
4414 offsets.
4415 * trans-decl.c (g95_get_symbol_decl): move assertion after handling of
4416 result variables.
4417 (g95_build_function_decl): Don't assume result arrays are packed.
4418 (g95_trans-deferred-vars): Handle array result variables.
4419 (g95_generate_fuction_code): Clear saved_function_decls.
4420 * trans-expr.c (g95_conv_fnction_call): Handle direct array return by
4421 reference.
4422 (g95_trans_arrayfunc_assign): New function.
4423 (g95_trans_assignment): Use it.
4424 * trans.h (g95_ss): Add temp struct for G95_SS_TEMP.
4425 (g95_se): Add direct_byref.
4426 * trans-types.c: Use sym->result rather than sym where appropriate.
4427 * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function.
4428 Update other functions to use this.
4429 (g95_is_intrinsic_libcall): New function.
4430 (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics.
4431 (g95_walk_intrinsic_function): Ditto.
4432
4433 2002-09-08 Paul Brook <paul@nowt.org>
4434
4435 * trans-types.c: Change rank field to dtype field in array descriptor.
4436 * trans-array.c: Implement filling of dtype array descriptor field.
4437 * trans-intrinsic.c: Fix broken LEN intrinsic.
4438
4439 2002-09-07 Paul Brook <paul@nowt.org>
4440
4441 * trans-intrinsic.c: Remove outdated todo intrinsic list.
4442 (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics.
4443 (g95_walk_intrinsic_function): Add MINLOC and MAXLOC.
4444
4445 2002-09-06 Paul Brook <paul@nowt.org>
4446
4447 * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o.
4448 (gt-f95-trans-types.h): Add dependancy information.
4449 * config-lang.in (gtfiles): Add trans-types.c
4450 * f95-lang.c (g95_be_parse_file): Pass error and warning counts
4451 back to top-level code.
4452 * trans-array.c, trans-types.c: Change format of array descriptor.
4453 (g95_conv_descriptor_dimension): New function.
4454 * trans-types.h (g95_conv_descriptor_rank): define.
4455 * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC
4456 intrinsics.
4457
4458 2002-09-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
4459
4460 * trans-array.c, trans-types.c: Add rank information to descriptor.
4461
4462 2002-09-06 Tobias Schlueter <Tobias.Schlueter@physik.uni-muenchen.de>
4463
4464 * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL.
4465
4466 2002-09-04 Paul Brook <paul@nowt.org>
4467
4468 * f95-lang.c (g95_create_decls): New function.
4469 (g95_init): Move initialization of external decls to above, and call
4470 from g95_be_parse_file.
4471 * trans.c (g95_finish_stmt): Don't amputate the decl chain.
4472 * trans-types.c (g95_init_types): Always name integer and char types.
4473 (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL.
4474
4475 2002-09-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
4476
4477 * Make-lang.in: Add options.c to F95_PARSER_OBJS
4478
4479 2002-09-02 Paul Brook <paul@nowt.org>
4480
4481 * g95_generate_code: Clear the attr for __fortran_main.
4482 * trans-types.c (g95_finish_type): New function.
4483 * g95_init_io_state_type: Use g95_finish_type.
4484 * g95_conv_intrinsic_anyall: Fix thinko in result initialization.
4485
4486 2002-09-01 Paul Brook <paul@nowt.org>
4487
4488 * README.backend: Warn about the dangers of extra config.h files.
4489 Remove obsolete libgfor stuff.
4490 * config-lang.in: Add target-libgfor dependancy.
4491 * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff.
4492
4493 2002-09-01 Toon Moene <toon@moene.indiv.nluug.nl>
4494
4495 * g95_conv_mpz_to_tree: Free storage pointed to by q,
4496 not by buff.
4497
4498 2002-08-30 Paul Brook <paul@nowt.org>
4499
4500 * trans-intrinsic.c (g95_conv_intrinsic_function,
4501 g95_walk_intrinsic_function): Added ANY and ALL.
4502 (g95_conv_intrinsic_anyall): New function.
4503 * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
4504 mangled name