]> gcc.gnu.org Git - gcc.git/blame - gcc/fortran/ChangeLog
c-common.c (c_common_truthvalue_conversion): Use LOCATION to build NE_EXPR operations...
[gcc.git] / gcc / fortran / ChangeLog
CommitLineData
47b0b4fa
TB
12009-04-20 Tobias Burnus <burnus@net-b.de>
2
3 PR fortran/39811
4 * scanner.c (load_line): Fix bogus "&" compile-time diagnostic.
5
c867b7b6
PT
62009-04-20 Paul Thomas <pault@gcc.gnu.org>
7
8 PR fortran/39800
9 * resolve.c (is_sym_host_assoc): New function.
10 (resolve_fl_derived): Call it when checking PRIVATE components
11 of PUBLIC derived types. Change gfc_error to a gfc_notify_std
12 with std=f2003.
13 (resolve_fl_namelist): Call it twice to check for host
14 association.
15
8fa2df72
ILT
162009-04-20 Ian Lance Taylor <iant@google.com>
17
18 * module.c (import_iso_c_binding_module): Add casts to enum type.
19 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Change op to enum
20 tree_code.
21 (gfc_conv_intrinsic_anyall): Likewise.
22 (gfc_conv_intrinsic_arith): Likewise.
23 (gfc_conv_intrinsic_minmaxloc): Likewise.
24 (gfc_conv_intrinsic_minmaxval): Likewise.
25 (gfc_conv_intrinsic_bitop): Likewise.
26 (gfc_conv_intrinsic_singlebitop): Likewise.
27 (gfc_conv_intrinsic_strcmp): Likewise.
28
34d01e1d
VL
292009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com>
30 Jakub Jelinek <jakub@redhat.com>
31
32 PR fortran/35423
33 * trans.h (OMPWS_WORKSHARE_FLAG, OMPWS_CURR_SINGLEUNIT,
34 OMPWS_SCALARIZER_WS, OMPWS_NOWAIT): Define.
35 (ompws_flags): New extern decl.
36 * trans-array.c (gfc_trans_scalarized_loop_end): Build OMP_FOR
37 for the outer dimension if ompws_flags allow it.
38 * trans.c (gfc_generate_code): Clear ompws_flags.
39 * trans-expr.c (gfc_trans_assignment_1): Allow worksharing
40 array assignments inside of !$omp workshare.
41 * trans-stmt.c (gfc_trans_where_3): Similarly for where statements
42 and constructs.
43 * trans-openmp.c (ompws_flags): New variable.
44 (gfc_trans_omp_workshare): Rewritten.
45
cadb8f42
DK
462009-04-11 Daniel Kraft <d@domob.eu>
47
48 PR fortran/37746
49 * gfortran.h (struct gfc_charlen): New field `passed_length' to store
50 the actual passed string length for dummy arguments.
51 * trans-decl.c (gfc_create_string_length): Formatting fixes and added
52 assertion, moved a local variable into the innermost block it is needed.
53 (create_function_arglist): Removed TODO about the check being
54 implemented and initialize cl->passed_length here.
55 (add_argument_checking): New method.
56 (gfc_generate_function_code): Call the argument checking method.
57
d1e49db4
JW
582009-04-11 Janus Weil <janus@gcc.gnu.org>
59
60 PR fortran/39692
61 * symbol.c (check_conflict): Reject procedure pointers for -std=f95.
62
632009-04-11 Daniel Franke <franke.daniel@gmail.com>
568eecad
DF
64
65 * resolve.c (resolve_global_procedure): Enable whole-file checking for
66 procedures that are declared later in the file.
67
a862775d
PB
682009-04-10 Paolo Bonzini <bonzini@gnu.org>
69
70 PR middle-end/39701
71 * trans.c (gfc_allocate_with_status): Fix type mismatches
72 on "pstat == 0".
73
045ac367
DF
742009-04-10 Daniel Franke <franke.daniel@gmail.com>
75
76 PR fortran/38709
77 * expr.c (find_array_section): Leave early on zero-sized arrays.
78
3070bab4
JW
792009-04-09 Janus Weil <janus@gcc.gnu.org>
80
81 PR fortran/36704
82 * decl.c (add_hidden_procptr_result): New function for handling
83 procedure pointer return values by adding a hidden result variable.
84 (variable_decl,match_procedure_decl,gfc_match_function_decl,
85 gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer
86 return values.
87 * parse.c (parse_interface): Add EXTERNAL attribute only after
88 FUNCTION/SUBROUTINE declaration is complete.
89 * primary.c (replace_hidden_procptr_result): New function for replacing
90 function symbol by hidden result variable.
91 (gfc_match_rvalue,match_variable): Replace symbol by hidden result
92 variable.
93 * resolve.c (resolve_contained_fntype,resolve_function,resolve_variable,
94 resolve_symbol): Allow for procedure pointer function results.
95 (resolve_fl_procedure): Conflict detection moved here from
96 'check_conflict'.
97 * symbol.c (gfc_check_function_type): Allow for procedure pointer
98 function results.
99 (check_conflict): Move some conflict detection to resolution stage.
100 * trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden
101 result variables.
102
dead0bae
JJ
1032009-04-08 Jakub Jelinek <jakub@redhat.com>
104
105 * trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't
106 contain TYPE_STRING_FLAG types.
107
cba2a54e
JB
1082009-04-08 Janne Blomqvist <jb@gcc.gnu.org>
109
110 PR fortran/39670
111 * invoke.texi (fdollar-ok): Fix typo.
112
f4a55802
DF
1132009-04-08 Daniel Franke <franke.daniel@gmail.com>
114
115 PR fortran/39670
116 * invoke.texi (fdollar-ok): Clarify limitations.
117
bafc96b4
PT
1182009-04-08 Paul Thomas <pault@gcc.gnu.org>
119
120 PR fortran/38863
121 * trans-array.c (gfc_trans_deferred_array): Return if this
122 is a result variable.
123
13d138bf
JW
1242009-04-07 Janus Weil <janus@gcc.gnu.org>
125
126 PR fortran/38152
127 * trans-decl.c (gfc_get_symbol_decl): Correctly set decl location for
128 procedure pointer decls.
129
3afadac3
JW
1302009-04-07 Janus Weil <janus@gcc.gnu.org>
131
c22ba5ff 132 PR fortran/38290
3afadac3
JW
133 * expr.c (gfc_check_pointer_assign): Enable interface check for
134 procedure pointers.
135 * gfortran.h: Add copy_formal_args_intr.
136 * interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces
137 if second argument is an intrinsic.
138 (compare_intr_interfaces): Correctly set attr.function, attr.subroutine
139 and ts.
140 (compare_parameter): Call gfc_compare_interfaces also for intrinsics.
141 * resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve
142 intrinsic interfaces here. Must happen earlier.
143 (resolve_symbol): Resolution of intrinsic interfaces moved here from
144 resolve_specific_..., and formal args are now copied from intrinsic
145 interfaces.
146 * symbol.c (copy_formal_args_intr): New function to copy the formal
147 arguments from an intinsic procedure.
148
ea0a374b
PT
1492009-04-06 Paul Thomas <pault@gcc.gnu.org>
150
151 PR fortran/38863
152 * dependency.c (ref_same_as_full_array): New function.
153 (gfc_dep_resolver): Call it.
154
1d146030
JW
1552009-04-06 Janus Weil <janus@gcc.gnu.org>
156
157 PR fortran/39414
158 * decl.c (match_procedure_decl): Fix double declaration problems with
159 PROCEDURE statements.
160 * symbol.c (gfc_add_type): Ditto.
161
59e36b72
PT
1622009-04-06 Paul Thomas <pault@gcc.gnu.org>
163
164 PR fortran/36091
165 * trans-array.c (gfc_conv_array_ref): If the symbol has the
166 temporary attribute use the array_spec for the bounds.
167 * gfortran.h : Add the temporary field to the structure
168 'symbol_attribute'.
169 * trans-stmt.c (forall_make_variable_temp): Set the symbol's
170 temporary attribute.
171
beb64b4a
DF
1722009-04-05 Daniel Franke <franke.daniel@gmail.com>
173
174 PR fortran/29458
175 * trans-array.c (gfc_trans_array_constructor_value): Shadow
176 implied do-loop variable to avoid spurious middle-end warnings.
177
cf7d2eb0
TB
1782009-04-04 Tobias Burnus <burnus@net-b.de>
179
180 PR fortran/39577
181 * trans-decl.c (gfc_generate_function_code): Move recursive
182 check to the right position.
183
6f85546f
PT
1842009-04-04 Paul Thomas <pault@gcc.gnu.org>
185
186 PR fortran/37614
187 * trans-common.c (translate_common): Do not offset the whole
188 coomon block.
189
6f9c9d6d
TB
1902009-04-03 Tobias Burnus <burnus@net-b.de>
191
192 PR fortran/39594
193 * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
194 if it is not a procedure pointer.
195 * primary.c (match_actual_arg): Ditto.
196
47580d22
JM
1972009-03-31 Joseph Myers <joseph@codesourcery.com>
198
199 PR preprocessor/15638
200 * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL.
201
3759634f
SK
2022009-03-30 Steven G. Kargl <kargls@comcast.net>
203
204 PR fortran/38389
205 * trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG.
206 (gfc_trans_deallocate): Add translation of ERRMSG. Remove stale
207 comments. Minor whitespace cleanup.
208 * resolve.c(is_scalar_expr_ptr): Whitespace cleanup.
209 (resolve_deallocate_expr (gfc_expr *e): Update error message.
210 (resolve_allocate_expr): Remove dead code. Update error message.
211 Move error checking to ...
212 (resolve_allocate_deallocate): ... here. Add additional error
213 checking for STAT, ERRMSG, and allocate-objects.
214 * match.c(gfc_match_allocate,gfc_match_deallocate): Parse ERRMSG.
215 Check for redundant uses of STAT and ERRMSG. Reword error message
216 and add checking for pointer, allocatable, and proc_pointer attributes.
217
71a7778c
PT
2182009-03-30 Paul Thomas <pault@gcc.gnu.org>
219
220 PR fortran/22571
221 PR fortran/26227
222 PR fortran/24886
223 * symbol.c : Add gfc_global_ns_list.
224 * decl.c (add_global_entry): Set the namespace ('ns') field.
225 * gfortran.h : Add the resolved field to gfc_namespace. Add the
226 namespace ('ns') field to gfc_gsymbol. Add flag_whole_file to
227 gfc_option_t. Add the prototype for gfc_free_dt_list.
228 * lang.opt : Add the whole-file option.
229 * invoke.texi : Document the whole-file option.
230 * resolve.c (resolve_global_procedure): If the fwhole-file
231 option is set, reorder gsymbols to ensure that translation is
232 in the right order. Resolve the gsymbol's namespace if that
233 has not occurred and then check interfaces.
234 (resolve_function): Move call to resolve_global_procedure.
235 (resolve_call): The same.
236 (resolve_codes): Store the current labels_obstack.
237 (gfc_resolve) : Return if the namespace is already resolved.
238 trans-decl.c (gfc_get_extern_function_decl): If the whole_file
239 option is selected, use the backend_decl of a gsymbol, if it is
240 available.
241 parse.c (add_global_procedure, add_global_program): If the flag
242 whole-file is set, add the namespace to the gsymbol.
243 (gfc_parse_file): On -fwhole-file, put procedure namespaces on
244 the global namespace list. Rearrange to do resolution of all
245 the procedures in a file, followed by their translation.
246 * options.c (gfc_init_options): Add -fwhole-file.
247 (gfc_handle_option): The same.
248
f6d53468
UW
2492009-03-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
250
251 * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
252 family of intrinsics instead of BUILT_IN_INF family.
253 * trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
254 BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
255
665733c1
JJ
2562009-03-30 Jakub Jelinek <jakub@redhat.com>
257
258 * trans-types.c (gfc_sym_type, gfc_return_by_reference): For
259 sym->attr.result check sym->ns->proc_name->attr.is_bind_c.
260
8ce94e44
JM
2612009-03-30 Joseph Myers <joseph@codesourcery.com>
262
263 PR rtl-optimization/323
264 * options.c (gfc_post_options): Set
265 flag_excess_precision_cmdline. Give an error for
266 -fexcess-precision=standard for processors where the option is
267 significant.
268
148e4216
JM
2692009-03-29 Joseph Myers <joseph@codesourcery.com>
270
271 PR preprocessor/34695
272 * cpp.c (cb_cpp_error): New.
273 (gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings.
274 Don't check cpp_errors (cpp_in).
275 (gfc_cpp_init_0): Set cb->error.
276
6bb62671
SK
2772009-03-29 Steven G. Kargl <kargl@gcc.gnu.org>
278
279 PR fortran/38823
280 * gfortran.h: Add ARITH_PROHIBIT to arith enum.
281 expr.c (gfc_match_init_expr): Add global variable init_flag to
282 flag matching an initialization expression.
283 (check_intrinsic_op): Move no longer reachable error message to ...
284 * arith.c (arith_power): ... here. Remove gfc_ prefix in
285 gfc_arith_power. Use init_flag. Allow constant folding of x**y
286 when y is REAL or COMPLEX.
287 (eval_intrinsic): Remove restriction that y in x**y must be INTEGER
288 for constant folding.
289 * gfc_power: Update gfc_arith_power to arith_power
290
b0e5fa94
DK
2912009-03-29 Daniel Kraft <d@domob.eu>
292
293 PR fortran/37423
294 * gfortran.h (struct gfc_typebound_proc): Added new flag `deferred' and
295 added a comment explaining DEFERRED binding handling.
296 * decl.c (match_binding_attributes): Really match DEFERRED attribute.
297 (match_procedure_in_type): Really match PROCEDURE(interface) syntax
298 and do some validity checks for DEFERRED and this construct.
299 * module.c (binding_overriding): New string constant for DEFERRED.
300 (mio_typebound_proc): Module-IO DEFERRED flag.
301 * resolve.c (check_typebound_override): Ensure that a non-DEFERRED
302 binding is not overridden by a DEFERRED one.
303 (resolve_typebound_procedure): Allow abstract interfaces as targets
304 for DEFERRED bindings.
305 (ensure_not_abstract_walker), (ensure_not_abstract): New methods.
306 (resolve_fl_derived): Use new `ensure_not_abstract' method for
307 non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED
308 binding is overridden.
309 (check_typebound_baseobject): New method.
310 (resolve_compcall), (resolve_typebound_call): Check base-object of
311 the type-bound procedure call.
312 * gfc-internals.texi (Type-bound procedures): Document a little bit
313 about internal handling of DEFERRED bindings.
314
d80c695f
TS
315