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