OSDN Git Service

PR fortran/32046
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2007-05-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2
3         PR fortran/32046
4         * trans-expr.c (gfc_trans_zero_assign): Convert the result of
5         TYPE_SIZE_UNIT into a signed type.
6         (gfc_trans_array_copy):  Likewise.
7         (gfc_trans_array_constructor_copy): Likewise.
8         * trans-array.c (gfc_trans_create_temp_array): Likewise.
9         (gfc_grow_array): Likewise.
10         (gfc_array_init_size): Likewise.
11         (gfc_duplicate_allocatable): Likewise.
12         * trans-stmt.c (allocate_temp_for_forall_nest_1): Likewise.
13
14 2007-05-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
15
16         PR fortran/18923
17         * resolve.c (resolve_function): Don't call resolve_global_procedure if
18         there is no name. Delete duplicated statement in ELSE clause.
19
20 2007-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
21
22         PR fortran/31627
23         * trans-array.c (gfc_trans_array_bound_check): Take extra argument to
24         indicate whether we should check the upper bound in that dimension.
25         (gfc_conv_array_index_offset): Check only the lower bound of the
26         last dimension for assumed-size arrays.
27         (gfc_conv_array_ref): Likewise.
28         (gfc_conv_ss_startstride): Likewise.
29
30 2007-05-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
31             Daniel Franke  <franke.daniel@gmail.com>
32
33         PR fortran/32002
34         * resolve.c (resolve_actual_arglist): Resolve actual argument after
35         being identified as variable.
36
37 2007-05-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
38
39         PR fortran/32027
40         * trans-stmt.c (gfc_trans_do): Fix the value of loop variable
41         when the loop ends.
42
43 2007-05-21  H.J. Lu  <hongjiu.lu@intel.com>
44
45         * trans-stmt.c (gfc_trans_do): Fix a typo in comment.
46
47 2007-05-21  Paul Thomas  <pault@gcc.gnu.org>
48
49         PR fortran/31867
50         PR fortran/31994
51         * trans-array.c (gfc_conv_expr_descriptor): Obtain the stored
52         offset for non-descriptor, source arrays and correct for stride
53         not equal to one before writing to field of output descriptor.
54
55 2007-05-20  Daniel Franke  <franke.daniel@gmail.com>
56
57         PR fortran/32001
58         * check.c (check_rest): Improved argument conformance check and 
59         fixed error message generation.
60
61 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
62
63         PR fortran/30820
64         * Make-lang.in: Remove use of -Wno-error for expr.o, resolve.o,
65         simplify.o and trans-common.o.
66
67 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
68
69         PR fortran/31974
70         * trans-array.c (gfc_trans_auto_array_allocation): Avoid
71         multiplication of mismatched types.
72
73 2007-05-18  Daniel Franke  <franke.daniel@gmail.com>
74
75         PR fortran/24633
76         * symbol.c (gfc_add_flavor): Add the NAME to error message if
77         available.
78
79 2007-05-15  Daniel Franke  <franke.daniel@gmail.com>
80
81         PR fortran/31919
82         PR fortran/31929
83         PR fortran/31930
84         * intrinsic.c (check_specific): Check elemental intrinsics for
85         rank and shape.
86         (add_functions): Fixed dummy argument names of BESJN and BESYN.
87         Fixed elemental status of MCLOCK and MCLOCK8.
88         * check.c (check_rest): Added check for array conformance.
89         (gfc_check_merge): Removed check for array conformance.
90         (gfc_check_besn): Removed check for scalarity.
91         * intrinsic.texi (CSHIFT, EOSHIFT): Fixed typos.
92         (BESJN, BESYN): Clarified documentation.
93
94 2007-05-17  Tobias Burnus  <burnus@net-b.de>
95
96         * gfortran.texi (GFORTRAN_CONVERT_UNIT): Improve documentation.
97
98 2007-05-16  Brooks Moses  <brooks.moses@codesourcery.com>
99
100         PR fortran/18769
101         PR fortran/30881
102         PR fortran/31194
103         PR fortran/31216
104         PR fortran/31427
105         * target-memory.c: New file.
106         * target-memory.h: New file.
107         * simplify.c: Add #include "target-memory.h".
108         (gfc_simplify_transfer): Implement constant-
109         folding for TRANSFER intrinsic.
110         * Make-lang.in: Add dependencies on new target-memory.* files.
111
112 2007-05-15  Paul Brook  <paul@codesourcery.com>
113
114         * trans-types.c (gfc_type_for_size): Handle signed TImode.
115
116 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
117
118         PR fortran/30723
119         * trans.h (gfor_fndecl_internal_malloc, gfor_fndecl_internal_malloc64,
120         gfor_fndecl_internal_free): Remove prototypes.
121         (gfor_fndecl_os_error, gfc_call_free, gfc_call_malloc): Add prototypes.
122         * trans.c (gfc_call_malloc, gfc_call_free): New functions.
123         * f95-lang.c (gfc_init_builtin_functions): Add __builtin_free
124         and __builtin_malloc builtins.
125         * trans-decl.c (gfor_fndecl_internal_malloc,
126         gfor_fndecl_internal_malloc64, gfor_fndecl_internal_free): Remove.
127         (gfor_fndecl_os_error): Add.
128         (gfc_build_builtin_function_decls): Don't create internal_malloc,
129         internal_malloc64 and internal_free library function declaration.
130         Create os_error library call function declaration.
131         * trans-array.c (gfc_trans_allocate_array_storage,
132         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
133         gfc_conv_array_parameter, gfc_duplicate_allocatable): Use
134         gfc_call_malloc and gfc_call_free instead of building calls to
135         internal_malloc and internal_free.
136         * trans-expr.c (gfc_conv_string_tmp): Likewise.
137         * trans-stmt.c (gfc_do_allocate, gfc_trans_assign_need_temp,
138         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
139         gfc_trans_where_2: Likewise.
140         * trans-intrinsic.c (gfc_conv_intrinsic_ctime,
141         gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
142         gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_trim): Likewise.
143
144 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
145
146         PR fortran/31725
147         * trans-expr.c (gfc_conv_substring): Evaluate substring bounds
148         only once.
149
150 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
151
152         * f95-lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
153         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use unsigned_type_for
154         instead of gfc_unsigned_type.
155         * trans-stmt.c (gfc_trans_do): Use unsigned_type_for instead of
156         gfc_unsigned_type.
157         * trans-types.c (gfc_unsigned_type): Remove.
158         * trans-types.h (gfc_unsigned_type): Remove.
159
160 2007-05-12  Paul Thomas  <pault@gcc.gnu.org>
161
162         PR fortran/30746
163         * resolve.c (check_host_association): New function that detects
164         incorrect host association and corrects it.
165         (gfc_resolve_expr): Call the new function for variables and
166         functions.
167         * match.h : Remove prototype for gfc_match_rvalue.
168         * gfortran.h : Add prototype for gfc_match_rvalue.
169
170 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
171
172         PR fortran/30876
173         * trans-expr.c (gfc_conv_function_call): Reduce indirection for
174         direct assignments of recursive array valued functions.
175         * primary.c (gfc_match_rvalue): Correct error for recursive
176         function calls such that directly recursive calls of scalar
177         function without an explicit result are disallowed.
178
179 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
180
181         PR fortran/30878
182         * resolve.c (resolve_fl_namelist): It is not an error if the
183         namelist element is the result variable of the enclosing
184         function.  Search for the symbol in current and all parent
185         namespaces for a potential conflict.
186         * symbol.c (check_conflict): Remove the conflict between
187         'in_namelist' and 'FL_PROCEDURE' because the symbol info
188         is not available to exclude function result variables.
189         * trans-io.c (nml_get_addr_expr): Use the fake result decl
190         if the symbol is an implicit result variable.
191
192 2007-05-11  Paul Thomas  <pault@gcc.gnu.org>
193
194         PR fortran/31474
195         * decl.c (get_proc_name): If an entry has already been declared
196         as a module procedure, pick up the symbol and the symtree and
197         use them for the entry.
198
199 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
200
201         PR fortran/31630
202         * resolve.c (resolve_symbol): Remove the flagging mechanism from the
203         formal namespace resolution and instead check that the formal
204         namespace is not the current namespace.
205
206 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
207
208         PR fortran/31692
209         * trans-array.c (gfc_conv_array_parameter): Convert full array
210         references to the result of the procedure enclusing the call.
211
212 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
213
214         PR fortran/29397
215         PR fortran/29400
216         * decl.c (add_init_expr_to_sym): Expand a scalar initializer
217         for a parameter array into an array expression with the right
218         shape.
219         * array.c (spec_dimen_size): Remove static attribute.
220         * gfortran.h : Prototype for spec_dimen_size.
221
222 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
223
224         PR fortran/31399
225         * trans-stmt.c (gfc_trans_do): Handle large loop counts.
226
227 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
228
229         PR fortran/31764
230         * simplify.c (gfc_simplify_new_line): NEW_LINE can be simplified
231         even for non constant arguments.
232
233 2007-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
234             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
235
236         PR fortran/31201
237         * gfortran.h: Add runtime error codes from libgfortran.h. Define
238         MAX_UNIT_NUMBER.
239         * trans.c (gfc_trans_runtime_check): Update the format of runtime error
240         messages to match library runtime errors.  Use call to new library
241         function runtime_error_at().
242         * trans.h: Add prototype for new function gfc_trans_io_runtime_check.
243         Add declaration for library functions runtime_error_at and
244         generate_error.
245         * trans_io.c (gfc_trans_io_runtime_check): New function.
246         (set_parameter_value): Add error checking for UNIT numbers.
247         (set_parameter_ref): Initialize the users variable to zero. 
248         (gfc_trans_open): Move setting of unit number to after setting of common
249         flags so that runtime error trapping can be detected.
250         (gfc_trans_close): Likewise. (build_filepos): Likewise.
251         (gfc_trans_inquire): Likewise. (build_dt): Likewise.
252         * trans-decl.c: Add declarations for runtime_error_at and
253         generate_error. (gfc_build_builtin_function_decls): Build function
254         declarations for runtime_error_at and generate_error.
255
256 2007-05-06  Paul Thomas  <pault@gcc.gnu.org>
257
258         PR fortran/31540
259         * resolve.c (resolve_fl_procedure): Resolve constant character
260         lengths.
261
262 2007-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
263
264         PR fortran/31251
265         * decl.c (match_char_spec): Add check for invalid character lengths.
266
267 2007-05-04  Brooks Moses  <brooks.moses@codesourcery.com>
268
269         * intrinsic.texi (CMPLX): Document result kind.
270         (COMPLEX): Add documentation.
271
272 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
273
274         PR fortran/31760
275         * intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1
276         by gfc_check_fn_r to avoid checks for scalarity.
277         * check.c (gfc_check_besn): Removed check for scalarity.
278         (gfc_check_g77_math1): Removed.
279         * intrinsic.h (gfc_check_g77_math1): Removed.
280
281 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
282
283         * check.c (gfc_check_fseek_sub): Fixed typo.
284
285 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
286
287         PR fortran/22359
288         * intrinsic.c (add_subroutines): Added FSEEK.
289         * intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New.
290         * iresolve.c (gfc_resolve_fseek_sub): New.
291         * check.c (gfc_check_fseek_sub): New.
292         * intrinsic.texi (FSEEK): Updated.
293
294 2007-05-04  Tobias Burnus  <burnus@net-b.de>
295
296         PR fortran/31803
297         * expr.c (gfc_check_pointer_assign): Check for NULL pointer.
298
299 2007-05-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
300
301         PR fortran/31251
302         * simplify.c (gfc_simplify_len): Only simplify integer lengths.
303
304 2007-05-04  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
305
306         PR fortran/31781
307         * simplify.c (gfc_simplify_repeat): Don't put function call with
308         side effect in a gcc_assert().
309
310 2007-05-04  Tobias Burnus  <burnus@net-b.de>
311
312         PR fortran/25071
313         * interface.c (compare_actual_formal): Check character length.
314
315 2007-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
316
317         PR fortran/31732
318         * dependency.c (gfc_full_array_ref_p):  If the reference is
319         to a single element, check that the array has a single
320         element and that the correct element is referenced.
321
322 2007-05-01  Daniel Franke  <franke.daniel@gmail.com>
323
324         * intrinsic.c (add_functions): Fixed ELEMENTAL specifications.
325         (add_subroutines): Replaced magic numbers in function calls by
326         ELEMENTAL and NOT_ELEMENTAL respectively.
327         * intrinsic.texi (MVBITS): Changed class to elemental subroutine.
328         (RANDOM_NUMBER): Changed class to subroutine.
329         (HUGE, TINY): Changed class to inquiry function.
330
331 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
332
333         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int.
334         (gfc_conv_tree_to_mpz): New function.
335         (gfc_conv_mpfr_to_tree): Use real_from_mpfr.
336         (gfc_conv_tree_to_mpfr): New function.
337         * trans-const.h: (gfc_conv_tree_to_mpz): New prototype.
338         (gfc_conv_tree_to_mpfr): New prototype.
339
340 2007-04-30  Daniel Franke  <franke.daniel@gmail.com>
341
342         * intrinsic.texi (IERRNO): Changed class to non-elemental function.
343         (LOG10): Removed COMPLEX as accepted argument type.
344         (NEW_LINE): Changed class from elemental to inquiry function.
345         (SIGN): Removed requirement of scalar arguments.
346         (SNGL): Changed class to elemental function.
347
348 2007-04-29  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
349
350         PR fortran/31591
351         * simplify.c (simplify_bound_dim): New function.
352         (simplify_bound): Use the above. Perform simplification of LBOUND
353         and UBOUND when DIM argument is not present.
354
355 2007-04-29  Daniel Franke  <franke.daniel@gmail.com>
356
357         * gfortran.texi: Cleaned up keyword index.
358         * invoke.texi: Likewise.
359         * intrinsic.texi: Likewise.
360                         
361 2007-04-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
362
363         PR fortran/31645
364         * scanner.c (load_file): Discard the byte order mark if one is
365         found on the first non-preprocessor line of a file.
366
367 2007-04-29  Paul Thomas  <pault@gcc.gnu.org>
368
369         PR fortran/31711
370         * trans-array.c (gfc_conv_resolve_dependencies): Create a temp
371         whenever a dependency is found.
372
373 2007-04-28  Tobias Schlüter  <tobi@gcc.gnu.org>
374
375         * options.c (gfc_handle_option): Ensure requested free form line
376         length is not too small.
377
378 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
379
380         * intrinsic.texi (Transfer): Improve documentation.
381
382 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
383
384         * gfortran.texi (Option Index): Add @samp as needed.
385
386 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
387
388         * gfortran.texi: Added node and menu entry for an option index.
389         * invoke.texi: Moved command line option related entries of the concept 
390         index to the option index.
391
392 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
393
394         * intrinsic.texi (AND, FPUT, FPUTC, MODULO, OR, SET_EXPONENT,
395         XOR): Fixed examples.
396
397 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
398
399         * intrinsic.texi (PRODUCT, RESHAPE, SPACING, SPREAD, SUM, 
400         SYSTEM_CLOCK, TRANSFER, UNPACK): New.
401         (DATE_AND_TIME, CPU_TIME, RRSPACING): Added cross references.
402
403 2007-04-26  Daniel Franke  <franke.daniel@gmail.com>
404
405         * intrinsic.texi (NULL, PACK, PRESENT, REPEAT, SCAN, SHAPE, 
406         SIZE, TRANSPOSE, TRIM, VERIFY): New.
407         (ADJUSTL, ADJUSTR, INDEX): Added cross references.
408         (INT, INT2, INT8, LONG): Enabled section header.
409
410 2007-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
411
412         * module.c (module_char): Replace fgetc() with
413         getc(). 
414         (write_char): Replace fputc() with putc().
415         * scanner.c (load_line): Replace fgetc() with getc().
416         (gfc_read_orig_filename): Likewise.
417
418 2007-04-25  Tobias Burnus  <burnus@net-b.de>
419
420         PR fortran/31668
421         * error.c (error_print): Fix %% support.
422         * intrinsic.c (sort_actual): Improve error message.
423         * resolve.c (resolve_actual_arglist): Allow %VAL for
424         interfaces defined in the module declaration part.
425
426 2007-04-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
427
428         PR libfortran/31299
429         * intrinsic.texi (GETLOG): Update documentation to reflect
430         library changes.
431
432 2007-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
433
434         PR fortran/31587
435         * module.c (write_char): Add character to the MD5 buffer.
436         (read_md5_from_module_file): New function.
437         (gfc_dump_module): Compute MD5 for new module file. Call
438         read_md5_from_module_file. Only overwrite old module file
439         if the new MD5 is different.
440
441 2007-04-23  Paul Thomas  <pault@gcc.gnu.org>
442
443         PR fortran/31630
444         * resolve.c (resolve_symbol): Allow resolution of formal
445         namespaces nested within formal namespaces coming from modules.
446
447         PR fortran/31620
448         * trans-expr.c (gfc_trans_assignment): Make the call to
449         gfc_trans_zero_assign conditional on the lhs array ref being
450         the only reference.
451
452 2007-04-23  Tobias Burnus  <burnus@net-b.de>
453
454         * primary.c (match_integer_constant): Mention -fno-range-check
455         in the error message.
456
457 2007-04-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
458
459         PR fortran/31495
460         * scanner.c (load_line):  Remove check for comment after ampersand and
461         adjust tracking of ampersand.
462
463 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
464
465         * f95-lang.c (lang_tree_node): Use GENERIC_NEXT
466         instead of checking GIMPLE_STMT_P in chain_next.
467
468 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
469
470         * trans-types.h (gfc_packed): New enum.
471         (gfc_get_nodesc_array_type): Change prototype to use new enum.
472         * trans-types.c (gfc_get_nodesc_array): Use gfc_packed for
473         argument packed.  Adapt all references to values accordingly.
474         (gfc_sym_type): Use enum values in call to gfc_get_nodesc_array.
475         (gfc_get_derived_type): Likewise.
476         * trans-array.c (gfc_build_constant_array_constructor): Likewise.
477         * trans-expr.c (gfc_get_interface_mapping_charlen): Changed packed
478         argument to type gfc_packed.
479         (gfc_add_interface_mapping): Use enum values in call to
480         gfc_get_interface_mapping.
481         * trans-decl.c (gfc_build_dummy_array_decl): Adapt to use enum
482         values when determining packing.
483
484         * trans-decl.c (gfc_finish_decl): Remove unused second argument
485         'init'.  Simplify code accordingly.  Remove calls to
486         gfc_fatal_error in favor of gcc_assert.
487         (create_function_arglist): Remove second argument from calls to
488         gfc_finish-decl.
489         (gfc_trans_dummy_character): Likewise.
490
491         * arith.h: Update copyright years.
492         * dependency.h: Likewise.
493         * gfortran.h: Likewise.
494         * lang-specs.h: Likewise.
495         * parse.h: Likewise.
496         * symbol.c: Likewise.
497         * trans.h: Likewise.
498         * trans.c: Likewise.
499         * trans-array.c: Likewise.
500         * trans-common.c: Likewise.
501         * trans-const.h: Likewise.
502         * trans-const.c: Likewise.
503         * trans-decl.c: Likewise.
504         * trans-expr.c: Likewise.
505         * trans-io.c: Likewise.
506         * trans-openmp.c: Likewise.
507         * trans-types.h: Likewise.
508         * types.def: Likewise.
509
510 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
511
512         PR fortran/31144
513         * decl.c (gfc_sym_mangled_identifier): Use capital letters in name
514         mangling.
515         (gfc_sym_mangled_function_id): Likewise.
516
517 2007-04-15  Paul Thomas  <pault@gcc.gnu.org>
518
519         PR fortran/31204
520         * primary.c (check_for_implicit_index): New function to check
521         that a host associated variable is not an undeclared implied
522         do loop index.
523         (gfc_match_rvalue, match_variable): Use it and reset the
524         implied_index attribute.
525         * gfortran.h : Add the implied_index field to symbol_attribute.
526         * match.c (gfc_match_iterator): Mark the iterator variable
527         with the new attribute.
528         * decl.c (build_sym): Reset the new attribute.
529
530 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
531
532         * gfc-internals.texi: Fix typos.
533         * simplify.c: Fix a comment typo.
534
535 2007-04-14  Bernhard Fischer  <aldot@gcc.gnu.org>
536
537         * primary.c: Commentary typo fix; Add question about redundant (?)
538         set.
539
540 2007-04-14  Paul Thomas  <pault@gcc.gnu.org>
541
542         PR fortran/29507
543         PR fortran/31404
544         * expr.c (scalarize_intrinsic_call): New function to
545         scalarize elemental intrinsic functions in initialization
546         expressions.
547         (check_init_expr): Detect elemental intrinsic functions
548         in initalization expressions and call previous.
549
550 2007-04-13  Tobias Burnus  <burnus@net-b.de>
551
552         PR fortran/31559
553         * primary.c (match_variable): External functions
554         are no variables.
555
556 2007-04-13  Paul Thomas  <pault@gcc.gnu.org>
557
558         PR fortran/31550
559         * trans-types.c (copy_dt_decls_ifequal): Do not get pointer
560         derived type components.
561
562 2007-04-13  Tobias Schlüter  <tobi@gcc.gnu.org>
563
564         PR fortran/18937
565         * resolve.c: Include obstack.h and bitmap.h.  New variable
566         labels_obstack.
567         (code_stack): Add tail and reachable_labels fields.
568         (reachable_labels): New function.
569         (resolve_branch): Rework to use new fields in code_stack.
570         (resolve_code): Call reachable_labels.
571         (resolve_codes): Allocate and free labels_obstack.
572
573 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
574
575         PR fortran/31250
576         * decl.c (match_char_spec): Move check for negative CHARACTER
577         length ...
578         * resolve.c (resolve_charlen): ... here.
579         (resolve_types): Resolve CHARACTER lengths earlier.
580
581 2007-04-12  Daniel Franke  <franke.daniel@gmail.com>
582
583         PR fortran/31234
584         * intrinsic.texi (RANDOM_SEED, RANDOM_NUMBER): New.
585
586 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
587
588         PR fortran/31266
589         * primary.c (gfc_variable_attr): Don't copy string length if it
590         doesn't make sense.
591         * resolve.c (resolve_code): Clarify error message.
592
593         PR fortran/31471
594         * decl.c (gfc_match_end): Also check for construct name in END
595         FORALL and END WERE statements.
596         * match.c (match_case_eos): Use uppercase for statement name in
597         error message.
598         (match_elsewhere): Construct name may appear iff construct has a
599         name.
600
601         * trans-types.c: Update copyright years.  Reformat long comment
602         explaining array descriptor format.  Remove obsolete mention of
603         TYPE_SET.
604
605         * arith.c (gfc_arith_uplus): Rename to ...
606         (gfc_arith_identity): ... this.
607         (gfc_parentheses): New function.
608         (gfc_uplus): Adapt to renamed function.
609         * arith.h (gfc_parentheses): Add prototype.
610         * expr.c (gfc_copy_expr): Deal with INTRINSIC_PARENTHESES.
611         (simplifiy_intrinsic_op): Treat INTRINSIC_UPLUS separately from
612         INTRINSIC_PARENTHESES.
613
614 2007-04-12  Tobias Burnus  <burnus@net-b.de>
615
616         PR fortran/31472
617         * decl.c (match_attr_spec): Allow PRIVATE/PUBLIC
618         attribute in type definitions.
619         (gfc_match_private): Allow PRIVATE statement only
620         in specification part of modules.
621         (gfc_match_public): Ditto for PUBLIC.
622         (gfc_match_derived_decl): Allow PRIVATE/PUBLIC attribute only in
623         specificification part of modules.
624
625 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
626
627         PR fortran/31257
628         * intrinsic.c (add_functions): Add ref. to gfc_resolve_achar.
629         * intrinsic.h : Add prototype for gfc_resolve_achar.
630         * iresolve.c (gfc_resolve_achar): New function.
631
632 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
633
634         PR fortran/30880
635         * resolve.c (resolve_fl_variable): Set flag to 2 for automatic
636         arrays.  Make condition for automatic array error explicit.
637         If a dummy, no error on an INTENT(OUT) derived type.
638
639 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
640
641         PR fortran/30872
642         * expr.c (find_array_element): Correct arithmetic for rank > 1.
643
644 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
645
646         PR fortran/31222
647         * check.c (numeric_check): If an expresson has not got a type,
648         see if it is a symbol for which a default type applies.
649
650 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
651
652         PR fortran/31214
653         * trans-decl.c (gfc_get_symbol_decl): Allow unreferenced use
654         associated symbols.
655
656 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
657
658         PR fortran/31293
659         * symbol.c (gfc_check_function_type): New function.
660         * gfortran.h : Add prototype for previous.
661         * parse.c (parse_progunit): Call it after parsing specification
662         statements.
663
664 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
665
666         PR fortran/31483
667         * trans-expr.c (gfc_conv_function_call): Give a dummy
668         procedure the correct type if it has alternate returns.
669
670 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
671
672         PR fortran/31292
673         * decl.c (gfc_match_modproc): Go up to the top of the namespace
674         tree to find the module namespace for gfc_get_symbol.
675
676 2007-04-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
677
678         PR fortran/31304
679         * fortran/gfortran.h (gfc_charlen_int_kind): New prototype.
680         * fortran/trans-types.c (gfc_charlen_int_kind): New variable.
681         (gfc_init_types): Define gfc_charlen_int_kind. 
682         * fortran/trans.h (gfor_fndecl_string_repeat): Remove prototype.
683         * fortran/trans-decl.c (gfor_fndecl_string_repeat): Delete.
684         (gfc_build_intrinsic_function_decls): Don't set
685         gfor_fndecl_string_repeat.
686         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_repeat): Rewrite
687         so that we don't have to call a library function.
688         * fortran/simplify.c (gfc_simplify_repeat): Perform the necessary
689         checks on the NCOPIES argument, and work with arbitrary size
690         arguments.
691
692 2007-03-31  Tobias Burnus  <burnus@net-b.de>
693
694         * intrinsic.c (add_functions): Fix name of dummy argument
695           for new_line and exit intrinsic.
696
697 2007-03-31  Paul Thomas  <pault@gcc.gnu.org>
698
699         PR fortran/31160
700         * gfortran.texi: Add a section for the %VAL, %REF and %LOC
701         extensions.
702
703 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
704
705         * trans-types.c (gfc_signed_or_unsigned_type): Remove.
706         (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of
707         gfc_signed_or_unsigned_type.
708         (gfc_signed_type): Ditto.
709         * trans-types.h (gfc_signed_or_unsigned_type): Remove.
710         * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
711
712 2007-03-30  Tobias Schlüter  <tobi@gcc.gnu.org>
713
714         * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally
715         descend into all branches.
716
717 2007-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
718
719         * intrinsic.c (conv_name): Let gfc_get_string handle the format.
720         (find_conv): Compare pointers instead of calling strcmp.
721         (find_sym): Likewise, but ensure that the compared pointer is in
722         the global string table.
723
724 2007-03-28  Tobias Schlüter  <tobi@gcc.gnu.org>
725
726         * gfc-internals.texi: Fix output filename.  Merge type index into
727         concept index.  Start documentation of gfc_code structure.
728
729 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
730
731         * gfc-internals.texi: New file,
732         * Make-lang.in: Add rules to convert it to dvi, pdf, and info.
733
734 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
735  
736         * error.c (show_locus): Remove always-false test.
737
738 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
739
740         * lang.opt: Minor edits to descriptions.
741
742 2007-03-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
743
744         PR fortran/30877
745         * fortran/interface.c (check_operator_interface): Implement
746         the standard checks on user operators extending intrinsic operators.
747         * fortran/resolve.c (resolve_operator): If the ranks of operators
748         don't match, don't error out but try the user-defined ones first.
749
750 2007-03-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
751
752         PR fortran/30655
753         * expr.c (check_dimension): Fix logic of comparisons.
754
755 2007-03-24  Paul Thomas  <pault@gcc.gnu.org>
756
757         PR fortran/31215
758         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Return
759         int result that is non-zero if the expression is the function
760         result.  Only the characteristics of the result expression
761         can be used in a procedure interface, so simplify LEN in situ
762         using its character length.
763
764         PR fortran/31209
765         PR fortran/31200
766         * trans-expr.c (gfc_conv_function_call): Do not use
767         gfc_conv_expr_reference for actual pointer function with formal
768         target because a temporary is created that does not transfer
769         the reference correctly.  Do not indirect formal pointer
770         functions since it is the function reference that is needed.
771
772 2007-03-24  Brooks Moses  <brooks.moses@codesourcery.com>
773
774         * gfortran.h: Edit comments on GFC_STD_*.
775
776 2007-03-23  Brooks Moses  <brooks.moses@codesourcery.com>
777
778         * invoke.texi: Misc. small typo fixes.
779         (-Wcharacter-truncation): Add.
780         (-Wnonstd-intrinsics): Correct spelling.
781         (-std=): Edit.
782         (-fintrinsic-modules-path): Add.
783
784 2007-03-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
785
786         PR fortran/30834
787         * arith.c (complex_pow): Rewrite to handle large power.
788         (gfc_arith_power): Handle large power in the real and integer
789         cases.
790
791 2007-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
792
793         PR fortran/31262
794         * trans-const.c (gfc_conv_mpz_to_tree): Allow integer constants
795         larger than twice the width of a HOST_WIDE_INT.
796
797 2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
798
799         PR fortran/31193
800         * trans-intrinsic.c (gfc_size_in_bytes): Remove function.
801         (gfc_conv_intrinsic_array_transfer): Remove calls to previous.
802         Explicitly extract TREE_TYPEs for source and mold.  Use these
803         to calculate length of source and mold, except for characters,
804         where the se string_length is used.  For mold, the TREE_TYPE is
805         recalculated using gfc_get_character_type_len so that the
806         result is correctly cast for character literals and substrings.
807         Do not use gfc_typenode_for_spec for the final cast.
808
809 2007-03-22  Tobias Schlüter  <tobi@gcc.gnu.org>
810
811         PR fortran/20897
812         * decl.c (gfc_match_derived_decl): Reliably reject
813         'doubleprecision' and 'doublecomplex' as type names.
814
815 2007-03-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
816
817         PR fortran/31203
818         * trans-expr.c (gfc_trans_init_string_length): Length should
819         never be negative.
820         (gfc_conv_function_call): Likewise.
821
822 2007-03-18  Paul Thomas  <pault@gcc.gnu.org>
823
824         PR fortran/30531
825         PR fortran/31086
826         * symbo.c : Add gfc_derived_types.
827         (gfc_free_dt_list): Free derived type list gfc_derived_types.
828         (gfc_free_namespace): Remove call to gfc_free_dt_list.
829         (gfc_symbol_done_2): Call  gfc_free_dt_list.
830         * gfortran.h : Declare gfc_derived_types to be external. Remove
831         derived types field from gfc_namespace.
832         * resolve.c (resolve_fl_derived): Refer to gfc_derived types
833         rather than namespace derived_types.
834         (resolve_fntype): Remove special treatment for module
835         derived type functions.
836         * trans-types.c (gfc_get_derived_type): Remove search for like
837         derived types.  Finish by copying back end declaration to like
838         derived types in the derived type list gfc_derived_types.
839
840         2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
841
842         PR fortran/31120
843         * trans-expr.c (gfc_conv_powi): Make n argument unsigned hwi.
844         (gfc_conv_cst_int_power): Handle integer exponent with care,
845         since it might be too large for us.
846
847 2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
848
849         PR fortran/31184
850         * invoke.texi: Fix typo.
851
852 2007-03-16  Tobias Burnus  <burnus@net-b.de>
853
854         * trans-decl.c (gfc_generate_function_code): Use all arguments of
855           set_std.
856
857 2007-03-15  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
858
859         * gfortran.h (gfc_option_t): Add flag_backtrace field.
860         * lang.opt: Add -fbacktrace option.
861         * invoke.texi: Document the new option.
862         * trans-decl.c (gfc_build_builtin_function_decls): Add new
863         option to the call to set_std.
864         * options.c (gfc_init_options, gfc_handle_option): Handle the
865         new option.
866
867 2007-03-15  Tobias Burnus  <burnus@gcc.gnu.org>
868             Paul Thomas  <pault@gcc.gnu.org>
869
870         PR fortran/30922
871         * decl.c (gfc_match_import): If the parent of the current name-
872         space is null, try looking for an imported symbol in the parent
873         of the proc_name interface.
874         * resolve.c (resolve_fl_variable): Do not check for blocking of
875         host association by a same symbol, if the symbol is in an
876         interface body.
877
878 2007-03-15  Paul Thomas  <pault@gcc.gnu.org>
879
880         PR fortran/30879
881         * decl.c (match_data_constant): Before going on to try to match
882         a name, try to match a structure component.
883
884
885         PR fortran/30870
886         * resolve.c (resolve_actual_arglist): Do not reject a generic
887         actual argument if it has a same name specific interface.
888
889         PR fortran/31163
890         * trans-array.c (parse_interface): Do not nullify allocatable
891         components if the symbol has the saved attribute.
892
893 2007-03-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
894
895         * trans-array.c (gfc_trans_auto_array_allocation): Replace
896         fold(convert()) by fold_convert().
897         (gfc_duplicate_allocatable): Likewise.
898         * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use
899         build_int_cst instead of converting an integer_zero_node
900         to the final type.
901
902 2007-03-14  Jakub Jelinek  <jakub@redhat.com>
903
904         * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
905
906 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
907
908         PR fortran/30933
909         PR fortran/30948
910         PR fortran/30953
911         * intrinsics.texi (CHDIR): Fix argument names, note
912         that STATUS must be a default integer.
913         (CTIME): Fix argument names, note that RESULT must
914         be a default integer.
915         (EXIT): Note that STATUS must be a default integer.
916
917 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
918
919         PR fortran/28068
920         * intrinsic.texi: General whitespace cleanup, remove
921         comment about missing intrinsics.
922         (menu): Add lines for new entries listed below.
923         (ACOSH): Mention specific function DACOSH, correct
924         description phrasing.
925         (ASINH): Mention specific function DASINH, correct
926         description phrasing.
927         (ATANH): Mention specific function DATANH, correct
928         description phrasing.
929         (COS): Add index entry for CCOS.
930         (CPU_TIME): Correct "REAL" to "REAL(*)".
931         (EXP): Add index entry for CEXP.
932         (INT): Correct argument name to "A".
933         (INT2): New entry.
934         (INT8): New entry.
935         (LONG): New entry.
936         (MAX): Add index entries for specific variants.
937         (MCLOCK): New entry.
938         (MCLOCK8): New entry.
939         (SECNDS): Adjust to a more standard form.
940         (SECOND): New entry.
941         (TIME): Add cross-reference to MCLOCK.
942         (TIME8): Add cross-reference to MCLOCK8.
943
944 2007-03-11  Paul Thomas  <pault@gcc.gnu.org>
945
946         PR fortran/30883
947         * parse.c (parse_interface): Use the default types from the
948         formal namespace if a function or its result do not have a type
949         after parsing the specification statements.
950
951 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
952
953         * intrinsic.texi: (ICHAR) Improve internal I/O note.
954         (ACHAR): Reference it.
955         (CHAR): Reference it.
956         (IACHAR): Reference it.
957
958 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
959
960         * intrinsic.texi: (LINK) Document function form.
961         (RENAME): Likewise.
962         (SYMLNK): Likewise.
963         (SYSTEM): Likewise.
964         (UNLINK): Likewise.
965
966 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
967
968         * intrinsic.texi: minor typo fixes, removed prologue.
969         (FSEEK): moved to correct place in alphabetical order.
970
971 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
972
973         PR fortran/30947
974         * check.c (gfc_check_alarm_sub): Added check for default integer 
975         kind of status argument.
976         * iresolve.c (gfc_resolve_alarm_sub): Removed conversion of 
977         status argument.
978         * intrinsic.texi (ALARM): Extended documentation.
979
980 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
981
982         * intrinsic.texi (GERROR, ISATTY, TTYNAM): New.
983         (ABORT, FLUSH, FNUM, IRAND, MALLOC, SIGNAL, SRAND): Fixed typo.
984         * intrinsic.c (add_subroutines): Adjusted dummy argument names 
985         of GERROR and TTYNAM.
986
987 2007-07-08  Tobias Burnus  <burnus@net-b.de>
988
989         * module.c (gfc_match_use): Support renaming of operators
990         in USE statements.
991         * gfortran.texi (Fortran 2003 Status): Document support of
992         renaming of operators.
993
994 2007-07-08  Tobias Burnus  <burnus@net-b.de>
995
996         PR fortran/30973
997         * module.c (read_module): Always import module name as symbol.
998         (gfc_match_use): Disallow module name in the only clause of
999         a use statement.
1000
1001 2007-03-08  Paul Thomas  <pault@gcc.gnu.org>
1002
1003         PR fortran/31011
1004         * expr.c (find_array_section): Correct arithmetic for section
1005         size.
1006
1007 2007-03-07  Brooks Moses  <brooks.moses@codesourcery.com>
1008
1009         * iresolve.c (gfc_resolve_ishftc): Correct s_kind value.
1010
1011 2007-03-06  Daniel Franke  <franke.daniel@gmail.com>
1012
1013         PR documentation/30950
1014         * intrinsic.texi (AND, CPU_TIME): Fix dummy argument names.
1015         (FREE): Fix call syntax.
1016
1017 2007-03-06  Brooks Moses  <brooks.moses@codesourcery.com>
1018
1019         * intrinsic.texi: Limit column widths to a total of .85.
1020
1021 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
1022
1023         * gfortran.texi (GFortran and G77): Rewrite completely.
1024
1025 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
1026
1027         * match.c (gfc_match_name): Expanded comment.
1028
1029 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
1030
1031         * gfortran.texi (Old-style kind specifications): Document
1032         special handling of old-style kind specifiers for COMPLEX.
1033         * decl.c (gfc_match_old_kind_spec): Document kind/bytesize
1034         assumptions for COMPLEX in comment.
1035
1036 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
1037
1038         PR 31050
1039         * gfortranspec.c (lang_specific_driver): Update program
1040         name and copyright date.
1041
1042 2007-03-03  Paul Thomas  <pault@gcc.gnu.org>
1043
1044         PR fortran/30882
1045         * check.c (dim_rank_check): The shape of subsections of
1046         assumed-size arrays is known.
1047
1048 2007-03-02  Paul Thomas  <pault@gcc.gnu.org>
1049             Tobias Burnus  <burnus@net-b.de>
1050
1051         PR fortran/30873
1052         * decl.c (gfc_match_entry): Remove erroneous entry result check.
1053
1054 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1055
1056         * Make-lang.in: Add install-pdf target as copied from
1057         automake v1.10 rules.
1058
1059 2007-03-01  Tobias Burnus  <burnus@net-b.de>
1060
1061         PR fortran/30865
1062         * trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers.
1063
1064 2007-02-28  Tobias Burnus  <burnus@net-b.de>
1065             Paul Thomas  <pault@gcc.gnu.org>
1066
1067         PR fortran/30888
1068         PR fortran/30887
1069         * resolve.c (resolve_actual_arglist): Allow by-value
1070         arguments and non-default-kind for %VAL().
1071         * trans-expr.c (conv_arglist_function): Allow
1072         non-default-kind for %VAL().
1073
1074 2007-02-28  Tobias Burnus  <burnus@net-b.de>
1075
1076         PR fortran/30968
1077         * primary.c (next_string_char): Correct reading a character
1078         after the delimiter.
1079         (match_string_constant): Print warning message only once.
1080
1081 2007-02-27  Richard Guenther  <rguenther@suse.de>
1082
1083         * trans-array.c (structure_alloc_comps): Use correct type
1084         for null pointer constant.
1085
1086 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1087
1088         * gfortran.texi: Standardize title page, remove version number
1089         from copyright page.
1090
1091 2007-02-26  Thomas Koenig  <Thomas.Koenig@online.de>
1092             Paul Thomas  <pault@gcc.gnu.org>
1093
1094         PR fortran/30865
1095         * trans-intrinsic.c (gfc_conv_intrinsic_size):
1096         If dim is an optional argument, check for its
1097         presence and call size0 or size1, respectively.
1098
1099 2007-02-23  Paul Thomas <pault@gcc.gnu.org>
1100
1101         PR fortran/30660
1102         * resolve.c (has_default_initializer): New function.
1103         (resolve_fl_variable): Call has_default_initializer to determine if
1104         the derived type has a default initializer to its ultimate
1105         components.
1106
1107
1108 2007-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1109
1110         * options.c (set_default_std_flags): New function to consolidate
1111         setting the flags.
1112         (gfc_init_options): Use new function.
1113         (gfc_handle_option): Use new function.
1114
1115 2007-02-22  Brooks Moses  <brooks.moses@codesourcery.com>
1116
1117         * gfortran.texi (Old-style kind specifications): Document
1118         special handling of old-style kind specifiers for COMPLEX.
1119         * decl.c (gfc_match_old_kind_spec): Documented kind/bytesize
1120         assumptions in comment.
1121
1122 2007-02-21  Bernhard Fischer  <aldot@gcc.gnu.org>
1123
1124         * parse.c (next_free): Gooble spaces after OpenMP sentinel.
1125
1126 2007-02-20  Thomas Koenig  <Thomas.Koenig@online.de>
1127
1128         PR fortran/30869
1129         * match.c (gfc_match_iterator): Remove conflict between
1130         loop variable and pointer.
1131
1132 2007-02-20  Tobias Burnus  <burnus@net-b.de>
1133
1134         PR fortran/30522
1135         * symbol.c (gfc_add_volatile): Allow to set VOLATILE
1136           attribute for host-associated variables.
1137         * gfortran.h (symbol_attribute): Save namespace
1138           where VOLATILE has been set.
1139         * trans-decl.c (gfc_finish_var_decl): Move variable
1140           declaration to the top.
1141
1142 2007-02-20  Tobias Burnus  <burnus@net-b.de>
1143
1144         PR fortran/30783
1145         * resolve.c (resolve_symbol): Add character dummy VALUE check.
1146
1147 2007-02-19  Thomas Koenig  <Thomas.Koenig@online.de>
1148
1149         PR libfortran/30533
1150         * fortran/iresolve.c (gfc_resolve_maxloc): Remove coercion of
1151         argument to default integer.
1152         (gfc_resolve_minloc): Likewise.
1153
1154 2007-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1155
1156         PR fortran/30681
1157         * options.c (gfc_init_options): Relax warning level for obsolescent.
1158         * match.c (match_arithmetic_if): Change to obsolescent from deleted.
1159         (gfc_match_if): Same.
1160
1161 2007-02-18  Roger Sayle  <roger@eyesopen.com>
1162
1163         * trans-array.c (gfc_build_constant_array_constructor): When the
1164         shape of the constructor is known, use that to construct the
1165         gfc_array_spec.
1166         (gfc_trans_constant_array_constructor): Initialize the "info"
1167         information for all of the dimensions of the array constructor.
1168         (constant_array_constructor_loop_size): New function.
1169         (gfc_trans_array_constructor): Use it to determine whether a
1170         loop is suitable for "constant array constructor" optimization.
1171
1172         * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2
1173         instead of build2, to avoid conditions like "(a != b) != 0".
1174
1175 2007-02-18  Roger Sayle  <roger@eyesopen.com>
1176             Paul Thomas <pault@gcc.gnu.org>
1177
1178         PR fortran/30400
1179         * match.c (match_forall_iterator): Use gfc_match_expr instead
1180         of gfc_match_variable to match the iterator variable.  Return
1181         MATCH_NO if not a variable.  Remove the reset of the symbol's
1182         flavor in cleanup.
1183
1184 2007-02-16  Tobias Burnus  <burnus@net-b.de>
1185
1186         PR fortran/30793
1187         * trans-decl.c (gfc_generate_function_code): Do not initialize
1188         pointers to derived components.
1189
1190 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
1191             Brooks Moses  <brooks.moses@codesourcery.com>
1192             Lee Millward  <lee.millward@codesourcery.com>
1193
1194         * trans-expr.c (gfc_conv_power_op): Use build_call_expr.
1195         (gfc_conv_string_tmp): Likewise.
1196         (gfc_conv_concat_op): Likewise.
1197         (gfc_build_compare_string): Likewise.
1198         (gfc_conv_function_call): Use build_call_list instead of build3.
1199
1200         * trans-array.c (gfc_trans_allocate_array_storage): Use
1201         build_call_expr.
1202         (gfc_grow_array): Likewise.
1203         (gfc_trans_array_ctor_element): Likewise.
1204         (gfc_trans_array_constructor_value): Likewise.
1205         (gfc_array_allocate): Likewise.
1206         (gfc_array_deallocate): Likewise.
1207         (gfc_trans_auto_array_allocation): Likewise.
1208         (gfc_trans_dummy_array_bias): Likewise.
1209         (gfc_conv_array_parameter): Likewise.
1210         (gfc_trans_dealloc_allocated): Likewise.
1211         (gfc_duplicate_allocatable): Likewise.
1212
1213         * trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
1214         (gfc_trans_omp_flush): Likewise.
1215
1216         * trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
1217         (gfc_trans_pause): Likewise.
1218         (gfc_trans_stop): Likewise.
1219         (gfc_trans_character_select): Likewise.
1220         (gfc_do_allocate): Likewise.
1221         (gfc_trans_assign_need_temp): Likewise.
1222         (gfc_trans_pointer_assign_need_temp): Likewise.
1223         (gfc_trans_forall_1): Likewise.
1224         (gfc_trans_where_2): Likewise.
1225         (gfc_trans_allocate): Likewise.
1226         (gfc_trans_deallocate): Likewise.
1227
1228         * trans.c (gfc_trans_runtime_check): Use build_call_expr.
1229
1230         * trans-io.c (gfc_trans_open): Use build_call_expr.
1231         (gfc_trans_close): Likewise.
1232         (build_filepos): Likewise.
1233         (gfc_trans_inquire): Likewise.
1234         (NML_FIRST_ARG): Delete.
1235         (NML_ADD_ARG): Delete.
1236         (transfer_namelist_element): Use build_call_expr.
1237         (build_dt): Likewise.
1238         (gfc_trans_dt_end): Likewise.
1239         (transfer_expr): Likewise.
1240         (transfer_array-desc): Likewise.
1241
1242         * trans-decl.c (gfc_generate_function_code): Use build_call_expr.
1243         (gfc_generate_constructors): Likewise.
1244
1245         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
1246         (gfc_conv_intrinsic_fdate): Likewise.
1247         (gfc_conv_intrinsic_ttynam): Likewise.
1248         (gfc_conv_intrinsic_array_transfer): Likewise.
1249         (gfc_conv_associated): Likewise.
1250         (gfc_conv_intrinsic_si_kind): Likewise.
1251         (gfc_conv_intrinsic_trim): Likewise.
1252         (gfc_conv_intrinsic_repeat: Likewise.
1253         (gfc_conv_intrinsic_iargc): Likewise.
1254
1255 2007-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1256
1257         PR fortran/30779
1258         * scanner.c (gfc_next_char_literal): Add check for end of file after
1259         call to advance_line.
1260
1261 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1262
1263         PR fortran/30799
1264         * primary.c (match_logical_constant): Return MATCH_ERROR on invalid
1265         kind.
1266
1267 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1268
1269         * misc.c (gfc_typename): Fix potential buffer overflow.
1270
1271 2007-02-13  Paul Thomas  <pault@gcc.gnu.org>
1272
1273         PR fortran/30554
1274         * module.c (read_module): Set pointer_info to referenced if the
1275         symbol has no namespace.
1276
1277 2007-02-12  Nick Clifton  <nickc@redhat.com>
1278
1279         * lang.opt: Add Warning attribute to warning options.
1280
1281 2007-02-11  Daniel Franke  <franke.daniel@gmail.com>
1282
1283         * intrinsic.texi (HOSTNM): Fix typographical error in syntax.
1284         (SLEEP): Added section and documentation.
1285
1286 2007-02-11  Tobias Schlüter  <tobi@gcc.gnu.org>
1287
1288         PR fortran/30478
1289         * decl.c (add_init_expr_to_sym): Remove ENUM specific code.
1290         (variable_decl): Likewise.  Rewrap comment.
1291         (match_attr_spec): Remove ENUM specific code.
1292         (gfc_match_enum): Fix typo in error message.
1293         (enumerator_decl): New function.
1294         (gfc_match_enumerator_def): Use enumerator_decl instead of
1295         variable_decl.  Adapt code accordingly.
1296
1297 2007-02-11  Paul Thomas  <pault@gcc.gnu.org>
1298
1299         PR fortran/30554
1300         * module.c (find_symtree_for_symbol): New function to return
1301         a symtree that is not a "unique symtree" given a symbol.
1302         (read_module): Do not automatically set pointer_info to
1303         referenced because this inhibits the generation of a unique
1304         symtree.  Recycle the existing symtree if possible by calling
1305         find_symtree_for_symbol.
1306
1307         PR fortran/30319
1308         * decl.c (add_init_expr_to_sym): Make new charlen for an array
1309         constructor initializer.
1310
1311 2007-02-10  Richard Henderson  <rth@redhat.com>, Jakub Jelinek  <jakub@redhat.com>
1312
1313         * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
1314         and __emutls_register_common.
1315         * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
1316         * trans-common.c (build_common_decl): Don't check have_tls.
1317         * trans-decl.c (gfc_finish_var_decl): Likewise.
1318         * types.def (BT_WORD, BT_FN_PTR_PTR): New.
1319         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
1320
1321 2007-02-09  Tobias Burnus  <burnus@net-b.de>
1322
1323         PR fortran/30512
1324         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
1325           gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
1326
1327 2007-02-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1328
1329         PR fortran/30720
1330         * trans-array.c (gfc_trans_create_temp_array): Remove use of the
1331         function argument. Always generate code for negative extent.
1332         Simplify said code.
1333         * trans-array.h (gfc_trans_create_temp_array): Change prototype.
1334         * trans-expr.c (gfc_conv_function_call): Remove use of last argument
1335         of gfc_trans_create_temp_array.
1336         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise.
1337         * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
1338
1339 2007-02-08  Roger Sayle  <roger@eyesopen.com>
1340
1341         * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the
1342         mask expression is a compile-time constant (".true." or ".false.").
1343
1344 2007-02-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1345
1346         PR fortran/30611
1347         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Evaluate
1348         arguments only once. Generate check that NCOPIES argument is not
1349         negative.
1350
1351 2007-02-04  Steven G. Kargl <kargl@gcc.gnu.org>
1352
1353         PR fortran/30605
1354         * fortran/invoke.texi: Update documentation.
1355         * fortran/options.c (gfc_post_options): Deal with tabs with -std=f2003
1356         and -pedantic.
1357
1358 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
1359
1360         * trans-array.c: Fix a comment typo.
1361
1362 2007-02-03  Paul Thomas  <pault@gcc.gnu.org>
1363
1364         PR fortran/30514
1365         * array.c (match_array_element_spec): If the length of an array is
1366         negative, adjust the upper limit to make it zero length.
1367
1368         PR fortran/30660
1369         * resolve.c (pure_function, resolve_function): Initialize name to
1370         null to clear up build warnings.
1371         (resolve_fl_variable): Look at components explicitly to check for
1372         default initializer, rather than using gfc_default_initializer.
1373
1374 2007-02-02  Steven G. Kargl <kargl@gcc.gnu.org>
1375
1376         PR fortran/30683
1377         * resolve.c (resolve_generic_f): Check for non-NULL sym.
1378
1379 2007-02-02  Roger Sayle  <roger@eyesopen.com>
1380
1381         * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate
1382         NON_LVALUE_EXPR nodes and useless type conversions.
1383
1384 2007-02-02  Paul Thomas  <pault@gcc.gnu.org>
1385
1386         PR fortran/30284
1387         PR fortran/30626
1388         * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute
1389         from function and make sure that substring lengths are
1390         translated.
1391         (is_aliased_array): Remove static attribute.
1392         * trans.c : Add prototypes for gfc_conv_aliased_arg and
1393         is_aliased_array.
1394         * trans-io.c (set_internal_unit): Add the post block to the
1395         arguments of the function.  Use is_aliased_array to check if
1396         temporary is needed; if so call gfc_conv_aliased_arg.
1397         (build_dt): Pass the post block to set_internal_unit and
1398         add to the block after all io activiy is done.
1399
1400 2007-02-01  Roger Sayle  <roger@eyesopen.com>
1401
1402         * trans-array.c (gfc_conv_expr_descriptor): We don't need to use
1403         a temporary array to pass a constant non-character array constructor.
1404         Generalize the descriptor generation code to handle scalarizer
1405         "info" without an array reference.
1406
1407 2007-02-01  Roger Sayle  <roger@eyesopen.com>
1408
1409         * dependency.c (gfc_check_dependency) <EXPR_ARRAY>: Implement
1410         dependency checking for array constructors.
1411
1412 2007-02-01  Roger Sayle  <roger@eyesopen.com>
1413
1414         * trans-stmt.c (compute_overall_iter_number): Document function
1415         arguments.  Generalize "unconditional forall nest with constant
1416         bounds" optimization to eliminate unconditional inner loops with
1417         constant bounds.
1418
1419 2007-01-31  Tobias Burnus  <burnus@net-b.de>
1420
1421         PR fortran/30520
1422         * interface.c (compare_actual_formal): Check conformance between
1423           actual and VOLATILE dummy arguments.
1424         * symbol.c (gfc_add_volatile): Allow setting of VOLATILE
1425           multiple times in different scopes.
1426         * decl.c (gfc_match_volatile): Search symbol in host association.
1427
1428 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
1429
1430         * simplify.c, trans-array.c: Fix comment typos.
1431
1432 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1433
1434         * invoke.texi (Code Gen Options): Fix abbreviation typo.
1435         * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos.
1436
1437 2007-01-30  Steve Ellcey  <sje@cup.hp.com>
1438
1439         PR fortran/30432
1440         * trans-types.c (gfc_get_function_type): Do not add void_type_node
1441         to empty arg list.
1442         * trans-decl.c (create_function_arglist): Change assert.
1443
1444 2007-01-29  Paul Thomas  <pault@gcc.gnu.org>
1445
1446         PR fortran/30554
1447         * module.c (read_module): If a symbol is excluded by an ONLY
1448         clause, check to see if there is a symtree already loaded. If
1449         so, attach the symtree to the pointer_info.
1450
1451 2007-01-28  Thomas Koenig  <Thomas.Koenig@online.de>
1452
1453         PR libfortran/30389
1454         * gfortran.h: Remove gfc_simplify_init_1.
1455         * arith.h: Remove third argument from gfc_compare_string.
1456         * arith.c (gfc_compare_expression): Remove third argument
1457         from call to gfc_compare_string.
1458         (gfc_compare_string): Remove third argument xcoll_table.
1459         Remove use of xcoll_table.
1460         * misc.c (gfc_init_1): Remove call to gfc_simplify_init_1.
1461         * simplify.c (ascii_table): Remove.
1462         (xascii_table): Likewise.
1463         (gfc_simplify_achar): ICE if extract_int fails.  Remove use of
1464         ascii_table.  Warn if -Wsurprising and value < 0 or > 127.
1465         (gfc_simplify_char): ICE if extract_int fails. Error if
1466         value < 0 or value > 255.
1467         (gfc_simplify_iachar): Remove use of xascii_table.
1468         Char values outside of 0..255 are an ICE.
1469         (gfc_simplify_lge): Remove use of xascii_table.
1470         (gfc_simplify_lgt): Likewise.
1471         (gfc_simplify_lle): Likewise.
1472         (gfc_simplify_llt): Likewise.
1473         (invert_table): Remove.
1474         (gfc_simplify_init_1): Remove.
1475
1476 2007-01-27  Roger Sayle  <roger@eyesopen.com>
1477
1478         * trans-stmt.c (forall_info): Replace the next_nest and outer
1479         fields that previously implemented a doubly-linked list with a
1480         single prev_nest field (singly-linked list).
1481         (gfc_trans_nested_forall_loop): The nested_forall_info argument
1482         now denotes the innermost FORALL in the loop nest.
1483         (compute_overall_iter_number): Use prev_nest instead of next_nest.
1484         (gfc_trans_forall_1): Link/cons the new "info" to the head of the
1485         nested_forall_info linked list.  Free the current "info" when done.
1486
1487 2007-01-27  Paul Thomas  <pault@gcc.gnu.org>
1488
1489         PR fortran/30407
1490         * trans-expr.c (gfc_conv_operator_assign): New function.
1491         * trans.h : Add prototype for gfc_conv_operator_assign.
1492         * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for
1493         a potential operator assignment subroutine.  If it is non-NULL
1494         call gfc_conv_operator_assign instead of the first assignment.
1495         ( gfc_trans_where_2): In the case of an operator assignment,
1496         extract the argument expressions from the code for the
1497         subroutine call and pass the symbol to gfc_trans_where_assign.
1498         resolve.c (resolve_where, gfc_resolve_where_code_in_forall,
1499         gfc_resolve_forall_body): Resolve the subroutine call for
1500         operator assignments.
1501
1502 2007-01-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1503             Steven G. Kargl <kargl@gcc.gnu.org>
1504
1505         PR fortran/30278
1506         * fortran/io.c (next_char): Deal with backslash escaped characters.
1507         Issue warnings in non -std=gnu cases.
1508         * fortran/primary.c (next_string_char): Issue warnings in non
1509
1510 2007-01-26  Tobias Burnus  <burnus@net-b.de>
1511
1512         * lang-specs.h: Add support for .f03 and .F03 extensions.
1513         * gfortran.texi: Document .f03 extension.
1514         * options.c (form_from_filename): Recognize .f03.
1515
1516 2007-01-25  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1517
1518         PR fortran/30437
1519         * lang.opt (Wall): Remove RejectNegative.
1520         * options.c (gfc_handle_option): Wall can be disabled.
1521         (set_Wall): Add a parameter for disabling Wall.
1522         
1523 2007-01-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1524
1525         PR fortran/30532
1526         * scanner.c (load_line): Remove check fot ctrl-z and don't gobble.
1527         
1528 2007-01-23  Paul Thomas  <pault@gcc.gnu.org>
1529
1530         PR fortran/30481
1531         * match.c (gfc_match_namelist): Add check for assumed size character
1532         in namelist and provide error if found.
1533
1534 2007-01-21  Brooks Moses  <brooks.moses@codesourcery.com>
1535
1536         * intrinsic.texi (ACHAR): Added cross-references.
1537         (CHAR): Put cross-references in alphabetical order.
1538         (IACHAR): Added cross-references.
1539         (ICHAR): Added cross-references.
1540
1541 2007-01-20  Brooks Moses  <brooks.moses@codesourcery.com>
1542
1543         * intrinsic.texi: Edited all "Syntax" examples to a consistent form.
1544         (MAXVAL): Corrected description of result characteristics.
1545         (MINVAL): Same.
1546         (UMASK): Added documentation.
1547
1548 2007-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1549
1550         * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c,
1551         parse.c, primary.c, options.c, misc.c, simplify.c: Next installment
1552         in the massive whitespace patch.
1553
1554 2007-01-20  Roger Sayle  <roger@eyesopen.com>
1555
1556         * module.c (mio_array_ref): The dimen_type fields of an array ref
1557         are an enumerated type and can't be read/written directly with a
1558         call to mio_integer.  Instead loop over and cast each element.
1559
1560 2007-01-20  Roger Sayle  <roger@eyesopen.com>
1561
1562         * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL,
1563         i.e. that the ARRAY_REF doesn't mention components.
1564         * trans-array.c (gfc_constant_array_constructor_p): Export external
1565         function renamed from constant_array_constructor_p.
1566         (gfc_build_constant_array_constructor): Export.
1567         (gfc_trans_array_constructor): Update call to the renamed function
1568         constant_array_constructor_p.
1569         * trans-array.h (gfc_constant_array_constructor_p): Prototype here.
1570         (gfc_build_constant_array_constructor): Likewise.
1571         * trans-expr.c (gfc_build_memcpy_call): New helper function split
1572         out from gfc_trans_array_copy.
1573         (gfc_trans_array_copy): Use gfc_build_memcpy_call.
1574         (gfc_trans_array_constructor_copy): New function to optimize
1575         assigning an entire array from a constant array constructor.
1576         (gfc_trans_assignment): Call gfc_trans_array_constructor_copy
1577         when appropriate.
1578
1579 2007-01-20  Roger Sayle  <roger@eyesopen.com>
1580
1581         * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless
1582         implementation for the SIGN intrinsic with integral operands.
1583         (gfc_conv_intrinsic_minmax): Fix whitespace.
1584
1585 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1586
1587         * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore.
1588         * lang.opt: Add -fallow-leading-underscore.
1589         * match.c (gfc_match_name): Allow leading underscore in symbol
1590         name if -fallow-leading-underscore is used.
1591         * symbol.c (gfc_get_default_type): Add special case for symbol
1592         names beginning with an underscore.
1593         * trans-decl.c (gfc_get_extern_function_decl,
1594         gfc_build_intrinsic_function_decls): Add _gfortran prefix to
1595         library symbols selected_int_kind, selected_real_kind and 
1596         all specifics.
1597         * options.c (gfc_init_options, gfc_handle_option): Handle the
1598         new -fallow-leading-underscore option.
1599
1600 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1601
1602         PR fortran/30446
1603         * options.c (gfc_handle_module_path_options): Path used in -J
1604         option is now added to the module search path.
1605
1606 2007-01-20  Richard Guenther  <rguenther@suse.de>
1607
1608         PR fortran/30223
1609         * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and
1610         cexpi builtins if we have TARGET_C99_FUNCTIONS.  Provide
1611         sincos builtins if the target has sincos.
1612
1613 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
1614
1615         * intrinsic.texi (MATMUL): Corrected a typo.
1616         (MAX): Separated @var arguments.
1617         (MIN): Separated @var arguments.
1618
1619 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
1620
1621         * intrinsic.texi: general whitespace cleanup.
1622         (menu): Added TIME8, removed UNMASK.
1623         (AINT): Clarified argument requirement.
1624         (ANINT): Clarified argument requirement.
1625         (CEILING): Clarified argument requirement.
1626         (CHAR): Clarified argument requirement.
1627         (CMPLX): Clarified argument requirement.
1628         (DCMPLX): Clarified argument requirement.
1629         (FGET): Line rewrapping.
1630         (FLOOR): Clarified argument requirement.
1631         (GMTIME): Added documentation.
1632         (IAND): Added cross-reference.
1633         (IBCLR): Added cross-reference.
1634         (IBSET): Added cross-reference.
1635         (IEOR): Added cross-reference.
1636         (INT): Collapsed examples, clarified argument requirement.
1637         (IOR): Added cross-references.
1638         (LEN_TRIM): Corrected result kind.
1639         (LINK): Added cross-reference.
1640         (LLT): Removed "documentation pending".
1641         (LOGICAL): Added documentation.
1642         (LSHIFT): Added documentation.
1643         (LTIME): Added documentation.
1644         (MATMUL): Added documentation.
1645         (MAX): Added documentation.
1646         (MAXLOC): Added documentation.
1647         (MAXVAL): Added documentation.
1648         (MERGE): Added documentation.
1649         (MIN): Added documentation.
1650         (MINLOC): Added documentation.
1651         (MINVAL): Added documentation.
1652         (MVBITS): Moved to correct place, added documentation.
1653         (NOT): Added documentation.
1654         (PERROR): Added documentation.
1655         (RAN): Moved to correct place, added documentation.
1656         (REAL): Clarified argument requirement.
1657         (RENAME): Added documentation.
1658         (RSHIFT): Clarified argument requirement.
1659         (SIGN): Corrected table specification.
1660         (SYMLNK): Added documentation.
1661         (SYSTEM): Added documentation.
1662         (TIME): Added documentation.
1663         (TIME8): Added section and documentation.
1664         (UNMASK): Removed erroneous section.
1665
1666 2007-01-18  H.J. Lu  <hongjiu.lu@intel.com>
1667
1668         * trans-stmt.c (compute_overall_iter_number): Fix a typo.
1669
1670 2007-01-18  Roger Sayle  <roger@eyesopen.com>
1671
1672         * trans-expr.c (copyable_array_p): Consider user derived types without
1673         allocatable components to be copyable.
1674
1675 2007-01-18  Roger Sayle  <roger@eyesopen.com>
1676
1677         * trans-stmt.c (compute_overall_iter_number): Enhance to precompute
1678         the number of interations in unconditional FORALL nests with constant
1679         bounds.
1680
1681 2007-01-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1682             Tobias Burnus  <burnus@net-b.de>
1683
1684         PR libfortran/29649
1685         * gfortran.h (gfc_option_t): Add flag_dump_core.
1686         * lang.opt: Add -fdump-core option.
1687         * invoke.texi: Document the new options.
1688         * trans-decl.c (gfc_build_builtin_function_decls): Add new
1689           options to the call to set_std.
1690         * options.c (gfc_init_options, gfc_handle_option): Set the
1691           new options.
1692
1693 2007-01-17  Paul Thomas  <pault@gcc.gnu.org>
1694
1695         PR fortran/30476
1696         * module.c (load_generic_interfaces): Make the marking of the
1697         symbol as ambiguous conditional on the module names being
1698         different.
1699         (write_generic): Ensure that the generic interface has a
1700         non-NULL module field.
1701
1702 2007-01-16  Roger Sayle  <roger@eyesopen.com>
1703
1704         PR fortran/30404
1705         * trans-stmt.c (forall_info): Remove pmask field.
1706         (gfc_trans_forall_loop): Remove NVAR argument, instead assume that
1707         NVAR covers all the interation variables in the current forall_info.
1708         Add an extra OUTER parameter, which specified the loop header in
1709         which to place mask index initializations.
1710         (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument.
1711         Change the semantics of MASK_FLAG to only control the mask in the
1712         innermost loop.
1713         (compute_overall_iter_number): Optimize the trivial case of a
1714         top-level loop having a constant number of iterations.  Update
1715         call to gfc_trans_nested_forall_loop.  Calculate the number of
1716         times the inner loop will be executed, not to size of the 
1717         iteration space.
1718         (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when
1719         sizeof(type) == 1.  Tidy up.
1720         (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls
1721         to gfc_trans_nested_forall_loop.
1722         (gfc_trans_pointer_assign_need_temp): Likewise.
1723         (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and
1724         LENVAR local variables.  Split mask allocation into a separate
1725         hunk/pass from mask population.  Use allocate_temp_for_forall_nest
1726         to allocate the FORALL mask with the correct size.  Update calls
1727         to gfc_trans_nested_forall_loop.
1728         (gfc_evaluate_where_mask): Update call to
1729         gfc_trans_nested_forall_loop.
1730         (gfc_trans_where_2): Likewise.
1731
1732 2007-01-15  Paul Thomas  <pault@gcc.gnu.org>
1733
1734         PR fortran/28172
1735         * trans-stmt.c (gfc_trans_call): If it does not have one, get
1736         a backend_decl for an alternate return.
1737
1738         PR fortran/29389
1739         * resolve.c (pure_function): Statement functions are pure. Note
1740         that this will have to recurse to comply fully with F95.
1741
1742         PR fortran/29712
1743         * resolve.c (resolve_function): Only a reference to the final
1744         dimension of an assumed size array is an error in an inquiry
1745         function.
1746
1747         PR fortran/30283
1748         * resolve.c (resolve_function): Make sure that the function
1749         expression has a type.
1750
1751 2007-01-14  Paul Thomas  <pault@gcc.gnu.org>
1752
1753         PR fortran/30410
1754         * trans-decl.c (gfc_sym_mangled_function_id): Module, external
1755         symbols must not have the module name prepended.
1756
1757 2007-01-11  Thomas Koenig  <Thomas.Koenig@online.de>
1758
1759         PR libfortran/30415
1760         * iresolve.c (gfc_resolve_maxloc): If the rank
1761         of the return array is nonzero and we process an
1762         integer array smaller than default kind, coerce
1763         the array to default integer.
1764         * iresolve.c (gfc_resolve_minloc): Likewise.
1765
1766 2007-01-11  Brooks Moses  <brooks.moses@codesourcery.com>
1767
1768         * simplify.c: Update copyright to 2007.
1769         * scanner.c: Same.
1770
1771 2007-01-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1772
1773         PR fortran/30430
1774         * scanner.c (gfc_release_include_path): Free gfc_option.module_dir
1775         only once!
1776
1777 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
1778
1779         * simplify.c (gfc_simplify_ibclr): Fix POS comparison.
1780         (gfc_simplify_ibset): Same.
1781
1782 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
1783
1784         PR 30381
1785         PR 30420
1786         * simplify.c (convert_mpz_to_unsigned): New function.
1787         (convert_mpz_to_signed): New function, largely based on
1788         twos_complement().
1789         (twos_complement): Removed.
1790         (gfc_simplify_ibclr): Add conversions to and from an
1791         unsigned representation before bit-twiddling.
1792         (gfc_simplify_ibset): Same.
1793         (gfc_simplify_ishftc): Add checks for overly large
1794         constant arguments, only check the third argument if
1795         it's present, carry over high bits into the result as
1796         appropriate, and perform the final conversion back to
1797         a signed representation using the correct sign bit.
1798         (gfc_simplify_not): Removed unnecessary masking.
1799
1800 2007-01-09  Paul Thomas  <pault@gcc.gnu.org>
1801
1802         PR fortran/30408
1803         * resolve.c (resolve_code): Use the code->expr character length
1804         directly to set length of llen.
1805
1806 2007-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1807
1808         PR fortran/30408
1809         * lang.opt: Add Wcharacter_truncation option.
1810         * options.c (gfc_init_options): Initialize
1811         gfc_option.warn_character_truncation to zero.
1812         (gfc_handle_option): Add case for OPT_Wcharacter_truncation.
1813
1814 2007-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1815
1816         * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c,
1817         iresolve.c, match.c: Update Copyright years.  Whitespace.
1818
1819 2007-01-08  Richard Guenther  <rguenther@suse.de>
1820
1821         * trans-io.c (transfer_array_desc): Use build_int_cst instead
1822         of build_int_cstu.
1823
1824 2007-01-08  Roger Sayle  <roger@eyesopen.com>
1825
1826         * trans-array.c (constant_array_constructor_p): New function to
1827         determine whether an array constructor consists only of constant
1828         elements, and if so return it's size.
1829         (gfc_build_constant_array_constructor): Construct a statically
1830         initialized gfortran array for a given EXPR_ARRAY.
1831         (gfc_trans_constant_array_constructor): Efficiently scalarize
1832         a constant array constructor.
1833         (gfc_trans_array_constructor): Tidy up use of CONST_STRING.
1834         Special case scalarization of constant array constructors, all of
1835         whose elements are specified, using constant_array_constructor_p 
1836         and gfc_trans_constant_array_constructor.
1837         (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero
1838         before adding it to index, to avoid creating a NON_LVALUE_EXPR.
1839
1840 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
1841
1842         gfortran.texi: Fix typos.
1843
1844 2007-01-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1845
1846         * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c,
1847         convert.c: Update Copyright dates.  Fix whitespace.
1848
1849 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
1850
1851         * data.c (gfc_assign_data_value): Fix whitespace.
1852
1853 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
1854
1855         * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size):
1856         Commentary typo fix.
1857
1858 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
1859
1860         PR fortran/27698
1861         * match.c (gfc_match_name): Print diagnostics for invalid
1862         character in names.
1863
1864 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1865
1866         * array.c: Fix whitespace in comment table.
1867
1868 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1869
1870         * array.c, bbt.c, check.c: Update copyright years.  Whitespace.
1871
1872 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1873
1874         * arith.c: Update copyright years.  Whitespace.
1875
1876 2007-01-05  Roger Sayle  <roger@eyesopen.com>
1877
1878         * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize
1879         array assignments split out from gfc_trans_assignment.
1880         (gfc_trans_array_copy): New function to implement array to array
1881         copies via calls to __builtin_memcpy.
1882         (copyable_array_p): New helper function to identify an array of
1883         simple/POD types, that may be copied/assigned using memcpy.
1884         (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple
1885         whole array assignments considered suitable by copyable_array_p.
1886         Invoke gfc_trans_assignment_1 to perform the fallback scalarization.
1887
1888 2007-01-05  Roger Sayle  <roger@eyesopen.com>
1889
1890         * trans-array.c (gfc_trans_array_constructor_value): Make the
1891         static const "data" array as TREE_READONLY.
1892         * trans-stmt.c (gfc_trans_character_select): Likewise.
1893
1894 2007-01-05  Roger Sayle  <roger@eyesopen.com>
1895
1896         * trans-array.c (gfc_conv_loop_setup): Test whether the loop
1897         stride is one, to avoid fold_build2 introducing a useless
1898         NON_LVALUE_EXPR node.
1899
1900 2007-01-05  Tobias Burnus  <burnus@net-b.de>
1901
1902         * symbol.c (check_conflict): Fix error message.
1903
1904 2007-01-05  Paul Thomas  <pault@gcc.gnu.org>
1905
1906         PR fortran/23232
1907         * decl.c (gfc_in_match_data, gfc_set_in_match_data): New
1908         functions to signal that a DATA statement is being matched.
1909         (gfc_match_data): Call gfc_set_in_match_data on entry and on
1910         exit.
1911         * gfortran.h : Add prototypes for above.
1912         * expr.c (check_init_expr): Avoid check on parameter or
1913         variable if gfc_in_match_data is true.
1914         (gfc_match_init_expr): Do not call error on non-reduction of
1915         expression if gfc_in_match_data is true.
1916
1917         PR fortran/27996
1918         PR fortran/27998
1919         * decl.c (gfc_set_constant_character_len): Add boolean arg to
1920         flag array constructor resolution.  Warn if string is being
1921         truncated.  Standard dependent error if string is padded. Set
1922         new arg to false for all three calls to
1923         gfc_set_constant_character_len.
1924         * match.h : Add boolean arg to prototype for
1925         gfc_set_constant_character_len.
1926         * gfortran.h : Add warn_character_truncation to gfc_options.
1927         * options.c (set_Wall): Set warn_character_truncation if -Wall
1928         is set.
1929         * resolve.c (resolve_code): Warn if rhs string in character
1930         assignment has to be truncated.
1931         * array.c (gfc_resolve_character_array_constructor): Set new
1932         argument to true for call to gfc_set_constant_character_len.
1933
1934 2007-01-05  Tobias Burnus  <burnus@net-b.de>
1935
1936         PR fortran/29624
1937         * interface.c (compare_parameter_intent): New function.
1938           (check_intents): Support pointer intents.
1939         * symbol.c (check_conflict): Support pointer intents,
1940           better conflict_std message.
1941         * expr.c (gfc_check_assign,gfc_check_pointer_assign):
1942           Support pointer intents.
1943         * resolve.c (resolve_deallocate_expr,resolve_allocate_expr):
1944           Support pointer intents.
1945
1946 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1947
1948         PR 30371
1949         * check.c (gfc_check_kill_sub): Add checks for non-scalar
1950         arguments.
1951
1952 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1953
1954         * intrinsic.texi: Minor cleanup, reflowing overlong
1955         paragraphs, and correcting whitespace.
1956
1957 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1958
1959         * intrinsic.texi (LBOUND): Add documentation.
1960         (LGE): Add documentation.
1961         (LGT): Add documentation.
1962         (LINK): Add documentation.
1963         (LLE): Add documentation.
1964         (LLT): Add documentation.
1965         (LNBLNK): Add documentation.
1966         (UBOUND): Add documentation.
1967         (UNLINK): Add documentation.
1968
1969 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1970
1971         * intrinsic.texi (IAND): Clarify argument specifications.
1972         (IBCLR): Add documentation.
1973         (IBITS): Add documentation.
1974         (IBSET): Add documentation.
1975         (IEOR): Add documentation.
1976         (IERRNO): Add documentation.
1977         (INDEX): Add documentation.
1978         (IOR): Add documentation.
1979         (ISHFT): Add documentation.
1980         (ISHFTC): Add documentation.
1981         (KILL): Add documentation.
1982         (LEN_TRIM): Add documentation.
1983
1984 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1985
1986         PR 30235
1987         * interface.c (compare_actual_formal): check for
1988         alternate returns when iterating over non-present
1989         arguments.
1990
1991 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1992
1993         * invoke.texi: Update manpage copyright to include 2007.
1994
1995 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1996
1997         * gfortran.texi: Update copyright to include 2007.
1998         * intrinsic.texi: Update copyright to include 2007.
1999         * invoke.texi: Update copyright to include 2007.
2000
2001 2007-01-02  Tobias Burnus  <burnus@net-b.de>
2002             Jakub Jelinek  <jakub@redhat.com>
2003
2004         PR fortran/30276
2005         * scanner.c (open_included_file): Revert patch.
2006           (gfc_open_included_file): Support absolute pathnames.
2007           (gfc_open_intrinsic_module): Support absolute pathnames.
2008
2009 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2010
2011         * gfortran.texi (GNU Fortran and GCC): Rewrite
2012
2013 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2014
2015         * gfortran.texi (Introduction): Lower "Part I:
2016         Introduction" to a chapter, renumber Parts II and III to
2017         Parts I and II.
2018         * intrinsic.texi (Introduction): Rename to "Introduction
2019         to Intrinsics" to avoid conflict with the new chapter.
2020
2021 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2022
2023         * intrinsic.texi (Introduction): Rewrite first paragraph.
2024
2025 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2026
2027         * invoke.texi (OpenMP): Added index entry.
2028         * gfortran.texi (title page): Removed erroneous '*'.
2029
2030 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2031
2032         * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units
2033         to description.
2034         (Extensions): Miscellaneous minor rewriting and copyediting.
2035         (BOZ-literal constants): Renamed from Hexadecimal constants.
2036         (Hollerith constants support): Added explanation and 
2037         suggestions for standard-conforming modern equivalents.
2038
2039 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2040
2041         * intrinsic.texi: Improvements to index entries; change
2042         @findex entries to @cindex entries.
2043         * invoke.texi: Standardize and improve index entries.
2044         * gfortran.texi: Fix @code in one index entry.
2045
2046 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2047
2048         * invoke.texi: Change @code-type macros to appropriate
2049         variants (@command, @option, etc.)
2050         * gfortran.texi: Same.
2051
2052 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2053
2054         * intrinsic.texi: Various minor cleanups.
2055
2056 2007-01-02  Steven G. Kargl  <kargls@comcast.net>
2057
2058         * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to
2059         build_int_cst.
2060
2061 2007-01-02  Tobias Burnus  <burnus@net-b.de>
2062
2063         PR fortran/30276
2064         * scanner.c (open_included_file): Support full-path filenames.
2065
2066 2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
2067
2068         PR fortran/20896
2069         * interface.c (check_sym_interfaces): Remove call to
2070         resolve_global_procedure.
2071         gfortran.h : Remove prototype for resolve_global_procedure.
2072         resolve.c (resolve_global_procedure): Add static attribute
2073         to function declaration.
2074
2075 2007-01-01  Steven G. Kargl  <kargls@comcast.net>
2076
2077         * ChangeLog: Copy to ...
2078         * ChangeLog-2006: here.