OSDN Git Service

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