OSDN Git Service

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