OSDN Git Service

2008-05-22 Thomas Koenig <tkoenig@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2008-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2
3         PR libgfortran/36302
4         * gfortran.map (GFORTRAN_1.1): Add _gfortran_eoshift0_16,
5         _gfortran_eoshift0_16_char, _gfortran_eoshift2_16,
6         _gfortran_eoshift2_16_char,_gfortran_cshift0_16,
7         _gfortran_cshift0_16_char.  Sort alphabetically.
8         * intrinsics/eoshift0.c:  Add function for kind=16 integer.
9         * intrinsics/eoshift2.c:  Likewise.
10         * intrinsics/cshift0.c:  Likewise.
11
12 2008-05-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
13
14         * m4/in_pack.m4 (internal_pack_'rtype_code`):  Destination
15         pointer is restrict.
16         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
17         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
18         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
19         (spread_scalar_'rtype_code`): Likewise.
20         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
21         * m4/eoshift1.m4 (eoshift1):  Likewise.
22         * m4/eoshift3.m4 (eoshift3):  Likewise.
23         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):  Likewise.
24         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
25         (unpack1_'rtype_code`):  Likewise.
26         * intrinsics/pack_generic.c (pack_generic.c):  Likewise.
27         * intrinsics/unpack_generic.c (unpack_internal):  Likewise.
28         * intrinsics/eoshift0.c (eoshift0):  Likewise.
29         * intrinsics/eoshift2.c (eoshift2):  Likewise.
30         * intrinsics/reshape_generic.c (reshape_internal):  Likewise.
31         * intrinsics/reshape_packed.c (reshape_packed):  Likewise.
32         * generated/eoshift1_16.c: Regenerated.
33         * generated/eoshift1_4.c: Regenerated.
34         * generated/eoshift1_8.c: Regenerated.
35         * generated/eoshift3_16.c: Regenerated.
36         * generated/eoshift3_4.c: Regenerated.
37         * generated/eoshift3_8.c: Regenerated.
38         * generated/in_pack_c10.c: Regenerated.
39         * generated/in_pack_c16.c: Regenerated.
40         * generated/in_pack_c4.c: Regenerated.
41         * generated/in_pack_c8.c: Regenerated.
42         * generated/in_pack_i1.c: Regenerated.
43         * generated/in_pack_i16.c: Regenerated.
44         * generated/in_pack_i2.c: Regenerated.
45         * generated/in_pack_i4.c: Regenerated.
46         * generated/in_pack_i8.c: Regenerated.
47         * generated/in_pack_r10.c: Regenerated.
48         * generated/in_pack_r16.c: Regenerated.
49         * generated/in_pack_r4.c: Regenerated.
50         * generated/in_pack_r8.c: Regenerated.
51         * generated/in_unpack_c10.c: Regenerated.
52         * generated/in_unpack_c16.c: Regenerated.
53         * generated/in_unpack_c4.c: Regenerated.
54         * generated/in_unpack_c8.c: Regenerated.
55         * generated/in_unpack_i1.c: Regenerated.
56         * generated/in_unpack_i16.c: Regenerated.
57         * generated/in_unpack_i2.c: Regenerated.
58         * generated/in_unpack_i4.c: Regenerated.
59         * generated/in_unpack_i8.c: Regenerated.
60         * generated/in_unpack_r10.c: Regenerated.
61         * generated/in_unpack_r16.c: Regenerated.
62         * generated/in_unpack_r4.c: Regenerated.
63         * generated/in_unpack_r8.c: Regenerated.
64         * generated/maxloc0_16_i1.c: Regenerated.
65         * generated/maxloc0_16_i16.c: Regenerated.
66         * generated/maxloc0_16_i2.c: Regenerated.
67         * generated/maxloc0_16_i4.c: Regenerated.
68         * generated/maxloc0_16_i8.c: Regenerated.
69         * generated/maxloc0_16_r10.c: Regenerated.
70         * generated/maxloc0_16_r16.c: Regenerated.
71         * generated/maxloc0_16_r4.c: Regenerated.
72         * generated/maxloc0_16_r8.c: Regenerated.
73         * generated/maxloc0_4_i1.c: Regenerated.
74         * generated/maxloc0_4_i16.c: Regenerated.
75         * generated/maxloc0_4_i2.c: Regenerated.
76         * generated/maxloc0_4_i4.c: Regenerated.
77         * generated/maxloc0_4_i8.c: Regenerated.
78         * generated/maxloc0_4_r10.c: Regenerated.
79         * generated/maxloc0_4_r16.c: Regenerated.
80         * generated/maxloc0_4_r4.c: Regenerated.
81         * generated/maxloc0_4_r8.c: Regenerated.
82         * generated/maxloc0_8_i1.c: Regenerated.
83         * generated/maxloc0_8_i16.c: Regenerated.
84         * generated/maxloc0_8_i2.c: Regenerated.
85         * generated/maxloc0_8_i4.c: Regenerated.
86         * generated/maxloc0_8_i8.c: Regenerated.
87         * generated/maxloc0_8_r10.c: Regenerated.
88         * generated/maxloc0_8_r16.c: Regenerated.
89         * generated/maxloc0_8_r4.c: Regenerated.
90         * generated/maxloc0_8_r8.c: Regenerated.
91         * generated/minloc0_16_i1.c: Regenerated.
92         * generated/minloc0_16_i16.c: Regenerated.
93         * generated/minloc0_16_i2.c: Regenerated.
94         * generated/minloc0_16_i4.c: Regenerated.
95         * generated/minloc0_16_i8.c: Regenerated.
96         * generated/minloc0_16_r10.c: Regenerated.
97         * generated/minloc0_16_r16.c: Regenerated.
98         * generated/minloc0_16_r4.c: Regenerated.
99         * generated/minloc0_16_r8.c: Regenerated.
100         * generated/minloc0_4_i1.c: Regenerated.
101         * generated/minloc0_4_i16.c: Regenerated.
102         * generated/minloc0_4_i2.c: Regenerated.
103         * generated/minloc0_4_i4.c: Regenerated.
104         * generated/minloc0_4_i8.c: Regenerated.
105         * generated/minloc0_4_r10.c: Regenerated.
106         * generated/minloc0_4_r16.c: Regenerated.
107         * generated/minloc0_4_r4.c: Regenerated.
108         * generated/minloc0_4_r8.c: Regenerated.
109         * generated/minloc0_8_i1.c: Regenerated.
110         * generated/minloc0_8_i16.c: Regenerated.
111         * generated/minloc0_8_i2.c: Regenerated.
112         * generated/minloc0_8_i4.c: Regenerated.
113         * generated/minloc0_8_i8.c: Regenerated.
114         * generated/minloc0_8_r10.c: Regenerated.
115         * generated/minloc0_8_r16.c: Regenerated.
116         * generated/minloc0_8_r4.c: Regenerated.
117         * generated/minloc0_8_r8.c: Regenerated.
118         * generated/pack_c10.c: Regenerated.
119         * generated/pack_c16.c: Regenerated.
120         * generated/pack_c4.c: Regenerated.
121         * generated/pack_c8.c: Regenerated.
122         * generated/pack_i1.c: Regenerated.
123         * generated/pack_i16.c: Regenerated.
124         * generated/pack_i2.c: Regenerated.
125         * generated/pack_i4.c: Regenerated.
126         * generated/pack_i8.c: Regenerated.
127         * generated/pack_r10.c: Regenerated.
128         * generated/pack_r16.c: Regenerated.
129         * generated/pack_r4.c: Regenerated.
130         * generated/pack_r8.c: Regenerated.
131         * generated/spread_c10.c: Regenerated.
132         * generated/spread_c16.c: Regenerated.
133         * generated/spread_c4.c: Regenerated.
134         * generated/spread_c8.c: Regenerated.
135         * generated/spread_i1.c: Regenerated.
136         * generated/spread_i16.c: Regenerated.
137         * generated/spread_i2.c: Regenerated.
138         * generated/spread_i4.c: Regenerated.
139         * generated/spread_i8.c: Regenerated.
140         * generated/spread_r10.c: Regenerated.
141         * generated/spread_r16.c: Regenerated.
142         * generated/spread_r4.c: Regenerated.
143         * generated/spread_r8.c: Regenerated.
144         * generated/transpose_c10.c: Regenerated.
145         * generated/transpose_c16.c: Regenerated.
146         * generated/transpose_c4.c: Regenerated.
147         * generated/transpose_c8.c: Regenerated.
148         * generated/transpose_i16.c: Regenerated.
149         * generated/transpose_i4.c: Regenerated.
150         * generated/transpose_i8.c: Regenerated.
151         * generated/transpose_r10.c: Regenerated.
152         * generated/transpose_r16.c: Regenerated.
153         * generated/transpose_r4.c: Regenerated.
154         * generated/transpose_r8.c: Regenerated.
155         * generated/unpack_c10.c: Regenerated.
156         * generated/unpack_c16.c: Regenerated.
157         * generated/unpack_c4.c: Regenerated.
158         * generated/unpack_c8.c: Regenerated.
159         * generated/unpack_i1.c: Regenerated.
160         * generated/unpack_i16.c: Regenerated.
161         * generated/unpack_i2.c: Regenerated.
162         * generated/unpack_i4.c: Regenerated.
163         * generated/unpack_i8.c: Regenerated.
164         * generated/unpack_r10.c: Regenerated.
165         * generated/unpack_r16.c: Regenerated.
166         * generated/unpack_r4.c: Regenerated.
167         * generated/unpack_r8.c: Regenerated.
168
169 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
170
171         * runtime/select.c: Moved content to select_inc.c. Include it. 
172         Add macros for different character types.
173         * runtime/select_inc.c: New file.
174         * runtime/convert_char.c: New file.
175         * intrinsics/pack_generic.c (pack_char4, pack_s_char4): New
176         functions.
177         * intrinsics/transpose_generic.c (transpose_char4): New function.
178         * intrinsics/spread_generic.c (spread_char4, spread_char4_scalar):
179         New functions.
180         * intrinsics/unpack_generic.c (unpack1_char4, unpack0_char4): 
181         New functions.
182         * intrinsics/reshape_generic.c (reshape_char): Use
183         gfc_charlen_type as type for length variables.
184         (reshape_char4): New function.
185         * gfortran.map (GFORTRAN_1.1): Add _gfortran_select_string_char4,
186         _gfortran_convert_char1_to_char4, _gfortran_convert_char4_to_char1,
187         _gfortran_transpose_char4, _gfortran_spread_char4,
188         _gfortran_spread_char4_scalar, _gfortran_reshape_char4,
189         _gfortran_pack_char4, _gfortran_pack_s_char4,
190         _gfortran_unpack0_char4 and _gfortran_unpack1_char4.
191         * Makefile.am: Add runtime/convert_char.c.
192         * Makefile.in: Regenerate.
193
194 2008-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
195
196         * io/list_read.c (list_formatted_read_scalar):  Declare
197         type as volatile to shut up compiler warning.
198
199 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
200
201         PR libfortran/25561
202         * io/io.h (struct fbuf): Change pointer to position offset.
203         * io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
204         changes.
205         (fbuf_reset): ptr=>pos changes.
206         (fbuf_alloc): If the request doesn't fit, don't waste memory by
207         keeping flushed bytes. ptr=>pos changes.
208         (fbuf_flush): ptr=>pos changes.
209         (fbuf_seek): Don't seek past the left tab limit, don't update active
210         byte count.
211         * io/open.c (new_unit): If RECL has been specified, used that as
212         initial buffer size.
213
214 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
215
216         PR libfortran/35632
217         * io/open.c (new_unit): Set stream position to correct value.
218
219 2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
220
221         PR libfortran/25561
222         * Makefile.am: Add fbuf.c to gfor_io_src.
223         * Makefile.in: Regenerate.
224         * io/io.h (read_block): Remove.
225         (struct stream): Remove alloc_r_at function pointer.
226         (salloc_r): Remove.
227         (salloc_r_at): Remove.
228         (salloc_w_at): Remove.
229         (salloc_w): Remove offset argument.
230         (struct fbuf): New struct for format buffer.
231         (struct gfc_unit): Add fbuf.
232         (read_block_form): New prototype.
233         (fbuf_init): Likewise.
234         (fbuf_destroy): Likewise.
235         (fbuf_reset): Likewise.
236         (fbuf_alloc): Likewise.
237         (fbuf_flush): Likewise.
238         (fbuf_seek): Likewise.
239         * io/file_pos.c (formatted_backspace): Change to use sread.
240         (unformatted_backspace): Likewise.
241         (st_backspace): Flush format buffer.
242         (st_rewind): Likewise.
243         * io/list_read.c (next_char): Likewise.
244         (nml_query): Tidying, flush format buffer.
245         * io/open.c (new_unit): Init format buffer.
246         * io/read.c (read_l): Change to use read_block_form.
247         (read_a): Likewise.
248         (read_decimal): Likewise.
249         (read_radix): Likewise.
250         (read_f): Likewise.
251         (read_x): Empty reads also for stream I/O.
252         * io/transfer.c (read_sf): Change to use sread.
253         (read_block): Rename to read_block_form, change prototype, use sread.
254         (read_block_direct): Don't seek stream files.
255         (write_block): Change to use fbuf if external file, don't seek stream
256         files.
257         (write_buf): Don't seek stream files.
258         (formatted_transfer_scalar): Use fbuf for external files.
259         (us_read): Change to use sread.
260         (pre_position): Do nothing for stream I/O.
261         (data_transfer_init): Flush fbuf when switching from write to read, if
262         POS is specified, seek stream file to correct offset.
263         (skip_record): Change to use sread.
264         (min_off): New function.
265         (next_record_r): Change to use sread.
266         (next_record_w): Change to use sset/sseek, flush fbuf.
267         (finalize_transfer): Flush fbuf.
268         * io/unit.c (init_units): Init fbuf for stdout, stderr.
269         (close_unit_1): Destroy fbuf.
270         (finish_last_advance_record): Flush fbuf, no need to seek.
271         * io/unix.c (fd_alloc_r_at): Remove unused where argument.
272         (fd_alloc_w_at): Likewise.
273         (fd_read): Remove third argument to fd_alloc_r_at.
274         (fd_write): Remove third argument to fd_alloc_w_at.
275         (fd_sset): Likewise.
276         (fd_open): Don't set alloc_r_at.
277         (mem_alloc_r_at): Remove unused where argument.
278         (mem_alloc_w_at): Likewise.
279         (mem_read): Don't incorrectly return previous errno, remove unused
280         third argument to alloc function.
281         (mem_write): Likewise.
282         (mem_set): Likewise.
283         (open_internal): Don't set alloc_r_at pointer.
284         * io/fbuf.c: New file.
285
286 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
287
288         * libgfortran.h (gfc_char4_t): New type.
289         (GFC_SIZE_OF_CHAR_KIND): New macro.
290         (compare_string): Adjust prototype.
291         (compare_string_char4): New prototype.
292         * gfortran.map (GFORTRAN_1.1): Add _gfortran_adjustl_char4,
293         _gfortran_adjustr_char4, _gfortran_compare_string_char4,
294         _gfortran_concat_string_char4, _gfortran_string_index_char4,
295         _gfortran_string_len_trim_char4, _gfortran_string_minmax_char4,
296         _gfortran_string_scan_char4, _gfortran_string_trim_char4 and
297         _gfortran_string_verify_char4.
298         * intrinsics/string_intrinsics_inc.c: New file from content of
299         string_intrinsics.c with types replaced by macros.
300         * intrinsics/string_intrinsics.c: Move content to
301         string_intrinsics_inc.c.
302
303 2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
304
305         PR libfortran/36202
306         * io/list_read (eat_separator): Handle the CR-LF case correctly.
307
308 2008-05-09  Julian Brown  <julian@codesourcery.com>
309
310         * Makefile.am (LTLDFLAGS): New.
311         (libgfortran_la_LDFLAGS): Use above.
312         * Makefile.in: Regenerate.
313
314 2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
315
316         PR libfortran/36131
317         * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
318         (next_record_w): Likewise.
319
320 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
321
322         PR libfortran/35995
323         * m4/ifunction_logical.m4:  If the extent of "array"
324         is less than zero, set it to zero.  Use an explicit
325         flag for breaking out of the main loop to avoid, because
326         the data pointer for "array" may be NULL for an empty
327         array.
328         * m4/ifunction.m4:  Likewise.
329         * generated/all_l1.c: Regenerated.
330         * generated/all_l16.c: Regenerated.
331         * generated/all_l2.c: Regenerated.
332         * generated/all_l4.c: Regenerated.
333         * generated/all_l8.c: Regenerated.
334         * generated/any_l1.c: Regenerated.
335         * generated/any_l16.c: Regenerated.
336         * generated/any_l2.c: Regenerated.
337         * generated/any_l4.c: Regenerated.
338         * generated/any_l8.c: Regenerated.
339         * generated/count_16_l.c: Regenerated.
340         * generated/count_1_l.c: Regenerated.
341         * generated/count_2_l.c: Regenerated.
342         * generated/count_4_l.c: Regenerated.
343         * generated/count_8_l.c: Regenerated.
344         * generated/maxloc1_16_i1.c: Regenerated.
345         * generated/maxloc1_16_i16.c: Regenerated.
346         * generated/maxloc1_16_i2.c: Regenerated.
347         * generated/maxloc1_16_i4.c: Regenerated.
348         * generated/maxloc1_16_i8.c: Regenerated.
349         * generated/maxloc1_16_r10.c: Regenerated.
350         * generated/maxloc1_16_r16.c: Regenerated.
351         * generated/maxloc1_16_r4.c: Regenerated.
352         * generated/maxloc1_16_r8.c: Regenerated.
353         * generated/maxloc1_4_i1.c: Regenerated.
354         * generated/maxloc1_4_i16.c: Regenerated.
355         * generated/maxloc1_4_i2.c: Regenerated.
356         * generated/maxloc1_4_i4.c: Regenerated.
357         * generated/maxloc1_4_i8.c: Regenerated.
358         * generated/maxloc1_4_r10.c: Regenerated.
359         * generated/maxloc1_4_r16.c: Regenerated.
360         * generated/maxloc1_4_r4.c: Regenerated.
361         * generated/maxloc1_4_r8.c: Regenerated.
362         * generated/maxloc1_8_i1.c: Regenerated.
363         * generated/maxloc1_8_i16.c: Regenerated.
364         * generated/maxloc1_8_i2.c: Regenerated.
365         * generated/maxloc1_8_i4.c: Regenerated.
366         * generated/maxloc1_8_i8.c: Regenerated.
367         * generated/maxloc1_8_r10.c: Regenerated.
368         * generated/maxloc1_8_r16.c: Regenerated.
369         * generated/maxloc1_8_r4.c: Regenerated.
370         * generated/maxloc1_8_r8.c: Regenerated.
371         * generated/maxval_i1.c: Regenerated.
372         * generated/maxval_i16.c: Regenerated.
373         * generated/maxval_i2.c: Regenerated.
374         * generated/maxval_i4.c: Regenerated.
375         * generated/maxval_i8.c: Regenerated.
376         * generated/maxval_r10.c: Regenerated.
377         * generated/maxval_r16.c: Regenerated.
378         * generated/maxval_r4.c: Regenerated.
379         * generated/maxval_r8.c: Regenerated.
380         * generated/minloc1_16_i1.c: Regenerated.
381         * generated/minloc1_16_i16.c: Regenerated.
382         * generated/minloc1_16_i2.c: Regenerated.
383         * generated/minloc1_16_i4.c: Regenerated.
384         * generated/minloc1_16_i8.c: Regenerated.
385         * generated/minloc1_16_r10.c: Regenerated.
386         * generated/minloc1_16_r16.c: Regenerated.
387         * generated/minloc1_16_r4.c: Regenerated.
388         * generated/minloc1_16_r8.c: Regenerated.
389         * generated/minloc1_4_i1.c: Regenerated.
390         * generated/minloc1_4_i16.c: Regenerated.
391         * generated/minloc1_4_i2.c: Regenerated.
392         * generated/minloc1_4_i4.c: Regenerated.
393         * generated/minloc1_4_i8.c: Regenerated.
394         * generated/minloc1_4_r10.c: Regenerated.
395         * generated/minloc1_4_r16.c: Regenerated.
396         * generated/minloc1_4_r4.c: Regenerated.
397         * generated/minloc1_4_r8.c: Regenerated.
398         * generated/minloc1_8_i1.c: Regenerated.
399         * generated/minloc1_8_i16.c: Regenerated.
400         * generated/minloc1_8_i2.c: Regenerated.
401         * generated/minloc1_8_i4.c: Regenerated.
402         * generated/minloc1_8_i8.c: Regenerated.
403         * generated/minloc1_8_r10.c: Regenerated.
404         * generated/minloc1_8_r16.c: Regenerated.
405         * generated/minloc1_8_r4.c: Regenerated.
406         * generated/minloc1_8_r8.c: Regenerated.
407         * generated/minval_i1.c: Regenerated.
408         * generated/minval_i16.c: Regenerated.
409         * generated/minval_i2.c: Regenerated.
410         * generated/minval_i4.c: Regenerated.
411         * generated/minval_i8.c: Regenerated.
412         * generated/minval_r10.c: Regenerated.
413         * generated/minval_r16.c: Regenerated.
414         * generated/minval_r4.c: Regenerated.
415         * generated/minval_r8.c: Regenerated.
416         * generated/product_c10.c: Regenerated.
417         * generated/product_c16.c: Regenerated.
418         * generated/product_c4.c: Regenerated.
419         * generated/product_c8.c: Regenerated.
420         * generated/product_i1.c: Regenerated.
421         * generated/product_i16.c: Regenerated.
422         * generated/product_i2.c: Regenerated.
423         * generated/product_i4.c: Regenerated.
424         * generated/product_i8.c: Regenerated.
425         * generated/product_r10.c: Regenerated.
426         * generated/product_r16.c: Regenerated.
427         * generated/product_r4.c: Regenerated.
428         * generated/product_r8.c: Regenerated.
429         * generated/sum_c10.c: Regenerated.
430         * generated/sum_c16.c: Regenerated.
431         * generated/sum_c4.c: Regenerated.
432         * generated/sum_c8.c: Regenerated.
433         * generated/sum_i1.c: Regenerated.
434         * generated/sum_i16.c: Regenerated.
435         * generated/sum_i2.c: Regenerated.
436         * generated/sum_i4.c: Regenerated.
437         * generated/sum_i8.c: Regenerated.
438         * generated/sum_r10.c: Regenerated.
439         * generated/sum_r16.c: Regenerated.
440         * generated/sum_r4.c: Regenerated.
441         * generated/sum_r8.c: Regenerated.
442
443 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
444
445         PR libfortran/35990
446         * intrinsics/pack_generic.c:  Really commit.
447
448 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
449
450         PR libfortran/35990
451         * intrinsics/pack_generic.c:  If an extent of the source
452         array is less then zero, set it to zero.  Set the source
453         pointer to NULL if the source size is zero.  Set the total
454         number of elements to zero if the vector has an extent
455         less or equal to zero.
456         * m4/pack.m4:  Set the source pointer to NULL if the
457         source array is zero-sized.  Set the total number of
458         elemements to zero if the vector has an extent less or
459         equal to zero.
460         * generated/pack_i1.c:  Regenerated.
461         * generated/pack_i2.c:  Regenerated.
462         * generated/pack_i4.c:  Regenerated.
463         * generated/pack_i8.c:  Regenerated.
464         * generated/pack_i16.c:  Regenerated.
465         * generated/pack_r4.c:  Regenerated.
466         * generated/pack_r8.c:  Regenerated.
467         * generated/pack_r10.c:  Regenerated.
468         * generated/pack_r16.c:  Regenerated.
469         * generated/pack_c4.c:  Regenerated.
470         * generated/pack_c8.c:  Regenerated.
471         * generated/pack_c10.c:  Regenerated.
472         * generated/pack_c16.c:  Regenerated.
473
474 2008-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
475
476         PR libfortran/36094
477         * runtime/error.c (show_locus): Provide modified error message when
478         filename has not yet been associated with a unit number.
479         * io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
480
481 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
482
483         * intrinsics/selected_char_kind.c: New file.
484         * gfortran.map (GFORTRAN_1.1): Add _gfortran_selected_char_kind.
485         * Makefile.am: Add intrinsics/selected_char_kind.c.
486         * Makefile.in: Regenerate.
487
488 2008-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
489
490         PR libfortran/35993
491         * ifunction.m4 (SCALAR_ARRAY_FUNCTION):  Use correct
492         implementation for multi-dimensional return arrays when
493         the mask is .false.
494         * generated/maxloc1_16_i1.c: Regenerated.
495         * generated/maxloc1_16_i16.c: Regenerated.
496         * generated/maxloc1_16_i2.c: Regenerated.
497         * generated/maxloc1_16_i4.c: Regenerated.
498         * generated/maxloc1_16_i8.c: Regenerated.
499         * generated/maxloc1_16_r10.c: Regenerated.
500         * generated/maxloc1_16_r16.c: Regenerated.
501         * generated/maxloc1_16_r4.c: Regenerated.
502         * generated/maxloc1_16_r8.c: Regenerated.
503         * generated/maxloc1_4_i1.c: Regenerated.
504         * generated/maxloc1_4_i16.c: Regenerated.
505         * generated/maxloc1_4_i2.c: Regenerated.
506         * generated/maxloc1_4_i4.c: Regenerated.
507         * generated/maxloc1_4_i8.c: Regenerated.
508         * generated/maxloc1_4_r10.c: Regenerated.
509         * generated/maxloc1_4_r16.c: Regenerated.
510         * generated/maxloc1_4_r4.c: Regenerated.
511         * generated/maxloc1_4_r8.c: Regenerated.
512         * generated/maxloc1_8_i1.c: Regenerated.
513         * generated/maxloc1_8_i16.c: Regenerated.
514         * generated/maxloc1_8_i2.c: Regenerated.
515         * generated/maxloc1_8_i4.c: Regenerated.
516         * generated/maxloc1_8_i8.c: Regenerated.
517         * generated/maxloc1_8_r10.c: Regenerated.
518         * generated/maxloc1_8_r16.c: Regenerated.
519         * generated/maxloc1_8_r4.c: Regenerated.
520         * generated/maxloc1_8_r8.c: Regenerated.
521         * generated/maxval_i1.c: Regenerated.
522         * generated/maxval_i16.c: Regenerated.
523         * generated/maxval_i2.c: Regenerated.
524         * generated/maxval_i4.c: Regenerated.
525         * generated/maxval_i8.c: Regenerated.
526         * generated/maxval_r10.c: Regenerated.
527         * generated/maxval_r16.c: Regenerated.
528         * generated/maxval_r4.c: Regenerated.
529         * generated/maxval_r8.c: Regenerated.
530         * generated/minloc1_16_i1.c: Regenerated.
531         * generated/minloc1_16_i16.c: Regenerated.
532         * generated/minloc1_16_i2.c: Regenerated.
533         * generated/minloc1_16_i4.c: Regenerated.
534         * generated/minloc1_16_i8.c: Regenerated.
535         * generated/minloc1_16_r10.c: Regenerated.
536         * generated/minloc1_16_r16.c: Regenerated.
537         * generated/minloc1_16_r4.c: Regenerated.
538         * generated/minloc1_16_r8.c: Regenerated.
539         * generated/minloc1_4_i1.c: Regenerated.
540         * generated/minloc1_4_i16.c: Regenerated.
541         * generated/minloc1_4_i2.c: Regenerated.
542         * generated/minloc1_4_i4.c: Regenerated.
543         * generated/minloc1_4_i8.c: Regenerated.
544         * generated/minloc1_4_r10.c: Regenerated.
545         * generated/minloc1_4_r16.c: Regenerated.
546         * generated/minloc1_4_r4.c: Regenerated.
547         * generated/minloc1_4_r8.c: Regenerated.
548         * generated/minloc1_8_i1.c: Regenerated.
549         * generated/minloc1_8_i16.c: Regenerated.
550         * generated/minloc1_8_i2.c: Regenerated.
551         * generated/minloc1_8_i4.c: Regenerated.
552         * generated/minloc1_8_i8.c: Regenerated.
553         * generated/minloc1_8_r10.c: Regenerated.
554         * generated/minloc1_8_r16.c: Regenerated.
555         * generated/minloc1_8_r4.c: Regenerated.
556         * generated/minloc1_8_r8.c: Regenerated.
557         * generated/minval_i1.c: Regenerated.
558         * generated/minval_i16.c: Regenerated.
559         * generated/minval_i2.c: Regenerated.
560         * generated/minval_i4.c: Regenerated.
561         * generated/minval_i8.c: Regenerated.
562         * generated/minval_r10.c: Regenerated.
563         * generated/minval_r16.c: Regenerated.
564         * generated/minval_r4.c: Regenerated.
565         * generated/minval_r8.c: Regenerated.
566         * generated/product_c10.c: Regenerated.
567         * generated/product_c16.c: Regenerated.
568         * generated/product_c4.c: Regenerated.
569         * generated/product_c8.c: Regenerated.
570         * generated/product_i1.c: Regenerated.
571         * generated/product_i16.c: Regenerated.
572         * generated/product_i2.c: Regenerated.
573         * generated/product_i4.c: Regenerated.
574         * generated/product_i8.c: Regenerated.
575         * generated/product_r10.c: Regenerated.
576         * generated/product_r16.c: Regenerated.
577         * generated/product_r4.c: Regenerated.
578         * generated/product_r8.c: Regenerated.
579         * generated/sum_c10.c: Regenerated.
580         * generated/sum_c16.c: Regenerated.
581         * generated/sum_c4.c: Regenerated.
582         * generated/sum_c8.c: Regenerated.
583         * generated/sum_i1.c: Regenerated.
584         * generated/sum_i16.c: Regenerated.
585         * generated/sum_i2.c: Regenerated.
586         * generated/sum_i4.c: Regenerated.
587         * generated/sum_i8.c: Regenerated.
588         * generated/sum_r10.c: Regenerated.
589         * generated/sum_r16.c: Regenerated.
590         * generated/sum_r4.c: Regenerated.
591         * generated/sum_r8.c: Regenerated.
592
593 2008-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
594
595         PR libfortran/35960
596         * m4/reshape.m4:  Fix typo in last commit.
597         * generated/reshape_i4.c:  Regererated.
598         * generated/reshape_i8.c:  Regenerated.
599         * generated/reshape_i16.c:  Regenerated.
600         * generated/reshape_r4.c:  Regenerated.
601         * generated/reshape_r8.c:  Regenerated.
602         * generated/reshape_r10.c:  Regenerated.
603         * generated/reshape_r16.c:  Regenerated.
604         * generated/reshape_c4.c:  Regenerated.
605         * generated/reshape_c8.c:  Regenerated.
606         * generated/reshape_c10.c:  Regenerated.
607         * generated/reshape_c16.c:  Regenerated.
608
609 2008-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
610
611         * intrinsics/time_1.h (__time_1): Remove unused variable.
612
613 2008-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
614
615         PR libfortran/35988
616         * m4/matmul.m4:  Only issue a runtime error if extents are
617         non-zero.
618         * generated/matmul_i1.c:  Regenerated.
619         * generated/matmul_i2.c:  Regenerated.
620         * generated/matmul_i4.c:  Regenerated.
621         * generated/matmul_i8.c:  Regenerated.
622         * generated/matmul_i16.c:  Regenerated.
623         * generated/matmul_r4.c:  Regenerated.
624         * generated/matmul_r8.c:  Regenerated.
625         * generated/matmul_r10.c:  Regenerated.
626         * generated/matmul_r16.c:  Regenerated.
627         * generated/matmul_c4.c:  Regenerated.
628         * generated/matmul_c8.c:  Regenerated.
629         * generated/matmul_c10.c:  Regenerated.
630         * generated/matmul_c16.c:  Regenerated.
631
632 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
633
634         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY)
635         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT)
636         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS, LIBGFOR_CHECK_SYNC_FETCH_AND_ADD)
637         (LIBGFOR_GTHREAD_WEAK, LIBGFOR_CHECK_UNLINK_OPEN_FILE)
638         (LIBGFOR_CHECK_CRLF, LIBGFOR_CHECK_FOR_BROKEN_ISFINITE)
639         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN)
640         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY, LIBGFOR_CHECK_WORKING_STAT)
641         (LIBGFOR_CHECK_FPSETMASK, LIBGFOR_CHECK_MINGW_SNPRINTF):
642         Fix cache variable names.
643         * configure, Makefile.in: Regenerate.
644
645 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
646
647         PR fortran/35991
648         * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
649
650 2008-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
651
652         PR libfortran/35960
653         * intrinsics/reshape_generic.c (reshape_internal): If the size
654         of the resized array is zero, as determined by the SHAPE
655         argument, return early.
656         * m4/reshape.m4:  Likewise.
657         * generated/reshape_i4.c:  Regererated.
658         * generated/reshape_i8.c:  Regenerated.
659         * generated/reshape_i16.c:  Regenerated.
660         * generated/reshape_r4.c:  Regenerated.
661         * generated/reshape_r8.c:  Regenerated.
662         * generated/reshape_r10.c:  Regenerated.
663         * generated/reshape_r16.c:  Regenerated.
664         * generated/reshape_c4.c:  Regenerated.
665         * generated/reshape_c8.c:  Regenerated.
666         * generated/reshape_c10.c:  Regenerated.
667         * generated/reshape_c16.c:  Regenerated.
668
669 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
670
671         PR bootstrap/35457
672         * aclocal.m4: Regenerate.
673         * configure: Regenerate.
674
675 2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
676
677         PR libfortran/32972
678         * intrinsics/spread_generic.c (spread):  Use spread_i2()
679         for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
680
681 2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
682         Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
683
684         PR libfortran/32972
685         PR libfortran/32512
686         configure.ac:  Add test for uintptr_t.
687         configure:  Regenerated.
688         config.h.in:  Regenerated.
689         * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
690         GFC_DTYPE_DERIVED_2:  New macro.
691         GFC_DTYPE_DERIVED_4:  New macro.
692         GFC_DTYPE_DERIVED_8:  New macro.
693         GFC_DTYPE_DERIVED_16:  New macro.
694         GFC_UNALIGNED_2:  New macro.
695         GFC_UNALIGNED_4:  New macro.
696         GFC_UNALIGNED_8:  New macro.
697         GFC_UNALIGNED_16:  New macro.
698         intptr_t:  Define if we don't have it.
699         uintptr_t:  Likewise.
700         * runtime/backtrace.c (show_backtrace):  Use intptr_t.
701         * intrinsics/signal.c (signal_sub):  Likewise.
702         (signal_sub_int):  Likewise.
703         (alarm_sub_int_i4):  Likewise.
704         * intrinsics/spread_generic.c (spread):  Use the integer
705         routines for handling derived types of sizes 1, 2, 4, 8 and 16
706         if the alignment of all pointers is correct.
707         (spread_scalar):  Likewise.
708         * intrinsics/pack_generic.c (pack):  Likewise.
709         Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
710         * intrinsics/unpack_generic.c (unpack1):  Likewise.
711         (unpack0):  Likewise.
712         * runtime/in_pack_generic.c (internal_pack):  Likewise.
713         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
714
715 2008-04-09  Jakub Jelinek  <jakub@redhat.com>
716
717         * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
718         (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
719         recursive call.  Use snprintf instead of sprintf when %s nl->var_name
720         is used.
721         (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
722         nml_read_obj call.  Use snprintf instead of sprintf when %s
723         nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
724         of parse_err_msg array.  Append " for namelist variable " and
725         nl->var_name to it.
726         (namelist_read): Increase size of nml_err_msg array to 200.  Pass
727         sizeof nml_err_msg as extra argument to nml_get_obj_data.
728
729 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
730
731         PR fortran/25829 28655
732         * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
733         and flags.status. (st_open): Initialize flags.async.
734         * io/list_read.c (read_charactor): Use delim_status instead of
735         flags.delim.
736         * io/read.c (read_x): Use pad_status instead of flags.pad.
737         * io/inquire.c (inquire_via_unit): Add new checks.
738         (inquire_via_filename): Likewise.
739         * io/io.h (st_parameter_inquire): Add new flags.
740         (st_parameter_dt): Likewise.
741         * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
742         flags.async.
743         * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
744         pad_status instead of flags.pad. (read_block): Likewise.
745         (data_transfer_init): Set flags.async and add checks.
746         * io/write.c (write_character): Use delim_status.
747         (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
748         (namelist_write): Likewise.
749
750 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
751
752         PR fortran/25829 28655
753         * gfortran.map: Add new symbol, _gfortran_st_wait.
754         * libgfortran.h (st_paramter_common): Add new I/O parameters.
755         * open.c (st_option decimal_opt[], st_option encoding_opt[],
756         st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
757         parameter option arrays. (edit_modes): Add checks for new parameters.
758         (new_unit): Likewise. (st_open): Likewise.
759         * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
760         (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
761         (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
762         * read.c (read_a): Use decimal status flag to allow comma in place of a
763         decimal point. (read_f): Allow comma as acceptable character in float.
764         According to decimal flag, substitute a period for a comma.
765         (read_x): If decimal status flag is comma, disable the read_comma flag,
766         not allowing comma as a delimiter, an extension otherwise.
767         * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
768         unit_async): New enumerators. Add all new I/O parameters.
769         * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
770         (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
771         (fd_sfree): Use new enumerator. (fd_read): Likewise.
772         (fd_write): Likewise. (fd_close): Fix whitespace.
773         (fd_open): Use new enumertors. (tempfile, regular_file,
774         open_external): Fix whitespace. (output_stream, error_stream): Set
775         method. (stream_offset): Fix whitespace.
776         * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
777         option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
778         based on new decimal_status flag. (data_transfer_init): Initialize new
779         parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
780         * format.c: (format_lex): Add format specifiers DP, DC, and D.
781         (parse_format_list): Parse the new specifiers.
782         * write.c (write_decimal): Use new sign enumerators to set the sign.
783         (write_complex): Handle decimal comma and semi-colon separator.
784         (nml_write_obj): Likewise.
785         * write_float.def: Revise sign enumerators. (calculate_sign): Use new
786         sign enumerators. (output_float): Likewise. Use new decimal_status flag
787         to set the decimal character to a point or a comma.
788         
789 2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
790
791         PR libfortran/32972
792         PR libfortran/32512
793         * Makefile.am:  Add new variable, i_spread_c, containing
794         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
795         spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
796         spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
797         * Makefile.in:  Regenerated.
798         * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
799         spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
800         spread_c4, spread_c8, spread_c10, spread_c16,
801         spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
802         spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
803         spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
804         spread_scalar_c10 and spread_scalar_c16.
805         Add macros to isolate both type and size information
806         from array descriptors with a single mask operation.
807         * intrinsics/spread_generic.c:  Add calls to specific
808         spread functions.
809         * m4/spread.m4:  New file.
810         * generated/spread_i1.c:  New file.
811         * generated/spread_i2.c:  New file.
812         * generated/spread_i4.c:  New file.
813         * generated/spread_i8.c:  New file.
814         * generated/spread_i16.c:  New file.
815         * generated/spread_r4.c:  New file.
816         * generated/spread_r8.c:  New file.
817         * generated/spread_r10.c:  New file.
818         * generated/spread_r16.c:  New file.
819         * generated/spread_c4.c:  New file.
820         * generated/spread_c8.c:  New file.
821         * generated/spread_c10.c:  New file.
822         * generated/spread_c16.c:  New file.
823
824 2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
825
826         PR libfortran/35699
827         * io/transfer.c (write_buf):  Don't pad the record, just return if the
828         data is NULL.  (next_record_w): If there are bytes left in the record
829         for unformatted direct I/O, pad out the record with zero bytes.
830
831 2008-03-28  Tobias Burnus  <burnus@net-b.de>
832
833         PR fortran/35721
834         * intrinsics/associated.c (associated): Ignore different
835         stride of pointer vs. target if only one element is referred.
836
837 2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
838
839         * io/unix.c (fd_close):  Do not close STDIN.
840
841 2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
842
843         PR libfortran/32972
844         * Makefile.am:  Add new variable, i_unpack_c, containing
845         unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
846         unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
847         unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
848         and unpack_c16.c
849         Add i_unpack_c to gfor_built_src.
850         Add rule to generate i_unpack_c from m4/unpack.m4.
851         * Makefile.in:  Regenerated.
852         * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
853         unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
854         unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
855         unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
856         unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
857         unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
858         * intrinsics/pack_generic.c (unpack1):  Add calls to specific
859         unpack1 functions.
860         (unpack0):  Add calls to specific unpack0 functions.
861         * m4/unpack.m4:  New file.
862         * generated/unpack_i1.c:  New file.
863         * generated/unpack_i2.c:  New file.
864         * generated/unpack_i4.c:  New file.
865         * generated/unpack_i8.c:  New file.
866         * generated/unpack_i16.c:  New file.
867         * generated/unpack_r4.c:  New file.
868         * generated/unpack_r8.c:  New file.
869         * generated/unpack_r10.c:  New file.
870         * generated/unpack_r16.c:  New file.
871         * generated/unpack_c4.c:  New file.
872         * generated/unpack_c8.c:  New file.
873         * generated/unpack_c10.c:  New file.
874         * generated/unpack_c16.c:  New file.
875
876 2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
877
878         PR libfortran/35632
879         * io/transfer.c (data_transfer_init):  Fix whitespace.
880         (next_record_w): Truncate the file only if the stream
881         position is short of the file end.
882
883 2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
884
885         * intrinsics/pack_generic.c:  Fix typo.
886
887 2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
888
889         * gfortran.map: Move erfc_scaled symbols to new symbol node
890         GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
891
892 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
893
894         PR libfortran/32972
895         * runtime/in_pack_generic.c (internal_pack):  Call correct
896         function, pack_i16, for GFC_INTEGER_16.
897
898 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
899
900         PR libfortran/32972
901         * Makefile.am:  Add new variable, i_pack_c, containing
902         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
903         pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
904         pack_c8.c, pack_c10.c, pack_c16.c.
905         Add m4/pack.m4 to m4_files.
906         Add i_pack_c to gfor_built_src.
907         Add rule to generate i_pack_c from m4/pack.m4.
908         * Makefile.in:  Regenerated.
909         * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
910         pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
911         pack_c10, pack_c16.
912         * intrinsics/pack_generic.c:  Add calls to specific
913         pack functions.
914         * m4/pack.m4:  New file.
915         * generated/pack_i1.c:  New file.
916         * generated/pack_i2.c:  New file.
917         * generated/pack_i4.c:  New file.
918         * generated/pack_i8.c:  New file.
919         * generated/pack_i16.c:  New file.
920         * generated/pack_r4.c:  New file.
921         * generated/pack_r8.c:  New file.
922         * generated/pack_r10.c:  New file.
923         * generated/pack_r16.c:  New file.
924         * generated/pack_c4.c:  New file.
925         * generated/pack_c8.c:  New file.
926         * generated/pack_c10.c:  New file.
927         * generated/pack_c16.c:  New file.
928
929 2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
930
931         PR libfortran/35627
932         * io/list_read.c (free_line): Clear the line buffer enable flag and
933         reset the index into line_buffer, aka item_count.
934         (next_char): Cleanup whitespace.
935         (read_logical): Use unget_char to assure that the first character of the
936         bad logical is saved in case it is part of an object name. Remove the
937         clearing of index and flag that is now in free_line.
938         (read_real): Likewise.
939
940 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
941
942         PR libfortran/32972
943         * runtime/in_pack_generic.c (internal_pack):  Fix typo in
944         last commit.
945
946 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
947
948         PR libfortran/32972
949         * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
950         in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
951         (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
952         in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
953         in_unpack_r16.c.
954         * Makefile.in: Regenerate.
955         * libgfortran.h:  Add prototypes for internal_pack_1,
956         internal_pack_2, internal_pack_16, internal_pack_r4,
957         internal_pack_r8, internal_pack_r10, internal_pack_r16,
958         internal_pack_c10 and internal_pack_c16.  Add prototypes for
959         internal_unpack_1, internal_unpack_2, internal_unpack_16,
960         internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
961         internal_unpack_r16, internal_unpack_c10 and
962         internal_unpack_c16.
963         * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
964         of hardwired sizes.
965         Add calls to internal_pack_1, internal_pack_2,
966         internal_pack_16, internal_pack_r4, internal_pack_r8,
967         internal_pack_r10, internal_pack_r16, internal_pack_c10 and
968         internal_pack_c16.
969         * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
970         instead of hardwired sizes.
971         Add calls to internal_unpack_1, internal_unpack_2,
972         internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
973         internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
974         and internal_unpack_c16.
975         * generated/in_pack_r4.c:  New file.
976         * generated/in_pack_i2.c:  New file.
977         * generated/in_unpack_i1.c:  New file.
978         * generated/in_pack_r10.c:  New file.
979         * generated/in_unpack_r4.c:  New file.
980         * generated/in_unpack_i2.c:  New file.
981         * generated/in_unpack_r16.c:  New file.
982         * generated/in_pack_r8.c:  New file.
983         * generated/in_unpack_r10.c:  New file.
984         * generated/in_unpack_r8.c:  New file.
985         * generated/in_pack_r16.c:  New file.
986         * generated/in_pack_i1.c:  New file.
987
988 2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
989
990         PR libfortran/35617
991         * io/list_read.c (eat_separator): If next character after eatline is '!'
992         then eatline again. 
993
994 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
995
996         * aclocal.m4: Regenerate.
997         * configure: Likewise.
998         * Makefile.in: Likewise.
999
1000 2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1001
1002         PR libfortran/35524
1003         * intrinsics/erfc_scaled_inc.c: Only define the long double
1004         variant of erfc_scaled if expl is available.
1005
1006 2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1007
1008         PR libfortran/32812
1009         * intrinsics/random.c (scramble_seed, unscramble_seed): New
1010         functions.
1011         (random_seed_i4): Scramble the seed the user gives us before
1012         storing it, and unscramble it when we return it back later.
1013
1014 2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
1015
1016         PR libfortran/35293
1017         * io/unix.c (fd_truncate): Fold s->special_file case into
1018         success case of ftruncate/chsize call instead of the failure case.
1019         Make failure case actually return failure.  Properly update stream
1020         pointers on failure.  Call runtime_error for targets without
1021         neither ftruncate nor chsize where such a call would be needed.
1022
1023 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1024
1025         PR fortran/33197
1026         * intrinsics/erfc_scaled_inc.c: New file.
1027         * intrinsics/erfc_scaled.c: New file.
1028         * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
1029         * Makefile.am: Add intrinsics/erfc_scaled.c.
1030         * config.h.in: Regenerate.
1031         * configure: Regenerate.
1032         * Makefile.in: Regenerate.
1033
1034 2008-03-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1035
1036         PR libfortran/35355
1037         * intrinsics/time_1.h (__time_1): Fix calculation of user_usec
1038         for mingw.
1039
1040 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
1041
1042         PR libfortran/35063
1043         * io/unit.c (destroy_unit_mutex): Call __gthread_mutex_destroy
1044         instead of macro kludge.
1045         
1046 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
1047
1048         PR fortran/29549
1049         * Makefile.am: Add -fcx-fortran-rules to AM_CFLAGS for all of
1050         libgfortran.
1051         * Makefile.in: Regenerated.
1052
1053 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1054
1055         * m4/ifunction_logical.m4: Add casts to get rid of warnings.
1056         * generated/all_l1.c: Regenerate.
1057         * generated/all_l2.c: Regenerate.
1058         * generated/all_l4.c: Regenerate.
1059         * generated/all_l8.c: Regenerate.
1060         * generated/all_l16.c: Regenerate.
1061         * generated/any_l1.c: Regenerate.
1062         * generated/any_l2.c: Regenerate.
1063         * generated/any_l4.c: Regenerate.
1064         * generated/any_l8.c: Regenerate.
1065         * generated/any_l16.c: Regenerate.
1066         * generated/count_1_l.c: Regenerate.
1067         * generated/count_2_l.c: Regenerate.
1068         * generated/count_4_l.c: Regenerate.
1069         * generated/count_8_l.c: Regenerate.
1070         * generated/count_16_l.c: Regenerate.
1071
1072 2008-02-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1073
1074         PR libfortran/32841
1075         * acinclude.m4: Don't use HAVE_MATH_H.
1076         * configure: Regenerate.
1077
1078 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1079
1080         PR libfortran/35132
1081         * io/transfer.c (next_record_w): Truncate after the last record for
1082         STREAM I/O.
1083
1084         PR libfortran/34954
1085         * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
1086
1087         PR libfortran/34974
1088         * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
1089         is less than zero. (next_record_w): Use sseek to position the file to
1090         the max position reached.
1091
1092 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1093
1094         PR libfortran/35036
1095         * write_float.def (output_float):  Add error checks for zero digits
1096         after decimal point in E and D format specifiers.
1097         
1098 2008-02-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1099
1100         PR libfortran/35063
1101         * io/unit.c (destroy_unit_mutex): New function that uses
1102         __gthread_mutex_destroy_function or pthread_mutex_destroy after
1103         unlocking and before free_mem for final closure of I/O unit.
1104         (delete_root): Use new function.
1105         (free_internal_unit): Likewise.
1106         (close_unit_1): Likewise.
1107
1108 2008-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1109
1110         PR libfortran/35001
1111         * m4/shape.m4:  Return 0 for extents <= 0.
1112         * generated/shape_i4.c:  Regenerated.
1113         * generated/shape_i8.c:  Regenerated.
1114         * generated/shape_i16.c:  Regenerated.
1115
1116 2008-01-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1117
1118         PR libfortran/34980
1119         * m4/shape.m4:  If return array is empty, return early.
1120         * generated/shape_i4.c:  Regenerated.
1121         * generated/shape_i8.c:  Regenerated.
1122         * generated/shape_i16.c:  Regenerated.
1123
1124 2008-01-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1125
1126         PR libfofortran/34887
1127         * io/transfer.c (next_record_w): Always move to the farthest
1128         position when completing the record (also when we are
1129         processing a slash edit descriptor).
1130
1131 2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1132
1133         PR libfortran/34876
1134         * io/transfer.c (write_buf): Handle case of zero sized array.
1135         (transfer_array): Set data pointer to NULL and size to zero.  Then
1136         make a data transfer and return.
1137         
1138 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
1139
1140         * configure: Regenerate.
1141
1142 2008-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1143
1144         PR libfortran/34795
1145         * io/inquire.c (inquire_via_unit): If a unit is opened, return values
1146         according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
1147         (inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
1148         FORAMATTED, and UNFORMATTED inquiries.
1149         * io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
1150         for files that are not opened. (inquire_direct): Same.
1151         (inquire_formatted): Same.
1152         
1153 2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1154
1155         PR libfortran/34782
1156         * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
1157         of the current max_pos or the newly calculated position.
1158
1159 2008-01-18  Tobias Burnus  <burnus@net-b.de>
1160
1161         * io/write.c (write_real): Increase default precision
1162         for REAL(16) by one.
1163
1164 2008-01-16  Steven Bosscher  <steven@gcc.gnu.org>
1165
1166         PR libfortran/34669
1167         * mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
1168         to avoid piping the -fdump-parse-tree output to the assembler
1169         when configuring with -pipe.
1170         * mk-sik-inc.sh: Likewise.
1171         * mk-srk-inc.sh: Likewise.
1172
1173 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
1174
1175         PR libfortran/34671
1176         * gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
1177         _gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
1178         _gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
1179         _gfortran_count_8_l Removed _gfortran_count_16_l16,
1180         _gfortran_count_16_l4, _gfortran_count_16_l8,
1181         _gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
1182         _gfortran_count_8_l16, _gfortran_count_8_l4 and
1183         _gfortran_count_8_l8.
1184         * Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
1185         i_any_c.  Added generated/all_l1. and generated/all_l2.c to
1186         i_all_c.  Removed generated/count_4_l4.c, generated/count_8_l4.c,
1187         generated/count_16_l4.c, generated/count_4_l8.c,
1188         generated/count_8_l8.c, generated/count_16_l8.c,
1189         generated/count_4_l16.c, generated/count_8_l16.c, and
1190         generated/count_16_l16.c from i_count_c.  Added count_1_l.c,
1191         count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
1192         i_count_c.  I_M4_DEPS2 depends on ifunction_logical.m4, for
1193         any of the files generated from all.m4, any.m4 and count.m4.
1194         * Makefile.in:  Regenerated.
1195         * m4/ifunction_logical.m4:  New file.  Use
1196         GFC_LOGICAL_1 pointer for access to source arrays.
1197         * m4/any.m4:  Include ifunction_logical.m4 instead of
1198         ifunction.m4.  Don't check atype_name.
1199         * m4/all.m4:  Likewise.
1200         * m4/count.m4:  Likewise.
1201         * generated/any_l1.c:  New file.
1202         * generated/any_l2.c:  New file.
1203         * generated/all_l1.c:  New file.
1204         * generated/count_1_l.c:  New file.
1205         * generated/count_2_l.c:  New file.
1206         * generated/count_4_l.c:  New file.
1207         * generated/count_8_l.c:  New file.
1208         * generated/count_16_l.c:  New file.
1209         * generated/any_l4.c:  Regenerated.
1210         * generated/any_l8.c:  Regenerated.
1211         * generated/any_l16.c:  Regenerated.
1212         * generated/all_l4.c: Regenerated.
1213         * generated/all_l8.c: Regenerated.
1214         * generated/all_l16.c: Regenerated.
1215         * generated/count_4_l4.c:  Removed.
1216         * generated/count_4_l8.c:  Removed.
1217         * generated/count_4_l16.c:  Removed.
1218         * generated/count_8_l4.c:  Removed.
1219         * generated/count_8_l8.c:  Removed.
1220         * generated/count_8_l16.c:  Removed.
1221         * generated/count_16_l4.c:  Removed.
1222         * generated/count_16_l8.c:  Removed.
1223         * generated/count_16_l16.c:  Removed.
1224
1225 2008-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1226
1227         PR libfortran/34746
1228         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Use %ld
1229         in printf format for all bounds checking; cast all
1230         integer-like arguments to runtime_error() to long int.
1231         (`m'name`'rtype_qual`_'atype_code):  Likewise.
1232         (`s'name`'rtype_qual`_'atype_code):  Likewise.
1233         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
1234         (`m'name`'rtype_qual`_'atype_code):  Likewise.
1235         (`s'name`'rtype_qual`_'atype_code):  Likewise.
1236         * generated/all_l16.c: Regenerated.
1237         * generated/all_l4.c: Regenerated.
1238         * generated/all_l8.c: Regenerated.
1239         * generated/any_l16.c: Regenerated.
1240         * generated/any_l4.c: Regenerated.
1241         * generated/any_l8.c: Regenerated.
1242         * generated/count_16_l16.c: Regenerated.
1243         * generated/count_16_l4.c: Regenerated.
1244         * generated/count_16_l8.c: Regenerated.
1245         * generated/count_4_l16.c: Regenerated.
1246         * generated/count_4_l4.c: Regenerated.
1247         * generated/count_4_l8.c: Regenerated.
1248         * generated/count_8_l16.c: Regenerated.
1249         * generated/count_8_l4.c: Regenerated.
1250         * generated/count_8_l8.c: Regenerated.
1251         * generated/maxloc0_16_i1.c: Regenerated.
1252         * generated/maxloc0_16_i16.c: Regenerated.
1253         * generated/maxloc0_16_i2.c: Regenerated.
1254         * generated/maxloc0_16_i4.c: Regenerated.
1255         * generated/maxloc0_16_i8.c: Regenerated.
1256         * generated/maxloc0_16_r10.c: Regenerated.
1257         * generated/maxloc0_16_r16.c: Regenerated.
1258         * generated/maxloc0_16_r4.c: Regenerated.
1259         * generated/maxloc0_16_r8.c: Regenerated.
1260         * generated/maxloc0_4_i1.c: Regenerated.
1261         * generated/maxloc0_4_i16.c: Regenerated.
1262         * generated/maxloc0_4_i2.c: Regenerated.
1263         * generated/maxloc0_4_i4.c: Regenerated.
1264         * generated/maxloc0_4_i8.c: Regenerated.
1265         * generated/maxloc0_4_r10.c: Regenerated.
1266         * generated/maxloc0_4_r16.c: Regenerated.
1267         * generated/maxloc0_4_r4.c: Regenerated.
1268         * generated/maxloc0_4_r8.c: Regenerated.
1269         * generated/maxloc0_8_i1.c: Regenerated.
1270         * generated/maxloc0_8_i16.c: Regenerated.
1271         * generated/maxloc0_8_i2.c: Regenerated.
1272         * generated/maxloc0_8_i4.c: Regenerated.
1273         * generated/maxloc0_8_i8.c: Regenerated.
1274         * generated/maxloc0_8_r10.c: Regenerated.
1275         * generated/maxloc0_8_r16.c: Regenerated.
1276         * generated/maxloc0_8_r4.c: Regenerated.
1277         * generated/maxloc0_8_r8.c: Regenerated.
1278         * generated/maxloc1_16_i1.c: Regenerated.
1279         * generated/maxloc1_16_i16.c: Regenerated.
1280         * generated/maxloc1_16_i2.c: Regenerated.
1281         * generated/maxloc1_16_i4.c: Regenerated.
1282         * generated/maxloc1_16_i8.c: Regenerated.
1283         * generated/maxloc1_16_r10.c: Regenerated.
1284         * generated/maxloc1_16_r16.c: Regenerated.
1285         * generated/maxloc1_16_r4.c: Regenerated.
1286         * generated/maxloc1_16_r8.c: Regenerated.
1287         * generated/maxloc1_4_i1.c: Regenerated.
1288         * generated/maxloc1_4_i16.c: Regenerated.
1289         * generated/maxloc1_4_i2.c: Regenerated.
1290         * generated/maxloc1_4_i4.c: Regenerated.
1291         * generated/maxloc1_4_i8.c: Regenerated.
1292         * generated/maxloc1_4_r10.c: Regenerated.
1293         * generated/maxloc1_4_r16.c: Regenerated.
1294         * generated/maxloc1_4_r4.c: Regenerated.
1295         * generated/maxloc1_4_r8.c: Regenerated.
1296         * generated/maxloc1_8_i1.c: Regenerated.
1297         * generated/maxloc1_8_i16.c: Regenerated.
1298         * generated/maxloc1_8_i2.c: Regenerated.
1299         * generated/maxloc1_8_i4.c: Regenerated.
1300         * generated/maxloc1_8_i8.c: Regenerated.
1301         * generated/maxloc1_8_r10.c: Regenerated.
1302         * generated/maxloc1_8_r16.c: Regenerated.
1303         * generated/maxloc1_8_r4.c: Regenerated.
1304         * generated/maxloc1_8_r8.c: Regenerated.
1305         * generated/maxval_i1.c: Regenerated.
1306         * generated/maxval_i16.c: Regenerated.
1307         * generated/maxval_i2.c: Regenerated.
1308         * generated/maxval_i4.c: Regenerated.
1309         * generated/maxval_i8.c: Regenerated.
1310         * generated/maxval_r10.c: Regenerated.
1311         * generated/maxval_r16.c: Regenerated.
1312         * generated/maxval_r4.c: Regenerated.
1313         * generated/maxval_r8.c: Regenerated.
1314         * generated/minloc0_16_i1.c: Regenerated.
1315         * generated/minloc0_16_i16.c: Regenerated.
1316         * generated/minloc0_16_i2.c: Regenerated.
1317         * generated/minloc0_16_i4.c: Regenerated.
1318         * generated/minloc0_16_i8.c: Regenerated.
1319         * generated/minloc0_16_r10.c: Regenerated.
1320         * generated/minloc0_16_r16.c: Regenerated.
1321         * generated/minloc0_16_r4.c: Regenerated.
1322         * generated/minloc0_16_r8.c: Regenerated.
1323         * generated/minloc0_4_i1.c: Regenerated.
1324         * generated/minloc0_4_i16.c: Regenerated.
1325         * generated/minloc0_4_i2.c: Regenerated.
1326         * generated/minloc0_4_i4.c: Regenerated.
1327         * generated/minloc0_4_i8.c: Regenerated.
1328         * generated/minloc0_4_r10.c: Regenerated.
1329         * generated/minloc0_4_r16.c: Regenerated.
1330         * generated/minloc0_4_r4.c: Regenerated.
1331         * generated/minloc0_4_r8.c: Regenerated.
1332         * generated/minloc0_8_i1.c: Regenerated.
1333         * generated/minloc0_8_i16.c: Regenerated.
1334         * generated/minloc0_8_i2.c: Regenerated.
1335         * generated/minloc0_8_i4.c: Regenerated.
1336         * generated/minloc0_8_i8.c: Regenerated.
1337         * generated/minloc0_8_r10.c: Regenerated.
1338         * generated/minloc0_8_r16.c: Regenerated.
1339         * generated/minloc0_8_r4.c: Regenerated.
1340         * generated/minloc0_8_r8.c: Regenerated.
1341         * generated/minloc1_16_i1.c: Regenerated.
1342         * generated/minloc1_16_i16.c: Regenerated.
1343         * generated/minloc1_16_i2.c: Regenerated.
1344         * generated/minloc1_16_i4.c: Regenerated.
1345         * generated/minloc1_16_i8.c: Regenerated.
1346         * generated/minloc1_16_r10.c: Regenerated.
1347         * generated/minloc1_16_r16.c: Regenerated.
1348         * generated/minloc1_16_r4.c: Regenerated.
1349         * generated/minloc1_16_r8.c: Regenerated.
1350         * generated/minloc1_4_i1.c: Regenerated.
1351         * generated/minloc1_4_i16.c: Regenerated.
1352         * generated/minloc1_4_i2.c: Regenerated.
1353         * generated/minloc1_4_i4.c: Regenerated.
1354         * generated/minloc1_4_i8.c: Regenerated.
1355         * generated/minloc1_4_r10.c: Regenerated.
1356         * generated/minloc1_4_r16.c: Regenerated.
1357         * generated/minloc1_4_r4.c: Regenerated.
1358         * generated/minloc1_4_r8.c: Regenerated.
1359         * generated/minloc1_8_i1.c: Regenerated.
1360         * generated/minloc1_8_i16.c: Regenerated.
1361         * generated/minloc1_8_i2.c: Regenerated.
1362         * generated/minloc1_8_i4.c: Regenerated.
1363         * generated/minloc1_8_i8.c: Regenerated.
1364         * generated/minloc1_8_r10.c: Regenerated.
1365         * generated/minloc1_8_r16.c: Regenerated.
1366         * generated/minloc1_8_r4.c: Regenerated.
1367         * generated/minloc1_8_r8.c: Regenerated.
1368         * generated/minval_i1.c: Regenerated.
1369         * generated/minval_i16.c: Regenerated.
1370         * generated/minval_i2.c: Regenerated.
1371         * generated/minval_i4.c: Regenerated.
1372         * generated/minval_i8.c: Regenerated.
1373         * generated/minval_r10.c: Regenerated.
1374         * generated/minval_r16.c: Regenerated.
1375         * generated/minval_r4.c: Regenerated.
1376         * generated/minval_r8.c: Regenerated.
1377         * generated/product_c10.c: Regenerated.
1378         * generated/product_c16.c: Regenerated.
1379         * generated/product_c4.c: Regenerated.
1380         * generated/product_c8.c: Regenerated.
1381         * generated/product_i1.c: Regenerated.
1382         * generated/product_i16.c: Regenerated.
1383         * generated/product_i2.c: Regenerated.
1384         * generated/product_i4.c: Regenerated.
1385         * generated/product_i8.c: Regenerated.
1386         * generated/product_r10.c: Regenerated.
1387         * generated/product_r16.c: Regenerated.
1388         * generated/product_r4.c: Regenerated.
1389         * generated/product_r8.c: Regenerated.
1390         * generated/sum_c10.c: Regenerated.
1391         * generated/sum_c16.c: Regenerated.
1392         * generated/sum_c4.c: Regenerated.
1393         * generated/sum_c8.c: Regenerated.
1394         * generated/sum_i1.c: Regenerated.
1395         * generated/sum_i16.c: Regenerated.
1396         * generated/sum_i2.c: Regenerated.
1397         * generated/sum_i4.c: Regenerated.
1398         * generated/sum_i8.c: Regenerated.
1399         * generated/sum_r10.c: Regenerated.
1400         * generated/sum_r16.c: Regenerated.
1401         * generated/sum_r4.c: Regenerated.
1402         * generated/sum_r8.c: Regenerated.
1403
1404 2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
1405
1406         PR libfortran/34670
1407         * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
1408         (u_name):  New macro for the upper case name of the intrinsic.
1409         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
1410         bounds checking and rank check, depending on
1411         compile_options.bounds_check.
1412         (`m'name`'rtype_qual`_'atype_code):  Likewise.
1413         (`s'name`'rtype_qual`_'atype_code):  Likewise.
1414         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
1415         bounds checking and rank check, depending on
1416         compile_options.bounds_check.
1417         (`m'name`'rtype_qual`_'atype_code):  Likewise.
1418         (`s'name`'rtype_qual`_'atype_code):  Likewise.
1419         * generated/all_l16.c: Regenerated.
1420         * generated/all_l4.c: Regenerated.
1421         * generated/all_l8.c: Regenerated.
1422         * generated/any_l16.c: Regenerated.
1423         * generated/any_l4.c: Regenerated.
1424         * generated/any_l8.c: Regenerated.
1425         * generated/count_16_l16.c: Regenerated.
1426         * generated/count_16_l4.c: Regenerated.
1427         * generated/count_16_l8.c: Regenerated.
1428         * generated/count_4_l16.c: Regenerated.
1429         * generated/count_4_l4.c: Regenerated.
1430         * generated/count_4_l8.c: Regenerated.
1431         * generated/count_8_l16.c: Regenerated.
1432         * generated/count_8_l4.c: Regenerated.
1433         * generated/count_8_l8.c: Regenerated.
1434         * generated/maxloc0_16_i1.c: Regenerated.
1435         * generated/maxloc0_16_i16.c: Regenerated.
1436         * generated/maxloc0_16_i2.c: Regenerated.
1437         * generated/maxloc0_16_i4.c: Regenerated.
1438         * generated/maxloc0_16_i8.c: Regenerated.
1439         * generated/maxloc0_16_r10.c: Regenerated.
1440         * generated/maxloc0_16_r16.c: Regenerated.
1441         * generated/maxloc0_16_r4.c: Regenerated.
1442         * generated/maxloc0_16_r8.c: Regenerated.
1443         * generated/maxloc0_4_i1.c: Regenerated.
1444         * generated/maxloc0_4_i16.c: Regenerated.
1445         * generated/maxloc0_4_i2.c: Regenerated.
1446         * generated/maxloc0_4_i4.c: Regenerated.
1447         * generated/maxloc0_4_i8.c: Regenerated.
1448         * generated/maxloc0_4_r10.c: Regenerated.
1449         * generated/maxloc0_4_r16.c: Regenerated.
1450         * generated/maxloc0_4_r4.c: Regenerated.
1451         * generated/maxloc0_4_r8.c: Regenerated.
1452         * generated/maxloc0_8_i1.c: Regenerated.
1453         * generated/maxloc0_8_i16.c: Regenerated.
1454         * generated/maxloc0_8_i2.c: Regenerated.
1455         * generated/maxloc0_8_i4.c: Regenerated.
1456         * generated/maxloc0_8_i8.c: Regenerated.
1457         * generated/maxloc0_8_r10.c: Regenerated.
1458         * generated/maxloc0_8_r16.c: Regenerated.
1459         * generated/maxloc0_8_r4.c: Regenerated.
1460         * generated/maxloc0_8_r8.c: Regenerated.
1461         * generated/maxloc1_16_i1.c: Regenerated.
1462         * generated/maxloc1_16_i16.c: Regenerated.
1463         * generated/maxloc1_16_i2.c: Regenerated.
1464         * generated/maxloc1_16_i4.c: Regenerated.
1465         * generated/maxloc1_16_i8.c: Regenerated.
1466         * generated/maxloc1_16_r10.c: Regenerated.
1467         * generated/maxloc1_16_r16.c: Regenerated.
1468         * generated/maxloc1_16_r4.c: Regenerated.
1469         * generated/maxloc1_16_r8.c: Regenerated.
1470         * generated/maxloc1_4_i1.c: Regenerated.
1471         * generated/maxloc1_4_i16.c: Regenerated.
1472         * generated/maxloc1_4_i2.c: Regenerated.
1473         * generated/maxloc1_4_i4.c: Regenerated.
1474         * generated/maxloc1_4_i8.c: Regenerated.
1475         * generated/maxloc1_4_r10.c: Regenerated.
1476         * generated/maxloc1_4_r16.c: Regenerated.
1477         * generated/maxloc1_4_r4.c: Regenerated.
1478         * generated/maxloc1_4_r8.c: Regenerated.
1479         * generated/maxloc1_8_i1.c: Regenerated.
1480         * generated/maxloc1_8_i16.c: Regenerated.
1481         * generated/maxloc1_8_i2.c: Regenerated.
1482         * generated/maxloc1_8_i4.c: Regenerated.
1483         * generated/maxloc1_8_i8.c: Regenerated.
1484         * generated/maxloc1_8_r10.c: Regenerated.
1485         * generated/maxloc1_8_r16.c: Regenerated.
1486         * generated/maxloc1_8_r4.c: Regenerated.
1487         * generated/maxloc1_8_r8.c: Regenerated.
1488         * generated/maxval_i1.c: Regenerated.
1489         * generated/maxval_i16.c: Regenerated.
1490         * generated/maxval_i2.c: Regenerated.
1491         * generated/maxval_i4.c: Regenerated.
1492         * generated/maxval_i8.c: Regenerated.
1493         * generated/maxval_r10.c: Regenerated.
1494         * generated/maxval_r16.c: Regenerated.
1495         * generated/maxval_r4.c: Regenerated.
1496         * generated/maxval_r8.c: Regenerated.
1497         * generated/minloc0_16_i1.c: Regenerated.
1498         * generated/minloc0_16_i16.c: Regenerated.
1499         * generated/minloc0_16_i2.c: Regenerated.
1500         * generated/minloc0_16_i4.c: Regenerated.
1501         * generated/minloc0_16_i8.c: Regenerated.
1502         * generated/minloc0_16_r10.c: Regenerated.
1503         * generated/minloc0_16_r16.c: Regenerated.
1504         * generated/minloc0_16_r4.c: Regenerated.
1505         * generated/minloc0_16_r8.c: Regenerated.
1506         * generated/minloc0_4_i1.c: Regenerated.
1507         * generated/minloc0_4_i16.c: Regenerated.
1508         * generated/minloc0_4_i2.c: Regenerated.
1509         * generated/minloc0_4_i4.c: Regenerated.
1510         * generated/minloc0_4_i8.c: Regenerated.
1511         * generated/minloc0_4_r10.c: Regenerated.
1512         * generated/minloc0_4_r16.c: Regenerated.
1513         * generated/minloc0_4_r4.c: Regenerated.
1514         * generated/minloc0_4_r8.c: Regenerated.
1515         * generated/minloc0_8_i1.c: Regenerated.
1516         * generated/minloc0_8_i16.c: Regenerated.
1517         * generated/minloc0_8_i2.c: Regenerated.
1518         * generated/minloc0_8_i4.c: Regenerated.
1519         * generated/minloc0_8_i8.c: Regenerated.
1520         * generated/minloc0_8_r10.c: Regenerated.
1521         * generated/minloc0_8_r16.c: Regenerated.
1522         * generated/minloc0_8_r4.c: Regenerated.
1523         * generated/minloc0_8_r8.c: Regenerated.
1524         * generated/minloc1_16_i1.c: Regenerated.
1525         * generated/minloc1_16_i16.c: Regenerated.
1526         * generated/minloc1_16_i2.c: Regenerated.
1527         * generated/minloc1_16_i4.c: Regenerated.
1528         * generated/minloc1_16_i8.c: Regenerated.
1529         * generated/minloc1_16_r10.c: Regenerated.
1530         * generated/minloc1_16_r16.c: Regenerated.
1531         * generated/minloc1_16_r4.c: Regenerated.
1532         * generated/minloc1_16_r8.c: Regenerated.
1533         * generated/minloc1_4_i1.c: Regenerated.
1534         * generated/minloc1_4_i16.c: Regenerated.
1535         * generated/minloc1_4_i2.c: Regenerated.
1536         * generated/minloc1_4_i4.c: Regenerated.
1537         * generated/minloc1_4_i8.c: Regenerated.
1538         * generated/minloc1_4_r10.c: Regenerated.
1539         * generated/minloc1_4_r16.c: Regenerated.
1540         * generated/minloc1_4_r4.c: Regenerated.
1541         * generated/minloc1_4_r8.c: Regenerated.
1542         * generated/minloc1_8_i1.c: Regenerated.
1543         * generated/minloc1_8_i16.c: Regenerated.
1544         * generated/minloc1_8_i2.c: Regenerated.
1545         * generated/minloc1_8_i4.c: Regenerated.
1546         * generated/minloc1_8_i8.c: Regenerated.
1547         * generated/minloc1_8_r10.c: Regenerated.
1548         * generated/minloc1_8_r16.c: Regenerated.
1549         * generated/minloc1_8_r4.c: Regenerated.
1550         * generated/minloc1_8_r8.c: Regenerated.
1551         * generated/minval_i1.c: Regenerated.
1552         * generated/minval_i16.c: Regenerated.
1553         * generated/minval_i2.c: Regenerated.
1554         * generated/minval_i4.c: Regenerated.
1555         * generated/minval_i8.c: Regenerated.
1556         * generated/minval_r10.c: Regenerated.
1557         * generated/minval_r16.c: Regenerated.
1558         * generated/minval_r4.c: Regenerated.
1559         * generated/minval_r8.c: Regenerated.
1560         * generated/product_c10.c: Regenerated.
1561         * generated/product_c16.c: Regenerated.
1562         * generated/product_c4.c: Regenerated.
1563         * generated/product_c8.c: Regenerated.
1564         * generated/product_i1.c: Regenerated.
1565         * generated/product_i16.c: Regenerated.
1566         * generated/product_i2.c: Regenerated.
1567         * generated/product_i4.c: Regenerated.
1568         * generated/product_i8.c: Regenerated.
1569         * generated/product_r10.c: Regenerated.
1570         * generated/product_r16.c: Regenerated.
1571         * generated/product_r4.c: Regenerated.
1572         * generated/product_r8.c: Regenerated.
1573         * generated/sum_c10.c: Regenerated.
1574         * generated/sum_c16.c: Regenerated.
1575         * generated/sum_c4.c: Regenerated.
1576         * generated/sum_c8.c: Regenerated.
1577         * generated/sum_i1.c: Regenerated.
1578         * generated/sum_i16.c: Regenerated.
1579         * generated/sum_i2.c: Regenerated.
1580         * generated/sum_i4.c: Regenerated.
1581         * generated/sum_i8.c: Regenerated.
1582         * generated/sum_r10.c: Regenerated.
1583         * generated/sum_r16.c: Regenerated.
1584         * generated/sum_r4.c: Regenerated.
1585         * generated/sum_r8.c: Regenerated.
1586
1587 2008-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1588
1589         PR libfortran/34676
1590         * io/list_read.c (next_char): Only save the EOF condition for later if
1591         advance="no".
1592
1593 2008-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1594
1595         PR libfortran/34565
1596         * io/io.h:  Adjust protoypes for open_internal(),
1597         next_array_record() and init_loop_spec().
1598         * io/list_read.c (next_char):  Use argument "finished"
1599         of next_array_record to check for end on internal file.
1600         * io/unit.c:  Calculate the offset for an array
1601         internal file and supply this informatin to open_internal().
1602         * io/unix.c (open_internal):  Set the offset for the internal
1603         file on open.
1604         * io/transfer.c (init_loop_spec):  Calculate the starting
1605         record in case of negative strides.  Return size of 0 for
1606         an empty array.
1607         (next_array_record):  Use an extra flag to signal that the
1608         array is finished.
1609         (next_record_r):  Use the new flag to next_array_record().
1610         (next_record_w):  Likewise.