OSDN Git Service

2007-02-26 Thomas Koenig <Thomas.Koenig@online.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2007-02-26  Thomas Koenig  <Thomas.Koenig@online.de>
2             Paul Thomas  <pault@gcc.gnu.org>
3
4         PR fortran/30865
5         * trans-intrinsic.c (gfc_conv_intrinsic_size):
6         If dim is an optional argument, check for its
7         presence and call size0 or size1, respectively.
8
9 2007-02-23  Paul Thomas <pault@gcc.gnu.org>
10
11         PR fortran/30660
12         * resolve.c (has_default_initializer): New function.
13         (resolve_fl_variable): Call has_default_initializer to determine if
14         the derived type has a default initializer to its ultimate
15         components.
16
17
18 2007-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
19
20         * options.c (set_default_std_flags): New function to consolidate
21         setting the flags.
22         (gfc_init_options): Use new function.
23         (gfc_handle_option): Use new function.
24
25 2007-02-22  Brooks Moses  <brooks.moses@codesourcery.com>
26
27         * gfortran.texi (Old-style kind specifications): Document
28         special handling of old-style kind specifiers for COMPLEX.
29         * decl.c (gfc_match_old_kind_spec): Documented kind/bytesize
30         assumptions in comment.
31
32 2007-02-21  Bernhard Fischer  <aldot@gcc.gnu.org>
33
34         * parse.c (next_free): Gooble spaces after OpenMP sentinel.
35
36 2007-02-20  Thomas Koenig  <Thomas.Koenig@online.de>
37
38         PR fortran/30869
39         * match.c (gfc_match_iterator): Remove conflict between
40         loop variable and pointer.
41
42 2007-02-20  Tobias Burnus  <burnus@net-b.de>
43
44         PR fortran/30522
45         * symbol.c (gfc_add_volatile): Allow to set VOLATILE
46           attribute for host-associated variables.
47         * gfortran.h (symbol_attribute): Save namespace
48           where VOLATILE has been set.
49         * trans-decl.c (gfc_finish_var_decl): Move variable
50           declaration to the top.
51
52 2007-02-20  Tobias Burnus  <burnus@net-b.de>
53
54         PR fortran/30783
55         * resolve.c (resolve_symbol): Add character dummy VALUE check.
56
57 2007-02-19  Thomas Koenig  <Thomas.Koenig@online.de>
58
59         PR libfortran/30533
60         * fortran/iresolve.c (gfc_resolve_maxloc): Remove coercion of
61         argument to default integer.
62         (gfc_resolve_minloc): Likewise.
63
64 2007-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
65
66         PR fortran/30681
67         * options.c (gfc_init_options): Relax warning level for obsolescent.
68         * match.c (match_arithmetic_if): Change to obsolescent from deleted.
69         (gfc_match_if): Same.
70
71 2007-02-18  Roger Sayle  <roger@eyesopen.com>
72
73         * trans-array.c (gfc_build_constant_array_constructor): When the
74         shape of the constructor is known, use that to construct the
75         gfc_array_spec.
76         (gfc_trans_constant_array_constructor): Initialize the "info"
77         information for all of the dimensions of the array constructor.
78         (constant_array_constructor_loop_size): New function.
79         (gfc_trans_array_constructor): Use it to determine whether a
80         loop is suitable for "constant array constructor" optimization.
81
82         * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2
83         instead of build2, to avoid conditions like "(a != b) != 0".
84
85 2007-02-18  Roger Sayle  <roger@eyesopen.com>
86             Paul Thomas <pault@gcc.gnu.org>
87
88         PR fortran/30400
89         * match.c (match_forall_iterator): Use gfc_match_expr instead
90         of gfc_match_variable to match the iterator variable.  Return
91         MATCH_NO if not a variable.  Remove the reset of the symbol's
92         flavor in cleanup.
93
94 2007-02-16  Tobias Burnus  <burnus@net-b.de>
95
96         PR fortran/30793
97         * trans-decl.c (gfc_generate_function_code): Do not initialize
98         pointers to derived components.
99
100 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
101             Brooks Moses  <brooks.moses@codesourcery.com>
102             Lee Millward  <lee.millward@codesourcery.com>
103
104         * trans-expr.c (gfc_conv_power_op): Use build_call_expr.
105         (gfc_conv_string_tmp): Likewise.
106         (gfc_conv_concat_op): Likewise.
107         (gfc_build_compare_string): Likewise.
108         (gfc_conv_function_call): Use build_call_list instead of build3.
109
110         * trans-array.c (gfc_trans_allocate_array_storage): Use
111         build_call_expr.
112         (gfc_grow_array): Likewise.
113         (gfc_trans_array_ctor_element): Likewise.
114         (gfc_trans_array_constructor_value): Likewise.
115         (gfc_array_allocate): Likewise.
116         (gfc_array_deallocate): Likewise.
117         (gfc_trans_auto_array_allocation): Likewise.
118         (gfc_trans_dummy_array_bias): Likewise.
119         (gfc_conv_array_parameter): Likewise.
120         (gfc_trans_dealloc_allocated): Likewise.
121         (gfc_duplicate_allocatable): Likewise.
122
123         * trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
124         (gfc_trans_omp_flush): Likewise.
125
126         * trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
127         (gfc_trans_pause): Likewise.
128         (gfc_trans_stop): Likewise.
129         (gfc_trans_character_select): Likewise.
130         (gfc_do_allocate): Likewise.
131         (gfc_trans_assign_need_temp): Likewise.
132         (gfc_trans_pointer_assign_need_temp): Likewise.
133         (gfc_trans_forall_1): Likewise.
134         (gfc_trans_where_2): Likewise.
135         (gfc_trans_allocate): Likewise.
136         (gfc_trans_deallocate): Likewise.
137
138         * trans.c (gfc_trans_runtime_check): Use build_call_expr.
139
140         * trans-io.c (gfc_trans_open): Use build_call_expr.
141         (gfc_trans_close): Likewise.
142         (build_filepos): Likewise.
143         (gfc_trans_inquire): Likewise.
144         (NML_FIRST_ARG): Delete.
145         (NML_ADD_ARG): Delete.
146         (transfer_namelist_element): Use build_call_expr.
147         (build_dt): Likewise.
148         (gfc_trans_dt_end): Likewise.
149         (transfer_expr): Likewise.
150         (transfer_array-desc): Likewise.
151
152         * trans-decl.c (gfc_generate_function_code): Use build_call_expr.
153         (gfc_generate_constructors): Likewise.
154
155         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
156         (gfc_conv_intrinsic_fdate): Likewise.
157         (gfc_conv_intrinsic_ttynam): Likewise.
158         (gfc_conv_intrinsic_array_transfer): Likewise.
159         (gfc_conv_associated): Likewise.
160         (gfc_conv_intrinsic_si_kind): Likewise.
161         (gfc_conv_intrinsic_trim): Likewise.
162         (gfc_conv_intrinsic_repeat: Likewise.
163         (gfc_conv_intrinsic_iargc): Likewise.
164
165 2007-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
166
167         PR fortran/30779
168         * scanner.c (gfc_next_char_literal): Add check for end of file after
169         call to advance_line.
170
171 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
172
173         PR fortran/30799
174         * primary.c (match_logical_constant): Return MATCH_ERROR on invalid
175         kind.
176
177 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
178
179         * misc.c (gfc_typename): Fix potential buffer overflow.
180
181 2007-02-13  Paul Thomas  <pault@gcc.gnu.org>
182
183         PR fortran/30554
184         * module.c (read_module): Set pointer_info to referenced if the
185         symbol has no namespace.
186
187 2007-02-12  Nick Clifton  <nickc@redhat.com>
188
189         * lang.opt: Add Warning attribute to warning options.
190
191 2007-02-11  Daniel Franke  <franke.daniel@gmail.com>
192
193         * intrinsic.texi (HOSTNM): Fix typographical error in syntax.
194         (SLEEP): Added section and documentation.
195
196 2007-02-11  Tobias Schlüter  <tobi@gcc.gnu.org>
197
198         PR fortran/30478
199         * decl.c (add_init_expr_to_sym): Remove ENUM specific code.
200         (variable_decl): Likewise.  Rewrap comment.
201         (match_attr_spec): Remove ENUM specific code.
202         (gfc_match_enum): Fix typo in error message.
203         (enumerator_decl): New function.
204         (gfc_match_enumerator_def): Use enumerator_decl instead of
205         variable_decl.  Adapt code accordingly.
206
207 2007-02-11  Paul Thomas  <pault@gcc.gnu.org>
208
209         PR fortran/30554
210         * module.c (find_symtree_for_symbol): New function to return
211         a symtree that is not a "unique symtree" given a symbol.
212         (read_module): Do not automatically set pointer_info to
213         referenced because this inhibits the generation of a unique
214         symtree.  Recycle the existing symtree if possible by calling
215         find_symtree_for_symbol.
216
217         PR fortran/30319
218         * decl.c (add_init_expr_to_sym): Make new charlen for an array
219         constructor initializer.
220
221 2007-02-10  Richard Henderson  <rth@redhat.com>, Jakub Jelinek  <jakub@redhat.com>
222
223         * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
224         and __emutls_register_common.
225         * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
226         * trans-common.c (build_common_decl): Don't check have_tls.
227         * trans-decl.c (gfc_finish_var_decl): Likewise.
228         * types.def (BT_WORD, BT_FN_PTR_PTR): New.
229         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
230
231 2007-02-09  Tobias Burnus  <burnus@net-b.de>
232
233         PR fortran/30512
234         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
235           gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
236
237 2007-02-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
238
239         PR fortran/30720
240         * trans-array.c (gfc_trans_create_temp_array): Remove use of the
241         function argument. Always generate code for negative extent.
242         Simplify said code.
243         * trans-array.h (gfc_trans_create_temp_array): Change prototype.
244         * trans-expr.c (gfc_conv_function_call): Remove use of last argument
245         of gfc_trans_create_temp_array.
246         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise.
247         * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
248
249 2007-02-08  Roger Sayle  <roger@eyesopen.com>
250
251         * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the
252         mask expression is a compile-time constant (".true." or ".false.").
253
254 2007-02-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
255
256         PR fortran/30611
257         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Evaluate
258         arguments only once. Generate check that NCOPIES argument is not
259         negative.
260
261 2007-02-04  Steven G. Kargl <kargl@gcc.gnu.org>
262
263         PR fortran/30605
264         * fortran/invoke.texi: Update documentation.
265         * fortran/options.c (gfc_post_options): Deal with tabs with -std=f2003
266         and -pedantic.
267
268 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
269
270         * trans-array.c: Fix a comment typo.
271
272 2007-02-03  Paul Thomas  <pault@gcc.gnu.org>
273
274         PR fortran/30514
275         * array.c (match_array_element_spec): If the length of an array is
276         negative, adjust the upper limit to make it zero length.
277
278         PR fortran/30660
279         * resolve.c (pure_function, resolve_function): Initialize name to
280         null to clear up build warnings.
281         (resolve_fl_variable): Look at components explicitly to check for
282         default initializer, rather than using gfc_default_initializer.
283
284 2007-02-02  Steven G. Kargl <kargl@gcc.gnu.org>
285
286         PR fortran/30683
287         * resolve.c (resolve_generic_f): Check for non-NULL sym.
288
289 2007-02-02  Roger Sayle  <roger@eyesopen.com>
290
291         * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate
292         NON_LVALUE_EXPR nodes and useless type conversions.
293
294 2007-02-02  Paul Thomas  <pault@gcc.gnu.org>
295
296         PR fortran/30284
297         PR fortran/30626
298         * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute
299         from function and make sure that substring lengths are
300         translated.
301         (is_aliased_array): Remove static attribute.
302         * trans.c : Add prototypes for gfc_conv_aliased_arg and
303         is_aliased_array.
304         * trans-io.c (set_internal_unit): Add the post block to the
305         arguments of the function.  Use is_aliased_array to check if
306         temporary is needed; if so call gfc_conv_aliased_arg.
307         (build_dt): Pass the post block to set_internal_unit and
308         add to the block after all io activiy is done.
309
310 2007-02-01  Roger Sayle  <roger@eyesopen.com>
311
312         * trans-array.c (gfc_conv_expr_descriptor): We don't need to use
313         a temporary array to pass a constant non-character array constructor.
314         Generalize the descriptor generation code to handle scalarizer
315         "info" without an array reference.
316
317 2007-02-01  Roger Sayle  <roger@eyesopen.com>
318
319         * dependency.c (gfc_check_dependency) <EXPR_ARRAY>: Implement
320         dependency checking for array constructors.
321
322 2007-02-01  Roger Sayle  <roger@eyesopen.com>
323
324         * trans-stmt.c (compute_overall_iter_number): Document function
325         arguments.  Generalize "unconditional forall nest with constant
326         bounds" optimization to eliminate unconditional inner loops with
327         constant bounds.
328
329 2007-01-31  Tobias Burnus  <burnus@net-b.de>
330
331         PR fortran/30520
332         * interface.c (compare_actual_formal): Check conformance between
333           actual and VOLATILE dummy arguments.
334         * symbol.c (gfc_add_volatile): Allow setting of VOLATILE
335           multiple times in different scopes.
336         * decl.c (gfc_match_volatile): Search symbol in host association.
337
338 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
339
340         * simplify.c, trans-array.c: Fix comment typos.
341
342 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
343
344         * invoke.texi (Code Gen Options): Fix abbreviation typo.
345         * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos.
346
347 2007-01-30  Steve Ellcey  <sje@cup.hp.com>
348
349         PR fortran/30432
350         * trans-types.c (gfc_get_function_type): Do not add void_type_node
351         to empty arg list.
352         * trans-decl.c (create_function_arglist): Change assert.
353
354 2007-01-29  Paul Thomas  <pault@gcc.gnu.org>
355
356         PR fortran/30554
357         * module.c (read_module): If a symbol is excluded by an ONLY
358         clause, check to see if there is a symtree already loaded. If
359         so, attach the symtree to the pointer_info.
360
361 2007-01-28  Thomas Koenig  <Thomas.Koenig@online.de>
362
363         PR libfortran/30389
364         * gfortran.h: Remove gfc_simplify_init_1.
365         * arith.h: Remove third argument from gfc_compare_string.
366         * arith.c (gfc_compare_expression): Remove third argument
367         from call to gfc_compare_string.
368         (gfc_compare_string): Remove third argument xcoll_table.
369         Remove use of xcoll_table.
370         * misc.c (gfc_init_1): Remove call to gfc_simplify_init_1.
371         * simplify.c (ascii_table): Remove.
372         (xascii_table): Likewise.
373         (gfc_simplify_achar): ICE if extract_int fails.  Remove use of
374         ascii_table.  Warn if -Wsurprising and value < 0 or > 127.
375         (gfc_simplify_char): ICE if extract_int fails. Error if
376         value < 0 or value > 255.
377         (gfc_simplify_iachar): Remove use of xascii_table.
378         Char values outside of 0..255 are an ICE.
379         (gfc_simplify_lge): Remove use of xascii_table.
380         (gfc_simplify_lgt): Likewise.
381         (gfc_simplify_lle): Likewise.
382         (gfc_simplify_llt): Likewise.
383         (invert_table): Remove.
384         (gfc_simplify_init_1): Remove.
385
386 2007-01-27  Roger Sayle  <roger@eyesopen.com>
387
388         * trans-stmt.c (forall_info): Replace the next_nest and outer
389         fields that previously implemented a doubly-linked list with a
390         single prev_nest field (singly-linked list).
391         (gfc_trans_nested_forall_loop): The nested_forall_info argument
392         now denotes the innermost FORALL in the loop nest.
393         (compute_overall_iter_number): Use prev_nest instead of next_nest.
394         (gfc_trans_forall_1): Link/cons the new "info" to the head of the
395         nested_forall_info linked list.  Free the current "info" when done.
396
397 2007-01-27  Paul Thomas  <pault@gcc.gnu.org>
398
399         PR fortran/30407
400         * trans-expr.c (gfc_conv_operator_assign): New function.
401         * trans.h : Add prototype for gfc_conv_operator_assign.
402         * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for
403         a potential operator assignment subroutine.  If it is non-NULL
404         call gfc_conv_operator_assign instead of the first assignment.
405         ( gfc_trans_where_2): In the case of an operator assignment,
406         extract the argument expressions from the code for the
407         subroutine call and pass the symbol to gfc_trans_where_assign.
408         resolve.c (resolve_where, gfc_resolve_where_code_in_forall,
409         gfc_resolve_forall_body): Resolve the subroutine call for
410         operator assignments.
411
412 2007-01-26  Steven Bosscher  <stevenb.gcc@gmail.com>
413             Steven G. Kargl <kargl@gcc.gnu.org>
414
415         PR fortran/30278
416         * fortran/io.c (next_char): Deal with backslash escaped characters.
417         Issue warnings in non -std=gnu cases.
418         * fortran/primary.c (next_string_char): Issue warnings in non
419
420 2007-01-26  Tobias Burnus  <burnus@net-b.de>
421
422         * lang-specs.h: Add support for .f03 and .F03 extensions.
423         * gfortran.texi: Document .f03 extension.
424         * options.c (form_from_filename): Recognize .f03.
425
426 2007-01-25  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
427
428         PR fortran/30437
429         * lang.opt (Wall): Remove RejectNegative.
430         * options.c (gfc_handle_option): Wall can be disabled.
431         (set_Wall): Add a parameter for disabling Wall.
432         
433 2007-01-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
434
435         PR fortran/30532
436         * scanner.c (load_line): Remove check fot ctrl-z and don't gobble.
437         
438 2007-01-23  Paul Thomas  <pault@gcc.gnu.org>
439
440         PR fortran/30481
441         * match.c (gfc_match_namelist): Add check for assumed size character
442         in namelist and provide error if found.
443
444 2007-01-21  Brooks Moses  <brooks.moses@codesourcery.com>
445
446         * intrinsic.texi (ACHAR): Added cross-references.
447         (CHAR): Put cross-references in alphabetical order.
448         (IACHAR): Added cross-references.
449         (ICHAR): Added cross-references.
450
451 2007-01-20  Brooks Moses  <brooks.moses@codesourcery.com>
452
453         * intrinsic.texi: Edited all "Syntax" examples to a consistent form.
454         (MAXVAL): Corrected description of result characteristics.
455         (MINVAL): Same.
456         (UMASK): Added documentation.
457
458 2007-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
459
460         * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c,
461         parse.c, primary.c, options.c, misc.c, simplify.c: Next installment
462         in the massive whitespace patch.
463
464 2007-01-20  Roger Sayle  <roger@eyesopen.com>
465
466         * module.c (mio_array_ref): The dimen_type fields of an array ref
467         are an enumerated type and can't be read/written directly with a
468         call to mio_integer.  Instead loop over and cast each element.
469
470 2007-01-20  Roger Sayle  <roger@eyesopen.com>
471
472         * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL,
473         i.e. that the ARRAY_REF doesn't mention components.
474         * trans-array.c (gfc_constant_array_constructor_p): Export external
475         function renamed from constant_array_constructor_p.
476         (gfc_build_constant_array_constructor): Export.
477         (gfc_trans_array_constructor): Update call to the renamed function
478         constant_array_constructor_p.
479         * trans-array.h (gfc_constant_array_constructor_p): Prototype here.
480         (gfc_build_constant_array_constructor): Likewise.
481         * trans-expr.c (gfc_build_memcpy_call): New helper function split
482         out from gfc_trans_array_copy.
483         (gfc_trans_array_copy): Use gfc_build_memcpy_call.
484         (gfc_trans_array_constructor_copy): New function to optimize
485         assigning an entire array from a constant array constructor.
486         (gfc_trans_assignment): Call gfc_trans_array_constructor_copy
487         when appropriate.
488
489 2007-01-20  Roger Sayle  <roger@eyesopen.com>
490
491         * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless
492         implementation for the SIGN intrinsic with integral operands.
493         (gfc_conv_intrinsic_minmax): Fix whitespace.
494
495 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
496
497         * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore.
498         * lang.opt: Add -fallow-leading-underscore.
499         * match.c (gfc_match_name): Allow leading underscore in symbol
500         name if -fallow-leading-underscore is used.
501         * symbol.c (gfc_get_default_type): Add special case for symbol
502         names beginning with an underscore.
503         * trans-decl.c (gfc_get_extern_function_decl,
504         gfc_build_intrinsic_function_decls): Add _gfortran prefix to
505         library symbols selected_int_kind, selected_real_kind and 
506         all specifics.
507         * options.c (gfc_init_options, gfc_handle_option): Handle the
508         new -fallow-leading-underscore option.
509
510 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
511
512         PR fortran/30446
513         * options.c (gfc_handle_module_path_options): Path used in -J
514         option is now added to the module search path.
515
516 2007-01-20  Richard Guenther  <rguenther@suse.de>
517
518         PR fortran/30223
519         * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and
520         cexpi builtins if we have TARGET_C99_FUNCTIONS.  Provide
521         sincos builtins if the target has sincos.
522
523 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
524
525         * intrinsic.texi (MATMUL): Corrected a typo.
526         (MAX): Separated @var arguments.
527         (MIN): Separated @var arguments.
528
529 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
530
531         * intrinsic.texi: general whitespace cleanup.
532         (menu): Added TIME8, removed UNMASK.
533         (AINT): Clarified argument requirement.
534         (ANINT): Clarified argument requirement.
535         (CEILING): Clarified argument requirement.
536         (CHAR): Clarified argument requirement.
537         (CMPLX): Clarified argument requirement.
538         (DCMPLX): Clarified argument requirement.
539         (FGET): Line rewrapping.
540         (FLOOR): Clarified argument requirement.
541         (GMTIME): Added documentation.
542         (IAND): Added cross-reference.
543         (IBCLR): Added cross-reference.
544         (IBSET): Added cross-reference.
545         (IEOR): Added cross-reference.
546         (INT): Collapsed examples, clarified argument requirement.
547         (IOR): Added cross-references.
548         (LEN_TRIM): Corrected result kind.
549         (LINK): Added cross-reference.
550         (LLT): Removed "documentation pending".
551         (LOGICAL): Added documentation.
552         (LSHIFT): Added documentation.
553         (LTIME): Added documentation.
554         (MATMUL): Added documentation.
555         (MAX): Added documentation.
556         (MAXLOC): Added documentation.
557         (MAXVAL): Added documentation.
558         (MERGE): Added documentation.
559         (MIN): Added documentation.
560         (MINLOC): Added documentation.
561         (MINVAL): Added documentation.
562         (MVBITS): Moved to correct place, added documentation.
563         (NOT): Added documentation.
564         (PERROR): Added documentation.
565         (RAN): Moved to correct place, added documentation.
566         (REAL): Clarified argument requirement.
567         (RENAME): Added documentation.
568         (RSHIFT): Clarified argument requirement.
569         (SIGN): Corrected table specification.
570         (SYMLNK): Added documentation.
571         (SYSTEM): Added documentation.
572         (TIME): Added documentation.
573         (TIME8): Added section and documentation.
574         (UNMASK): Removed erroneous section.
575
576 2007-01-18  H.J. Lu  <hongjiu.lu@intel.com>
577
578         * trans-stmt.c (compute_overall_iter_number): Fix a typo.
579
580 2007-01-18  Roger Sayle  <roger@eyesopen.com>
581
582         * trans-expr.c (copyable_array_p): Consider user derived types without
583         allocatable components to be copyable.
584
585 2007-01-18  Roger Sayle  <roger@eyesopen.com>
586
587         * trans-stmt.c (compute_overall_iter_number): Enhance to precompute
588         the number of interations in unconditional FORALL nests with constant
589         bounds.
590
591 2007-01-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
592             Tobias Burnus  <burnus@net-b.de>
593
594         PR libfortran/29649
595         * gfortran.h (gfc_option_t): Add flag_dump_core.
596         * lang.opt: Add -fdump-core option.
597         * invoke.texi: Document the new options.
598         * trans-decl.c (gfc_build_builtin_function_decls): Add new
599           options to the call to set_std.
600         * options.c (gfc_init_options, gfc_handle_option): Set the
601           new options.
602
603 2007-01-17  Paul Thomas  <pault@gcc.gnu.org>
604
605         PR fortran/30476
606         * module.c (load_generic_interfaces): Make the marking of the
607         symbol as ambiguous conditional on the module names being
608         different.
609         (write_generic): Ensure that the generic interface has a
610         non-NULL module field.
611
612 2007-01-16  Roger Sayle  <roger@eyesopen.com>
613
614         PR fortran/30404
615         * trans-stmt.c (forall_info): Remove pmask field.
616         (gfc_trans_forall_loop): Remove NVAR argument, instead assume that
617         NVAR covers all the interation variables in the current forall_info.
618         Add an extra OUTER parameter, which specified the loop header in
619         which to place mask index initializations.
620         (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument.
621         Change the semantics of MASK_FLAG to only control the mask in the
622         innermost loop.
623         (compute_overall_iter_number): Optimize the trivial case of a
624         top-level loop having a constant number of iterations.  Update
625         call to gfc_trans_nested_forall_loop.  Calculate the number of
626         times the inner loop will be executed, not to size of the 
627         iteration space.
628         (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when
629         sizeof(type) == 1.  Tidy up.
630         (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls
631         to gfc_trans_nested_forall_loop.
632         (gfc_trans_pointer_assign_need_temp): Likewise.
633         (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and
634         LENVAR local variables.  Split mask allocation into a separate
635         hunk/pass from mask population.  Use allocate_temp_for_forall_nest
636         to allocate the FORALL mask with the correct size.  Update calls
637         to gfc_trans_nested_forall_loop.
638         (gfc_evaluate_where_mask): Update call to
639         gfc_trans_nested_forall_loop.
640         (gfc_trans_where_2): Likewise.
641
642 2007-01-15  Paul Thomas  <pault@gcc.gnu.org>
643
644         PR fortran/28172
645         * trans-stmt.c (gfc_trans_call): If it does not have one, get
646         a backend_decl for an alternate return.
647
648         PR fortran/29389
649         * resolve.c (pure_function): Statement functions are pure. Note
650         that this will have to recurse to comply fully with F95.
651
652         PR fortran/29712
653         * resolve.c (resolve_function): Only a reference to the final
654         dimension of an assumed size array is an error in an inquiry
655         function.
656
657         PR fortran/30283
658         * resolve.c (resolve_function): Make sure that the function
659         expression has a type.
660
661 2007-01-14  Paul Thomas  <pault@gcc.gnu.org>
662
663         PR fortran/30410
664         * trans-decl.c (gfc_sym_mangled_function_id): Module, external
665         symbols must not have the module name prepended.
666
667 2007-01-11  Thomas Koenig  <Thomas.Koenig@online.de>
668
669         PR libfortran/30415
670         * iresolve.c (gfc_resolve_maxloc): If the rank
671         of the return array is nonzero and we process an
672         integer array smaller than default kind, coerce
673         the array to default integer.
674         * iresolve.c (gfc_resolve_minloc): Likewise.
675
676 2007-01-11  Brooks Moses  <brooks.moses@codesourcery.com>
677
678         * simplify.c: Update copyright to 2007.
679         * scanner.c: Same.
680
681 2007-01-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
682
683         PR fortran/30430
684         * scanner.c (gfc_release_include_path): Free gfc_option.module_dir
685         only once!
686
687 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
688
689         * simplify.c (gfc_simplify_ibclr): Fix POS comparison.
690         (gfc_simplify_ibset): Same.
691
692 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
693
694         PR 30381
695         PR 30420
696         * simplify.c (convert_mpz_to_unsigned): New function.
697         (convert_mpz_to_signed): New function, largely based on
698         twos_complement().
699         (twos_complement): Removed.
700         (gfc_simplify_ibclr): Add conversions to and from an
701         unsigned representation before bit-twiddling.
702         (gfc_simplify_ibset): Same.
703         (gfc_simplify_ishftc): Add checks for overly large
704         constant arguments, only check the third argument if
705         it's present, carry over high bits into the result as
706         appropriate, and perform the final conversion back to
707         a signed representation using the correct sign bit.
708         (gfc_simplify_not): Removed unnecessary masking.
709
710 2007-01-09  Paul Thomas  <pault@gcc.gnu.org>
711
712         PR fortran/30408
713         * resolve.c (resolve_code): Use the code->expr character length
714         directly to set length of llen.
715
716 2007-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
717
718         PR fortran/30408
719         * lang.opt: Add Wcharacter_truncation option.
720         * options.c (gfc_init_options): Initialize
721         gfc_option.warn_character_truncation to zero.
722         (gfc_handle_option): Add case for OPT_Wcharacter_truncation.
723
724 2007-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
725
726         * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c,
727         iresolve.c, match.c: Update Copyright years.  Whitespace.
728
729 2007-01-08  Richard Guenther  <rguenther@suse.de>
730
731         * trans-io.c (transfer_array_desc): Use build_int_cst instead
732         of build_int_cstu.
733
734 2007-01-08  Roger Sayle  <roger@eyesopen.com>
735
736         * trans-array.c (constant_array_constructor_p): New function to
737         determine whether an array constructor consists only of constant
738         elements, and if so return it's size.
739         (gfc_build_constant_array_constructor): Construct a statically
740         initialized gfortran array for a given EXPR_ARRAY.
741         (gfc_trans_constant_array_constructor): Efficiently scalarize
742         a constant array constructor.
743         (gfc_trans_array_constructor): Tidy up use of CONST_STRING.
744         Special case scalarization of constant array constructors, all of
745         whose elements are specified, using constant_array_constructor_p 
746         and gfc_trans_constant_array_constructor.
747         (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero
748         before adding it to index, to avoid creating a NON_LVALUE_EXPR.
749
750 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
751
752         gfortran.texi: Fix typos.
753
754 2007-01-07  Steven G. Kargl  <kargl@gcc.gnu.org>
755
756         * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c,
757         convert.c: Update Copyright dates.  Fix whitespace.
758
759 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
760
761         * data.c (gfc_assign_data_value): Fix whitespace.
762
763 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
764
765         * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size):
766         Commentary typo fix.
767
768 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
769
770         PR fortran/27698
771         * match.c (gfc_match_name): Print diagnostics for invalid
772         character in names.
773
774 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
775
776         * array.c: Fix whitespace in comment table.
777
778 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
779
780         * array.c, bbt.c, check.c: Update copyright years.  Whitespace.
781
782 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
783
784         * arith.c: Update copyright years.  Whitespace.
785
786 2007-01-05  Roger Sayle  <roger@eyesopen.com>
787
788         * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize
789         array assignments split out from gfc_trans_assignment.
790         (gfc_trans_array_copy): New function to implement array to array
791         copies via calls to __builtin_memcpy.
792         (copyable_array_p): New helper function to identify an array of
793         simple/POD types, that may be copied/assigned using memcpy.
794         (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple
795         whole array assignments considered suitable by copyable_array_p.
796         Invoke gfc_trans_assignment_1 to perform the fallback scalarization.
797
798 2007-01-05  Roger Sayle  <roger@eyesopen.com>
799
800         * trans-array.c (gfc_trans_array_constructor_value): Make the
801         static const "data" array as TREE_READONLY.
802         * trans-stmt.c (gfc_trans_character_select): Likewise.
803
804 2007-01-05  Roger Sayle  <roger@eyesopen.com>
805
806         * trans-array.c (gfc_conv_loop_setup): Test whether the loop
807         stride is one, to avoid fold_build2 introducing a useless
808         NON_LVALUE_EXPR node.
809
810 2007-01-05  Tobias Burnus  <burnus@net-b.de>
811
812         * symbol.c (check_conflict): Fix error message.
813
814 2007-01-05  Paul Thomas  <pault@gcc.gnu.org>
815
816         PR fortran/23232
817         * decl.c (gfc_in_match_data, gfc_set_in_match_data): New
818         functions to signal that a DATA statement is being matched.
819         (gfc_match_data): Call gfc_set_in_match_data on entry and on
820         exit.
821         * gfortran.h : Add prototypes for above.
822         * expr.c (check_init_expr): Avoid check on parameter or
823         variable if gfc_in_match_data is true.
824         (gfc_match_init_expr): Do not call error on non-reduction of
825         expression if gfc_in_match_data is true.
826
827         PR fortran/27996
828         PR fortran/27998
829         * decl.c (gfc_set_constant_character_len): Add boolean arg to
830         flag array constructor resolution.  Warn if string is being
831         truncated.  Standard dependent error if string is padded. Set
832         new arg to false for all three calls to
833         gfc_set_constant_character_len.
834         * match.h : Add boolean arg to prototype for
835         gfc_set_constant_character_len.
836         * gfortran.h : Add warn_character_truncation to gfc_options.
837         * options.c (set_Wall): Set warn_character_truncation if -Wall
838         is set.
839         * resolve.c (resolve_code): Warn if rhs string in character
840         assignment has to be truncated.
841         * array.c (gfc_resolve_character_array_constructor): Set new
842         argument to true for call to gfc_set_constant_character_len.
843
844 2007-01-05  Tobias Burnus  <burnus@net-b.de>
845
846         PR fortran/29624
847         * interface.c (compare_parameter_intent): New function.
848           (check_intents): Support pointer intents.
849         * symbol.c (check_conflict): Support pointer intents,
850           better conflict_std message.
851         * expr.c (gfc_check_assign,gfc_check_pointer_assign):
852           Support pointer intents.
853         * resolve.c (resolve_deallocate_expr,resolve_allocate_expr):
854           Support pointer intents.
855
856 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
857
858         PR 30371
859         * check.c (gfc_check_kill_sub): Add checks for non-scalar
860         arguments.
861
862 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
863
864         * intrinsic.texi: Minor cleanup, reflowing overlong
865         paragraphs, and correcting whitespace.
866
867 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
868
869         * intrinsic.texi (LBOUND): Add documentation.
870         (LGE): Add documentation.
871         (LGT): Add documentation.
872         (LINK): Add documentation.
873         (LLE): Add documentation.
874         (LLT): Add documentation.
875         (LNBLNK): Add documentation.
876         (UBOUND): Add documentation.
877         (UNLINK): Add documentation.
878
879 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
880
881         * intrinsic.texi (IAND): Clarify argument specifications.
882         (IBCLR): Add documentation.
883         (IBITS): Add documentation.
884         (IBSET): Add documentation.
885         (IEOR): Add documentation.
886         (IERRNO): Add documentation.
887         (INDEX): Add documentation.
888         (IOR): Add documentation.
889         (ISHFT): Add documentation.
890         (ISHFTC): Add documentation.
891         (KILL): Add documentation.
892         (LEN_TRIM): Add documentation.
893
894 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
895
896         PR 30235
897         * interface.c (compare_actual_formal): check for
898         alternate returns when iterating over non-present
899         arguments.
900
901 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
902
903         * invoke.texi: Update manpage copyright to include 2007.
904
905 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
906
907         * gfortran.texi: Update copyright to include 2007.
908         * intrinsic.texi: Update copyright to include 2007.
909         * invoke.texi: Update copyright to include 2007.
910
911 2007-01-02  Tobias Burnus  <burnus@net-b.de>
912             Jakub Jelinek  <jakub@redhat.com>
913
914         PR fortran/30276
915         * scanner.c (open_included_file): Revert patch.
916           (gfc_open_included_file): Support absolute pathnames.
917           (gfc_open_intrinsic_module): Support absolute pathnames.
918
919 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
920
921         * gfortran.texi (GNU Fortran and GCC): Rewrite
922
923 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
924
925         * gfortran.texi (Introduction): Lower "Part I:
926         Introduction" to a chapter, renumber Parts II and III to
927         Parts I and II.
928         * intrinsic.texi (Introduction): Rename to "Introduction
929         to Intrinsics" to avoid conflict with the new chapter.
930
931 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
932
933         * intrinsic.texi (Introduction): Rewrite first paragraph.
934
935 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
936
937         * invoke.texi (OpenMP): Added index entry.
938         * gfortran.texi (title page): Removed erroneous '*'.
939
940 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
941
942         * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units
943         to description.
944         (Extensions): Miscellaneous minor rewriting and copyediting.
945         (BOZ-literal constants): Renamed from Hexadecimal constants.
946         (Hollerith constants support): Added explanation and 
947         suggestions for standard-conforming modern equivalents.
948
949 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
950
951         * intrinsic.texi: Improvements to index entries; change
952         @findex entries to @cindex entries.
953         * invoke.texi: Standardize and improve index entries.
954         * gfortran.texi: Fix @code in one index entry.
955
956 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
957
958         * invoke.texi: Change @code-type macros to appropriate
959         variants (@command, @option, etc.)
960         * gfortran.texi: Same.
961
962 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
963
964         * intrinsic.texi: Various minor cleanups.
965
966 2007-01-02  Steven G. Kargl  <kargls@comcast.net>
967
968         * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to
969         build_int_cst.
970
971 2007-01-02  Tobias Burnus  <burnus@net-b.de>
972
973         PR fortran/30276
974         * scanner.c (open_included_file): Support full-path filenames.
975
976 2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
977
978         PR fortran/20896
979         * interface.c (check_sym_interfaces): Remove call to
980         resolve_global_procedure.
981         gfortran.h : Remove prototype for resolve_global_procedure.
982         resolve.c (resolve_global_procedure): Add static attribute
983         to function declaration.
984
985 2007-01-01  Steven G. Kargl  <kargls@comcast.net>
986
987         * ChangeLog: Copy to ...
988         * ChangeLog-2006: here.