OSDN Git Service

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