OSDN Git Service

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