OSDN Git Service

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