OSDN Git Service

96fd675bf0e6223128d3eabf5ac7fbd724c13861
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2009-01-21  Daniel Kraft  <d@domob.eu>
2
3         PR fortran/38887
4         * runtime/in_unpack_generic.c (internal_unpack):  Return instead of
5         abort when called with empty array.
6         * m4/in_unpack.m4:  Ditto.
7         * generated/in_unpack_i1.c:  Regenerated.
8         * generated/in_unpack_i2.c:  Regenerated.
9         * generated/in_unpack_i4.c:  Regenerated.
10         * generated/in_unpack_i8.c:  Regenerated.
11         * generated/in_unpack_i16.c: Regenerated.
12         * generated/in_unpack_r4.c:  Regenerated.
13         * generated/in_unpack_r8.c:  Regenerated.
14         * generated/in_unpack_r10.c: Regenerated.
15         * generated/in_unpack_r16.c: Regenerated.
16         * generated/in_unpack_c4.c:  Regenerated.
17         * generated/in_unpack_c8.c:  Regenerated.
18         * generated/in_unpack_c10.c: Regenerated.
19         * generated/in_unpack_c16.c: Regenerated.
20
21 2009-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
22
23         PR libfortran/38772
24         * io/read.c (read_f): Clean up loop conditions for BZ/BN,
25         allowing proper digit testing. White space fix.
26
27 2009-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
28
29         PR libfortran/38735
30         * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for
31         internal units.
32
33 2008-12-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34
35         PR fortran/31832
36         * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for
37         broken powf.
38         * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it.
39         * intrinsics/c99_functions.c: Use internal powf implementation if
40         HAVE_BROKEN_POWF is defined.
41         * configure: Rebuilt.
42         * config.h.in: Rebuilt.
43
44 2008-12-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
45
46         PR libfortran/37472
47         * io/write_float.def (output_float_FMT_G_): Modify calculation of temp
48         to avoid sensitivity to round-off.
49
50 2008-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
51
52         PR libfortran/38398
53         * io/io.h (st_parameter_dt): Add new bit to keep track of when to
54         suppress blanks for g0 formatting.
55         * io/transfer.c (formatted_transfer_scalar): Always call write_real_g0
56         for g0 formatting.
57         * io.c (write.c): Do not use ES formatting and use new bit to suppress
58         blanks.
59         * io/write_float.def (output_float): Adjust the location of setting the
60         width so that it can be adjusted when suppressing blanks.  Set number of
61         blanks to zero when dtp->u.p.g0_no_blanks is set. Do some minor code
62         clean-up and add some white space for readability.
63         
64 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
65
66         * configure: Regenerate.
67
68 2008-12-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
69
70         PR libfortran/38504
71         io/write.c (write_decimal): Skip extra sign '-' at beginning of string
72         returned by gfc_itoa.
73
74 2008-12-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
75
76         PR libfortran/38430
77         * io/transfer.c (data_transfer_init): Move constraint check for REC=
78         and STREAM access into condition for other REC= constraints to simplify.
79         Comment out this constraint to avoid breaking compatibility with 4.3
80         until later.  Added a TODO for above comment and this one.
81         Fix test for max pos.
82
83 2008-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
84
85         PR libfortran/38291
86         * io/transfer.c (data_transfer_init): Add fbuf_flush inadvertently
87         ommitted.  Add check for invalid use of REC= with ACCESS="stream".  Fix
88         comment.
89
90 2008-12-06  Adam Nemet  <anemet@caviumnetworks.com>
91
92         * runtime/main.c (store_exe_path): Don't crash if argv0 is NULL.
93
94 2008-12-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
95
96         PR libfortran/38291
97         * io/transfer.c (data_transfer_init): Add checks for POS= valid range.
98         Add check for unit opened with ACCESS="stream". Flush and seek if
99         current stream position does not match. Check ENDFILE on read.
100
101 2008-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
102
103         PR fortran/38285
104         * write_float.def (WRITE_FLOAT): Zero the float value for special case
105         only if scale_factor = 0.
106         
107 2008-11-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
108
109         PR libfortran/38234
110         * intrinsics/reshape_generic.c (reshape_internal):
111         Source can be larger than shape.
112         * m4/reshape.m4:  Likewise.
113         * generated/reshape_c10.c Regenerated.
114         * generated/reshape_c16.c Regenerated.
115         * generated/reshape_c4.c Regenerated.
116         * generated/reshape_c8.c Regenerated.
117         * generated/reshape_i16.c Regenerated.
118         * generated/reshape_i4.c Regenerated.
119         * generated/reshape_i8.c Regenerated.
120         * generated/reshape_r10.c Regenerated.
121         * generated/reshape_r16.c Regenerated.
122         * generated/reshape_r4.c Regenerated.
123         * generated/reshape_r8.c Regenerated.
124
125 2008-11-22  Danny Smith  <dannysmith@users.sourceforge.net>
126
127         * libgfortran.h (__mingw_snprintf): Declare with gnu_printf
128         format attribute.
129
130
131 2008-11-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
132
133         PR libfortran/38225
134         * intrinsics/reshape_generic.c (reshape_internal):
135         Use all dimensions of source for bounds checking.
136         * m4/reshape.m4:  Likewise.
137         * generated/reshape_c10.c Regenerated.
138         * generated/reshape_c16.c Regenerated.
139         * generated/reshape_c4.c Regenerated.
140         * generated/reshape_c8.c Regenerated.
141         * generated/reshape_i16.c Regenerated.
142         * generated/reshape_i4.c Regenerated.
143         * generated/reshape_i8.c Regenerated.
144         * generated/reshape_r10.c Regenerated.
145         * generated/reshape_r16.c Regenerated.
146         * generated/reshape_r4.c Regenerated.
147         * generated/reshape_r8.c Regenerated.
148
149 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
150
151         PR libfortran/37839
152         * io/io.h (IOPARM_INQUIRE_HAS_ROUND, IOPARM_INQUIRE_HAS_SIGN,
153         IOPARM_INQUIRE_HAS_PENDING): Adjust values.
154         (st_parameter_inquire): Reorder and fix types of round, sign and
155         pending fields.
156         (st_parameter_43, st_parameter_44): Removed.
157         (st_parameter_dt): Put back struct definition directly to u.p
158         declaration.  Change type of u.p.size_used from gfc_offset to
159         GFC_IO_INT.  Decrease back size of u.pad to 16 pointers and
160         32 ints.  Put id, pos, asynchronous, blank, decimal, delim,
161         pad, round and sign fields after the union.
162         * io/inquire.c (inquire_via_unit, inquire_via_filename): Only read
163         flags2 if it is defined.
164         * io/transfer.c (read_sf, read_block_form, write_block): Cast
165         additions to size_used to GFC_IO_INT instead of gfc_offset.
166         (data_transfer_init): Clear whole u.p struct.  Adjust
167         for moving id, pos, asynchronous, blank, decimal, delim, pad,
168         round and sign fields from u.p directly into st_parameter_dt.
169         (finalize_transfer): Don't cast size_used to GFC_IO_INT.
170         * io/file_pos.c (st_endfile): Clear whole u.p struct.
171
172 2008-11-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
173
174         PR libfortran/37472
175         * io/write_float.def (output_float_FMT_G_): Adjust conversion of
176         G format specification to F format.
177
178 2008-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
179
180         PR libfortran/38135
181         * m4/reshape.m4:  Correct bounds checking when PAD is present.
182         Treat PAD as if it were SOURCE when SOURCE is empty.
183         * intrinsics/reshape_generic.c:  Likewise.
184         * generated/reshape_c10.c Regenerated.
185         * generated/reshape_c16.c Regenerated.
186         * generated/reshape_c4.c Regenerated.
187         * generated/reshape_c8.c Regenerated.
188         * generated/reshape_i16.c Regenerated.
189         * generated/reshape_i4.c Regenerated.
190         * generated/reshape_i8.c Regenerated.
191         * generated/reshape_r10.c Regenerated.
192         * generated/reshape_r16.c Regenerated.
193         * generated/reshape_r4.c Regenerated.
194         * generated/reshape_r8.c Regenerated.
195
196 2008-11-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
197
198         PR libfortran/38097
199         * io/read.c (read_f): Initialize exponent. Fix comment. Set loop
200         conditions for BZ/BN.
201         * io/unit.c (get_internal_unit): Initialize flags.blank.
202         * io/transfer.c (data_transfer_init): Fix whitespace.
203
204 2008-11-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
205
206         PR libfortran/37294
207         * io/write.c (namelist_write_newline): Use array loop specification to
208         advance to next internal array unit record. (namelist_write): Adjust to
209         accomodate the internal array unit behavior.
210
211 2008-11-01  Dennis Wassel  <dennis.wassel@gmail.com>
212
213         PR fortran/37159
214         * intrinsics/random.c: Added comment to adapt check.c, should
215         kiss_size change.
216         Few cosmetic changes to existing comments.
217
218 2008-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
219
220         PR libfortran/37707
221         * io/list_read.c (read_character): Remove code to look ahead in namelist
222         reads to descriminate non-delimited strings from namelist objects.
223         * io/write.c (namelist_write): Delimit character strings with quote or
224         apostrophe, defaulting to quote.
225
226 2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
227
228         PR libfortran/34670
229         * intrinsics/transpose_generic.c:  Implement bounds checking.
230         * m4/transpose.m4:  Likewise.
231         * generated/transpose_c8.c: Regenerated.
232         * generated/transpose_c16.c: Regenerated.
233         * generated/transpose_r10.c: Regenerated.
234         * generated/transpose_i8.c: Regenerated.
235         * generated/transpose_c10.c: Regenerated.
236         * generated/transpose_r4.c: Regenerated.
237         * generated/transpose_c4.c: Regenerated.
238         * generated/transpose_i16.c: Regenerated.
239         * generated/transpose_i4.c: Regenerated.
240         * generated/transpose_r8.c: Regenerated.
241         * generated/transpose_r16.c: Regenerated.
242
243 2008-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org
244
245         PR libfortran/37834
246         * io/write_float.def (output_float): Emit '0.' for special case of
247         format specifier 'f0.0' and value of zero. Likewise emit '0' for 'f1.0'.
248
249 2008-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org
250
251         PR libfortran/37863
252         * io/write_float.def (WRITE_FLOAT): Round to 1.0 correctly.
253         * io/io.h (st_parameter_44): Fix id type declaration.
254
255 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
256
257         * io/file_pos.c (unformatted_backspace): Normal case is
258         GFC_CONVERT_NATIVE.
259         * io/transfer.c (read_sf):  Mark paths leading to generate_error()
260         as unlikely.
261         (readl_block_form):  Likewise.
262         (read_block_direct):  Likewise.
263         (write_block):  Likewise.
264         (write_buf):  Likewise.
265         (us_read):  Likewise.  Normal case is GFC_CONVERT_NATIVE.
266         (next_record_w_unf):  Mark paths leading to generate_error()
267         as unlikely.
268
269 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
270
271         PR libfortran/34670
272         * generated/spread_r4.c: Regenerated.
273
274 2008-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
275
276         PR libfortran/34670
277         * intrinsics/reshape_generic.c:  Add bounds checking.
278         * m4/reshape.m4:  Likewise.
279         * generated/reshape_c10.c: Regenerated.
280         * generated/reshape_c16.c: Regenerated.
281         * generated/reshape_c4.c: Regenerated.
282         * generated/reshape_c8.c: Regenerated.
283         * generated/reshape_i16.c: Regenerated.
284         * generated/reshape_i4.c: Regenerated.
285         * generated/reshape_i8.c: Regenerated.
286         * generated/reshape_r10.c: Regenerated.
287         * generated/reshape_r16.c: Regenerated.
288         * generated/reshape_r4.c: Regenerated.
289         * generated/reshape_r8.c: Regenerated.
290         * generated/spread_r4.c: Regenerated.
291
292 2008-10-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org
293
294         PR libfortran/37083
295         * io/list_read.c (next_char): Simplify EOF tests and set endfile flag.
296         (finish_list_read): Add EOF check.
297
298 2008-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
299
300         PR libfortran/37753
301         * io/transfer.c (unformatted_read):  CONVERT_NATIVE
302         is the usual case.  Check for kind==1 for non-byte-reversing
303         operation.
304         (unformatted_write):  Likewise.
305
306 2008-10-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org
307
308         PR libfortran/37707
309         * io/list_read.c (nml_get_obj_data): If the first namelist object rank
310         is greater than zero, call nml_object_read with the first object rather
311         than the sub-object.
312
313 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
314             Steve Ellcey  <sje@cup.hp.com>
315
316         * configure: Regenerate for new libtool.
317         * Makefile.in: Ditto.
318
319 2008-09-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org
320
321         PR libfortran/37498
322         * list_read.c (eat_separator): Revert previous patch and move
323         delim_status, decimal_status, and pad_status to gfc_unit.
324         (parse_real): Ditto. (read_real): Ditto.
325         * read.c (read_a): Likewise. (read_a_char4): Likewise.
326         (read_f): Likewise.
327         * inquire.c (inquire_via_unit): Add missing check for
328         IOPARM_INQUIRE_HAS_FLAGS2. (inquire_via_filename): Likewise.
329         * io.h (unit_sign_s): Move delim_status, decimal_status, and pad_status
330         to gfc_unit.
331         * transfer.c (read_sf): Ditto. (read_block_form): Ditto.
332         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto.
333         * write.c (write_default_char4): Ditto. (write_utf8_char4): Ditto.
334         (write_character): Ditto. (write_real_g0): Ditto.
335         (list_formatted_write_scalar): Ditto. (nml_write_obj): Ditto.
336         (namelist_write): Ditto.
337         * write_float.def (calculate_sign): Ditto. (output_float): Ditto.
338
339 2008-09-24  Tobias Burnus  <burnus@net-b.de>
340
341         * runtime/compile_options.c (init_compile_options):
342         Sync flags with front end.
343
344 2008-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org
345
346         PR libfortran/37498
347         * file_pos (st_endfile): Clear memory only for libfortran 4.3 private
348         area.
349         * list_read.c (eat_separator): Only access F2003 I/O parameters if
350         IOPARM_DT_HAS_F2003 bit is set. (parse_real): Ditto.
351         (read_real): Ditto.
352         * read.c (read_a): Likewise. (read_a_char4): Likewise though not
353         strictly necessary. (read_f): Likewise.
354         * io.h (unit_sign_s): New enumerator to allow duplication of
355         st_parameter structures. (IOPARM_DT_HAS_F2003): New mask bit.
356         (st_parameter_43): New structure copied from 4.3 version of 
357         st_paramater_dt private section. (st_parameter_44): New structure with
358         F2003 items added. (st_parameter_dt): Modified to create union of new
359         and old structures to allow correct memory setting for 4.3 ABI
360         compatibility. Bumped the pad size.
361         * transfer.c (read_sf): Do not use F2003 I/O memory areas unless
362         IOPARM_DT_HAS_F2003 bit has been set. (read_block_form): Ditto.
363         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto and
364         add comment, fix formatting.
365         * write.c (write_default_char4): Likewise though not strictly necessary.
366         (write_utf8_char4): Ditto. (write_character): Ditto.
367         (write_real_g0): Ditto. (list_formatted_write_scalar): Ditto.
368         (nml_write_obj): Ditto. (namelist_write): Ditto.
369         * write_float.def (calculate_sign): Eliminate warning by including all
370         cases in switch. (output_float): Output only decimal point of F2003 flag
371         is not set.
372
373 2008-09-10  Tobias Burnus  <burnus@net-b.de>
374             H. J. Lu  <hongjiu.lu@intel.com>
375
376         * mk-sik-inc.sh: Make -Wunused-variable proof.
377         * mk-srk-inc.sh: Make -Wunused-variable proof.
378
379 2008-09-10  Tobias Burnus  <burnus@net-b.de>
380
381         * mk-kinds-h.sh: Make -Wunused-variable proof.
382
383 2008-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
384
385         PR fortran/37203
386         * intrinsics/reshape_generic.c:  Add checking on
387         out-of-bounds and duplicate values of order argument.
388         * m4/reshape.m4:  Likewise.
389         * generated/reshape_c10.c: Regenerated.
390         * generated/reshape_c16.c: Regenerated.
391         * generated/reshape_c4.c: Regenerated.
392         * generated/reshape_c8.c: Regenerated.
393         * generated/reshape_i16.c: Regenerated.
394         * generated/reshape_i4.c: Regenerated.
395         * generated/reshape_i8.c: Regenerated.
396         * generated/reshape_r10.c: Regenerated.
397         * generated/reshape_r16.c: Regenerated.
398         * generated/reshape_r4.c: Regenerated.
399         * generated/reshape_r8.c: Regenerated.
400
401 2008-09-06  Tobias Burnus  <burnus@net-b.de>
402
403         * libgfortran.h (likely,unlikely): New makros.
404         (runtime_warning_at,__mingw_snprintf): Add __attribute__(format()).
405         * m4/spread.m4 (spread_'rtype_code`): Use unlikely for bounds_check.
406         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Ditto.
407         * m4/matmull.m4 (matmul_'rtype_code`): Ditto.
408         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Ditto.
409         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Ditto.
410         * m4/matmul.m4 (matmul_'rtype_code`): Ditto.
411
412         * generated/minval_r8.c: Regenerated.
413         * generated/spread_r10.c: Regenerated.
414         * generated/minloc1_16_r16.c: Regenerated.
415         * generated/maxloc1_4_r8.c: Regenerated.
416         * generated/sum_i8.c: Regenerated.
417         * generated/any_l16.c: Regenerated.
418         * generated/spread_i8.c: Regenerated.
419         * generated/maxval_i2.c: Regenerated.
420         * generated/any_l2.c: Regenerated.
421         * generated/product_r4.c: Regenerated.
422         * generated/maxloc1_8_i4.c: Regenerated.
423         * generated/maxloc0_4_r4.c: Regenerated.
424         * generated/all_l1.c: Regenerated.
425         * generated/matmul_r8.c: Regenerated.
426         * generated/product_i2.c: Regenerated.
427         * generated/minloc0_4_r16.c: Regenerated.
428         * generated/minloc0_4_i1.c: Regenerated.
429         * generated/maxloc0_4_r16.c: Regenerated.
430         * generated/maxloc0_4_i2.c: Regenerated.
431         * generated/minloc1_8_r16.c: Regenerated.
432         * generated/maxloc1_8_r16.c: Regenerated.
433         * generated/maxloc0_8_i8.c: Regenerated.
434         * generated/sum_r16.c: Regenerated.
435         * generated/sum_i1.c: Regenerated.
436         * generated/minloc1_4_r8.c: Regenerated.
437         * generated/maxloc1_16_r16.c: Regenerated.
438         * generated/minloc1_16_i4.c: Regenerated.
439         * generated/maxloc1_16_i4.c: Regenerated.
440         * generated/minloc0_16_i8.c: Regenerated.
441         * generated/spread_i1.c: Regenerated.
442         * generated/maxloc0_16_i8.c: Regenerated.
443         * generated/maxval_r16.c: Regenerated.
444         * generated/product_c10.c: Regenerated.
445         * generated/minloc1_8_i4.c: Regenerated.
446         * generated/minloc0_16_i16.c: Regenerated.
447         * generated/matmul_r16.c: Regenerated.
448         * generated/minloc0_4_r4.c: Regenerated.
449         * generated/all_l2.c: Regenerated.
450         * generated/product_c4.c: Regenerated.
451         * generated/sum_r4.c: Regenerated.
452         * generated/minloc0_4_i2.c: Regenerated.
453         * generated/spread_c10.c: Regenerated.
454         * generated/maxloc0_8_i1.c: Regenerated.
455         * generated/spread_r4.c: Regenerated.
456         * generated/minloc0_8_i8.c: Regenerated.
457         * generated/matmul_c8.c: Regenerated.
458         * generated/all_l16.c: Regenerated.
459         * generated/minloc1_16_r10.c: Regenerated.
460         * generated/sum_i2.c: Regenerated.
461         * generated/minloc0_16_i1.c: Regenerated.
462         * generated/maxloc0_16_i1.c: Regenerated.
463         * generated/maxloc1_8_r8.c: Regenerated.
464         * generated/minval_i16.c: Regenerated.
465         * generated/spread_i2.c: Regenerated.
466         * generated/maxval_i4.c: Regenerated.
467         * generated/minval_i8.c: Regenerated.
468         * generated/any_l4.c: Regenerated.
469         * generated/maxloc1_4_i8.c: Regenerated.
470         * generated/maxloc0_16_i16.c: Regenerated.
471         * generated/maxloc0_8_r4.c: Regenerated.
472         * generated/minloc1_4_i16.c: Regenerated.
473         * generated/maxloc1_4_i16.c: Regenerated.
474         * generated/minloc0_4_r10.c: Regenerated.
475         * generated/minloc0_8_i16.c: Regenerated.
476         * generated/maxloc0_4_r10.c: Regenerated.
477         * generated/maxloc0_8_i16.c: Regenerated.
478         * generated/minloc1_8_r10.c: Regenerated.
479         * generated/product_i4.c: Regenerated.
480         * generated/minloc0_16_r4.c: Regenerated.
481         * generated/sum_c16.c: Regenerated.
482         * generated/maxloc1_8_r10.c: Regenerated.
483         * generated/maxloc0_16_r4.c: Regenerated.
484         * generated/minloc1_16_r8.c: Regenerated.
485         * generated/minloc0_8_i1.c: Regenerated.
486         * generated/maxloc0_4_i4.c: Regenerated.
487         * generated/maxloc1_16_r8.c: Regenerated.
488         * generated/maxloc0_8_i2.c: Regenerated.
489         * generated/sum_r10.c: Regenerated.
490         * generated/count_4_l.c: Regenerated.
491         * generated/sum_c4.c: Regenerated.
492         * generated/count_8_l.c: Regenerated.
493         * generated/maxloc1_16_r10.c: Regenerated.
494         * generated/matmul_i8.c: Regenerated.
495         * generated/minloc0_16_i2.c: Regenerated.
496         * generated/minloc1_8_r8.c: Regenerated.
497         * generated/maxloc0_16_i2.c: Regenerated.
498         * generated/spread_c4.c: Regenerated.
499         * generated/matmul_c16.c: Regenerated.
500         * generated/maxval_r10.c: Regenerated.
501         * generated/minval_i1.c: Regenerated.
502         * generated/maxloc1_4_i1.c: Regenerated.
503         * generated/matmul_r10.c: Regenerated.
504         * generated/minloc1_4_i8.c: Regenerated.
505         * generated/minloc0_8_r4.c: Regenerated.
506         * generated/matmul_l4.c: Regenerated.
507         * generated/product_i16.c: Regenerated.
508         * generated/minloc0_16_r16.c: Regenerated.
509         * generated/all_l4.c: Regenerated.
510         * generated/minloc0_4_i4.c: Regenerated.
511         * generated/minloc0_8_i2.c: Regenerated.
512         * generated/matmul_i1.c: Regenerated.
513         * generated/minval_r4.c: Regenerated.
514         * generated/maxloc1_4_r4.c: Regenerated.
515         * generated/spread_i16.c: Regenerated.
516         * generated/sum_i4.c: Regenerated.
517         * generated/maxval_r8.c: Regenerated.
518         * generated/spread_i4.c: Regenerated.
519         * generated/minloc1_4_i1.c: Regenerated.
520         * generated/minval_r16.c: Regenerated.
521         * generated/minval_i2.c: Regenerated.
522         * generated/maxloc1_4_i2.c: Regenerated.
523         * generated/product_r8.c: Regenerated.
524         * generated/maxloc1_8_i8.c: Regenerated.
525         * generated/maxloc0_4_r8.c: Regenerated.
526         * generated/maxloc0_16_r16.c: Regenerated.
527         * generated/matmul_r4.c: Regenerated.
528         * generated/sum_c10.c: Regenerated.
529         * generated/minloc1_4_r16.c: Regenerated.
530         * generated/maxloc1_4_r16.c: Regenerated.
531         * generated/minloc0_8_r16.c: Regenerated.
532         * generated/maxloc0_8_r16.c: Regenerated.
533         * generated/count_1_l.c: Regenerated.
534         * generated/maxloc0_8_i4.c: Regenerated.
535         * generated/matmul_i2.c: Regenerated.
536         * generated/minloc1_4_r4.c: Regenerated.
537         * generated/matmul_c10.c: Regenerated.
538         * generated/minloc0_16_i4.c: Regenerated.
539         * generated/maxloc0_16_i4.c: Regenerated.
540         * generated/minloc1_16_i8.c: Regenerated.
541         * generated/maxloc1_16_i8.c: Regenerated.
542         * generated/minloc1_4_i2.c: Regenerated.
543         * generated/matmul_l16.c: Regenerated.
544         * generated/maxloc1_8_i1.c: Regenerated.
545         * generated/minloc0_16_r10.c: Regenerated.
546         * generated/minloc1_8_i8.c: Regenerated.
547         * generated/minloc0_4_r8.c: Regenerated.
548         * generated/product_r16.c: Regenerated.
549         * generated/product_c8.c: Regenerated.
550         * generated/sum_r8.c: Regenerated.
551         * generated/minloc0_8_i4.c: Regenerated.
552         * generated/matmul_c4.c: Regenerated.
553         * generated/minloc1_16_i16.c: Regenerated.
554         * generated/spread_r8.c: Regenerated.
555         * generated/maxloc1_8_r4.c: Regenerated.
556         * generated/minloc1_16_i1.c: Regenerated.
557         * generated/maxloc1_16_i1.c: Regenerated.
558         * generated/spread_r16.c: Regenerated.
559         * generated/minval_r10.c: Regenerated.
560         * generated/count_16_l.c: Regenerated.
561         * generated/minval_i4.c: Regenerated.
562         * generated/minloc1_8_i1.c: Regenerated.
563         * generated/maxloc1_4_i4.c: Regenerated.
564         * generated/maxloc1_8_i2.c: Regenerated.
565         * generated/maxval_i8.c: Regenerated.
566         * generated/any_l8.c: Regenerated.
567         * generated/maxloc0_16_r10.c: Regenerated.
568         * generated/minloc0_4_i16.c: Regenerated.
569         * generated/maxloc0_8_r8.c: Regenerated.
570         * generated/maxloc0_4_i16.c: Regenerated.
571         * generated/minloc1_4_r10.c: Regenerated.
572         * generated/minloc1_8_i16.c: Regenerated.
573         * generated/maxloc1_4_r10.c: Regenerated.
574         * generated/maxloc1_8_i16.c: Regenerated.
575         * generated/minloc0_8_r10.c: Regenerated.
576         * generated/maxloc0_8_r10.c: Regenerated.
577         * generated/minloc1_16_r4.c: Regenerated.
578         * generated/maxloc1_16_r4.c: Regenerated.
579         * generated/minloc0_16_r8.c: Regenerated.
580         * generated/product_i8.c: Regenerated.
581         * generated/maxloc0_16_r8.c: Regenerated.
582         * generated/sum_i16.c: Regenerated.
583         * generated/count_2_l.c: Regenerated.
584         * generated/maxloc0_4_i8.c: Regenerated.
585         * generated/maxloc1_16_i16.c: Regenerated.
586         * generated/matmul_i4.c: Regenerated.
587         * generated/minloc1_8_r4.c: Regenerated.
588         * generated/sum_c8.c: Regenerated.
589         * generated/minloc1_16_i2.c: Regenerated.
590         * generated/maxloc1_16_i2.c: Regenerated.
591         * generated/maxval_i16.c: Regenerated.
592         * generated/spread_c8.c: Regenerated.
593         * generated/matmul_i16.c: Regenerated.
594         * generated/minloc1_4_i4.c: Regenerated.
595         * generated/maxval_i1.c: Regenerated.
596         * generated/minloc1_8_i2.c: Regenerated.
597         * generated/any_l1.c: Regenerated.
598         * generated/product_c16.c: Regenerated.
599         * generated/minloc0_8_r8.c: Regenerated.
600         * generated/matmul_l8.c: Regenerated.
601         * generated/product_r10.c: Regenerated.
602         * generated/product_i1.c: Regenerated.
603         * generated/all_l8.c: Regenerated.
604         * generated/maxloc0_4_i1.c: Regenerated.
605         * generated/minloc0_4_i8.c: Regenerated.
606         * generated/spread_c16.c: Regenerated.
607         * generated/maxval_r4.c: Regenerated.
608
609 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
610
611         PR libfortran/37301
612         PR libfortran/37228
613         * io/io.h (write_real_g0): Declare new function to handle g0.d format.
614         * io/transfer.c (formatted_transfer_scalar): Use new function.
615         * io/format.c (parse_format_list): Enable g0.d.
616         * io/write.c (write_a_char4): Delete unused var.
617         (set_fnode_default): New function to set the default fnode w, d, and e
618         factored from write_real. (write_real): Use new factored function.
619         (write_real_g0): New function that sets d to that passed by g0.d format
620         specifier and set format to ES.  Default values for w and e are used
621         from the new function, set_fnode_default.
622
623 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
624
625         * runtime/error.c: Fix cast for printf.
626
627 2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
628
629         PR libfortran/36895
630         * io/write.c (namelist_write_newline): New function to correctly mark
631         next records in both external and internal units.
632         (nml_write_obj): Use new function.
633         (namelist_write: Use new function.
634
635 2008-08-19  Tobias Burnus  <burnus@net-b.de>
636
637         PR libfortran/35863
638         * io/write.c (write_a_char4): Add missing variable declaration
639         in HAVE_CRLF block.
640
641 2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
642
643         PR libfortran/35863
644         * intrinsics/selected_char_kind.c: Enable iso_10646.
645         * io/read.c (typedef uchar): New type.
646         (read_utf8): New function to read a single UTF-8 encoded character.
647         (read_utf8_char1): New function to read UTF-8 into a KIND=1 string.
648         (read_default_char1): New functio to read default into KIND=1 string.
649         (read_utf8_char4): New function to read UTF-8 into a KIND=4 string.
650         (read_default_char4): New function to read UTF-8 into a KIND=4 string.
651         (read_a): Modify to use the new functions.
652         (read_a_char4): Modify to use the new functions.
653         * io/write.c (error.h): Add include. (typedef uchar): New type.
654         (write_default_char4): New function to default write KIND=4 string.
655         (write_utf8_char4): New function to UTF-8 write KIND=4 string.
656         (write_a_char4): Modify to use new functions.
657         (write_character): Modify to use new functions.
658
659 2008-08-14  H.J. Lu  <hongjiu.lu@intel.com>
660
661         PR libfortran/37123
662         * intrinsics/cshift0.c (cshift0): Fix 2 typos.
663
664 2008-08-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
665
666         PR libfortran/36886
667         * Makefile.am:  Added $(i_cshift0_c).
668         Added $(i_cshift0_c) to gfor_built_specific_src.
669         Add rule to build from cshift0.m4.
670         * Makefile.in:  Regenerated.
671         * libgfortran.h:  Addedd prototypes for cshift0_i1,
672         cshift0_i2, cshift0_i4, cshift0_i8, cshift0_i16,
673         cshift0_r4, cshift0_r8, cshift0_r10, cshift0_r16,
674         cshift0_c4, cshift0_c8, cshift0_c10, cshift0_c16.
675         Define Macros GFC_UNALIGNED_C4 and GFC_UNALIGNED_C8.
676         * intrinsics/cshift0.c:  Remove helper functions for
677         the innter shift loop.
678         (cshift0):  Call specific functions depending on type
679         of array argument.  Only call specific functions for
680         correct alignment for other types.
681         * m4/cshift0.m4:  New file.
682         * generated/cshift0_i1.c:  New file.
683         * generated/cshift0_i2.c:  New file.
684         * generated/cshift0_i4.c:  New file.
685         * generated/cshift0_i8:.c  New file.
686         * generated/cshift0_i16.c:  New file.
687         * generated/cshift0_r4.c:  New file.
688         * generated/cshift0_r8.c:  New file.
689         * generated/cshift0_r10.c:  New file.
690         * generated/cshift0_r16.c:  New file.
691         * generated/cshift0_c4.c:  New file.
692         * generated/cshift0_c8.c:  New file.
693         * generated/cshift0_c10.c:  New file.
694         * generated/cshift0_c16.c:  New file.
695
696 2008-07-27  Tobias Burnus  <burnus@net-b.de>
697
698         PR fortran/36132
699         PR fortran/29952
700         PR fortran/36909
701         * runtime/error.c: New function runtime_error_at.
702         * gfortran.map: Ditto.
703         * libgfortran.h: Ditto.
704
705 2008-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
706
707         PR fortran/36582
708         * io/list_read.c: If variable rank is zero, do not adjust the found
709         namelist object pointer.
710
711 2008-07-22  Daniel Kraft  <d@domob.eu>
712
713         PR fortran/29835
714         * io/format.c (struct format_data):  New member error_element.
715         (unexpected_element):  Added '%c' to message.
716         (next_char):  Keep track of last parsed character in fmt->error_element.
717         (format_error):  If the message is unexpected_element, output the
718         offending character, too.
719
720 2008-07-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
721
722         PR libfortran/36890
723         * io/file_pos.c:  Declare READ_CHUNK as signed to avoid
724         signed/unsigned comparison warning in formatted_backspace.
725
726 2008-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
727
728         PR libfortran/36773
729         * intrinsics/cshift0.c (cshift0):  Return early if size of array
730         is zero.
731         * intrinsics/eoshift0.c (eoshift0):  Return early if size of
732         return array is zero.
733         * intrinsics/eoshift2.c (eoshift2):  Likewise.
734         * m4/eoshift1.m4 (eoshift1):  Return early if size of array
735         is zero.
736         * m4/eoshift3.m4 (eoshift3):  Likewise.
737         * m4/eoshift2.m4 (eoshift2):  Return early if size of return
738         array is zero.
739         * m4/eoshift4.m4 (eoshift2):  Return early if size of return
740         array is zero.
741         * generated/cshift1_16.c: Regenerated.
742         * generated/cshift1_4.c: Regenerated.
743         * generated/cshift1_8.c: Regenerated.
744         * generated/eoshift1_16.c: Regenerated.
745         * generated/eoshift1_4.c: Regenerated.
746         * generated/eoshift1_8.c: Regenerated.
747         * generated/eoshift3_16.c: Regenerated.
748         * generated/eoshift3_4.c: Regenerated.
749         * generated/eoshift3_8.c: Regenerated.
750
751 2008-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
752
753         PR fortran/36857
754         * io/write_float.def: Comment out locale dependent code and fix general
755         comments.
756         
757 2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
758
759         PR fortran/36341
760         PR fortran/34670
761         * m4/matmul.m4:  Add bounds checking.
762         * m4/matmull.m4:  Likewise.
763         * generated/matmul_c10.c: Regenerated.
764         * generated/matmul_c16.c: Regenerated.
765         * generated/matmul_c4.c: Regenerated.
766         * generated/matmul_c8.c: Regenerated.
767         * generated/matmul_i1.c: Regenerated.
768         * generated/matmul_i16.c: Regenerated.
769         * generated/matmul_i2.c: Regenerated.
770         * generated/matmul_i4.c: Regenerated.
771         * generated/matmul_i8.c: Regenerated.
772         * generated/matmul_l16.c: Regenerated.
773         * generated/matmul_l4.c: Regenerated.
774         * generated/matmul_l8.c: Regenerated.
775         * generated/matmul_r10.c: Regenerated.
776         * generated/matmul_r16.c: Regenerated.
777         * generated/matmul_r4.c: Regenerated.
778         * generated/matmul_r8.c: Regenerated.
779
780 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
781
782         * acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Fix configure cache
783         variable name.
784         * configure: Regenerate.
785
786 2008-07-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
787
788         PR fortran/36676
789         * io/list_read.c (find_nml_name): Use eat_separator instead of eat_line.
790         
791 2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
792
793         PR fortran/36657
794         * io/list_read.c (read_character): Check for '!' along with separators.
795         (find_nml_name): Likewise and eat the comment if found.
796
797 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
798
799         * configure: Regenerate.
800
801 2008-06-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
802
803         PR fortran/36546
804         * io/list_read.c (eat_separator): Add tab character to condition
805         for looping past whitespace.
806
807 2008-06-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
808
809         PR fortran/36515
810         * libgfortran.h (compile_options_t): Add int range_check to structure.
811         * runtime/compile_options.c (set_options): Add range_check option.
812         (init_compile_options): Likewise.
813         *io/read.c (read_decimal): Change overflow checks to include
814         range_check.
815         
816 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
817
818         PR fortran/36538
819         * io/list_read.c (namelist_read): Add eat_separator to eliminate leading
820         tabs.
821
822 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
823
824         PR fortran/35863
825         * libgfortran.h: Change l8_to_l4_offset to big_endian and add endian_off.
826         * runtime/main.c: Fix error in comment. Change l8_to_l4_offset to
827         big_endian. (determine_endianness): Add endian_off and set its value
828         according to big_endian.
829         * gfortran.map: Add symbol for new _gfortran_transfer_character_wide.
830         * io/io.h: Add prototype declarations for new functions.
831         * io/list_read.c (list_formatted_read_scalar): Modify to handle kind=4.
832         (list_formatted_read): Calculate stride based on kind for character type
833         and use it when calling list_formatted_read_scalar.
834         * io/inquire.c (inquire_via_unit): Change l8_to_l4_offset to big_endian.
835         * io/open.c (st_open): Change l8_to_l4_offset to big_endian.
836         * io/read.c (read_a_char4): New function to handle formatted read.
837         * io/write.c: Define GFC_CHAR4(x) to improve readability of code.
838         (write_a_char4): New function to handle formatted write.
839         (write_character): Modify to accept the kind parameter and adjust for
840         endianess of the machine. (list_formatted_write): Calculate the stride
841         resulting from the kind and adjust the list_formatted_write_scalar call
842         accordingly. (nml_write_obj): Adjust calls to write_character.
843         (namelist_write): Likewise.
844         * io/transfer.c (formatted_transfer_scaler): Rename 'len' argument to
845         'kind' argument to better describe what it is. Add calls to new
846         functions for kind == 4. (formatted_transfer): Modify to handle the case
847         of type character and kind equals 4 to pass in the kind to the transfer
848         routines. (transfer_character_wide): Add this new function.
849         (transfer_array): Don't set kind to the character string length. Adjust
850         strides bases on character kind.
851         (unformatted_read): Adjust size based on kind for character types.
852         (unformatted_write): Likewise. (data_transfer_init): Change
853         l8_to_l4_offset to big_endian.
854         io/fbuf.c (fbuf_seek): Add cast to eliminate warning.
855
856 2008-06-13  Tobias Burnus  <burnus@net-b.de>
857
858         * configure.ac (AM_CFLAGS): Remove -Werror again.
859         * configure: Regenerate.
860
861 2008-06-13  Tobias Burnus  <burnus@net-b.de>
862
863         PR libgfortran/36518
864         * configure.ac (AM_CFLAGS): Add -Werror.
865         * configure: Regenerate.
866         * m4/ifunction_logical.m4: Cast "n" to "(int)".
867         * generated/any_l16.c: Regenerate.
868         * generated/any_l2.c: Regenerate.
869         * generated/all_l1.c: Regenerate.
870         * generated/all_l2.c: Regenerate.
871         * generated/all_l16.c: Regenerate.
872         * generated/any_l4.c: Regenerate.
873         * generated/count_4_l.c: Regenerate.
874         * generated/count_8_l.c: Regenerate.
875         * generated/all_l4.c: Regenerate.
876         * generated/count_1_l.c: Regenerate.
877         * generated/count_16_l.c: Regenerate.
878         * generated/any_l8.c: Regenerate.
879         * generated/count_2_l.c: Regenerate.
880         * generated/any_l1.c: Regenerate.
881         * generated/all_l8.c: Regenerate.
882
883 2008-06-13  Tobias Burnus  <burnus@net-b.de>
884
885         PR fortran/36495
886         * configure.ac (AM_FCFLAGS): Add "-Werror -fimplicit-none".
887         * configure: (generated) ditto.
888         * intrinsics/dprod_r8.f90: Add "implicit none".
889
890 2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
891
892         PR libfortran/36420
893         PR libfortran/36421
894         PR libfortran/36422
895         * io/io.h: Add prototype for write_real.
896         * io/transfer.c (formatted_transfer_scalar): For FMT_G and width zero,
897         use write_real.
898         * io/format.c: Add zero width error message. (parse_format_list): Use
899         error message for FMT_A if followed by FMT_ZERO. Use zero width error
900         message for FMT_G if mode is READ or if -std=f95 or f2003. (fmormat0):
901         Fix typo in comment.
902         * io/write.c(write_a): Set wlen to len if FMT_G and length is zero.
903         (write_l): Add wlen variable and use it if FMT_G and width is zero.
904         (write_decimal): If FMT_G, set m to -1 to flag processor dependent
905         formatting. (write_real): Remove static declaration.
906
907 2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
908
909         PR fortran/36319
910         * intrinsics/string_intrinsics_inc.c (string_index): Return
911         correct value for zero-length substring.
912         * intrinsics/cshift0.c: Add _char4 variant.
913         * intrinsics/eoshift0.c (eoshift0): Allow filler to be a pattern
914         wider than a single byte. Add _char4 variant and use above
915         functionality.
916         * intrinsics/eoshift2.c (eoshift2): Likewise.
917         * m4/eoshift1.m4: Likewise.
918         * m4/eoshift3.m4: Likewise.
919         * m4/cshift1.m4: Add _char4 variants.
920         * gfortran.map (GFORTRAN_1.1): Add _gfortran_cshift0_1_char4,
921         _gfortran_cshift0_2_char4, _gfortran_cshift0_4_char4,
922         _gfortran_cshift0_8_char4, _gfortran_cshift1_16_char4,
923         _gfortran_cshift1_4_char4, _gfortran_cshift1_8_char4,
924         _gfortran_eoshift0_1_char4, _gfortran_eoshift0_2_char4,
925         _gfortran_eoshift0_4_char4, _gfortran_eoshift0_8_char4,
926         _gfortran_eoshift1_16_char4, _gfortran_eoshift1_4_char4,
927         _gfortran_eoshift1_8_char4, _gfortran_eoshift2_1_char4,
928         _gfortran_eoshift2_2_char4, _gfortran_eoshift2_4_char4,
929         _gfortran_eoshift2_8_char4, _gfortran_eoshift3_16_char4,
930         _gfortran_eoshift3_4_char4 and _gfortran_eoshift3_8_char4.
931         * generated/eoshift3_4.c: Regenerate.
932         * generated/eoshift1_8.c: Regenerate.
933         * generated/eoshift1_16.c: Regenerate.
934         * generated/cshift1_4.c: Regenerate.
935         * generated/eoshift1_4.c: Regenerate.
936         * generated/eoshift3_8.c: Regenerate.
937         * generated/eoshift3_16.c: Regenerate.
938         * generated/cshift1_8.c: Regenerate.
939         * generated/cshift1_16.c: Regenerate.
940
941 2008-05-25  Tobias Burnus  <burnus@net-b.de>
942
943         PR fortran/32600
944         * intrinsics/iso_c_binding.c (c_f_procpointer): Remove.
945         * intrinsics/iso_c_binding.h (c_f_procpointer): Remove.
946         * gfortran.map (c_f_procpointer): Remove.
947
948 2008-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
949
950         PR libgfortran/36302
951         * gfortran.map (GFORTRAN_1.1): Add _gfortran_eoshift0_16,
952         _gfortran_eoshift0_16_char, _gfortran_eoshift2_16,
953         _gfortran_eoshift2_16_char,_gfortran_cshift0_16,
954         _gfortran_cshift0_16_char.  Sort alphabetically.
955         * intrinsics/eoshift0.c:  Add function for kind=16 integer.
956         * intrinsics/eoshift2.c:  Likewise.
957         * intrinsics/cshift0.c:  Likewise.
958
959 2008-05-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
960
961         * m4/in_pack.m4 (internal_pack_'rtype_code`):  Destination
962         pointer is restrict.
963         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
964         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
965         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
966         (spread_scalar_'rtype_code`): Likewise.
967         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
968         * m4/eoshift1.m4 (eoshift1):  Likewise.
969         * m4/eoshift3.m4 (eoshift3):  Likewise.
970         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):  Likewise.
971         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
972         (unpack1_'rtype_code`):  Likewise.
973         * intrinsics/pack_generic.c (pack_generic.c):  Likewise.
974         * intrinsics/unpack_generic.c (unpack_internal):  Likewise.
975         * intrinsics/eoshift0.c (eoshift0):  Likewise.
976         * intrinsics/eoshift2.c (eoshift2):  Likewise.
977         * intrinsics/reshape_generic.c (reshape_internal):  Likewise.
978         * intrinsics/reshape_packed.c (reshape_packed):  Likewise.
979         * generated/eoshift1_16.c: Regenerated.
980         * generated/eoshift1_4.c: Regenerated.
981         * generated/eoshift1_8.c: Regenerated.
982         * generated/eoshift3_16.c: Regenerated.
983         * generated/eoshift3_4.c: Regenerated.
984         * generated/eoshift3_8.c: Regenerated.
985         * generated/in_pack_c10.c: Regenerated.
986         * generated/in_pack_c16.c: Regenerated.
987         * generated/in_pack_c4.c: Regenerated.
988         * generated/in_pack_c8.c: Regenerated.
989         * generated/in_pack_i1.c: Regenerated.
990         * generated/in_pack_i16.c: Regenerated.
991         * generated/in_pack_i2.c: Regenerated.
992         * generated/in_pack_i4.c: Regenerated.
993         * generated/in_pack_i8.c: Regenerated.
994         * generated/in_pack_r10.c: Regenerated.
995         * generated/in_pack_r16.c: Regenerated.
996         * generated/in_pack_r4.c: Regenerated.
997         * generated/in_pack_r8.c: Regenerated.
998         * generated/in_unpack_c10.c: Regenerated.
999         * generated/in_unpack_c16.c: Regenerated.
1000         * generated/in_unpack_c4.c: Regenerated.
1001         * generated/in_unpack_c8.c: Regenerated.
1002         * generated/in_unpack_i1.c: Regenerated.
1003         * generated/in_unpack_i16.c: Regenerated.
1004         * generated/in_unpack_i2.c: Regenerated.
1005         * generated/in_unpack_i4.c: Regenerated.
1006         * generated/in_unpack_i8.c: Regenerated.
1007         * generated/in_unpack_r10.c: Regenerated.
1008         * generated/in_unpack_r16.c: Regenerated.
1009         * generated/in_unpack_r4.c: Regenerated.
1010         * generated/in_unpack_r8.c: Regenerated.
1011         * generated/maxloc0_16_i1.c: Regenerated.
1012         * generated/maxloc0_16_i16.c: Regenerated.
1013         * generated/maxloc0_16_i2.c: Regenerated.
1014         * generated/maxloc0_16_i4.c: Regenerated.
1015         * generated/maxloc0_16_i8.c: Regenerated.
1016         * generated/maxloc0_16_r10.c: Regenerated.
1017         * generated/maxloc0_16_r16.c: Regenerated.
1018         * generated/maxloc0_16_r4.c: Regenerated.
1019         * generated/maxloc0_16_r8.c: Regenerated.
1020         * generated/maxloc0_4_i1.c: Regenerated.
1021         * generated/maxloc0_4_i16.c: Regenerated.
1022         * generated/maxloc0_4_i2.c: Regenerated.
1023         * generated/maxloc0_4_i4.c: Regenerated.
1024         * generated/maxloc0_4_i8.c: Regenerated.
1025         * generated/maxloc0_4_r10.c: Regenerated.
1026         * generated/maxloc0_4_r16.c: Regenerated.
1027         * generated/maxloc0_4_r4.c: Regenerated.
1028         * generated/maxloc0_4_r8.c: Regenerated.
1029         * generated/maxloc0_8_i1.c: Regenerated.
1030         * generated/maxloc0_8_i16.c: Regenerated.
1031         * generated/maxloc0_8_i2.c: Regenerated.
1032         * generated/maxloc0_8_i4.c: Regenerated.
1033         * generated/maxloc0_8_i8.c: Regenerated.
1034         * generated/maxloc0_8_r10.c: Regenerated.
1035         * generated/maxloc0_8_r16.c: Regenerated.
1036         * generated/maxloc0_8_r4.c: Regenerated.
1037         * generated/maxloc0_8_r8.c: Regenerated.
1038         * generated/minloc0_16_i1.c: Regenerated.
1039         * generated/minloc0_16_i16.c: Regenerated.
1040         * generated/minloc0_16_i2.c: Regenerated.
1041         * generated/minloc0_16_i4.c: Regenerated.
1042         * generated/minloc0_16_i8.c: Regenerated.
1043         * generated/minloc0_16_r10.c: Regenerated.
1044         * generated/minloc0_16_r16.c: Regenerated.
1045         * generated/minloc0_16_r4.c: Regenerated.
1046         * generated/minloc0_16_r8.c: Regenerated.
1047         * generated/minloc0_4_i1.c: Regenerated.
1048         * generated/minloc0_4_i16.c: Regenerated.
1049         * generated/minloc0_4_i2.c: Regenerated.
1050         * generated/minloc0_4_i4.c: Regenerated.
1051         * generated/minloc0_4_i8.c: Regenerated.
1052         * generated/minloc0_4_r10.c: Regenerated.
1053         * generated/minloc0_4_r16.c: Regenerated.
1054         * generated/minloc0_4_r4.c: Regenerated.
1055         * generated/minloc0_4_r8.c: Regenerated.
1056         * generated/minloc0_8_i1.c: Regenerated.
1057         * generated/minloc0_8_i16.c: Regenerated.
1058         * generated/minloc0_8_i2.c: Regenerated.
1059         * generated/minloc0_8_i4.c: Regenerated.
1060         * generated/minloc0_8_i8.c: Regenerated.
1061         * generated/minloc0_8_r10.c: Regenerated.
1062         * generated/minloc0_8_r16.c: Regenerated.
1063         * generated/minloc0_8_r4.c: Regenerated.
1064         * generated/minloc0_8_r8.c: Regenerated.
1065         * generated/pack_c10.c: Regenerated.
1066         * generated/pack_c16.c: Regenerated.
1067         * generated/pack_c4.c: Regenerated.
1068         * generated/pack_c8.c: Regenerated.
1069         * generated/pack_i1.c: Regenerated.
1070         * generated/pack_i16.c: Regenerated.
1071         * generated/pack_i2.c: Regenerated.
1072         * generated/pack_i4.c: Regenerated.
1073         * generated/pack_i8.c: Regenerated.
1074         * generated/pack_r10.c: Regenerated.
1075         * generated/pack_r16.c: Regenerated.
1076         * generated/pack_r4.c: Regenerated.
1077         * generated/pack_r8.c: Regenerated.
1078         * generated/spread_c10.c: Regenerated.
1079         * generated/spread_c16.c: Regenerated.
1080         * generated/spread_c4.c: Regenerated.
1081         * generated/spread_c8.c: Regenerated.
1082         * generated/spread_i1.c: Regenerated.
1083         * generated/spread_i16.c: Regenerated.
1084         * generated/spread_i2.c: Regenerated.
1085         * generated/spread_i4.c: Regenerated.
1086         * generated/spread_i8.c: Regenerated.
1087         * generated/spread_r10.c: Regenerated.
1088         * generated/spread_r16.c: Regenerated.
1089         * generated/spread_r4.c: Regenerated.
1090         * generated/spread_r8.c: Regenerated.
1091         * generated/transpose_c10.c: Regenerated.
1092         * generated/transpose_c16.c: Regenerated.
1093         * generated/transpose_c4.c: Regenerated.
1094         * generated/transpose_c8.c: Regenerated.
1095         * generated/transpose_i16.c: Regenerated.
1096         * generated/transpose_i4.c: Regenerated.
1097         * generated/transpose_i8.c: Regenerated.
1098         * generated/transpose_r10.c: Regenerated.
1099         * generated/transpose_r16.c: Regenerated.
1100         * generated/transpose_r4.c: Regenerated.
1101         * generated/transpose_r8.c: Regenerated.
1102         * generated/unpack_c10.c: Regenerated.
1103         * generated/unpack_c16.c: Regenerated.
1104         * generated/unpack_c4.c: Regenerated.
1105         * generated/unpack_c8.c: Regenerated.
1106         * generated/unpack_i1.c: Regenerated.
1107         * generated/unpack_i16.c: Regenerated.
1108         * generated/unpack_i2.c: Regenerated.
1109         * generated/unpack_i4.c: Regenerated.
1110         * generated/unpack_i8.c: Regenerated.
1111         * generated/unpack_r10.c: Regenerated.
1112         * generated/unpack_r16.c: Regenerated.
1113         * generated/unpack_r4.c: Regenerated.
1114         * generated/unpack_r8.c: Regenerated.
1115
1116 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1117
1118         * runtime/select.c: Moved content to select_inc.c. Include it. 
1119         Add macros for different character types.
1120         * runtime/select_inc.c: New file.
1121         * runtime/convert_char.c: New file.
1122         * intrinsics/pack_generic.c (pack_char4, pack_s_char4): New
1123         functions.
1124         * intrinsics/transpose_generic.c (transpose_char4): New function.
1125         * intrinsics/spread_generic.c (spread_char4, spread_char4_scalar):
1126         New functions.
1127         * intrinsics/unpack_generic.c (unpack1_char4, unpack0_char4): 
1128         New functions.
1129         * intrinsics/reshape_generic.c (reshape_char): Use
1130         gfc_charlen_type as type for length variables.
1131         (reshape_char4): New function.
1132         * gfortran.map (GFORTRAN_1.1): Add _gfortran_select_string_char4,
1133         _gfortran_convert_char1_to_char4, _gfortran_convert_char4_to_char1,
1134         _gfortran_transpose_char4, _gfortran_spread_char4,
1135         _gfortran_spread_char4_scalar, _gfortran_reshape_char4,
1136         _gfortran_pack_char4, _gfortran_pack_s_char4,
1137         _gfortran_unpack0_char4 and _gfortran_unpack1_char4.
1138         * Makefile.am: Add runtime/convert_char.c.
1139         * Makefile.in: Regenerate.
1140
1141 2008-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
1142
1143         * io/list_read.c (list_formatted_read_scalar):  Declare
1144         type as volatile to shut up compiler warning.
1145
1146 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
1147
1148         PR libfortran/25561
1149         * io/io.h (struct fbuf): Change pointer to position offset.
1150         * io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
1151         changes.
1152         (fbuf_reset): ptr=>pos changes.
1153         (fbuf_alloc): If the request doesn't fit, don't waste memory by
1154         keeping flushed bytes. ptr=>pos changes.
1155         (fbuf_flush): ptr=>pos changes.
1156         (fbuf_seek): Don't seek past the left tab limit, don't update active
1157         byte count.
1158         * io/open.c (new_unit): If RECL has been specified, used that as
1159         initial buffer size.
1160
1161 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
1162
1163         PR libfortran/35632
1164         * io/open.c (new_unit): Set stream position to correct value.
1165
1166 2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
1167
1168         PR libfortran/25561
1169         * Makefile.am: Add fbuf.c to gfor_io_src.
1170         * Makefile.in: Regenerate.
1171         * io/io.h (read_block): Remove.
1172         (struct stream): Remove alloc_r_at function pointer.
1173         (salloc_r): Remove.
1174         (salloc_r_at): Remove.
1175         (salloc_w_at): Remove.
1176         (salloc_w): Remove offset argument.
1177         (struct fbuf): New struct for format buffer.
1178         (struct gfc_unit): Add fbuf.
1179         (read_block_form): New prototype.
1180         (fbuf_init): Likewise.
1181         (fbuf_destroy): Likewise.
1182         (fbuf_reset): Likewise.
1183         (fbuf_alloc): Likewise.
1184         (fbuf_flush): Likewise.
1185         (fbuf_seek): Likewise.
1186         * io/file_pos.c (formatted_backspace): Change to use sread.
1187         (unformatted_backspace): Likewise.
1188         (st_backspace): Flush format buffer.
1189         (st_rewind): Likewise.
1190         * io/list_read.c (next_char): Likewise.
1191         (nml_query): Tidying, flush format buffer.
1192         * io/open.c (new_unit): Init format buffer.
1193         * io/read.c (read_l): Change to use read_block_form.
1194         (read_a): Likewise.
1195         (read_decimal): Likewise.
1196         (read_radix): Likewise.
1197         (read_f): Likewise.
1198         (read_x): Empty reads also for stream I/O.
1199         * io/transfer.c (read_sf): Change to use sread.
1200         (read_block): Rename to read_block_form, change prototype, use sread.
1201         (read_block_direct): Don't seek stream files.
1202         (write_block): Change to use fbuf if external file, don't seek stream
1203         files.
1204         (write_buf): Don't seek stream files.
1205         (formatted_transfer_scalar): Use fbuf for external files.
1206         (us_read): Change to use sread.
1207         (pre_position): Do nothing for stream I/O.
1208         (data_transfer_init): Flush fbuf when switching from write to read, if
1209         POS is specified, seek stream file to correct offset.
1210         (skip_record): Change to use sread.
1211         (min_off): New function.
1212         (next_record_r): Change to use sread.
1213         (next_record_w): Change to use sset/sseek, flush fbuf.
1214         (finalize_transfer): Flush fbuf.
1215         * io/unit.c (init_units): Init fbuf for stdout, stderr.
1216         (close_unit_1): Destroy fbuf.
1217         (finish_last_advance_record): Flush fbuf, no need to seek.
1218         * io/unix.c (fd_alloc_r_at): Remove unused where argument.
1219         (fd_alloc_w_at): Likewise.
1220         (fd_read): Remove third argument to fd_alloc_r_at.
1221         (fd_write): Remove third argument to fd_alloc_w_at.
1222         (fd_sset): Likewise.
1223         (fd_open): Don't set alloc_r_at.
1224         (mem_alloc_r_at): Remove unused where argument.
1225         (mem_alloc_w_at): Likewise.
1226         (mem_read): Don't incorrectly return previous errno, remove unused
1227         third argument to alloc function.
1228         (mem_write): Likewise.
1229         (mem_set): Likewise.
1230         (open_internal): Don't set alloc_r_at pointer.
1231         * io/fbuf.c: New file.
1232
1233 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1234
1235         * libgfortran.h (gfc_char4_t): New type.
1236         (GFC_SIZE_OF_CHAR_KIND): New macro.
1237         (compare_string): Adjust prototype.
1238         (compare_string_char4): New prototype.
1239         * gfortran.map (GFORTRAN_1.1): Add _gfortran_adjustl_char4,
1240         _gfortran_adjustr_char4, _gfortran_compare_string_char4,
1241         _gfortran_concat_string_char4, _gfortran_string_index_char4,
1242         _gfortran_string_len_trim_char4, _gfortran_string_minmax_char4,
1243         _gfortran_string_scan_char4, _gfortran_string_trim_char4 and
1244         _gfortran_string_verify_char4.
1245         * intrinsics/string_intrinsics_inc.c: New file from content of
1246         string_intrinsics.c with types replaced by macros.
1247         * intrinsics/string_intrinsics.c: Move content to
1248         string_intrinsics_inc.c.
1249
1250 2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1251
1252         PR libfortran/36202
1253         * io/list_read (eat_separator): Handle the CR-LF case correctly.
1254
1255 2008-05-09  Julian Brown  <julian@codesourcery.com>
1256
1257         * Makefile.am (LTLDFLAGS): New.
1258         (libgfortran_la_LDFLAGS): Use above.
1259         * Makefile.in: Regenerate.
1260
1261 2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1262
1263         PR libfortran/36131
1264         * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
1265         (next_record_w): Likewise.
1266
1267 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1268
1269         PR libfortran/35995
1270         * m4/ifunction_logical.m4:  If the extent of "array"
1271         is less than zero, set it to zero.  Use an explicit
1272         flag for breaking out of the main loop to avoid, because
1273         the data pointer for "array" may be NULL for an empty
1274         array.
1275         * m4/ifunction.m4:  Likewise.
1276         * generated/all_l1.c: Regenerated.
1277         * generated/all_l16.c: Regenerated.
1278         * generated/all_l2.c: Regenerated.
1279         * generated/all_l4.c: Regenerated.
1280         * generated/all_l8.c: Regenerated.
1281         * generated/any_l1.c: Regenerated.
1282         * generated/any_l16.c: Regenerated.
1283         * generated/any_l2.c: Regenerated.
1284         * generated/any_l4.c: Regenerated.
1285         * generated/any_l8.c: Regenerated.
1286         * generated/count_16_l.c: Regenerated.
1287         * generated/count_1_l.c: Regenerated.
1288         * generated/count_2_l.c: Regenerated.
1289         * generated/count_4_l.c: Regenerated.
1290         * generated/count_8_l.c: Regenerated.
1291         * generated/maxloc1_16_i1.c: Regenerated.
1292         * generated/maxloc1_16_i16.c: Regenerated.
1293         * generated/maxloc1_16_i2.c: Regenerated.
1294         * generated/maxloc1_16_i4.c: Regenerated.
1295         * generated/maxloc1_16_i8.c: Regenerated.
1296         * generated/maxloc1_16_r10.c: Regenerated.
1297         * generated/maxloc1_16_r16.c: Regenerated.
1298         * generated/maxloc1_16_r4.c: Regenerated.
1299         * generated/maxloc1_16_r8.c: Regenerated.
1300         * generated/maxloc1_4_i1.c: Regenerated.
1301         * generated/maxloc1_4_i16.c: Regenerated.
1302         * generated/maxloc1_4_i2.c: Regenerated.
1303         * generated/maxloc1_4_i4.c: Regenerated.
1304         * generated/maxloc1_4_i8.c: Regenerated.
1305         * generated/maxloc1_4_r10.c: Regenerated.
1306         * generated/maxloc1_4_r16.c: Regenerated.
1307         * generated/maxloc1_4_r4.c: Regenerated.
1308         * generated/maxloc1_4_r8.c: Regenerated.
1309         * generated/maxloc1_8_i1.c: Regenerated.
1310         * generated/maxloc1_8_i16.c: Regenerated.
1311         * generated/maxloc1_8_i2.c: Regenerated.
1312         * generated/maxloc1_8_i4.c: Regenerated.
1313         * generated/maxloc1_8_i8.c: Regenerated.
1314         * generated/maxloc1_8_r10.c: Regenerated.
1315         * generated/maxloc1_8_r16.c: Regenerated.
1316         * generated/maxloc1_8_r4.c: Regenerated.
1317         * generated/maxloc1_8_r8.c: Regenerated.
1318         * generated/maxval_i1.c: Regenerated.
1319         * generated/maxval_i16.c: Regenerated.
1320         * generated/maxval_i2.c: Regenerated.
1321         * generated/maxval_i4.c: Regenerated.
1322         * generated/maxval_i8.c: Regenerated.
1323         * generated/maxval_r10.c: Regenerated.
1324         * generated/maxval_r16.c: Regenerated.
1325         * generated/maxval_r4.c: Regenerated.
1326         * generated/maxval_r8.c: Regenerated.
1327         * generated/minloc1_16_i1.c: Regenerated.
1328         * generated/minloc1_16_i16.c: Regenerated.
1329         * generated/minloc1_16_i2.c: Regenerated.
1330         * generated/minloc1_16_i4.c: Regenerated.
1331         * generated/minloc1_16_i8.c: Regenerated.
1332         * generated/minloc1_16_r10.c: Regenerated.
1333         * generated/minloc1_16_r16.c: Regenerated.
1334         * generated/minloc1_16_r4.c: Regenerated.
1335         * generated/minloc1_16_r8.c: Regenerated.
1336         * generated/minloc1_4_i1.c: Regenerated.
1337         * generated/minloc1_4_i16.c: Regenerated.
1338         * generated/minloc1_4_i2.c: Regenerated.
1339         * generated/minloc1_4_i4.c: Regenerated.
1340         * generated/minloc1_4_i8.c: Regenerated.
1341         * generated/minloc1_4_r10.c: Regenerated.
1342         * generated/minloc1_4_r16.c: Regenerated.
1343         * generated/minloc1_4_r4.c: Regenerated.
1344         * generated/minloc1_4_r8.c: Regenerated.
1345         * generated/minloc1_8_i1.c: Regenerated.
1346         * generated/minloc1_8_i16.c: Regenerated.
1347         * generated/minloc1_8_i2.c: Regenerated.
1348         * generated/minloc1_8_i4.c: Regenerated.
1349         * generated/minloc1_8_i8.c: Regenerated.
1350         * generated/minloc1_8_r10.c: Regenerated.
1351         * generated/minloc1_8_r16.c: Regenerated.
1352         * generated/minloc1_8_r4.c: Regenerated.
1353         * generated/minloc1_8_r8.c: Regenerated.
1354         * generated/minval_i1.c: Regenerated.
1355         * generated/minval_i16.c: Regenerated.
1356         * generated/minval_i2.c: Regenerated.
1357         * generated/minval_i4.c: Regenerated.
1358         * generated/minval_i8.c: Regenerated.
1359         * generated/minval_r10.c: Regenerated.
1360         * generated/minval_r16.c: Regenerated.
1361         * generated/minval_r4.c: Regenerated.
1362         * generated/minval_r8.c: Regenerated.
1363         * generated/product_c10.c: Regenerated.
1364         * generated/product_c16.c: Regenerated.
1365         * generated/product_c4.c: Regenerated.
1366         * generated/product_c8.c: Regenerated.
1367         * generated/product_i1.c: Regenerated.
1368         * generated/product_i16.c: Regenerated.
1369         * generated/product_i2.c: Regenerated.
1370         * generated/product_i4.c: Regenerated.
1371         * generated/product_i8.c: Regenerated.
1372         * generated/product_r10.c: Regenerated.
1373         * generated/product_r16.c: Regenerated.
1374         * generated/product_r4.c: Regenerated.
1375         * generated/product_r8.c: Regenerated.
1376         * generated/sum_c10.c: Regenerated.
1377         * generated/sum_c16.c: Regenerated.
1378         * generated/sum_c4.c: Regenerated.
1379         * generated/sum_c8.c: Regenerated.
1380         * generated/sum_i1.c: Regenerated.
1381         * generated/sum_i16.c: Regenerated.
1382         * generated/sum_i2.c: Regenerated.
1383         * generated/sum_i4.c: Regenerated.
1384         * generated/sum_i8.c: Regenerated.
1385         * generated/sum_r10.c: Regenerated.
1386         * generated/sum_r16.c: Regenerated.
1387         * generated/sum_r4.c: Regenerated.
1388         * generated/sum_r8.c: Regenerated.
1389
1390 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1391
1392         PR libfortran/35990
1393         * intrinsics/pack_generic.c:  Really commit.
1394
1395 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1396
1397         PR libfortran/35990
1398         * intrinsics/pack_generic.c:  If an extent of the source
1399         array is less then zero, set it to zero.  Set the source
1400         pointer to NULL if the source size is zero.  Set the total
1401         number of elements to zero if the vector has an extent
1402         less or equal to zero.
1403         * m4/pack.m4:  Set the source pointer to NULL if the
1404         source array is zero-sized.  Set the total number of
1405         elemements to zero if the vector has an extent less or
1406         equal to zero.
1407         * generated/pack_i1.c:  Regenerated.
1408         * generated/pack_i2.c:  Regenerated.
1409         * generated/pack_i4.c:  Regenerated.
1410         * generated/pack_i8.c:  Regenerated.
1411         * generated/pack_i16.c:  Regenerated.
1412         * generated/pack_r4.c:  Regenerated.
1413         * generated/pack_r8.c:  Regenerated.
1414         * generated/pack_r10.c:  Regenerated.
1415         * generated/pack_r16.c:  Regenerated.
1416         * generated/pack_c4.c:  Regenerated.
1417         * generated/pack_c8.c:  Regenerated.
1418         * generated/pack_c10.c:  Regenerated.
1419         * generated/pack_c16.c:  Regenerated.
1420
1421 2008-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1422
1423         PR libfortran/36094
1424         * runtime/error.c (show_locus): Provide modified error message when
1425         filename has not yet been associated with a unit number.
1426         * io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
1427
1428 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1429
1430         * intrinsics/selected_char_kind.c: New file.
1431         * gfortran.map (GFORTRAN_1.1): Add _gfortran_selected_char_kind.
1432         * Makefile.am: Add intrinsics/selected_char_kind.c.
1433         * Makefile.in: Regenerate.
1434
1435 2008-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1436
1437         PR libfortran/35993
1438         * ifunction.m4 (SCALAR_ARRAY_FUNCTION):  Use correct
1439         implementation for multi-dimensional return arrays when
1440         the mask is .false.
1441         * generated/maxloc1_16_i1.c: Regenerated.
1442         * generated/maxloc1_16_i16.c: Regenerated.
1443         * generated/maxloc1_16_i2.c: Regenerated.
1444         * generated/maxloc1_16_i4.c: Regenerated.
1445         * generated/maxloc1_16_i8.c: Regenerated.
1446         * generated/maxloc1_16_r10.c: Regenerated.
1447         * generated/maxloc1_16_r16.c: Regenerated.
1448         * generated/maxloc1_16_r4.c: Regenerated.
1449         * generated/maxloc1_16_r8.c: Regenerated.
1450         * generated/maxloc1_4_i1.c: Regenerated.
1451         * generated/maxloc1_4_i16.c: Regenerated.
1452         * generated/maxloc1_4_i2.c: Regenerated.
1453         * generated/maxloc1_4_i4.c: Regenerated.
1454         * generated/maxloc1_4_i8.c: Regenerated.
1455         * generated/maxloc1_4_r10.c: Regenerated.
1456         * generated/maxloc1_4_r16.c: Regenerated.
1457         * generated/maxloc1_4_r4.c: Regenerated.
1458         * generated/maxloc1_4_r8.c: Regenerated.
1459         * generated/maxloc1_8_i1.c: Regenerated.
1460         * generated/maxloc1_8_i16.c: Regenerated.
1461         * generated/maxloc1_8_i2.c: Regenerated.
1462         * generated/maxloc1_8_i4.c: Regenerated.
1463         * generated/maxloc1_8_i8.c: Regenerated.
1464         * generated/maxloc1_8_r10.c: Regenerated.
1465         * generated/maxloc1_8_r16.c: Regenerated.
1466         * generated/maxloc1_8_r4.c: Regenerated.
1467         * generated/maxloc1_8_r8.c: Regenerated.
1468         * generated/maxval_i1.c: Regenerated.
1469         * generated/maxval_i16.c: Regenerated.
1470         * generated/maxval_i2.c: Regenerated.
1471         * generated/maxval_i4.c: Regenerated.
1472         * generated/maxval_i8.c: Regenerated.
1473         * generated/maxval_r10.c: Regenerated.
1474         * generated/maxval_r16.c: Regenerated.
1475         * generated/maxval_r4.c: Regenerated.
1476         * generated/maxval_r8.c: Regenerated.
1477         * generated/minloc1_16_i1.c: Regenerated.
1478         * generated/minloc1_16_i16.c: Regenerated.
1479         * generated/minloc1_16_i2.c: Regenerated.
1480         * generated/minloc1_16_i4.c: Regenerated.
1481         * generated/minloc1_16_i8.c: Regenerated.
1482         * generated/minloc1_16_r10.c: Regenerated.
1483         * generated/minloc1_16_r16.c: Regenerated.
1484         * generated/minloc1_16_r4.c: Regenerated.
1485         * generated/minloc1_16_r8.c: Regenerated.
1486         * generated/minloc1_4_i1.c: Regenerated.
1487         * generated/minloc1_4_i16.c: Regenerated.
1488         * generated/minloc1_4_i2.c: Regenerated.
1489         * generated/minloc1_4_i4.c: Regenerated.
1490         * generated/minloc1_4_i8.c: Regenerated.
1491         * generated/minloc1_4_r10.c: Regenerated.
1492         * generated/minloc1_4_r16.c: Regenerated.
1493         * generated/minloc1_4_r4.c: Regenerated.
1494         * generated/minloc1_4_r8.c: Regenerated.
1495         * generated/minloc1_8_i1.c: Regenerated.
1496         * generated/minloc1_8_i16.c: Regenerated.
1497         * generated/minloc1_8_i2.c: Regenerated.
1498         * generated/minloc1_8_i4.c: Regenerated.
1499         * generated/minloc1_8_i8.c: Regenerated.
1500         * generated/minloc1_8_r10.c: Regenerated.
1501         * generated/minloc1_8_r16.c: Regenerated.
1502         * generated/minloc1_8_r4.c: Regenerated.
1503         * generated/minloc1_8_r8.c: Regenerated.
1504         * generated/minval_i1.c: Regenerated.
1505         * generated/minval_i16.c: Regenerated.
1506         * generated/minval_i2.c: Regenerated.
1507         * generated/minval_i4.c: Regenerated.
1508         * generated/minval_i8.c: Regenerated.
1509         * generated/minval_r10.c: Regenerated.
1510         * generated/minval_r16.c: Regenerated.
1511         * generated/minval_r4.c: Regenerated.
1512         * generated/minval_r8.c: Regenerated.
1513         * generated/product_c10.c: Regenerated.
1514         * generated/product_c16.c: Regenerated.
1515         * generated/product_c4.c: Regenerated.
1516         * generated/product_c8.c: Regenerated.
1517         * generated/product_i1.c: Regenerated.
1518         * generated/product_i16.c: Regenerated.
1519         * generated/product_i2.c: Regenerated.
1520         * generated/product_i4.c: Regenerated.
1521         * generated/product_i8.c: Regenerated.
1522         * generated/product_r10.c: Regenerated.
1523         * generated/product_r16.c: Regenerated.
1524         * generated/product_r4.c: Regenerated.
1525         * generated/product_r8.c: Regenerated.
1526         * generated/sum_c10.c: Regenerated.
1527         * generated/sum_c16.c: Regenerated.
1528         * generated/sum_c4.c: Regenerated.
1529         * generated/sum_c8.c: Regenerated.
1530         * generated/sum_i1.c: Regenerated.
1531         * generated/sum_i16.c: Regenerated.
1532         * generated/sum_i2.c: Regenerated.
1533         * generated/sum_i4.c: Regenerated.
1534         * generated/sum_i8.c: Regenerated.
1535         * generated/sum_r10.c: Regenerated.
1536         * generated/sum_r16.c: Regenerated.
1537         * generated/sum_r4.c: Regenerated.
1538         * generated/sum_r8.c: Regenerated.
1539
1540 2008-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1541
1542         PR libfortran/35960
1543         * m4/reshape.m4:  Fix typo in last commit.
1544         * generated/reshape_i4.c:  Regererated.
1545         * generated/reshape_i8.c:  Regenerated.
1546         * generated/reshape_i16.c:  Regenerated.
1547         * generated/reshape_r4.c:  Regenerated.
1548         * generated/reshape_r8.c:  Regenerated.
1549         * generated/reshape_r10.c:  Regenerated.
1550         * generated/reshape_r16.c:  Regenerated.
1551         * generated/reshape_c4.c:  Regenerated.
1552         * generated/reshape_c8.c:  Regenerated.
1553         * generated/reshape_c10.c:  Regenerated.
1554         * generated/reshape_c16.c:  Regenerated.
1555
1556 2008-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1557
1558         * intrinsics/time_1.h (__time_1): Remove unused variable.
1559
1560 2008-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
1561
1562         PR libfortran/35988
1563         * m4/matmul.m4:  Only issue a runtime error if extents are
1564         non-zero.
1565         * generated/matmul_i1.c:  Regenerated.
1566         * generated/matmul_i2.c:  Regenerated.
1567         * generated/matmul_i4.c:  Regenerated.
1568         * generated/matmul_i8.c:  Regenerated.
1569         * generated/matmul_i16.c:  Regenerated.
1570         * generated/matmul_r4.c:  Regenerated.
1571         * generated/matmul_r8.c:  Regenerated.
1572         * generated/matmul_r10.c:  Regenerated.
1573         * generated/matmul_r16.c:  Regenerated.
1574         * generated/matmul_c4.c:  Regenerated.
1575         * generated/matmul_c8.c:  Regenerated.
1576         * generated/matmul_c10.c:  Regenerated.
1577         * generated/matmul_c16.c:  Regenerated.
1578
1579 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1580
1581         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY)
1582         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT)
1583         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS, LIBGFOR_CHECK_SYNC_FETCH_AND_ADD)
1584         (LIBGFOR_GTHREAD_WEAK, LIBGFOR_CHECK_UNLINK_OPEN_FILE)
1585         (LIBGFOR_CHECK_CRLF, LIBGFOR_CHECK_FOR_BROKEN_ISFINITE)
1586         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN)
1587         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY, LIBGFOR_CHECK_WORKING_STAT)
1588         (LIBGFOR_CHECK_FPSETMASK, LIBGFOR_CHECK_MINGW_SNPRINTF):
1589         Fix cache variable names.
1590         * configure, Makefile.in: Regenerate.
1591
1592 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1593
1594         PR fortran/35991
1595         * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
1596
1597 2008-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
1598
1599         PR libfortran/35960
1600         * intrinsics/reshape_generic.c (reshape_internal): If the size
1601         of the resized array is zero, as determined by the SHAPE
1602         argument, return early.
1603         * m4/reshape.m4:  Likewise.
1604         * generated/reshape_i4.c:  Regererated.
1605         * generated/reshape_i8.c:  Regenerated.
1606         * generated/reshape_i16.c:  Regenerated.
1607         * generated/reshape_r4.c:  Regenerated.
1608         * generated/reshape_r8.c:  Regenerated.
1609         * generated/reshape_r10.c:  Regenerated.
1610         * generated/reshape_r16.c:  Regenerated.
1611         * generated/reshape_c4.c:  Regenerated.
1612         * generated/reshape_c8.c:  Regenerated.
1613         * generated/reshape_c10.c:  Regenerated.
1614         * generated/reshape_c16.c:  Regenerated.
1615
1616 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1617
1618         PR bootstrap/35457
1619         * aclocal.m4: Regenerate.
1620         * configure: Regenerate.
1621
1622 2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1623
1624         PR libfortran/32972
1625         * intrinsics/spread_generic.c (spread):  Use spread_i2()
1626         for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
1627
1628 2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1629         Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1630
1631         PR libfortran/32972
1632         PR libfortran/32512
1633         configure.ac:  Add test for uintptr_t.
1634         configure:  Regenerated.
1635         config.h.in:  Regenerated.
1636         * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
1637         GFC_DTYPE_DERIVED_2:  New macro.
1638         GFC_DTYPE_DERIVED_4:  New macro.
1639         GFC_DTYPE_DERIVED_8:  New macro.
1640         GFC_DTYPE_DERIVED_16:  New macro.
1641         GFC_UNALIGNED_2:  New macro.
1642         GFC_UNALIGNED_4:  New macro.
1643         GFC_UNALIGNED_8:  New macro.
1644         GFC_UNALIGNED_16:  New macro.
1645         intptr_t:  Define if we don't have it.
1646         uintptr_t:  Likewise.
1647         * runtime/backtrace.c (show_backtrace):  Use intptr_t.
1648         * intrinsics/signal.c (signal_sub):  Likewise.
1649         (signal_sub_int):  Likewise.
1650         (alarm_sub_int_i4):  Likewise.
1651         * intrinsics/spread_generic.c (spread):  Use the integer
1652         routines for handling derived types of sizes 1, 2, 4, 8 and 16
1653         if the alignment of all pointers is correct.
1654         (spread_scalar):  Likewise.
1655         * intrinsics/pack_generic.c (pack):  Likewise.
1656         Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
1657         * intrinsics/unpack_generic.c (unpack1):  Likewise.
1658         (unpack0):  Likewise.
1659         * runtime/in_pack_generic.c (internal_pack):  Likewise.
1660         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
1661
1662 2008-04-09  Jakub Jelinek  <jakub@redhat.com>
1663
1664         * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
1665         (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
1666         recursive call.  Use snprintf instead of sprintf when %s nl->var_name
1667         is used.
1668         (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
1669         nml_read_obj call.  Use snprintf instead of sprintf when %s
1670         nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
1671         of parse_err_msg array.  Append " for namelist variable " and
1672         nl->var_name to it.
1673         (namelist_read): Increase size of nml_err_msg array to 200.  Pass
1674         sizeof nml_err_msg as extra argument to nml_get_obj_data.
1675
1676 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1677
1678         PR fortran/25829 28655
1679         * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
1680         and flags.status. (st_open): Initialize flags.async.
1681         * io/list_read.c (read_charactor): Use delim_status instead of
1682         flags.delim.
1683         * io/read.c (read_x): Use pad_status instead of flags.pad.
1684         * io/inquire.c (inquire_via_unit): Add new checks.
1685         (inquire_via_filename): Likewise.
1686         * io/io.h (st_parameter_inquire): Add new flags.
1687         (st_parameter_dt): Likewise.
1688         * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
1689         flags.async.
1690         * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
1691         pad_status instead of flags.pad. (read_block): Likewise.
1692         (data_transfer_init): Set flags.async and add checks.
1693         * io/write.c (write_character): Use delim_status.
1694         (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
1695         (namelist_write): Likewise.
1696
1697 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1698
1699         PR fortran/25829 28655
1700         * gfortran.map: Add new symbol, _gfortran_st_wait.
1701         * libgfortran.h (st_paramter_common): Add new I/O parameters.
1702         * open.c (st_option decimal_opt[], st_option encoding_opt[],
1703         st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
1704         parameter option arrays. (edit_modes): Add checks for new parameters.
1705         (new_unit): Likewise. (st_open): Likewise.
1706         * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
1707         (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
1708         (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
1709         * read.c (read_a): Use decimal status flag to allow comma in place of a
1710         decimal point. (read_f): Allow comma as acceptable character in float.
1711         According to decimal flag, substitute a period for a comma.
1712         (read_x): If decimal status flag is comma, disable the read_comma flag,
1713         not allowing comma as a delimiter, an extension otherwise.
1714         * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
1715         unit_async): New enumerators. Add all new I/O parameters.
1716         * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
1717         (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
1718         (fd_sfree): Use new enumerator. (fd_read): Likewise.
1719         (fd_write): Likewise. (fd_close): Fix whitespace.
1720         (fd_open): Use new enumertors. (tempfile, regular_file,
1721         open_external): Fix whitespace. (output_stream, error_stream): Set
1722         method. (stream_offset): Fix whitespace.
1723         * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
1724         option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
1725         based on new decimal_status flag. (data_transfer_init): Initialize new
1726         parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
1727         * format.c: (format_lex): Add format specifiers DP, DC, and D.
1728         (parse_format_list): Parse the new specifiers.
1729         * write.c (write_decimal): Use new sign enumerators to set the sign.
1730         (write_complex): Handle decimal comma and semi-colon separator.
1731         (nml_write_obj): Likewise.
1732         * write_float.def: Revise sign enumerators. (calculate_sign): Use new
1733         sign enumerators. (output_float): Likewise. Use new decimal_status flag
1734         to set the decimal character to a point or a comma.
1735         
1736 2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1737
1738         PR libfortran/32972
1739         PR libfortran/32512
1740         * Makefile.am:  Add new variable, i_spread_c, containing
1741         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
1742         spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
1743         spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
1744         * Makefile.in:  Regenerated.
1745         * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
1746         spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
1747         spread_c4, spread_c8, spread_c10, spread_c16,
1748         spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
1749         spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
1750         spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
1751         spread_scalar_c10 and spread_scalar_c16.
1752         Add macros to isolate both type and size information
1753         from array descriptors with a single mask operation.
1754         * intrinsics/spread_generic.c:  Add calls to specific
1755         spread functions.
1756         * m4/spread.m4:  New file.
1757         * generated/spread_i1.c:  New file.
1758         * generated/spread_i2.c:  New file.
1759         * generated/spread_i4.c:  New file.
1760         * generated/spread_i8.c:  New file.
1761         * generated/spread_i16.c:  New file.
1762         * generated/spread_r4.c:  New file.
1763         * generated/spread_r8.c:  New file.
1764         * generated/spread_r10.c:  New file.
1765         * generated/spread_r16.c:  New file.
1766         * generated/spread_c4.c:  New file.
1767         * generated/spread_c8.c:  New file.
1768         * generated/spread_c10.c:  New file.
1769         * generated/spread_c16.c:  New file.
1770
1771 2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1772
1773         PR libfortran/35699
1774         * io/transfer.c (write_buf):  Don't pad the record, just return if the
1775         data is NULL.  (next_record_w): If there are bytes left in the record
1776         for unformatted direct I/O, pad out the record with zero bytes.
1777
1778 2008-03-28  Tobias Burnus  <burnus@net-b.de>
1779
1780         PR fortran/35721
1781         * intrinsics/associated.c (associated): Ignore different
1782         stride of pointer vs. target if only one element is referred.
1783
1784 2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1785
1786         * io/unix.c (fd_close):  Do not close STDIN.
1787
1788 2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
1789
1790         PR libfortran/32972
1791         * Makefile.am:  Add new variable, i_unpack_c, containing
1792         unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
1793         unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
1794         unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
1795         and unpack_c16.c
1796         Add i_unpack_c to gfor_built_src.
1797         Add rule to generate i_unpack_c from m4/unpack.m4.
1798         * Makefile.in:  Regenerated.
1799         * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
1800         unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
1801         unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
1802         unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
1803         unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
1804         unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
1805         * intrinsics/pack_generic.c (unpack1):  Add calls to specific
1806         unpack1 functions.
1807         (unpack0):  Add calls to specific unpack0 functions.
1808         * m4/unpack.m4:  New file.
1809         * generated/unpack_i1.c:  New file.
1810         * generated/unpack_i2.c:  New file.
1811         * generated/unpack_i4.c:  New file.
1812         * generated/unpack_i8.c:  New file.
1813         * generated/unpack_i16.c:  New file.
1814         * generated/unpack_r4.c:  New file.
1815         * generated/unpack_r8.c:  New file.
1816         * generated/unpack_r10.c:  New file.
1817         * generated/unpack_r16.c:  New file.
1818         * generated/unpack_c4.c:  New file.
1819         * generated/unpack_c8.c:  New file.
1820         * generated/unpack_c10.c:  New file.
1821         * generated/unpack_c16.c:  New file.
1822
1823 2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1824
1825         PR libfortran/35632
1826         * io/transfer.c (data_transfer_init):  Fix whitespace.
1827         (next_record_w): Truncate the file only if the stream
1828         position is short of the file end.
1829
1830 2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1831
1832         * intrinsics/pack_generic.c:  Fix typo.
1833
1834 2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
1835
1836         * gfortran.map: Move erfc_scaled symbols to new symbol node
1837         GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
1838
1839 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1840
1841         PR libfortran/32972
1842         * runtime/in_pack_generic.c (internal_pack):  Call correct
1843         function, pack_i16, for GFC_INTEGER_16.
1844
1845 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1846
1847         PR libfortran/32972
1848         * Makefile.am:  Add new variable, i_pack_c, containing
1849         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
1850         pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
1851         pack_c8.c, pack_c10.c, pack_c16.c.
1852         Add m4/pack.m4 to m4_files.
1853         Add i_pack_c to gfor_built_src.
1854         Add rule to generate i_pack_c from m4/pack.m4.
1855         * Makefile.in:  Regenerated.
1856         * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
1857         pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
1858         pack_c10, pack_c16.
1859         * intrinsics/pack_generic.c:  Add calls to specific
1860         pack functions.
1861         * m4/pack.m4:  New file.
1862         * generated/pack_i1.c:  New file.
1863         * generated/pack_i2.c:  New file.
1864         * generated/pack_i4.c:  New file.
1865         * generated/pack_i8.c:  New file.
1866         * generated/pack_i16.c:  New file.
1867         * generated/pack_r4.c:  New file.
1868         * generated/pack_r8.c:  New file.
1869         * generated/pack_r10.c:  New file.
1870         * generated/pack_r16.c:  New file.
1871         * generated/pack_c4.c:  New file.
1872         * generated/pack_c8.c:  New file.
1873         * generated/pack_c10.c:  New file.
1874         * generated/pack_c16.c:  New file.
1875
1876 2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1877
1878         PR libfortran/35627
1879         * io/list_read.c (free_line): Clear the line buffer enable flag and
1880         reset the index into line_buffer, aka item_count.
1881         (next_char): Cleanup whitespace.
1882         (read_logical): Use unget_char to assure that the first character of the
1883         bad logical is saved in case it is part of an object name. Remove the
1884         clearing of index and flag that is now in free_line.
1885         (read_real): Likewise.
1886
1887 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1888
1889         PR libfortran/32972
1890         * runtime/in_pack_generic.c (internal_pack):  Fix typo in
1891         last commit.
1892
1893 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1894
1895         PR libfortran/32972
1896         * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
1897         in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
1898         (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
1899         in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
1900         in_unpack_r16.c.
1901         * Makefile.in: Regenerate.
1902         * libgfortran.h:  Add prototypes for internal_pack_1,
1903         internal_pack_2, internal_pack_16, internal_pack_r4,
1904         internal_pack_r8, internal_pack_r10, internal_pack_r16,
1905         internal_pack_c10 and internal_pack_c16.  Add prototypes for
1906         internal_unpack_1, internal_unpack_2, internal_unpack_16,
1907         internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
1908         internal_unpack_r16, internal_unpack_c10 and
1909         internal_unpack_c16.
1910         * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
1911         of hardwired sizes.
1912         Add calls to internal_pack_1, internal_pack_2,
1913         internal_pack_16, internal_pack_r4, internal_pack_r8,
1914         internal_pack_r10, internal_pack_r16, internal_pack_c10 and
1915         internal_pack_c16.
1916         * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
1917         instead of hardwired sizes.
1918         Add calls to internal_unpack_1, internal_unpack_2,
1919         internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
1920         internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
1921         and internal_unpack_c16.
1922         * generated/in_pack_r4.c:  New file.
1923         * generated/in_pack_i2.c:  New file.
1924         * generated/in_unpack_i1.c:  New file.
1925         * generated/in_pack_r10.c:  New file.
1926         * generated/in_unpack_r4.c:  New file.
1927         * generated/in_unpack_i2.c:  New file.
1928         * generated/in_unpack_r16.c:  New file.
1929         * generated/in_pack_r8.c:  New file.
1930         * generated/in_unpack_r10.c:  New file.
1931         * generated/in_unpack_r8.c:  New file.
1932         * generated/in_pack_r16.c:  New file.
1933         * generated/in_pack_i1.c:  New file.
1934
1935 2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1936
1937         PR libfortran/35617
1938         * io/list_read.c (eat_separator): If next character after eatline is '!'
1939         then eatline again. 
1940
1941 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1942
1943         * aclocal.m4: Regenerate.
1944         * configure: Likewise.
1945         * Makefile.in: Likewise.
1946
1947 2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1948
1949         PR libfortran/35524
1950         * intrinsics/erfc_scaled_inc.c: Only define the long double
1951         variant of erfc_scaled if expl is available.
1952
1953 2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1954
1955         PR libfortran/32812
1956         * intrinsics/random.c (scramble_seed, unscramble_seed): New
1957         functions.
1958         (random_seed_i4): Scramble the seed the user gives us before
1959         storing it, and unscramble it when we return it back later.
1960
1961 2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
1962
1963         PR libfortran/35293
1964         * io/unix.c (fd_truncate): Fold s->special_file case into
1965         success case of ftruncate/chsize call instead of the failure case.
1966         Make failure case actually return failure.  Properly update stream
1967         pointers on failure.  Call runtime_error for targets without
1968         neither ftruncate nor chsize where such a call would be needed.
1969
1970 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1971
1972         PR fortran/33197
1973         * intrinsics/erfc_scaled_inc.c: New file.
1974         * intrinsics/erfc_scaled.c: New file.
1975         * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
1976         * Makefile.am: Add intrinsics/erfc_scaled.c.
1977         * config.h.in: Regenerate.
1978         * configure: Regenerate.
1979         * Makefile.in: Regenerate.
1980
1981 2008-03-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1982
1983         PR libfortran/35355
1984         * intrinsics/time_1.h (__time_1): Fix calculation of user_usec
1985         for mingw.
1986
1987 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
1988
1989         PR libfortran/35063
1990         * io/unit.c (destroy_unit_mutex): Call __gthread_mutex_destroy
1991         instead of macro kludge.
1992         
1993 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
1994
1995         PR fortran/29549
1996         * Makefile.am: Add -fcx-fortran-rules to AM_CFLAGS for all of
1997         libgfortran.
1998         * Makefile.in: Regenerated.
1999
2000 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2001
2002         * m4/ifunction_logical.m4: Add casts to get rid of warnings.
2003         * generated/all_l1.c: Regenerate.
2004         * generated/all_l2.c: Regenerate.
2005         * generated/all_l4.c: Regenerate.
2006         * generated/all_l8.c: Regenerate.
2007         * generated/all_l16.c: Regenerate.
2008         * generated/any_l1.c: Regenerate.
2009         * generated/any_l2.c: Regenerate.
2010         * generated/any_l4.c: Regenerate.
2011         * generated/any_l8.c: Regenerate.
2012         * generated/any_l16.c: Regenerate.
2013         * generated/count_1_l.c: Regenerate.
2014         * generated/count_2_l.c: Regenerate.
2015         * generated/count_4_l.c: Regenerate.
2016         * generated/count_8_l.c: Regenerate.
2017         * generated/count_16_l.c: Regenerate.
2018
2019 2008-02-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2020
2021         PR libfortran/32841
2022         * acinclude.m4: Don't use HAVE_MATH_H.
2023         * configure: Regenerate.
2024
2025 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2026
2027         PR libfortran/35132
2028         * io/transfer.c (next_record_w): Truncate after the last record for
2029         STREAM I/O.
2030
2031         PR libfortran/34954
2032         * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
2033
2034         PR libfortran/34974
2035         * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
2036         is less than zero. (next_record_w): Use sseek to position the file to
2037         the max position reached.
2038
2039 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2040
2041         PR libfortran/35036
2042         * write_float.def (output_float):  Add error checks for zero digits
2043         after decimal point in E and D format specifiers.
2044         
2045 2008-02-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2046
2047         PR libfortran/35063
2048         * io/unit.c (destroy_unit_mutex): New function that uses
2049         __gthread_mutex_destroy_function or pthread_mutex_destroy after
2050         unlocking and before free_mem for final closure of I/O unit.
2051         (delete_root): Use new function.
2052         (free_internal_unit): Likewise.
2053         (close_unit_1): Likewise.
2054
2055 2008-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2056
2057         PR libfortran/35001
2058         * m4/shape.m4:  Return 0 for extents <= 0.
2059         * generated/shape_i4.c:  Regenerated.
2060         * generated/shape_i8.c:  Regenerated.
2061         * generated/shape_i16.c:  Regenerated.
2062
2063 2008-01-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2064
2065         PR libfortran/34980
2066         * m4/shape.m4:  If return array is empty, return early.
2067         * generated/shape_i4.c:  Regenerated.
2068         * generated/shape_i8.c:  Regenerated.
2069         * generated/shape_i16.c:  Regenerated.
2070
2071 2008-01-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
2072
2073         PR libfofortran/34887
2074         * io/transfer.c (next_record_w): Always move to the farthest
2075         position when completing the record (also when we are
2076         processing a slash edit descriptor).
2077
2078 2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2079
2080         PR libfortran/34876
2081         * io/transfer.c (write_buf): Handle case of zero sized array.
2082         (transfer_array): Set data pointer to NULL and size to zero.  Then
2083         make a data transfer and return.
2084         
2085 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2086
2087         * configure: Regenerate.
2088
2089 2008-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2090
2091         PR libfortran/34795
2092         * io/inquire.c (inquire_via_unit): If a unit is opened, return values
2093         according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
2094         (inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
2095         FORAMATTED, and UNFORMATTED inquiries.
2096         * io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
2097         for files that are not opened. (inquire_direct): Same.
2098         (inquire_formatted): Same.
2099         
2100 2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2101
2102         PR libfortran/34782
2103         * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
2104         of the current max_pos or the newly calculated position.
2105
2106 2008-01-18  Tobias Burnus  <burnus@net-b.de>
2107
2108         * io/write.c (write_real): Increase default precision
2109         for REAL(16) by one.
2110
2111 2008-01-16  Steven Bosscher  <steven@gcc.gnu.org>
2112
2113         PR libfortran/34669
2114         * mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
2115         to avoid piping the -fdump-parse-tree output to the assembler
2116         when configuring with -pipe.
2117         * mk-sik-inc.sh: Likewise.
2118         * mk-srk-inc.sh: Likewise.
2119
2120 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
2121
2122         PR libfortran/34671
2123         * gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
2124         _gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
2125         _gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
2126         _gfortran_count_8_l Removed _gfortran_count_16_l16,
2127         _gfortran_count_16_l4, _gfortran_count_16_l8,
2128         _gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
2129         _gfortran_count_8_l16, _gfortran_count_8_l4 and
2130         _gfortran_count_8_l8.
2131         * Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
2132         i_any_c.  Added generated/all_l1. and generated/all_l2.c to
2133         i_all_c.  Removed generated/count_4_l4.c, generated/count_8_l4.c,
2134         generated/count_16_l4.c, generated/count_4_l8.c,
2135         generated/count_8_l8.c, generated/count_16_l8.c,
2136         generated/count_4_l16.c, generated/count_8_l16.c, and
2137         generated/count_16_l16.c from i_count_c.  Added count_1_l.c,
2138         count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
2139         i_count_c.  I_M4_DEPS2 depends on ifunction_logical.m4, for
2140         any of the files generated from all.m4, any.m4 and count.m4.
2141         * Makefile.in:  Regenerated.
2142         * m4/ifunction_logical.m4:  New file.  Use
2143         GFC_LOGICAL_1 pointer for access to source arrays.
2144         * m4/any.m4:  Include ifunction_logical.m4 instead of
2145         ifunction.m4.  Don't check atype_name.
2146         * m4/all.m4:  Likewise.
2147         * m4/count.m4:  Likewise.
2148         * generated/any_l1.c:  New file.
2149         * generated/any_l2.c:  New file.
2150         * generated/all_l1.c:  New file.
2151         * generated/count_1_l.c:  New file.
2152         * generated/count_2_l.c:  New file.
2153         * generated/count_4_l.c:  New file.
2154         * generated/count_8_l.c:  New file.
2155         * generated/count_16_l.c:  New file.
2156         * generated/any_l4.c:  Regenerated.
2157         * generated/any_l8.c:  Regenerated.
2158         * generated/any_l16.c:  Regenerated.
2159         * generated/all_l4.c: Regenerated.
2160         * generated/all_l8.c: Regenerated.
2161         * generated/all_l16.c: Regenerated.
2162         * generated/count_4_l4.c:  Removed.
2163         * generated/count_4_l8.c:  Removed.
2164         * generated/count_4_l16.c:  Removed.
2165         * generated/count_8_l4.c:  Removed.
2166         * generated/count_8_l8.c:  Removed.
2167         * generated/count_8_l16.c:  Removed.
2168         * generated/count_16_l4.c:  Removed.
2169         * generated/count_16_l8.c:  Removed.
2170         * generated/count_16_l16.c:  Removed.
2171
2172 2008-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2173
2174         PR libfortran/34746
2175         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Use %ld
2176         in printf format for all bounds checking; cast all
2177         integer-like arguments to runtime_error() to long int.
2178         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2179         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2180         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
2181         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2182         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2183         * generated/all_l16.c: Regenerated.
2184         * generated/all_l4.c: Regenerated.
2185         * generated/all_l8.c: Regenerated.
2186         * generated/any_l16.c: Regenerated.
2187         * generated/any_l4.c: Regenerated.
2188         * generated/any_l8.c: Regenerated.
2189         * generated/count_16_l16.c: Regenerated.
2190         * generated/count_16_l4.c: Regenerated.
2191         * generated/count_16_l8.c: Regenerated.
2192         * generated/count_4_l16.c: Regenerated.
2193         * generated/count_4_l4.c: Regenerated.
2194         * generated/count_4_l8.c: Regenerated.
2195         * generated/count_8_l16.c: Regenerated.
2196         * generated/count_8_l4.c: Regenerated.
2197         * generated/count_8_l8.c: Regenerated.
2198         * generated/maxloc0_16_i1.c: Regenerated.
2199         * generated/maxloc0_16_i16.c: Regenerated.
2200         * generated/maxloc0_16_i2.c: Regenerated.
2201         * generated/maxloc0_16_i4.c: Regenerated.
2202         * generated/maxloc0_16_i8.c: Regenerated.
2203         * generated/maxloc0_16_r10.c: Regenerated.
2204         * generated/maxloc0_16_r16.c: Regenerated.
2205         * generated/maxloc0_16_r4.c: Regenerated.
2206         * generated/maxloc0_16_r8.c: Regenerated.
2207         * generated/maxloc0_4_i1.c: Regenerated.
2208         * generated/maxloc0_4_i16.c: Regenerated.
2209         * generated/maxloc0_4_i2.c: Regenerated.
2210         * generated/maxloc0_4_i4.c: Regenerated.
2211         * generated/maxloc0_4_i8.c: Regenerated.
2212         * generated/maxloc0_4_r10.c: Regenerated.
2213         * generated/maxloc0_4_r16.c: Regenerated.
2214         * generated/maxloc0_4_r4.c: Regenerated.
2215         * generated/maxloc0_4_r8.c: Regenerated.
2216         * generated/maxloc0_8_i1.c: Regenerated.
2217         * generated/maxloc0_8_i16.c: Regenerated.
2218         * generated/maxloc0_8_i2.c: Regenerated.
2219         * generated/maxloc0_8_i4.c: Regenerated.
2220         * generated/maxloc0_8_i8.c: Regenerated.
2221         * generated/maxloc0_8_r10.c: Regenerated.
2222         * generated/maxloc0_8_r16.c: Regenerated.
2223         * generated/maxloc0_8_r4.c: Regenerated.
2224         * generated/maxloc0_8_r8.c: Regenerated.
2225         * generated/maxloc1_16_i1.c: Regenerated.
2226         * generated/maxloc1_16_i16.c: Regenerated.
2227         * generated/maxloc1_16_i2.c: Regenerated.
2228         * generated/maxloc1_16_i4.c: Regenerated.
2229         * generated/maxloc1_16_i8.c: Regenerated.
2230         * generated/maxloc1_16_r10.c: Regenerated.
2231         * generated/maxloc1_16_r16.c: Regenerated.
2232         * generated/maxloc1_16_r4.c: Regenerated.
2233         * generated/maxloc1_16_r8.c: Regenerated.
2234         * generated/maxloc1_4_i1.c: Regenerated.
2235         * generated/maxloc1_4_i16.c: Regenerated.
2236         * generated/maxloc1_4_i2.c: Regenerated.
2237         * generated/maxloc1_4_i4.c: Regenerated.
2238         * generated/maxloc1_4_i8.c: Regenerated.
2239         * generated/maxloc1_4_r10.c: Regenerated.
2240         * generated/maxloc1_4_r16.c: Regenerated.
2241         * generated/maxloc1_4_r4.c: Regenerated.
2242         * generated/maxloc1_4_r8.c: Regenerated.
2243         * generated/maxloc1_8_i1.c: Regenerated.
2244         * generated/maxloc1_8_i16.c: Regenerated.
2245         * generated/maxloc1_8_i2.c: Regenerated.
2246         * generated/maxloc1_8_i4.c: Regenerated.
2247         * generated/maxloc1_8_i8.c: Regenerated.
2248         * generated/maxloc1_8_r10.c: Regenerated.
2249         * generated/maxloc1_8_r16.c: Regenerated.
2250         * generated/maxloc1_8_r4.c: Regenerated.
2251         * generated/maxloc1_8_r8.c: Regenerated.
2252         * generated/maxval_i1.c: Regenerated.
2253         * generated/maxval_i16.c: Regenerated.
2254         * generated/maxval_i2.c: Regenerated.
2255         * generated/maxval_i4.c: Regenerated.
2256         * generated/maxval_i8.c: Regenerated.
2257         * generated/maxval_r10.c: Regenerated.
2258         * generated/maxval_r16.c: Regenerated.
2259         * generated/maxval_r4.c: Regenerated.
2260         * generated/maxval_r8.c: Regenerated.
2261         * generated/minloc0_16_i1.c: Regenerated.
2262         * generated/minloc0_16_i16.c: Regenerated.
2263         * generated/minloc0_16_i2.c: Regenerated.
2264         * generated/minloc0_16_i4.c: Regenerated.
2265         * generated/minloc0_16_i8.c: Regenerated.
2266         * generated/minloc0_16_r10.c: Regenerated.
2267         * generated/minloc0_16_r16.c: Regenerated.
2268         * generated/minloc0_16_r4.c: Regenerated.
2269         * generated/minloc0_16_r8.c: Regenerated.
2270         * generated/minloc0_4_i1.c: Regenerated.
2271         * generated/minloc0_4_i16.c: Regenerated.
2272         * generated/minloc0_4_i2.c: Regenerated.
2273         * generated/minloc0_4_i4.c: Regenerated.
2274         * generated/minloc0_4_i8.c: Regenerated.
2275         * generated/minloc0_4_r10.c: Regenerated.
2276         * generated/minloc0_4_r16.c: Regenerated.
2277         * generated/minloc0_4_r4.c: Regenerated.
2278         * generated/minloc0_4_r8.c: Regenerated.
2279         * generated/minloc0_8_i1.c: Regenerated.
2280         * generated/minloc0_8_i16.c: Regenerated.
2281         * generated/minloc0_8_i2.c: Regenerated.
2282         * generated/minloc0_8_i4.c: Regenerated.
2283         * generated/minloc0_8_i8.c: Regenerated.
2284         * generated/minloc0_8_r10.c: Regenerated.
2285         * generated/minloc0_8_r16.c: Regenerated.
2286         * generated/minloc0_8_r4.c: Regenerated.
2287         * generated/minloc0_8_r8.c: Regenerated.
2288         * generated/minloc1_16_i1.c: Regenerated.
2289         * generated/minloc1_16_i16.c: Regenerated.
2290         * generated/minloc1_16_i2.c: Regenerated.
2291         * generated/minloc1_16_i4.c: Regenerated.
2292         * generated/minloc1_16_i8.c: Regenerated.
2293         * generated/minloc1_16_r10.c: Regenerated.
2294         * generated/minloc1_16_r16.c: Regenerated.
2295         * generated/minloc1_16_r4.c: Regenerated.
2296         * generated/minloc1_16_r8.c: Regenerated.
2297         * generated/minloc1_4_i1.c: Regenerated.
2298         * generated/minloc1_4_i16.c: Regenerated.
2299         * generated/minloc1_4_i2.c: Regenerated.
2300         * generated/minloc1_4_i4.c: Regenerated.
2301         * generated/minloc1_4_i8.c: Regenerated.
2302         * generated/minloc1_4_r10.c: Regenerated.
2303         * generated/minloc1_4_r16.c: Regenerated.
2304         * generated/minloc1_4_r4.c: Regenerated.
2305         * generated/minloc1_4_r8.c: Regenerated.
2306         * generated/minloc1_8_i1.c: Regenerated.
2307         * generated/minloc1_8_i16.c: Regenerated.
2308         * generated/minloc1_8_i2.c: Regenerated.
2309         * generated/minloc1_8_i4.c: Regenerated.
2310         * generated/minloc1_8_i8.c: Regenerated.
2311         * generated/minloc1_8_r10.c: Regenerated.
2312         * generated/minloc1_8_r16.c: Regenerated.
2313         * generated/minloc1_8_r4.c: Regenerated.
2314         * generated/minloc1_8_r8.c: Regenerated.
2315         * generated/minval_i1.c: Regenerated.
2316         * generated/minval_i16.c: Regenerated.
2317         * generated/minval_i2.c: Regenerated.
2318         * generated/minval_i4.c: Regenerated.
2319         * generated/minval_i8.c: Regenerated.
2320         * generated/minval_r10.c: Regenerated.
2321         * generated/minval_r16.c: Regenerated.
2322         * generated/minval_r4.c: Regenerated.
2323         * generated/minval_r8.c: Regenerated.
2324         * generated/product_c10.c: Regenerated.
2325         * generated/product_c16.c: Regenerated.
2326         * generated/product_c4.c: Regenerated.
2327         * generated/product_c8.c: Regenerated.
2328         * generated/product_i1.c: Regenerated.
2329         * generated/product_i16.c: Regenerated.
2330         * generated/product_i2.c: Regenerated.
2331         * generated/product_i4.c: Regenerated.
2332         * generated/product_i8.c: Regenerated.
2333         * generated/product_r10.c: Regenerated.
2334         * generated/product_r16.c: Regenerated.
2335         * generated/product_r4.c: Regenerated.
2336         * generated/product_r8.c: Regenerated.
2337         * generated/sum_c10.c: Regenerated.
2338         * generated/sum_c16.c: Regenerated.
2339         * generated/sum_c4.c: Regenerated.
2340         * generated/sum_c8.c: Regenerated.
2341         * generated/sum_i1.c: Regenerated.
2342         * generated/sum_i16.c: Regenerated.
2343         * generated/sum_i2.c: Regenerated.
2344         * generated/sum_i4.c: Regenerated.
2345         * generated/sum_i8.c: Regenerated.
2346         * generated/sum_r10.c: Regenerated.
2347         * generated/sum_r16.c: Regenerated.
2348         * generated/sum_r4.c: Regenerated.
2349         * generated/sum_r8.c: Regenerated.
2350
2351 2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
2352
2353         PR libfortran/34670
2354         * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
2355         (u_name):  New macro for the upper case name of the intrinsic.
2356         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
2357         bounds checking and rank check, depending on
2358         compile_options.bounds_check.
2359         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2360         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2361         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
2362         bounds checking and rank check, depending on
2363         compile_options.bounds_check.
2364         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2365         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2366         * generated/all_l16.c: Regenerated.
2367         * generated/all_l4.c: Regenerated.
2368         * generated/all_l8.c: Regenerated.
2369         * generated/any_l16.c: Regenerated.
2370         * generated/any_l4.c: Regenerated.
2371         * generated/any_l8.c: Regenerated.
2372         * generated/count_16_l16.c: Regenerated.
2373         * generated/count_16_l4.c: Regenerated.
2374         * generated/count_16_l8.c: Regenerated.
2375         * generated/count_4_l16.c: Regenerated.
2376         * generated/count_4_l4.c: Regenerated.
2377         * generated/count_4_l8.c: Regenerated.
2378         * generated/count_8_l16.c: Regenerated.
2379         * generated/count_8_l4.c: Regenerated.
2380         * generated/count_8_l8.c: Regenerated.
2381         * generated/maxloc0_16_i1.c: Regenerated.
2382         * generated/maxloc0_16_i16.c: Regenerated.
2383         * generated/maxloc0_16_i2.c: Regenerated.
2384         * generated/maxloc0_16_i4.c: Regenerated.
2385         * generated/maxloc0_16_i8.c: Regenerated.
2386         * generated/maxloc0_16_r10.c: Regenerated.
2387         * generated/maxloc0_16_r16.c: Regenerated.
2388         * generated/maxloc0_16_r4.c: Regenerated.
2389         * generated/maxloc0_16_r8.c: Regenerated.
2390         * generated/maxloc0_4_i1.c: Regenerated.
2391         * generated/maxloc0_4_i16.c: Regenerated.
2392         * generated/maxloc0_4_i2.c: Regenerated.
2393         * generated/maxloc0_4_i4.c: Regenerated.
2394         * generated/maxloc0_4_i8.c: Regenerated.
2395         * generated/maxloc0_4_r10.c: Regenerated.
2396         * generated/maxloc0_4_r16.c: Regenerated.
2397         * generated/maxloc0_4_r4.c: Regenerated.
2398         * generated/maxloc0_4_r8.c: Regenerated.
2399         * generated/maxloc0_8_i1.c: Regenerated.
2400         * generated/maxloc0_8_i16.c: Regenerated.
2401         * generated/maxloc0_8_i2.c: Regenerated.
2402         * generated/maxloc0_8_i4.c: Regenerated.
2403         * generated/maxloc0_8_i8.c: Regenerated.
2404         * generated/maxloc0_8_r10.c: Regenerated.
2405         * generated/maxloc0_8_r16.c: Regenerated.
2406         * generated/maxloc0_8_r4.c: Regenerated.
2407         * generated/maxloc0_8_r8.c: Regenerated.
2408         * generated/maxloc1_16_i1.c: Regenerated.
2409         * generated/maxloc1_16_i16.c: Regenerated.
2410         * generated/maxloc1_16_i2.c: Regenerated.
2411         * generated/maxloc1_16_i4.c: Regenerated.
2412         * generated/maxloc1_16_i8.c: Regenerated.
2413         * generated/maxloc1_16_r10.c: Regenerated.
2414         * generated/maxloc1_16_r16.c: Regenerated.
2415         * generated/maxloc1_16_r4.c: Regenerated.
2416         * generated/maxloc1_16_r8.c: Regenerated.
2417         * generated/maxloc1_4_i1.c: Regenerated.
2418         * generated/maxloc1_4_i16.c: Regenerated.
2419         * generated/maxloc1_4_i2.c: Regenerated.
2420         * generated/maxloc1_4_i4.c: Regenerated.
2421         * generated/maxloc1_4_i8.c: Regenerated.
2422         * generated/maxloc1_4_r10.c: Regenerated.
2423         * generated/maxloc1_4_r16.c: Regenerated.
2424         * generated/maxloc1_4_r4.c: Regenerated.
2425         * generated/maxloc1_4_r8.c: Regenerated.
2426         * generated/maxloc1_8_i1.c: Regenerated.
2427         * generated/maxloc1_8_i16.c: Regenerated.
2428         * generated/maxloc1_8_i2.c: Regenerated.
2429         * generated/maxloc1_8_i4.c: Regenerated.
2430         * generated/maxloc1_8_i8.c: Regenerated.
2431         * generated/maxloc1_8_r10.c: Regenerated.
2432         * generated/maxloc1_8_r16.c: Regenerated.
2433         * generated/maxloc1_8_r4.c: Regenerated.
2434         * generated/maxloc1_8_r8.c: Regenerated.
2435         * generated/maxval_i1.c: Regenerated.
2436         * generated/maxval_i16.c: Regenerated.
2437         * generated/maxval_i2.c: Regenerated.
2438         * generated/maxval_i4.c: Regenerated.
2439         * generated/maxval_i8.c: Regenerated.
2440         * generated/maxval_r10.c: Regenerated.
2441         * generated/maxval_r16.c: Regenerated.
2442         * generated/maxval_r4.c: Regenerated.
2443         * generated/maxval_r8.c: Regenerated.
2444         * generated/minloc0_16_i1.c: Regenerated.
2445         * generated/minloc0_16_i16.c: Regenerated.
2446         * generated/minloc0_16_i2.c: Regenerated.
2447         * generated/minloc0_16_i4.c: Regenerated.
2448         * generated/minloc0_16_i8.c: Regenerated.
2449         * generated/minloc0_16_r10.c: Regenerated.
2450         * generated/minloc0_16_r16.c: Regenerated.
2451         * generated/minloc0_16_r4.c: Regenerated.
2452         * generated/minloc0_16_r8.c: Regenerated.
2453         * generated/minloc0_4_i1.c: Regenerated.
2454         * generated/minloc0_4_i16.c: Regenerated.
2455         * generated/minloc0_4_i2.c: Regenerated.
2456         * generated/minloc0_4_i4.c: Regenerated.
2457         * generated/minloc0_4_i8.c: Regenerated.
2458         * generated/minloc0_4_r10.c: Regenerated.
2459         * generated/minloc0_4_r16.c: Regenerated.
2460         * generated/minloc0_4_r4.c: Regenerated.
2461         * generated/minloc0_4_r8.c: Regenerated.
2462         * generated/minloc0_8_i1.c: Regenerated.
2463         * generated/minloc0_8_i16.c: Regenerated.
2464         * generated/minloc0_8_i2.c: Regenerated.
2465         * generated/minloc0_8_i4.c: Regenerated.
2466         * generated/minloc0_8_i8.c: Regenerated.
2467         * generated/minloc0_8_r10.c: Regenerated.
2468         * generated/minloc0_8_r16.c: Regenerated.
2469         * generated/minloc0_8_r4.c: Regenerated.
2470         * generated/minloc0_8_r8.c: Regenerated.
2471         * generated/minloc1_16_i1.c: Regenerated.
2472         * generated/minloc1_16_i16.c: Regenerated.
2473         * generated/minloc1_16_i2.c: Regenerated.
2474         * generated/minloc1_16_i4.c: Regenerated.
2475         * generated/minloc1_16_i8.c: Regenerated.
2476         * generated/minloc1_16_r10.c: Regenerated.
2477         * generated/minloc1_16_r16.c: Regenerated.
2478         * generated/minloc1_16_r4.c: Regenerated.
2479         * generated/minloc1_16_r8.c: Regenerated.
2480         * generated/minloc1_4_i1.c: Regenerated.
2481         * generated/minloc1_4_i16.c: Regenerated.
2482         * generated/minloc1_4_i2.c: Regenerated.
2483         * generated/minloc1_4_i4.c: Regenerated.
2484         * generated/minloc1_4_i8.c: Regenerated.
2485         * generated/minloc1_4_r10.c: Regenerated.
2486         * generated/minloc1_4_r16.c: Regenerated.
2487         * generated/minloc1_4_r4.c: Regenerated.
2488         * generated/minloc1_4_r8.c: Regenerated.
2489         * generated/minloc1_8_i1.c: Regenerated.
2490         * generated/minloc1_8_i16.c: Regenerated.
2491         * generated/minloc1_8_i2.c: Regenerated.
2492         * generated/minloc1_8_i4.c: Regenerated.
2493         * generated/minloc1_8_i8.c: Regenerated.
2494         * generated/minloc1_8_r10.c: Regenerated.
2495         * generated/minloc1_8_r16.c: Regenerated.
2496         * generated/minloc1_8_r4.c: Regenerated.
2497         * generated/minloc1_8_r8.c: Regenerated.
2498         * generated/minval_i1.c: Regenerated.
2499         * generated/minval_i16.c: Regenerated.
2500         * generated/minval_i2.c: Regenerated.
2501         * generated/minval_i4.c: Regenerated.
2502         * generated/minval_i8.c: Regenerated.
2503         * generated/minval_r10.c: Regenerated.
2504         * generated/minval_r16.c: Regenerated.
2505         * generated/minval_r4.c: Regenerated.
2506         * generated/minval_r8.c: Regenerated.
2507         * generated/product_c10.c: Regenerated.
2508         * generated/product_c16.c: Regenerated.
2509         * generated/product_c4.c: Regenerated.
2510         * generated/product_c8.c: Regenerated.
2511         * generated/product_i1.c: Regenerated.
2512         * generated/product_i16.c: Regenerated.
2513         * generated/product_i2.c: Regenerated.
2514         * generated/product_i4.c: Regenerated.
2515         * generated/product_i8.c: Regenerated.
2516         * generated/product_r10.c: Regenerated.
2517         * generated/product_r16.c: Regenerated.
2518         * generated/product_r4.c: Regenerated.
2519         * generated/product_r8.c: Regenerated.
2520         * generated/sum_c10.c: Regenerated.
2521         * generated/sum_c16.c: Regenerated.
2522         * generated/sum_c4.c: Regenerated.
2523         * generated/sum_c8.c: Regenerated.
2524         * generated/sum_i1.c: Regenerated.
2525         * generated/sum_i16.c: Regenerated.
2526         * generated/sum_i2.c: Regenerated.
2527         * generated/sum_i4.c: Regenerated.
2528         * generated/sum_i8.c: Regenerated.
2529         * generated/sum_r10.c: Regenerated.
2530         * generated/sum_r16.c: Regenerated.
2531         * generated/sum_r4.c: Regenerated.
2532         * generated/sum_r8.c: Regenerated.
2533
2534 2008-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2535
2536         PR libfortran/34676
2537         * io/list_read.c (next_char): Only save the EOF condition for later if
2538         advance="no".
2539
2540 2008-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
2541
2542         PR libfortran/34565
2543         * io/io.h:  Adjust protoypes for open_internal(),
2544         next_array_record() and init_loop_spec().
2545         * io/list_read.c (next_char):  Use argument "finished"
2546         of next_array_record to check for end on internal file.
2547         * io/unit.c:  Calculate the offset for an array
2548         internal file and supply this informatin to open_internal().
2549         * io/unix.c (open_internal):  Set the offset for the internal
2550         file on open.
2551         * io/transfer.c (init_loop_spec):  Calculate the starting
2552         record in case of negative strides.  Return size of 0 for
2553         an empty array.
2554         (next_array_record):  Use an extra flag to signal that the
2555         array is finished.
2556         (next_record_r):  Use the new flag to next_array_record().
2557         (next_record_w):  Likewise.