OSDN Git Service

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