OSDN Git Service

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