OSDN Git Service

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