]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/fortran/ChangeLog
Merge tree-ssa-20020619-branch into mainline.
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
1 2004-05-09 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2
3 * array.c (match_subscript, match_array_ref): Add comments
4 explaining argument 'init'.
5 * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
6 trans-expr.c, trans.c: Fix some typos in comments.
7 * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
8 * primary.c (match_digits, match_integer_constant): Add comment
9 explaining signflag.
10
11 2004-05-01 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
12
13 PR fortran/13940
14 * primary.c: Include system.h and flags.h, needed for pedantic.
15 (match_boz_constant): Allow "x" for hexadecimal constants, warn if
16 pedantic is set.
17
18 2004-05-01 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
19
20 PR fortran/13940
21 * match.c (match_data_constant): Handle case where
22 gfc_find_symbol sets sym to NULL
23
24 2004-04-28 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
25
26 * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
27 dependency on mathbuiltins.def
28
29 2004-04-24 Victor Leikehman <lei@il.ibm.com>
30
31 * trans-io.c (transfer_expr): Implemented recursive printing
32 of derived types.
33
34 2004-04-24 Andrew Pinski <pinskia@physics.uc.edu>
35
36 * gfortranspec.c: Do not include multilib.h.
37
38 2004-04-24 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
39
40 * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
41 2004 to copyright years.
42 * trans-expr.c, trans-decl.c: Comment update, we now generate
43 GENERIC, not SIMPLE. Add 2004 to copyright years.
44
45 2004-04-24 Paul Brook <paul@codesourcery.com>
46
47 * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
48
49 2004-04-24 Feng Wang <fengwang@nudt.edu.cn>
50
51 PR 14817
52 * arith.c (gfc_arith_divide): Fix complex divide.
53
54 2004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
55
56 * gfortranspec.c: Include the target headers.
57
58 2004-04-18 Feng Wang <fengwang@nudt.edu.cn>
59
60 PR fortran/14921
61 PR fortran/14540
62 * arith.c (arctangent2): New function.
63 * arith.h (arctangent2): Add function prototype.
64 * simplify.c (gfc_simplify_atan2): Use it.
65 (gfc_simplify_log): Use it.
66
67 2004-04-12 Diego Novillo <dnovillo@redhat.com>
68
69 * fortran/f95-lang.c (gfc_expand_stmt): Remove.
70 (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
71
72 2004-04-11 Bud Davis <bdavis9659@comcast.net>
73
74 PR fortran/14872
75 * trans-io.c (build_dt): Change REC to value.
76
77 2004-04-11 Feng Wang <fengwang@nudt.edu.cn>
78
79 PR 14394
80 * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
81 the real value when converting mpf to string.
82
83 2004-04-11 Feng Wang <fengwang@nudt.edu.cn>
84
85 PR 14395
86 * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
87 the result.
88
89 2004-04-11 Feng Wang <fengwang@nudt.edu.cn>
90
91 PR fortran/14377
92 * simplify.c (simplify_min_max): Convert the type of the result.
93
94 2004-04-11 Paul Brook <paul@codesourcery.com>
95
96 * gfortran.texi: Use full target triplet.
97
98 2004-04-11 Paul Brook <paul@codesourcery.com>
99
100 * Make-lang.in (GFORTRAN_TEXI): Set it.
101 (fortran/dfortran.dvi): Use it. Add fortran to include paths.
102 (fortran/gfortran.info): Ditto.
103 * gfortran.texi: Major update.
104 * invoke.texi: New file.
105
106 2004-04-10 Paul Brook <paul@codesourcery.com>
107
108 * trans-array.c (gfc_trans_allocate_temp_array,
109 gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
110 * trans-decl.c (gfc_build_dummy_array_decl,
111 gfc_get_symbol_decl, gfc_build_function_decl,
112 gfc_create_module_variable): Ditto.
113 * trans-expr.c (gfc_conv_variable): Ditto.
114 * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
115 * trans.h (GFC_DECL_STRING): Remove.
116 (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
117 GFC_DECL_ASSIGN): Renumber flags.
118
119 2004-04-05 Paul Brook <paul@codesourcery.com>
120
121 PR 13252
122 PR 14081
123 * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
124 and stack_restore.
125 * gfortran.h (struct gfc_charlen): Add backend_decl.
126 * trans-array.c (gfc_trans_allocate_temp_array,
127 gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
128 (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
129 Remove old, broken string handling.
130 (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
131 gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
132 gfc_trans_deferred_array): Handle character arrays.
133 * trans-const.c (gfc_conv_const_charlen): New function.
134 * trans-const.h (gfc_conv_const_charlen): Add prototype.
135 * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
136 as static.
137 (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
138 (gfc_create_string_length): New function.
139 (gfc_get_symbol_decl): Create lengths for character variables.
140 (gfc_get_fake_result_decl): Ditto.
141 (gfc_build_function_decl): Only set length for assumed length
142 character arguments.
143 (gfc_trans_dummy_character): New function.
144 (gfc_trans_auto_character_variable): Rewrite.
145 (gfc_trans_deferred_vars): Handle more types of character variable.
146 (gfc_create_module_variable): String lengths have moved.
147 (gfc_generate_function_code): Initialize deferred var chain earlier.
148 * trans-expr.c (gfc_conv_init_string_length): Rename ...
149 (gfc_trans_init_string_length): ... to this.
150 (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
151 gfc_conv_function_call): Update to new format for character variables.
152 (gfc_conv_string_length): Remove.
153 (gfc_conv_string_parameter): Update assertion.
154 * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
155 * trans-io.c (set_string): Use new macro names.
156 * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
157 * trans-types.c (gfc_get_character_type): Use existing length expr.
158 (gfc_is_nodesc_array): Make public.
159 (gfc_get_dtype_cst): Rename ...
160 (gfc_get_dtype): ... to this. Handle unknown size arrays.
161 (gfc_get_nodesc_array_type): Use new name.
162 (gfc_sym_type): New character variable code.
163 (gfc_get_derived_type): Ditto.
164 (gfc_get_function_type): Evaluate character variable lengths.
165 * trans-types.h (gfc_strlen_kind): Define.
166 (gfc_is_nodesc_array): Add prototype.
167 * trans.h: Update prototypes.
168 (struct lang_type): Update comments.
169 (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
170 (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
171
172 2004-04-04 Paul Brook <paul@codesourcery.com>
173
174 * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
175 * options.c (gfc_init.options, gfc_handle_option): Ditto.
176 * trans-expr.c (gfc_conv_function_call): Ditto.
177 * trans-types.c (gfc_is_nodesc_array): Ditto
178 * lang.opt (fg77-calls): Remove.
179
180 2004-04-04 Paul Brook <paul@codesourcery.com>
181
182 * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
183 (gfc_conv_descriptor_base): Rename ...
184 (gfc_conv_descriptor_offset): ... to this.
185 (gfc_trans_allocate_array_storage): Set offset to zero.
186 (gfc_conv_array_base): Rename ...
187 (gfc_conv_array_offset): ... to this.
188 (gfc_conv_array_index_ref): Add offset parameter.
189 (gfc_conv_array_ref): Include offset.
190 (gfc_trans_preloop_setup): Use existing offset.
191 (gfc_trans_allocate_temp_array, gfc_array_allocate,
192 gfc_trans_auto_array_allocation, gfc_trans_g77_array,
193 gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
194 gfc_conf_ss_descriptor): Set offset.
195 * trans-array.h: Rename prototypes.
196 * trans-const.h (gfc_index_zero_node): Define.
197 * trans-decl.c (gfc_build_qualified_array): Change base to offset.
198 * trans-types.c (gfc_get_array_type_bounds): Ditto.
199 (gfc_get_nodesc_array_type): Calculate offset before upper bound.
200
201 2004-03-25 Diego Novillo <dnovillo@redhat.com>
202
203 * convert.c (convert): Don't handle WITH_RECORD_EXPR.
204
205 2004-03-24 Bud Davis <bdavis9659@comcast.net>
206
207 PR 14055
208 * arith.c (gfc_convert_integer,gfc_convert_real): Removed leading '+'
209 before conversion by gmp library call.
210
211 2004-03-24 Bud Davis <bdavis9659@comcast.net>
212
213 PR 12921
214 * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
215
216 2004-02-24 Richard Henderson <rth@redhat.com>
217
218 * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
219
220 2004-02-19 Loren J. Rittle <ljrittle@acm.org>
221
222 * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
223 (fortran/gfortran.info): ... to here.
224 (f95.srcinfo): New.
225
226 2004-02-16 Richard Henderson <rth@redhat.com>
227
228 * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
229 * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
230 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
231 (gfc_expand_function): Rename from expand_function_body, make static,
232 don't do anything except invoke tree_rest_of_compilation.
233 (gfc_be_parse_file): Invoke cgraph.
234 (gfc_expand_decl): Remove.
235 (gfc_init_builtin_functions): Add __builtin_init_trampoline and
236 __builtin_adjust_trampoline.
237 * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
238 (gfc_finalize): New.
239 (gfc_generate_function_code): Use it. Lower nested functions.
240 * trans-expr.c (gfc_conv_function_call): Add static chain operand
241 to call_expr.
242 * trans.c (gfc_build_function_call): Likewise.
243 * trans.h (expand_function_body): Remove.
244
245 2004-02-15 Victor Leikehman <lei@il.ibm.com>
246
247 PR gfortran/13433
248 * trans-decl.c (gfc_build_function_decl) For functions
249 returning CHARACTER pass an extra length argument,
250 following g77 calling conventions.
251 * trans-types.c (gfc_get_function_type) Ditto.
252 * trans-expr.c (gfc_conv_function_call) Ditto.
253
254 2004-02-14 Paul Brook <paul@codesourcery.com>
255
256 * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
257
258 2004-02-12 Paul Brook <paul@nowt.org>
259
260 * BUGS: Remove.
261
262 2004-02-08 Steve Kargl <sgk@troutmask.apl.washington.edu>
263
264 * gfortran.texi: Fix typos.
265
266 2004-02-07 Bud Davis <bdavis9659@comcast.net>
267
268 PR gfortran/13909
269 * intrinsic.c (add_conversions) Use logical conversion instead
270 of real.
271 * trans-types.c (gfc_get_logical_type) implemented logical*1
272 and logical*2.
273
274 2004-01-17 Paul Brook <paul@codesourcery.com>
275
276 * lang-specs.h: Remove %<fixed-form.
277
278 2004-01-15 Toon Moene <toon@moene.indiv.nluug.nl>
279
280 * lang-specs.h: Enable preprocessing of source files
281 ending in .F, .fpp, .FPP, .F90 and .F95.
282
283 2004-01-13 Toon Moene <toon@moene.indiv.nluug.nl>
284
285 PR fortran/12912
286 * lang-specs.h: Enable compilation of files ending
287 in .f, .for and .FOR.
288
289 2004-01-11 Paul Brook <paul@codesourcery.com>
290
291 * trans-stmt.c (gfc_trans_if_1): New function.
292 (gfc_trans_if): Use it.
293
294 2004-01-11 Erik Schnetter <schnetter@uni-tuebingen.de>
295
296 * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
297 (gfc_option_t): Add max_identifier_length.
298 * lang.opt: Add fmax-identifier-length.
299 * match.c (parse_name): Use limit.
300 * options.c (gfc_init_options): Set max_identifier_length.
301 (gfc_handle_option): Ditto.
302
303 2004-01-11 Feng Wang <fengwang@nudt.edu.cn>
304
305 * intrinsic.c (add_functions): Add resolve function to dcmplx.
306 * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
307 * iresolve.c (gfc_resolve_dcmplx): New function.
308
309 2004-01-10 Paul Brook <paul@codesourcery.com>
310
311 * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
312 * trans-types.c (gfc_sym_type): Handle external dummy procedures.
313 (gfc_return_by_reference): Correct condition.
314 (gfc_get_function_type): Ditto.
315
316 2004-01-10 Paul Brook <paul@codesourcery.com>
317
318 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
319 types.
320
321 2004-01-10 Huang Chun <chunhuang73@hotmail.com>
322
323 * iresolve.c: Use correct kind.
324
325 2004-01-10 Huang Chun <chunhuang73@hotmail.com>
326
327 PR fortran/13467
328 * trans-decl.c (gfc_create_module_variable): Output array valued
329 parameters.
330
331 2004-01-10 Paul Brook <paul@codesourcery.com>
332
333 * resolve.c (resolve_branch): Get error message right way round.
334
335 2004-01-10 Canqun Yang <canqun@nudt.edu.cn>
336
337 * trans-array (gfc_conv_loop_setup): Adjust comment to track
338 reality.
339 (gfc_array_allocate): Don't count size of element twice.
340
341 2004-01-04 Paul Brook <paul@codesourcery.com>
342
343 * lang.opt (i8, r8, std=*): Remove RejectNegative.
344
345 2004-01-04 Paul Brook <paul@codesourcery.com>
346
347 * error.c (gfc_notify_std): New function.
348 * gfortran.h (gfc_notify_std): Declare.
349 (GFC_STD_*): Define.
350 (gfc_option_t): Add warn_std and allow_std.
351 * intrinsic.c (gfc_init_expr_extensions): Fix logic.
352 (gfc_intrinsic_func_interface): Use gfc_notify_std.
353 * check.c (check_rest): Use gfc_notify_std.
354 * match.c (gfc_match_pause): Ditto.
355 (gfc_match_assign): Ditto.
356 (gfc_match_goto): Ditto.
357 * resolve.c (resolve_branch): Ditto.
358 * lang.opt: Add std=<foo> and w.
359 * options.c (gfc_init_options): Set allow_std and warn_std.
360 (gfc_handle_option): Handle OPT_std_* and OPT_w.
361
362 2004-01-01 Paul Brook <paul@codesourcery.com>
363
364 * array.c (gfc_append_constructor): Take constructor, not expression.
365 * data.c (struct gfc_expr_stack): Remove.
366 (expr_stack): Remove.
367 (find_con_by_offset): Rename from find_expr_in_con.
368 (find_con_by_component): Rename from find_component_in_con.
369 (gfc_get_expr_stack): Remove.
370 (gfc_assign_data_value): Rewrite.
371 (gfc_expr_push): Remove.
372 (gfc_expr_pop): Remove.
373 (gfc_advance_section): Rename from
374 gfc_modify_index_and_calculate_offset. Handle unbounded sections.
375 (gfc_get_section_index): Handle unbounded sections.
376 * gfortran.h: Update prototypes.
377 * resolve.c (check_data_variable): Array section maight not be the
378 last ref.
379
380 2004-01-01 Paul Brook <paul@codesourcery.com>
381
382 PR fortran/13432
383 * resolve.c (resolve_symbol): Allow assumed length function results.
384
385 2004-01-01 Steve Kargl <sgk@troutmask.apl.washington.edu>
386
387 * match.c (gfc_match_pause): Fix spelling.
388
389 2004-01-01 Steven Bosscher <stevenb@suse.de>
390
391 PR fortran/13251
392 * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
393 reference from the expression.
394
395 2003-12-26 Feng Wang <fengwang@nudt.edu.cn>
396
397 * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
398 dumping.
399 * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
400 (gfc_exec_op): New EXEC_LABEL_ASSIGN.
401 (symbol_attribute):New variable attribute: assign.
402 * io.c (resolve_tag):Integer variable is allowed.
403 (match_dt_format): Add ASSIGN statement. Set assign flag.
404 * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
405 (gfc_match_assign): Add ASSIGN statement. Set assign flag.
406 (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
407 * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
408 (next_statement): Add ST_LABEL_ASSIGNMENT.
409 (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
410 * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
411 (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
412 * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
413 * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
414 assign. Put them into the stuct lang_decl.
415 * trans-io.c (set_string): Add the assign statement.
416 * trans-stmt.c (gfc_trans_label_assign): New function.
417 (gfc_trans_goto): Translate ASSIGNED GOTO statement.
418 * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
419 * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
420 * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
421 (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
422 (GFC_DECL_ASSIGN(node)): New macro to access flag.
423
424 2003-12-31 Huang Chun <chunhuang73@hotmail.com>
425
426 PR fortran/13434
427 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
428 minval/maxval.
429
430 2003-12-22 Toon Moene <toon@moene.indiv.nluug.nl>
431
432 * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
433 that arguments to subroutines/functions can't alias themselves, nor global
434 memory.
435
436 2003-12-20 Steven Bosscher <stevenb@suse.de>
437
438 * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
439 * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
440
441 2003-12-12 Huang Chun <chunhuang73@hotmail.com>
442
443 * primary.c (match_substring): Fix substring bug for start point
444 or end point is NULL.
445 * trans-expr.c (gfc_conv_substring): Ditto
446 * trans-types.c (gfc_sym_type): Get correct type of scalar
447 character variables.
448 * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in
449 derived type.
450
451 2003-12-10 Richard Henderson <rth@redhat.com>
452
453 * options.c (gfc_post_options): Don't ever use rtl inlining.
454
455 2003-12-05 Canqun Yang <canqun@nudt.edu.cn>
456
457 * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
458 * trans-equivalence.c: Remove.
459 * trans-decl.c (gfc_get_symbol_decl): Update to match.
460 (gfc_generate_function_code): Ditto.
461 * trans-array.c (gfc_conv_array_parameter): Ditto.
462 * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
463 (F95_ADDITIONAL_OBJS): Add stor-layout.o
464 * trans.h (gfc_trans_equivalence): Remove.
465 * gfortran.h (struct gfc_equiv): Add used field.
466 (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
467 equiv_offset fields.
468
469 2003-12-05 Richard Henderson <rth@redhat.com>
470
471 * trans.c (gfc_build_addr_expr): New.
472 (gfc_build_indirect_ref, gfc_build_array_ref): New.
473 * trans.h: Declare them.
474 * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
475 trans-stmt.c, trans.c (*): Use them.
476
477 * f95-lang.c (gfc_post_options): Remove dead prototype.
478 * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
479 * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
480 allocation size.
481
482 2003-12-01 Feng Wang <fengwang@nudt.edu.cn>
483
484 * io.c (gfc_match_format): Check for missing format label.
485
486 2003-11-30 Huang Chun <chunhuang73@hotmail.com>
487
488 PR fortran/13155
489 * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
490 from interfaces in modules.
491
492 2003-11-30 Paul Brook <paul@nowt.org>
493
494 * trans-array.c (gfc_trans_g77_array): Make non-static.
495 (gfc_trans_assumed_size): Remove.
496 (gfc_trans_dummy_array_bias): Explicitly free temporary.
497 * trans-array.h (gfc_trans_g77_array): Add prototype.
498 (gfc_trans_assumed_size): Remove.
499 * trans-decls.c (gfor_fndecl_push_context): Remove.
500 (gfor_fndecl_pop_context): Remove.
501 (gfc_build_function)decls): Don't create them.
502 (gfc_trans_deferred_vars): Update to match. Remove dead code.
503 * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
504
505 2003-11-30 Kejia Zhao <kejia_zh@nudt.edu.cn>
506
507 * trans-array.c (gfc_conv_array_parameter): Simplify
508 array argument passing for array name actual argument.
509 * trans-expr.c (gfc_conv_function_call): Ditto
510 * trans-types.c (gfc_is_nodesc_array):Ditto.
511
512 2003-11-30 Paul Brook <paul@nowt.org>
513
514 * f95-lang.c (gfc_post_options): Move ...
515 * options.c (gfc_post_options): .. to here. Handle inlining options.
516 * gfortran.h (gfc_post_options): Add prototype.
517
518 2003-11-28 Richard Henderson <rth@redhat.com>
519
520 * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
521
522 2003-11-28 Huang Chun <chunhuang73@hotmail.com>
523
524 * trans.h (has_alternate_specifier): New global variable.
525 * match.c (gfc_match_call): Handle actual arguments associated with
526 alternate return indicators.
527 * trans-expr.c (gfc_conv_function_call): Ditto
528 * trans-stmt.c (gfc_trans_call): Ditto
529 (gfc_trans_return): Handle return statement with value.
530 * trans-decl.c (gfc_generate_function_code): Handle functions with
531 asterisk dummy.
532 (gfc_get_fake_result_decl): Ditto
533 * trans-types.c (gfc_get_function_type): Ditto
534 * resolve.c (resolve_actual_arglist): Check alternate return indicators.
535 (resolve_formal_arglist): Check asterisk dummy.
536
537 2003-11-27 Paul Brook <paul@nowt.org>
538
539 * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
540 allocation interface.
541 (gfc_conv_ array_parameter): Ditto.
542 (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
543 * trans-array.c: Update prototype.
544 * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
545 (gfc_trans_auto_character_variable): Use new memory alloc interface.
546 * trans-expr.c (gfc_conv_string_tmp): Ditto.
547 (gfc_conv_function_call): Use gfc_conv_string_tmp.
548 * trans-stmt.c (gfc_do_allocate): Use new memory alloc interface.
549 * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
550 * trans.h (gfc_ss_info): Remove unused pdata field.
551 * trans.c (gfc_create_var_np): Change T to V.
552
553 2003-11-26 Richard Henderson <rth@redhat.com>
554
555 * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
556 * trans-intrinsic.c (gfc_intrinsic_map): ... here. Add SCALE,
557 FRACTION, NEAREST, SET_EXPONENT.
558 (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
559 Fix GTY marking. Remove unnecessary const's.
560 (LIBM_FUNCTION): Rename from I_LIB.
561 (LIBF_FUNCTION): New.
562 (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
563 conventions. Assume the expr signature is correct. Mark const.
564 (gfc_conv_intrinsic_exponent): Use library functions.
565 (gfc_conv_intrinsic_set_exponent): Remove.
566 (gfc_conv_intrinsic_scale): Remove.
567 (gfc_conv_intrinsic_nearest): Remove.
568 (gfc_conv_intrinsic_fraction): Remove.
569 (gfc_conv_intrinsic_function): Update.
570 * trans-decl.c (gfor_fndecl_math_exponent4): New.
571 (gfor_fndecl_math_exponent8): New.
572 (gfc_build_intrinsic_function_decls): Set them.
573 * trans.h: Declare them.
574
575 2003-11-25 Canqun Yang <canqun@nudt.edu.cn>
576
577 * trans-common.c (gfc_layout_global_equiv): Locate the error for
578 underflow COMMON block.
579 (gfc_trans_one_common): Fix bug for size of COMMON block containing
580 EQUIVALENCE object. Also fix typo in an error message.
581
582 2003-11-25 Diego Novillo <dnovillo@redhat.com>
583
584 * Make-lang.in: Add check-gfortran to lang_checks.
585 (check-f95): Alias for check-gfortran.
586
587 2003-11-25 Jason Merrill <jason@redhat.com>
588
589 * Make-lang.in (f95.tags): Create TAGS.sub files in each
590 directory and TAGS files that include them for each front end.
591
592 2003-11-24 Paul Brook <paul@nowt.org>
593
594 PR fortran/13154
595 * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
596
597 2003-11-24 Paul Brook <paul@nowt.org>
598
599 * expr.c (simplify_const_ref): Return SUCCESS for things we don't
600 handle.
601 * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
602
603 2003-11-24 Paul Brook <paul@nowt.org>
604
605 PR fortran/13105
606 * array.c (gfc_array_ref_shape): Handle elemental dimensions.
607 * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
608
609 2003-11-20 Richard Henderson <rth@redhat.com>
610
611 * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
612 (gfc_conv_array_base): Likewise.
613 * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
614 * trans-expr.c (gfc_conv_string_tmp): Likewise.
615 * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
616 * trans-stmt.c (gfc_trans_character_select): Likewise.
617
618 2003-11-13 Paul Brook <paul@nowt.org>
619
620 * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
621
622 2003-11-13 Canqun Yang <canqun@nudt.edu.cn>
623
624 * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
625 (resolve_equivalence): New function.
626 (resolve_equivalence_derived): New function.
627
628 2003-11-12 Richard Henderson <rth@redhat.com>
629
630 * trans.c (gfc_trans_code): Use annotate_with_locus instead of
631 annotate_all_with_locus.
632
633 2003-11-11 Canqun Yang <canqun@nudt.edu.cn>
634
635 * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
636 * trans-decl.c (gfc_finish_var_decl): Modified.
637
638 2003-11-08 Paul Brook <paul@nowt.org>
639
640 PR fortran/12704
641 * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
642 arrays.
643
644 2003-11-06 Paul Brook <paul@nowt.org>
645
646 * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
647
648 2003-11-02 Canqun Yang <canqun@nudt.edu.cn>
649
650 * match.c (gfc_match_stopcode): Assign '0' to stop_code.
651
652 2003-10-27 Anthony Green <green@redhat.com>
653
654 * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
655 (f95.stagefeedback): Ditto.
656
657 2003-10-27 Andrew Pinski <pinskia@physics.uc.edu>
658
659 PR fortran/12682
660 * Make-lang.in (f95.stageprofile): Add.
661 (f95.stagefeedback): Add.
662
663 2003-10-23 Richard Henderson <rth@redhat.com>
664
665 * f96-lang.c (gfc_gimplify_expr): Remove.
666 (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
667 (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
668
669 2003-10-23 Richard Henderson <rth@redhat.com>
670
671 * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
672
673 2003-10-20 Paul Brook <paul@nowt.org>
674
675 * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
676 * trans-stmt.c (gfc_trans_do_while): Ditto.
677
678 2003-10-17 Paul Brook <paul@nowt.org>
679
680 * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
681
682 2003-10-17 Paul Brook <paul@nowt.org>
683
684 * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
685
686 2003-10-17 Feng Wang <wf_cs@yahoo.com>
687
688 * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
689 (gfc_resolve_minloc): Ditto.
690 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
691 Return the value after subtracting the lower bound.
692
693 2003-10-16 Richard Henderson <rth@redhat.com>
694
695 * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
696
697 2003-10-16 Steven Bosscher <steven@gcc.gnu.org>
698
699 * lang.c: Remove -M option for now, it's in the way for C.
700
701 2003-10-14 Jason Merrill <jason@redhat.com>
702
703 * Make-lang.in (f95.tags): New rule.
704
705 2003-10-13 Richard Henderson <rth@redhat.com>
706
707 * trans.c (gfc_trans_code): Use annotate_all_with_locus.
708
709 2003-10-13 Paul Brook <paul@nowt.org>
710
711 * trans-decl.c (generate_local_decl): Don't create junk variables.
712
713 2003-10-13 Paul Brook <paul@nowt.org>
714
715 * resolve.c (resolve_formal_arglist): Use function result decl in
716 preference to function decl.
717
718 2003-10-12 Richard Henderson <rth@redhat.com>
719
720 * f95-lang.c (gfc_define_builtin): New const_p argument. Set
721 TREE_READONLY. Update all callers.
722
723 2003-10-12 Feng Wang <wf_cs@yahoo.com>
724
725 * iresolve.c (gfc_resolve_cshift): Change to match implementation.
726 * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
727 (gfc_is_intrinsic_libcall): Add CSHIFT.
728
729 2003-10-12 Richard Henderson <rth@redhat.com>
730
731 * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
732 (gfc_trans_array_constructor_value): Likewise.
733 (gfc_conv_array_initializer): Likewise.
734 * trans-stmt.c (gfc_trans_character_select): Likewise.
735
736 2003-11-12 Kejia Zhao <kejia_zh@yahoo.com.cn>
737
738 * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
739
740 2003-10-11 Huang Chun <jiwang@mail.edu.cn>
741
742 * check.c (gfc_check_repeat): Check arguments are scalar.
743 (gfc_check_trim): New function.
744 * intrinsic.h (gfc_check_trim): Add prototype.
745 * intrinsic.c (add_functions): Use it.
746 * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
747 Decalare.
748 * trans-decl.c: Ditto.
749 (gfc_build_intrinsic_fucntion_decls): Set them.
750 * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
751 (gfc_conv_intrinsic_trim): New function.
752 (gfc_conv_intrinsic_repeat): New function.
753 (gfc_conv_intrinsic_function): Use them.
754
755 2003-10-11 Huang Chun <jiwang@mail.edu.cn>
756
757 * trans-types.c (gfc_sym_type): Handle result variables.
758
759 2003-10-11 Huang Chun <jiwang@mail.edu.cn>
760
761 * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
762 gfc_get_character_type.
763
764 2003-10-11 Feng Wang <wf_cs@yahoo.com>
765
766 * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
767
768 2003-10-11 Paul Brook <paul@nowt.org>
769
770 * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
771 (gfc_resolve_dprod): New function.
772 (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
773 * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
774 (gfc_resolve_dprod): Declare.
775 * intrinsic.c (add_functions): Use them.
776 * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
777
778 2003-10-06 Richard Henderson <rth@redhat.com>
779
780 * f95-lang.c (gfc_init_builtin_functions): Add clzll.
781 * trans-intrinsic.c (call_builtin_clz): Use it.
782
783 2003-10-05 Paul Brook <paul@nowt.org>
784
785 * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
786 * trans-decl.c (gfc_generate_function_code): Set
787 cfun->function_end_locus.
788
789 2003-09-24 Jason Merrill <jason@redhat.com>
790
791 * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
792 TREE_LOCUS.
793
794 2003-09-21 Lifang Zeng <zlf605@hotmail.com>
795 Paul Brook <paul@nowt.org>
796
797 * Make-lang.in (F95_OBJS): Add fortran/data.o.
798 * array.c (gfc_inser_constructor): New function.
799 (gfc_get_constructor): New function.
800 (gfc_free_constructor): Initialize offset and repeat.
801 (iterator_stack): Remove.
802 (expand_info): Add offset, component and repeat fields.
803 (expand_constructor): Set them.
804 (expand): Set new fields.
805 (gfc_copy_constructor): Ditto. Avoid recursion.
806 * gfortran.h: Add prototypes for new functions.
807 (gfc_constructor): Add offset, component and repeat.
808 (iteratio_stack): Move to here.
809 * resolve.c (check_data_variable): Convert data values into variable
810 initializers.
811 (traverse_data_list): Build implicit loop chain.
812 (gfc_resolve): Ditto.
813 * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
814 * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
815 * trans-expr.c (gfc_conv_structure): Handle array initializers.
816 (gfc_conv_expr): Update to match.
817 * trans.h (gfc_conv_structure): Declare.
818 * data.c: New file.
819
820 2003-09-20 Kejia Zhao <kejia_zh@yahoo.com.cn>
821
822 * trans.h: Add declarations for gfor_fndecl_si_kind and
823 gfor_fndecl_sr_kind.
824 * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
825 * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
826 (g95_conv_intrinsic_sr_kind): New function.
827 (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
828 SELECTED_REAL_KIND.
829
830 2003-09-17 Lars Segerlund <Lars.Segerlund@comsys.se>
831
832 * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
833 instead of _4 and _8 as postfix for libgfortran calls.
834
835 2003-09-16 Paul Brook <paul@nowt.org>
836
837 * array.c (compare_bounds): New function.
838 (gfc_compare_array_spec): Use it.
839
840 2003-09-14 Paul Brook <paul@nowt.org>
841
842 * primary.c (gfc_match_rvalue): Make sure sym->result is set.
843 * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
844
845 2003-09-14 Paul Brook <paul@nowt.org>
846
847 * check.c (dim_rank_check): Allow assumed bounds if requested.
848 (gfc_check_lbound): Call it.
849 (gfc_check_ubound): Ditto.
850 (gfc_check_size): Change to match.
851 * simplify.c (gfc_simplify_bound): New function.
852 (gfc_simplify_lbound): New function.
853 (gfc_simplify_ubound): New function.
854 * intrinsic.h: Declare them.
855 * intrinsic.c (add_functions): Use them.
856
857 2003-09-14 Paul Brook <paul@nowt.org>
858
859 * io.c (format_lex): Initialize negative_flag.
860 (check_format): Intialize repeat.
861 * trans-io.c (gfc_new_nml_name_expr): Declare static.
862 (gfc_new_var_expr): Ditto.
863
864 2003-09-14 Paul Brook <paul@nowt.org>
865
866 * trans-array.c (gfc_conv_array_initializer): Handle derived types.
867 * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
868
869 2003-09-12 Paul Brook <paul@nowt.org>
870
871 * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
872
873 2003-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
874
875 * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
876 for a correct expression.
877
878 2003-09-10 Kejia Zhao <kejia_zh@yahoo.com.cn>
879
880 * trans-intrinsic.c (real_compnt_info): New struct.
881 (prepare_arg_info): New function.
882 (gfc_conv_intrinsic_set_exponent): New function.
883 (gfc_conv_intrinsic_scale): New function.
884 (gfc_conv_intrinsic_nearest): New function.
885 (gfc_conv_intrinsic_fraction): New function.
886 (gfc_conv_intrinsic_exponent): New function.
887 (gfc_conv_intrinsic_spacing): New function.
888 (gfc_conv_intrinsic_rrspacing): New function.
889 (gfc_conv_intrinsic_function): Use them.
890
891 2003-08-24 XiaoQiang Zhang (zhangapache@yahoo.com>
892
893 * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for
894 build_int_2 changed from (high, low) to (low, high).
895 * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
896 ioparm_namelist_read_mode, iocall_set_nml_val_int,
897 iocall_set_nml_val_float, iocall_set_nml_val_char,
898 iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
899 (gfc_build_io_library_fndecls): Add variable initialization.
900 (gfc_new_nml_name_expr, get_new_var_expr): New function.
901 (build_dt): Add namelist support.
902 * io.c (value): New variable.
903 (check_format): Support FMT_H now.
904
905 2003-09-07 Paul Brook <paul@nowt.org>
906
907 * io.c (gfc_resolve_dt): Error if format label is not defined.
908
909 2003-09-07 Kejia Zhao <kejia_zh@yahoo.com.cn>
910
911 * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is
912 about case_switch's break. The other is about building the condition
913 statement tree, which judges the argument in the range of the
914 corresponding integer type.
915 * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
916 for the large values.
917
918 2003-09-05 Paul Brook <paul@nowt.org>
919
920 * f95-lang.c (expand_function_body): Gimplify the function.
921
922 2003-09-04 Jeff Law <law@redhat.com>
923
924 * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
925 index zero!
926
927 2003-09-04 Paul Brook <paul@nowt.org>
928
929 * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
930 (gfc_expand_stmt): New function.
931 (LANG_HOOKS_RTL_EXPAND_STMT): Define.
932 (expand_function_body): Use tree_rest_of_compilation.
933 * trans-decl.c (gfc_generate_function_code): Don't free cfun.
934
935 2003-09-03 Jeff Law <law@redhat.com>
936
937 * f95-lang.c (gfc_init_builtin_functions): C arrays start at
938 index zero!
939
940 2003-08-30 Paul Brook <paul@nowt.org>
941
942 * f95-lang.c (builtin_function): Remove #if 0 code.
943 (gfc_define_builtin): New function.
944 (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
945 * mathbuiltins.def: New file.
946 * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
947 (gfc_intrinsic_map): Use mathbuiltins.def.
948 (gfc_intrinsic_builtin_t): Remove.
949 (gfc_build_intrinsic_lib_fndecls): Update.
950 * trans-types.c (gfc_init_types): Remove redundant initilaization of
951 signed_size_type_node.
952
953 2003-08-29 Paul Brook <paul@nowt.org>
954
955 * arith.c (gfc_real_kinds): Use correct minimum exponents.
956
957 2003-08-22 Kejia Zhao <kejia_zh@yahoo.com.cn>
958
959 * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
960 (gfc_conv_intrinsic_function): Add MODULO.
961
962 2003-08-22 Jason Merrill <jason@redhat.com>
963
964 * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
965
966 2003-08-22 Andreas Jaeger <aj@suse.de>
967
968 * Make-lang.in (f95.install-common): Add DESTDIR support.
969 * (f95.install-info): Likewise.
970 (f95.uninstall): Likewise.
971
972 2003-08-19 Diego Novillo <dnovillo@redhat.com>
973
974 * trans-types.c (gfc_init_types): Initialize
975 signed_size_type_node with size_type_node.
976
977 2003-08-18 Paul Brook <paul@nowt.org>
978
979 * dependency.c (gfc_dependency): New enum.
980 (check_another_array_ref): Remove.
981 (gfc_get_array_from_component): Remove.
982 (get_x): Remove.
983 (get_range): Remove.
984 (get_no_of_elements): Use mpz_t, not mpf_t.
985 (transform_sections): New function.
986 (gfc_check_range_range): Rename ...
987 (gfc_check_section_vs_section): ... to this. Use new function.
988 (gfc_is_inside_range): Rewrite to match.
989 (gfc_check_element_vs_section): Ditto.
990 (gfc_check_element_vs_element): Ditto.
991 (get_deps): Ditto.
992 (gfc_dep_resolver): Ditto. Remove unused parameter.
993 * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
994 gfc_check_element_vs_element, gfc_is_inside_range,
995 gfc_get_array_from_component): Remove prototypes for static functions.
996 (gfc_dep_resolver): Update prototype.
997 * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
998
999 2003-08-15 Paul Brook <paul@nowt.org>
1000
1001 * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
1002 return values to parent scope.
1003 (gfc_build_dummy_array_decl): Ditto.
1004
1005 2003-08-14 Paul Brook <paul@nowt.org>
1006
1007 * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
1008 size of the type, not the pointer.
1009 * resolve.c (resolve_symbol): Give more accurate error message.
1010
1011 2003-08-10 Paul Brook <paul@nowt.org>
1012
1013 * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
1014
1015 2003-08-10 Paul Brook <paul@nowt.org>
1016
1017 * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
1018 type components.
1019
1020 2003-08-10 Chun Huang <compiler@sohu.com>
1021
1022 * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
1023 (resolve_symbol): Ditto.
1024 * trans-expr.c (gfc_conv_statement_function): New function.
1025 (gfc_conv_function_expr): Use it.
1026
1027 2003-08-10 Paul Brook <paul@nowt.org>
1028
1029 * trans-array.c (gfc_conv_ss_startstride): Handle functions.
1030 (walk_function_expr): Set section rank.
1031 * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
1032
1033 2003-08-10 Paul Brook <paul@nowt.org>
1034
1035 * intrinsic.c (add_sym): Prefix names with correct string.
1036 (add_sym_0s): New function.
1037 (add_subroutines): Register abort.
1038
1039 2003-08-10 Erik Schnetter <schnetter@uni-tuebingen.de>
1040
1041 * gfortran.h: Introduce options to control the mangling.
1042 * lang.opt: Likewise.
1043 * options.c (gfc_init_options): Handle the options.
1044 * trans-common.c (gfc_sym_mangled_common_id): New function.
1045 (gfc_build_common_decl): Call it.
1046 * trans-decl.c (gfc_sym_mangled_function_id): New function.
1047 (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
1048
1049 2003-08-09 Paul Brook <paul@nowt.org>
1050
1051 * module.c (mio_symbol): Always ouput a namespace for formal args.
1052 (load_needed): Namespace now belong to their proper symbol.
1053 (gfc_dump_module): Change G95=>GFORTRAN.
1054
1055 2003-08-05 Paul Brook <paul@nowt.org>
1056
1057 * options.c: Force -fg77-calls.
1058
1059 2003-08-02 Paul Brook <paul@nowt.org>
1060
1061 * Makelang.in: Rename G95_* to GFORTRAN_*.
1062 * All sources: Rename G95_* to GFC_*.
1063
1064 2003-08-01 Paul Brook <paul@nowt.org>
1065
1066 * fortran/Make-lang.in: Use GMPLIBS.
1067 * fortran/config-lang.in: Set need_gmp.
1068 * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
1069
1070 2003-07-27 Andreas Jaeger <aj@suse.de>
1071
1072 * trans-decl.c (gfc_generate_constructors): Convert prototype to
1073 ISO C90.
1074 * trans-const.c (gfc_init_constants): Likewise.
1075 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
1076
1077 * gfortranspec.c: Convert to ISO C90.
1078 (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
1079
1080 2003-07-26 Paul Brook <paul@nowt.org>
1081
1082 * lang.opt: Add -fdump-parse-tree.
1083 * options.c (gfc_handle_option): Ditto.
1084 * resolve.c (resolve_forall_iterators): Convert to proper type.
1085 * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
1086
1087 2003-07-26 Paul Brook <paul@nowt.org>
1088
1089 * Makefile.in: Add build dependencies on files common with rest of gcc.
1090
1091 2003-07-26 Lifang Zeng <zlf605@hotmail.com>
1092
1093 * trans.h: Declare g95_trans_pointer_assignment.
1094 * trans-expr.c (g95_trans_pointer_assignment): New function.
1095 (g95_trans_pointer_assign): Use it.
1096 * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
1097 (g95_trans_pointer_assign_need_temp): New function.
1098
1099 2003-07-26 Paul Brook <paul@nowt.org>
1100
1101 * gfortran.texi: Replace references to g95.
1102
1103 2003-07-26 Paul Brook <paul@nowt.org>
1104
1105 Rename g95_* to gfc_*.
1106
1107 2003-07-25 Paul Brook <paul@nowt.org>
1108
1109 * gfortran.h: Rename from g95.h.
1110 * trans-types.c (boolean_type_node, booelan_true_node,
1111 boolean_false_node): Remove.
1112 * trans-types.h: Ditto.
1113
1114 2003-07-25 Chun Huang <compiler@sohu.com>
1115
1116 * parse.c (accept_statement): Implement BLOCK DATA statement.
1117 * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
1118 variables.
1119
1120 2003-07-24 Lifang Zeng <zlf605@hotmail.com>
1121
1122 * trans-stmt.c (temporary_list): Define.
1123 (g95_trans_assign_need_temp): New function.
1124 (g95_trans_forall_1): Modified for WHERE.
1125 (g95_trans_where_assign): Modified.
1126 (g95_trans_where_2): Modified.
1127 (g95_evaluate_where_mask): Modified.
1128 (g95_trans_where): Modified.
1129 (g95_get_temp_expr): Removed.
1130 (g95_add_to_where_stmt_list): Removed.
1131 (compute_overall_iter_number): Modified for WHERE.
1132 * trans.h: Remove where_stmt_list.
1133
1134 2003-07-24 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1135
1136 * lang.opt: Correct description of options -J and -M.
1137
1138 2003-07-23 Steven Bosscher <steven@gcc.gnu.org>
1139
1140 * lang.opt: Move help text to here.
1141 * lang-options.h: Remove.
1142
1143 2003-07-23 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1144 * iresolve.c (g95_resolve_transpose): Proper variable in switch.
1145 * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
1146 on kind.
1147
1148 2003-07-22 Steven Bosscher <steven@gcc.gnu.org>
1149 Paul Brook <paul@nowt.org>
1150
1151 * check.c (check_rest): Use global pedantic flag.
1152 * io.c (data_desc): Ditto.
1153 * error.c (g95_warning, g95_warning_now): Use global flag.
1154 * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
1155 (expand_function_body): Update to new prototypes.
1156 (g95_init): Use new option names.
1157 * g95.h (g95_option_t): Standardize names.
1158 (g95_init_options, g95_handle_option): Update prototypes.
1159 * interface.c: Use new option names.
1160 * match.c: Ditto.
1161 * module.c: Ditto.
1162 * parse.c: Ditto.
1163 * primary.c: Ditto.
1164 * resolve.c: Ditto.
1165 * scanner.c: Ditto.
1166 * simplify.c: Ditto.
1167 * symbol.c: Ditto.
1168 * trans-array.c: Ditto.
1169 * trans-expr.c: Ditto.
1170 * trans-types.c: Ditto.
1171 * trans-decl.c: Ditto.
1172 (g95_build_library_function_decl): Remove obsolete VPARAMS.
1173 * trans.h: Ditto.
1174 * options.c (g95_display_help): Remove.
1175 (g95_init_options): Convert to new scheme.
1176 (set_Wall): Ditto
1177 (g95module_option): Ditto, rename from g95_parse_arg.
1178 (g95_handle_module_path_options): New function.
1179 * trans-equivalence.c: Fix error message.
1180 * lang.opt: Corrections.
1181
1182 2003-07-21 Steven Bosscher <steven@gcc.gnu.org>
1183
1184 * lang.opt: New file.
1185
1186 2003-07-21 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1187
1188 * decl.c (match_attr_spec): Set colon_seen.
1189
1190 2003-07-14 Paul Brook <paul@nowt.org>
1191
1192 * trans-array.c: Update comment.
1193 (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
1194 * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
1195 minmaxloc,minmaxval): Ditto.
1196 * trans-io.c (g95_trans_transfer): Ditto.
1197 * trans-stmt.c: Remove unneeded prototypes.
1198 (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
1199 (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
1200 (compute_inner_temp_size): Remove bits of dead code. Add comments.
1201 Don't share loopinfo.
1202 (compute_overall_iter_number): Declare as static.
1203 (allocate_temp_for_forall_nest): Ditto.
1204 (g95_trans_forall_1): Don't pass shared loopinfo.
1205 * trans.c (g95_start_block): Expand comment.
1206
1207 2003-07-12 Paul Brook <paul@nowt.org>
1208
1209 * arith.c (g95_index_integer_kind): Remove unused initializer.
1210 * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
1211 index by size of element.
1212 (generate_loop_for_rhs_to_temp): Ditto.
1213 (allocate_temp_for_forall_nest): Use element size, not index size.
1214
1215 2003-07-11 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1216
1217 * arith.c (g95_index_integer_kind): Add a TODO.
1218 * simplify.c (g95_simplify_nearest): Add a TODO.
1219
1220 2003-07-09 Chun Huang <compiler@sohu.com>
1221
1222 * trans.h: Add declarations for gfor_fndecl_string_scan and
1223 gfor_fndecl_string_verify.
1224 * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
1225 * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
1226 (g95_conv_intrinsic_verify): New function.
1227 (g95_conv_intrinsic_function): Add SCAN and VERIFY.
1228 * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
1229 of parameter 'BACK=.TRUE.'
1230
1231 2003-07-05 Lifang Zeng <zlf605@hotmail.com>
1232
1233 * trans-stmt.c (iter_info, forall_info): Define.
1234 (g95_trans_forall_block): Remove.
1235 (g95_trans_forall_loop): Use forall info blocks.
1236 (g95_trans_nested_forall_loop): New function.
1237 (g95_do_allocate): Handle things other than logical masks.
1238 (generate_loop_for_temp_to_lhs): New function.
1239 (generate_loop_for_rsh_to_temp): New function.
1240 (compute_inner_temp_size): New function.
1241 (compute_overall_iter_number): New function.
1242 (allocate_temp_for_forall_nest): New function.
1243 (g95_trans_forall): Move body ...
1244 (g95_trans_forall_1): ... to here. Handle loops with temporaries.
1245
1246 2003-07-02 Paul Brook <paul@nowt.org>
1247
1248 * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
1249 in correct scope. Change callers to match.
1250 * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
1251 * iresolve.c (g95_resolve_reshape): Only use constant shapes.
1252
1253 2003-07-02 Paul Brook <paul@nowt.org>
1254
1255 * trans-array.c (g95_conv_loop_setup): Remove dead var. Use
1256 expression shape for all expressions.
1257 * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
1258
1259 2003-07-03 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1260
1261 * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
1262 g95_parse_arg), intrinsic.c (g95_convert_type): support of
1263 -Wconversion.
1264 * intrinsic.c, g95.h: Add g95_convert_type_warn,
1265 * resolve.c (g95_resolve_index): Call it.
1266
1267 2003-07-02 Paul Brook <paul@nowt.org>
1268
1269 * iresolve.c (g95_resolve_reshape): Set expression shape.
1270 (g95_resolve_shape): Ditto.
1271 * simplify.c (g95_simplify_shape): Move common code outside condition.
1272 * trans-array.c (g95_conv_array_initializer): Teach it how to count.
1273
1274 2003-07-01 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1275
1276 * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
1277 conformance checks.
1278
1279 2003-06-29 Paul Brook <paul@nowt.org>
1280
1281 * array.c (g95_simplify_iterator_var): Don't bother with return value.
1282 * expr.c (find_array_element, find_component_ref): New functions.
1283 (remove_subobject_ref): New function.
1284 (simplify_const_ref): Use them. Rename from simplify_component_ref.
1285 (simplify_ref_chain): New function.
1286 (g95_simplify_expr): Use it. Simplify parameter variable subobjects.
1287 (g95_specification_expr): Simplify the expression.
1288 * resolve.c (resolve_operator): Check simplifications return code.
1289 (g95_resolve_expr): Ditto.
1290
1291 2003-06-26 Paul Brook <paul@nowt.org>
1292
1293 * expr.c (simplify_component_ref): New function.
1294 (g95_simplify_expr): Use it.
1295 * resolve.c (resolve_structure_cons): Handle references.
1296
1297 2003-06-25 Paul Brook <paul@nowt.org>
1298
1299 * trans-io.c (build_dt): Handle internal units.
1300
1301 2003-06-25 Canqun Yang <canqun@yahoo.com.cn>
1302
1303 * trans-common.c (g95_build_common_decl): Array index range starts at 0.
1304 (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
1305 Use g95_array_index_type instead of integer_type_node.
1306 (g95_build_common_decl, g95_set_common_master_type): Use
1307 g95_character1_type_node instead of char_type_node.
1308 * trans-equivalence.c (g95_layout_local_equiv): As above.
1309
1310 2003-06-24 Steven G. Kargl <kargls@attbi.com>
1311
1312 * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
1313 remove last remains of -fquiet.
1314
1315 2003-06-22 Paul Brook <paul@nowt.org>
1316
1317 * resolve.c (resolve_operator): Don't fail if we can't simplify.
1318 (g95_resolve_expr): Ditto.
1319 (resolce_code): Mark as static.
1320 * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
1321 gimplifer doesn't (yet).
1322
1323 2003-06-20 Paul Brook <paul@nowt.org>
1324
1325 * g95.h: Add ST_PAUSE and EXEC_PAUSE.
1326 * match.c (g95_match_if): Add ST_PAUSE.
1327 (g95_match_stopcode): New function.
1328 (g95_match_pause, g95_match_stop): Use it.
1329 * parse.c (g95_ascii_statement): Handle ST_PAUSE.
1330 (decode_stmt, next_statement, parse_executable): Ditto.
1331 * resolve.c (resolve_code): Ditto.
1332 * st.c (g95_free_statement): Ditto.
1333 * trans-stmt.c (g95_trans_pause): New function.
1334 * trans-stmt.h: Declare it.
1335 * trans.c (g95_trans_code): Use it.
1336 * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
1337 Declare.
1338 (g95_build_builtin_function_decls): Initialize them.
1339 * trans.h: Ditto.
1340 * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
1341
1342 2003-06-18 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1343
1344 * io.c (g95_match_open , g95_match_close, g95_match_inquire,
1345 match_filepos): Fix error handling.
1346
1347 2003-06-18 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1348
1349 * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
1350 Add assertions on arguments.
1351 * resolve.c (expression_shape): Remove useless &.
1352 * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
1353 g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
1354 g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
1355 g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
1356 g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
1357 g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
1358 (g95_simplify_not, g95_simplify_scale): Add assertions.
1359
1360 2003-06-15 Paul Brook <paul@nowt.org>
1361
1362 Clean up stuff to work with the ssa optimizers.
1363 * convert.c (convert): Handle BOOLEAN_TYPEs.
1364 * f95-lang.c (g95_truthvalue_conversion): Implement.
1365 * trans-array.c (g95_trans_array_constructor_value): Group multiple
1366 scalar values.
1367 * trans.h (g95_truthvalue_conversion): Declare.
1368 * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
1369 * trans-stmt.c (g95_trans_character_select): Don't create array
1370 assignments. Mark labels as indirect jump targets.
1371 * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
1372 (g95_get_dtype_cst): Handle LOGICAL types.
1373
1374 2003-06-14 Paul Brook <paul@nowt.org>
1375
1376 * f95-lang.c (g95_gimplify_expr): New function.
1377 * trans-array.c (g95_trans_array_constructor_value): Don't create
1378 array assignments.
1379 (g95_conv_expr_descriptor): Rename simple->gimple.
1380 * trans-expr.c (conv_expr_op): Use proper logical operators.
1381 * trans-intrinsic.c (build_fixbound_expr): New function.
1382 (build_fix_expr): Ditto.
1383 (g95_conv_intinsic_aint): Use them. Use builtin functions.
1384 (g95_conv_intrinsic_function): Add FLOOR and CEILING.
1385
1386 2003-06-10 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1387
1388 * array.c (g95_compare_array_spec): Remove unreachable code.
1389 * expr.c (g95_copy_expr): Likewise.
1390 * intrinsic.c (g95_convert_type): Likewise.
1391 * misc.c (g95_code2string): Likewise.
1392 * simplify.c (g95_simplify_ishft, g95_simplify_real,
1393 g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
1394 * trans-stmt.c (g95_trans_select): Likewise.
1395 * primary.c (extend_ref): Add an assertion.
1396 * simplify.c (g95_convert_constant): Add const.
1397 * intrinsic.h: Remove g95_check_x_ni.
1398 * f95-lang.c (g95_finish): Call g95_release_include_path.
1399
1400 2003-06-10 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1401
1402 * resolve.c (resolve_contained_functions): Fix typo introduced on
1403 2003-01-13.
1404
1405 2003-06-09 Paul Brook <paul@nowt.org>
1406
1407 * g95.h: Include system.h not hwint.h.
1408 * many: use safe-ctype.h not ctype.h. Change isalpha -> ISALPHA, etc.
1409 * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
1410
1411 2003-06-09 Paul Brook <paul@nowt.org>
1412
1413 * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
1414 * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
1415 * trans-decl.c (g95_add_decl_to_functions): Make non-static.
1416 (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
1417 (g95_generate_function_code): Translate COMMON and EQUIVALENCE
1418 objects.
1419 * trans.h (g95_trans_equivalence, g95_trans_common,
1420 g95_add_decl_to_function): Declare.
1421 * trans-common.c, trans-equivalence.c: New files.
1422
1423 2003-06-08 Steven Bosscher <steven@gcc.gnu.org>
1424
1425 * intrinsic.c (g95_intrinsic_extension): Remove.
1426 (add_functions): Substitute g95_check_x for g95_check_x_ni
1427 everywhere.
1428 (g95_init_expr_extensions): New function.
1429 (g95_intrinsic_func_interface): Use it.
1430 * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
1431 * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
1432 g95_check_precision, g95_check_present, g95_check_radix,
1433 g95_check_range, g95_check_selected_real_kind): Do not set
1434 g95_intrinsic_extension.
1435 (g95_check_x_ni): Remove now duplicate of g95_check_x.
1436
1437 * expr.c (check_inquiry): Add FIXME, fixup some code style.
1438
1439 2003-06-06 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1440
1441 * g95.h (ref_type): Name this type explicitly.
1442 * module.c (MIO_NAME): Add specialisations of mio_name.
1443 (mio_symbol_attribute, mio_typespec, mio_array_ref,
1444 mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
1445 (ab_attribute): Name this type explicitly.
1446 (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
1447
1448 2003-06-05 Kejia Zhao <kejia_zh@yahoo.com.cn>
1449
1450 * trans-intrinsic.c (g95_conv_allocated): New function.
1451 (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
1452
1453 2003-06-05 Steven Bosscher <steven@gcc.gnu.org>
1454
1455 * f95-lang.c: Don't include g95-support.h
1456 (g95_mark_addressable): Add prototype.
1457 (g95_init_decl_processing): Remove C front end hack.
1458 * f95-tree.c: Remove file.
1459 * support.c: Remove file.
1460 * g95-support.h: Remove file.
1461 * trans-types.c (g95_init_types): Set up boolean
1462 type related tree nodes.
1463 * Make-lang.in: Remove rules for dead files and
1464 dependencies on them.
1465
1466 2003-06-05 Steven Bosscher <steven@gcc.gnu.org>
1467
1468 * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
1469 C front end dependency. Also, convert.c does not depend on
1470 g95-support.h anymore.
1471 * convert.c: Don't include c-common.h and g95-support.h
1472 * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
1473 (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
1474 stmts_are_full_exprs_p, current_stmt_tree,
1475 current_scope_stmt_stack): Remove.
1476 * g95-support.h (unsigned_conversion_warning): Kill proto.
1477 (boolean_type_node, boolean_true_node, boolean_false_node):
1478 Don't define here. Instead, make then true tree nodes in
1479 trans-types.
1480 * support.c (c_global_trees): Die, C front end, die!!!
1481 (g95_init_c_decl_hacks): Don't touch intmax_type_node,
1482 uintmax_type_node, string_type_node and const_string_type_node.
1483 (decl_constant_value, overflow_warning): Make static functions.
1484 They are in death row too, though.
1485 (default_conversion, c_expand_asm_operands): Remove.
1486 * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
1487 trans.c: Don't include c-common.h.
1488 * trans-types.c (boolean_type_node, boolean_true_node,
1489 boolean_false_node): Make them real tree nodes.
1490 * trans-types.h (intmax_type_node, string_type_node,
1491 const_string_type_node): Hack to work around C dependencies
1492 in builtin-types.def.
1493
1494 2003-06-04 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1495
1496 * decl.c (decl_types): Add some iterators-like sentinels.
1497 * decl.c (match_attr_spec): Use them.
1498 Use "decl_types" instead of "int".
1499 Add cast in call to g95_match_strings.
1500 * dump-parse-tree.c (g95_show_namespace): Use "g95_intrinsic_op"
1501 instead of "int".
1502 * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
1503 (g95_interface_info): Use "g95_intrinsic_op".
1504 * dump-parse-tree.c (g95_show_namespace): Use them.
1505 * interface.c (g95_check_interfaces): Use them.
1506 * module.c (read_module, write_module): Use them.
1507 * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
1508 Use "g95_intrinsic_op".
1509 * interface.c (check_operator_interface): Use "g95_intrinsic_op".
1510 Add a default case in switch statement.
1511 * intrinsic.h (g95_generic_isym_id): Moved to...
1512 * g95.h (g95_generic_isym_id): here.
1513 (g95_intrinsic_sym): Use "g95_generic_isym_id".
1514 * intrinsic.c (make_generic): Use "g95_generice_isym_id".
1515 * trans-intrinsic.c (g95_intrinsic_map_t,
1516 g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
1517 * match.c (g95_match_intrinsic_op): Add cast in call to
1518 g95_match_strings.
1519
1520 2003-06-03 Steven Bosscher <steven@gcc.gnu.org>
1521
1522 * support.c (skip_evaluation, warn_conversion, lvalue_p,
1523 lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
1524 constant_fits_type_p, convert_and_check,
1525 unsigned_conversion_warning): Remove these ugly remnants
1526 we inherited from the C front end.
1527 (function_types_compatible): Remove '#if 0'-edcode.
1528 (build_modify_expr): Likewise.
1529 (convert_for_assignment): Don't use the deceased functions.
1530 The parameter fundecl is now unused.
1531 (decl_constant_value): Always just return decl. In fact
1532 this function is not used at present, but it might be in
1533 the future, when we start using the tree inliner.
1534 (overflow_warning, default_conversion, c_expand_asm_operands):
1535 Abort when these are called, they are part of the C type
1536 checking implementation and therefore poison to Fortran.
1537
1538 2003-06-04 Steven Bosscher <steven@gcc.gnu.org>
1539
1540 * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
1541 c-pretty-print.o and c-dump.o. Add a comment on why we
1542 depend on c-semantics.c.
1543 * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
1544 Don't use the C front end tree dumper hook to dump the
1545 language specific tree representation -- we don't have
1546 one. So instead, inherit the default langhook.
1547
1548 2003-06-02 Paul Brook <paul@nowt.org>
1549
1550 * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
1551
1552 2003-06-02 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1553
1554 * check.c (g95_check_associated): Use proper types. Remove
1555 extraneous argument in call to g95_error().
1556
1557 2003-06-02 Kejia Zhao <kejia_zh@yahoo.com.cn>
1558
1559 * resolve.c (resolve_operator): Make logical operands convert to the
1560 type with higher kind.
1561
1562 2003-06-02 Kejia Zhao <kejia_zh@yahoo.com.cn>
1563
1564 * check.c (g95_check_associated): Make sure both pointer and target has
1565 the same type and rank. Null pointer or array section with vector
1566 subscript as target are not allowed.
1567 * trans.h: Declare gfor_fndecl_associated.
1568 * trans-decl.c: (g95_build_builtin_function_decls): Initialize
1569 gfor_fndecl_associated.
1570 * trans-intrinsic.c (g95_conv_associated): New function.
1571 (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
1572
1573 2003-06-02 Kejia Zhao <kejia_zh@yahoo.com.cn>
1574
1575 * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
1576 according to POINTER itself rather than TARGET.
1577 (g95_conv_expr_descriptor): Make lbound start at 1.
1578 * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
1579
1580 2003-06-01 Paul Brook <paul@nowt.org>
1581
1582 * expr.c (g95_type_convert_binary): Make it match the standard.
1583 * g95.texi: Remove dead link.
1584
1585 2003-06-01 Steven Bosscher <steven@gcc.gnu.org>
1586
1587 * g95.texi: Cleanup somewhat in preparation for inclusion
1588 in GCC CVS.
1589
1590 2003-05-23 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1591 Canqun Yang <canqun@yahoo.com.cn>
1592
1593 * resolve.c (compare_bound_int, resolve_where_shape): Proper return
1594 type.
1595 (g95_find_forall_index): Return proper value.
1596 (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
1597 compare the return value from g95_find_forall_index.
1598
1599 2003-05-23 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1600 * g95.h, io.c (g95_st_label): Remove "length".
1601 (g95_symtree): Remove "link".
1602 (g95_case): Remove "code".
1603 * arith.c, arith.h (g95_compare_string, g95_convert_integer,
1604 g95_convert_real): Make an argument pointer to const.
1605 * decl.c (colon_seen): Add a TODO.
1606 * interface.c (g95_compare_types): Fix typo.
1607 * interface.c (compare_interfaces): Preserve value of "p".
1608 * intrinsic.c (sort_actual): Remove "i".
1609 * match.c (g95_match_assign): Proper type in call to g95_match().
1610 * parse.c (next_free): Avoid duplicate call due to macro.
1611 * parse.c (check_statement_label): wrong type in call to g95_error.
1612 * primary.c (match_real_constant): Add a TODO.
1613 * resolve.c (resolve_select): Remove useless conditional.
1614 * simplify.c (g95_simplify_repeat): Proper assignment to
1615 "value.character.string".
1616 * simplify.c (g95_simplify_reshape): Wrong variable in call to
1617 g95_error.
1618
1619 2003-05-20 Canqun Yang <canqun@yahoo.com.cn>
1620
1621 * trans-stmt.c: Remove unnecessary include file defaults.h.
1622
1623 2003-05-19 Lifang Zeng <zlf605@hotmail.com>
1624
1625 * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
1626 stride.
1627 (g95_trans_forall): Allow arbitrary number of FORALL indexes and
1628 actual variables used as FORALL indexes.
1629
1630 2003-05-15 Paul Brook <paul@nowt.org>
1631
1632 * trans-array.c (g95_trans_static_array_pointer): Use
1633 null_pointer_node.
1634 (g95_trans_deferred_array): Initialize static array pointers.
1635 * trans-expr.c (g95_conv_function_call): Use formal arglist to
1636 correctly pass POINTER and absent CHARACTER arguments.
1637
1638 2003-05-14 Lifang Zeng <zlf605@hotmail.com>
1639
1640 * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
1641 (g95_resolve_forall_body): Resolve FORALL body.
1642 (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
1643 (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
1644 (g95_find_forall_index): Check whether the FORALL index appears in
1645 the expression or not.
1646 (resolve_code): Modified.
1647
1648 2003-05-14 Paul Brook <paul@nowt.org>
1649
1650 * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
1651
1652 2003-05-13 Paul Brook <paul@nowt.org>
1653
1654 * trans-types.c (g95_max_array_element_size): Now a tree node.
1655 (g95_init_types): Work out max size properly.
1656 (g95_get_dtype_cst): Modify to match.
1657
1658 2003-05-11 Paul Brook <paul@nowt.org>
1659
1660 * trans-io.c (add_case): Create a label decl for case labels.
1661
1662 2003-05-11 Paul Brook <paul@nowt.org>
1663
1664 * arith.c (g95_integer_index_kind): New variable.
1665 * f95-lang.c (g95_init): Move frontend initialization here ...
1666 (g95_post_options): ... from here.
1667 * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
1668 * intrinsic.c (add_functions): Use index kinds.
1669 * iresolve.c: Convert to index_kind where needed.
1670 * resolve.c (g95_resolve_index): Make public, use index_kind.
1671 (resolve_array_ref): Adjust to match.
1672 * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
1673 * trans-stmt.c: Ditto.
1674 * trans-types.c: Ditto.
1675 * trans-types.h (g95_array_index_kind): Remove declaration.
1676 * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
1677
1678 2003-05-07 Paul Brook <paul@nowt.org>
1679
1680 * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
1681 * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
1682 of bound indices.
1683
1684 2003-05-07 Paul Brook <paul@nowt.org>
1685
1686 * trans-array.c (trans_static_array_pointer,
1687 g95_trans_array_constructor_value, g95_conv_array_initializer,
1688 g95_conv_structure): CONSTRUCTOR nodes only have one operand.
1689 (g95_add_loop_ss_code): Convert subscripts to the correct type.
1690 * trans-stmt.c (g95_trans_character_select): Ditto.
1691 * trans-types.c (g95_init_types): Ditto.
1692
1693 2003-05-07 Steven Bosscher <steven@gcc.gnu.org>
1694
1695 * f95-lang.c (expand_function_body): Use input_line, not lineno.
1696 * trans-decl.c (g95_generate_function_code,
1697 g95_generate_constructors): Likewise.
1698 * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
1699 g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
1700 Likewise.
1701
1702 2003-05-07 Kejia Zhao <kejia_zh@yahoo.com.cn>
1703 * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
1704 with components point to the DERIVED type itself, and two DERIVED
1705 type with components point to each other.
1706 * trans-expr.c (g95_conv_componet_ref): Modified
1707
1708 2003-05-07 Kejia Zhao <kejia_zh@yahoo.com.cn>
1709 * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
1710 null_pointer_node.
1711 (g95_trans_pointer_assign): Implement Nullify.
1712
1713 2003-05-01 Paul Brook <paul@nowt.org>
1714
1715 * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
1716 * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
1717
1718 2003-05-01 Paul Brook <paul@nowr.org>
1719
1720 * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
1721 trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
1722 IS_EMPTY_STMT.
1723
1724 2003-05-01 Canqun Yang <canqun@yahoo.com.cn>
1725
1726 * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
1727 CASE_LABEL_EXPR.
1728
1729 2003-04-28 Paul Brook <paul@nowt.org>
1730
1731 * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
1732 as their kind suggests.
1733 (g95_resolve_reshape): Ditto.
1734
1735 2003-04-28 Chun Huang <compiler@sohu.com>
1736
1737 * trans-expr.c (g95_conv_substring_expr): New function.
1738 (g95_conv_expr): Use it.
1739
1740 2003-04-28 Paul Brook <paul@nowt.org>
1741
1742 * iresolve.c (g95_resolve_transpose): Make it match the
1743 implementation.
1744 * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
1745
1746 2003-04-18 Steven Bosscher <steven@gcc.gnu.org>
1747
1748 * trans-types.c (g95_add_field_to_struct): New function to
1749 add a field to a UNION_TYPE or RECORD_TYPE.
1750 * trans-types.h (g95_add_field_to_struct): Prototype.
1751 (g95_get_derived_type): Use g95_add_field_to_struct to add
1752 components.
1753 * trans-io.c (g95_add_field): Remove.
1754 (ADD_FIELD): Use new g95_add_field_to_struct function.
1755 (ADD_STRING): Likewise.
1756 * trans-stmt.c (g95_trans_select): Likewise.
1757 (g95_add_field): Remove duplicated function.
1758
1759 2003-04-18 Canqun Yang <canqun@yahoo.com.cn>
1760
1761 Port implementation for CHARACTER SELECT from Andy's tree.
1762 * trans-stmt.c (g95_trans_character_select): Implement character
1763 select. (g95_add_field): New function.
1764 * trans-decl.c: Declare 'gfor_gndecl_select_string'.
1765 (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
1766 * g95.h (struct g95_case): Add field 'int n'.
1767 * trans.h: Declare 'gfor_fndecl_select_string'.
1768
1769 2003-04-18 Steven Bosscher <steven@gcc.gnu.org>
1770
1771 * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
1772 (g95_insert_bbd): Die on duplicates.
1773 * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
1774
1775 2003-04-14 Steven Bosscher <steven@gcc.gnu.org>
1776
1777 * g95.texi: Require GMP 4.0 -- like we actually
1778 do. Explain the testsuite and what-goes-where.
1779 Don't use undefined texinfo symbol. Break very
1780 long line. Remove finished item from the list
1781 of open projects.
1782
1783 2003-04-11 Canqun Yang <canqun@yahoo.com.cn>
1784
1785 * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
1786 LOGICAL type.
1787
1788 2003-04-10 Canqun Yang <canqun@yahoo.com.cn>
1789
1790 * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
1791 (g95_trans_forall_body): New function.
1792
1793 2003-04-10 Canqun Yang <canqun@yahoo.com.cn>
1794
1795 * resolve.c (resove_where): New function.
1796 (resolve_where_shape): New function.
1797 (resolve_code): Add call to 'resolve_where'
1798 * trans-stmt.c (g95_trans_where): Modified.
1799 (g95_trans_where_2): New function.
1800 (g95_trans_where_assign): New function.
1801 (g95_evaluate_where_mask): New function.
1802 (g95_add_to_stmt_list): New function.
1803 (g95_get_temp_expr): New function.
1804 * trans.h (where_stmt_list): New structure.
1805
1806 2003-04-10 Paul Brook <paul@nowt.org>
1807
1808 * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
1809 (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
1810
1811 2003-04-10 Steven Bosscher <steven@gcc.gnu.org>
1812
1813 Update after mainline -> tree-ssa-branch merge.
1814 * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
1815 call.
1816 (g95_init): Update for new lang_hooks definition.
1817 (g95_post_options): New langhook.
1818 (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
1819 * scanner.c (g95_new_file): Comment update.
1820
1821 2003-04-09 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1822
1823 * g95.h, lang-options.h: Add -Wimplicit-interface.
1824 * options.c (g95_init_options, g95_parse_arg): Set it.
1825 * interface.c (check_intents): Warn about call with implicit
1826 interface.
1827 * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
1828 g95_procedure_use.
1829
1830 2003-04-05 Paul Brook <paul@nowt.org>
1831
1832 * iresolve.c (g95_resolve_spread): Don't resole based on type.
1833 * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
1834
1835 2003-03-29 Paul Brook <paul@nowt.org>
1836
1837 * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
1838 (g95_resolve_unpack): Ditto.
1839 * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
1840 (g95_conv_intrinsic_function): Use it. Remove PACK and UNPACK.
1841 (g95_is_intrinsic_libcall): Add PACK and UNPACK.
1842
1843 2003-03-25 Paul Brook <paul@nowt.org>
1844
1845 * arith.c (g95_unary_user, g95_user): Remove dead functions.
1846 * arith.h: Ditto.
1847 * array.c (g95_free_array_ref): Ditto.
1848 * g95.h: Ditto.
1849 * symbol.c (g95_use_derived_tree): Ditto.
1850 * intrinsic.c (add_functions): Use simplification for SCALE.
1851 * primary.c (g95_match_rvalue): Test sym, not symtree.
1852
1853 2003-03-25 Paul Brook <paul@nowt.org>
1854
1855 * trans-decl.c (build_function_decl): Add parameter before it gets
1856 turned into a constant.
1857 * iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
1858 * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
1859 * trans-decl.c (g95_create_module_variable): Don't pushdecl constants.
1860
1861 2003-03-22 Paul Brook <paul@nowt.org>
1862
1863 * trans-array.c (g95_conv_array_initializer): Allow scalar
1864 expressions.
1865 * trans-decl.c (g95_finish_var_decl): Result variables are not
1866 module variables.
1867 * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
1868 (g95_conv_intrinsic_function): Use it.
1869 * trans-types.h (g95_type_spec): Remove dead declaration.
1870
1871 2003-03-21 Paul Brook <paul@nowt.org>
1872
1873 * trans-decl.c (g95_build_function_decl): Mark string parameters.
1874
1875 2003-03-20 Paul Brook <paul@nowt.org>
1876
1877 * trans-decl.c (g95_build_function_decl): Put character length
1878 parameters at the end of the function declaration.
1879 * trans-expr.c (g95_conv_function_call): Ditto.
1880 * trans-types.c (g95_get_function_type): Ditto.
1881
1882 2003-03-20 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1883
1884 * resolve.c (resolve_formal_arglist): Don't impose intent for
1885 procedure arguments of pure functions.
1886 (resolve_select): Remove redundant assignment.
1887
1888 2003-03-19 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
1889
1890 * arith.c (validate_logical), g95.h, options.c (g95_init_options):
1891 Remove option l1.
1892 * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
1893 * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
1894 const.
1895 * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
1896 Order list.
1897 * symbol.c (g95_add_type): Fix typo in comment.
1898
1899
1900 2003-03-16 Paul Brook <paul@nowt.org>
1901
1902 * dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
1903 * expr.c (g95_build_call): Remove.
1904 * f95-lang.c (puchdecl_top_level): New function.
1905 * g95.h (g95_code): Store resolved symbol, not just the name.
1906 * intrinsic.c (g95_intrinsic_namespace): New global namespace.
1907 (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
1908 (g95_get_intrinsic_sub_symbol): New function.
1909 * iresolve.c (g95_resolve_cpu_time): Use it.
1910 (g95_resolve_random_number): Ditto.
1911 * resolve.c: Set code->resolved_sym instead of code->sub_name.
1912 * trans-decl.c (g95_get_extern_function_decl): Give external decls
1913 the correct DECL_CONTEXT. Add global symbold to the global scope.
1914 * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
1915 fixed.
1916
1917 2003-03-16 Paul Brook <paul@nowt.org>
1918
1919 * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
1920 * options.c (g95_parse_arg): Ditto.
1921 * module.c (mio_symbol_attribute): Handle the always_explicit bit.
1922 * resolve.c (resolve_formal_arglist): The always_explicit sould be set
1923 for the procedure, not the parameter.
1924 * trans-array.c (g95_trans_g77_array): New function.
1925 (g95_trans_assumed_size): Use it.
1926 (g95_trans_dummy_array_bias): Ditto.
1927 (g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
1928 (g95_conv_expr_descriptor): ... to here. Update callers.
1929 * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
1930 (g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
1931 * trans-expr.c (g95_conv_function_call): Handle g77 arrays.
1932 * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
1933 * trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
1934 (g95_sym_type): Ditto.
1935
1936 2003-03-15 Paul Brook <paul@nowt.org>
1937
1938 * trans-array.c (g95_walk_elemental_function_args): Don't amputate the
1939 first chain.
1940 * trans-expr.c (g95_conv_function_call): Use the resolved symbol.
1941
1942 2003-03-14 Paul Brook <paul@nowt.org>
1943
1944 * trans-array.c (g95_array_is_packed): Remove.
1945 (g95_conv_array_base): Correctly handle all descriptorless cases.
1946 (g95_conv_array_stride): Use descriptorless strides.
1947 (g95_trans_dummy_array_bias): Don't always repack the array.
1948 (g95_build_dummy_array_decl): Automatic dummy arrays are only partial
1949 packed.
1950 * trans-types.c (g95_get_nodesc_array_type): Differentiate between
1951 dummy and non-dummy arrays...
1952 (g95_sym_type, g95_get_derived_type): ... like these.
1953 (g95_get_array_type_bounds): Allow discontiguous arrays.
1954
1955 2003-03-12 Paul Brook <paul@nowt.org>
1956
1957 * array.c (g95_resolve_array_spec): Fix comment.
1958 * g95.h (symbol_attributes): New flag always_explicit.
1959 * resolve.c (resolve_formal_arglist): Set it always_explicit.
1960 * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
1961 * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
1962 (g95_trans_array_bounds): Allow assumed shape arrays.
1963 (g95_trans_repack_array): Remove.
1964 (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
1965 * trans-decl.c (g95_build_qualified_array): Only ignore absent
1966 bounds for assumed size arrays.
1967 (g95_build_dummy_array_decl): Use descriptorless arrays.
1968 * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
1969 (g95_trans_pointer_assign): Fix typo.
1970 * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
1971 code.
1972 (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
1973 * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
1974 Also modify callers.
1975 * trans-types.h (g95_get_nodesc_array_type): Modify prototype.
1976
1977 2003-03-08 Paul Brook <paul@nowt.org>
1978
1979 * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
1980 (g95_conv_array_ubound): Provide dummy value for assumed size arrays.
1981 * resolve.c (compare_spec_to_ref): Allow full array sections.
1982
1983 2003-03-08 Paul Brook <paul@nowt.org>
1984
1985 * expr.c (g95_simplify_expr): Also simplify array index and
1986 substring expressions.
1987 * resolve.c (compare_spec_to_ref): Check for assumed size bounds.
1988 * trans-array.c (g95_trans_array_bounds): New function.
1989 (g95_trans_auto_array_allocation): Use it.
1990 (g95_trans_assumed_size): Rewrite.
1991 * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
1992 (gfor_fndecl_repack): Remove.
1993 (g95_build_qualified_array): Handle absent upper bounds.
1994 (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
1995 (g95_get_symbol_decl): Update.
1996 (g95_build_intrinsic_function_decls): Initialize new decls.
1997 * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
1998 (gfor_fndecl_repack): Remove.
1999 * trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
2000 * trans-types.c: (g95_build_array_type): Merge duplicated code..
2001 (g95_get_nodesc_array_type): Handle absent bounds.
2002 * trans-types.h (g95_get_nodesc_array_type): Declare.
2003
2004 2003-03-04 Paul Brook <paul@nowt.org>
2005
2006 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
2007 builtin-types.def.
2008
2009 2003-03-02 Paul Brook <paul@nowt.org>
2010
2011 * options.c (g95_init_options): Drfault to 1.
2012 (g95_pasrse_arg): Add -frepack-arrays, use strcmp.
2013 * trans-array.c (g95_conv_array_data, g95_conv_array_base,
2014 g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
2015 Handle non-constant size automatic arrays.
2016 (g95_conv_section_upper_bound, g95_conv_section_startstride): Use
2017 generic bound functions.
2018 (g95_trans_auto_array_allocation): Don't create a descriptor.
2019 (g95_trans_assumed_size): New function (broken).
2020 (g95_trans_dummy_array_bias): Remove unused var.
2021 * trans-array.h (g95_trans_assumed_size): Declare.
2022 * trans-decl.c (create_index_var): New fuction.
2023 (g95_build_qualified_array): New function.
2024 (g95_get_symbol_decl): Use it.
2025 (g95_trans_deferred_vars): Handle assumed shape seperately.
2026 * trans-types.c (get_element_type): Handle heap allocated arrays.
2027 (g95_is_nodesc_array): Include non-const size arrays.
2028 (g95_get_nodesc_array_type): Ditto.
2029
2030 2003-02-23 Paul Brook <paul@nowt.org>
2031
2032 * trans-array.c (g95_array_init_size): Should use stride, not size of
2033 last dimension.
2034
2035 2003-02-18 Paul Brook <paul@nowt.org>
2036
2037 * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
2038 after intrinsic function check.
2039
2040 2003-02-18 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2041
2042 * io.c (match_io): Fix missing return value and remove useless
2043 assignment.
2044 * match.c (g95_match): Remove useless assignment.
2045 * module.c (parse_string): Remove useless post increment.
2046 * simplify.c (g95_simplify_verify): Remove useless assignment.
2047
2048 2003-02-15 Paul Brook <paul@nowt.org>
2049
2050 * expr.c (restricted_intrinsic): Handle bad values gracefully.
2051 * g95.h (symbol_attribute): Add referenced member.
2052 (g95_symbol): Add dummy_order member.
2053 (g95_set_sym_referenced): Declare.
2054 * match.c (g95_match_assignment, g95_match_call): Use it
2055 * primary.c (match_actual_arg, g95_match_rvalue,
2056 g95_match_variable): Ditto.
2057 * symbol.c (next_dummy_order): New variable.
2058 (g95_set_sym_referenced): New function.
2059 (check_done): New function.
2060 (g95_add_*): Use it.
2061 * trans-decl.c: Make formatting conform to GCC standards.
2062 (g95_defer_symbol_init): Add dummy variables in the right order.
2063 (g95_get_symbol_decl): Only accept referenced variables.
2064 (g95_create_module_variable): Module variables are always required.
2065 (generatr_local_decls): New function.
2066 (generate_local_vars): New function.
2067 (g95_generate_function_code): Use it.
2068
2069 2003-02-13 Paul Brook <paul@nowt.org>
2070
2071 * trans-decl.c (g95_conv_struct_cons): Remove.
2072 (g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
2073 * trans-expr.c (g95_conv_structure): New function.
2074 (g95_conv_expr): Use it.
2075
2076 2003-02-09 Paul Brook <paul@nowt.org>
2077
2078 * trans-array.c (g95_array_init_size): Don't evaluate the linit
2079 expressions multiple times.
2080 (g95_trans_auto_arry_allocation): Use pointer not tmp.
2081
2082 2003-02-08 Paul Brook <paul@nowt.org>
2083
2084 * module.c (mio_symtree_ref): Declare as static.
2085 (mio_expr): Remove dead code.
2086 (read_module): Set the symtree link for fixups.
2087 * trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
2088 (build_round_expr): ... to this.
2089 (g95_conv_intrinsic_aint): New function.
2090 (g95_conv_intrinsic_function): Use it.
2091
2092 2003-02-08 Paul Brook <paul@nowt.org>
2093
2094 * trans-array.c (g95_trans_array_constructor_value): Use the acutal
2095 offset after modificaton, not the increment expression.
2096 * dependency.c: Kill excess whitespace.
2097
2098 2003-02-07 Sanjiv Gupta <sanjivg@noida.hcltech.com>
2099
2100 * dependency.h: Remove some function declarations.
2101 * dependency.c (get_no_of_elements): Change this function not to
2102 return int.
2103 * other: Add comments for all modified functions.
2104
2105 2003-02-06 Paul Brook <paul@nowt.org>
2106
2107 * g95spec.c (lang_specific_functions): Fix initializer warning.
2108 * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
2109 for structure type names.
2110 * trans-decl.c (g95_cons_structure_cons): New function.
2111 (g95_get_symbol_decl): Use it.
2112 * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
2113 referencing code.
2114
2115 2003-02-06 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2116
2117 * resolve.c (compare_cases): Add const to casts.
2118
2119 2003-01-30 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2120
2121 * g95.h (g95_check_f): Change a1 to f1m.
2122 * intrinsic.c (add_sym_1m, check_specific,
2123 g95_intrinsic_func_interface): Use it.
2124
2125 * module.c (init_pi_tree): Remove useless cast.
2126 (fp2): Fix argument type.
2127
2128 * parse.c (parse_select_block): Add comment.
2129
2130 2003-02-05 Toon Moene <toon@moene.indiv.nluug.nl>
2131
2132 * lang-options.h: Fix warning involving C90 concatenated
2133 strings.
2134
2135 2003-02-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
2136 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2137
2138 * io.c (format_asterisk): Complete initializer to kill warning.
2139 * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
2140 DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
2141 (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
2142 new defines to complete initializers. Kills all warnings.
2143
2144 * Make-lang.in: Comment cleanup.
2145
2146 2003-02-05 Paul Brook <paul@nowt.org>
2147
2148 * array.c (g95_free_constructor): Handle NULL expressions.
2149 * resolve.c (resolve_structure_cons): Ditto.
2150 * decl.c (g95_match_null): New Function.
2151 (variable_decl): Use it.
2152 * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
2153 * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
2154 * trans-types.c (g95_set_decl_attributes): Remove empty function.
2155
2156 2003-02-05 Paul Brook <paul@nowt.org>
2157
2158 * trans.h (build1_v): New macro.
2159 (build_v): Remove pointless and incorrect prototype.
2160 * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
2161 * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.
2162
2163 2003-02-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
2164
2165 * Make-lang.in (F95_OBJS): Remove one more dead file.
2166
2167 2003-02-01 Paul Brook <paul@nowt.org>
2168
2169 * lang-specs.h: Don't pass -ffixed-form to the linker.
2170 * trans-decl.c (g95_generate_function_code): Clear saved decl chain.
2171
2172 2003-02-01 Paul Brook <paul@nowt.org>
2173
2174 * Make-lang.in (F95_OBJS): Remove dead files.
2175 * trans-array.c (g95_array_init_size): Do the right thing when
2176 ubound=NULL.
2177 * trans-decl.c (g95_generate_function_code): Initialize deffered
2178 symbol list before translating contained subroutines.
2179 * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
2180 scalar invariant values here...
2181 (g95_conv_variable, g95_conv_function_call): ... instead of here ...
2182 * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.
2183
2184 2003-01-29 Paul Brook <paul@nowt.org>
2185
2186 * trans-array.c (g95_add_loop_code): Put pre code in the right block.
2187 (g95_walk_elemental_function_args): Reverse chains before adding.
2188 (g95_reverse_ss): Move about a bit.
2189 * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
2190 function arguments.
2191
2192 2003-01-28 Paul Brook <paul@nowt.org>
2193
2194 * intrinsic.c (resolve_intrinsic): Use correct union member.
2195 * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
2196 parameters.
2197 * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
2198 use associated variables.
2199 * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
2200 * trans-expr.c (g95_conv_expr_present): ... to here.
2201 * trans.h: Declare it.
2202 * trans-types.c (g95_sym_type): Assume subroutine if not specified.
2203
2204 2003-01-28 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
2205
2206 * array.c (expand_iterator): Suppress useless assignment.
2207 * decl.c (match_char_spec): Ditto.
2208 * io.c (match_io_iterator): Ditto.
2209 * primary.c (match_real_constant): Ditto.
2210 * interface.c (fold_unary, g95_free_interface, g95_extend_expr):
2211 Ditto. Also, use g95_intrinsic_op not int for intrinsic operators.
2212 * matchexp.c (match_add_operand, match_level_5): Likewise.
2213 * module.c (parse_atom, find_enum): Likewise.
2214 * resolve.c: move #include <string.h>
2215 (resolve_select): Fix serious typo.
2216
2217 2003-01-28 Steven Bosscher <s.bosscher@student.tudelft.n>
2218
2219 * Make-lang.in: Don't build with broken tree-ssa-pre.
2220
2221 2003-01-28 Steven Bosscher <s.bosscher@student.tudelft.nl>
2222
2223 * resolve.c (resolve_index): Add a TODO.
2224 * symbol.c: Remove useless "#include <ctype.h>".
2225
2226 2003-01-27 Paul Brook <paul@nowt.org>
2227
2228 * check.c (check_rest): Allow different type kinds as an extension.
2229 * g95.h (g95_resolve_f): Add f1m.
2230 * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
2231 * intrinsic.h: Chenge prototypes for MIN and MAX.
2232 * iresolve.c (g95_resolve_minmax): New function.
2233 (g95_resolve_min, g95_resolve_max): Use it.
2234 * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
2235 arguments once.
2236 (g95_conv_intrinsic_present): Fix logic.
2237
2238 2003-01-27 Steven Bossche <s.bosscher@student.tudelft.nl>
2239
2240 * g95.h (g95_case): Don't be a tree, be a double linked list.
2241 * match.c (match_case_selector): Remove redundant semantics check.
2242 Clean up a few goto's to make it a tiny little bit faster.
2243 * resolve.c (case_tree): Die.
2244 (compare_cases): Accept and compare unbounded cases too.
2245 (check_case_overlap): Don't build a tree. Instead, merge-sort the
2246 whole list of g95_cases passed from resolve_select.
2247 (sane_logical_select): Die.
2248 (check_case_expr): Return FAILURE if a CASE label is of the wrong
2249 type kind.
2250 (resolve_select): Fixup case expression for computed GOTOs, put it
2251 in expr, not expr2, for easier handing in the parse tree dumper and
2252 the code generator. Rewrite the rest of the function: Kill
2253 unreachable case labels and unreachable case blocks.
2254 * dump-parse-tree.c (g95_show_code_node): Always dump expr for
2255 an EXEC_SELECT, not case2 anymore.
2256 * trans-const.c (g95_conv_constant_to_tree): New function.
2257 (g95_conv_constant): Use it.
2258 * trans-const.h: Declare prototype for the new function.
2259 * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
2260 g95_trans_character_select): New static functions.
2261 (g95_trans_select): Rewrite.
2262
2263 2003-01-26 Paul Brook <paul@nowt.org>
2264
2265 * intrinsic.c (add_fnctions): Properly add dreal.
2266 * trans-intrinsic.c (g95_conv_intrinsic_present): New function.
2267 (g95_conv_intrinsic_function): Use it.
2268 * trans-io.c (build_dt): Abort on internal files (unimplemented).
2269
2270 2003-01-26 Paul Brook <paul@nowt.org>
2271
2272 Widespread changes to the handling of symbols in expressions. These
2273 are now linked via g95_symtree nodes.
2274 * parse.c (g95_fixup_sibling symbols): New function.
2275 (parse_contained): Use it.
2276 * g95.h (symbol_attribute): Add contained. Indicates a symbol is a
2277 contained procedure that has bee correctly fixed up.
2278 (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.
2279
2280 2003-01-24 Paul Brook <paul@nowt.org>
2281
2282 * trans-array.c (g95_walk_expr): Function result attributes are in
2283 sym->result.
2284 * trans-expr.c (g95_conv_function_call,
2285 g95_trans_arrayfunc_assign): Ditto.
2286 * trans-decl.c (g95_get_symbol_for_expr): Set sym->result.
2287
2288 2003-01-23 Steven Bosscher <s.bosscher@student.tudelft.nl>
2289
2290 * expr.c (check_restricted): Fix error message.
2291 * symbol.c (free_st_labels): Plug memleak.
2292
2293 2003-01-22 Steven Bosscher <s.bosscher@student.tudelft.nl>
2294
2295 * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
2296 reduce_binary_aa, reduce_binary, eval_intrinsic,
2297 eval_intrinsic_f2): Use typesafe prototypes for eval functions.
2298 * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
2299 for typesafe intrinsics helper functions.
2300 (g95_intrinsic_sym): Use them.
2301 * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
2302 add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
2303 add_sym_5, add_conv, resolve_intrinsic, do_simplify,
2304 check_specific, g95_intrinsic_func_interface,
2305 g95_intrinsic_sub_interface): Adjust all calls to intrinsics
2306 helper functions.
2307 * trans-decl.c (g95_get_extern_function_decl): Likewise.
2308 * Make-lang.in: Don't disable warnings for strict prototypes
2309 any longer, everything is typesafe now.
2310
2311 2003-01-22 Steven Bosscher <s.bosscher@student.tudelft.nl>
2312
2313 * bbt.c (duplicate_node): Make static.
2314 * module.c (module_name): Make static.
2315 * scanner.c (include_dirs): Make static.
2316
2317 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
2318
2319 Hard coded _gfor_'s should not show up anymore.
2320 * g95.h (PREFIX): New macro.
2321 * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
2322 hard-coded "_gfor".
2323 (g95_resolve_random_number): Likewise.
2324 * trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
2325 * trans-io.c: Remove 'prefix' macro. Replace all uses with
2326 the new PREFIX macro from g95.h.
2327
2328 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
2329
2330 The troubles of forking... Andy implemented this just now too.
2331 Let's stick to that and keep the trees close.
2332 * g95.h (g95_st_label): 'format' member is now a g95_expr.
2333 * io.c: Revert previous changes.
2334 (g95_match_format): Match the format string as a character
2335 literal expression.
2336 * match.h (g95_statement_label): Declare external.
2337 * parse.c: Revert previous changes.
2338 * symbol.c (g95_free_st_label): Free a g95_expr instead
2339 if a 'char *'.
2340 * trans-io.c: Revert previous changes.
2341 (build_dt): Use set_string to set the format string.
2342
2343 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
2344
2345 * io.c (format_string): Make non-static.
2346 (g95_match_format): Remember the format string.
2347 (terminate_io): Add I/O termination for empty I/O lists.
2348 * match.h: Declare external format_string.
2349 * parse.c (check_statement_label): Attack the format string
2350 to a format label for FORMAT statements.
2351 * trans-io.c (g95_add_field): Define prefix macro. Replace
2352 all uses of PREFIX define with a use of this macro.
2353 (build_dt): Implement formatted I/O for format labels.
2354
2355 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
2356
2357 * lang-options.h: Kill "-std=F".
2358 * options.c: Remove unimplemented "-std=F". Modify
2359 web address.
2360 * misc.c (g95_terminal_width): New function.
2361 * error.c (g95_error_init_1): Use g95_terminal_width.
2362 * g95.h: Add prototype for g95_terminal_width, remove
2363 fmode flag.
2364
2365 2003-01-19 Steven Bosscher <s.bosscher@student.tudelft.nl>
2366
2367 * Make-lang.in: Fix typo.
2368
2369 2003-01-18 Steven Bosscher <s.bosscher@student.tudelft.nl>
2370
2371 * g95.h (struct g95_case): Remove unused cruft, new member
2372 'where' to keep track of the locus of the default case.
2373 * match.c (g95_match_case): Add locus to the current case.
2374 (match_case_selector): Likewise.
2375 * parse.c (parse_select_block): Move semantics check for
2376 multiple DEFAULT cases out of here to...
2377 * resolve.c (check_case_overlap): ...here. Return sooner
2378 when possible.
2379 (check_case_expr): Take two g95_cases now, use to sure the
2380 expression kinds are the same.
2381 (resolve_select): Cleanup.
2382
2383 2003-01-18 Paul Brook <paul@nowt.org>
2384
2385 * trans-io.c: Fix typos in ported IO work (set_fla[tg]).
2386 * trans-decl.c (g95_set_symbol_decl): Handle non-array result
2387 variables.
2388 (g95_get_extern_function_decl): Put decls in the correct context.
2389
2390 2003-01-18 Steven Bosscher <s.bosscher@student.tudelft.nl>
2391
2392 * trans-io.c: Port changes from Andy to set ERR flag.
2393
2394 2003-01-17 Paul Brook <paul@nowt.org>
2395
2396 * trans-array.c: Add various comments.
2397 (g95_ss_terminator): Declare as const.
2398 (g95_walk_expr): Remove first parameter and update all callers.
2399 (g95_walk_op_expr): Initialize scalar SS properly.
2400 * trans-array.h (g95_walk_expr): Update prototype.
2401 * trans-expr.c: Update for new g95_walk_expr.
2402 * trans-intrinsic.c: Ditto.
2403 * trans-io.c: Ditto.
2404 * trans.h: Various comments for SS chains.
2405
2406 2003-01-17 Paul Brook <paul@nowt.org>
2407
2408 * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
2409 and RRSPACING.
2410 * intrinsic.c (add_functions): Use them.
2411 * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
2412 * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.
2413
2414 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
2415
2416 Fallout of a small merge conflict:
2417 * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).
2418
2419 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
2420
2421 * initrinsic.c: New add_sym_* functions for strong typing.
2422 (add_conv): Make prototype strict.
2423 * dump-parse-tree.c, dependency.c: Include config.h
2424 * resolve.c, trans-io.c: Fix typos.
2425
2426 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
2427
2428 * dump-parse-tree.c (g95_show_code_node): Show the
2429 condition for a computed GOTO that was transformed
2430 to a SELECT CASE construct.
2431 * resolve.c (check_case_overlap): Revert previous switch
2432 to treaps, it was too slow and didn't catch all trouble.
2433 (resolve_symbol): Be more flexible about module procedures.
2434 * symbol.c (check_conflict): Point to relevant section in
2435 the standard for dubious conflict. Allow procedure
2436 dummy arguments to be optional again.
2437 * trans-io (add_field): Rename to g95_add_field. Change
2438 all callers.
2439 * trans-stmt (trans_select): Handle unbounded cases for
2440 integer SELECT CASE constructs. Fix/add more comment.
2441
2442 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
2443
2444 * g95.h: Uses GCC's function attribute macros.
2445 * error.c, module.c, parse.c, g95.h: More function attributes.
2446
2447 2003-01-16 Steven Bosscher <s.bosscher@student.tudelft.nl>
2448 Forgot a file...
2449 * trans-decl.c (get_label_decl): Use TREE_LINENO instead
2450 of DECL_SOURCE_LINE, and TREE_FILENAME instead of
2451 DECL_SOURCE_FILE.
2452
2453 2003-01-16 Steven Bosscher <s.bosscher@student.tudelft.nl>
2454
2455 * f95-lang.c (pushdecl): Use TREE_LINENO instead of
2456 DECL_SOURCE_LINE.
2457 * trans.c (g95_trans_code): Use annotate_all_with_file_line
2458 instead of nowdead wrap_all_with_wfl.
2459
2460 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
2461
2462 * parse.c (g95_parse_file): In verbose mode, dump the parse tree
2463 before generating code, so we can still see it even if the code
2464 generation phase dies.
2465
2466 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
2467
2468 * decl.c (build_sym): Split out initialization expression parts...
2469 (add_init_expr_to_sym): ...to here.
2470 (variable_decl): Add the symbol following an attribute list to the
2471 symbol tree before parsing the optional initialization expression
2472 if the symbol is not of a derived type.
2473 * primary.c (g95_match_rvalue): Don't assume a symbol always has
2474 a value if it is a PARAMETER.
2475
2476 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
2477
2478 * misc.c: Don't #include <mcheck.h>
2479 * module.c: Ditto. Kill uses of mtrace, muntrace. If there
2480 ever was a glibc bug, then either this was never reported to
2481 glibc people, or it has been fixed for so long that there's
2482 no information you can find about it, anywhere.
2483
2484 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
2485
2486 Fix warnings:
2487 * module.c (attr_bits, bt_types, array_spec_types):
2488 Switch 'const' and 'static'.
2489 * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.
2490
2491 GNU'ify source code:
2492 * trans-io.c: Numerous fixes, one fixed warning and a few
2493 TODO markers so that we don't forget about them.
2494
2495 2003-01-13 Paul Brook <paul@nowt.org>
2496
2497 * intrinsic.c (add_functions): Add G95_ISYM_SCALE.
2498 * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
2499 Add G95_ISYM_SCALE.
2500 * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
2501 * match.c (g95_match_stop): Fix dumb == -> != error.
2502
2503 2003-01-13 Steven Bosscher <s.bosscher@student.tudelft.nl>
2504
2505 * dump-parse-tree.c (show_indent): Add line breaks. This
2506 whole dumping process needs cleanups.
2507 * f95-lang.c (g95_mark_addressable): Fix prototype to match
2508 the langhook. Fix 'return's accordingly.
2509 * g95-support.h: Adjust prototype.
2510 * g95.h: Add 'no_backend' member to 'g95_option_t' struct.
2511 * lang-options.h: Add '-fsyntax-only'.
2512 * options.c (g95_init_options): Init 'no_backend'.
2513 (g95_parse_arg): Deal with '-fsyntax-only'.
2514 * parse.c (g95_parse_file): Do not generate code if 'no_backend'
2515 is set.
2516
2517 2003-01-13 Steven Bosscher <s.bosscher@student.tudelft.nl>
2518 Patch from Arnaud
2519 * resolve.c (resolve_symbol): Assumed shape arrays must be dummy
2520 arguments. Also make sure that if a symbol is marked INTRINSIC,
2521 an intrinsic with the symbol's name actually exists.
2522 (check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
2523 Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
2524 ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.
2525
2526 2003-01-13 Steven Bosscher <s.bosscher@student.tudelft.nl>
2527
2528 * resolve.c (resolve_contained_functions): Fix condition, don't
2529 throw internal_error if a child namespace has no name. Apparently
2530 this can be the case?
2531
2532 2003-01-11 Paul Brook <paul@nowt.org>
2533
2534 Port changes from Andy's tree:
2535 * g95.h (g95_code): Add stop_code.
2536 * match.c (g95_match_stop): Detter syntax checking.
2537 * resolve.c (resolve_generic_f0): Return match type.
2538 (resolve_generic_f): Remove dead/duplicated code.
2539 (resolve_specific_f): Ditto.
2540 * dump-parse-tree.c (g95_show_code_node): Handle new STOP format.
2541 * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes.
2542 * trans-stmt.c (g95_trans_stop): Handle new STOP format.
2543
2544 2003-01-11 Paul Brook <paul@nowt.org>
2545
2546 * trans-array.c: Various documentation/comment changes.
2547 * trans-stmt.c: Ditto.
2548
2549
2550 2003-01-10 Paul Brook <paul@nowt.org>
2551
2552 * options.c/h: Add -fdump-parse-tree as alias of -v.
2553
2554 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
2555
2556 * dump-parse-tree.c (g95_show_namespace): Fixed another
2557 typo. Sorry, it's Friday...
2558
2559 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
2560
2561 Spotted by Tobi:
2562 * trans-array.c, trans-array.h, trans.c, trans-const.c,
2563 trans-const.h, trans-decl.c, trans-expr.c, trans.h
2564 trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h
2565 trans-types.c: Fix bogus copyright years, add 2003.
2566 * trans-types.h: Give copyright header.
2567
2568 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
2569
2570 * dump-parse-tree.c (g95_show_namespace): Fixed typo.
2571 * expr.c, options.c, scanner.c: Add some more 'const' markers.
2572 * intrinsic.c: Some constant strings moved to read-only memory.
2573 * io.c (format_asterisk): Move to...
2574 * g95.h: ...here.
2575
2576 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
2577
2578 * dump-parse-tree.c (g95_show_namespace): Dump implicit
2579 types for ranges instead of per-letter. Indent the
2580 'CONTAINS' just like everything else.
2581 * resolve.c (resolve_contained_functions): Clarify comment.
2582 Explain non-obvious conditional expression. Improve
2583 diagnostics if tyoe cannot be resolved.
2584 Port semi-fix from Andy's tree:
2585 (was_declared): Move up before first use.
2586 (generic_sym, specific_sym): New functions. Code moved
2587 out if procedure_kind.
2588 (procedure_kind): Simplify using new functions.
2589 (resolve_generic_f): Make sure the functions we find in
2590 a parent namespace is generic.
2591 (resolve_specific_f): Ditto for specific functions.
2592
2593 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
2594
2595 * trans-stmt.c, trans.c: Fix some code style issues. Add
2596 some more comment (but still not enough!).
2597
2598 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
2599
2600 * symbol.c (flavors, procedures, intents, acces_types,
2601 access_types, ifsrc_types): Make const.
2602 * misc.c (g95_string2code): Make 'm' param 'const'.
2603 * module.c (find_enum, write_atom, mio_name): Make
2604 'm' param 'const'.
2605 (attr_bits, bt_types, array_spec_types, array_ref_types,
2606 ref_types, expr_types): Make const.
2607 * g95.h: Adjust external decls.
2608
2609 2003-01-09 Paul Brook <paul@nowt.org>
2610
2611 * Testsuite: Add a load of new cases.
2612
2613 2003-01-08 Steven Bosscher <s.bosscher@student.tudelft.nl>
2614
2615 * Make-file.in: Add dependency on back end header files;
2616 a parallel build should work now.
2617 * f95-lang-c (lang_identifier): Remove bogus comment.
2618 (g95_be_parse_file): Fix prototype.
2619 (g95_init): Make static.
2620 (g95_finish): Make static.
2621 * error.c (g95_syntax_error): Kill. Make define in...
2622 * g95.h (g95_syntax_error): Define.
2623 (g95.options): Make 'source' member 'const'.
2624 * interface.c (g95_match_interface): Explain
2625 hard-to-read condition.
2626 (g95_match_end_interface): Ditto.
2627 * trans_const.c (g95_build_string_const): Make 's' parameter
2628 'const'.
2629 * trans_const.h: Adjust protoype accordingly.
2630 * trans-decl.c: Include tree-dump.h
2631 (g95_generate_function_code): Build fixes for recent changes
2632 in the tree-ssa branch.
2633
2634 2003-01-08 Steven Bosscher <s.bosscher@student.tudelft.nl>
2635
2636 * format.c: Kill, move code from here...
2637 * io.c: ...to here.
2638 * Make-lang.in: Adjust.
2639 * MANIFEST: Ditto.
2640 * match.h: Ditto.
2641 * BUGS: Mention where to submit bugs. Move old content...
2642 * TODO: ...to here. New file.
2643
2644 2003-01-08 Steven Bosscher <s.bosscher@student.tudelft.nl>
2645 Fix most warnings, and suppress the ones we can't fix for now.
2646 * Make-lang.in: Suppress warnings about bad proto's in g95.h,
2647 these warnings just clutter the screen and there's not much
2648 we can do about them for now anyway.
2649 * check.c, iresolve.c: Mark unused function parameters.
2650 * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN,
2651 they should be resolved before they get here.
2652 * error.c: Remove unused FILE *status_out.
2653 * f95-lang.c (g95_init): Remove bogus cast.
2654 * Many files: Make things 'const' where required.
2655 * g95.h: Fix prototypes for all modified functions above.
2656 (g95_options): Remove 'object' member.
2657
2658 2003-01-07 Steven Bosscher <s.bosscher@student.tudelft.nl>
2659
2660 * Make-file.in: Cleanup bogus targets. Add more comment.
2661 * lang-options.h: New option '-w'.
2662 * g95.h: add no_options field to struct g95_options.
2663 * options.c (g95_init_options): Default no_warnings to off.
2664 (g95_parse_arg): Recognise the '-w' switch and its alias,
2665 '-fno-warnings'.
2666 * error.c (g95_warning, g95_warning_now): Don't emit warning if
2667 no_warning option is set.
2668 * iresolve.c (g95_resolve_shape): Fix warning.
2669
2670 2003-01-07 Steven Bosscher <s.bosscher@student.tudelft.nl>
2671
2672 * primary.c (g95_next_string_char): Rename next_string_char, and
2673 make static. Adjust callers accordingly.
2674 * resolve.c (resolve_generic_f0): Return try, not match. Adjust
2675 callers accordingly.
2676 * g95.h: Split out all g95_match* functions to...
2677 * match.h: ...here. New file.
2678 * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c,
2679 matchexp.c, module.c, parse.c, primary.c: Inlcude match.h
2680
2681 2003-01-07 Steven Bosscher <s.bosscher@student.tudelft.nl>
2682
2683 * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range,
2684 g95_merge_new_implicit): New functions.
2685 (g95_match_implicit_none, g95_match_implicit): Move from here...
2686 * match.c (g95_match_implicit_none, g95_match_implicit): ... to here.
2687 Modify to use the new functions in symbol.c.
2688 * g95.h: Add and move prototypes.
2689
2690 2003-01-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
2691
2692 * bbt.c (insert): Use a typedef'ed compare_fn prototype for the
2693 node compare function.
2694 (g95_insert_bbt): Likewise.
2695 (g95_insert_bbt_with_overlap): Likewise.
2696 (g95_delete_bbt): Likewise.
2697 (delete_treap): Likewise. Also fix a potential bug when calling it.
2698 * module.c (compare_pointers): Change proto to compare_fn.
2699 (compare_integers): Likewise.
2700 (compare_true_names): Likewise.
2701 (find_true_name): Adjust call to compare_true_names to match proto.
2702 (require_atom, write_atom, mio_name): Fix 'const' warnings.
2703 (init_pi_tree): Make compare a compare_fn instead of (int *).
2704 * resolve.c (compare_cases): Change proto to compare_fn.
2705 * symbol.c (g95_compare_symtree): Change proto to compare_fn, make
2706 it static, and rename to compare_symtree.
2707 (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed
2708 function.
2709 * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes
2710 of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt.
2711
2712 2003-01-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
2713 * Make-lang.in: Fix spaces/tabs issues from previous patch.
2714 * patch.options: Blow away Paul's checkin mistake :-)
2715 * io.c (terminate_io): Fix memory leak (Arnaud).
2716
2717 2003-01-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
2718
2719 * Make-lang.in: Teach about building DVI, info manual.
2720 * g95.texi: New file.
2721
2722 2003-01-02 Paul Brook <paul@nowt.org>
2723
2724 * trans-array.c (g95_reverse_ss): Make static and don't use.
2725 (g95_conv_ss_descriptor): Don't use g95_loopinfo
2726 (g95_conv_array_parameters): Modify for pointer assignments.
2727 (g95_walk_subexpr): New function.
2728 (g95_walk_expr*): Use it.
2729 * trans-array.h (g95_reverse_ss): Remove prototype.
2730 * trans-expr.c (g95_trans_pointer_assign): Implement.
2731 (Many): Set se.want_pointer before calling g95_conv_array_parameter.
2732 * trans-intrinsic.c: Sync with scalarizer changes.
2733 * trans-io.c: Ditto.
2734
2735 2002-12-29 Paul Brook <paul@nowt.org>
2736
2737 * trans-array.c: Document calling convention for arrays.
2738
2739 2002-12-19 Paul Brook <paul@nowt.org>
2740
2741 * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect
2742 assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass
2743 optional parameters for some intrinsics.
2744 (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE.
2745 * trans-expr.c (g95_conv_function_call): Pass NULL for absent
2746 optional parameters.
2747 * trans.h (g95_se): Add ignore_optional flag.
2748
2749 2002-12-15 Paul Brook <paul@nowt.org>
2750
2751 * trans-array.c (g95_conv_array_parameter): Fix partial rank sections.
2752 * trans-decl.c (g95_generate_function_code): Use TDI_original.
2753
2754 2002-12-14 Paul Brook <paul@nowt.org>
2755
2756 * trans-stmt.c (g95_trans_call): Use resolved symbol name.
2757
2758 2002-12-12 Paul Brook <paul@nowt.org>
2759
2760 * trans-array.c (g95_trans_array_constructor_subarray): Fully
2761 initialize the scalarizer.
2762 (various): Update to new format of g95_expr->value.constructor.
2763
2764 2002-12-08 Paul Brook <paul@nowt.org>
2765
2766 * trans-array.c (g95_put_offset_into_var): New function.
2767 (g95_trans_array_constructor_subarray): New function.
2768 (g95_trans_array_constructor_value): Use it.
2769 (g95_array_cons_size): Don't abort() on array components.
2770
2771 2002-12-08 Paul Brook <paul@nowt.org>
2772
2773 * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o.
2774 * support.c: Update #includes.
2775 (statement_code_p, c_size_in_bytes, s_size_type_node): Remove.
2776 * trans-array.c: Update #includes.
2777 * trans.c: Ditto.
2778 * trans-const.c: Ditto.
2779 * trans-io.c: Ditto.
2780 * trans-types.c: Ditto.
2781 (g95_init_types): Set size_type_node.
2782 * trans-decl.c: Update #includes.
2783 (gfor_fndecl_adjust{l,r}): Declare and initialize.
2784 * trans-stmt.c: Update #includes.
2785 (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR.
2786 (g95_trans_select): Fix check for unbounded ranges.
2787 * trans-expr.c: Update #includes.
2788 (g95_conv_string_tmp): New function.
2789 (g95_conv_concat_op): Use it.
2790 * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare.
2791 * Trans-intrisic.c: Update #includes.
2792 (g95_conv_intrinsic_strcmp): New function.
2793 (g95_conv_intrinsic_adjust): Ditto.
2794 (g95_conv_intrinsic_function: Use them.
2795
2796 2002-11-30 Paul Brook <paul@nowt.org>
2797
2798 * trans-array.c (g95_walk_function_expr): Handle non-array return by
2799 reference.
2800 * trans-dec.c (g95_build_function_decl): Handle character return
2801 parammeters.
2802 (g95_get_fake_result_decl): Ditto.
2803 (g95_trans_deferred_vars): Ditto.
2804 * trans-expr.c (g95_conv_function_call): Ditto.
2805 (g95_trans_arrayfunc_assign) Limit to array valued functions.
2806 * trans-intrinsic.c (g95_conv_intrinsic_char): New function.
2807 (g95_conv_intrinsic_function): Use it.
2808 * trans-types.c (g95_sym_type): Handle functions returning strings.
2809 (g95_return_by_reference): Ditto.
2810 (g95_get_function_type): Ditto.
2811
2812 2002-11-18 Paul Brook <paul@nowt.org>
2813
2814 * trans-stmt.c (g95_trans_if): Fix IF statements when the condition
2815 requires a temporary.
2816 (g95_trans_select): Handle computed gotos.
2817 * trans-types.c (g95_build_array_type): Warn about non-functional
2818 assumed shape arrays.
2819 * trans-expr.c (g95_trans_scalar_assign): Correctly handle post
2820 blocks.
2821 * trans-intrinsic.c (g95_conv_intrinsic_round): New function.
2822 (g95_conv_intrinsic_int): New function.
2823 (g95_conv_intrinsic_mod): New function.
2824 (g95_conv_intrinsic_ichar): New function.
2825 (g95_conv_intrinsic_function): Use them.
2826 (g95_conv_intrinsic_dim): Use g95_evaluate_now.
2827
2828 2002-11-17 Toon Moene <toon@moene.indiv.nluug.nl>
2829
2830 * trans-types.c (g95_build_array_type): Assumed
2831 sized arrays can have rank > 1.
2832 * trans.c (g95_trans_code): Remove erroneous
2833 warning about CONTINUE.
2834 * trans-expr.c (g95_conv_variable): Remove
2835 erroneous assert.
2836
2837 2002-11-15 Paul Brook <paul@nowt.org>
2838
2839 * trans-array.c (g95_conv_array_parameter): Check for NULL stride.
2840
2841 2002-10-31 Paul Brook <paul@nowt.org>
2842
2843 * f95-tree.c: Remove tree copying stuff that's now in gimple.c
2844 * trans-expr.c (g95_conv_component_ref): Handle character string
2845 components.
2846 (g95_conv_string_parameter): Ditto.
2847 * trans-types.c (g95_get_derived_type): Add length decl to caracter
2848 string components.
2849
2850 2002-10-10 Paul Brook <paul@nowt.org>
2851
2852 * trans-decl.c (gfor_fndecl_size?): Declare and initialize.
2853 * trans-expr.c (g95_conv_function_call): Remove unreliable return value
2854 check.
2855 * trans-intrinsic.c (g95_conv_intrinsic_size): New function.
2856 (g95_conv_intrinsic_function): Handle size and shape intrinsics.
2857 (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE.
2858 * trans-types.c (pvoid_type_node): Declare and initialize.
2859 * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT
2860 (g95_array_allocate): Fix when base==data.
2861 (g95_conv_array_parameter): Correctly handle reduced rank sections.
2862 * trans-io.c (g95_trans_write): Correctly handle string modifiers.
2863
2864 2002-10-09 Paul Brook <paul@nowt.org>
2865
2866 * (g95_conv_expr_reference): Handle character strings correctly.
2867
2868 2002-10-07 Paul Brook <paul@nowt.org>
2869
2870 (g95_expand_decl): Rename from f95_expand_decl_stmt and use as
2871 langhook.
2872 * trans-array.c (g95_build_array_initializer): Remove.
2873 (g95_conv_array_initializer): New Function.
2874 (g95_trans_auto_arry_allocation): Cleanup.
2875 (g95_trans_init_character_array): Remove.
2876 * g95spec.c: Link in libgforbegin.
2877 * trans.c (g95_generate_code): Rename main function to MAIN__.
2878 (g95_create_var): New function.
2879 (g95_create_var_np): New function.
2880 (g95_evaluate_now): New function.
2881 (g95_start_block): New function.
2882 (g95_finish_block): New function.
2883 (g95_add_expr_to_block): New function.
2884 (g95_add_block_to_block): New function.
2885 * trans-expr.c (g95_conv_componen_ref): New function.
2886 * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o.
2887 (F95_OBJS): Add dependency.o.
2888 * f95-lang.c (g95_is_simple_stmt): Remove.
2889 * f95-tree.c (mark_not_simple): New function.
2890 (unshare_all_trees): New function.
2891 (create_tmp_var, create_tmp_alias_var): Remove.
2892 * support.c (declare_tmp_vars, tree_last_decl): Remove.
2893 * trans*: Convert to new IR using GENERIC trees. Don't bother about
2894 SIMPLE/GIMPLE rules, this is now done by Lang-independant code.
2895
2896 2002-10-01 Paul Brook <paul@nowt.org>
2897
2898 * trans-array.c: Add support for descriptorless arrays.
2899 (g95_conv_array_data): New function.
2900 (g95_conv_array_base): New function.
2901 * trans-array.h: Declare these here.
2902 * trans-decl.c(g95_create_mopdule_variable): Perform variable
2903 initialization and creation here.
2904 (g95_create_module_vars): Instead of here.
2905 * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*.
2906 * trans-intrinsic.c: Ditto.
2907 * trans-types.c (g95_is_nodesc_array): New function.
2908 (g95_get_nodesc_array_type): New function.
2909 (g95_sym_type, g95_get_derived_type): Use them.
2910 * trans-const.c (g95_conv_mpf_to_tree): Remove workaround.
2911
2912 2002-09-28 Paul Brook <paul@nowt.org>
2913
2914 * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug.
2915 * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex
2916 parameters.
2917
2918 2002-09-24 Paul Brook <paul@nowt.org>
2919
2920 * f95-lang.c (listify): Remove declaration.
2921 (expand_function_body): Use optimize >=1 instead of flag_tree_saa.
2922 (listify)
2923 * f95-tree.c (get_name): New function.
2924 * trans.c (module_namespace): Remove.
2925 * trans-decl.c: Use g95_chainon_list rather than chainon(listify()).
2926 * trans-types.c: Ditto.
2927
2928 2002-09-19 Paul Brook <paul@nowt.org>
2929
2930 * trans-array.c (g95_get_array_cons_size): New Function.
2931 (g95_con_ss_startstride): Handle Array constructors.
2932 (g95_conv_loop_setup): Ditto.
2933 (g95_conv_array_parameter): Ditto.
2934 * tras-decl.c (g95_finish_var_decl): Make initializes variables
2935 static.
2936
2937 2002-09-19 Paul Brook <paul@nowt.org>
2938
2939 * trans.c (g95_simple_fold_tmp): Detect variables inside
2940 NON_LVALUE_EXPR.
2941 * trans-stmt.c (g95_trans_arithmetic_if): Implement this.
2942
2943 2002-09-18 Steven Bosscher <s.bosscher@student.tudelft.nl>
2944
2945 * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o
2946
2947 2002-09-14 Paul Brook <paul@nowt.org>
2948
2949 * trans.c (g95_create_module_variable): Move to trans-decl.c.
2950 * trans-const.c (g95_conv_string_init): New Function.
2951 * trans-const.h: Declare it.
2952 * trans-decl.c (g95_get_symbol_decl): Handle initializers for static
2953 variables. Don't bail on intrinsic symbols.
2954 (get_extern_function_decl): Handle specific intrinsic functions.
2955 * trans-types.c (g95_sym_type): Dummy functions don't return
2956 reference types.
2957 * trans-array.c (g95_build_array_initializer): New Function.
2958 (g95_trans_auto_array_allocation): Build initializer for static decls.
2959 Don't use mpz_addmul, it's GMP4 only.
2960
2961 2002-09-12 Paul Brook <paul@nowt.org>
2962
2963 * trans-decl.c (g95_generate_code): Fix thinko with return variable.
2964 (g95_get_extern_function_decl, g95_build_function_decl): Mangle
2965 assembler names for module procedures.
2966
2967 2002-09-11 Tobias Schlueter <Tobias.Schlueter@physik.uni-muenchen.de>
2968
2969 * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of
2970 dependency/
2971
2972 2002-09-10 Paul Brook <paul@nowt.org>
2973
2974 * trans-array.c: Change format of G95_SS_TEMP strictures.
2975 (g95_check_fncall_dependancy): New function.
2976 (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating
2977 offsets.
2978 * trans-decl.c (g95_get_symbol_decl): move assertion after handling of
2979 result variables.
2980 (g95_build_function_decl): Don't assume result arrays are packed.
2981 (g95_trans-deferred-vars): Handle array result variables.
2982 (g95_generate_fuction_code): Clear saved_function_decls.
2983 * trans-expr.c (g95_conv_fnction_call): Handle direct array return by
2984 reference.
2985 (g95_trans_arrayfunc_assign): New function.
2986 (g95_trans_assignment): Use it.
2987 * trans.h (g95_ss): Add temp struct for G95_SS_TEMP.
2988 (g95_se): Add direct_byref.
2989 * trans-types.c: Use sym->result rather than sym where appropriate.
2990 * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function.
2991 Update other functions to use this.
2992 (g95_is_intrinsic_libcall): New function.
2993 (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics.
2994 (g95_walk_intrinsic_function): Ditto.
2995
2996 2002-09-08 Paul Brook <paul@nowt.org>
2997
2998 * trans-types.c: Change rank field to dtype field in array descriptor.
2999 * trans-array.c: Implement filling of dtype array descriptor field.
3000 * trans-intrinsic.c: Fix broken LEN intrinsic.
3001
3002 2002-09-07 Paul Brook <paul@nowt.org>
3003
3004 * trans-intrinsic.c: Remove outdated todo intrinsic list.
3005 (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics.
3006 (g95_walk_intrinsic_function): Add MINLOC and MAXLOC.
3007
3008 2002-09-06 Paul Brook <paul@nowt.org>
3009
3010 * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o.
3011 (gt-f95-trans-types.h): Add dependancy information.
3012 * config-lang.in (gtfiles): Add trans-types.c
3013 * f95-lang.c (g95_be_parse_file): Pass error and warning counts
3014 back to top-level code.
3015 * trans-array.c, trans-types.c: Change format of array descriptor.
3016 (g95_conv_descriptor_dimension): New function.
3017 * trans-types.h (g95_conv_descriptor_rank): define.
3018 * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC
3019 intrinsics.
3020
3021 2002-09-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
3022
3023 * trans-array.c, trans-types.c: Add rank information to descriptor.
3024
3025 2002-09-06 Tobias Schlueter <Tobias.Schlueter@physik.uni-muenchen.de>
3026
3027 * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL.
3028
3029 2002-09-04 Paul Brook <paul@nowt.org>
3030
3031 * f95-lang.c (g95_create_decls): New function.
3032 (g95_init): Move initialization of external decls to above, and call
3033 from g95_be_parse_file.
3034 * trans.c (g95_finish_stmt): Don't amputate the decl chain.
3035 * trans-types.c (g95_init_types): Always name integer and char types.
3036 (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL.
3037
3038 2002-09-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
3039
3040 * Make-lang.in: Add options.c to F95_PARSER_OBJS
3041
3042 2002-09-02 Paul Brook <paul@nowt.org>
3043
3044 * g95_generate_code: Clear the attr for __fortran_main.
3045 * trans-types.c (g95_finish_type): New function.
3046 * g95_init_io_state_type: Use g95_finish_type.
3047 * g95_conv_intrinsic_anyall: Fix thinko in result initialization.
3048
3049 2002-09-01 Paul Brook <paul@nowt.org>
3050
3051 * README.backend: Warn about the dangers of extra config.h files.
3052 Remove obsolete libgfor stuff.
3053 * config-lang.in: Add target-libgfor dependancy.
3054 * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff.
3055
3056 2002-09-01 Toon Moene <toon@moene.indiv.nluug.nl>
3057
3058 * g95_conv_mpz_to_tree: Free storage pointed to by q,
3059 not by buff.
3060
3061 2002-08-30 Paul Brook <paul@nowt.org>
3062
3063 * trans-intrinsic.c (g95_conv_intrinsic_function,
3064 g95_walk_intrinsic_function): Added ANY and ALL.
3065 (g95_conv_intrinsic_anyall): New function.
3066 * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
3067 mangled name
3068