]>
Commit | Line | Data |
---|---|---|
4e876a0f NS |
1 | 1999-12-31 Mark Mitchell <mark@codesourcery.com> |
2 | ||
3 | * cp-tree.h (VF_NORMAL_VALUE): Remove. | |
4 | * class.c (struct base_info): Remove vfield, vfields, and rtti. | |
5 | (set_primary_base): New function, split out from ... | |
6 | (finish_base_struct): ... here. Rename to ... | |
7 | (determine_primary_base): ... this. Simplify. | |
8 | (create_vtable_ptr): Tweak accordingly. | |
9 | (finish_struct_1): Simplify. | |
c8094d83 | 10 | |
4e876a0f NS |
11 | * cp-tree.h (CLASSTYPE_VBASECLASSES): Update documentation. |
12 | (CLASSTYPE_N_BASECLASSES): Likewise. | |
13 | (BINFO_FOR_VBASE): New macro. | |
14 | (get_vbase_types): Change prototype. | |
15 | * class.c (build_vbase_path): Use BINFO_FOR_VBASE. | |
16 | (prepare_fresh_vtable): Likewise. | |
17 | (finish_vtbls): Likewise. | |
18 | (get_class_offset_1): Likewise. | |
19 | (modify_all_indirect_vtables): Likewise. | |
20 | (build_vbase_pointer_fields): Likewise. | |
21 | * decl.c (xref_basetypes): Don't set CLASSTYPE_VBASECLASSES here. | |
22 | * init.c (sort_base_init): Use BINFO_FOR_VBASE. | |
23 | (expand_member_init): Likewise. | |
24 | * search.c (get_base_distance): Likewise. | |
25 | (lookup_field_queue_p): Likewise. | |
26 | (virtual_context): Likewise. | |
27 | (get_vbase_types): Don't return a value. Set | |
28 | CLASSTYPE_VBASECLASSES here. | |
29 | * typeck.c (get_delta_difference): Use BINFO_FOR_VBASE. | |
c8094d83 | 30 | |
4e876a0f NS |
31 | 1999-12-30 Mark Mitchell <mark@codesourcery.com> |
32 | ||
33 | * class.c (fixup_inline_methods): Clear CLASSTYPE_INLINE_FRIENDS. | |
34 | ||
35 | 1999-12-29 Mark Mitchell <mark@codesourcery.com> | |
36 | ||
37 | * class.c (create_vtable_ptr): Put the vtable at the beginning of | |
38 | the class, not the end, in the new ABI. | |
39 | * tree.c (propagate_binfo_offsets): Do the right thing for the new | |
40 | ABI. | |
41 | ||
42 | 1999-12-29 Mark Mitchell <mark@codesourcery.com> | |
43 | ||
44 | * cp-tree.h (lang_type): Add nearly_empty_p. Adjust dummy. | |
45 | (CLASSTYPE_NEARLY_EMPTY_P): New macro. | |
46 | * class.c (check_bases): Update CLASSTYPE_NEARLY_EMPTY_P. | |
47 | (check_field_decls): Likewise. | |
48 | (check_bases_and_members): Likewise. | |
49 | ||
50 | 1999-12-28 Mark Mitchell <mark@codesourcery.com> | |
51 | ||
52 | * cp-tree.h (do_inline_function_hair): Remove. | |
53 | * class.c (layout_class_type): New function, split out from | |
54 | finish_struct_1. | |
55 | (fixup_pending_inline): Likewise. | |
56 | (fixup_inline_methods): New function. | |
57 | * method.c (fixup_pending_inline): Remove. | |
58 | (do_inline_function_hair): Likewise. | |
c8094d83 | 59 | |
4e876a0f NS |
60 | * decl.c (BOOL_TYPE_SIZE): Bools always have size `1' under the |
61 | new ABI. | |
c8094d83 | 62 | |
4e876a0f NS |
63 | * cp-tree.h (lang_type): Replace abstract_virtuals with pure_virtuals. |
64 | (CLASSTYPE_ABSTRACT_VIRTUALS): Rename to ... | |
65 | (CLASSTYPE_PURE_VIRTUALS): ... this. | |
66 | (lang_decl_flags): Replace abstract_virtual with pure_virtual. | |
67 | (DECL_ABSTRACT_VIRTUAL_P): Rename to ... | |
68 | (DECL_PURE_VIRTUAL_P): ... this. | |
69 | (get_abstract_virtuals): Rename to ... | |
70 | (get_pure_virtuals): ... this. | |
71 | * call.c (build_new_method_call): Replace DECL_PURE_VIRTUAL_P with | |
72 | DECL_ABSTRACT_VIRTUAL_P. Replace CLASSTYPE_ABSTRACT_VIRTUALS with | |
73 | CLASSTYPE_PURE_VIRTUALS. | |
74 | * class.c (build_vtable_entry): Likewise. | |
75 | (finish_struct_bits): Likewise. Call get_pure_virtuals, not | |
76 | get_abstract_virtuals. | |
77 | (build_vtbl_initializer): Likewise. | |
78 | (override_one_vtable): Likewise. | |
79 | (check_methods): Likewise. | |
80 | * decl.c (duplicate_decls): Likewise. | |
81 | (redeclaration_error_message): Likewise. | |
82 | (lang_mark_tree): Likewise. | |
83 | * decl2.c (grok_function_init): Likewise. | |
84 | (import_export_vtable): Likewise. | |
85 | (import_expor_class): Likewise. | |
86 | * typeck2.c (abstract_virtuals_error): Likewise. | |
87 | * xref.c (GNU_xref_member): Likewise. | |
88 | * search.c (get_abstract_virtuals): Rename to get_pure_virtuals. | |
c8094d83 | 89 | |
4e876a0f NS |
90 | 1999-12-26 Zack Weinberg <zack@wolery.cumb.org> |
91 | ||
92 | * cp-tree.h: Replace ENABLE_CHECKING with ENABLE_TREE_CHECKING | |
93 | throughout. | |
94 | ||
95 | 1999-12-26 Mark Mitchell <mark@codesourcery.com> | |
96 | ||
97 | * decl.c (store_return_init): Use mode of old RTL generated for | |
98 | DECL_RESULT, not the mode of DECL_RESULT itself. | |
99 | * semantics.c (finish_named_return_value): Set DECL_UNINLINABLE | |
100 | for functions that used named return values. | |
c8094d83 | 101 | |
4e876a0f NS |
102 | 1999-12-24 Mark Mitchell <mark@codesourcery.com> |
103 | ||
104 | * semantics.c (expand_body): Use | |
105 | note_deferral_of_defined_inline_function. | |
106 | ||
107 | 1999-12-22 Mark Mitchell <mark@codesourcery.com> | |
108 | ||
109 | * dump.c (dequeue_and_dump): Handle CTOR_STMTs. | |
110 | ||
111 | 1999-12-22 Alexandre Oliva <oliva@lsd.ic.unicamp.br> | |
112 | ||
113 | * error.c (dump_decl): Support named return values. | |
114 | ||
115 | 1999-12-20 Mark Mitchell <mark@codesourcery.com> | |
116 | ||
117 | * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Update comments. | |
118 | (CLASSTYPE_HAS_PRIMARY_BASE_P): New macro. | |
119 | (CLASSTYPE_PRIMARY_BINFO): Likewise. | |
120 | * class.c (check_methods): Don't set TYPE_HAS_COMPLEX_INIT_REF, | |
121 | TYPE_NEEDS_CONSTRUCTING, and CLASSTYPE_NON_AGGREGATE here. | |
122 | (check_bases_and_members): Set them here instead. | |
123 | (create_vtable_ptr): New function, split out from ... | |
124 | (finish_struct_1): ... here. Use it. Tidy. Use | |
125 | CLASSTYPE_HAS_PRIMARY_BASE_P and CLASSTYPE_PRIMARY_BINFO. | |
126 | * search.c (dfs_init_vbase_pointers): Handle seeing TYPE_VFIELD as | |
127 | the first field in the class. | |
128 | * tree.c (layout_basetypes): Use CLASSTYPE_N_BASECLASSES. Handle | |
129 | seeing TYPE_VFIELD as the first field in the class. | |
c8094d83 | 130 | |
4e876a0f NS |
131 | * cp-tree.h (TYPE_VIRTUAL_P): Rename to ... |
132 | (TYPE_POLYMORPHIC_P): ... this. | |
133 | (TYPE_USES_COMPLEX_INHERITANCE): Rename to ... | |
134 | (TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P): ... this. | |
135 | (TREE_CALLS_NEW): Remove. | |
136 | (TREE_MANGLED): Likewise. | |
137 | * call.c (build_vfield_ref): Use TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P, | |
138 | and TYPE_POLYMORPHIC_P. | |
139 | * class.c (check_bases): Likewise. | |
140 | (finish_base_struct): Likewise. | |
141 | (finish_struct_bits): Likewise. | |
142 | (check_for_override): Likewise. | |
143 | (finish_struct_1): Likewise. | |
144 | (get_vfield_name): Likewise. | |
145 | * decl.c (xref_basetypes): Likewise. | |
146 | * decl2.c (import_export_class): Likewise. | |
147 | (import_export_decl): Likewise. | |
148 | * error.c (dump_function_decl): Likewise. | |
149 | * pt.c (instantiate_class_template): Likewise. | |
150 | * repo.c (repo_inline_used): Likewise. | |
151 | * rtti.c (build_headof): Likewise. | |
152 | (get_tinfo_fn_dynamic): Likewise. | |
153 | (build_x_typeid): Likewise. | |
154 | (get_tinfo_var): Likewise. | |
155 | (build_dynamic_cast_1): Likewise. | |
156 | (synthesize_tinfo_fn): Likewise. | |
157 | * search.c (lookup_field_1): Likewise. | |
158 | (dfs_debug_mark): Likewise. | |
159 | (maybe_suppress_debug_info): Likewise. | |
160 | * typeck.c (build_component_ref): Likewise. | |
161 | (build_component_addr): Likewise. | |
162 | * typeck2.c (process_init_constructor): Likewise. | |
c8094d83 | 163 | |
4e876a0f NS |
164 | 1999-12-20 Nathan Sidwell <nathan@acm.org> |
165 | ||
166 | * typeck.c (strip_all_pointer_quals): New static function. | |
167 | (build_static_cast): Use it. Don't use at_least_as_qualified_p. | |
168 | ||
169 | 1999-12-16 Mark Mitchell <mark@codesourcery.com> | |
170 | ||
171 | * cp-tree.h (cp_tree_index): Add CPTI_DSO_HANDLE. | |
172 | (dso_handle_node): New macro. | |
173 | (flag_use_cxa_atexit): New variable. | |
174 | (declare_global_var): New function. | |
175 | (start_anon_func): Remove declaration. | |
176 | (end_anon_func): Likewise. | |
177 | * decl.c (get_atexit_node): New function, split out from | |
178 | destroy_local_static. Handle flag_use_cxa_atexit. | |
179 | (get_dso_handle_node): Likewise. | |
180 | (start_cleanup_fn): Renamed from start_anon_func. Moved here from | |
181 | except.c. Handle flag_use_cxa_atexit. | |
182 | (end_cleanup_fn): Renamed from end_anon_func. Moved here from | |
183 | except.c. | |
184 | (declare_global_var): New variable. | |
185 | (destroy_local_static): Handle flag_use_cxa_atexit. | |
186 | * decl2.c (flag_use_cxa_atexit): New variable. | |
187 | (lang_f_options): Likewise. | |
188 | * except.c (start_anon_func): Remove. | |
189 | (end_anon_func): Liekwise. | |
190 | * lang-options.h: Add -fuse-cxa-atexit and -fno-use-cxa-atexit. | |
191 | * rtti.c (get_tinfo_var): Use declare_global_var. | |
192 | ||
193 | 1999-12-16 Mark Mitchell <mark@codesourcery.com> | |
194 | ||
195 | * class.c (check_field_decls): Don't return a value. | |
196 | (avoid_overlap): Moved here from tree.c. | |
197 | (build_base_fields): Likewise. | |
198 | (check_bases): New function, split out from finish_base_struct. | |
c8094d83 | 199 | (check_bases_and_members): New function, split out from |
4e876a0f NS |
200 | finish_struct_1. |
201 | (struct base_info): Remove cant_have_default_ctor, | |
202 | cant_have_const_ctor, cant_have_asn_ref. | |
203 | (finish_base_struct): Split semantic analysis into check_bases. | |
204 | (finish_struct_methods): Fix bogus assertion. | |
205 | (check_field_decls): Call finish_struct_anon here. | |
206 | (build_vbase_pointer_fields): Use CLASSTYPE_N_BASECLASSES. | |
207 | (finish_struct_1): Use check_bases_and_members. Reorganize. | |
208 | * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. | |
209 | (build_base_fields): Don't declare. | |
210 | * tree.c (avoid_overlap): Remove. | |
211 | (build_base_fields): Likewise. | |
c8094d83 | 212 | |
4e876a0f NS |
213 | * optimize.c (struct inline_data): Remove scope_stmt. |
214 | (remap_block): Don't use insert_block_after_note. Don't update | |
215 | scope_stmt. | |
216 | (expand_call_inline): Don't update scope_stmt. | |
217 | (optimize_function): Don't initialize scope_stmt. | |
218 | * semantics.c (expand_stmt): Set NOTE_BLOCK for newly emitted | |
219 | NOTE_INSN_BLOCK_BEG/NOTE_INSN_BLOCK_END notes. | |
220 | ||
221 | 1999-12-15 Mark Mitchell <mark@codesourcery.com> | |
222 | ||
223 | * class.c (handle_using_decl): Get TYPE_FIELDS and TYPE_METHODS | |
224 | out of the class, rather than taking them as parameters. | |
225 | (build_vbase_pointer_fields): Move here from tree.c. | |
226 | (build_vtbl_or_vbase_field): New function. | |
227 | (check_methods): Likewise. | |
228 | (remove_zero_width_bitfields): Likewise. | |
229 | (add_virtual_function): Use tree_cons instead of temp_tree_cons. | |
230 | (delete_duplicate_fields_1): Tidy. Don't delete duplicate | |
231 | USING_DECLs here. | |
232 | (finish_struct_methods): Handle the case where there are no | |
233 | methods here. | |
234 | (get_basefndecls): Use tree_cons instead of temp_tree_cons. | |
235 | (check_field_decls): Call delete_duplicate_fields here. | |
236 | (finish_struct_1): Tidy. Use check_methods and | |
237 | remove_zero_width_bitfields. | |
238 | * cp-tree.h (build_vbase_pointer_fields): Remove. | |
239 | * decl.c (grokdeclarator): Use tree_cons instead of | |
240 | temp_tree_cons. | |
241 | * decl2.c (qualified_lookup_using_namespace): Use tree_cons | |
242 | instead of temp_tree_cons. | |
243 | * lex.c (cons_up_default_function): Remove dead code. | |
244 | * method.c (fixup_pending_inline): New function, split out from ... | |
245 | (do_inline_function_hair): ... here. | |
246 | * tree.c (build_vbase_pointer_fields): Remove. | |
c8094d83 | 247 | |
4e876a0f NS |
248 | 1999-12-15 Jason Merrill <jason@casey.cygnus.com> |
249 | ||
250 | * tree.c (walk_tree): Walk operand subtrees in forward order. | |
251 | * optimize.c (expand_call_inline): Likewise. | |
252 | (optimize_function): Initialize id->scope_stmt to something useful. | |
253 | (remap_block): Assume id->scope_stmt has a useful value. | |
254 | ||
255 | 1999-12-15 Nathan Sidwell <nathan@acm.org> | |
256 | ||
257 | * typeck.c (build_c_cast): Expand warning message. Move pointer | |
258 | alignment warning to after the cast. Don't warn about pointer | |
259 | alignment when given a pointer to incomplete. | |
260 | ||
261 | 1999-12-15 Richard Henderson <rth@cygnus.com> | |
262 | ||
263 | * cp-tree.h (make_aggr_type): Declare. | |
264 | * lex.c (cp_make_lang_type): Don't SET_IS_AGGR_TYPE. | |
265 | (make_aggr_type): New. | |
266 | ||
267 | * decl.c (build_typename_type, init_decl_processing): Use it. | |
268 | (build_ptrmemfunc_type, xref_tag): Likewise. | |
269 | * except.c (call_eh_info): Likewise. | |
270 | * init.c (init_init_processing): Likewise. | |
271 | * pt.c (process_template_parm, lookup_template_class): Likewise. | |
272 | * rtti.c (expand_class_desc): Likewise. | |
273 | * semantics.c (begin_class_definition, finish_typeof): Likewise. | |
274 | * tree.c (copy_template_template_parm): Likewise. | |
275 | ||
276 | 1999-12-15 Jason Merrill <jason@yorick.cygnus.com> | |
277 | ||
278 | * cp-tree.def (TEMPLATE_PARM_INDEX): Calculate size using | |
279 | sizeof (struct tree_common). | |
280 | ||
281 | 1999-12-14 Jason Merrill <jason@casey.cygnus.com> | |
282 | ||
283 | * optimize.c (expand_call_inline): Set BLOCK_ABSTRACT_ORIGIN on the | |
284 | outermost block to point to the inlined function decl. | |
285 | ||
286 | * error.c (dump_decl): operator==, not operator ==. | |
287 | (op_to_string): Likewise. | |
288 | ||
289 | * decl.c (compute_array_index_type): Handle null name. | |
290 | ||
291 | * decl2.c (ambiguous_decl): Fix to match comment. | |
292 | (lookup_using_namespace): Adjust. | |
293 | ||
294 | * decl2.c (import_export_class): Don't ignore dllimport. | |
295 | ||
296 | 1999-12-14 Mark Mitchell <mark@codesourcery.com> | |
297 | ||
298 | * class.c (check_field_decls): Split out from ... | |
299 | (finish_struct_1): ... here. Use it. Tidy. | |
300 | ||
301 | * cp-tree.h (remap_save_expr): Add walk_subtrees parameter. | |
302 | * optimize.c (copy_body_r): Pass it. | |
303 | * tree.c (remap_save_expr): Clear walk_subtrees for an | |
304 | already-handled SAVE_EXPR. | |
305 | (cp_unsave_r): Pass walk_subtrees to remap_save_expr. | |
306 | ||
307 | * dump.c (dequeue_and_dump): Dump DECL_NAMESPACE_ALIAS. | |
308 | * ir.texi (DECL_NAMESPACE_ALIAS): Document it. | |
309 | ||
310 | * error.c (dump_expr): Handle EXPR_WITH_FILE_LOCATION. | |
311 | ||
312 | 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu> | |
313 | ||
314 | * class.c (finish_base_struct): Allow multiple COM base classes | |
315 | as well as non-COM bases as long as it's not the leftmost. | |
316 | ||
317 | 1999-12-13 Mumit Khan <khan@xraylith.wisc.edu> | |
318 | ||
319 | * lex.c (saving_parse_to_obstack): New global. | |
320 | (reinit_parse_for_block): Use. | |
321 | (reinit_parse_for_expr): Use. | |
322 | (check_newline): Use. | |
323 | ||
324 | 1999-12-13 Mark Mitchell <mark@codesourcery.com> | |
325 | ||
326 | * optimize.c (initialize_inlined_parameters): Take FN to which the | |
327 | parameters belong as an argument. | |
328 | (expand_call_inline): Expand calls into the parameter | |
329 | initializations before pushing the function onto the list of | |
330 | functions we are presently expanding. | |
331 | ||
332 | 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
333 | ||
334 | * class.c (get_vtable_name): Use a literal format string and | |
335 | VTABLE_NAME_PREFIX macro instead of VTABLE_NAME_FORMAT. | |
336 | (prepare_fresh_vtable): Likewise. | |
337 | ||
338 | * cp-tree.h (VTABLE_NAME_PREFIX): Define this instead of | |
339 | VTABLE_NAME_FORMAT. | |
340 | ||
341 | * decl.c (make_rtl_for_local_static): Remove unused variable `type'. | |
342 | ||
343 | * init.c (build_vec_init): Initialize variable `try_body'. | |
344 | ||
345 | * lex.c (yyerror): Don't call a variadic function with a | |
346 | non-literal format string. | |
347 | ||
348 | * optimize.c (optimize_function): Call memset, not bzero. | |
349 | ||
350 | * pt.c (for_each_template_parm_r): Add static prototype. | |
351 | ||
352 | 1999-12-09 Andreas Jaeger <aj@suse.de> | |
353 | ||
354 | * except.c (expand_throw): Add static attribute to match | |
355 | prototype. | |
356 | ||
357 | * Makefile.in (semantics.o): Add dependency on output.h. | |
358 | * semantics.c: Include output.h for declaration of | |
359 | make_function_rtl. | |
360 | ||
361 | 1999-12-09 Mark Mitchell <mark@codesourcery.com> | |
362 | ||
363 | * decl.c (init_decl_processing): Reenable inlining on trees. | |
364 | (finish_function): Likewise. | |
365 | * expr.c (cplus_expand_expr): Don't handle AGGR_INIT_EXPR here. | |
366 | * semantics.c (simplify_aggr_init_exprs): New function. | |
367 | (expand_body): Use it. | |
368 | * tree.c (walk_tree): Special-case TARGET_EXPRs since they | |
369 | sometimes present the same sub-tree twice. | |
c8094d83 | 370 | |
4e876a0f NS |
371 | * dump.c (dequeue_and_dump): Abbreviate `class' as `cls', not |
372 | `csl'. | |
373 | ||
374 | * semantics.c (finish_switch_cond): Do conversions here, not ... | |
375 | * typeck.c (c_expand_start_case): Here. | |
376 | ||
377 | * semantics.c (do_poplevel): Remove unused variable. | |
c8094d83 | 378 | |
4e876a0f NS |
379 | 1999-12-06 Mark Mitchell <mark@codesourcery.com> |
380 | ||
381 | * tree.c (walk_tree): Don't recurse into DECL_INITIAL or DECL_SIZE | |
382 | unless we're declaring the variable in question. | |
383 | ||
384 | 1999-12-06 Mark Mitchell <mark@codesourcery.com> | |
385 | ||
386 | * decl.c (init_decl_processing): #if 0 last patch. | |
387 | (finish_function): Likewise. | |
388 | ||
389 | 1999-12-05 Mark Mitchell <mark@codesourcery.com> | |
390 | ||
391 | * decl.c (init_decl_processing): Set flag_inline_trees if | |
392 | !flag_no_inline. | |
393 | ||
394 | * cp-tree.h (calls_setjmp_p): Declare. | |
395 | * decl.c (finish_function): Mark functions that call setjmp as | |
396 | uninlinable. | |
397 | * optimize.c (calls_setjmp_r): New function. | |
398 | (calls_setjmp_p): Likewise. | |
399 | ||
400 | 1999-12-04 Mark Mitchell <mark@codesourcery.com> | |
401 | ||
402 | * optimize.c (expand_call_inline): Wrap the expanded call in an | |
403 | EXPR_WITH_FILE_LOCATION node to get correct line numbers for | |
404 | inlined functions. | |
405 | ||
406 | * optimize.c (inline_data): Remove fns_top. Add scope_stmt. Add | |
407 | in_target_cleanup_p. | |
408 | (remap_decl): New function. | |
409 | (remap_block): Likewise. | |
410 | (copy_scope_stmt): Likewise. | |
411 | (copy_body_r): Use remap_decl and copy_scope_stmt. | |
412 | (copy_body): Use VARRAY_TOP_TREE. | |
413 | (initialize_inlined_parameters): Likewise. | |
414 | (declare_return_variable): Likewise. | |
415 | (inlinable_function_p): Check flag_inline_trees. | |
416 | (expand_call_inline): Handle SCOPE_STMTs and TARGET_EXPRs | |
417 | specially. Use VARRAY_PUSH_TREE. Create a BLOCK for the | |
418 | parameters of the inlined function. | |
419 | (optimize_function): Prevent recursion into partially complete | |
420 | functions. | |
c8094d83 | 421 | |
4e876a0f NS |
422 | * cp-tree.def (SCOPE_STMT): Take one operand. |
423 | * cp-tree.h (SCOPE_STMT_BLOCK): New macro. | |
424 | (SCOPE_NULLIFIED_P): Redefine. | |
425 | (SCOPE_NO_CLEANUPS_P): New macro. | |
426 | (add_scope_stmt): Change prototype. | |
427 | * decl.c (poplevel): Tidy. Warn about unused variables here. | |
428 | Record SCOPE_STMT_BLOCKs. | |
429 | (finish_function): Keep DECL_INITIAL for functions that might be | |
430 | inlined. | |
431 | * ir.texi: Document SCOPE_NO_CLEANUPS_P. | |
432 | * semantics.c: Include rtl.h. | |
433 | (add_scope_stmt): Return the new scope statement and, for an | |
434 | end-of-scope statement, its matching begin statement. Don't set | |
435 | SCOPE_NULLIFIED_P. | |
436 | (do_pushlevel): Simplify, now that we are always | |
437 | function-at-a-time. | |
438 | (do_poplevel): Likewise. Record SCOPE_STMT_BLOCKs. | |
439 | (expand_stmt): Don't call expand_start_bindings or | |
440 | expand_end_bindings for a scope with SCOPE_NO_CLEANUPS_P set. | |
441 | * tree.c (copy_tree_r): Clear SCOPE_STMT_BLOCK rather than setting | |
442 | SCOPE_NULLIFIED_P. | |
443 | * Makefile.in (semantics.o): Depend on RTL_H. | |
c8094d83 | 444 | |
4e876a0f NS |
445 | * decl2.c (pending_statics_used): Make it a macro. |
446 | (saved_inlines_used): Likewise. | |
447 | (finish_static_data_member_decl): Use VARRAY_PUSH_TREE. | |
448 | (mark_inline_for_output): Likewise. | |
449 | (ssdf_decls_used): Remove. | |
450 | (start_static_storage_duration_function): Use VARRAY_PUSH_TREE. | |
451 | (generate_ctor_or_dtor_function): Adjust accordingly. | |
c8094d83 | 452 | |
4e876a0f NS |
453 | 1999-11-24 Geoffrey Keating <geoffk@cygnus.com> |
454 | Greg McGary <gkm@gnu.org> | |
455 | ||
456 | * decl.c (duplicate_decls): Merge | |
0cbd7506 MS |
457 | DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, |
458 | DECL_NO_CHECK_MEMORY_USAGE, DECL_NO_LIMIT_STACK. | |
4e876a0f NS |
459 | |
460 | 1999-12-02 Mike Stump <mrs@wrs.com> | |
461 | ||
462 | * init.c (perform_member_init): Handle parse errors better. | |
463 | ||
464 | 1999-12-01 Mark Mitchell <mark@codesourcery.com> | |
465 | ||
466 | * cp-tree.h (min_tree_cons): Remove. | |
467 | (scratch_ovl_cons): Likewise. | |
468 | * decl.c (saveable_obstack): Don't declare. | |
469 | (duplicate_decls): Tweak error-message. | |
470 | (initialize_local_var): Explicitly mark the definition as static. | |
471 | (finish_function): Call permanent_allocation, just so | |
472 | that the middle-end sees the obstacks it expects. | |
473 | (mark_cp_function_context): Likewise. | |
474 | * init.c (build_new): Don't use min_tree_cons. | |
475 | * lex.c (permanent_obstack): Don't declare. | |
476 | (current_obstack, saveable_obstack): Likewise. | |
477 | * spew.c (current_obstack, saveable_obstack): Likewise. | |
478 | * tree.c (current_obstack, saveable_obstack): Likewise. | |
479 | (scratch_ovl_cons): Remove. | |
480 | (build_min_nt): Don't mess with obstacks. | |
481 | (build_min): Likewise. | |
482 | (min_tree_cons): Remove | |
483 | * typeck.c (build_component_ref): Don't use scratch_ovl_cons. | |
484 | (build_x_function_call): Likewise. | |
485 | (build_c_cast): Don't use min_tree_cons. | |
c8094d83 | 486 | |
4e876a0f NS |
487 | 1999-11-29 Mark Mitchell <mark@codesourcery.com> |
488 | ||
489 | * pt.c (tsubst_decl): Robustify. | |
490 | ||
491 | 1999-11-27 Mark Mitchell <mark@codesourcery.com> | |
492 | ||
493 | * decl2.c (finish_file): Call expand_body for inline functions | |
494 | that will be written out but that do not yet have RTL. | |
495 | * semantics.c (expand_body): Do not generate RTL For inline | |
496 | functions that do not yet need to be written out. | |
497 | ||
498 | 1999-11-25 Mark Mitchell <mark@codesourcery.com> | |
499 | ||
c8094d83 | 500 | * Make-lang.in (CXX_SRCS): Add optimize.c. |
4e876a0f NS |
501 | * Makefile.in (CXX_OBJS): Add optimize.o. |
502 | (CXX_TREE_H): Add splay-tree.h, system.h, and $(CONFIG_H). | |
503 | (spew.o, lex.o, decl.o, decl2.o, typeck2.o, typeck.o): Adjust. | |
504 | (class.o, call.o, friend.o, init.o, method.o, cvt.o): Likewise. | |
505 | (search.o, tree.o, ptree.o, rtti.o, except.o, expr.o): Likewise. | |
506 | (xref.o, pt.o, error.o, errfn.o, repo.o, semantics.o): Likewise. | |
507 | (dump.o): Likewise. | |
c8094d83 | 508 | (optimize.o): New target. |
4e876a0f | 509 | * class.c: Don't include splay-tree.h. |
c8094d83 | 510 | * cp-tree.def (CTOR_COMPLETE): Rename to CTOR_STMT. |
4e876a0f NS |
511 | * cp-tree.h: Include splay-tree.h. |
512 | (DECL_UNINLINABLE): New macro. | |
513 | (CTOR_BEGIN_P, CTOR_END_P): New macros. | |
514 | (flag_inline_trees): New variable. | |
515 | (local_variable_p): New function. | |
516 | (nonstatic_local_decl_p): Likewise. | |
517 | (optimize_function): Likewise. | |
518 | (cplus_unsave_expr_now): Remove. | |
519 | (copy_tree_r): Declare. | |
c8094d83 | 520 | (remap_save_expr): Likewise. |
4e876a0f NS |
521 | * decl.c (local_variable_p): Don't |
522 | make it static. | |
523 | (local_variable_p_walkfn): New function. | |
524 | (make_rtl_for_local_static): Remove code to try to avoid writing | |
525 | out static constants. | |
526 | (emit_local_var): Fix indentation. | |
527 | (nonstatic_local_decl_p): New function. | |
528 | (check_default_argument): Use local_variable_p_walkfn, not | |
529 | local_variable_p, when walking the tree. | |
530 | (start_function): Set the DECL_CONTEXT for automatically generated | |
531 | labels. | |
532 | (finish_constructor_body): Use CTOR_STMT to mark the end of a | |
c8094d83 | 533 | constructor. |
4e876a0f | 534 | * decl2.c: Don't include splay-tree.h. |
c8094d83 | 535 | (flag_inline_trees): Define. |
4e876a0f | 536 | * dump.c: Don't include |
c8094d83 | 537 | splay-tree.h. |
4e876a0f NS |
538 | * except.c (expand_end_catch_block): Fix comment formatting. |
539 | (expand_end_eh_spec): Set DECL_CONTEXT on temporary variables. | |
c8094d83 MS |
540 | (expand_throw): Tidy comment. |
541 | * init.c (build_vec_delete_1): Use create_temporary_var. | |
4e876a0f NS |
542 | * lex.c (cplus_tree_code_type): Make it static. |
543 | (cplus_tree_code_length): Likewise. | |
c8094d83 MS |
544 | (cplus_tree_code_name): Likewise. |
545 | * optimize.c: New file. | |
4e876a0f NS |
546 | * semantics.c (finish_goto_stmt): Set DECL_UNLINABLE for functions |
547 | with computed gotos. | |
548 | (setup_vtbl_ptr): Mark the beginnings of constructors with | |
549 | CTOR_STMT. | |
550 | (expand_stmt): Handle CTOR_STMT, not CTOR_COMPLETE. | |
551 | (expand_body): Call optimize_function. Save bodies if we're doing | |
552 | inlining on trees. | |
553 | * tree.c: Don't include splay-tree.h. Include insn-config.h and | |
554 | integrate.h. | |
555 | (copy_tree_r): Make it public. | |
556 | (statement_code_p): New function. | |
557 | (mark_local_for_remap_r): Likewise. | |
558 | (cp_usave_r): Likewise. | |
559 | (cp_unsave): Likewise. | |
560 | (build_cplus_new): Set DECL_CONTEXT for temporary variables. | |
561 | (walk_tree): Walk into `s' class nodes. Walk statement chains. | |
562 | (copy_tree_r): Handle 's' class nodes. Restore chains for | |
563 | statements. Nullify scopes. Don't copy types. | |
564 | (init_tree): Set lang_unsave to cp_unsave. | |
565 | (remap_save_expr): Define. | |
566 | * ir.texi: Document CTOR_STMT. | |
c8094d83 | 567 | |
4e876a0f NS |
568 | 1999-11-24 Jason Merrill <jason@casey.cygnus.com> |
569 | ||
570 | * search.c (note_debug_info_needed): Do perform this optimization | |
c8094d83 | 571 | for dwarf2. |
4e876a0f NS |
572 | (maybe_suppress_debug_info): Likewise. Start by clearing |
573 | TYPE_DECL_SUPPRESS_DEBUG. | |
574 | ||
575 | 1999-11-24 Mark Mitchell <mark@codesourcery.com> | |
576 | ||
577 | * pt.c (tsubst_decl): Copy TREE_ASM_WRITTEN for VAR_DECLs. | |
578 | ||
579 | * decl2.c (finish_vtable_vardecl): Don't prune vtables here. | |
580 | ||
581 | 1999-11-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
582 | ||
583 | * decl.c (pushdecl, grokdeclarator): Don't call a variadic | |
584 | function with a non-literal format string. | |
585 | ||
586 | * lex.c (do_identifier): Likewise. | |
587 | ||
588 | * typeck.c (build_unary_op): Likewise. | |
589 | ||
590 | 1999-11-23 Mark Mitchell <mark@codesourcery.com> | |
591 | ||
592 | * cp-tree.h (DECL_NEEDED_P): Tweak to match documentation. | |
593 | ||
594 | 1999-11-22 Mark Mitchell <mark@codesourcery.com> | |
595 | ||
596 | * cp-tree.def (CTOR_COMPLETE): New tree node. | |
597 | * decl.c (finish_constructor_body): Add it, to mark the end of the | |
598 | constructor. | |
599 | (finish_function): Don't call end_protect_partials here. | |
600 | * ir.texi (CTOR_COMPLETE): Document it. | |
601 | * semantics.c (expand_stmt): Handle it. | |
c8094d83 | 602 | |
4e876a0f NS |
603 | * cp-tree.def (FUNCTION_NAME): New tree node. |
604 | * cp-tree.h (current_function_name_declared): Tweak documentation. | |
605 | (lang_decl_flags): Add pretty_function_p, adjust dummy. | |
606 | (DECL_PRETTY_FUNCTION_P): New macro. | |
607 | * decl.c (cp_finish_decl): Handle declarations of __FUNCTION__, | |
608 | etc., in a template function. Use at_function_scope_p instead of | |
609 | expanding it inline. | |
610 | * pt.c (tsubst_decl): Handle DECL_PRETTY_FUNCTION_P declarations | |
611 | specially. | |
612 | (tsubst): Handle FUNCTION_NAME. | |
613 | (tsubst_copy): Likewise. | |
614 | (instantiate_decl): Prevent redeclarations of __PRETTY_FUNCTION__, | |
615 | etc. in instantiation. | |
616 | * semantics.c (begin_compound_stmt): Declare __FUNCTION__, etc., | |
617 | even in template functions. | |
618 | (setup_vtbl_ptr): Don't declare __PRETTY_FUNCTION in the | |
619 | conditional scope at the top of a destructor. | |
c8094d83 | 620 | |
4e876a0f NS |
621 | * error.c (dump_function_decl): Use `[ with ... ]' syntax for |
622 | specializations too. | |
623 | ||
624 | 1999-11-22 Nathan Sidwell <nathan@acm.org> | |
625 | ||
626 | * semantics.c (finish_unary_op_expr): Only set TREE_NEGATED_INT | |
627 | when actually negative. | |
628 | ||
629 | * typeck.c (convert_for_assignment): Expand comment about | |
630 | strange NULL check, moved from ... | |
631 | (convert_for_initialization): ... here. Remove unneeded | |
632 | code. | |
633 | ||
634 | 1999-11-21 Alexandre Oliva <oliva@lsd.ic.unicamp.br> | |
635 | ||
636 | * cp-tree.h (build_vec_delete): Remove `auto_delete' argument. | |
637 | * init.c (build_vec_delete, build_vec_delete_1): Likewise. | |
638 | Always destruct virtual bases of array components, but never | |
639 | delete them. | |
640 | (build_vec_init): Adjust invocations. | |
641 | (build_delete): Likewise. | |
642 | * decl2.c (delete_sanity): Likewise. | |
643 | ||
644 | 1999-11-19 Nathan Sidwell <nathan@acm.org> | |
645 | ||
646 | * cp-tree.h (grok_method_quals): Return this pointer qualifiers. | |
647 | * decl.c (grokdeclarator): Adjust calls to grok_method_quals. | |
648 | * decl2.c (grok_method_quals): Accept `restrict' as applying to | |
649 | the object pointer. Return such qualifiers. | |
650 | (grokclassfn): Apply this pointer qualifiers. Cleanup unused | |
651 | variables. | |
652 | ||
653 | 1999-11-18 Mark Mitchell <mark@codesourcery.com> | |
654 | ||
655 | * except.c (expand_end_catch_block): Fix typo. | |
656 | (expand_exception_blocks): Simplify. Don't call | |
657 | expand_leftover_cleanups. | |
658 | ||
659 | 1999-11-15 Jason Merrill <jason@casey.cygnus.com> | |
660 | ||
661 | * cp-tree.h, decl.c (compute_array_index_type): Make nonstatic. | |
c8094d83 | 662 | * pt.c (tsubst, case INTEGER_TYPE): Call it. |
4e876a0f NS |
663 | Check uses_template_parms. |
664 | ||
665 | * class.c (finish_struct): If we're a local class in a template | |
666 | function, add a TAG_DEFN. | |
667 | * pt.c (lookup_template_class): If this is a local class in a | |
668 | template function, call pushtag. | |
669 | (tsubst_expr, case TAG_DEFN): Handle classes, too. | |
670 | ||
671 | Emit debug info with the vtable. | |
672 | * search.c (maybe_suppress_debug_info): New function... | |
673 | * class.c (finish_struct_1): ...split out from here. | |
674 | * cp-tree.h: Declare it. | |
675 | * decl2.c (finish_vtable_vardecl): Override TYPE_DECL_SUPPRESS_DEBUG | |
676 | if we're writing out the vtable. | |
c8094d83 | 677 | * decl.c, search.c (dfs_debug_mark, dfs_debug_unmarked_p, |
4e876a0f NS |
678 | note_debug_info_needed): #if 0 out. |
679 | ||
680 | 1999-11-14 Mark Mitchell <mark@codesourcery.com> | |
681 | ||
682 | * cp-tree.h (DECL_LOCAL_FUCNTION_P): New macro. | |
683 | * call.c (equal_functions): Use DECL_LOCAL_FUCNTION_P, not | |
684 | TREE_PERMANENT. | |
685 | * decl.c (pushdecl): Set DECL_LOCAL_FUNCTION_P. | |
686 | * decl2.c (lookup_arg_dependent): Use it. | |
c8094d83 | 687 | |
4e876a0f NS |
688 | * cp-tree.h (cp_finish_decl): Change prototype. |
689 | (finish_static_data_member_decl): Likewise. | |
690 | (push_permanent_obstack): Remove declaration. | |
691 | (push_expression_obstack): Likewise. | |
692 | (push_scratch_obstack): Likewise. | |
693 | (DECL_TEMPLATE_PARM_P): Robustify. | |
694 | (SET_DECL_TEMPLATE_PARM_P): New macro. | |
695 | * class.c (add_method): Don't manipulate obstacks. | |
696 | (finish_vtbls): Likewise. | |
697 | * cvt.c (build_up_reference): Adjust calls to cp_finish_decl. | |
698 | * decl.c (binding_for_name): Don't manipulate obstacks. | |
699 | (maybe_push_to_top_level): Likewise. | |
700 | (pop_from_top_level): Likewise. | |
701 | (duplicate_decls): Likewise. | |
702 | (pushdecl): Likewise. | |
703 | (implicitly_declare): Likewise. | |
704 | (build_typename_type): Likewise. | |
705 | (start_decl): Likewise. | |
706 | (cp_finish_decl): Likewise. | |
707 | (finish_decl): Likewise. | |
708 | (destroy_local_static): Likewise. | |
709 | (expand_static_init): Likewise. | |
710 | (complete_array_type): Likewise. | |
711 | (grokvardecl): Likewise. | |
712 | (build_ptrmemfnc_type): Likewise. | |
713 | (grokdeclarator): Likewise. | |
714 | (xref_tag): Likewise. | |
715 | (xref_basetypes): Likewise. | |
716 | (start_enum): Likewise. | |
717 | (finish_enum): Likewise. | |
718 | (start_function): Likewise. | |
719 | (finish_function): Likewise. | |
720 | (start_method): Adjust call to cp_finish_decl. | |
721 | * decl2.c (finish_static_data_member_decl): Don't manipulate | |
722 | obstacks. | |
723 | (grokfield): Likewise. | |
724 | (grokbitfield): Likewise. | |
725 | (get_temp_name): Likewise. | |
726 | (get_sentry): Likewise. | |
727 | (fnish_file): Likewise. | |
728 | (lookup_arg_dependent): Likewise. | |
729 | * except.c (call_eh_info): Likewise. | |
730 | (push_eh_info): Likewise. | |
731 | (do_pop_exception): Likewise. | |
732 | (initialize_handler_parm): Likewise. | |
733 | (expand_end_eh_spec): Likewise. | |
734 | (alloc_eh_object): Likewise. | |
735 | (expand_throw): Likewise. | |
736 | * expr.c (extract_scalar_init): Likewise. | |
737 | * init.c (build_java_class_ref): Likewise. | |
738 | * lex.c (get_time_identifier): Likewise. | |
739 | (snarf_defarg): Likewise. | |
740 | (add_defarg_fn): Likewise. | |
741 | (is_global): Simplify. | |
742 | (do_identifier): Don't check TREE_PERMANENT. | |
743 | * method.c (emit_thunk): Don't manipulate obstacks. | |
744 | * parse.y (condition): Adjust call to cp_finish_decl. | |
745 | (primary): Likewise. | |
746 | (initdcl): Likewise. | |
747 | (initdcl0_innards): Likewise. | |
748 | (nomods_initdcl0): Likewise. | |
749 | * pt.c (push_inline_template_parms_recursive): Use | |
750 | SET_DECL_TEMPLATE_PARM_P. | |
751 | (process_template_parm): Likewise. | |
752 | (lookup_template_class): Don't manipulate obstacks. | |
753 | (instantiate_class_template): Adjust call to | |
754 | finish_static_data_member_decl. | |
755 | (tsubst_decl): Don't manipulate obstacks. | |
756 | (tsubst_expr): Likewise. | |
757 | (instantiate_template): Likewise. | |
758 | (instantiate_decl): Adjust calls to cp_finish_decl. | |
759 | * rtti.c (call_void_fn): Don't manipulate obstacks. | |
760 | (get_tinfo_var): Likewise. | |
761 | (get_tinfo_fn_unused): Likewise. | |
762 | (build_dynamic_cast_1): Likewise. | |
763 | (expand_si_desc): Likewise. | |
764 | (expand_class_desc): Likewise. | |
765 | (expand_ptr_desc): Likewise. | |
766 | (expand_attr_desc): Likewise. | |
767 | (expand_generic_desc): Likewise. | |
768 | (synthesize_tinfo_fn): Likewise. | |
769 | * search.c (expand_upcast_fixups): Likewise. | |
770 | * semantics.c (finish_asm_stmt): Likewise. | |
771 | (finish_named_return_value): Likewise. | |
772 | (begin_class_definition): Likewise. | |
773 | (finish_class_definition): Likewise. | |
774 | (finish_typeof): Likewise. | |
775 | * tree.c (build_cplus_method_type): Likewise. | |
776 | (reverse_path): Likewise. | |
777 | (copy_template_template_parm): Likewise. | |
778 | (build_expr_ptr_wrapper): Likewise. | |
779 | (push_expression_obstack): Remove. | |
780 | (push_permanent_obstack): Likewise. | |
781 | * typeck.c (mark_addressable): Likewise. | |
c8094d83 | 782 | |
4e876a0f NS |
783 | 1999-11-13 Mark Mitchell <mark@codesourcery.com> |
784 | ||
785 | * call.c (build_conditional_expr): Use build_target_expr_with_type. | |
786 | (convert_like): Likewise. | |
787 | (build_over_call): Likewise. | |
788 | * cp-tree.h (build_target_expr): Remove. | |
789 | (build_target_expr_with_type): New function. | |
790 | * cvt.c (build_up_reference): Use get_target_expr. | |
791 | * decl.c (build_target_expr): Move to ... | |
792 | * tree.c (build_target_expr): Here. Make it static. | |
793 | (build_target_expr_with_type): New function. Set DECL_CONTEXT on | |
794 | the temporary VAR_DECLs. | |
795 | (get_target_expr): Use it. | |
796 | ||
797 | 1999-11-13 Jason Merrill <jason@yorick.cygnus.com> | |
798 | ||
799 | * decl.c (duplicate_decls): Propagate DECL_DEFER_OUTPUT. | |
800 | * decl2.c (comdat_linkage): Set DECL_DEFER_OUTPUT. | |
801 | * rtti.c (get_tinfo_fn_unused): Split out from get_tinfo_fn. | |
802 | * class.c (set_rtti_entry): Use it. | |
803 | ||
804 | 1999-11-12 Mark Mitchell <mark@codesourcery.com> | |
805 | ||
806 | * decl.c (cplus_expand_expr_stmt): Don't call break_out_cleanups | |
807 | here. | |
808 | * semantics.c (finish_expr_stmt): Call it here instead. Move | |
809 | default_conversion logic to semantic-analysis time. | |
810 | ||
811 | 1999-11-12 Jason Merrill <jason@yorick.cygnus.com> | |
812 | ||
813 | * rtti.c (synthesize_tinfo_fn): Set DECL_DEFER_OUTPUT. | |
814 | ||
815 | Fri Nov 12 12:56:32 MST 1999 Diego Novillo <dnovillo@cygnus.com> | |
816 | ||
817 | * init.c (init_init_processing): Re-instated Nov 11 patch after | |
818 | approval. | |
819 | ||
820 | Fri Nov 12 10:42:02 MST 1999 Diego Novillo <dnovillo@cygnus.com> | |
821 | ||
822 | * init.c (init_init_processing): Undo patch from Nov 11, 1999. | |
823 | Patch had not been approved yet. | |
824 | ||
825 | 1999-11-12 Mark Mitchell <mark@codesourcery.com> | |
826 | ||
827 | * decl.c (compute_array_index_type): New function, split out from | |
828 | grokdeclarator. | |
829 | (create_array_type_for_decl): Likewise. | |
830 | (grokdeclarator): Use them. | |
831 | ||
832 | * semantics.c (expand_stmt): Don't suspend_momentary or | |
833 | resume_momentary. | |
834 | ||
835 | Thu Nov 11 12:42:11 MST 1999 Diego Novillo <dnovillo@cygnus.com> | |
836 | ||
837 | * init.c (init_init_processing): Header information for | |
838 | arrays allocated via `new' should have the same alignment used by | |
839 | malloc. | |
840 | ||
841 | 1999-11-10 Mark Mitchell <mark@codesourcery.com> | |
842 | ||
843 | * error.c (dump_function_name): Don't crash if given a friend | |
844 | pseudo-instantiation. | |
845 | ||
846 | * cp-tree.h (build_enumerator): Change prototype. | |
847 | * decl.c (enum_next_value): Remove. | |
848 | (enum_overflow): Likewise. | |
849 | (init_decl_processing): Don't register enum_next_value as a root. | |
850 | (start_enum): Clear TYPE_VALUES for a redefined enum. | |
851 | (finish_enum): Reset the type of enumeration constants. | |
852 | (build_enumerator): Fix indentation. Don't copy CONST_DECLs when | |
853 | we don't need to. Maintain the TYPE_VALUES list and look there | |
854 | for the previously defined enumeration constant. Let enumeration | |
855 | constants have the type of their values until the enumeration type | |
856 | is complete. | |
857 | * parse.y (enumlist_opt, enumlist, enumerator): Don't return a value. | |
858 | (structsp): Adjust. | |
859 | * parse.c: Regenerated. | |
860 | * pt.c (tsubst_enum): Adjust according to build_enumerator changes. | |
c8094d83 | 861 | |
4e876a0f | 862 | Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be> |
0cbd7506 | 863 | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
4e876a0f NS |
864 | |
865 | * cp-tree.h: Test `GCC_VERSION', not `HAVE_GCC_VERSION'. | |
866 | ||
867 | 1999-11-09 Mark Mitchell <mark@codesourcery.com> | |
868 | ||
869 | * cp-tree.h (language_function): Remove x_last_dtor_insn and | |
870 | x_last_parm_cleanup_insn. | |
871 | * decl.c (last_dtor_insn): Remove. | |
872 | (last_parm_cleanup_insn): Likewise. | |
873 | (expand_start_early_try_stmts): Don't set them. | |
874 | (store_parm_decls): Likewise. | |
875 | (save_function_data): Or save them. | |
876 | (mark_lang_function): Or mark them. | |
877 | ||
878 | 1999-11-08 Mark Mitchell <mark@codesourcery.com> | |
879 | ||
880 | * decl.c (store_parm_decls): Generate cleanup code at | |
881 | semantic-analysis time. Destroy objects in the correct order. | |
882 | ||
883 | 1999-11-07 Mark Mitchell <mark@codesourcery.com> | |
884 | ||
885 | * cp-tree.h (begin_new_placement): Remove. | |
886 | (finish_new_placement): Likewise. | |
887 | * class.c (finish_struct_1): Don't suspend_momentary or | |
888 | resume_momentary. | |
889 | * decl.c (grokdeclarator): Likewise. | |
890 | (maybe_build_cleanup_1): Likewise. | |
891 | * except.c (push_eh_cleanup): Likewise. | |
892 | (build_terminate_handler): Likewise. | |
893 | * init.c (build_new_1): Likewise. | |
894 | * parse.y (parse_decl): Change prototype. | |
895 | (initdecls, notype_initdecls, initdcl): Don't return int. | |
896 | (initdcl0, notype_initdcl0, initdcl0_innards): Likewise. | |
897 | (.begin_new_placement): Remove. | |
898 | (.finish_new_placement): Likewise. | |
899 | (nonmomentary_expr): Likewise. | |
900 | (suspend_mom): Likewise. | |
901 | (condition): Don't suspend_momentary, resume_momentary, or keep | |
902 | track of need to resume. | |
903 | (unary_expr): Likewise. | |
904 | (new_placement): Likewise. | |
905 | (decl): Likewise. | |
906 | (structsp): Likewise. | |
907 | (new_type_id): Likewise. | |
908 | (maybe_parmlist): Likewise. | |
909 | (direct_after_type_declaration): Likewise. | |
910 | (direct_new_declarator): Likewise. | |
911 | (direct_abstract_declaration): Likewise. | |
912 | * parse.c: Regenerated. | |
913 | * pt.c (tsubst_expr): Don't suspend_momentary or resume_momentary. | |
914 | * semantics.c (begin_new_placement): Remove. | |
915 | (finish_new_placement): Likewise. | |
c8094d83 | 916 | |
719bb4e3 | 917 | 1999-11-05 Martin v. Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
918 | |
919 | * cp-tree.h (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK): New macro. | |
920 | (DECL_TEMPLATE_INFO): Use it. | |
921 | * decl.c (warn_extern_redeclared_static): Do nothing for | |
922 | TEMPLATE_DECLs. | |
923 | * decl2.c (mark_used): Explicitly check for function or variable. | |
924 | * semantics.c (finish_unary_op_expr): Check whether result is also | |
925 | an INTEGER_CST. | |
926 | ||
927 | 1999-11-05 Mark Mitchell <mark@codesourcery.com> | |
928 | ||
929 | * Makefile.in (typeck2.o): Depend on output.h. | |
930 | * typeck2.c: Include output.h. | |
931 | ||
932 | * decl.c (flag_ansi): Remove declaration. | |
933 | ||
934 | * pt.c (tinst_level_tick): Make it static. | |
935 | (last_template_error_tick): Likewise. | |
c8094d83 | 936 | |
4e876a0f NS |
937 | * cp-tree.h (mapcar): Remove declaration. |
938 | (search_tree): Likewise. | |
939 | (walk_tree_fn): New typedef. | |
940 | (walk_tree): New function. | |
941 | * tree.c (bot_manip): Change prototype. Adjust to be called via | |
942 | walk_tree. | |
943 | (bot_replace): Likewise. | |
944 | (no_linkage_helper): Likewise. | |
945 | (copy_tree_r): New function. | |
946 | (search_tree): Rename, and adjust, to become ... | |
947 | (walk_tree): New function. | |
948 | (mapcar): Remove. | |
949 | (target_remap): Remove. | |
950 | (target_remap_count): Likewise. | |
951 | (break_out_target_exprs): Use walk_tree. | |
952 | * decl.c (local_variable_p): Change prototype. | |
953 | (check_default_argument): Use walk_tree. | |
954 | * pt.c (for_each_template_parm_r): New function, split out from ... | |
955 | (for_each_template_parm): Here. Use it, via walk_tree. | |
c8094d83 | 956 | |
4e876a0f NS |
957 | 1999-11-03 Mark Mitchell <mark@codesourcery.com> |
958 | ||
959 | * class.c (check_bitfield_decl): New function, split out from | |
960 | finish_stuct_1. | |
961 | (check_field_decl): Likewise. Recursively examine members of | |
962 | anonymous structs. | |
963 | (finish_struct_1): Use them. | |
964 | * cp-tree.h (ANON_UNION_TYPE_P): New macro. | |
c8094d83 | 965 | |
4e876a0f NS |
966 | 1999-11-02 Mark Mitchell <mark@codesourcery.com> |
967 | ||
968 | * decl.c (grokfndecl): Remove dead code. | |
969 | ||
970 | * dump.c (dequeue_and_dump): Fix thinko for catch-clauses. | |
971 | ||
972 | 1999-11-02 Scott Snyder <snyder@fnal.gov> | |
973 | ||
974 | * decl2.c (build_expr_from_tree): Handle REALPART_EXPR and | |
975 | IMAGPART_EXPR. | |
976 | * pt.c (tsubst_copy): Likewise. | |
977 | ||
978 | 1999-11-01 Jason Merrill <jason@yorick.cygnus.com> | |
979 | ||
980 | * decl2.c (maybe_make_one_only): Always make things comdat on | |
981 | ELF targets, too. | |
982 | ||
983 | 1999-10-31 Mark Mitchell <mark@codesourcery.com> | |
984 | ||
985 | * decl.c (finish_function): Call free_after_parsing for functions | |
986 | we are not immediately turning into RTL. | |
987 | ||
988 | 1999-10-31 Brendan Kehoe <brendan@cygnus.com> | |
989 | ||
990 | * cp-tree.h (flag_dump_translation_unit): Add decl. | |
991 | ||
992 | Sat Oct 30 22:42:50 1999 Stephen L Moshier <moshier@mediaone.net> | |
993 | ||
994 | * lex.c (yylex): Accept 'f' in mantissa of hex float constant. | |
995 | ||
996 | 1999-10-30 Mark Mitchell <mark@codesourcery.com> | |
997 | ||
998 | * decl.c (pop_cp_function_context): Don't call free on a NULL | |
999 | pointer. | |
1000 | * semantics.c: Include ggc.h. | |
1001 | (expand_body): Do garbage-collection after processing a template | |
1002 | function. Clear DECL_SAVED_TREE after generating RTL for a | |
1003 | function. | |
1004 | * Makefile.in (semantics.o): Depend on ggc.h. | |
c8094d83 | 1005 | |
4e876a0f NS |
1006 | 1999-10-29 Mark Mitchell <mark@codesourcery.com> |
1007 | ||
1008 | * cp-tree.h (make_typename_type): Change prototype. | |
1009 | * decl.c (make_typename_type): Only complain if so requested. | |
1010 | * parse.y (nested_name_specifier): Adjust calls. | |
1011 | (typename_sub0): Likewise. | |
1012 | (typename_sub1): Likewise. | |
1013 | * parse.c: Regenerated. | |
1014 | * pt.c (convert_template_argument): Pass complain to | |
1015 | make_typename_type. | |
1016 | (tsubst): Likewise. | |
c8094d83 | 1017 | |
4e876a0f NS |
1018 | 1999-10-28 Mark Mitchell <mark@codesourcery.com> |
1019 | ||
1020 | * semantics.c (finish_handler): End the scope of the handler | |
1021 | before attaching it to the statement-tree. | |
1022 | ||
1023 | 1999-10-28 Ian Lance Taylor <ian@zembu.com> | |
1024 | ||
1025 | * rtti.c (build_dynamic_cast_1): Give a better error message for | |
1026 | an attempt to dynamic_cast from a non-polymorphic type. | |
1027 | ||
1028 | 1999-10-27 Mark Mitchell <mark@codesourcery.com> | |
1029 | ||
1030 | * cp-tree.h (make_temp_vec): Remove. | |
1031 | (make_scratch_vec): Likewise. | |
1032 | * call.c (add_function_candidate): Use make_tree_vec. | |
1033 | (add_conv_candidate): Likewise. | |
1034 | (build_builtin_candidate): Likewise. | |
1035 | (add_template_candidate_real): Likewise. | |
1036 | * class.c (resolve_address_of_overloaded_function): Likewise. | |
1037 | * decl.c (start_function): Don't fool with the momentary obstack. | |
1038 | (finish_function): Likewise. | |
1039 | * init.c (expand_direct_vtbls_init): Likewise. | |
1040 | (begin_init_stmts): Likewise. | |
1041 | (finish_init_stmts): Likewise. | |
1042 | * pt.c (add_to_template_args): Use make_tree_vec. | |
1043 | (check_explicit_specialization): Likewise. | |
1044 | (coerce_template_parms): Likewise. | |
1045 | (lookup_template_class): Don't fool with the momentary obstack. | |
1046 | (instantiate_class_template): Likewise. | |
1047 | (tsubst_template_arg_vector): Use make_tree_vec. | |
1048 | (tsubst_aggr_type): Don't fool with the momentary obstack. | |
1049 | (tsubst_decl): Likewise. Use make_tree_vec. | |
1050 | (try_one_overload): Likewise. | |
1051 | (try_class_unification): Don't fool with the momentary obstack. | |
1052 | (get_bindings_real): Use make_tree_vec. | |
1053 | (set_mangled_name_for_template_decl): Likewise. | |
1054 | * rtti.c (synthesize_tinfo_fn): Don't fool with the momentary obstack. | |
1055 | * semantics.c (finish_expr_stmt): Likewise. | |
1056 | (finish_do_stmt): Likewise. | |
1057 | (finish_for_expr): Likewise. | |
1058 | (finish_switch_cond): Likewise. | |
1059 | (do_pushlevel): Likewise. | |
1060 | (do_poplevel): Likewise. | |
1061 | * tree.c (make_temp_vec): Remove. | |
c8094d83 | 1062 | |
4e876a0f NS |
1063 | * dump.c (dequeue_and_dump): Dump HANDLERs and SAVE_EXPRs. Dump |
1064 | CLEANUP_P for a TRY_BLOCK. | |
1065 | * ir.texi: Document SAVE_EXPR. | |
1066 | ||
1067 | Tue Oct 26 23:29:56 1999 Jeffrey A Law (law@cygnus.com) | |
1068 | ||
1069 | * call.c (build_over_call): Check that the built-in function is | |
1070 | of class BUILT_IN_NORMAL before trying to recongize it as BUILT_IN_ABS. | |
c8094d83 | 1071 | * typeck.c (build_function_call_real): Similarly. |
4e876a0f NS |
1072 | |
1073 | 1999-10-26 Mark Mitchell <mark@codesourcery.com> | |
1074 | ||
1075 | * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS. Don't call | |
1076 | remember_end_note. | |
1077 | ||
1078 | 1999-10-24 Mark Mitchell <mark@codesourcery.com> | |
1079 | ||
1080 | * decl.c (push_overloaded_decl_1): Use pushdecl. | |
c8094d83 | 1081 | |
4e876a0f NS |
1082 | * decl.c (auto_function): Replace #ifdef'd __inline with just |
1083 | plain inline. | |
1084 | * lex.c (my_get_run_time): Likeise. | |
1085 | (yyprint): Likewise. | |
1086 | (identifier_type): Likewise. | |
1087 | * method.c (start_squangling): Likewise. | |
1088 | (end_squangling): Likewise. | |
1089 | (icat): Likewise. | |
1090 | (old_backref_index): Likewise. | |
1091 | (flush_repeats): Likewise. | |
1092 | (issue_ktype): Likewise. | |
1093 | * parse.y (empty_parms): Likewise. | |
1094 | * parse.c: Regenerated. | |
c8094d83 | 1095 | |
4e876a0f NS |
1096 | 1999-10-21 Mark Mitchell <mark@codesourcery.com> |
1097 | ||
1098 | * dump.c (dequeue_and_dump): Replace several uses of | |
1099 | queue_and_dump_index with dump_child. | |
1100 | ||
1101 | 1999-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
1102 | ||
1103 | * expr.c: Include tm_p.h. | |
1104 | ||
1105 | 1999-10-21 Mark Mitchell <mark@codesourcery.com> | |
1106 | ||
1107 | * cp-tree.h (SCOPE_PARTIAL_P): New macro. | |
1108 | (pushlevel_temporary): Remove. | |
1109 | (add_scope_stmt): New function. | |
1110 | * decl.c (pushlevel_temporary): Remove. | |
1111 | (poplevel): Use add_scope_stmt. | |
1112 | (start_decl_1): Likewise. | |
1113 | * semantics.c (add_scope_stmt): New function. | |
1114 | (do_pushlevel): Use it. | |
1115 | (do_poplevel): Use it. | |
1116 | (expand_stmt): Check SCOPE_PARTIAL_P. | |
c8094d83 | 1117 | |
4e876a0f NS |
1118 | * cp-tree.def (EMPTY_CLASS_EXPR): New tree node. |
1119 | * call.c (build_call): Use EMPTY_CLASS_EXPR instead of RTL_EXPR. | |
1120 | * expr.c (cplus_expand_expr): Expand it. | |
1121 | * ir.texi: Document EMPTY_CLASS_EXPR. | |
c8094d83 | 1122 | |
4e876a0f NS |
1123 | 1999-10-20 Mark Mitchell <mark@codesourcery.com> |
1124 | ||
1125 | * cp-tree.h (DECL_NAMESPACE_SCOPE_P): Don't treat template | |
1126 | parameters as having namespace scope. | |
1127 | ||
1128 | 1999-10-19 Mark Mitchell <mark@codesourcery.com> | |
1129 | ||
1130 | * method.c (PARM_CAN_BE_ARRAY_TYPE): Remove. | |
1131 | (mangling_flags): New type. | |
1132 | (build_overload_int): Change prototype. | |
1133 | (build_overload_value): Likewise. | |
1134 | (numeric_output_need_bar): Improve comment. | |
1135 | (mangle_expression): New function, broken out from ... | |
1136 | (build_overload_int): Here. | |
1137 | (build_overload_value): Adjust for use of mangling flags. Don't | |
1138 | warn about real-valued template parameters here. Do handle | |
1139 | complex expressions involving real-valued template parameters. | |
1140 | (build_template_parm_names): Encase non-type template parameters | |
1141 | in underscores, if necessary. | |
1142 | (process_overload_item): Remove conditional on | |
1143 | PARM_CAN_BE_ARRAY_TYPE. | |
1144 | ||
1145 | 1999-10-17 Mark Mitchell <mark@codesourcery.com> | |
1146 | ||
1147 | * dump.c (dequeue_and_dump): Handle CLEANUP_POINT_EXPR. | |
1148 | ||
1149 | * ir.texi: Clean up documentation of RETURN_INIT. | |
c8094d83 | 1150 | |
4e876a0f NS |
1151 | 1999-10-15 Greg McGary <gkm@gnu.org> |
1152 | ||
1153 | * lex.c (lang_init_options): Set flag_bounds_check as "unspecified". | |
1154 | (lang_init): Set default for flag_bounds_check if still "unspecified". | |
1155 | ||
1156 | 1999-10-13 Andrew Haley <aph@cygnus.com> | |
1157 | ||
1158 | * class.c (finish_struct_1): Force alignment of non-bitfields to | |
1159 | BITS_PER_UNIT. | |
1160 | ||
1161 | Wed Oct 13 22:01:35 1999 J"orn Rennecke <amylaar@cygnus.co.uk> | |
1162 | ||
1163 | * typeck2.c (process_init_constructor): Handle empty constructors. | |
1164 | ||
1165 | 1999-10-13 Jason Merrill <jason@yorick.cygnus.com> | |
1166 | ||
1167 | * decl.c (lang_mark_tree): Mark NAMESPACE_LEVEL. | |
1168 | ||
1169 | * pt.c (tsubst, case INTEGER_TYPE): Be more explicit in zero-size | |
1170 | array error. | |
1171 | ||
1172 | 1999-10-13 Mark Mitchell <mark@codesourcery.com> | |
1173 | ||
1174 | * decl.c (make_rtl_for_local_static): Don't create register RTL | |
1175 | for addressable constants. | |
1176 | ||
1177 | 1999-10-13 Nathan Sidwell <nathan@acm.org> | |
1178 | ||
1179 | * cp-tree.h (build_x_va_arg): Prototype new function. | |
1180 | * call.c (build_x_va_arg): Define it. | |
1181 | * parse.y (unary_expr): Call build_x_va_arg. | |
c8094d83 | 1182 | |
4e876a0f NS |
1183 | * cp-tree.h (convert_type_from_ellipsis): Prototype new function. |
1184 | * call.c (convert_type_from_ellipsis): Define it. | |
1185 | * decl.c (init_decl_processing): Set lang_type_promotes_to. | |
1186 | ||
1187 | * tree.c (lvalue_p_1): Accept VA_ARG_EXPR with aggregates. | |
1188 | ||
1189 | 1999-10-11 Jason Merrill <jason@yorick.cygnus.com> | |
1190 | ||
1191 | * class.c (fixed_type_or_null): Always set *nonnull. | |
1192 | ||
1193 | 1999-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
1194 | ||
1195 | * cp-tree.h: Use HAVE_GCC_VERSION instead of explicitly testing | |
1196 | __GNUC__ and __GNUC_MINOR__. | |
1197 | ||
1198 | 1999-10-09 Mark Mitchell <mark@codesourcery.com> | |
1199 | ||
c8094d83 | 1200 | * cp-tree.h (make_rtl_for_local_static): New function. |
4e876a0f NS |
1201 | * decl.c (make_rtl_for_nonlocal_decl): Move code to create RTL for |
1202 | local statics ... | |
1203 | (make_rtl_for_local_static): Here. | |
1204 | * semantics.c (expand_stmt): Use make_rtl_for_local_static. | |
c8094d83 | 1205 | |
4e876a0f NS |
1206 | 1999-10-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
1207 | ||
1208 | * method.c: Include tm_p.h. | |
1209 | ||
1210 | 1999-10-7 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> | |
1211 | ||
1212 | * cp-tree.h (cp_make_lake_type): Renamed from make_lang_type. | |
1213 | * lex.c (cp_make_lake_type): Likewise. | |
1214 | * tree.c (init_tree): Init make_lang_type_fn. | |
c8094d83 | 1215 | |
4e876a0f NS |
1216 | 1999-10-07 Mark Mitchell <mark@codesourcery.com> |
1217 | ||
1218 | * pt.c (tsubst_expr): Set DECL_TEMPLATE_INSTANTIATED for a catch | |
1219 | parameter. | |
c8094d83 | 1220 | |
4e876a0f NS |
1221 | * semantics.c (expand_stmt): Don't pretend to have asmspecs for |
1222 | local statics if we don't really have them. | |
1223 | ||
1224 | * ir.texi: Improve documentation for STMT_EXPR. Describe | |
1225 | CLEANUP_POINT_EXPR. | |
1226 | ||
1227 | 1999-10-07 Jason Merrill <jason@yorick.cygnus.com> | |
1228 | ||
1229 | * class.c (build_vtable_entry_ref): Use finish_asm_stmt. | |
1230 | ||
1231 | 1999-10-07 Greg McGary <gkm@gnu.org> | |
1232 | ||
1233 | * class.c (finish_struct_1): Use simpler method of | |
1234 | removing elements of a singly-linked list which doesn't | |
1235 | lose for classes without data members. | |
1236 | ||
1237 | 1999-10-07 Mark Mitchell <mark@codesourcery.com> | |
1238 | ||
1239 | * friend.c (make_friend_class): Robustify. | |
1240 | ||
1241 | * semantics.c (finish_object_call_expr): Reject calls to template | |
1242 | types. | |
1243 | ||
1244 | 1999-10-06 Mark Mitchell <mark@codesourcery.com> | |
1245 | ||
1246 | * dump.c (dequeue_and_dump): Dump all three operands to a COND_EXPR. | |
1247 | ||
1248 | * cp-tree.h (CLASSTYPE_VFIELD): Remove. | |
1249 | * call.c (build_vfield_ref): Use TYPE_VFIELD, not | |
1250 | CLASSTYPE_VFIELD. | |
1251 | * class.c (get_vfield_offset): Likewise. | |
1252 | (finish_base_struct): Likewise. | |
1253 | (modify_one_vtable): Likewise. | |
1254 | (fixup_vtable_deltas): Likewise. | |
1255 | (finish_struct_1): Likewise. | |
1256 | * init.c (expand_virtual_init): Likewise. | |
1257 | * search.c (lookup_field_1): Likewise. | |
1258 | (expand_upcast_fixups): Likewise. | |
1259 | * typeck.c (build_component_ref): Likewise. | |
1260 | (build_binary_op_nodefault): Likewise. | |
c8094d83 | 1261 | |
4e876a0f NS |
1262 | * dump.c (dqueue_and_dump): Dump TYPE_VFIELD. |
1263 | * ir.texi: Document TYPE_VFIELD. | |
1264 | ||
1265 | 1999-10-06 Brendan Kehoe <brendan@cygnus.com> | |
1266 | ||
1267 | * decl.c (grokdeclarator): Only warn about nonzero arrays if | |
1268 | !in_system_header (linux socketbits.h can give this for | |
1269 | __cmsg_data, which is using a GNU extension). | |
1270 | ||
1271 | 1999-10-05 Mark Mitchell <mark@codesourcery.com> | |
1272 | ||
1273 | * decl2.c (start_static_storage_duration_function): Push the | |
1274 | function declaration so it ends up in namespace scope. | |
1275 | ||
1276 | * dump.c (DUMP_CHILDREN): Remove. | |
1277 | (DUMP_BINFO): Adjust. | |
1278 | (struct dump_node_info): Remove dump_children_p. | |
1279 | (queue_and_dump_type): Remove dump_children_p parameter. | |
1280 | (queue): Don't set dump_children_p. | |
1281 | (dump_child): Pass DUMP_NONE, instead of DUMP_CHILDREN, to | |
1282 | queue_and_dump_index. | |
1283 | (dequeue_and_dump): Unconditionally print children. Adjust calls | |
1284 | to functions mentioned above. | |
1285 | (dump_node): Pass DUMP_NONE, instead of DUMP_CHILDREN to queue. | |
c8094d83 | 1286 | |
4e876a0f NS |
1287 | * ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR. |
1288 | * dump.c (dequeue_and_dump): Dump them. | |
c8094d83 | 1289 | |
4e876a0f NS |
1290 | * method.c (synthesize_method): Call setup_vtbl_ptr for destructors. |
1291 | ||
1292 | * decl.c (start_function): Set current_in_charge_parm for | |
1293 | constructors, too, where appropriate. | |
1294 | * search.c (fixup_all_virtual_upcast_offsets): New function. | |
1295 | (expand_indirect_vtbls_init): Use it. | |
c8094d83 | 1296 | |
4e876a0f NS |
1297 | 1999-10-04 Nathan Sidwell <nathan@acm.org> |
1298 | ||
1299 | * decl2.c (grok_alignof): Don't decay lvalues. | |
c8094d83 | 1300 | |
4e876a0f NS |
1301 | * init.c (build_new): Remove unused variable. |
1302 | ||
1303 | 1999-10-04 Mark Mitchell <mark@codesourcery.com> | |
1304 | ||
1305 | * cp-tree.h (struct language_function): Remove static_labelno. | |
1306 | (static_labelno): Remove macro. | |
1307 | * method.c (build_overload_nested_name): Make static_labelno | |
1308 | static here. | |
c8094d83 | 1309 | |
4e876a0f NS |
1310 | * pt.c (instantiate_decl): Use DECL_SAVED_TREE, not DECL_INITIAL, |
1311 | to decide whether or not a function is defined. | |
1312 | ||
1313 | * call.c (build_over_call): Don't set TREE_SIDE_EFFECTS for | |
1314 | situations where make_node will do it automatically. | |
1315 | * decl.c (grok_reference_init): Likewise. | |
1316 | (expand_static_init): Likewise. | |
1317 | (do_static_initialization): Likewise. | |
1318 | * init.c (perform_member_init): Likewise. | |
1319 | (expand_aggr_init_1): Likewise. | |
1320 | (build_new_1): Likewise. | |
1321 | * method.c (do_build_copy_constructor): Likewise. | |
1322 | (do_build_assign_ref): Likewise. | |
1323 | * search.c (expand_upcast_fixups): Likewise. | |
1324 | * semantics.c (finish_stmt_expr): Likewise. | |
1325 | * typeck.c (build_unary_op): Likewise. | |
1326 | (check_return_expr): Likewise. | |
1327 | ||
1328 | 1999-10-04 Jason Merrill <jason@yorick.cygnus.com> | |
1329 | ||
1330 | * init.c (build_vec_delete_1): Fold COND_EXPRs. | |
1331 | ||
1332 | 1999-10-03 Mark Mitchell <mark@codesourcery.com> | |
1333 | ||
1334 | * cp-tree.def (VEC_INIT_EXPR): Remove. | |
1335 | * cp-tree.h (struct stmt_tree): New type. | |
1336 | (struct saved_scope): Remove firstobj. Add x_saved_tree, | |
1337 | x_stmt_tree. | |
1338 | (class_cache_firstobj): Remove. | |
1339 | (struct language_function): Remove stmts_are_full_exprs_p, | |
1340 | x_last_tree, and x_last_expr_type. Add x_stmt_tree. | |
1341 | (current_stmt_tree): New macro. | |
1342 | (last_tree): Adjust. | |
1343 | (last_expr_type): Likewise. | |
1344 | (doing_semantic_analysis_p): Simplify. | |
1345 | (stmts_are_full_exprs_p): Adjust. | |
1346 | (begin_tree): Remove prototype. | |
1347 | (end_tree): Likewise. | |
1348 | (begin_stmt_tree): Change prototype. | |
1349 | (finish_stmt_tree): Likewise. | |
1350 | (building_stmt_tree): Simplify. | |
1351 | * decl.c (mark_stmt_tree): New function. | |
1352 | (mark_saved_scope): Use it. | |
c8094d83 | 1353 | (start_function): Rearrange slightly to call begin_stmt_tree |
4e876a0f NS |
1354 | earlier. |
1355 | (save_function_data): Tweak. | |
1356 | (finish_function): Adjust call to finish_stmt_tree. | |
1357 | (mark_lang_function): Use mark_stmt_tree. | |
1358 | * expr.c (cplus_expand_expr): Don't handle VEC_INIT_EXPR. | |
1359 | * init.c (build_new_1): Remove creation of VEC_INIT_EXPR. | |
1360 | (build_vec_init): Remove creation of stand-in initializer. | |
1361 | * pt.c (begin_tree): Remove. | |
1362 | (end_tree): Likewise. | |
1363 | * semantics.c (SET_LAST_STMT): New macro. Use it throughout. | |
1364 | (begin_compound_stmt): Handle a compound-statement outside of a | |
1365 | function. | |
1366 | (begin_stmt_expr): Handle a statement-expression outsidef of a | |
1367 | function. | |
1368 | (finish_stmt_expr): Likewise. | |
1369 | (begin_class_definition): Don't call begin_tree. | |
1370 | (finish_inline_definitions): Don't call end_tree. | |
1371 | (begin_stmt_tree): Take a pointer to tree, not a function as input. | |
1372 | (finish_stmt_tree): Likewise. | |
1373 | * tree.c (search_tree): Don't handle VEC_INIT_EXPR. | |
1374 | (mapcar): Likewise. | |
c8094d83 | 1375 | |
4e876a0f NS |
1376 | * parse.y (simple_stmt): Don't call finish_stmt unnecessarily. |
1377 | * parse.c: Regenerated. | |
c8094d83 | 1378 | |
4e876a0f | 1379 | * dump.c (dqueue_and_dump): Dump bitfieldness. |
c8094d83 | 1380 | |
4e876a0f NS |
1381 | * tree.c (lvalue_p_1): Use DECL_C_BIT_FIELD to check for |
1382 | bitfields, rather than DECL_BIT_FIELD. | |
1383 | * ir.texi: Document how to tell whether or not a field is a | |
1384 | bitfield. | |
c8094d83 | 1385 | |
4e876a0f NS |
1386 | * lex.c (make_lang_type): Fix typo in comment. |
1387 | ||
1388 | 1999-10-01 Jason Merrill <jason@yorick.cygnus.com> | |
1389 | ||
1390 | * typeck.c (decay_conversion): Strip cv-quals from non-class rvalues. | |
1391 | ||
1392 | 1999-10-01 Mark Mitchell <mark@codesourcery.com> | |
1393 | ||
1394 | * pt.c (tsubst_decl): If the type of a template instantiation is | |
1395 | bogus, so is the whole instantiation. | |
1396 | ||
1397 | 1999-09-30 Mark Mitchell <mark@codesourcery.com> | |
1398 | ||
1399 | * decl.c (initialize_local_var): Handle static variables here. | |
1400 | (cp_finish_decl): Tweak handling of function-scope static | |
1401 | variables. | |
1402 | * semantics.c (expand_stmt): Handle DECL_STMTs for static | |
1403 | variables. | |
1404 | ||
1405 | * method.c (emit_thunk): Don't crash when -fsyntax-only. | |
1406 | ||
1407 | * cp-tree.h (lang_decl_flags): Add global_ctor_p and | |
1408 | global_dtor_p. Add init_priority. | |
1409 | (DECL_ACCESS): Adjust accordingly. | |
1410 | (DECL_GLOBAL_CTOR_P, DECL_GLOBAL_DTOR_P): New macros. | |
1411 | (GLOBAL_INIT_PRIORITY): Likewise. | |
1412 | * decl.c (lang_mark_tree): Adjust accordingly. | |
c8094d83 | 1413 | (start_objects): Set DECL_GLOBAL_CTOR_P, DECL_GLOBAL_DTOR_P, |
4e876a0f NS |
1414 | and GLOBAL_INIT_PRIORITY. |
1415 | * dump.c (dequeue_and_dump): Print them. | |
1416 | * ir.texi: Document them. | |
1417 | ||
1418 | * decl2.c (struct priority_info_s): Remove initialization_sequence | |
1419 | and destruction_sequence. | |
1420 | (start_static_storage_duration_function): Return the body of the | |
1421 | function. Convert for function-at-a-time mode. | |
1422 | (generate_inits_for_priority): Remove. | |
1423 | (finish_static_storage_duration_function): Change prototype. | |
1424 | Adjust for function-at-a-time mode. | |
1425 | (do_static_initialization): Likewise. | |
1426 | (do_static_destruction): Likewise. | |
1427 | (do_static_initialization_and_destruction): Remove. | |
1428 | (start_static_initialization_or_destruction): New function. | |
1429 | (finish_static_initialization_or_destruction): Likewise. | |
1430 | (get_priority_info): Don't manipulation initialization_sequence or | |
1431 | destruction_sequence. | |
1432 | (prune_vars_needing_no_initialization): New function. | |
1433 | (write_out_vars): Likewise. | |
1434 | (finish_file): Use the various new functions instead of the old. | |
c8094d83 | 1435 | |
4e876a0f NS |
1436 | Thu Sep 30 00:13:27 1999 Dirk Zoller <duz@rtsffm.com> |
1437 | ||
1438 | * cp-tree.h (warn_float_equal): Declare. | |
1439 | * decl2.c (warn_float_equal): Define. | |
1440 | (lang_decode_option): Recognize -W[no-]float-equal. | |
1441 | * typeck.c (build_binary_op_nodefault): Conditionally warn | |
1442 | about equality tests of floating point types. | |
1443 | ||
1444 | 1999-09-29 Jason Merrill <jason@yorick.cygnus.com> | |
1445 | ||
1446 | Support normal type_info-based EH mechanisms with -fno-rtti. | |
1447 | * except.c (build_eh_type_type): Remove special -fno-rtti handling. | |
1448 | (build_eh_type_type_ref): Likewise. | |
1449 | (build_eh_type): Remove. | |
1450 | (expand_throw): Call build_eh_type_type, not build_eh_type. | |
1451 | * decl2.c (import_export_decl): Don't associate the tinfo fn with | |
1452 | the vtable if -fno-rtti. | |
1453 | * decl.c (init_decl_processing): Always init_rtti_processing. | |
1454 | ||
1455 | * rtti.c (get_typeid): Don't complain about -fno-rtti. | |
1456 | ||
1457 | * class.c (class_cache_obstack, class_obstack): Remove. | |
1458 | (init_class_processing): Don't initialize class_obstack. | |
1459 | (push_cache_obstack): Remove. | |
1460 | (pushclass): Don't call it. | |
1461 | * cp-tree.h: Remove prototype for push_cache_obstack. | |
1462 | * decl.c (decl_obstack, decl_stack, push_decl_level): Remove. | |
1463 | (pushlevel_class): Don't push_decl_level. | |
1464 | (poplevel_class): Don't pop_stack_level. | |
1465 | (push_class_level_binding): Don't push_cache_obstack. | |
1466 | (init_decl_processing): Don't initialize decl_obstack. | |
1467 | * search.c (push_class_decls): Don't push_cache_obstack. | |
1468 | * tree.c (list_hash_add): Put hash node on permanent_obstack. | |
1469 | (hash_tree_cons): Don't mess with obstacks. | |
1470 | (print_lang_statistics): Don't print stats for class_obstack and | |
1471 | decl_obstack. | |
1472 | ||
1473 | 1999-09-29 Mark Mitchell <mark@codesourcery.com> | |
1474 | ||
1475 | * dump.c (dequeue_and_dump): Dump DECL_EXTERNAL. | |
1476 | * ir.texi: Document DECL_EXTERNAL. | |
1477 | ||
1478 | * dump.c (dequeue_and_dump): Improve support for dumping THUNK_DECLs. | |
1479 | * ir.texi: Document THUNK_DECLs. | |
1480 | ||
1481 | * cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Move here from pt.c. | |
1482 | (TMPL_ARGS_DEPTH, TMPL_ARGS_LEVEL, SET_TMPL_ARGS_LEVEL): Likewise. | |
1483 | (TMPL_ARG, SET_TMPL_ARG, NUM_TMPL_ARGS, TMPL_PARMS_DEPTH): Likewise. | |
1484 | * error.c (dump_template_bindings): Remove unused parameter. | |
1485 | Handle multiple levels of template parameters. | |
1486 | (dump_template_decl): Use `parms', not `args', for template | |
1487 | parameters. Fix thinko. | |
1488 | (dump_function_decl): Use DECL_TEMPLATE_INSTANTIATION. Don't pass | |
1489 | flags to dump_template_bindings. | |
1490 | * pt.c (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Move to cp-tree.h. | |
1491 | (TMPL_ARGS_DEPTH, TMPL_ARGS_LEVEL, SET_TMPL_ARGS_LEVEL): Likewise. | |
1492 | (TMPL_ARG, SET_TMPL_ARG, NUM_TMPL_ARGS, TMPL_PARMS_DEPTH): Likewise. | |
1493 | (tsubst_copy): Clarify variable name. | |
1494 | (most_general_template): Robustify. | |
c8094d83 | 1495 | |
4e876a0f NS |
1496 | 1999-09-29 Nathan Sidwell <nathan@acm.org> |
1497 | ||
1498 | * error.c (dump_template_parms): Don't use TS_PEDANTIC_NAME | |
1499 | to change primary template rendering. | |
1500 | ||
1501 | 1999-09-29 Mark Mitchell <mark@codesourcery.com> | |
1502 | ||
1503 | * cp-tree.h (UPT_TEMPLATE): Remove. | |
1504 | (UPT_PARMS): Likewise. | |
1505 | (DECL_NEEDED_P): New macro. | |
1506 | * decl2.c (finish_vtable_vardecl): Use it. | |
1507 | (finish_objects): Don't crash with -fsyntax-only. | |
1508 | (finish_file): Use DECL_NEEDED_P. Don't prune vtables when | |
1509 | -fsyntax-only. | |
1510 | * pt.c (tsubst_friend_function): Remove FIXME that talks about | |
1511 | obstacks. | |
1512 | (tsubst_expr): Correct handling of function try-blocks. | |
1513 | * semantics.c: Include flags.h. | |
1514 | (expand_body): Don't do RTL generation if -fsyntax-only. | |
1515 | * Makefile.in (semantics.o): Depends on flags.h. | |
c8094d83 | 1516 | |
4e876a0f NS |
1517 | 1999-09-28 Gabriel Dos Reis <gdr@codesourcery.com> |
1518 | ||
1519 | * pt.c (most_general_template): Adjust declaration. | |
1520 | ||
1521 | * cp-tree.h: (most_general_template): Declare. | |
1522 | ||
1523 | * error.c (dump_template_value): Rename to ... | |
1524 | (dump_template_argument): This. | |
1525 | (dump_template_argument_list): New function. | |
1526 | (dump_type): Use it. | |
1527 | (dump_template_parameter): New function. | |
1528 | (dump_template_decl): Use it. | |
1529 | (dump_template_bindings): New function. | |
1530 | (dump_function_decl): Use it. Pretty print function template | |
1531 | instantiations. | |
1532 | ||
1533 | 1999-09-28 Nathan Sidwell <nathan@acm.org> | |
1534 | ||
1535 | * decl.c (grokdeclarator): Distinguish parameter context for | |
1536 | diagnostics. Tidy up missing type diagnostic. | |
1537 | Diagnose `explicit' in one place. Diagnose `mutable' in one place. | |
1538 | ||
1539 | 1999-09-28 Mark Mitchell <mark@codesourcery.com> | |
1540 | ||
1541 | * ir.texi: Improve documentation for TARGET_EXPR. | |
1542 | ||
1543 | 1999-09-27 Nathan Sidwell <nathan@acm.org> | |
1544 | ||
1545 | Augment stringification of trees. | |
1546 | * cp-tree.h (tree_string_flags): New error stringifying enumeration. | |
1547 | (fndecl_as_string, type_as_string_real, args_as_string, | |
1548 | code_as_string, language_as_string, parm_as_string, | |
1549 | op_as_string, assop_as_string, cv_as_string): Remove. | |
1550 | (type_as_string, decl_as_string, expr_as_string): Adjust prototype. | |
1551 | (context_as_string): Declare new function. | |
1552 | * error.c (cp_printers): Move definition. | |
1553 | (OB_UNPUT): Remove. | |
1554 | (OB_END_TEMPLATE_ID): Adjust. | |
1555 | (interesting_scope_p): Remove. | |
1556 | (dump_scope): New static function. | |
1557 | (dump_qualifiers): Adjust prototype, reimplement. | |
1558 | (dump_template_value): Use tree_string_flags. | |
1559 | (dump_type_real): Move back to dump_type. | |
1560 | (dump_type): Adjust prototype. Use tree_string_flags. | |
1561 | (dump_aggr_type): Likewise. Use dump_template_parms. | |
1562 | (dump_type_prefix): Adjust prototype. Use tree_string_flags. | |
1563 | Return pad flag. | |
1564 | (dump_type_suffix): Adjust prototype. Use tree_string_flags. | |
1565 | (dump_simple_decl): Likewise. | |
1566 | (dump_decl): Likewise. Use dump_template_decl. | |
1567 | (dump_template_decl): New static function broken out of dump_decl. | |
1568 | (dump_function_decl): Adjust prototype. Use tree_string_flags. | |
1569 | (dump_parameters): Likewise. Prefix space. | |
1570 | (dump_exception_spec): Adjust prototype. Use tree_string_flags. | |
1571 | (dump_function_name): Likewise. Use dump_template_parms. | |
1572 | (dump_template_parms): New static function broken out of | |
1573 | dump_function_name. | |
1574 | (dump_expr_list): Adjust prototype. Use tree_string_flags. | |
1575 | (dump_expr): Likewise. | |
1576 | (fndecl_as_string): Removed | |
1577 | (type_as_string_real): Removed | |
1578 | (dump_binary_op): Adjust prototype. Use tree_string_flags. | |
1579 | (dump_unary_op): Likewise. | |
1580 | (type_as_string): Likewise. | |
1581 | (expr_as_string): Likewise. | |
1582 | (decl_as_string): Likewise. | |
1583 | (context_as_string): New function. | |
1584 | (lang_decl_name): Adjust. | |
1585 | (decl_to_string): New static print callback. | |
1586 | (expr_to_string): Likewise. | |
1587 | (fndecl_to_string): Likewise. | |
1588 | (code_as_string): Renamed to ... | |
1589 | (code_to_string): ... here. Adjust. | |
1590 | (language_as_string): Renamed to ... | |
1591 | (language_to_string): ... here. Adjust. | |
1592 | (parm_as_string): Renamed to ... | |
1593 | (parm_to_string): ... here. | |
1594 | (op_as_string): Renamed to ... | |
1595 | (op_to_string): ... here. | |
1596 | (assop_as_string): Renamed to ... | |
1597 | (assop_to_string): ... here. | |
1598 | (type_to_string): New static print callback. | |
1599 | (args_as_string): Renamed to ... | |
1600 | (args_to_string): ... here. Adjust. | |
1601 | (cv_as_string): Renamed to ... | |
1602 | (cv_to_string): ... here. Adjust. | |
1603 | * pt.c (mangle_class_name_for_template): Use tree_string_flags. | |
1604 | (print_template_context): Likewise. | |
1605 | ||
1606 | 1999-09-26 Mark Mitchell <mark@codesourcery.com> | |
1607 | ||
1608 | * cp-tree.h (expand_throw): Remove prototype. | |
1609 | * except.c (expand_throw): Make it static. Use tree-generation | |
1610 | functions, rather than RTL-generation functions. | |
1611 | (build_throw): Use it. | |
1612 | * expr.c: Include except.h. | |
1613 | (cplus_expand_expr): Don't call expand_throw here. | |
1614 | * Makefile.in (expr.o): Depend on except.h. | |
1615 | * ir.texi: Update documentation for THROW_EXPR. | |
c8094d83 | 1616 | |
4e876a0f NS |
1617 | * decl.c (start_function): Set x_dont_save_pending_sizes rather |
1618 | than calling get_pending_sizes. | |
1619 | * init.c (build_new): Don't save and restore | |
1620 | immediate_size_expand; instead, assert that it has the expected | |
1621 | value already. | |
1622 | ||
1623 | 1999-09-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
1624 | ||
1625 | * lex.c (compiler_error): Add missing call to va_end(). | |
1626 | ||
1627 | 1999-09-25 Mark Mitchell <mark@codesourcery.com> | |
1628 | ||
1629 | * dump.c (dequeue_and_dump): Handle RESULT_DECL. | |
1630 | * ir.texi: Document RESULT_DECL and DECL_RESULT. | |
1631 | ||
1632 | * cp-tree.h (check_return_expr): New function. | |
1633 | * decl.c (finish_constructor_body): New function. | |
1634 | (pushdecl): Put global friend functions in namespace binding | |
1635 | level, not the class binding level. | |
1636 | (finish_destructor_body): Make sure the dtor_label is always | |
1637 | defined. Fix typo in comment. | |
1638 | (finish_function): Move generation of constructor-termination code | |
1639 | to semantic-analysis time. Move generation of implicit `main' | |
1640 | return value to semantic-analysis time. | |
1641 | * semantics.c (finish_return_stmt): Generate goto's to | |
1642 | ctor_label/dtor_label here. Use check_return_expr to do semantic | |
1643 | analysis on the returned expression. | |
1644 | * typeck.c (maybe_warn_about_returning_address_of_local): New | |
1645 | function split out from c_expand_return. | |
1646 | (check_return_expr): Likewise. | |
1647 | (c_expand_return): Just generate the RTL for the return. | |
c8094d83 | 1648 | |
4e876a0f NS |
1649 | 1999-09-24 Mark Mitchell <mark@codesourcery.com> |
1650 | ||
1651 | * cp-tree.h (CPTI_CLEANUP_TYPE): New macro. | |
1652 | (cleanup_type): Likewise. | |
1653 | (search_tree): Change prototype. | |
1654 | * decl.c (local_variable_p): Adjust for new interface to | |
1655 | search_tree. | |
1656 | (check_default_argument): Likewise. | |
1657 | * error.c (dump_expr): Handle INIT_EXPR. | |
1658 | * except.c (expand_throw): Don't make cleanup_type a local static. | |
1659 | * expr.c (cplus_expand_expr): Don't handle NEW_EXPR. | |
1660 | * init.c (build_new): Call build_new_1 directly, rather than | |
1661 | building a NEW_EXPR. | |
1662 | (build_new_1): Tidy. Don't build a VEC_INIT_EXPR except when | |
1663 | processing file-scope initializers. | |
1664 | * lex.c (init_parse): Add an opname_tab entry for INIT_EXPR. | |
1665 | * tree.c: Include splay-tree.h | |
1666 | (no_linkage_helper): Adjust for new interface to search_tree. | |
1667 | (search_tree): Pass around pointers to tree nodes, rather than the | |
1668 | nodes themselves. Handle VEC_INIT_EXPR. | |
1669 | (no_linkage_check): Adjust for new interface to search_tree. | |
1670 | (mapcar): Handle VEC_INIT_EXPR. | |
1671 | (target_remap): New variable. | |
1672 | (bot_manip): Use it. | |
1673 | (bot_replace): New function. | |
1674 | (break_out_target_exprs): Use it to remap all variables used in a | |
1675 | default argument expression. | |
1676 | * typeck.c (build_modify_expr): Don't crash when outside a | |
1677 | function and presented with an INIT_EXPR assignment | |
1678 | * Makefile.in (tree.o): Depend on splay-tree.h. | |
1679 | ||
1680 | Fri Sep 24 10:48:10 1999 Bernd Schmidt <bernds@cygnus.co.uk> | |
1681 | ||
1682 | * decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than | |
1683 | DECL_BUILT_IN. | |
1684 | (builtin_function): New arg CLASS. Arg CODE now of type int. All | |
1685 | callers changed. | |
1686 | Set the builtin's DECL_BUILT_IN_CLASS. | |
1687 | ||
1688 | 1999-09-24 Mark Mitchell <mark@codesourcery.com> | |
1689 | ||
1690 | * decl.c (pushdecl): Don't make local declarations of extern | |
1691 | variables give the variable a DECL_CONTEXT for the function. | |
1692 | (make_rtl_for_nonlocal_decl): Don't fuss with obstacks. Simplify. | |
1693 | Don't accidentally make RTL for local declarations. | |
1694 | (emit_local_var): Handle declarations with asm-specifiers here. | |
c8094d83 | 1695 | |
4e876a0f NS |
1696 | 1999-09-23 Mark Mitchell <mark@codesourcery.com> |
1697 | ||
1698 | * ir.texi: Improve documentation for TARGET_EXPRs. Discuss | |
1699 | STMT_IS_FULL_EXPR_P. | |
1700 | ||
1701 | * cp-tree.h (language_function): Add cannot_inline. | |
1702 | * decl.c (start_function): Restore current_function_cannot_inline | |
1703 | from the saved value. | |
1704 | (save_function_data): Save current_function_cannot_inline. | |
1705 | * decl2.c (start_objects): Change prototype. Build the function | |
1706 | in function-at-a-time mode. | |
1707 | (finish_objects): Likewise. | |
1708 | (generate_ctor_or_dtor_function): Adjust accordingly. | |
c8094d83 | 1709 | |
4e876a0f NS |
1710 | * cp-tree.h (DECL_ANON_UNION_ELEMS): New macro. |
1711 | * decl2.c (finish_anon_union): Set DECL_ANON_UNION_ELEMS. | |
1712 | Don't call expand_anon_union_decl here | |
1713 | * semantics.c (exapnd_stmt): Call it here, instead. | |
1714 | * typeck.c (mark_addressable): Addressed variables are implicitly | |
1715 | used. | |
c8094d83 | 1716 | |
719bb4e3 | 1717 | 1999-09-23 Martin v. Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
1718 | |
1719 | * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): New macro. | |
1720 | (RECORD_OR_UNION_TYPE_CHECK, LANG_IDENTIFIER_CAST): Likewise. | |
1721 | (DEFARG_NODE_CHECK): Remove; replace with DEFAULT_ARG_CHECK. | |
1722 | * cp-tree.h: Add tree checking macros to various tree access | |
c8094d83 | 1723 | macros. |
4e876a0f NS |
1724 | * ptree.c (print_lang_decl): Test for function or variable |
1725 | before accessing template info. | |
1726 | ||
1727 | 1999-09-23 Jason Merrill <jason@yorick.cygnus.com> | |
1728 | ||
1729 | * lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node. | |
1730 | * lang-specs.h: If -fshort-wchar, override __WCHAR_TYPE__. | |
1731 | * decl2.c (lang_f_options): Add -fshort-wchar. | |
1732 | * cp-tree.h: Declare flag_short_wchar. | |
c8094d83 | 1733 | * decl.c (init_decl_processing): If -fshort-wchar, use 'short unsigned |
4e876a0f NS |
1734 | int' for wchar_t. |
1735 | ||
719bb4e3 | 1736 | 1999-09-23 Martin v. Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
1737 | |
1738 | * ir.texi: Fix formatting errors and typos. | |
1739 | ||
1740 | 1999-09-22 Mark Mitchell <mark@codesourcery.com> | |
1741 | ||
1742 | * ir.texi: Document CLEANUP_STMT, SCOPE_STMT, and START_CATCH_STMT. | |
1743 | ||
1744 | * decl.c (pushdecl): Do create a binding for extern "C" functions, | |
1745 | but not for their DECL_ASSEMBLER_NAMEs. | |
1746 | (lookup_name_current_level): Fix formatting. | |
1747 | (xref_tag): Likewise. | |
1748 | * decl2.c (start_objects): Mark static constructors and | |
1749 | destructors as used. | |
1750 | ||
1751 | 1999-09-22 Jason Merrill <jason@yorick.cygnus.com> | |
1752 | ||
1753 | * decl.c (define_case_label): Don't crash if we're not in a switch. | |
1754 | ||
1755 | * decl2.c (lang_decode_option): Don't bother explicitly ignoring flags. | |
1756 | * lang-options.h: Restore -fthis-is-variable. Remove help strings | |
1757 | for unsupported flags. | |
1758 | ||
1759 | 1999-09-21 Jason Merrill <jason@yorick.cygnus.com> | |
1760 | ||
1761 | * decl2.c (lang_decode_option): Accept and ignore -finit-priority. | |
1762 | Accept and warn about -fthis-is-variable. | |
1763 | ||
1764 | 1999-09-21 Mark Mitchell <mark@codesourcery.com> | |
1765 | ||
1766 | * dump.c (dequeue_and_dump): Handle START_CATCH_STMT, | |
1767 | CLEANUP_STMT, and SCOPE_STMT. | |
1768 | ||
1769 | * decl2.c (lang_decode_option): Adjust, in the wake of recent | |
1770 | changes to option processing. | |
1771 | ||
719bb4e3 | 1772 | 1999-09-21 Martin v. Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
1773 | |
1774 | * typeck.c (get_member_function_from_ptrfunc): Allow extraction of | |
1775 | function pointer from pmfs with no object given. | |
1776 | (convert_for_assignment): Do not return error when converting | |
1777 | pmfs. | |
1778 | ||
1779 | 1999-09-21 Alex Samuel <samuel@codesourcery.com> | |
1780 | ||
1781 | * lex.c (internal_filename): New variable. | |
1782 | (INTERNAL_FILENAME): New macro. | |
1783 | (init_parse): Allocate internal_filename and mark as root. Use it | |
1784 | instead of a string constant. | |
1785 | ||
1786 | 1999-09-21 Nathan Sidwell <nathan@acm.org> | |
1787 | ||
1788 | Reimplement dynamic cast and catch matching. | |
1789 | * cp-tree.h (get_dynamic_cast_base_type): Prototype new function | |
1790 | * search.c (dynamic_cast_base_recurse): New function. | |
1791 | (get_dynamic_cast_base_type): New function for dynamic cast. | |
1792 | * rtti.c (build_dynamic_cast_1): Determine source and target | |
1793 | class relationship. Call __dynamic_cast_2. | |
1794 | * tinfo.h (__user_type_info::upcast): New catch dispatcher. | |
1795 | (__user_type_info::dyncast): New dynamic cast dispatcher. | |
1796 | (__user_type_info::sub_kind): New nested enumeration. | |
1797 | (__user_type_info::contained_p): sub_kind predicate. | |
1798 | (__user_type_info::contained_public_p): Likewise. | |
1799 | (__user_type_info::contained_nonpublic_p): Likewise. | |
1800 | (__user_type_info::contained_nonvirtual_p: Likewise. | |
1801 | (__user_type_info::upcast_result): New nested struct. | |
1802 | (__user_type_info::dyncast_result): New nested struct. | |
1803 | (*::do_upcast): New catch function. | |
1804 | (*::do_dyncast): New dynamic cast function. | |
1805 | (__user_type_info::find_public_subobj): New dynamic cast | |
1806 | helper dispatcher. | |
1807 | (*::do_find_public_subobj): New dynamic cast helper function. | |
1808 | * tinfo.cc (__user_type_info::upcast): Define catch dispatcher. | |
1809 | (__user_type_info::dyncast): Define dynamic cast dispatcher. | |
1810 | (*::do_upcast): Define catch function. | |
1811 | (*::do_dyncast): Define dynamic cast function. | |
1812 | (*::do_find_public_subobj): Define dynamic cast helper function. | |
1813 | * tinfo2.cc (__throw_type_match_rtti_2): Use upcast. | |
1814 | (__dynamic_cast): Backwards compatibility wrapper. Use dyncast. | |
1815 | (__dynamic_cast_2): New dynamic cast runtime. | |
1816 | ||
1817 | 1999-09-20 Mark Mitchell <mark@codesourcery.com> | |
1818 | ||
1819 | * cp-tree.h (finish_stmt_expr): Change prototype. | |
1820 | * expr.c (cplus_expand_expr): Adjust call accordingly. | |
1821 | * init.c (finish_init_stmts): Likewise. | |
1822 | * parse.y (primary): Likewise. | |
1823 | * pt.c (tsubst_copy): Likewise. | |
1824 | * semantics.c (finish_stmt_expr): Don't take two parameters. | |
1825 | Don't remove generated BLOCKs from the block-tree. | |
1826 | ||
1827 | Remove support for assigning to `this'. | |
1828 | * NEWS: Note that fact. | |
1829 | * class.c (build_vbase_path): Don't check flag_this_is_variable. | |
1830 | * cp-tree.h (EXPR_STMT_ASSIGNS_THIS): Remove. | |
1831 | (language_function): Remove assigns_this, just_assigned_this, and | |
1832 | x_base_init_expr. Add x_vcalls_possible_p. Add vtbls_set_up_p. | |
1833 | (base_init_expr): Remove. | |
1834 | (current_vcalls_possible_p): New macro. | |
1835 | (vtbls_set_up_p): Likewise. | |
1836 | (emit_base_init): Change prototype. | |
1837 | * decl.c (finish_destructor_body): New function, split out from | |
1838 | finish_function. | |
1839 | (current_function_assigns_this): Remove. | |
1840 | (current_function_just_assigned_this): Likewise. | |
1841 | (start_function): Don't set them. | |
1842 | (finish_function): Don't check them. Don't emit | |
1843 | base-initialization code here. Generate code for destructors when | |
1844 | doing semantic analysis. | |
1845 | (finish_stmt): Don't check current_function_just_assigned_this. | |
1846 | * decl2.c (lang_f_options): Remove this-is-variable. | |
1847 | (lang_decode_option): Likewise. | |
1848 | (grokclassfn): Don't check flag_this_is_variable. | |
1849 | * init.c (emit_base_init): Return the expression generated. | |
1850 | (construct_virtual_bases): Don't push/pop obstacks. Fix | |
1851 | typo. | |
1852 | (build_new_1): Don't check flag_this_is_variable. | |
1853 | (get_temp_regvar): Don't set DECL_REGISTER. | |
1854 | (build_vec_init): Don't call use_variable. | |
1855 | * lang-options.h: Remove "-fthis-is-variable" and | |
1856 | "-fno-this-is-variable". | |
1857 | * pt.c (tsubst_expr): Don't check EXPR_STMT_ASSIGNS_THIS. | |
1858 | * search.c (expand_upcast_fixups): Use finish_expr_stmt, not | |
1859 | expand_expr_stmt. | |
1860 | * semantics.c (finish_expr_stmt_real): Rename to ... | |
1861 | (finish_expr_stmt): This. Remove assigned_this parameter. | |
1862 | (begin_if_stmt): Call do_pushlevel before starting the statement. | |
1863 | (begin_compound_stmt): Don't declare __FUNCTION__ in scope-less | |
1864 | blocks. | |
1865 | (setup_vtbl_ptr): Emit initialization code for bases and members | |
1866 | at semantic-analysis time. Emit code to initialize vtables in | |
1867 | destructors here. | |
1868 | (expand_stmt): Use finish_expr_stmt, not finish_expr_stmt_real. | |
1869 | Don't handle CTOR_INITIALIZER any more. | |
1870 | * typeck.c (build_modify_expr): Don't check for assignments to | |
1871 | this. | |
1872 | (c_expand_return): Don't suggest assigning to `this'. | |
c8094d83 | 1873 | |
4e876a0f NS |
1874 | * Makefile.in (decl.o): Depend on RTL_H. |
1875 | (decl2.o): Likewise. | |
1876 | (class.o): Likewise. | |
1877 | (call.o): Likewise. | |
1878 | (method.o): Likewise. | |
1879 | (search.o): Likewise. | |
1880 | (tree.o): Likewise. | |
1881 | (pt.o): Likewise. | |
1882 | ||
1883 | * decl.c (duplicate_decls): When a builtin function is redeclared | |
1884 | as static, make sure it is mangled correctly. | |
1885 | ||
1886 | * ir.texi (CTOR_INITIALIZER): Remove mention. Fix typo. Add | |
1887 | detail about the statement-tree. | |
c8094d83 | 1888 | |
4e876a0f NS |
1889 | 1999-09-20 Nathan Sidwell <nathan@acm.org> |
1890 | ||
1891 | * parse.y (primary): Use build_functional_cast for CV_QUALIFIER. | |
1892 | ||
1893 | 1999-09-20 Nick Clifton <nickc@cygnus.com> | |
1894 | ||
1895 | * decl2.c (lang_decode_option): Extend comment. | |
1896 | ||
1897 | Mon Sep 20 10:49:05 1999 Bernd Schmidt <bernds@cygnus.co.uk> | |
1898 | ||
1899 | * typeck.c: Include "tm_p.h". | |
1900 | ||
1901 | 1999-09-19 Mark Mitchell <mark@codesourcery.com> | |
1902 | ||
1903 | * ir.texi: New file. | |
1904 | ||
1905 | 1999-09-19 Paul Burchard <burchard@pobox.com> | |
1906 | ||
1907 | * semantics.c (expand_stmt): Initialize return value. | |
1908 | ||
1909 | 1999-09-18 Paul Burchard <burchard@pobox.com> | |
1910 | ||
1911 | * gxxint.texi: G++ now implements namespaces. | |
c8094d83 | 1912 | |
4e876a0f NS |
1913 | 1999-09-18 Mark Mitchell <mark@codesourcery.com> |
1914 | ||
1915 | * decl.c (pop_label): Don't warn about unused labels more than | |
1916 | once. | |
1917 | * semantics.c (finish_goto_stmt): Always marked used labels as | |
1918 | used. | |
1919 | ||
1920 | * decl.c (layout_var_decl): Change prototype. Call layout_decl | |
1921 | even when the declaration is external. | |
1922 | (cp_finish_decl): Adjust call to layout_var_decl. | |
1923 | * pt.c (tsubst_expr): Make sure to initialize stmt before using it. | |
1924 | ||
719bb4e3 | 1925 | 1999-09-18 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
1926 | |
1927 | * typeck.c (get_member_function_from_ptrfunc): Always consider | |
1928 | virtuality inside member pointer. | |
1929 | ||
1930 | 1999-09-17 Mark Mitchell <mark@codesourcery.com> | |
1931 | ||
c8094d83 | 1932 | Turn on function-at-a-time processing. |
4e876a0f NS |
1933 | * cp-tree.h (doing_semantic_analysis_p): New macro. |
1934 | (SF_DEFAULT): Define to zero, not SF_EXPAND. | |
1935 | (start_handler_parms): Change prototype. | |
1936 | (expand_start_catch_block): Likewise. | |
1937 | (expand_end_catch_block): Likewise. | |
1938 | (expand_start_eh_spec): Likewise. | |
1939 | (expand_end_eh_spec): Declare. | |
1940 | (finish_handler_parms): Change prototype. | |
1941 | (begin_catch_block): Declare. | |
1942 | (finish_handler): Change prototype. | |
1943 | (do_pushlevel): Declare. | |
c8094d83 | 1944 | (do_poplevel): Likewise. |
4e876a0f NS |
1945 | * decl.c (pushlevel): Don't create |
1946 | binding levels when not doing semantic analysis. | |
1947 | (poplevel): Don't pop them. | |
1948 | (pushdecl): Assert that we are never called when not doing | |
1949 | semantic analysis. | |
1950 | (pushdecl_top_level): Use push_to_top_level. | |
1951 | (make_label_decl): Don't fiddle with obstacks. Make RTL For the | |
1952 | label when expanding. | |
1953 | (cp_finish_decl): Only inject for-scope variables when doing | |
1954 | semantic analysis. Add comments. | |
1955 | (start_handler_parms): Return the handler parm. | |
1956 | (start_function): Reorganize. Don't clear DECL_INITIAL if it is | |
1957 | already set. Reinitialize from saved function data if available. | |
1958 | Don't pushlevel when not doing semantic analysis. | |
1959 | (store_parm_decls): Only generate RTL when expanding. Only | |
1960 | pushdecl when doing semantic analysis. Set | |
1961 | current_eh_spec_try_block if appropriate. | |
1962 | (finish_function): Simplify. Use do_pushlevel and do_poplevel. | |
1963 | Combine common code. Don't poplevel when not doing semantic | |
1964 | analysis. | |
1965 | (push_cp_function_context): Don't expand functions without an | |
1966 | explicit call to expand_body. | |
1967 | (mark_lang_function): Make eh_spec_try_block and | |
c8094d83 | 1968 | x_scope_stmt_stack. |
4e876a0f NS |
1969 | * except.c (expand_end_eh_spec): Don't |
1970 | declare. | |
1971 | (process_start_catch_block): Likewise. | |
1972 | (push_eh_cleanup): Use finish_decl_cleanup. | |
1973 | (initialize_handler_parm): New function. | |
1974 | (expand_start_catch_block): Use it. | |
1975 | (expand_end_catch_block): Use tree-generation functions, not | |
1976 | RTL-generation functions. | |
1977 | (expand_start_eh_spec): Likewise. | |
1978 | (expand_end_eh_spec): Likewise. | |
1979 | (expand_exception_blocks): Simplify. | |
1980 | (start_anon_func): Use do_pushlevel. | |
1981 | (end_anon_func): Use do_poplvel. Call expand_body for the | |
c8094d83 MS |
1982 | function. |
1983 | * expr.c (do_case): Don't call define_case_label. | |
4e876a0f | 1984 | * init.c (create_temporary_var): Set DECL_CONTEXT for local |
c8094d83 | 1985 | variables. |
4e876a0f NS |
1986 | * method.c (emit_thunk): Call expand_body for the |
1987 | thunk. | |
c8094d83 | 1988 | (sythesize_method): Likewise. |
4e876a0f NS |
1989 | * parse.y (handler_args): Give it ttype. |
1990 | (eat_saved_input): Call expand_body. | |
1991 | (base_init): Use do_pushlevel. | |
1992 | (pending_inline): Call expand_body. | |
1993 | (handler): Adjust calls to finish_handler_parms and | |
1994 | finish_handler. | |
1995 | (handler_args): Don't call expand_start_catch_block. Return the | |
1996 | catch parameter. * pt.c (tsubst_expr): Adjust HANDLER handling. | |
1997 | * parse.c: Regenerated. | |
c8094d83 | 1998 | * rtti.c (synthesize_tinfo_fn): Call finish_function. |
4e876a0f NS |
1999 | * semantics.c (do_pushlevel): Give it external linkage. Build |
2000 | SCOPE_STMTs. | |
2001 | (do_poplevel): Likewise. | |
2002 | (finish_case_label): Call define_case_label when doing semantic | |
2003 | analysis. | |
2004 | (finish_goto_stmt): Create RTL for labels. | |
2005 | (finish_function_try_block): Set in_function_try_handler | |
2006 | unconditionally. | |
2007 | (finish_function_handler_sequence): Unset it. | |
2008 | (finish_handler_parms): Use expand_start_catch_block even when | |
2009 | building a statement-tree. | |
2010 | (begin_catch_block): New function. | |
2011 | (finish_handler): Move a little RTL-generation logic here. | |
2012 | (finish_decl_cleanup): Allow cleanups for empty declarations. | |
2013 | (finish_named_return_value): Don't pushdecl when not doing | |
2014 | semantic analysis. | |
2015 | (expand_stmt): Don't do semantic analysis for variable | |
2016 | declarations. Handle START_CATCH_STMT. Call expand_label | |
2017 | directly for a LABEL_STMT. Tweak handling of GOTO_STMT. Adjust | |
2018 | HANDLERs. Handle SCOPE_STMT, CTOR_INITIALIZER, and RETURN_INIT. | |
2019 | (expand_body): Let expand_stmt handle CTOR_INITIALIZER, | |
2020 | RETURN_INIT and function try blocks. | |
c8094d83 | 2021 | |
4e876a0f NS |
2022 | * cp-tree.h (language_function): Add x_eh_spec_try_block. Add |
2023 | x_scope_stmt_stack. Add x_in_charge_parm. | |
2024 | (current_eh_spec_try_block): New macro. | |
2025 | (current_scope_stmt_stack): Likewise. | |
2026 | (current_in_charge_parm): Likewise. | |
2027 | * decl.c (start_function): Initialize current_in_charge_parm. | |
2028 | (finish_function): Use current_in_charge_parm rather than looking | |
2029 | up __in_chrg. | |
2030 | * search.c (expand_indirect_vtbls_init): Likewise. | |
2031 | ||
2032 | * cp-tree.def (CLEANUP_STMT): Fix spelling in dumps. | |
2033 | (TRY_BLOCK): Likewise. | |
2034 | (HANDLER): Likewise. | |
2035 | (START_CATCH_STMT): New tree node. | |
2036 | (SCOPE_STMT): Likewise. | |
2037 | * cp-tree.h (SCOPE_BEGIN_P): New macro. | |
2038 | (SCOPE_NULLIFIED_P): Likewise. | |
2039 | (struct lang_decl_flags): Add pending_inline_p. Adjust dummy. | |
2040 | (struct lang_decl): Add saved_language_function. | |
2041 | (DECL_PENDING_INLINE_INFO): Adjust documentation. | |
2042 | (DECL_PENDING_INLINE_P): New macro. | |
2043 | (TYPE_TI_ARGS): Fix typo in comment. | |
2044 | (DECL_SAVED_TREE): Add to documentation. | |
2045 | (DECL_SAVED_FUNCTION_DATA): New macro. | |
2046 | (START_CATCH_TYPE): Likewise. | |
2047 | (SCOPE_END_P): New macro. | |
2048 | (declare_parm_level): Don't declare. | |
2049 | * decl.c (mark_lang_function): New function, split out from | |
2050 | mark_cp_function_context. | |
2051 | (save_function_data): New function. | |
2052 | (declare_parm_level): Remove. | |
2053 | (finish_function): Use save_function_data to squirrel away | |
2054 | important stuff for later use. | |
2055 | (mark_cp_function_context): Use mark_function_data. | |
2056 | (lang_mark_tree): Likewise. | |
2057 | * lex.c (begin_definition_of_inclass_inline): Set | |
2058 | DECL_PENDING_INLINE_P. | |
2059 | (store_pending_inline): Clear it. | |
2060 | * pt.c (tsubst_decl): Likewise. | |
2061 | ||
2062 | 1999-09-17 Nathan Sidwell <nathan@acm.org> | |
2063 | ||
2064 | * call.c (perform_implicit_conversion): Deal with error_mark_node. | |
2065 | ||
2066 | 1999-09-17 Mark Mitchell <mark@codesourcery.com> | |
2067 | ||
2068 | * decl.c (warn_extern_redeclared_static): Don't get confused by | |
2069 | static member functions. | |
2070 | (duplicate_decls): Merge DECL_THIS_STATIC. | |
2071 | ||
2072 | * decl.c (expand_static_init): Make sure assignments to local | |
2073 | statics actually occur. | |
2074 | ||
2075 | 1999-09-17 Mark Mitchell <mark@codesourcery.com> | |
2076 | ||
2077 | * cp-tree.h (poplevel_class): Declare. | |
2078 | * class.c (popclass): Use poplevel_class, not poplevel. | |
2079 | * decl.c (poplevel_class): Don't make it static. Don't return a | |
2080 | value. | |
2081 | (poplevel): Don't call poplevel_class; abort in a class | |
2082 | binding level is seen. | |
2083 | * semantics.c (finish_translation_unit): Use pop_everything. | |
2084 | * parse.y (member_init): Allow errors. | |
2085 | (pending_inline): Call finish_function. | |
2086 | * parse.c: Regenerated. | |
2087 | * Makefile.in (CONFLICTS): Adjust. | |
2088 | ||
2089 | 1999-09-17 Gabriel Dos Reis <gdr@codesourcery.com> | |
c8094d83 | 2090 | |
4e876a0f NS |
2091 | * error.c: Reduce code duplication. |
2092 | (dump_template_value): New function. | |
2093 | (dump_type_real): Use it. | |
2094 | (dump_decl): Likewise. | |
2095 | (dump_function_name): Likewise. | |
2096 | (dump_function_decl): Don't be too talkative about function return | |
2097 | type variety. | |
2098 | ||
2099 | 1999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
2100 | ||
2101 | * lex.c (init_cpp_parse): Call xcalloc, not malloc/bzero. | |
2102 | ||
2103 | * xref.c (SALLOC): Call xstrdup, not xmalloc/strcpy. | |
2104 | ||
2105 | 1999-09-16 Jason Merrill <jason@yorick.cygnus.com> | |
2106 | ||
2107 | * decl2.c (finish_file): Also call check_global_declarations for | |
2108 | the pending_statics list. | |
2109 | ||
2110 | 1999-09-15 Jason Merrill <jason@yorick.cygnus.com> | |
2111 | ||
2112 | * lex.c (cp_pragma_implementation): Allow #pragma implementation | |
2113 | in header files. | |
2114 | ||
2115 | 1999-09-15 Richard Henderson <rth@cygnus.com> | |
2116 | ||
2117 | * lex.c (mark_impl_file_chain): Follow the next chain. | |
2118 | ||
2119 | 1999-09-15 Mark Mitchell <mark@codesourcery.com> | |
2120 | ||
2121 | * decl.c (warn_extern_redeclared_static): Simplify. Catch | |
2122 | problems with extern "C" functions redeclared as static. | |
2123 | (duplicate_decls): When a builtin is redeclared static, make the | |
2124 | new function have internal linkage. | |
c8094d83 | 2125 | |
4e876a0f NS |
2126 | 1999-09-15 Mark Mitchell <mark@codesourcery.com> |
2127 | ||
2128 | * decl2.c (build_expr_from_tree): Handle VA_ARG_EXPR. | |
2129 | * pt.c (tsubst_copy): Likewise. | |
2130 | * tree.c (search_tree): Likewise. | |
2131 | (mapcar): Likewise. | |
2132 | ||
2133 | 1999-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
2134 | ||
2135 | * typeck2.c (ack): Don't declare progname. | |
2136 | ||
2137 | 1999-09-14 Alexandre Oliva <oliva@lsd.ic.unicamp.br> | |
2138 | ||
2139 | * lex.c (cp_pragma_interface, cp_pragma_implementation): Copy | |
2140 | filenames with ggc_alloc_string. | |
2141 | ||
2142 | 1999-09-14 Mark Mitchell <mark@codesourcery.com> | |
2143 | ||
c8094d83 | 2144 | * decl.c (build_target_expr): Set TREE_SIDE_EFFECTS on the |
4e876a0f NS |
2145 | TARGET_EXPR. |
2146 | * call.c (build_over_call): Don't set TREE_SIDE_EFFECTS on | |
2147 | the TARGET_EXPR. | |
2148 | * cvt.c (build_up_reference): Likewise. | |
2149 | * tree.c (build_cplus_new): Likewise. | |
2150 | (get_target_expr): Likewise. | |
c8094d83 | 2151 | |
4e876a0f NS |
2152 | Tue Sep 14 01:45:10 1999 Marc Espie <espie@cvs.openbsd.org> |
2153 | ||
2154 | * Makefile.in: Prepend $(SHELL) to move-if-change calls. | |
2155 | ||
2156 | 1999-09-13 Mark Mitchell <mark@codesourcery.com> | |
2157 | ||
2158 | * cp-tree.h (build_target_expr): New function. | |
2159 | * call.c (build_conditional_expr): Use build_target_expr. | |
2160 | (convert_like): Likewise. | |
2161 | (build_over_call): Likewise. | |
2162 | * cvt.c (build_up_reference): Likewise. | |
2163 | * decl.c (build_cleanup_on_safe_obstack): Fold into ... | |
2164 | (destroy_local_var): Here. | |
2165 | (build_target_expr): New function. | |
2166 | * tree.c (build_cplus_new): Use it. | |
2167 | (get_target_expr): Likewise. | |
2168 | ||
2169 | 1999-09-13 Nathan Sidwell <nathan@acm.org> | |
2170 | ||
2171 | * typeck.c (expr_sizeof): Don't decay arrays and functions. | |
2172 | Remove misleading comment. | |
2173 | (build_compound_expr): Don't decay arrays. | |
2174 | ||
2175 | 1999-09-13 Jason Merrill <jason@yorick.cygnus.com> | |
2176 | ||
2177 | * call.c (build_conditional_expr): Always use a TARGET_EXPR for | |
2178 | class rvalues again. | |
2179 | ||
2180 | Sun Sep 12 23:29:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
2181 | ||
2182 | * Make-lang.in (g++spec.o): Depend on system.h and gcc.h. | |
2183 | ||
2184 | * g++spec.c: Include gcc.h. | |
2185 | (lang_specific_driver): Constify a char*. Call xcalloc, not | |
0cbd7506 MS |
2186 | xmalloc/bzero. All calls to the function pointer parameter now |
2187 | explicitly call `fatal'. | |
4e876a0f NS |
2188 | |
2189 | 1999-09-12 Mark Mitchell <mark@codesourcery.com> | |
2190 | ||
2191 | * call.c (implicit_conversion): Robustify. Handle OFFSET_REFs. | |
2192 | * cvt.c (ocp_convert): Complete the from and destination types. | |
2193 | Adjust warning about functions always being `true' in conditionals. | |
2194 | * decl.c (duplicate_decls): Don't play funny games with abort. | |
2195 | * error.c (dump_expr): Handle OVERLOADs. | |
2196 | * spew.c (probe_obstack): Remove. | |
2197 | * typeck.c (condition_conversion): Use perform_implicit_conversion. | |
c8094d83 | 2198 | |
4e876a0f NS |
2199 | 1999-09-12 Bernd Schmidt <bernds@cygnus.co.uk> |
2200 | ||
2201 | * cp-tree.h (auto_function, define_function): Adjust prototypes. | |
2202 | * decl.c (define_function): Lose FUNCTION_CODE arg. All callers | |
2203 | changed. | |
2204 | (auto_function): Likewise, for CODE arg. | |
2205 | Move code to set DECL_BUILT_IN and DECL_FUNCTION_CODE to... | |
2206 | (builtin_function): ... here. | |
2207 | ||
2208 | 1999-09-11 Mark Mitchell <mark@codesourcery.com> | |
2209 | ||
2210 | * decl.c (add_decl_to_level): Remove TREE_PERMANENT assertion. | |
2211 | (init_decl_processing): Don't set TREE_PERMANENT for the | |
2212 | error_mark_node. | |
2213 | (start_decl): Don't rebuild non-permanent ARRAY_TYPEs. | |
2214 | (grokdeclarator): Likewise. | |
2215 | (grokparms): Don't check TREE_PERMANENT when building up lists. | |
2216 | * decl2.c (grokfield): Don't assert TREE_PERMANENT. | |
2217 | (mark_inline_for_output): Likewise. | |
2218 | * expr.c (cplus_expand_expr): Don't check TREE_PERMANENT. | |
2219 | * init.c (build_offset_ref): Don't check TREE_PERMANENT. | |
2220 | * lex.c (check_newline): Don't check ggc_p; it is always one. | |
2221 | * pt.c (process_template_parm): Don't check TREE_PERMANENT. | |
2222 | * spew.c (yylex): Don't copy_node or probe_obstacks for | |
2223 | non-permanent CONSTANTs and STRINGs. | |
2224 | * tree.c (build_cplus_array_type_1): Don't fuss with | |
2225 | TREE_PERMANENT on ARRAY_TYPEs. | |
c8094d83 | 2226 | |
4e876a0f NS |
2227 | * cp-tree.def (CLEANUP_STMT): New node. |
2228 | * cp-tree.h (language_function): Add name_declared. | |
2229 | (current_function_name_declared): New macro. | |
2230 | (CLEANUP_DECL): New macro. | |
2231 | (CLEANUP_EXPR): Likewise. | |
2232 | (emit_local_var): Likewise. | |
2233 | (finish_decl_cleanup): New function. | |
2234 | * cvt.c (build_up_reference): Simplify. | |
2235 | (ocp_convert): Remove dead code. | |
2236 | * decl.c (start_decl): Remove call to add_decl_stmt. | |
2237 | (grok_reference_init): Adjust, to handle bindings temporaries to | |
2238 | references. Remove dead code. | |
2239 | (initialize_local_var): Don't generate RTL for | |
2240 | declarations here, or build cleanups here. Don't fuss with | |
2241 | obstacks. Replace expand_start_target_temps calls with explicit | |
2242 | setting of stms_are_full_exprs_p. | |
2243 | (destroy_local_var): New function. | |
2244 | (emit_local_var): Likewise. | |
2245 | (cp_finish_decl): Use them, as appropriate. | |
2246 | (start_function): Announce template functions. | |
2247 | (store_parm_decls): Don't call declare_function_name here. | |
2248 | (finish_stmt): Don't start emit base-initialization code when just | |
2249 | building the statement-tree. | |
2250 | * init.c (create_temporary_var): Move add_decl_stmt call ... | |
2251 | (get_temp_regvar): Here. | |
2252 | * pt.c (tsubst_expr): Make DECL_INITIAL look like what | |
2253 | cp_finish_decl would expect. Don't call add_decl_stmt. | |
2254 | * semantics.c (begin_compound_stmt): Call declare_function_name, | |
2255 | if appropriate. | |
2256 | (finish_decl_cleanup): New function. | |
c8094d83 | 2257 | (expand_stmt): Use emit_local_var to output variables. |
4e876a0f | 2258 | (expand_body): Set current_function_name_declared. |
c8094d83 | 2259 | |
4e876a0f NS |
2260 | 1999-09-10 Mark Mitchell <mark@codesourcery.com> |
2261 | ||
2262 | * cp-tree.h (finish_cleanup_try_block): New function. | |
2263 | * semantics.c (finish_cleanup_try_block): Add comment. | |
2264 | ||
2265 | Fri Sep 10 10:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk> | |
2266 | ||
2267 | * cp-tree.h: Delete declarations for all tree nodes now moved to | |
2268 | global_trees. | |
2269 | * decl.c: Delete their definitions. | |
2270 | (SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, | |
2271 | FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't | |
2272 | provide defaults. | |
2273 | (init_decl_processing): Call build_common_tree_nodes and | |
2274 | build_common_tree_nodes_2 instead of building their nodes here. | |
2275 | Don't add gc roots for them. | |
2276 | ||
2277 | 1999-09-10 Mark Mitchell <mark@codesourcery.com> | |
2278 | ||
2279 | * cp-tree.h (language_function): Rename expanding_p to | |
2280 | x_expanding_p. Rename named_label_uses to x_named_label_uses. | |
2281 | (expanding_p): Adjust accordingly. | |
2282 | (TREE_VIA_PRIVATE): Fix typo in comment. | |
2283 | (DECL_REFERENCE_SLOT): Remove. | |
2284 | (SET_DECL_REFERENCE_SLOT): Likewise. | |
2285 | * decl.c (named_label_uses): Adjust. Remove chicken comment. | |
2286 | (push_overloaded_decl): Don't truncate the chain of bindings when | |
2287 | adding an overloaded function. | |
2288 | (grok_reference_init): Don't use DECL_REFERENCE_SLOT. | |
2289 | (initialize_local_var): Fix typo in comment. | |
2290 | (store_parm_decls): Don't set DECL_REFERENCE_SLOT. Tidy up. | |
2291 | * decl2.c (start_objects): Make the fact that we are expanding | |
2292 | the generated function right away explicit. | |
2293 | (start_static_storage_duration_function): Likewise. | |
2294 | (finish_file): Fix typo in comment. | |
2295 | * init.c (build_vec_init): Correct bugs in handling cleanups. | |
2296 | * semantics.c (maybe_convert_cond): New function. | |
2297 | (FINISH_COND): Always store the condition, even if there's | |
2298 | a declaration. | |
2299 | (finish_if_stmt_cond): Use maybe_convert_cond. | |
2300 | (finish_while_stmt_cond): Likewise. | |
2301 | (finish_do_stmt): Likewise. | |
2302 | (finish_for_cond): Likewise. | |
2303 | (expand_cond): Adjust. | |
c8094d83 | 2304 | |
4e876a0f NS |
2305 | * cp-tree.h (FN_TRY_BLOCK_P): New macro. |
2306 | * init.c (perform_member_init): Remove obstack machinations. | |
2307 | (expand_cleanup_for_base): Likewise. | |
2308 | (finish_init_stmts): Mark the statement-expression as used. | |
2309 | * method.c (emit_thunk): Use tree-generating functions, not | |
2310 | RTL. | |
2311 | (do_build_copy_constructor): Likewise. | |
2312 | (do_build_assign_ref): Likewise. | |
2313 | (synthesize_method): Likewise. Keep track of line numbers. | |
2314 | * pt.c (tsubst_expr): Handle various kinds of try blocks. | |
2315 | * semantics.c (expand_stmts): Remove. | |
2316 | (begin_function_try_block): Set FN_TRY_BLOCK_P. | |
c8094d83 | 2317 | (finish_function_try_block): Be careful rechaining |
4e876a0f NS |
2318 | function try blocks. |
2319 | (expand_stmt): Loop through all the statements at a given level. | |
2320 | (exapnd_body): Be careful with line-numbers here too. Prepare for | |
2321 | being called directly from the parser. | |
2322 | ||
2323 | * cp-tree.h (finish_function): Adjust prototype. | |
2324 | * decl.c (finish_function): Return the function compiled. | |
2325 | * pt.c (instantiate_decl): Don't play games with obstacks. | |
2326 | * tree.c (mapcar): Handle OFFSET_REF and BIT_FIELD_REF. | |
2327 | (search_tree): Likewise. | |
2328 | * typeck.c: Fix typo in comment. | |
2329 | * typeck2.c (store_init_value): Add comment. | |
2330 | ||
2331 | * cp-tree.h (CPTI_ATEXIT): New macro. | |
2332 | (atexit_node): Likewise. | |
2333 | * decl.c (destroy_local_static): New function, broken out from ... | |
2334 | (expand_static_init): Here. | |
2335 | ||
2336 | * rtti.c (get_tinfo_var): These should always be global | |
2337 | (expand_si_desc): Use tree, not RTL, functions to generate code. | |
2338 | (expand_class_desc): Likewise. | |
2339 | (expand_ptr_desc): Likewise. | |
2340 | (expand_attr_desc): Likewise. | |
2341 | (expand_generic_desc): Likewise. | |
2342 | (synthesize_tinfo_fn): Likewise. | |
2343 | ||
2344 | 1999-09-09 Mark Mitchell <mark@codesourcery.com> | |
2345 | ||
2346 | * semantics.c (RECHAIN_STMTS): Remove `last' parameter. | |
2347 | (RECHAIN_STMTS_FROM_LAST): Remove. Replace all uses with | |
c8094d83 | 2348 | RECHAIN_STMTS. |
4e876a0f NS |
2349 | (RECHAIN_STMST_FROM_CHAIN): Likewise. |
2350 | ||
2351 | * parse.y (simple_stmt): Fix typo in last change. | |
2352 | ||
2353 | * cp-tree.h (EXPR_STMT_ASSIGNS_THIS): New macro. | |
2354 | (STMT_IS_FULL_EXPR_P): Likewise. | |
2355 | (STMT_LINENO_FOR_FN_P): Likewise. | |
2356 | (prep_stmt): New function. | |
2357 | (building_stmt_tree): Tweak for safety. | |
2358 | * pt.c (tsubst_expr): Use prep_stmt throughout. | |
2359 | (add_tree): Move it to semantics.c | |
2360 | * semantics.c (add_tree): Move it here. | |
2361 | (finish_expr_stmt_real): New function. | |
2362 | (finish_expr_stmt): Use it. | |
2363 | (finish_if_stmt_cond): Use FINISH_COND. | |
2364 | (finish_while_stmt_cond): Likewise. | |
2365 | (finish_for_cond): Likewise. | |
2366 | (finish_stmt_tree): Tweak line-number handling. | |
2367 | (prep_stmt): New function. | |
2368 | (expand_stmt): Use it. | |
c8094d83 | 2369 | |
4e876a0f NS |
2370 | * cp-tree.h (begin_switch_stmt): Adjust prototype. |
2371 | (finish_switch_cond): Likewise. | |
2372 | * parse.y (simple_stmt): Adjust accordingly. | |
2373 | * parse.c: Regenerated. | |
2374 | * pt.c (tsubst_expr): Adjust accordingly. | |
2375 | * semantics.c (expand_cond): New function. | |
2376 | (FINISH_COND): New macro. | |
2377 | (begin_switch_stmt): Build the SWITCH_STMT here. | |
2378 | (finish_switch_stmt_cond): Not here. | |
2379 | (expand_stmt): Adjust calls to begin_switch_stmt and | |
2380 | finish_switch_cond. Use expand_cond throughout. | |
2381 | ||
2382 | * dump.c (dequeue_and_dump): Dump types for constants. | |
2383 | Describe DECL_ARG_TYPE more intuitively. | |
2384 | Handle ARRAY_REF. | |
2385 | ||
2386 | * decl.c (lang_mark_tree): Mark TYPE_LANG_SPECIFIC. | |
2387 | (lang_cleanup_tree): Remove. | |
2388 | * lex.c (make_lang_type): Use ggc_alloc to allocate | |
2389 | TYPE_LANG_SPECIFIC. | |
2390 | ||
2391 | Reorganize per-function data. | |
2392 | * cp-tree.h (saved_scope): Add function_decl, bindings. | |
2393 | (language_function): Rename binding_level to bindings. | |
2394 | (cp_function_chain): Use the current_function, not the | |
2395 | outer_function_chain. | |
c8094d83 | 2396 | (current_class_ptr): Make it work, even when there's no |
4e876a0f NS |
2397 | current function. |
2398 | (current_class_ref): Likewise. | |
c8094d83 | 2399 | (SF_DEFAULT, SF_PRE_PARSED, SF_INCLASS_INLINE, SF_EXPAND): New |
4e876a0f NS |
2400 | macros. |
2401 | (clear_temp_name): Remove. | |
2402 | * decl.c (check_function_type): New function, broken out from | |
2403 | start_function. | |
2404 | (current_binding_level): Adjust definition. | |
2405 | (pushlevel): Simplify. | |
2406 | (poplevel): Don't use named_label_uses when we're outside | |
2407 | a function scope. | |
2408 | (mark_saved_scope): Mark function_decl and bindings. | |
2409 | (maybe_push_to_top_level): Don't unconditionally push a new | |
2410 | function context. Save bindings and the current_function_decl. | |
2411 | Don't clear named_labels. | |
2412 | (pop_from_top_level): Pop function context if appropriate. | |
2413 | (init_decl_processing): Set init_lang_status and free_lang_status, | |
2414 | rather than save_lang_status and restore_lang_status. | |
2415 | (start_function): Take SF_* flags. Don't clear per-function data. | |
2416 | Reorder and simplify to use new per-function data code. Add | |
2417 | asserts. | |
2418 | (store_parm_decls): Don't call init_function_start here. | |
2419 | (finish_function): Adjust for new handling of per-function data. | |
2420 | (push_cp_function_context): Simplify. | |
2421 | (mark_cp_function_context): Change binding_level to bindings. | |
2422 | * decl2.c (clear_temp_name): Remove. | |
2423 | (start_objects): Use SF flags to start_function. | |
2424 | (start_static_storage_duration_function): Likewise. | |
c8094d83 | 2425 | * except.c (start_anon_func): Remove redundant calls to |
4e876a0f NS |
2426 | push_function_context_to. Use SF flags to start function. |
2427 | (end_anon_func): Remove redundant call to pop_function_context | |
2428 | from. | |
c8094d83 | 2429 | * lex.c (reinit_parse_for_function): Don't initialize per-function |
4e876a0f NS |
2430 | data. |
2431 | * method.c (emit_thunk): Clear current_function after calling | |
2432 | assemble_end_function. Use SF flags for start_function. | |
2433 | (synthesize_method): Use SF flags for start_function. | |
2434 | * parse.c: Regenerated. | |
2435 | * parse.y (fn.defpen): Likewise. | |
2436 | (pending_inline): Clear current_function, even if something goes | |
2437 | wrong. | |
2438 | * pt.c (instantiate_decl): Use SF flags to start_function. | |
2439 | Don't save and restore expanding_p. | |
2440 | (add_tree): Handle the case where we are outside any function. | |
2441 | (end_tree): Likewise. | |
2442 | * rtti.c (sythesize_tinfo_fn): Use SF flags to start_function. | |
2443 | * semantics.c (begin_function_definition): Likewise. | |
2444 | (expand_body): Likewise. | |
c8094d83 | 2445 | |
4e876a0f NS |
2446 | 1999-09-09 Nathan Sidwell <nathan@acm.org> |
2447 | ||
2448 | * cp-tree.h (convert_to_void): Prototype new function. | |
2449 | (require_complete_type_in_void): Remove prototype. | |
2450 | * cvt.c (convert_to_void): New function. | |
2451 | (ocp_convert): Use convert_to_void. | |
2452 | * decl.c (cplus_expand_expr_stmt): Likewise, for complete | |
2453 | expressions. | |
2454 | * typeck.c (require_complete_type_in_void): Remove function. | |
2455 | (build_compound_expr): Use convert_to_void. | |
2456 | (build_static_cast): Likewise. | |
2457 | (build_c_cast): Likewise. | |
2458 | * semantics.c (finish_expr_stmt): Do not decay full expressions. | |
c8094d83 | 2459 | |
4e876a0f NS |
2460 | * typeck.c (build_x_compound_expr): Add FIXME. |
2461 | ||
2462 | 1999-09-08 Mark Mitchell <mark@codesourcery.com> | |
2463 | ||
2464 | * cp-tree.h (scratch_tree_cons): Remove. | |
2465 | * call.c: Replace all uses of expr_tree_cons, saveable_tree_cons, | |
2466 | and perm_tree_cons with plain tree_cons. | |
2467 | * class.c: Likewise. | |
2468 | * decl.c: Likewise. | |
2469 | * decl2.c: Likewise. | |
2470 | * except.c: Likewise. | |
2471 | * expr.c: Likewise. | |
2472 | * init.c: Likewise. | |
2473 | * lex.c: Likewise. | |
2474 | * method.c: Likewise. | |
2475 | * parse.y: Likewise. | |
2476 | * pt.c: Likewise. | |
2477 | * repo.c: Likewise. | |
2478 | * rtti.c: Likewise. | |
2479 | * search.c: Likewise. | |
2480 | * typeck.c: Likewise. | |
2481 | * parse.c: Regenerated. | |
2482 | * tree.c (build_srcloc): Simplify. | |
c8094d83 | 2483 | |
4e876a0f NS |
2484 | 1999-09-08 Bruce Korb autogen@linuxbox.com |
2485 | ||
2486 | * Makefile.in: Give the gperf user a hint about why "gperf -F" fails. | |
2487 | ||
2488 | 1999-09-08 Mark Mitchell <mark@codesourcery.com> | |
2489 | ||
2490 | * cp-tree.h (lang_decl_flags): Remove permanent_attr. | |
2491 | Remove next. | |
2492 | (LANG_DECL_PERMANENT): Remove. | |
2493 | * decl.c (duplicate_decls): Don't mess about with obstacks trying | |
2494 | to free memory. | |
2495 | (lang_mark_tree): Mark DECL_LANG_SPECIFIC. | |
2496 | * lex.c (free_lang_decl_chain): Remove. | |
2497 | (build_lang_decl): Don't use obstacks. | |
2498 | (retrofit_lang_decl): Likewise. | |
2499 | (copy_lang_decl): Likewise. | |
2500 | ||
c8094d83 | 2501 | * cp-tree.h (saved_scope): Remove old_binding_level and |
4e876a0f NS |
2502 | function_decl. Tidy up. |
2503 | * decl.c (mark_saved_scope): Don't set them. | |
2504 | (maybe_push_to_top_level): Clear memory. | |
2505 | ||
2506 | * decl.c (layout_var_decl): Change prototype. Don't complete | |
2507 | types for external objects. | |
2508 | (check_initializer): Likewise. Tidy. | |
2509 | (initialize_local_var): Complete types here. | |
2510 | (cp_finish_decl): Not here. Reorganize a little. | |
2511 | (grokvardecl): Don't complete types here. | |
2512 | ||
2513 | * decl.c (start_function): Clear last_dtor_insn and | |
c8094d83 | 2514 | last_parm_cleanup_insn. |
4e876a0f NS |
2515 | (push_cp_function_context): Just copy over a little of |
2516 | the old context, not all of it. | |
2517 | ||
2518 | * cp-tree.h (copy_to_permanent): Remove. | |
2519 | (permanent_p): Likewise. | |
2520 | * decl.c (building_typename_type): Don't use copy_to_permanent. | |
2521 | (start_decl): Likewise. | |
2522 | (grok_reference_init): Likewise. | |
2523 | (cp_finish_decl): Likewise. | |
2524 | * init.c (build_new_1): Don't use mapcar. | |
2525 | (build_vec_delete_1): Don't use copy_to_permanent. | |
2526 | (build_vec_init): Likewise. | |
2527 | * parse.y (primary): Likewise. | |
2528 | * parse.c: Regenerated. | |
2529 | * pt.c (push_template_decl_real): Don't use copy_to_permanent. | |
2530 | (lookup_template_class): Likewise. | |
2531 | (tsubst_friend_function): Likewise. | |
2532 | (instantiate_class_template): Likewise. | |
2533 | (tsubst_decl): Likewise. | |
2534 | (tsubst): Likewise. | |
2535 | (instantiate_template): Likewise. | |
2536 | (unify): Likewise. | |
2537 | * rtti.c (get_tinfo_fn): Likewise. | |
2538 | (build_dynamic_cast): Likewise. | |
2539 | * semantics.c (finish_if_stmt_cond): Likewise. | |
2540 | (finish_while_stmt_cond): Likewise. | |
2541 | (finish_do_stmt): Likewise. | |
2542 | (finish_for_cond): Likewise. | |
2543 | (finish_for_expr): Likewise. | |
2544 | (finish_cleanup): Likewise. | |
2545 | (add_decl_stmt): Likewise. | |
2546 | (finish_named_return_value): Likewise. | |
2547 | (finish_qualified_call_expr): Likewise. | |
2548 | * tree.c (perm_manip): Remove. | |
2549 | (build_exception_variant): Don't use copy_to_permanent. | |
2550 | (permanent_p): Remove. | |
2551 | (copy_to_permament): Remove. | |
2552 | (build_min_nt): Don't use copy_to_permanent. | |
2553 | (build_min): Likewise. | |
2554 | (min_tree_cons): Likewise. | |
2555 | * typeckc.c (build_static_cast): Likewise. | |
2556 | (build_reinterpret_cast): Likewise. | |
2557 | (build_const_cast): Likewise. | |
c8094d83 | 2558 | |
4e876a0f NS |
2559 | 1999-09-07 Mark Mitchell <mark@codesourcery.com> |
2560 | ||
2561 | * decl.c (ggc_p): Set it to 1. | |
2562 | (mark_saved_scope): Add prototype. | |
2563 | ||
2564 | 1999-09-07 Richard Henderson <rth@cygnus.com> | |
2565 | ||
2566 | * cp-tree.h (C_PROMOTING_INTEGER_TYPE_P): Delete. | |
2567 | * typeck.c (self_promoting_args_p): Delete. | |
2568 | ||
2569 | 1999-09-07 Jason Merrill <jason@yorick.cygnus.com> | |
2570 | ||
2571 | * search.c (binfo_for_vtable): Use CLASSTYPE_VFIELD_PARENT. | |
2572 | (dfs_bfv_queue_p, dfs_bfv_helper, struct bfv_info): Remove. | |
2573 | ||
2574 | 1999-09-07 Mark Mitchell <mark@codesourcery.com> | |
2575 | ||
2576 | * Makefile.in (tree.o): Depend on ggc.h. | |
2577 | * class.c (make_method_vec): Remove. | |
2578 | (free_method_vec): Likewise. | |
2579 | (free_method_vecs): Remove. | |
2580 | (add_method): Don't use them. | |
2581 | * cp-tree.def (PTRMEM_CST): Make it longer. | |
2582 | (TEMPLATE_PARM_INDEX): Make it shorter. | |
2583 | * cp-tree.h (BINDING_HAS_LEVEL_P): New macro. | |
2584 | (template_parm_index): Remove RTL field. | |
2585 | (ptrmem_cst): Add RTL field. | |
2586 | (finish_function): Removed parameter. | |
2587 | (process_next_inline): Change prototype. | |
2588 | (init_cplus_unsave): Rename to init_tree. | |
2589 | (binding_init): Remove. | |
2590 | * decl.c (free_binding_nodes): Remove. | |
2591 | (push_binding): Don't use them. Set BINDING_HAS_LEVEL_P. | |
2592 | (pop_binding): Don't use free_binding_nodes. | |
2593 | (free_binding_vecs): Remove. | |
2594 | (store_bindings): Don't use them. | |
2595 | (pop_from_top_level): Likewise. | |
2596 | (lookup_namespace_name): Simplify. | |
2597 | (build_typename_type): Don't use obstack_free. | |
2598 | (unqualified_namespace_lookup): Simplify. | |
2599 | (lookup_name_real): Simplify. | |
2600 | (start_function): Remove comment about leaks. | |
2601 | (finish_function): Removed nested parameter. Call | |
2602 | expand_end_bindings even when building_stmt_tree. | |
2603 | Call ggc_push_context and ggc_pop_context around | |
2604 | rest_of_compilation, if necessary. | |
2605 | (mark_cp_function_context): Handle a NULL language-context. | |
2606 | (lang_mark_false_label_stack): Fix typo. | |
2607 | (lang_mark_tree): Handle CPLUS_BINDING, OVERLOAD, | |
2608 | TEMPLATE_PARM_INDEX. Handle the funny TYPE_LANG_SPECIFIC on | |
2609 | pointer to method types. | |
2610 | (lang_cleanup_tree): Use free to free TYPE_LANG_SPECIFIC. | |
2611 | * decl2.c (finish_objects): Adjust call to finish_function. | |
2612 | (finish_static_store_duration_function): Likewise. | |
2613 | (do_nonmember_using_decl): Remove call to binding_init. | |
2614 | * except.c (end_anon_func): Adjust call to finish_function. | |
2615 | * lex.c (mark_impl_file_chain): New function. | |
2616 | (init_parse): Call init_tree, not init_cplus_unsave. | |
2617 | Add GC roots. | |
2618 | (cp_pramga_interface): Use xmalloc, not permalloc. | |
2619 | (cp_pragma_implementation): Likewise. | |
2620 | (begin_definition_of_inclass_inline): Simplify. | |
2621 | (process_next_inline): Adjust prototype. | |
2622 | (do_scoped_id): Don't call binding_init. | |
2623 | (make_lang_type): Allocate TYPE_LANG_SPECIFIC with xmalloc. | |
2624 | * method.c (emit_thunk): Adjust call to finish_function. | |
2625 | (synthesize_method): Likewise. | |
2626 | * parse.y (%union): Add a new `pi' variant. | |
2627 | (PRE_PARSED_FUNCTION_DECL): Use it. | |
2628 | (fn.defpen): Likewise. | |
2629 | (fndef): Adjust call to finish_function. | |
2630 | * pt.c (instantiate_decl): Likewise. | |
2631 | * rtti.c (syntheisze_tinfo_fn): Likewise. | |
2632 | * semantics.c (expand_body): Likewise. | |
2633 | * tree.c: Include ggc.h. | |
2634 | (mark_list_hash): New function. | |
2635 | (binding_init): Remove. | |
2636 | (init_cplus_unsave): Rename to ... | |
2637 | (init_tree): This. Add GC roots. | |
c8094d83 | 2638 | |
4e876a0f NS |
2639 | 1999-09-05 Mark Mitchell <mark@codesourcery.com> |
2640 | ||
2641 | Get ready for garbage collection. | |
2642 | * Makefile.in (CXX_TREE_H): Add varray.h | |
2643 | (lex.o): Depend on ggc.h. | |
2644 | (decl.o): Likewise. | |
2645 | (decl2.o): Likewise. | |
2646 | (method.o): Likewise. | |
2647 | (search.o): Likewise. | |
2648 | (pt.o): Likewise. | |
2649 | (repo.o): Likewise. | |
2650 | * class.c: Include ggc.h. | |
2651 | (current_class_name): Remove. | |
2652 | (current_class_type): Likewise. | |
2653 | (current_access_specifier): Likewise. | |
2654 | (previous_class_type): Likewise. | |
2655 | (previous_class_values): Likewise. | |
2656 | (class_cache_firstobj): Likewise. | |
2657 | (current_lang_base): Likewise. | |
2658 | (current_lang_stack): Likewise. | |
2659 | (current_lang_stacksize): Likewise. | |
2660 | (lang_name_c): Likewise. | |
2661 | (lang_name_cplusplus): Likewise. | |
2662 | (lang_name_java): Likewise. | |
2663 | (current_lang_name): Likewise. | |
2664 | (base_layout_decl): Likewise. | |
2665 | (access_default_node): Likewise. | |
2666 | (access_public_node): Likewise. | |
2667 | (access_protected_node): Likewise. | |
2668 | (access_private_node): Likewise. | |
2669 | (access_default_virtual_node): Likewise. | |
2670 | (access_public_virtual_node): Likewise. | |
2671 | (access_protected_virtual_node): Likewise. | |
2672 | (access_private_virtual_node): Likewise. | |
2673 | (signed_zero_node): Likewise. | |
2674 | (init_class_processing): Don't build base_layout_decl. | |
2675 | (push_lang_context): Adjust now that current_lang_base is a varray. | |
2676 | (pop_lang_context): Likewise. | |
2677 | * cp-tree.h: Include varray.h. | |
2678 | (cp_global_trees): Add access_default, access_public, | |
2679 | access_protected, access_private, access_default_virtual, | |
2680 | access_public_virtual, access_protected_virtual, | |
c8094d83 | 2681 | access_private_virtual, ctor_identifier, delta2_identifier, |
4e876a0f NS |
2682 | delta_identifier, dtor_identifier, in_charge_identifier, |
2683 | index_identifier, nelts_identifier, this_identifier, | |
2684 | pfn_identifier, pfn_or_delta2_identifier, vptr_identifier, | |
2685 | lang_name_c, lang_name_cplusplus, lang_name_java, | |
2686 | empty_except_spec, null, jclass, minus_one, terminate. | |
2687 | (saved_scope): Move here from decl.c. Define globals in terms of | |
2688 | saved_scope: current_namespace, current_class_name, | |
2689 | current_class_type, current_access_specifier, current_lang_stack, | |
2690 | current_lang_base, current_lang_name, current_function_parms, | |
2691 | current_template_parms, processing_template_decl, | |
2692 | processing_specialization, processing_explicit_instantiation, | |
2693 | previous_class_type, previous_class_values, class_cache_firstobj. | |
2694 | (scope_chain): New variable. | |
2695 | (init_pt): New function. | |
2696 | * decl.c (current_namespace): Remove. | |
2697 | (this_identifier, in_charge_identifier, ctor_identifier): Likewise. | |
2698 | (dtor_identifier, pfn_identifier, index_identifier): Likewise. | |
2699 | (delta_identifier, delta2_identifier): Likewise. | |
2700 | (pfn_or_delta2_identifier, tag_identifier): Likewise | |
2701 | (vt_off_identifier, empty_except_spec, null_node): Likewise. | |
2702 | (current_function_parms, current_lang_base): Remove. | |
2703 | (current_lang_stack, previous_class_values): Remove. | |
2704 | (class_binding_level): Macroize. | |
2705 | (saved_scope): Remove. | |
2706 | (current_saved_scope): Rename to scope_chain. | |
2707 | (mark_saved_scope): Adjust for new scope structure. | |
2708 | (maybe_push_to_top_level): Likewise. | |
2709 | (pop_from_top_level): Likewise. | |
2710 | (duplicate_decls): Adjust now that current_lang_base is a varray. | |
2711 | (build_typename_type): Call ggc_add_tree_hash_table_root. | |
2712 | (init_decl_processing): Call init_pt. Call push_to_top_level to | |
2713 | set up globals. Add GC roots. | |
2714 | (xref_basetypes): Adjust now that current_lang_base is a varray. | |
2715 | * decl.h (this_identifier): Remove. | |
2716 | (in_charge_identifier): Likewise. | |
2717 | * decl2.c: Don't include varray.h. | |
2718 | (current_namespace): Remove. | |
2719 | (init_decl2): Add GC roots. | |
c8094d83 | 2720 | * except.c (Terminate): Remove. |
4e876a0f NS |
2721 | (init_exception_processing): Use terminate_node instead. |
2722 | (build_terminate_handler): Likewise. | |
2723 | * init.c (nc_nelts_field_id): Remove. | |
2724 | (minus_one): Likewise. | |
2725 | (init_init_processing): Use minus_one_node and nelts_identifier | |
2726 | instead. Add GC roots. | |
2727 | (jclass_node): Remove. | |
2728 | (build_new_1): Use nelts_identifier. | |
2729 | (build_vec_init): Likewise. | |
2730 | (build_vec_delete): Likewise. | |
2731 | * lex.c: Include ggc.h. | |
2732 | (defarg_fn): Move declaration early. | |
2733 | (defarg_parms): Likewise. | |
2734 | (init_parse): Add GC roots. | |
2735 | (handle_cp_pragma): Remove redundant declaration of | |
2736 | pending_vtables. | |
2737 | * method.c: Include ggc.h. | |
2738 | (btypelist): Make it a varray. All uses changed. | |
2739 | (ktypelist): Likewise. | |
2740 | (init_method): Add GC roots. | |
2741 | * pt.c: Don't include varray.h. Include ggc.h. | |
2742 | (current_template_parms): Remove. | |
2743 | (processing_template_decl): Likewise. | |
2744 | (processing_specialization): Likewise. | |
2745 | (processing_explicit_instantiation): Likewise. | |
2746 | (init_pt): New function. | |
2747 | * repo.c: Include ggc.h. | |
2748 | (init_repo): Add GC roots. | |
2749 | * search.c: Don't include varray.h. | |
2750 | (_vptr_name): Remove. | |
2751 | (lookup_field_1): Use vtpr_identifier instead. | |
2752 | (expand_indirect_vtbls_init): Remove redundant declaration of | |
2753 | in_charge_identifier. | |
2754 | (init_search_processing): Use vptr_identifier. | |
c8094d83 | 2755 | |
4e876a0f NS |
2756 | 1999-09-05 Richard Henderson <rth@cygnus.com> |
2757 | Bernd Schmidt <bernds@cygnus.co.uk> | |
2758 | Mark Mitchell <mark@codesourcery.com> | |
2759 | ||
2760 | * Makefile.in (parse.o): Depend on ggc.h. | |
2761 | (decl2.o): Depend on ggc.h. | |
2762 | (init.o): Depend on ggc.h. | |
2763 | * cp-tree.h (init_decl2): Declare. | |
2764 | (cp_parse_init): Likewise. | |
2765 | * decl.c (ggc_p): Define to zero. | |
2766 | (mark_saved_scope): New function. | |
2767 | (init_decl_processing): Call cp_parse_init, and cp_decl2. | |
2768 | Register GC roots. | |
2769 | (expand_static_init): Add GC roots. | |
2770 | * decl2.c: Include ggc.h. | |
2771 | (init_decl2): New function. | |
2772 | * init.c: Include ggc.h. | |
2773 | (init_init_processing): Add GC roots. | |
2774 | * parse.y: Include ggc.h. | |
2775 | (cp_parse_init): New function. | |
c8094d83 | 2776 | |
4e876a0f NS |
2777 | 1999-09-04 Mark Mitchell <mark@codesourcery.com> |
2778 | ||
2779 | * decl.c (init_decl_processing): Set mark_lang_status. | |
2780 | (lang_mark_false_label_stack): Adjust prototype. | |
2781 | * decl2.c (grok_function_init): Remove extraneous declaration of | |
2782 | abort_fndecl. | |
2783 | ||
2784 | * Make-lang.in (cc1plus): Remove dependency on GGC. | |
2785 | * Makefile.in (OBJS): Don't mention ggc-simple.o. | |
2786 | (OBJDEPS): Don't mention ggc-simple.o. | |
2787 | ||
2788 | * Make-lang.in (cc1plus): Depend on $(GGC). | |
2789 | * Makefile.in (OBJS): Add ggc-simple.o. | |
2790 | (OBJDEPS): Likewise. | |
2791 | * cp-tree.h (language_function): Rename members to `x_' versions; | |
2792 | we now have x_named_labels, x_ctor_label, x_dtor_label, | |
2793 | x_base_init_list, x_member_init_list, x_base_init_expr, | |
2794 | x_current_class_ptr, x_current_class_ref, x_last_tree, | |
2795 | x_last_expr_type, x_last_dtor_insn, x_last_parm_cleanup_insn, and | |
c8094d83 | 2796 | x_result_rtx. |
4e876a0f NS |
2797 | (dtor_label, ctor_label, current_base_init_list, |
2798 | current_member_init_list, base_init_expr, current_class_ptr, | |
2799 | current_class_ref, last_tree, last_expr_type): Adjust accordingly. | |
2800 | * decl.c: Include ggc.h. | |
2801 | (last_dtor_insn): Adjust to use x_ names. | |
2802 | (last_parm_cleanup_insn): Likewise. | |
2803 | (original_result_rtx): Likewise. | |
2804 | (named_labels): Likewise. | |
2805 | (mark_binding_level): New function. | |
2806 | (mark_cp_function_context): Likewise. | |
2807 | (mark_false_label_stack): Likewise. | |
2808 | (lang_mark_tree): Likewise. | |
2809 | (lang_cleanup_tree): Likewise. | |
c8094d83 | 2810 | |
4e876a0f NS |
2811 | 1999-09-03 Mark Mitchell <mark@codesourcery.com> |
2812 | ||
2813 | * Makefile.in (CXX_TREE_H): Include function.h. | |
2814 | (decl.o): Don't depend on function.h. | |
2815 | (decl2.o): Likewise. | |
2816 | (typeck.o): Likewise. | |
2817 | (init.o): Likewise. | |
2818 | (method.o): Likewise. | |
2819 | * cp-tree.h: Include function.h. | |
2820 | (cp_function): Rename to language_function. Remove next. | |
2821 | (cp_function_chain): Make it a macro, not a variable. | |
2822 | (push_cp_function_context): Don't declare. | |
2823 | (pop_cp_function_context): Likewise. | |
2824 | * decl.c: Don't include function.h. | |
2825 | (push_cp_function_context): Make it static. Make it suitable for | |
2826 | a save_lang_status callback. | |
2827 | (pop_cp_function_context): Likewise. | |
2828 | (maybe_push_to_top_level): Call push_function_context_to, not | |
2829 | push_cp_function_context. | |
2830 | (pop_from_top_level): Call pop_function_context_from, not | |
2831 | pop_cp_function_context. | |
2832 | (init_decl_processing): Set save_lang_status and | |
2833 | restore_lang_status. Call push_function_context_to, not | |
2834 | push_cp_function_context. | |
2835 | (cp_function_chain): Remove. | |
2836 | * decl2.c: Don't include function.h. | |
2837 | * except.c: Don't include function.h. | |
2838 | (start_anon_func): Call push_function_context_to, not | |
2839 | push_cp_function_context. | |
2840 | (end_anon_func): Call pop_function_context_from, not | |
2841 | pop_cp_function_context. | |
2842 | * init.c: Don't include function.h. | |
2843 | * lex.c (begin_definition_of_inclass_inline): Call | |
c8094d83 | 2844 | push_function_context_to, not push_cp_function_context. |
4e876a0f NS |
2845 | (process_next_inline): Call pop_function_context_from, not |
2846 | pop_cp_function_context. | |
2847 | * method.c: Don't include function.h. | |
2848 | (synthesize_method): Call push_function_context_to, not | |
2849 | push_cp_function_context. Call pop_function_context_from, not | |
2850 | pop_cp_function_context. | |
2851 | * typeck.c: Don't include function.h. | |
c8094d83 | 2852 | |
4e876a0f NS |
2853 | * decl.c (expand_static_init): Tweak handling of static |
2854 | initializations for objects without constructors. | |
2855 | ||
2856 | 1999-09-03 Nathan Sidwell <nathan@acm.org> | |
2857 | ||
2858 | * typeck.c (build_indirect_ref): Reject dereference of pointer to | |
2859 | void. | |
2860 | ||
2861 | 1999-09-02 Mark Mitchell <mark@codesourcery.com> | |
2862 | ||
2863 | * cp-tree.h (cp_function): Move here, from decl.c. | |
2864 | (cp_function_chain): Declare. | |
2865 | (dtor_label): New macro, instead of variable. | |
2866 | (ctor_label): Likewise. | |
2867 | (current_base_init_list): Likewise. | |
2868 | (current_member_init_list): Likewise. | |
2869 | (base_init_expr): Likewise. | |
2870 | (current_class_ptr): Likewise. | |
2871 | (current_class_ref): Likewise. | |
2872 | (last_tree): Likewise. | |
2873 | (last_expr_type): Likewise. | |
2874 | (current_function_returns_value): Likewise. | |
2875 | (current_function_returns_null): Likewise. | |
2876 | (current_function_just_assigned_this): Likewise. | |
2877 | (current_function_parms_stored): Likewise. | |
2878 | (temp_name_counter): Likewise. | |
2879 | (static_labelno): Likewise. | |
2880 | (expanding_p): Likewise. | |
2881 | (stmts_are_full_exprs_p): Likewise. | |
2882 | (in_function_try_handler): Likewise. | |
2883 | (lang_type): Remove nested type_flags. All uses changed. | |
2884 | * call.c (ctor_label): Remove. | |
2885 | (dtor_label): Likewise. | |
2886 | * class.c (current_class_ptr): Remove. | |
2887 | (current_class_ref): Likewise. | |
2888 | * decl.c (static_labelno): Remove. | |
2889 | (dtor_label): Likewise. | |
2890 | (last_dtor_insn): New macro, instead of variable. | |
2891 | (last_parm_cleanup_insn): Likewise. | |
2892 | (original_result_rtx): Likewise. | |
2893 | (in_function_try_handler): Remove. | |
2894 | (named_label_uses): New macro, instead of variable. | |
2895 | (named_labels): Likewise. | |
2896 | (current_function_returns_value): Remove. | |
2897 | (current_function_returns_null): Likewise. | |
2898 | (current_function_assigns_this): New macro, instead of variable. | |
2899 | (current_function_just_assigned_this): Likewise. | |
2900 | (current_binding_level): Likewise. | |
2901 | (init_decl_processing): Call push_cp_function_context. | |
2902 | (cp_function): Move to cp-tree.h | |
2903 | (cp_function_chain): Make it global. | |
2904 | (temp_name_counter): Remove. | |
2905 | (push_cp_function_context): Simplify. | |
2906 | (pop_cp_function_context): Likewise. | |
2907 | * decl2.c (temp_name_counter): Remove. | |
2908 | * init_c (current_base_init_list): Likewise. | |
2909 | (current_member_init_list): Likewise. | |
2910 | (base_init_expr): Likewise. | |
2911 | * method.c (static_labelno): Likewise. | |
2912 | * pt.c (last_tree): Likewise. | |
2913 | * semantics.c (expanding_p): Likewise. | |
2914 | (stmts_are_full_exprs_p): Likewise. | |
2915 | (last_expr_type): Likewise. | |
2916 | * typeck.c (dtor_label): Likewise. | |
2917 | (ctor_label): Likewise. | |
c8094d83 | 2918 | |
4e876a0f NS |
2919 | 1999-09-01 Alex Samuel <samuel@codesourcery.com> |
2920 | ||
2921 | * decl2.c (arg_assoc_template_arg): New prototype. New function. | |
2922 | (arg_assoc_class): Use arg_assoc_template_arg for template | |
c8094d83 | 2923 | arguments. |
4e876a0f NS |
2924 | (arg_assoc): Likewise. |
2925 | * pt.c (mangle_class_name_for_template): Allow member template | |
2926 | template arguments. | |
2927 | ||
2928 | 1999-09-02 Nathan Sidwell <nathan@acm.org> | |
2929 | ||
2930 | * call.c (build_conditional_expr): Warn on enum mismatches. | |
2931 | (convert_arg_to_ellipsis): Move non-pod check to after | |
2932 | conversion. | |
2933 | ||
2934 | 1999-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
2935 | ||
2936 | * gxx.gperf (hash, is_reserved_word): Add prototypes. | |
2937 | ||
2938 | * init.c (build_vec_init): Initialize variable `try_block'. | |
2939 | ||
2940 | * lex.c (init_parse): Call memcpy, not bcopy, to avoid casts. | |
2941 | Likewise for bzero/memset. | |
2942 | (token_getch, token_put_back): Add static prototypes. Remove | |
2943 | `inline' from the definitions. | |
2944 | (retrofit_lang_decl): Call memset, not bzero, to avoid casts. | |
2945 | ||
2946 | 1999-09-01 Mark Mitchell <mark@codesourcery.com> | |
2947 | ||
2948 | * cp-tree.h (lang_type): Move align into type_flags. | |
2949 | (CLASSTYPE_ALIGN): Adjust accordingly. | |
2950 | * call.c (direct_reference_binding): Remove misleading comment. | |
2951 | ||
2952 | 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
2953 | ||
2954 | * parse.y (language_string): Constify. | |
2955 | ||
2956 | 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
2957 | ||
2958 | * repo.c (getpwd): Don't prototype. | |
2959 | * xref.c (getpwd): Likewise | |
2960 | ||
2961 | 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
2962 | ||
2963 | * Makefile.in (LIBS, LIBDEPS): Link with & depend on libiberty.a. | |
2964 | Remove hacks for stuff which now comes from libiberty. | |
2965 | ||
2966 | 1999-08-30 Jason Merrill <jason@yorick.cygnus.com> | |
2967 | ||
2968 | * cp-tree.h (IS_AGGR_TYPE_2): Fix typo. | |
2969 | ||
2970 | 1999-08-30 Mark Mitchell <mark@codesourcery.com> | |
2971 | ||
2972 | * cp-tree.h (begin_init_stmts): Declare. | |
2973 | (finish_init_stmts): Likewise. | |
2974 | * cvt.c (build_up_reference): Wrap the declaration of a temporary | |
2975 | in a statement-expression so that we will see it when expanding | |
2976 | tree structure later. | |
2977 | * init.c (begin_init_stmts): Don't make it static. | |
2978 | (finish_init_stmts): Likewise. | |
2979 | ||
2980 | * cp-tree.h (start_handler_parms): New function. | |
2981 | (expand_start_catch_block): Take only one parameter. | |
2982 | (start_handler_parms): New function. | |
2983 | * decl.c (start_handler_parms): Define it. | |
2984 | * except.c (process_start_catch_block): Take only one parameter. | |
2985 | Don't call grokdeclarator here. | |
2986 | (expand_start_catch_block): Don't call grokdeclarator here, | |
2987 | either. | |
2988 | * parse.y (handler_args): Adjust call to | |
2989 | expand_start_catch_block. Use start_handler_parms. | |
2990 | * pt.c (push_template_decl_real): Make permanent lists have | |
2991 | permanent elements. | |
2992 | (tsubst_expr): Adjust calls to expand_start_catch_block | |
2993 | appropriately. | |
2994 | * semantics.c (expand_stmt): Likewise. | |
c8094d83 | 2995 | |
4e876a0f NS |
2996 | 1999-08-29 Alex Samuel <samuel@codesourcery.com> |
2997 | ||
2998 | * pt.c (push_template_decl_real): Use template declaration from | |
2999 | class type if it exists. | |
3000 | ||
3001 | 1999-08-29 Mark Mitchell <mark@codesourcery.com> | |
3002 | ||
3003 | * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): Remove #if 0'd definition. | |
3004 | (maybe_inject_for_scope_var): Declare it. | |
3005 | (initialize_local_var): Likewise. | |
3006 | * decl.c (maybe_inject_for_scope_var): Make it global. | |
3007 | (initialize_local_var): Likewise. Move cleanup handling here, | |
3008 | from cp_finish_decl. | |
3009 | (make_rtl_for_nonlocal_decl): Use | |
3010 | push_obstacks_nochange/pop_obstacks, rather than | |
3011 | end_temporary_allocation/resume_temporary_allocation. | |
3012 | (cp_finish_decl): Try to complete the type of a variable when it | |
3013 | is declared. Move cleanup-handling to initialize_local_var. | |
3014 | (expand_static_init): Use tree-building code, rather than | |
3015 | RTL-building code. | |
3016 | * decl2.c (get_temp_name): Assert non-initializedness of | |
3017 | temporaries. | |
3018 | * init.c (create_temporary_var): Move RTL-assigning code to ... | |
3019 | (get_temp_regvar): Here. | |
3020 | * pt.c (tsbust_expr): Fix indentation. Call cp_finish_decl here. | |
3021 | * semantics.c (expand_stmt): Don't call cp_finish_decl here. Just | |
3022 | call initialize_local_var to generate initialization code. | |
c8094d83 | 3023 | |
4e876a0f NS |
3024 | 1999-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
3025 | ||
3026 | * cp-tree.h (fndecl_as_string, type_as_string, | |
3027 | type_as_string_real, args_as_string, decl_as_string, | |
3028 | expr_as_string, code_as_string, language_as_string, | |
3029 | parm_as_string, op_as_string, assop_as_string, cv_as_string, | |
3030 | lang_decl_name, cp_file_of, lang_printable_name): Constify a char*. | |
3031 | ||
3032 | * errfn.c (cp_printer): Likewise. | |
3033 | ||
3034 | * error.c (cp_printer, fndecl_as_string, type_as_string_real, | |
3035 | type_as_string, expr_as_string, decl_as_string, lang_decl_name, | |
3036 | cp_file_of, code_as_string, language_as_string, parm_as_string, | |
3037 | op_as_string, assop_as_string, args_as_string, cv_as_string): | |
3038 | Likewise. | |
3039 | ||
3040 | * tree.c (lang_printable_name): Likewise. | |
3041 | ||
3042 | 1999-08-28 Richard Henderson <rth@cygnus.com> | |
3043 | ||
3044 | * decl2.c (arg_assoc_class): Bail if the class is a builtin type. | |
3045 | ||
3046 | 1999-08-28 Mark Mitchell <mark@codesourcery.com> | |
3047 | ||
3048 | * cp-tree.h (strip_array_types): New function. | |
3049 | * decl.c (maybe_deduce_size_from_array_init): New function, split | |
3050 | out from cp_finish_decl. | |
3051 | (layout_var_decl): Likewise. | |
3052 | (maybe_commonize_var): Likewise. | |
3053 | (maybe_inject_for_scope_var): Likewise. | |
3054 | (initialize_local_var): Likewise. | |
3055 | (build_cleanup_on_safe_obstack): Likewise. | |
3056 | (check_initializer): Likewise. | |
3057 | (make_rtl_for_nonlocal_decl): Likewise. | |
3058 | (cp_finish_decl): Use them. | |
3059 | * typeck.c (strip_array_types): New function. | |
c8094d83 | 3060 | |
4e876a0f NS |
3061 | * cp-tree.def (LABEL_STMT): New tree node. |
3062 | * cp-tree.h (LABEL_STMT_LABEL): New macro. | |
3063 | (shadow_label): Remove. | |
3064 | (declare_local_label): New function. | |
3065 | (finish_label_decl): Likewise. | |
3066 | * decl.c (make_label_decl): New function, split out from | |
3067 | lookup_label. | |
3068 | (shadowed_labels): Remove. | |
3069 | (binding_level): Add shadowed_labels. | |
3070 | (clear_binding_level): Remove. | |
3071 | (push_binding_level): Just bzero the new binding level. | |
3072 | (pushlevel): Fix indentation. | |
3073 | (pop_label): New function. | |
3074 | (pop_labels): Likewise, split out from poplevel. | |
3075 | (poplevel): Pop local labels. Use pop_labels. | |
3076 | (maybe_push_to_top_level): Don't clear shadowed_labels. | |
3077 | (lookup_label): Use make_label_decl. | |
3078 | (shadow_label): Remove. | |
3079 | (declare_local_label): New function. | |
3080 | (define_label): Simplify. | |
3081 | (start_function): Don't clear shadowed_labels. | |
3082 | (cp_function): Remove shadowed_labels. | |
3083 | (push_cp_function_context): Don't save shadowed_labels. | |
3084 | (pop_cp_function_context): Don't restore it. | |
3085 | * dump.c (dequeue_and_dump): Handle LABEL_STMT. | |
3086 | * parse.y (label_decl): Use finish_label_decl. | |
3087 | * pt.c (tsubst_expr): Handle LABEL_STMTs, and local label | |
3088 | declarations. | |
3089 | * semantics.c (finish_label_stmt): Add a LABEL_STMT when | |
3090 | building_stmt_tree. | |
3091 | (finish_label_decl): New function. | |
3092 | (expand_stmt): Handle LABEL_STMTs and local label declarations. | |
c8094d83 | 3093 | |
4e876a0f NS |
3094 | 1999-08-26 Mark Mitchell <mark@codesourcery.com> |
3095 | ||
3096 | * decl.c (lookup_label): Build labels on the permanent obstack | |
3097 | when building statement trees. Don't build RTL for labels when | |
3098 | building statement trees. | |
3099 | * semantics.c (finish_goto_stmt): Use LABEL_DECLs even when | |
3100 | building statement trees. | |
3101 | (finish_label_stmt): Likewise. | |
3102 | (expand_stmt): Adjust accordingly. | |
3103 | * pt.c (tsubst_expr); Likewise. | |
3104 | (do_decl_instantiation): Robustify. | |
c8094d83 | 3105 | |
4e876a0f NS |
3106 | * cp-tree.h (AGGR_INIT_VIA_CTOR_P): New macro. |
3107 | * tree.c (build_cplus_new): Set it. | |
3108 | * expr.c (cplus_expand_expr): Use it. | |
3109 | * dump.c (deque_and_dump): Handle AGGR_INIT_EXPR. | |
c8094d83 | 3110 | |
4e876a0f NS |
3111 | * decl.c (store_parm_decls): Reset immediate_size_expand. |
3112 | (finish_function): Likewise. | |
c8094d83 | 3113 | |
4e876a0f NS |
3114 | * tree.c (cplus_unsave_expr_now): Don't return a value. |
3115 | ||
3116 | * semantics.c (do_poplevel): Always initialize the return value. | |
3117 | ||
3118 | 1999-08-26 Gavin Romig-Koch <gavin@cygnus.com> | |
3119 | ||
3120 | * cp-tree.h (cplus_unsave_expr_now) : Correct return type. | |
3121 | * tree.h (cplus_unsave_expr_now) : Same. | |
3122 | ||
3123 | 1999-08-25 Mark Mitchell <mark@codesourcery.com> | |
3124 | ||
3125 | * decl.c (grokdeclarator): Amend comment. | |
3126 | * except.c (expand_start_catch_block): Call push_template_decl for | |
3127 | catch-block parameters. | |
3128 | * method.c (synthesize_method): Build an empty compound statement | |
3129 | for the body of a constructor. | |
3130 | ||
3131 | 1999-08-25 Jason Merrill <jason@yorick.cygnus.com> | |
3132 | ||
3133 | * tree.c (cp_build_qualified_type_real): If we're asking for the | |
3134 | same quals we already have, just return. | |
3135 | ||
3136 | 1999-08-25 Mark Mitchell <mark@codesourcery.com> | |
3137 | ||
3138 | * cp-tree.def (SUBOBJECT): New tree node. | |
3139 | * cp-tree.h (CLEANUP_P): New macro. | |
3140 | (SUBOBJECT_CLEANUP): Likewise. | |
3141 | (keep_next_level): Add parameter. | |
3142 | (get_temp_regvar): Don't declare. | |
3143 | (emit_base_init): Remove parameter. | |
3144 | (expand_aggr_init): Rename to build_aggr_init. | |
3145 | (expand_vec_init): Rename to build_vec_init. | |
3146 | (do_pushlevel): Remove. | |
3147 | (do_poplevel): Likewise. | |
3148 | (finish_cleanup): New function. | |
3149 | (finish_subobject): Likewise. | |
3150 | (stmts_are_full_exprs_p): New variable. | |
3151 | * decl.c (keep_next_level): Add parameter. | |
3152 | (cp_finish_decl): Use build_aggr_init, not | |
3153 | expand_aggr_init. Use finish_expr_stmt to expand the code. | |
3154 | (expand_static_init): Use tree-generating, not RTL-generating, | |
3155 | functions to handle the initialization. | |
3156 | (start_function): Remove dead code. Always have a momentary | |
3157 | obstack inside the function, even before hitting the first curly | |
3158 | brace. | |
3159 | (cplus_expand_expr_stmt): Move calls to | |
3160 | expand_{start,end}_target_temps into semantics.c. | |
3161 | (cp_function): Add stmts_are_full_exprs_p. | |
3162 | (push_cp_function_context): Save it. | |
3163 | (pop_cp_function_context): Restore it. | |
3164 | * decl2.c (get_temp_regvar): Move to init.c. | |
3165 | (do_static_initialization): Use build_{aggr,vec}_init. | |
3166 | (do_static_destruction): Fix typo in comment. | |
3167 | * dump.c (dequeue_and_dump): Handle INIT_EXPR. | |
3168 | * except.c (expand_throw): Use create_temporary_var. | |
3169 | * expr.c (cplus_expand_expr): Use build_{aggr,vec}_init. | |
3170 | * init.c (expand_vec_init_try_block): Remove. | |
3171 | (expand_vec_init_catch_clause): Likewise. | |
3172 | (get_temp_regvar): New function. | |
3173 | (begin_init_stmts): Likewise. | |
3174 | (finish_init_stmts): Likewise. | |
3175 | (perform_member_init): Use build_{aggr,vec}_init. Build up tree | |
3176 | structure here. | |
3177 | (emit_base_init): Likewise. Remove unused parameter. | |
3178 | (expand_virtual_init): Likewise. | |
3179 | (expand_cleanup_for_base): Use finish_subobject. | |
3180 | (expand_aggr_vbase_init_1): Simplify. | |
3181 | (construct_virtual_bases): Use tree-generating functions to build | |
3182 | up initialization. | |
3183 | (expand_aggr_init): Likewise. Rename to build_aggr_init. | |
3184 | (expand_default_init): Likewise. | |
3185 | (expand_aggr_init_1): Likewise. | |
3186 | (expand_vec_init): Rename to build_vec_init. | |
3187 | * method.c (do_build_copy_constructor): Use tree-generating | |
3188 | functions. Don't call clear_last_expr. | |
3189 | (do_build_assign_ref): Likewise. | |
3190 | (synthesize_method): Call clear_last_expr here. | |
3191 | * parse.y (base_init): Don't call clear_last_expr here. | |
3192 | (nodecls): Likewise. | |
3193 | * pt.c (tsubst_expr): Handle a TRY_BLOCK with CLEANUP_P set. | |
3194 | * semantics.c (do_pushlevel): Move to here. | |
3195 | (do_poplevel): Likewise. | |
3196 | (stmts_are_full_exprs_p): New variable. | |
3197 | (finish_expr_stmt): Handle logic for temoprary cleanup here. | |
3198 | (finish_for_stmt): Use finish_expr_stmt. | |
3199 | (finish_cleanup): New function. | |
3200 | (finish_function_try_block): Fix indentation. | |
3201 | (finish_subobject): New function. | |
3202 | (setup_vtbl_ptr): Call keep_next_level here. | |
3203 | (finish_stmt_expr): Handle a block with no scope inside the | |
3204 | statement-expression. | |
3205 | (expand_stmt): Handle a TRY_BLOCK with CLEANUP_P set. Handle | |
3206 | SUBOBJECT. | |
3207 | * tree.c (search_tree): Handle INIT_EXPR. | |
3208 | (mapcar): Likewise. | |
3209 | * typeck.c (build_modify_expr): Don't build an RTL_EXPR. | |
3210 | * typeck2.c (store_init_value): Change expand_aggr_init to | |
3211 | build_aggr_init in comment. | |
c8094d83 | 3212 | |
4e876a0f NS |
3213 | 1999-08-25 Mark Mitchell <mark@codesourcery.com> |
3214 | ||
3215 | * dump.c (dequeue_and_dump): Dump TARGET_EXPRs. | |
3216 | ||
3217 | 1999-08-25 Nathan Sidwell <nathan@acm.org> | |
3218 | ||
3219 | * decl2.c (handle_class_head): Be graceful about additional | |
3220 | scope qualifiers. Adjust comments to reflect reality. | |
3221 | ||
3222 | 1999-08-24 Jason Merrill <jason@yorick.cygnus.com> | |
3223 | ||
3224 | * call.c (build_conditional_expr): Fix typo. | |
3225 | * typeck.c (build_modify_expr, COND_EXPR): Make sure we've got an | |
3226 | lvalue before trying to mess with the sides. | |
3227 | ||
3228 | * error.c (dump_expr, CONVERT_EXPR): Handle (void) properly. | |
3229 | ||
3230 | Mon Aug 23 22:17:20 1999 Mumit Khan <khan@xraylith.wisc.edu> | |
3231 | ||
3232 | * g++spec.c (lang_specific_driver): Add room for NULL in arglist. | |
3233 | ||
3234 | 1999-08-23 Jason Merrill <jason@yorick.cygnus.com> | |
3235 | ||
3236 | * exception.cc (__cplus_type_matcher): Call __throw_type_match_rtti_2. | |
3237 | Return arbitrary pointer or NULL. | |
3238 | (check_eh_spec): Call __throw_type_match_rtti_2. | |
3239 | * tinfo.h (*::dcast): Return int. Add valp parm. | |
3240 | * tinfo.cc (*::dcast): Likewise. Adjust to allow for null pointers. | |
3241 | * tinfo2.cc (__throw_type_match_rtti_2): Likewise. | |
3242 | (__throw_type_match_rtti): Now just a wrapper. | |
3243 | ||
3244 | * except.c: Lose CatchMatch, FirstExceptionMatch, and Unwind. | |
3245 | (init_exception_processing): Don't initialize them. | |
3246 | ||
3247 | 1999-08-23 Paul Burchard <burchard@pobox.com> | |
3248 | ||
3249 | * decl.c (check_default_argument): Fix typo. | |
3250 | ||
3251 | 1999-08-22 Mark Mitchell <mark@codesourcery.com> | |
3252 | ||
3253 | * cp-tree.def (STMT_EXPR): Fix typo in node name. | |
3254 | ||
3255 | * dump.c (dump_next_stmt): New function. | |
3256 | (dequeue_and_dump): Use it. | |
c8094d83 | 3257 | |
4e876a0f NS |
3258 | * pt.c (tsubst_copy): Make sure to initialize return value for a |
3259 | STMT_EXPR, even when processing_template_decl. | |
3260 | * semantics.c (finish_stmt_expr): A statement-expression whose | |
c8094d83 MS |
3261 | last statement is not an expression-statement has type `void'. |
3262 | ||
4e876a0f NS |
3263 | 1999-08-20 Mark Mitchell <mark@codesourcery.com> |
3264 | ||
3265 | * semantics.c (finish_stmt_expr): Fix typo in comment. | |
3266 | * tree.c (search_tree): Handle EXIT_EXPR, LOOP_EXPR. | |
3267 | (mapcar): Likewise. | |
3268 | * init.c (build_vec_delete_1): Make the children of a permanent | |
3269 | BIND_EXPR permanent. | |
3270 | * pt.c (register_specialization): Don't register a specialization | |
3271 | more than once. | |
c8094d83 | 3272 | |
4e876a0f NS |
3273 | 1999-08-18 Andrew Haley <aph@cygnus.com> |
3274 | ||
3275 | * method.c (process_overload_item): Call build_mangled_C9x_name () | |
3276 | for all integer parameter types larger than long long. | |
3277 | ||
3278 | 1999-08-19 Mark Mitchell <mark@codesourcery.com> | |
3279 | ||
3280 | * pt.c (redeclare_class_template): Merge default template | |
3281 | arguments in both directions. | |
3282 | ||
3283 | * typeck.c (common_type): Undo 1999-08-18 change. Remove | |
3284 | compiler_error message. | |
3285 | ||
3286 | 1999-08-19 Jason Merrill <jason@yorick.cygnus.com> | |
3287 | ||
3288 | * cp-tree.h: Declare flag_use_repository. | |
3289 | * pt.c (do_decl_instantiation): Don't complain about duplicate | |
3290 | instantiation with -frepo. | |
3291 | (do_type_instantiation): Likewise. | |
3292 | ||
3293 | * pt.c (push_template_decl_real): Complain about everything | |
3294 | that isn't a valid template. | |
3295 | ||
3296 | * decl2.c (import_export_decl): If -fnew-abi, class linkage doesn't | |
3297 | affect inlines. | |
3298 | ||
3299 | 1999-08-19 Mark Mitchell <mark@codesourcery.com> | |
3300 | ||
3301 | * cp-tree.def (PSEUDO_DTOR_EXPR): New tree code. | |
3302 | * decl2.c (build_expr_from_tree): Handle it. | |
3303 | * error.c (dump_expr): Likewise. | |
3304 | * pt.c (for_each_template_parm): Likewise. | |
3305 | (tsubst_copy): Likewise. | |
3306 | * tree.c (search_tree): Likewise. | |
3307 | * semantics.c (finish_pseudo_destructor_call): Create it. | |
c8094d83 | 3308 | |
4e876a0f NS |
3309 | 1999-08-18 Mark Mitchell <mark@codesourcery.com> |
3310 | ||
3311 | * search.c (setup_class_bindings): Robustify. | |
3312 | * typeck.c (common_type): Use same_type_p, not pointer equality, | |
3313 | to compare types. | |
3314 | ||
3315 | * cp-tree.h (build_lang_field_decl): Remove. | |
3316 | * class.c (build_vtable): Replace calls to build_lang_field_decl | |
3317 | with build_lang_decl. | |
3318 | (prepare_fresh_vtable): Likewise. | |
3319 | (finish_struct_1): Likewise. | |
3320 | (init_class_processing): Likewise. | |
3321 | * decl.c (push_using_decl): Likewise. | |
3322 | (init_decl_processing): Likewise. | |
3323 | (grokvardecl): Likewise. | |
3324 | (build_ptrmemfunc_type): Likewise. | |
3325 | (grokdeclarator): Likewise. | |
3326 | (build_enumerator): Likewise. | |
3327 | * decl2.c (grok_x_components): Likewise. | |
3328 | (do_class_using_decl): Likewise. | |
3329 | * except.c (call_eh_info): Likewise. | |
3330 | * init.c (init_init_processing): Likewise. | |
3331 | * rtti.c (expand_class_decl): Likewise. | |
3332 | * tree.c (build_base_fields): Likewise. | |
3333 | (build_vbase_pointer_fields): Likewise. | |
3334 | * lex.c (build_lang_decl): Build declarations on the permanent | |
3335 | obstack if we're building statmeent trees. | |
3336 | (retrofit_lang_decl): Handle both the full lang_decl and also the | |
3337 | smaller lang_decl_flags here. | |
3338 | (build_lang_field_decl): Remove. | |
3339 | * pt.c (push_template_decl_real): Issue errors for variable | |
3340 | declarations that are not static members. | |
3341 | ||
3342 | 1999-08-18 Richard Henderson <rth@cygnus.com> | |
3343 | ||
3344 | * tree.c (search_tree): Handle TRUTH_{AND,OR,XOR}_EXPR too. | |
3345 | (mapcar): Likewise. | |
3346 | ||
3347 | 1999-08-17 Mark Mitchell <mark@codesourcery.com> | |
3348 | ||
3349 | * cp-tree.h (back_end_hook): New variable. | |
3350 | * decl2.c (back_end_hook): Define it. | |
3351 | (finish_file): If it's non-NULL, call it. | |
3352 | ||
3353 | * decl.c (add_decl_to_level): New function. | |
3354 | (push_local_binding): Use it. | |
3355 | (find_binding): Fix typo in comment. | |
3356 | (pushdecl): Use add_decl_to_level. Put templates on the | |
3357 | corresponding namespace-scope binding levels. | |
3358 | * dump.c (dequeue_and_dump): Print the specializations of a | |
3359 | template. | |
3360 | * pt.c (push_template_decl_real): Don't push a template multiple | |
3361 | times. | |
3362 | ||
3363 | 1999-08-17 Mark Mitchell <mark@codesourcery.com> | |
3364 | ||
3365 | * cp-tree.h (CALL_DECLARATOR_PARMS): New macro. | |
3366 | (CALL_DECLARATOR_QUALS): Likewise. | |
3367 | (CALL_DECARATOR_EXCEPTION_SPEC): Likewise. | |
3368 | * decl.c (grokdeclarator): Adjust to use them. | |
3369 | * decl2.c (grokfield): Likewise. | |
3370 | (reparse_absdcl_as_casts): Likewise. | |
3371 | * lex.c (make_call_declarator): Likewise. | |
3372 | (set_quals_and_spec): Likewise. | |
3373 | * pt.c (tsubst): Likewise. | |
3374 | * tree.c (mapcar): Remove special hack to handle third operand of | |
3375 | a CALL_EXPR. | |
3376 | ||
3377 | 1999-08-16 Mark Mitchell <mark@codesourcery.com> | |
3378 | ||
3379 | * cp-tree.h (CAN_HAVE_FULL_LANG_DECL_P): New macro. | |
3380 | * class.c (build_vtable): Use build_lang_field_decl to build the | |
3381 | VAR_DECLs for vtables. | |
3382 | (prepare_fresh_vtable): Likewise. | |
3383 | * decl.c (duplicate_decls): Only copy DECL_SAVED_TREE if | |
3384 | CAN_HAVE_FULL_LANG_DECL_P. | |
3385 | (push_using_decl): Use build_lang_decl to build USING_DECLs. | |
3386 | (grokdeclarator): Use build_lang_decl to build TYPE_DECLs. | |
3387 | * lex.c (retrofit_lang_decl): Check CAN_HAVE_FULL_LANG_DECL_P. | |
3388 | (build_lang_field_decl): Likewise. | |
3389 | (copy_lang_decl): Use CAN_HAVE_FULLLANG_DECL_P to decide how much | |
3390 | to copy. | |
c8094d83 | 3391 | |
4e876a0f NS |
3392 | * cp-tree.def (STMT_EXPR): New tree node. |
3393 | * cp-tree.h (STMT_EXPR_STMT): New macro. | |
3394 | (store_return_init): Change prototype. | |
3395 | (finish_named_return_value): New function. | |
3396 | (expand_stmt): Likewise. | |
3397 | (expand_body): Likewise. | |
3398 | (begin_stmt_tree): Likewise. | |
3399 | (finish_stmt_tree): Likewise. | |
3400 | (expanding_p): New variable. | |
3401 | (last_expr_type): Likewise. | |
3402 | (building_stmt_tree): New macro. | |
3403 | * decl.c (start_function): Use building_stmt_tree, not | |
3404 | processing_template_decl, where appropriate. | |
3405 | (store_parm_decls): Likewise. | |
3406 | (store_return_init): Move most of the body to semantics.c. | |
3407 | (finish_function): Use building_stmt_tree. | |
3408 | (finish_stmt): Clear last_expr_type here. | |
3409 | (cp_function): Add expanding_p, last_tree, last_expr_type. | |
3410 | (push_cp_function_context): Save them. | |
3411 | (pop_cp_function_context): Restore them. | |
3412 | * decl2.c (setup_vtbl_ptr): Move to semantics.c. | |
3413 | * error.c (dump_expr): Handle STMT_EXPR. | |
3414 | * except.c (expand_start_catch_block): Use building_stmt_tree. | |
3415 | Use add_decl_stmt. | |
3416 | * expr.c (cplus_expand_expr): Handle STMT_EXPR. | |
3417 | (do_case): Move add_tree call to semantics.c. | |
3418 | * parse.y (return_init): Use finish_named_return_value. | |
3419 | (for.init.statement): Use finish_expr_stmt. | |
3420 | * parse.c: Regenerated. | |
3421 | * pt.c (do_pushlevel): Move to semantics.c. | |
3422 | (do_poplevel): Likewise. | |
3423 | (tsubst_copy): Handle STMT_EXPR instead of BIND_EXPR. | |
3424 | (tsubst_expr): Don't expand all the way to RTL here. Handle | |
3425 | RETURN_INIT and CTOR_INITIALIZER. | |
3426 | (instantiate_decl): Call expand_body after tsubst'ing into | |
3427 | DECL_SAVED_TREE. | |
3428 | * semantics.c (expand_stmts): New function. | |
3429 | (expanding_p): New variable. | |
3430 | (last_expr_type): Likewise. | |
3431 | (finish_expr_stmt): Use building_stmt_tree. | |
3432 | (begin_if_stmt): Likewise. | |
3433 | (finish_if_stmt_cond): Likewise. | |
3434 | (finish_then_clause): Likewise. | |
3435 | (begin_else_clause): Likewise. | |
3436 | (finish_else_clause): Likewise. | |
3437 | (begin_while_stmt): Likewise. | |
3438 | (finish_while_stmt_cond): Likewise. | |
3439 | (finish_while_stmt): Likewise. | |
3440 | (finish_do_body): Likewise. | |
3441 | (finish_do_stmt): Likewise. | |
3442 | (finish_return_stmt): Likewise. | |
3443 | (begin_for_stmt): Likewise. | |
3444 | (fnish_for_init_stmt): Likewise. | |
3445 | (finish_for_cond): Likewise. | |
3446 | (finish_for_expr): Likewise. | |
3447 | (finish_for_stmt): Likewise. | |
3448 | (finish_break_stmt): Likewise. | |
3449 | (finish_continue_stmt): Likewise. | |
3450 | (finish_switch_cond): Likewise. | |
3451 | (finish_switch_stmt): Likewise. | |
3452 | (finish_case_label): Call add_tree here if necessary. | |
3453 | (finish_goto_statement): Use building_stmt_tree. | |
3454 | (begin_try_block): Likewise. | |
3455 | (begin_function_try_block): Likewise. | |
3456 | (finish_try_block): Likewise. | |
3457 | (finish_function_try_block): Likewise. | |
3458 | (finish_handler_sequence): Likewise. | |
3459 | (finish_function_handler_sequence): Likewise. | |
3460 | (begin_handler): Likewise. | |
3461 | (finish_handler_parms): Likewise. | |
3462 | (finish_handler): Likewise. | |
3463 | (begin_compound_stmt): Likewise. | |
3464 | (finish_compound_stmt): Likewise. | |
3465 | (finish_asm_stmt): Likewise. | |
3466 | (finish_label_stmt): Likewise. | |
3467 | (finish_named_return_value): New function. | |
3468 | (setup_vtbl_ptr): Moved here from decl2.c. | |
3469 | (do_pushlevel): Moved here from pt.c. | |
3470 | (do_poplevel): Likewise. | |
3471 | (begin_stmt_expr): Use building_stmt_tree. | |
3472 | (finish_stmt_expr): Likewise. Build a STMT_EXPR, not a BIND_EXPR, | |
3473 | when building_stmt_tree. | |
3474 | (begin_stmt_tree): New function. | |
3475 | (finish_stmt_tree): Likewise. | |
3476 | (expand_stmt): Likewise. | |
3477 | (expand_body): Likewise. | |
3478 | * tree.c (build_cplus_method_type): Make sure the argument types | |
3479 | end up on the same obstack as the METHOD_TYPE. | |
3480 | (search_tree): Handle COMPOUND_EXPR, MODIFY_EXPR, | |
3481 | THROW_EXPR, STMT_EXPR. | |
3482 | (mapcar): Break out common cases. Handle COMPOUND_EXPR, | |
3483 | MODIFY_EXPR, THROW_EXPR, STMT_EXPR, RTL_EXPR. Abort, rather than | |
3484 | sorry, if an unsupported node is encountered. | |
3485 | * typeck.c (require_complete_type_in_void): Handle BIND_EXPR. | |
3486 | (c_expand_return): Don't call add_tree here. | |
c8094d83 | 3487 | |
4e876a0f NS |
3488 | 1999-08-15 Mark Mitchell <mark@codesourcery.com> |
3489 | ||
3490 | * pt.c (check_default_tmpl_args): Don't check in local scopes. | |
3491 | (tsubst_decl): Make sure the declaration is on a saveable | |
3492 | obstack. Clear DECL_DEAD_FOR_LOCAL when making a copy of a local | |
3493 | variable. | |
3494 | (tsubst_expr): Adjust now that DECL_STMTs really contain DECLs. | |
c8094d83 | 3495 | |
4e876a0f NS |
3496 | 1999-08-14 Jason Merrill <jason@yorick.cygnus.com> |
3497 | ||
3498 | Speed up Koenig lookup. | |
3499 | * decl.c (unqualified_namespace_lookup): Nonstatic. Add spacep parm | |
3500 | to return namespaces we've looked at. | |
3501 | * decl2.c (lookup_using_namespace): Likewise. | |
3502 | (add_function): Don't call ovl_member. | |
c8094d83 | 3503 | (lookup_arg_dependent): Initialize k.namespaces to the list of |
4e876a0f NS |
3504 | namespaces seen in unqualified lookup. |
3505 | * call.c (equal_functions): Move here from tree.c. | |
3506 | (joust): Use it to handle duplicate candidates. | |
3507 | * tree.c (ovl_member): Use ==. | |
3508 | ||
3509 | 1999-08-13 Mark Mitchell <mark@codesourcery.com> | |
3510 | ||
3511 | * cp-tree.def (DECL_STMT): Make it smaller. | |
3512 | * cp-tree.h (lang_decl_flags): Move saved_tree to ... | |
3513 | (lang_decl): ... here. Add next. | |
3514 | (DECL_SAVED_TREE): Adjust accordingly. | |
3515 | (DECL_IMPLICIT_TYPEDEF_P): New macro. | |
3516 | (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. | |
3517 | (DECL_STMT_DECL): Likewise. | |
3518 | (create_implicit_typedef): New function. | |
3519 | (maybe_push_decl): Likewise. | |
3520 | (tsubst_default_argument): New function. | |
3521 | (at_function_scope_p): Likewise. | |
3522 | (add_decl_stmt): Likewise. | |
3523 | (push_permanent_obstack): Likewise. | |
3524 | * call.c (convert_default_arg): Use tsubst_default_argument. | |
3525 | * class.c (add_method): Use push_permanent_obstack. | |
3526 | (build_self_reference): Create a TEMPLATE_DECL for the | |
3527 | self-reference, if necessary. | |
3528 | * decl.c (pseudo_global_level_p): Only look at the current binding | |
3529 | level. | |
3530 | (push_binding): Use push_permanent_obstack. | |
3531 | (create_implicit_typedef): New function. | |
3532 | (pushtag): Use it. | |
3533 | (duplicate_decls): Use push_permanent_obstack. | |
3534 | (maybe_push_decl): New function. | |
3535 | (start_decl): Use it. Remove dead code. Use add_decl_stmt. | |
3536 | (start_decl_1): Remove dead code. | |
3537 | (cp_finish_decl): Remove DECL_STMT handling here. Don't use | |
3538 | pseudo_global_level_p. | |
3539 | (grokvardecl): Create DECL_LANG_SPECIFIC for a VAR_DECL in a | |
3540 | template. | |
3541 | (grokdeclarator): Likewise, for TYPE_DECLs. Don't use | |
3542 | pseudo_global_level_p. | |
3543 | * decl2.c (grokfield): Call push_template_decl for a TYPE_DECL in | |
3544 | a template. | |
3545 | (get_sentry): Use push_permanent_obstack. | |
3546 | * dump.c (dequeue_and_dump): Enable DECL_STMT. | |
3547 | * except.c (call_eh_info): Use push_permanent_obstack. | |
3548 | (build_eh_type_ref): Likewise. | |
3549 | (do_pop_exception): Likewise. | |
3550 | (expand_eh_spec): Likewise. | |
3551 | (alloc_eh_object): Likewise. | |
3552 | (expand_throw): Likewise. | |
3553 | * init.c (build_java_class_ref): Likewise. | |
3554 | * lex.c (get_time_identifier): Likewise. | |
3555 | (free_lang_decl_chain): Correct type. | |
3556 | (retrofit_lang_decl): Adjust accordingly. | |
3557 | (build_lang_field_decl): Likewise. | |
3558 | * lex.h (free_lang_decl_chain): Likewise. | |
3559 | * parse.y (lang_extdef): Don't use pseudo_global_level_p. | |
3560 | * parse.c: Regenerated. | |
3561 | * pt.c (tsubst_default_arguments): New function. | |
3562 | (retrieve_local_specialization): Likewise. | |
3563 | (register_local_specialization): Likewise. | |
3564 | (push_template_decl_real): Use DECL_IMPLICIT_TYPEDEF_P. Just use | |
3565 | pseudo_global_level_p to determine whether or not a template is | |
3566 | primary. | |
3567 | (lookup_template_class): Likewise. Use create_implicit_typedef. | |
3568 | (instantiate_class_template): Call tsubst_default_arguments for | |
3569 | member functions, if appropriate. | |
3570 | (tsubst_default_argument): New function. | |
3571 | (tsubst_decl): Use it. Change TYPE_DECL handling to match VAR_DECLs. | |
3572 | * search.c (at_function_scope_p): New function. | |
3573 | * semantics.c (finish_asm_stmt): Use push_permanent_obstack. | |
3574 | (finish_label_stmt): Likewise. | |
3575 | (add_decl_stmt): New function. | |
3576 | (begin_class_definition): Likewise. | |
3577 | (finish_typeof): Likewise. | |
3578 | * tree.c (copy_template_template_parm): Likewise. | |
3579 | (copy_to_permanent): Likewise. | |
3580 | (push_permanent_obstack): Define. | |
3581 | (mark_addressable): Use it. | |
3582 | * typeck.c (mark_addressable): Likewise. | |
c8094d83 | 3583 | |
4e876a0f NS |
3584 | 1999-08-13 Gavin Romig-Koch <gavin@cygnus.com> |
3585 | ||
3586 | * cp-tree.h (init_cplus_unsave): New. | |
3587 | (cplus_unsave_expr_now): New. | |
3588 | * lex.c (init_parse): Call init_cplus_unsave. | |
3589 | * tree.c (init_cplus_unsave): New. | |
3590 | (cplus_unsave_expr_now): New. | |
3591 | ||
3592 | 1999-08-13 Mark Mitchell <mark@codesourcery.com> | |
3593 | ||
3594 | * pt.c (tsubst): Back out 1999-08-06 patch. Use fold and | |
3595 | decl_constant_value to simplify array bounds. | |
3596 | ||
3597 | 1999-08-11 Jason Merrill <jason@yorick.cygnus.com> | |
3598 | ||
3599 | * lang-options.h: Add -fms-extensions. | |
3600 | * cp-tree.h: Declare flag_ms_extensions. | |
3601 | * decl2.c: Define it. | |
3602 | * class.c (instantiate_type): Don't complain about taking the address | |
3603 | of a bound member function if -fms-extensions. | |
3604 | * typeck.c (build_unary_op): Likewise. | |
3605 | * decl.c (grokdeclarator): Or about implicit int. | |
3606 | * init.c (resolve_offset_ref): Or about implicit '&'. | |
3607 | ||
3608 | 1999-08-11 Mark Mitchell <mark@codesourcery.com> | |
3609 | ||
3610 | * cp-tree.h (minimal_parse_mode): Remove. | |
3611 | (finish_label_stmt): New function. | |
3612 | * decl.c (saved_scope): Remove minimal parse mode. | |
3613 | (maybe_push_to_top_level): Don't save it. | |
3614 | (pop_from_top_level): Don't restore it. | |
3615 | (define_label): Split out template-handling code to semantics.c. | |
3616 | (start_decl): Don't use minimal_parse_mode. | |
3617 | (cp_finish_decl): Likewise. | |
3618 | (start_function): Don't increment it. | |
3619 | (store_return_init): Don't use it. | |
3620 | (finish_function): Don't decrement it. | |
3621 | * parse.y (label_colon): Use finish_label_stmt throughout. | |
3622 | * parse.c: Regenerated. | |
3623 | * pt.c (minimal_parse_mode): Don't define it. | |
3624 | (tsubst_expr): Use finish_label_stmt. | |
3625 | * semantics.c (finish_label_stmt): New function. | |
3626 | ||
3627 | * dump.c (queue): Be careful when computing bitmasks. | |
3628 | (dequeue_and_dump): Describe binfos as binfos, not as | |
3629 | vectors. | |
c8094d83 | 3630 | |
4e876a0f | 3631 | * parse.y (pedantic): Give it itype. Adjust usage accordingly |
c8094d83 | 3632 | throughout. |
4e876a0f | 3633 | * parse.c: Regenerated. |
c8094d83 | 3634 | |
4e876a0f NS |
3635 | * Make-lang.in (CXX_SRCS): Remove sig.c. |
3636 | * Makefile.in (CXX_OBJS): Remove sig.o. | |
3637 | (sig.o): Remove. | |
3638 | * cp-tree.h (CPTI_OPAQUE_TYPE): Remove. | |
3639 | (CPTI_SIGNATURE_TYPE): Likewise. | |
3640 | (CPTI_SIGTABLE_ENTRY_TYPE): Likewise. | |
3641 | (opaque_type_node): Likewise. | |
3642 | (signature_type_node): Likewise. | |
3643 | (sigtable_entry_type): Likewise. | |
3644 | (flag_handle_signatures): Likewise. | |
3645 | (lang_type): Remove is_signature, is_signature_pointer, | |
3646 | is_signature_reference, has_opaque_typedecls, | |
3647 | sigtables_has_been_generated. Adjust dummy. Remove signature, | |
3648 | signature_pointer_to, signature_reference_to. | |
3649 | (IS_SIGNATURE): Remove. | |
3650 | (SET_SIGNATURE): Remove. | |
3651 | (CLEAR_SIGNATURE): Remove. | |
3652 | (IS_SIGNATURE_POINTER): Remove. | |
3653 | (IS_SIGNATURE_REFERENCE): Remove. | |
3654 | (SIGNATURE_HAS_OPAQUE_TYPEDECLS): Remove. | |
3655 | (SIGTABLE_HAS_BEEN_GENERATED): Remove. | |
3656 | (CLASSTYPE_SIGNATURE): Remove. | |
3657 | (SIGNATURE_TYPE): Remove. | |
3658 | (SIGNATURE_METHOD_VEC): Remove. | |
3659 | (SIGNATURE_POINTER_TO): Remove. | |
3660 | (SIGNATURE_REFERENCE_TO): Remove. | |
3661 | (lang_decl_flags): Remove is_default_implementation. Rename | |
3662 | memfunc_pointer_to to saved_tree. | |
3663 | (IS_DEFAULT_IMPLEMENTATION): Remove. | |
3664 | (DECL_MEMFUNC_POINTER_TO): Remove. | |
3665 | (DECL_MEMFUNC_POINTING_TO): Remove. | |
3666 | (DECL_SAVED_TREE): Adjust definition. | |
3667 | (tag_types): Remove signature_type_node. | |
3668 | (SIGNATURE_FIELD_NAME): Remove. | |
3669 | (SIGNATURE_FIELD_NAME_FORMAT): Likewise. | |
3670 | (SIGNATURE_OPTR_NAME): Likewise. | |
3671 | (SIGNATURE_SPTR_NAME): Likewise. | |
3672 | (SIGNATURE_POINTER_NAME): Likewise. | |
3673 | (SIGNATURE_POINTER_NAME_FORMAT): Likewise. | |
3674 | (SIGNATURE_REFERENCE_NAME): Likewise. | |
3675 | (SIGNATURE_REFERNECE_NAME_FORMAT): Likewise. | |
3676 | (SIGTABLE_PTR_TYPE): Likewise. | |
3677 | (SIGTABLE_NAME_FORMAT): Likewise. | |
3678 | (SIGTABLE_NAME_FORMAT_LONG): Likewise. | |
3679 | (SIGTABLE_TAG_NAME): Likewise. | |
3680 | (SIGTABLE_VB_OFF_NAME): Likewise. | |
3681 | (SIGTABLE_VT_OFF_NAME): Likewise. | |
3682 | (finish_base_specifiers): Change prototype. | |
3683 | (build_signature_pointer_type): Remove. | |
3684 | (build_signature_reference_type): Remove. | |
3685 | (build_signature_pointer_constructor): Remove. | |
3686 | (build_signature_method_call): Remove. | |
3687 | (build_optr_ref): Likewise. | |
3688 | (append_signature_fields): Likewise. | |
3689 | (signature_error): Likewise. | |
3690 | * call.c (build_this): Remove signature support. | |
3691 | (build_over_call): Likewise. | |
3692 | (build_new_method_call): Likewise. | |
3693 | * class.c (add_implicitly_declared_members): Likewise. | |
3694 | (finish_struct_1): Likewise. | |
3695 | (finish_struct): Likewise. | |
3696 | * cvt.c (cp_convert_to_pointer): Likewise. | |
3697 | (convert_to_pointer_force): Likewise. | |
3698 | (ocp_convert): Likewise. | |
3699 | * decl.c (sigtable_decl_p): Remove. | |
3700 | (init_decl_processing): Remove support for signatures. | |
3701 | (cp_finish_decl): Likewise. | |
3702 | (grokdeclarator): Likewise. | |
3703 | (grokparms): Likewise. | |
3704 | (xref_tag): Likewise. | |
3705 | (start_function): Likewise. | |
3706 | (start_method): Likewise. | |
3707 | * decl2.c (finish_sigtable_vardecl): Remove. | |
3708 | (flag_handle_signatures): Remove. | |
3709 | (lang_f_options): Remove handle-signatures. | |
3710 | (grokfield): Remove support for signatures. | |
3711 | (grokbitfield): Likewise. | |
3712 | (finish_file): Likewise. | |
3713 | (reparse_absdcl_as_casts): Likewise. | |
3714 | * error.c (dump_type_real): Likewise. | |
3715 | (dump_function_decl): Likewise. | |
3716 | * friend.c (make_friend_class): Likewise. | |
3717 | * gxx.gperf: Remove __signature__, signature, __sigof__, sigof. | |
3718 | * hash.h: Regenerated. | |
3719 | * init.c (build_new_1): Remove support for signatures. | |
3720 | * lang-options.h: Remove -fhandle-signatures, | |
c8094d83 | 3721 | -fno-handle-signatures. |
4e876a0f NS |
3722 | * lex.c (init_parse): Remove support for signatures. |
3723 | (yyprint): Likewise. | |
3724 | * lex.h (rid): Remove RID_SIGNATURE. | |
3725 | * method.c (build_decl_overload_real): Remove support for | |
c8094d83 | 3726 | signatures. |
4e876a0f NS |
3727 | (hack_identifier): Likewise. |
3728 | * parse.y (base_class): Likewise. | |
3729 | (base_class.1): Likewise. | |
3730 | (access_specifier): Likewise. | |
3731 | * search.c (lookup_member): Likewise. | |
3732 | * semantics.c (finish_qualified_object_call_expr): Likewise. | |
3733 | (finish_template_type_parm): Likewise. | |
3734 | (begin_class_definition): Likewise. | |
3735 | (finish_base_specifier): Likewise. | |
3736 | * sig.c: Remove. | |
3737 | * tree.c (build_cplus_method_type): Remove support for signatures. | |
3738 | * typeck.c (require_complete_type): Likewise. | |
3739 | (c_sizeof): Likewise. | |
3740 | (c_alignof): Likewise. | |
3741 | (build_object_ref): Likewise. | |
3742 | (build_component_ref): Likewise. | |
3743 | (build_indirect_ref): Likewise. | |
3744 | (build_c_cast): Likewise. | |
3745 | (build_modify_expr): Likewise. | |
3746 | (convert_for_initialization): Likewise. | |
3747 | * typeck2.c (signature_error): Remove. | |
3748 | (store_init_value): Remove support for signatures. | |
3749 | (digest_init): Likewise. | |
3750 | (build_x_arrow): Likewise. | |
3751 | (build_functional_cast): Likewise. | |
3752 | * xref.c (GNU_xref_decl): Likewise. | |
c8094d83 | 3753 | |
719bb4e3 | 3754 | 1999-08-10 Martin v. Löwis <martin@mira.isdn.cs.tu-berlin.de> |
4e876a0f NS |
3755 | |
3756 | * lex.c (do_identifier): Remove unnecessary lookup of class field. | |
3757 | ||
719bb4e3 | 3758 | 1999-08-09 Martin v. Löwis <martin@mira.isdn.cs.tu-berlin.de> |
4e876a0f NS |
3759 | |
3760 | * decl2.c (set_decl_namespace): Do not complain about non-matching | |
3761 | decls if processing a template. | |
3762 | ||
3763 | 1999-08-09 Mark Mitchell <mark@codesourcery.com> | |
3764 | ||
3765 | * decl.c (build_ptrmemfunc_type): Handle qualified | |
3766 | pointer-to-member types here. | |
3767 | * tree.c (cp_build_qualified_type_real): Simplify handling here. | |
3768 | ||
3769 | 1999-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
3770 | ||
3771 | * lex.c (lang_identify): Likewise. | |
3772 | ||
3773 | 1999-08-09 Bernd Schmidt <bernds@cygnus.co.uk> | |
3774 | ||
3775 | * Makefile.in: Update dependencies. | |
3776 | * class.c (finish_struct_1): Don't initialize DECL_SAVED_INSNS with | |
3777 | NULL_RTX. | |
3778 | * decl.c: Include "function.h" | |
3779 | (cleanup_label, return_label): Delete declarations. | |
3780 | (store_parm_decls): Don't initialize DECL_SAVED_INSNS with NULL_RTX. | |
3781 | (finish_function): Rename last_parm_insn variable to | |
3782 | fn_last_parm_insn. Don't compare DECL_SAVED_INSNS to NULL_RTX. | |
3783 | * decl2.c: Include "function.h". | |
3784 | (rtl_expr_chain): Delete declaration. | |
3785 | * method.c: Include "function.h" | |
3786 | * tree.c (build_vbase_pointer_fields): Don't initialize | |
3787 | DECL_SAVED_INSNS with NULL_RTX. | |
3788 | * typeck.c: Include "function.h" | |
3789 | ||
3790 | 1999-08-09 Jason Merrill <jason@yorick.cygnus.com> | |
3791 | ||
3792 | * semantics.c (begin_function_try_block, finish_function_try_block, | |
3793 | finish_function_handler_sequence): New fns. | |
3794 | * parse.y (function_try_block): Use them. | |
3795 | * pt.c (instantiate_decl): Likewise. | |
3796 | ||
3797 | * cp-tree.h: Declare in_function_try_handler. | |
3798 | * decl.c: Define it. | |
3799 | (start_function): Clear it. | |
3800 | (struct cp_function, push_cp_function_context): Save it. | |
3801 | (pop_cp_function_context): Restore it. | |
3802 | * parse.y (function_try_block): Set and clear it. | |
3803 | * except.c (expand_end_catch_block): Rethrow if we reach the end | |
3804 | of a function-try-block handler in a ctor or dtor. | |
3805 | * typeck.c (c_expand_return): Complain about returning from a | |
3806 | function-try-block handler of a ctor. | |
3807 | ||
3808 | * parse.y (function_try_block): Call end_protect_partials | |
3809 | before expand_start_all_catch. | |
3810 | ||
3811 | 1999-08-08 Jason Merrill <jason@yorick.cygnus.com> | |
3812 | ||
3813 | * decl.c (struct binding_level): Add eh_region field. | |
3814 | (push_binding_level): Set it. | |
3815 | (define_label): Complain about jumping into an EH block. | |
3816 | ||
3817 | * ptree.c (print_lang_type): Print the real type of a PMF. | |
3818 | Print what exceptions a fn type throws. | |
3819 | ||
3820 | 1999-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
3821 | ||
3822 | * class.c (count_fields, add_fields_to_vec): Add static prototype. | |
3823 | ||
3824 | * cp-tree.h (opname_tab, assignop_tab, operator_name_string, | |
3825 | get_id_2, composite_pointer_type, dump_node_to_file): Constify a | |
3826 | char*. | |
3827 | ||
3828 | * decl.c (named_label_list, cp_finish_decl, grokdeclarator): | |
3829 | Constify a char*. | |
3830 | ||
3831 | * decl2.c (finish_static_data_member_decl, grokfield): Constify a | |
3832 | char*. | |
3833 | ||
3834 | * dump.c (queue_and_dump_index, dump_int, dump_string, | |
3835 | dump_string_field, dequeue_and_dump, dump_node_to_file): Constify | |
3836 | a char*. | |
3837 | (dump_stmt): Add static prototype. | |
3838 | ||
3839 | * errfn.c (cp_thing): Constify a char*. | |
3840 | ||
3841 | * error.c (dump_unary_op, dump_binary_op, aggr_variety, | |
3842 | dump_aggr_type, dump_global_iord, dump_decl, dump_function_name, | |
3843 | dump_expr): Constify a char*. | |
3844 | ||
3845 | * lex.c (extend_token_buffer_to, pragma_getc, pragma_ungetc, | |
3846 | read_line_number): Add static prototype. | |
3847 | (opname_tab, assignop_tab, operator_name_string): Constify a char*. | |
3848 | (real_yylex): Move label `letter' into the scope where it is used. | |
3849 | ||
3850 | * method.c (build_mangled_template_parm_index, build_overload_int, | |
3851 | build_decl_overload_real, get_id_2): Constify a char*. | |
3852 | ||
3853 | * search.c (check_final_overrider): Make static. | |
3854 | ||
3855 | * typeck.c (composite_pointer_type): Constify a char*. | |
3856 | ||
3857 | 1999-08-06 Jason Merrill <jason@yorick.cygnus.com> | |
3858 | ||
3859 | * pt.c (maybe_get_template_decl_from_type_decl): Make sure that | |
3860 | we're looking at a class. | |
3861 | ||
3862 | * decl.c (lookup_name_real): Set the complain flag if we're | |
3863 | looking for a namespace member. | |
3864 | ||
3865 | * lex.c (real_yylex): We can have a number with no digits. | |
3866 | ||
3867 | * cvt.c (cp_convert_to_pointer): Don't force pmf conversions. | |
3868 | ||
3869 | * search.c (binfo_from_vbase): New fn. | |
3870 | * cp-tree.h: Declare it. | |
3871 | * cvt.c (cp_convert_to_pointer): Use it to diagnose conversion | |
c8094d83 | 3872 | from pointer to member of virtual base. |
4e876a0f NS |
3873 | * typeck.c (get_delta_difference): Likewise. |
3874 | ||
3875 | 1999-08-06 Alexandre Oliva <oliva@dcc.unicamp.br> | |
3876 | ||
3877 | * pt.c (tsubst): Use build_index_type to build in-template array | |
3878 | index type. Fixes g++.oliva/dwarf1.C. | |
3879 | * decl.c (grokdeclarator): Likewise, just for consistency, as it | |
3880 | doesn't seem to trigger the bug without it. | |
3881 | ||
3882 | 1999-08-06 Jason Merrill <jason@yorick.cygnus.com> | |
3883 | ||
3884 | * typeck2.c (add_exception_specifier): Use complete_type. | |
3885 | ||
3886 | 1999-08-06 Mark Mitchell <mark@codesourcery.com> | |
3887 | ||
3888 | * error.c (dump_expr): Handle EXACT_DIV_EXPR. | |
3889 | (dump_binary_op): Bulletproof. | |
3890 | * lex.c (init_parse): Set opname_tab[EXACT_DIV_EXPR]. | |
3891 | * tree.c (search_tree): Don't enumerate all the nodes of classes | |
3892 | `1', `2', and `<'; handle them generically. Don't be sorry about | |
3893 | "unrecognized tree codes"; just abort. | |
3894 | (no_linkage_check): Don't do linkage checks for templates. | |
c8094d83 | 3895 | |
4e876a0f NS |
3896 | * tree.c (cp_build_qualified_type_real): Handle |
3897 | pointer-to-member-function types correctly. | |
3898 | ||
3899 | 1999-08-05 Jason Merrill <jason@yorick.cygnus.com> | |
3900 | ||
c8094d83 | 3901 | * decl.c (pushdecl): Only give an error for shadowing a parm |
4e876a0f NS |
3902 | from *this* function. |
3903 | ||
3904 | Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) | |
3905 | ||
3906 | * typeck2.c: Update URLs and mail addresses. | |
3907 | ||
3908 | 1999-08-04 Nathan Sidwell <nathan@acm.org> | |
3909 | ||
3910 | * cp-tree.h (empty_except_spec): New global var. | |
3911 | (compexcepttypes): Remove prototype. | |
3912 | (comp_except_specs): Prototype new global function. | |
3913 | (add_exception_specifier): Prototype new global function. | |
3914 | * decl.c (empty_except_spec): Define new global var. | |
3915 | (duplicate_decls): Use comp_except_specs, reword error message. | |
3916 | (init_decl_processing): Initialize empty_except_spec. | |
3917 | Adjust build_exception_variant calls. | |
3918 | * parse.y (exception_specification_opt): Use empty_except_spec. | |
3919 | (ansi_raise_identifier): Call check_for_new_type. | |
3920 | (ansi_raise_identifiers): Use add_exception_specifier. | |
3921 | * pt.c (tsubst): Use add_exception_specifier to build exception | |
3922 | specifier. | |
3923 | * search.c (check_final_overrider): New static function, broken | |
3924 | out of get_matching_virtual. Check throw specifiers, reword | |
3925 | diagnostics. | |
3926 | (get_matching_virtual): Use check_final_overrider. | |
3927 | * tree.c (build_exception_variant): Use comp_except_specs. | |
3928 | * typeck.c (compexcepttypes): Remove. | |
3929 | (comp_except_types): New static function, helper for | |
3930 | comp_except_specs. Compare two types as exception specifiers. | |
3931 | (comp_except_specs): New global function, compare two exception | |
3932 | specifiers. | |
3933 | (comptypes): Adjust for comp_except_specs. | |
3934 | * typeck2.c (add_exception_specifier): New global function. | |
c8094d83 | 3935 | |
4e876a0f NS |
3936 | * class.c (check_for_override): Reword error message. |
3937 | ||
3938 | 1999-08-03 Nathan Sidwell <nathan@acm.org> | |
3939 | ||
3940 | * call.c (convert_arg_to_ellipsis): Use pod_type_p. | |
3941 | * cp-tree.h (struct lang_type): Added non_pod_class flag. | |
3942 | (CLASSTYPE_NON_POD_P): New macro to access it. | |
3943 | * class.c (finish_struct_1): Determine non-PODness. | |
3944 | Check for arrays of pointers (-Weffc++). | |
3945 | Remove array inspection duplicated code. | |
3946 | * tree.c (pod_type_p): Detect non-pod non-aggregate types. | |
3947 | Use CLASSTYPE_NON_POD_P. | |
3948 | ||
3949 | 1999-08-03 Nathan Sidwell <nathan@acm.org> | |
3950 | ||
3951 | * class.c (duplicate_tag_error): Preserve template information. | |
3952 | ||
3953 | 1999-08-03 Nathan Sidwell <nathan@acm.org> | |
3954 | ||
3955 | * decl.c (start_enum): Show location of previous definition. | |
3956 | * parse.y (enumlist_opt): New reduction. | |
3957 | (structsp): Simplify enum rules to use enumlist_opt. | |
3958 | ||
3959 | 1999-08-03 Jason Merrill <jason@yorick.cygnus.com> | |
3960 | ||
3961 | * lex.c (yyprint): Handle PFUNCNAME. | |
3962 | ||
3963 | * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Only | |
3964 | build_expr_from_tree on the args of a TEMPLATE_ID_EXPR. | |
3965 | ||
3966 | 1999-08-03 Mumit Khan <khan@xraylith.wisc.edu> | |
3967 | ||
3968 | * decl.c (start_decl): Set attributes before duplicate_decls call. | |
3969 | ||
3970 | 1999-08-02 Mark Mitchell <mark@codesourcery.com> | |
3971 | ||
3972 | * Make-lang.in (CXX_SRCS): Add dump.c. | |
3973 | * Makefile.in (CXX_OBJS): Add dump.o. | |
3974 | (dump.o): New target. | |
3975 | * cp-tree.h (DECL_CONV_FN_P): Document. | |
3976 | (DECL_OVERLOADED_OPERATOR_P): New function. | |
3977 | (TYPE_PTRMEM_CLASS_TYPE): New macro. | |
3978 | (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. | |
3979 | (PTRMEM_CST_CLASS): Use TYPE_PTRMEM_CLASS_TYPE. | |
3980 | (ASM_VOLATILE_P): New macro. | |
3981 | (STMT_LINENO): Likewise. | |
3982 | (cp_namespace_decls): New function. | |
3983 | (dump_node_to_file): New function. | |
3984 | * decl.c (cp_namespace_decls): New function. | |
3985 | (walk_namespaces_r): Use it. | |
3986 | (wrapup_globals_for_namespace): Likewise. | |
3987 | * decl2.c (flag_dump_translation_unit): New variable. | |
3988 | (lang_decode_option): Handle -fdump-translation-unit. | |
3989 | (finish_file): If flag_dump_translation_unit is set, dump the | |
3990 | translation unit. | |
3991 | * dump.c: New file. | |
3992 | * lang-options.h: Add -fdump-translation-unit. | |
3993 | * pt.c (tsubst_template_parms): Robustify. | |
3994 | (tsubst_decl): Use DECL_OVERLOADED_OPERATOR_P. | |
3995 | (tsubst_expr): Use STMT_LINENO. | |
3996 | * semantics.c (finish_asm_stmt): Eliminate duplicate code. Check | |
3997 | for invalid cv-qualifiers even while building templates. | |
c8094d83 | 3998 | |
4e876a0f NS |
3999 | 1999-08-02 Richard Henderson <rth@cygnus.com> |
4000 | ||
4001 | * call.c: Include defaults.h instead of expr.h. | |
4002 | * decl.c: Likewise. | |
4003 | * pt.c: Likewise. | |
4004 | * typeck.c: Include defaults.h. | |
4005 | ||
4006 | 1999-08-02 Mark Mitchell <mark@codesourcery.com> | |
4007 | ||
4008 | * lex.c (errorcount, sorrycount): Don't declare. | |
4009 | * repo.c (errorcount, sorrycount): Likewise. | |
4010 | * typeck2.c (errorcount, sorrycount): Likewise. | |
4011 | ||
4012 | 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz> | |
4013 | ||
4014 | * call.c (convert_default_arg, build_over_call): Change all uses of | |
4015 | PROMOTE_PROTOTYPES, so that it tests it as a C expression. | |
4016 | Ensure expr.h is included. | |
4017 | * decl.c (grokparams): Ditto. | |
4018 | * pt.c (tsubst_decl): Ditto. | |
4019 | * typeck.c (convert_arguments): Ditto. | |
4020 | ||
4021 | 1999-08-02 Jason Merrill <jason@yorick.cygnus.com> | |
4022 | ||
4023 | * class.c (mark_overriders): Fix order of args to overrides. | |
4024 | (warn_hidden): Likewise. Fix for having virtual and non-virtual | |
4025 | functions with the same name. | |
4026 | ||
4027 | 1999-08-02 Richard Henderson <rth@cygnus.com> | |
4028 | ||
4029 | * cp-tree.h (TYPE_PTRMEMFUNC_P): Check TYPE_LANG_SPECIFIC non-null. | |
4030 | ||
4031 | 1999-08-01 Mark Mitchell <mark@codesourcery.com> | |
4032 | ||
4033 | * call.c (build_conditional_expr): Fix typo in comment. | |
4034 | ||
4035 | 1999-08-01 Bernd Schmidt <bernds@cygnus.co.uk> | |
4036 | ||
4037 | * decl.c (finish_stmt): Don't declare and test cond_stack, loop_stack, | |
4038 | case_stack; use in_control_zone_p. | |
4039 | * typeck.c (c_expand_return): Likewise. | |
4040 | ||
4041 | 1999-07-31 Bernd Schmidt <bernds@cygnus.co.uk> | |
4042 | ||
4043 | * except.c (catch_clauses): Delete declaration. | |
4044 | ||
4045 | 1999-07-30 Mark Mitchell <mark@codesourcery.com> | |
4046 | ||
4047 | * call.c (build_conditional_expr): Call convert_from_reference to | |
4048 | avoid reference/non-reference type confusion. Fix typo. | |
4049 | ||
4050 | 1999-07-30 Richard Henderson <rth@cygnus.com> | |
4051 | ||
4052 | * typeck2.c (initializer_constant_valid_p): Moved to c-common.c. | |
4053 | * cp-tree.h (initializer_constant_valid_p): Remove. | |
4054 | ||
4055 | 1999-07-28 Mark Mitchell <mark@codesourcery.com> | |
4056 | ||
4057 | * call.c (conditional_conversion): Don't build BASE_CONVs for | |
4058 | conversions between things that have the same type. | |
4059 | (build_conditional_expr): Tweak. | |
4060 | (convert_like): Some BASE_CONVs really do require the generation | |
4061 | of code. | |
c8094d83 | 4062 | |
4e876a0f NS |
4063 | * init.c (perform_member_init): Don't go through build_modify_expr |
4064 | for simple initializations. | |
4065 | ||
4066 | 1999-07-27 Jason Merrill <jason@yorick.cygnus.com> | |
4067 | ||
4068 | * cp-tree.h (DECL_VIRTUAL_CONTEXT): New macro. | |
4069 | * typeck.c (expand_ptrmemfunc_cst): Calculate delta correctly for | |
4070 | virtual functions and MI. Simplify. | |
4071 | ||
4072 | * method.c: Remove prototype for largest_union_member. | |
4073 | * pt.c (determine_specialization): Fix uninitialized warning. | |
4074 | * lex.c (real_yylex): Likewise. | |
4075 | ||
4076 | 1999-07-27 Mark Mitchell <mark@codesourcery.com> | |
4077 | ||
4078 | * class.c (override_one_vtable): Adjust the use of BINFO_VIRTUALS | |
4079 | here too. | |
4080 | ||
4081 | * cp-tree.h (BINFO_VIRTUALS): Document new format. | |
4082 | * class.c (modify_one_vtable): Change prototype accordingly. | |
4083 | (modify_all_vtables): Likewise. | |
4084 | (modify_all_direct_vtables): Likewise. | |
4085 | (modify_all_indirect_vtables): Likewise. | |
4086 | (build_vtable_entry_for_fn): New function. | |
4087 | (set_rtti_entry): Simplify for new BINFO_VIRTUALS format. | |
4088 | (modify_vtable_entry): Likewise. | |
4089 | (add_virtual_function): Likewise. | |
4090 | (build_vtbl_initializer): New function. | |
4091 | (finish_vtbls): Simplify for new BINFO_VIRTUALS format. | |
4092 | (fixup_vtable_deltas1): Likewise. | |
4093 | (fixup_vtable_deltas): Likewise. | |
4094 | (override_one_vtable): Likewise. | |
4095 | (finish_struct_1): Likewise. | |
4096 | ||
4097 | * error.c (dump_expr): Likewise. | |
4098 | * search.c (get_abstract_virtuals_1): Likewise. | |
4099 | (get_abstract_virtuals): Likewise. | |
4100 | (expand_upcast_fixups): Likewise. | |
4101 | * tree.c (debug_binfo): Likewise. | |
4102 | * decl2.c (mark_vtable_entries): Don't bash abstract virtuals to | |
4103 | __pure_virtual here. | |
c8094d83 | 4104 | |
4e876a0f NS |
4105 | 1999-07-26 Mark Mitchell <mark@codesourcery.com> |
4106 | ||
4107 | * tree.c (build_cplus_new): Adjust call to abstract_virtuals_error | |
4108 | as per 1999-07-26 change. | |
4109 | ||
4110 | * typeck.c (c_sizeof): Don't allow non-static data members. | |
4111 | (expr_sizeof): Likewise. | |
4112 | ||
4113 | 1999-07-26 Jason Merrill <jason@yorick.cygnus.com> | |
4114 | ||
4115 | * input.c (feed_input): Only touch lineno and input_filename | |
4116 | if !USE_CPPLIB. Save the old values before setting the new ones. | |
4117 | ||
4118 | * input.c (feed_input): Add file, line parms. | |
4119 | * lex.c (begin_definition_of_inclass_inline, feed_defarg): Adjust. | |
4120 | (real_yylex): Check linemode before input_redirected(). | |
4121 | ||
4122 | * typeck.c (c_expand_return): Downgrade pedwarn about returning NULL | |
4123 | from op new to warning. | |
4124 | ||
4125 | 1999-07-26 Mark Mitchell <mark@codesourcery.com> | |
4126 | ||
4127 | * cp-tree.h (ncp_convert): Rename to perform_implicit_conversion. | |
4128 | * call.c: All uses changed. | |
4129 | * typeck.c: Likewise. | |
4130 | ||
4131 | 1999-07-26 Nathan Sidwell <nathan@acm.org> | |
4132 | ||
4133 | * exception.cc (__cplus_type_matcher): Match __eh_matcher | |
4134 | prototype. | |
4135 | ||
4136 | 1999-07-26 Mark Mitchell <mark@codesourcery.com> | |
4137 | ||
4138 | * cp-tree.h (CP_INTEGRAL_TYPE_P): New macro. | |
4139 | (ARITHMETIC_TYPE_P): Adjust definition for standard conformance. | |
4140 | (strip_top_quals): Declare. | |
4141 | (ncp_convert): Likewise. | |
4142 | (type_after_usual_arithmetic_conversions): Likewise. | |
4143 | (composite_pointer_type): Likewise. | |
4144 | * call.c (strip_top_quals): Don't make it static. | |
4145 | (promoted_arithmetic_type_p): New function. | |
4146 | (conditional_conversion): Likewise. | |
4147 | (null_ptr_cst_p): Allow `false' as a NULL pointer constant. | |
4148 | (standard_conversion): Use same_type_p. Don't build BASE_CONVs | |
4149 | for converting a type to itself. | |
4150 | (reference_binding): Honor LOOKUP_NO_TEMP_BIND. | |
4151 | (implicit_conversion): Make sure the from and to types are | |
4152 | complete. | |
4153 | (add_builtin_candidate): Correct handling of ?: operator. | |
4154 | (add_builtin_candidates): Improve documentation. | |
4155 | (build_conditional_expr): New function. | |
4156 | (can_convert): Implement in terms of can_convert_arg. | |
4157 | (ncp_convert): New function. | |
4158 | * typeck.c (type_after_usual_arithmetic_conversions): New | |
4159 | function, split out from common_type. | |
4160 | (composite_pointer_type): New function, split out from | |
4161 | build_conditional_expr. | |
4162 | (common_type): Use type_after_usual_arithmetic_conversions. | |
4163 | Remove redundant attribute merging. | |
4164 | (comptypes): Tidy. Handle COMPLEX_TYPE. | |
4165 | (build_binary_op_nodefault): Use null_ptr_cst_p. | |
4166 | (build_conditional_expr): Remove. | |
4167 | (convert_for_assignment): Use new conversion functions. | |
c8094d83 | 4168 | |
4e876a0f NS |
4169 | * cp-tree.h (abstract_virtuals_error): Change declaration. |
4170 | * typeck2.c (abstract_virtuals_error): Check to see if an error | |
4171 | occurred, and return a boolean value accordingly. | |
4172 | (build_functional_cast): Adjust accordingly. | |
4173 | * class.c (finish_struct_1): Likewise. | |
4174 | * cvt.c (ocp_convert): Likewise. | |
4175 | * decl.c (cp_finish_decl): Likewise. | |
4176 | (grokparams): Likewise. | |
4177 | (grok_op_properties): Likewise. | |
4178 | (start_function): Likewise. | |
4179 | * init.c (build_new_1): Likewise. | |
4180 | ||
4181 | * pt.c (unify): Don't get confused by pointers-to-member functions. | |
4182 | ||
4183 | * search.c (build_cplus_new): Robustify. | |
c8094d83 | 4184 | |
4e876a0f NS |
4185 | 1999-07-24 Richard Henderson <rth@cygnus.com> |
4186 | ||
4187 | * gxx.gperf (__builtin_va_arg): New. | |
4188 | * parse.y (VA_ARG): New token. | |
4189 | (unary_expr): Recognize it. | |
4190 | ||
4191 | Sun Jul 25 15:24:21 1999 Jeffrey A Law (law@cygnus.com) | |
4192 | ||
4193 | * g++FAQ.texi: Deleted per Joe Buck's request. | |
4194 | * Makefile.in: Corresponding changes. | |
4195 | ||
4196 | 1999-07-23 Jason Merrill <jason@yorick.cygnus.com> | |
4197 | ||
4198 | * lex.c: Sync with C frontend. | |
4199 | (whitespace_cr): New fn. | |
4200 | (skip_white_space): Use it. | |
4201 | (init_parse): Reorder. | |
4202 | (yyprint): Support CONSTANT. | |
4203 | (pragma_getc, pragma_ungetc): Bring back. | |
4204 | (read_line_number): Change in_system_header directly. | |
4205 | (handle_generic_pragma, handle_cp_pragma, yyerror): Move up in file. | |
4206 | (parse_float): Update to C version. | |
4207 | (yylex): Handle '$' under the letter case. | |
4208 | Remove looking_for_typename handling. | |
4209 | Support hex floating point constants. | |
4210 | Follow C's lead for choosing type of integer constants. | |
4211 | Rearrange stuff to match C frontend. | |
4212 | (yyungetc, reinit_parse_for_block, yylex): Support indent_level. | |
4213 | * spew.c (yylex): Clear looking_for_typename if we see a TYPESPEC. | |
4214 | ||
4215 | 1999-07-23 Mark Mitchell <mark@codesourcery.com> | |
4216 | ||
4217 | * call.c (reference_binding): Tweak. | |
4218 | (mayble_handle_implicit_object): Use direct_reference_binding to | |
4219 | create the right implicit conversion sequence. | |
4220 | ||
4221 | 1999-07-22 Mark Mitchell <mark@codesourcery.com> | |
4222 | ||
4223 | * pt.c (convert_nontype_argument): Don't call decl_constant_value | |
4224 | if we're converting to a reference type. | |
4225 | ||
4226 | * call.c (NEED_TEMPORARY_P): New macro. | |
4227 | (standard_conversion): Set it, for derived-to-base conversions. | |
4228 | (reference_related_p): New function. | |
4229 | (reference_compatible_p): Likewise. | |
4230 | (convert_class_to_reference): Likewise. | |
4231 | (direct_reference_binding): Likewise. | |
4232 | (reference_binding): Rework for standards-compliance. | |
4233 | (convert_like): Adjust accordingly. | |
4234 | (maybe_handle_ref_bind): Simplify; the right conversion sequences | |
4235 | are now built up in reference_binding. | |
4236 | (initialize_reference): New function. | |
4237 | * cp-tree.h (ICS_USER_FLAG): Document. | |
4238 | (ICS_THIS_FLAG): Likewise. | |
4239 | (ICS_BAD_FLAG): Likewise. | |
4240 | (NEED_TEMPORARY_P): Likewise. | |
4241 | (cp_lvalue_kind): New type. | |
4242 | (real_lvalue_p): Return it. | |
4243 | * error.c (dump_expr): Provide more accurate representation for | |
4244 | AGGR_INIT_EXPRs. | |
4245 | * init.c (expand_default_init): Do not try to perform implicit | |
4246 | conversions for a brace-enclosed initializer. | |
4247 | * search.c (lookup_conversions): Document. | |
4248 | * tree.c (lvalue_p_1): Return a cp_lvalue_kind. Calculate | |
4249 | appropriately. | |
4250 | (real_lvalue_p): Adjust accordingly. | |
4251 | (lvalue_p): Likewise. | |
4252 | (build_cplus_new): Don't allow the creation of an abstract class. | |
4253 | * typeck.c (convert_for_initialization): Use initialize_reference. | |
c8094d83 | 4254 | |
4e876a0f NS |
4255 | 1999-07-21 Gavin Romig-Koch <gavin@cygnus.com> |
4256 | ||
4257 | * lex.c (real_yylex) : Correct the test for overflow when lexing | |
4258 | integer literals. | |
4259 | ||
4260 | 1999-07-20 Jason Merrill <jason@yorick.cygnus.com> | |
4261 | ||
4262 | * decl.c (warn_extern_redeclared_static): Check DECL_ARTIFICIAL, | |
4263 | not DECL_BUILT_IN, to determine if a function is internally declared. | |
4264 | (duplicate_decls): Likewise. Improve handling of builtins. | |
4265 | (push_overloaded_decl): Remove special handling of builtins. | |
4266 | ||
4267 | * cp-tree.h (ANON_AGGR_TYPE_P): Use CLASS_TYPE_P. | |
4268 | ||
4269 | * decl.c (grokdeclarator): Pull out decl_constant_value in | |
4270 | templates, too. | |
4271 | ||
4272 | * class.c (finish_struct, finish_struct_1): Remove 'warn_anon' parm. | |
4273 | * cp-tree.h, pt.c, semantics.c: Adjust. | |
4274 | * method.c (largest_union_member): Remove. | |
4275 | ||
4276 | * lang-specs.h (c++-cpp-output): Pass -fpreprocessed. | |
4277 | ||
4278 | * lex.c (token_getch, token_put_back): New fns. | |
4279 | (real_yylex): Use them. | |
4280 | ||
4281 | * lex.c (lang_init): Generalize. | |
4282 | (lang_init_options): Tell cpplib this is C++. | |
4283 | (nextchar): Remove. Replace uses with put_back. | |
4284 | (skip_white_space): Handle linemode here. Optimize for cpplib. | |
4285 | (extend_token_buffer_to): New fn. | |
4286 | (extend_token_buffer): Use it. | |
4287 | (read_line_number, check_newline): Just deal with tokens. | |
4288 | (real_yylex): More cpplib optimizations. Simplify. Don't produce | |
4289 | EXTERN_LANG_STRING, LEFT_RIGHT or PAREN_STAR_PAREN here. | |
4290 | * spew.c (yylex): Produce LEFT_RIGHT and EXTERN_LANG_STRING. | |
4291 | * parse.y (PAREN_STAR_PAREN): Remove. | |
4292 | * input.c: Don't use the putback machinery with cpplib. | |
4293 | (sub_getch): Fold back into getch. | |
4294 | (getch): Don't handle linemode here. | |
4295 | (feed_input): Unget any text in the token buffer. | |
4296 | ||
4297 | * lex.c (set_typedecl_interface_info, set_vardecl_interface_info, | |
4298 | nextyychar, nextyylval): Remove. | |
4299 | ||
4300 | 1999-07-20 Michael Tiemann <tiemann@holodeck.cygnus.com> | |
4301 | Jason Merrill <jason@yorick.cygnus.com> | |
4302 | ||
4303 | * lex.c (indent_level): New variable. | |
4304 | (init_parse): Set cpp_token to CPP_DIRECTIVE. | |
4305 | (consume_string): Make this smart about USE_CPPLIB. | |
4306 | (yyungetc): Use put_back function. | |
4307 | (pragma_getc, pragma_ungetc): Functions deleted. | |
4308 | (check_newline): Rewrite to be intelligent about USE_CPPLIB. | |
4309 | Also, call HANDLE_PRAGMA with getch, yyungetc, not pragma_getc and | |
4310 | pragma_ungetc. | |
4311 | (real_yylex): Rewrite to be intelligent about USE_CPPLIB. | |
4312 | Also, clean up cases where we redundantly set token_buffer[0]. | |
4313 | (read_line_number): New fn. | |
4314 | * input.c (feed_input): Use integrated cpplib if USE_CPPLIB. | |
4315 | (end_input): Call cpp_pop_buffer if USE_CPPLIB. | |
4316 | (sub_getch): Conditionalize out code that's not appropriate if | |
4317 | USE_CPPLIB. | |
4318 | (put_back): Rewrite in case USE_CPPLIB is defined. | |
4319 | (input_redirected): Ditto. | |
4320 | ||
4321 | Tue Jul 20 11:24:19 1999 Bernd Schmidt <bernds@cygnus.co.uk> | |
4322 | ||
4323 | * cp-tree.h: Delete lots of declarations of tree nodes; replaced by | |
4324 | c_global_trees and accessor macros defined in c-common.h. | |
4325 | (cp_tree_index): New enumeration. | |
4326 | (cp_global_trees): Declare new array. Add accessor macros for it, and | |
4327 | delete declarations of tree nodes replaced by it. | |
4328 | (builtin_function): Delete macro, add declaration for new function. | |
4329 | Include c-common.h. | |
4330 | * decl.c: Delete definitions for tree nodes that were replaced by | |
4331 | cp_global_trees and c_global_trees. | |
4332 | (init_decl_processing): Call c_common_nodes_and_builtins; delete code | |
4333 | to generate the common builtins here. | |
4334 | (builtin_function): New function. | |
4335 | * decl2.c (abort_fndecl): Delete declaration. | |
4336 | * except.c (expand_builtin_return_address): Delete declaration. | |
4337 | (builtin_return_address_fndecl): Delete variable. | |
4338 | (const_ptr_type_node): Delete declaration. | |
4339 | * lex.c (cons_up_default_function): Delete declaration of | |
4340 | void_list_node. | |
4341 | * parse.y (void_list_node): Delete declaration. | |
4342 | * rtti.c (type_info_type_node, tinfo_fn_id, tinfo_fn_type): | |
4343 | Delete variables. | |
4344 | (const_string_type_node): Delete declaration. | |
4345 | * search.c (abort_fndecl): Delete declaration. | |
4346 | * Makefile.in: Update dependencies. | |
4347 | ||
4348 | 1999-07-19 Mark Mitchell <mark@codesourcery.com> | |
4349 | ||
4350 | * pt.c (check_default_tmpl_args): Move test for missing default | |
4351 | arguments here, from ... | |
4352 | (end_template_parm_list): Here. | |
4353 | ||
4354 | 1999-07-18 Mark Mitchell <mark@codesourcery.com> | |
4355 | ||
4356 | * decl.c (lookup_nested_type): Remove. | |
4357 | (pushtag): Don't call it. | |
4358 | ||
4359 | Sat Jul 17 23:51:30 1999 Jeffrey A Law (law@cygnus.com) | |
4360 | ||
4361 | * Makefile.in (INTERFACE): Bump to 2. | |
4362 | ||
4363 | 1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br> | |
c8094d83 | 4364 | |
4e876a0f NS |
4365 | * typeck2.c (my_friendly_abort): Updated URL with bug reporting |
4366 | instructions to gcc.gnu.org. Removed e-mail address. | |
4367 | ||
4368 | 1999-07-17 Mark Mitchell <mark@codesourcery.com> | |
4369 | ||
4370 | * pt.c (determine_specialization): Tighten error-checking. | |
4371 | (end_template_parm_list): Likewise. | |
4372 | ||
4373 | 1999-07-14 Mark Mitchell <mark@codesourcery.com> | |
4374 | ||
4375 | * pt.c (check_default_tmpl_args): Handle friends defined in the | |
4376 | class just like member functions defined in the class. | |
4377 | ||
4378 | 1999-07-09 Michael Tiemann <tiemann@happy.cygnus.com> | |
4379 | Jason Merrill <jason@yorick.cygnus.com> | |
4380 | ||
4381 | * cp-tree.h (struct lang_decl): Added field for storing sorted | |
4382 | FIELD_DECLs (used in TYPE_DECLs). | |
4383 | (DECL_PENDING_INLINE_INFO): Adjusted to use 'u' union. | |
4384 | (DECL_SORTED_FIELDS): New macro. | |
4385 | * class.c (method_name_cmp): New function. | |
4386 | (finish_struct_methods): Modified to support sorting and searching | |
4387 | methods. | |
c8094d83 | 4388 | (finish_struct_anon): Changed code in inner loop to use ELT rather |
4e876a0f NS |
4389 | than UELT (which required an extra indirection for every reference). |
4390 | (field_decl_cmp): New function to support sorting FIELD_DECLs. | |
4391 | (finish_struct_1): Sort fields. | |
4392 | * search.c (lookup_field_1): Use DECL_SORTED_FIELDS if we have them. | |
4393 | (lookup_fnfields_1): Search sorted methods in METHOD_VEC. | |
4394 | Also, switch to using array indexing rather than a changing pointer. | |
4395 | * ptree.c (print_lang_decl): Handle TYPE_DECLs that have | |
4396 | DECL_SORTED_FIELDS. | |
4397 | ||
4398 | 1999-07-09 Jason Merrill <jason@yorick.cygnus.com> | |
4399 | ||
4400 | * decl2.c (reparse_absdcl_as_casts): Don't warn about old-style | |
4401 | casts in system headers or extern "C" blocks. | |
4402 | ||
4403 | * pt.c (do_decl_instantiation): Downgrade duplicate instantiation | |
4404 | errors to pedwarn. | |
4405 | ||
4406 | 1999-07-09 Michael Tiemann <tiemann@happy.cygnus.com> | |
4407 | ||
4408 | * decl2.c (write_virtuals): Deleted declaration. | |
4409 | * cp-tree.h (write_virtuals): Deleted extern declaration. | |
4410 | * class.c (finish_struct_1): Removed #if 0'd code that mentions | |
4411 | write_virtuals. | |
4412 | * semantics.c (begin_class_definition): Rewrite code to not depend | |
4413 | on write_virtuals. | |
4414 | ||
4415 | * lex.c (cp_pragma_interface): New function. | |
4416 | (cp_pragma_implementation): Likewise. | |
4417 | (handle_cp_pragma): Call them. | |
4418 | ||
4419 | * typeck.c (comptypes): Simplify C code in look_hard. | |
4420 | ||
4421 | * xref.c (PALLOC): Use xcalloc, not calloc. | |
4422 | (SALLOC): Use xmalloc, not malloc. | |
4423 | ||
4424 | * rtti.c (synthesize_tinfo_fn): Add missing call to pop_momentary. | |
4425 | ||
4426 | * search.c (note_debug_info_needed): Don't search if WRITE_SYMBOLS | |
4427 | is NO_DEBUG. | |
4428 | ||
4429 | * decl.c (duplicate_decls): If a redeclaration doesn't match the | |
4430 | initial declaration, then don't save the inline info and by all | |
4431 | means don't mark the function as a builtin function. | |
4432 | ||
c8094d83 | 4433 | * decl.c (lookup_name_real): Set NONCLASS to 1 if |
4e876a0f NS |
4434 | CURRENT_CLASS_TYPE is 0. |
4435 | ||
4436 | * class.c (duplicate_tag_error): Set TYPE_NONCOPIED_PARTS to | |
4437 | NULL_TREE. | |
4438 | ||
4439 | * ptree.c (print_lang_type): Added vtable-needs-writing. | |
4440 | ||
4441 | Wed Jul 7 01:26:47 1999 Alexandre Oliva <oliva@dcc.unicamp.br> | |
4442 | ||
4443 | * decl2.c (mark_vtable_entries): Fix check for rtti offset. | |
4444 | ||
4445 | 1999-07-06 Gavin Romig-Koch <gavin@cygnus.com> | |
4446 | ||
4447 | * typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : | |
4448 | Merged into c-common. | |
4449 | ||
4450 | 1999-07-05 Dave Brolley <brolley@cygnus.com> | |
4451 | ||
4452 | * lex.c (errorcount): Declare it. | |
4453 | (finish_parse): Update errorcount for when using CPPLIB. | |
4454 | ||
4455 | 1999-07-05 Mark Mitchell <mark@codesourcery.com> | |
4456 | ||
4457 | * cp-tree.h (IS_AGGR_TYPE): Include instantiated template template | |
4458 | parameters. | |
4459 | (IMPLICIT_TYPENAME_TYPE_DECL_P): New macro. | |
4460 | * decl.c (push_class_binding): Use it. | |
4461 | (lookup_name_real): Likewise. | |
4462 | ||
4463 | 1999-07-02 Gavin Romig-Koch <gavin@cygnus.com> | |
4464 | ||
4465 | * cp-tree.h (widest_integer_literal_type_node, | |
4466 | widest_unsigned_literal_type) : New. | |
4467 | * decl.c (widest_integer_literal_type_node, | |
4468 | widest_unsigned_literal_type) : New. | |
4469 | (init_decl_processing): Handle/use the two new types. | |
4470 | * lex.c (real_yylex): Same. | |
4471 | * typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : | |
c8094d83 | 4472 | Same. |
4e876a0f NS |
4473 | |
4474 | 1999-07-01 Mark Mitchell <mark@codesourcery.com> | |
4475 | ||
4476 | * decl.c (grokdeclarator): Don't give names "for linkage purposes" | |
4477 | to anonymous cv-qualified types. | |
4478 | ||
4479 | 1999-07-01 Gavin Romig-Koch <gavin@cygnus.com> | |
4480 | ||
4481 | * lex.c (real_yylex) : Change integer literal overflow handling to | |
4482 | be like c-lex.c. | |
4483 | ||
4484 | * lex.c (real_yylex): Improve 'integer constant out of range' messages. | |
4485 | ||
4486 | 1999-06-28 Richard Henderson <rth@cygnus.com> | |
4487 | ||
4488 | * decl.c (cp_finish_decl): Fix typo in cp_warning_at call. | |
4489 | ||
4490 | 1999-06-28 Jason Merrill <jason@yorick.cygnus.com> | |
4491 | ||
4492 | * error.c (dump_type_real): Handle TREE_LIST again. | |
4493 | ||
c8094d83 | 4494 | * typeck.c (comp_target_parms): Don't complain about |
4e876a0f NS |
4495 | converting from () to (...) if !flag_strict_prototype. |
4496 | ||
4497 | * decl.c (grokdeclarator): Update the names of all variants when | |
4498 | de-anonymizing. | |
4499 | ||
4500 | 1999-06-21 Mark Mitchell <mark@codesourcery.com> | |
4501 | ||
4502 | * init.c (expand_aggr_vbase_init): Rename to | |
c8094d83 | 4503 | construct_virtual_bases. Conditionalize construction here, |
4e876a0f NS |
4504 | rather than ... |
4505 | (emit_base_init): Here. | |
4506 | ||
4507 | 1999-06-19 Mark Mitchell <mark@codesourcery.com> | |
4508 | ||
4509 | * semantics.c (finish_asm_stmt): Apply decay conversions to | |
4510 | input operands. | |
4511 | ||
4512 | * decl.c (expand_static_init): When building an anonymous function | |
4513 | for use with atexit, compute its body before and after entering | |
4514 | the function. | |
4515 | ||
4516 | * error.c (dump_expr): Handle BIND_EXPR, LOOP_EXPR, and | |
4517 | EXIT_EXPR. | |
c8094d83 | 4518 | |
4e876a0f NS |
4519 | 1999-06-18 Mark Mitchell <mark@codesourcery.com> |
4520 | ||
4521 | * init.c (expand_aggr_vbase_init): Add flag parameter. | |
4522 | (build_partial_cleanup_for): Remove, inlining into .. | |
4523 | (expand_cleanup_for_base): ... here. Take flag parameter. | |
4524 | (emit_base_init): Pass the in_chrg parameter to | |
c8094d83 | 4525 | emit_aggr_vbase_init. |
4e876a0f | 4526 | (emit_aggr_vbase_init): Pass it to expand_cleanup_for_base. |
c8094d83 | 4527 | |
4e876a0f NS |
4528 | 1999-06-16 Mark Mitchell <mark@codesourcery.com> |
4529 | ||
4530 | * decl2.c (import_export_decl): Use same_type_p, rather than | |
4531 | relying on pointer-equality for types. | |
4532 | ||
4533 | * method.c (do_build_copy_constructor): Simplify. | |
4534 | ||
4535 | * call.c (build_method_call): Remove bogus code for two-argument | |
4536 | delete. | |
4537 | * init.c (build_new_1): Expand on comment, and remove dead code. | |
4538 | ||
4539 | * init.c (expand_cleanup_for_base): New function, split out | |
4540 | from ... | |
4541 | (emit_base_init): Here. | |
4542 | (expand_aggr_vbase_init): Use it. | |
4543 | ||
4544 | 1999-06-15 Mark Mitchell <mark@codesourcery.com> | |
4545 | ||
4546 | * cp-tree.h (class_cache_firstobj): Declare. | |
4547 | (maybe_push_cache_obstack): Rename to push_cache_obstack. | |
4548 | * class.c (permanent_obstack): Remove declaration. | |
4549 | (class_cache_firstobj): Make it global. | |
4550 | (add_method): Don't use permanent_obstack directly. | |
4551 | (pushclass): Only free the class_cache_obstack if we know how far | |
4552 | back to free it. | |
4553 | (maybe_push_cache_obstack): Rename to push_cache_obstack. | |
4554 | * decl.c: Remove dead comment. | |
4555 | (saved_scope): Add class_cache_firstobj. | |
4556 | (push_to_top_level): Save it. | |
4557 | (pop_from_top_level): Restore it. | |
4558 | (push_class_level_binding): Use push_cache_obstack, not | |
4559 | maybe_push_cache_obstack. | |
4560 | * search.c (push_class_decls): Likewise. | |
c8094d83 | 4561 | |
719bb4e3 | 4562 | 1999-06-14 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
4563 | |
4564 | * pt.c (tsubst_friend_function): Push into namespace of friend | |
4565 | function before pushdecl'ing it. | |
4566 | ||
4567 | 1999-06-14 Nathan Sidwell <nathan@acm.org> | |
4568 | ||
4569 | * call.c (build_new_op): Remove REF_BIND from all operands. | |
4570 | ||
4571 | 1999-06-13 Alexandre Oliva <oliva@dcc.unicamp.br> | |
4572 | ||
4573 | * init.c (build_new_1): Look up operator delete even if there was | |
4574 | no explicit new placement. | |
4575 | ||
4576 | 1999-06-08 Nathan Sidwell <nathan@acm.org> | |
4577 | ||
4578 | * except.c (complete_ptr_ref_or_void_ptr_p): New function, broken out | |
4579 | of ... | |
4580 | (build_throw): ... here. Call it. | |
4581 | (process_start_catch_block): Call it. | |
4582 | ||
4583 | 1999-06-07 Mark Mitchell <mark@codesourcery.com> | |
4584 | ||
4585 | * search.c (convert_pointer_to_single_level): Reimplement without | |
4586 | using get_binfo. | |
4587 | ||
4588 | 1999-06-06 Mark Mitchell <mark@codesourcery.com> | |
4589 | ||
4590 | * method.c (is_back_referenceable_type): Back-reference bools when | |
4591 | not squangling. | |
4592 | ||
4593 | 1999-06-07 Dave Brolley <brolley@cygnus.com> | |
4594 | ||
4595 | * lex.c (real_yylex): Replace unused bytes from bad multibyte char. | |
4596 | * input.c (putback_buffer): New structure type. | |
4597 | (putback): Replaces putback_char member. | |
4598 | (putback): Replaces putback_char static variable. | |
4599 | (feed_input): Use putback. | |
4600 | (end_input): Use putback. | |
4601 | (sub_getch): Use putback. | |
4602 | (put_back): Use putback. | |
4603 | ||
4604 | 1999-06-05 Mark Mitchell <mark@codesourcery.com> | |
4605 | ||
4606 | * decl.c (grokdeclarator): Fix typo in last change. | |
4607 | ||
4608 | 1999-06-04 Jason Merrill <jason@yorick.cygnus.com> | |
4609 | ||
4610 | * semantics.c (finish_if_stmt_cond): Copy cond to permanent_obstack. | |
4611 | (finish_while_stmt_cond, finish_do_stmt, finish_for_cond): Likewise. | |
4612 | ||
4613 | 1999-06-04 Nathan Sidwell <nathan@acm.org> | |
4614 | ||
4615 | * except.c (build_throw): Check throw expression validity. | |
4616 | ||
4617 | 1999-06-03 Mark Mitchell <mark@codesourcery.com> | |
4618 | ||
4619 | * decl.c (grokdeclarator): Don't treat arbitrary types as unsigned | |
4620 | just because flag_signed_bitfields is false. | |
4621 | ||
4622 | 1999-06-03 Nathan Sidwell <nathan@acm.org> | |
4623 | ||
4624 | * semantics.c (begin_class_definition): Update the struct's | |
4625 | location here ... | |
4626 | * class.c (finish_struct): ... rather than here. | |
4627 | ||
4628 | * decl.c (make_typename_type): Don't rely on uninitialized | |
4629 | variable. | |
4630 | ||
4631 | 1999-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
4632 | ||
4633 | * Makefile.in (ALL_CFLAGS): Add '-W -Wall'. | |
4634 | ||
4635 | 1999-05-31 Mark Mitchell <mark@codesourcery.com> | |
4636 | ||
4637 | * tree.c (build_cplus_array_type_1): Use push_obstacks_nochange | |
4638 | and friends rather than messing with current_obstack directly. | |
4639 | (cp_build_qualified_type_real): Rework ARRAY_TYPE | |
c8094d83 | 4640 | allocation to match practice throughout the rest of the |
4e876a0f NS |
4641 | compiler. |
4642 | ||
4643 | 1999-05-30 Mark Mitchell <mark@codesourcery.com> | |
4644 | ||
4645 | * lex.c (make_lang_type): Create TYPE_BINFO for | |
4646 | TEMPLATE_TYPE_PARMs just like for non-template types. | |
4647 | ||
4648 | * decl.c (start_decl): Move checks on initialization to ... | |
4649 | (cp_finish_decl): Here. Tidy formatting slightly. | |
4650 | ||
4651 | 1999-05-28 Mark Mitchell <mark@codesourcery.com> | |
4652 | ||
4653 | * decl.c (add_binding): Don't complain about a redeclaration of a | |
4654 | semantically identical typedef in a local scope. | |
4655 | ||
4656 | 1999-05-28 Nathan Sidwell <nathan@acm.org> | |
4657 | ||
4658 | * decl.c (complete_array_type): Allocate off same obstack. Fix | |
4659 | DO_DEFAULT comment to match reality. | |
4660 | ||
4661 | * friend.c (make_friend_class): Fix diagnostic typo. | |
4662 | ||
4663 | 1999-05-28 Mark Mitchell <mark@codesourcery.com> | |
4664 | ||
4665 | * decl.c (lookup_namespace_name): Handle getting a | |
4666 | TEMPLATE_ID_EXPR. | |
4667 | (expand_static_init): Don't call pushdecl for implicitly declared | |
4668 | `atexit' used to register destructors. | |
4669 | ||
4670 | 1999-05-25 Mark Mitchell <mark@codesourcery.com> | |
4671 | ||
4672 | * class.c (finish_vtbls): Copy BINFO_VIRTUALs before using it to | |
4673 | initialize a vtable. | |
4674 | ||
4675 | * cp-tree.h (NAMESPACE_LEVEL): Reformat. | |
4676 | (lang_decl_flags): Document MEMFUNC_POINTER_TO. Save four bytes | |
4677 | by combining TEMPLATE_INFO and LEVEL into a single union. | |
4678 | (DECL_TEMPLATE_INFO): Reformat. | |
4679 | (DECL_SAVED_TREE): Document. | |
4680 | (DECL_TEMPLATE_INJECT): Remove. | |
4681 | * class.c (finish_struct): Remove code to deal with | |
c8094d83 | 4682 | DECL_TEMPLATE_INJECT. |
4e876a0f NS |
4683 | |
4684 | * decl.c (maybe_process_template_type_declaration): Handle all new | |
4685 | types in templates uniformly. | |
4686 | * method.c (bulid_overload_identifier): Use CP_DECL_CONTEXT, not | |
4687 | DECL_CONTEXT. | |
4688 | * pt.c (lookup_template_class): Inject template instantiations of | |
4689 | forward-declarations. | |
4690 | (instantiate_class_template): Remove code processing | |
4691 | DECL_TEMPLATE_INJECT. | |
c8094d83 | 4692 | |
4e876a0f NS |
4693 | * pt.c (lookup_template_class): Tweak lookup to find member |
4694 | templates. | |
4695 | ||
4696 | * pt.c (tsubst_expr, case ASM_STMT): Don't tsubst into | |
4697 | ASM_CV_QUAL. | |
4698 | * semantics.c (finish_asm_stmt): Make strings permanent if they're | |
4699 | used in a template. | |
c8094d83 | 4700 | |
4e876a0f NS |
4701 | 1999-05-25 Jason Merrill <jason@yorick.cygnus.com> |
4702 | ||
4703 | * typeck.c (casts_away_constness, casts_away_constness_r): Strip both | |
4704 | parts of pointer to data member types. | |
4705 | ||
4706 | 1999-05-24 Mark Mitchell <mark@codesourcery.com> | |
4707 | ||
4708 | * decl2.c (mark_vtable_entries): Don't make a copy of a function, | |
4709 | and then make it look like `abort'. Just use `abort' instead. | |
c8094d83 | 4710 | |
4e876a0f NS |
4711 | * typeck.c (build_static_cast): Don't allow static_casts that cast |
4712 | away constness. | |
4713 | (casts_away_constness_r): New function. | |
4714 | (casts_away_constness): Likewise. | |
4715 | ||
4716 | * decl.c (lookup_tag): Remove code no longer needed after | |
4717 | name-lookup improvements. | |
4718 | * decl2.c (handle_class_head): Make error-recovery more robust. | |
4719 | * friend.c (make_friend_class): Reject templated typename types. | |
4720 | * lex.c (is_global): A template parameter isn't global. | |
4721 | * parse.y (class_head): Robustify. | |
4722 | * parse.c: Regenerated. | |
c8094d83 | 4723 | |
4e876a0f NS |
4724 | 1999-05-22 Mark Mitchell <mark@codesourcery.com> |
4725 | ||
4726 | * pt.c (for_each_template_parm): Walk into TYPENAME_TYPEs, | |
4727 | INDIRECT_REFs, and COMPONENT_REFs. Handle FIELD_DECLs. | |
c8094d83 | 4728 | |
4e876a0f NS |
4729 | * cp-tree.h (push_nested_namespace): Declare. |
4730 | (pop_nested_namespace): Likewise. | |
4731 | * decl.c (push_nested_namespace): New function. | |
4732 | (pop_nested_namespace): Likewise. | |
4733 | * pt.c (instantiate_class_template): Use them. | |
4734 | ||
4735 | * tree.c (mapcar): Handle NON_LVALUE_EXPR. | |
4736 | ||
4737 | * cp-tree.h (cplus_expand_constant): Declare. | |
4738 | * cvt.c (convert_to_pointer): Expand PTRMEM_CSTs when they're | |
4739 | converted from one pointer-to-object type to another. | |
4740 | * expr.c (cplus_expand_constant): Don't make it static. | |
4741 | * typeck.c (build_component_ref): Don't crash when presented with | |
4742 | a component which is a TEMPLATE_DECL. | |
4743 | (build_ptrmemfunc): Tidy. Clarify comment. Make sure that even a | |
4744 | cast from a pointer-to-member constant to its own type does not | |
4745 | result in a valid non-type template argument. | |
4746 | ||
4747 | 1999-05-21 Mark Mitchell <mark@codesourcery.com> | |
4748 | Nathan Sidwell <nathan@acm.org> | |
c8094d83 | 4749 | |
4e876a0f NS |
4750 | * Make-lang.in (cc1plus): Make it depend on gxx.gperf. |
4751 | * cp-tree.h: Fix typo in documentation on pointers-to-members. | |
4752 | (cp_build_qualified_type): Make it a macro. | |
4753 | (cp_build_qualified_type_real): Declare. | |
4754 | * decl.c (grokdeclarator): Remove misleading comment. Avoid | |
4755 | problem with template parameters and restrict-qualification. | |
4756 | * gxx.gperf: Replace NORID with RID_UNUSED throughout. | |
4757 | * hash.h: Regenerated. | |
4758 | * lex.h (rid): Move RID_FIRST_MODIFIER and RID_LAST_MODIFIER into | |
4759 | the enumeration. | |
4760 | (NORID): Remove definition. | |
4761 | * pt.c (tsubst_aggr_type): Use cp_build_qualified_type_real. | |
4762 | (tsubst): Likewise. Remove special handling for FUNCTION_TYPEs. | |
4763 | (fn_type_unification): Check that the function type resulting from | |
4764 | the deduction is legal. | |
4765 | (check_cv_quals_for_unify): Don't handle FUNCTION_TYPEs specially. | |
4766 | (unify): Use cp_build_qualified_type_real. | |
4767 | * tree.c (build_cplus_array_type_1): Handle error_marks as inputs. | |
4768 | (cp_build_qualified_type): Rename to ... | |
4769 | (cp_build_qualified_type_real): Add additional COMPLAIN parameter | |
4770 | and modify appropriately. | |
c8094d83 | 4771 | |
4e876a0f NS |
4772 | * typeck.c (build_ptrmemfunc): Handle PTRMEM_CSTs carefully to |
4773 | reveal optimization opportunities. | |
4774 | ||
4775 | * pt.c (tsubst): Don't issue error messages when we're not | |
4776 | complaining, even if we see a qualified function type. | |
4777 | (check_cv_quals_for_unify): Don't allow a qualified function | |
4778 | type. | |
4779 | ||
4780 | 1999-05-20 Jason Merrill <jason@yorick.cygnus.com> | |
4781 | ||
4782 | * class.c (instantiate_type): Downgrade errors for object-dependent | |
4783 | memfn refs to pedwarn. | |
4784 | ||
4785 | 1999-05-20 Mark Mitchell <mark@codesourcery.com> | |
4786 | ||
4787 | * decl.c (grokdeclarator): Don't treat [] as indicating a | |
4788 | zero-sized array in a typedef. | |
4789 | ||
4790 | * call.c (build_object_call): Don't look at DECL_NAME for a type. | |
4791 | (pt.c): Or CP_TYPE_QUALS for an ERROR_MARK. | |
4792 | (typeck.c): Or TYPE_MAIN_VARIANT for a type. | |
4793 | ||
0cbd7506 | 4794 | * pt.c (for_each_template_parm): Rework to match documentation. |
4e876a0f NS |
4795 | Don't be fooled by a COMPONENT_REF with no TREE_TYPE. |
4796 | ||
4797 | 1999-05-20 Jason Merrill <jason@yorick.cygnus.com> | |
4798 | ||
4799 | * class.c (finish_struct_1): Still check for ANON_AGGR_TYPE_P. | |
4800 | ||
4801 | * class.c (finish_base_struct): Allow non-COM bases for COM classes | |
4802 | except at the leftmost position. | |
4803 | (modify_one_vtable, fixup_vtable_deltas1, override_one_vtable): | |
4804 | Pass the binfo's class, not the most derived, to skip_rtti_stuff. | |
4805 | * search.c (get_abstract_virtuals, expand_upcast_fixups): Likewise. | |
4806 | ||
4807 | * tree.c (lvalue_p_1): A NOP_EXPR can be an lvalue. | |
4808 | (build_cplus_new): Make sure that what we return is of the right type. | |
4809 | ||
4810 | 1999-05-20 Mark Mitchell <mark@codesourcery.com> | |
4811 | ||
4812 | * cp-tree.h (make_ptrmem_cst): New function. | |
4813 | * expr.c (cplus_expand_constant): Split out from ... | |
4814 | (cplus_expand_expr): Here. Use cplus_expand_constant. | |
4815 | (init_cplus_expand): Set lang_expand_constant. | |
4816 | * pt.c (convert_nontype_argument): Use make_ptrmem_cst. | |
4817 | ||
4818 | * tree.c (make_ptrmem_cst): Define. | |
4819 | * typeck.c (unary_complex_lvalue): Use make_ptrmem_cst. | |
4820 | * typeck2.c (initializer_constant_valid_p): Use make_ptrmem_cst. | |
4821 | ||
4822 | 1999-05-19 Mark Mitchell <mark@codesourcery.com> | |
4823 | ||
4824 | * pt.c (build_template_decl): Copy DECL_NONCONVERTING_P. | |
4825 | ||
4826 | * decl2.c (start_static_storage_duration_function): Fix comment. | |
4827 | (finish_file): Create static storage duration functions lazily. | |
4828 | ||
4829 | 1999-05-19 Jason Merrill <jason@yorick.cygnus.com> | |
4830 | ||
4831 | Implement anonymous structs. | |
4832 | * cp-tree.h (ANON_AGGR_TYPE_P): Rename from ANON_UNION_TYPE_P. | |
4833 | * class.c, decl.c, decl2.c, init.c, pt.c, search.c, typeck.c: Adjust. | |
4834 | * class.c (finish_struct_1): Remove redundant check for anon struct. | |
4835 | * decl.c (fixup_anonymous_aggr): Renamed from fixup_anonymous_union. | |
4836 | (check_tag_decl): Check for anonymous struct here. | |
4837 | * decl2.c (build_anon_union_vars): Catch anon struct at file scope. | |
4838 | * init.c (sort_member_init, emit_base_init): Handle getting fields | |
4839 | as well as names in current_member_init_list. | |
4840 | (perform_member_init): Handle getting an anon aggr. | |
4841 | * method.c (do_build_assign_ref): Don't descend into anon aggrs. | |
4842 | (do_build_copy_constructor): Likewise. | |
4843 | ||
4844 | 1999-05-19 Mark Mitchell <mark@codesourcery.com> | |
4845 | ||
4846 | * tree.c (cp_build_qualified_type): Don't allow qualified function | |
4847 | types. | |
4848 | ||
4849 | Wed May 19 02:50:53 1999 Arvind Sankar <arvinds@mit.edu> | |
4850 | ||
4851 | * gxxint.texi: Fix typo. | |
4852 | ||
4853 | 1999-05-19 Jason Merrill <jason@yorick.cygnus.com> | |
4854 | ||
4855 | * call.c (find_scoped_type, resolve_scope_to_name): Lose. | |
4856 | * class.c (finish_struct_1): Use CLASS_TYPE_P. | |
4857 | * ptree.c (print_lang_type): Likewise. | |
4858 | * typeck.c (build_modify_expr, c_expand_asm_operands): Use | |
4859 | IS_AGGR_TYPE_CODE. | |
4860 | * typeck2.c (digest_init): Likewise. | |
4861 | ||
4862 | 1999-05-18 Jason Merrill <jason@yorick.cygnus.com> | |
4863 | ||
4864 | * call.c (joust): Compare the types of the conv ops, not the | |
4865 | target types of the conversions. | |
4866 | ||
4867 | Tue May 18 00:21:34 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> | |
4868 | ||
4869 | * lang-specs.h: Define __GNUC__ and __GNUC_MINOR__ only if -no-gcc | |
4870 | was not given. | |
4871 | ||
4872 | 1999-05-17 Mark Mitchell <mark@codesourcery.com> | |
4873 | ||
4874 | * cp-tree.def (TEMPLATE_ID_EXPR): Update documentation. | |
4875 | * decl.c (grokfndecl): Don't allow inline declarations of friend | |
4876 | template specializations, or friend template specializations with | |
4877 | default arguments. | |
4878 | * pt.c (tsubst): Handle substitution into array types that does | |
4879 | not yield a fixed upper bound, even when not processing a | |
4880 | template. | |
4881 | (tsubst_copy): Deal with the fact that the second operand to a | |
4882 | TEMPLATE_ID_EXPR may be NULL_TREE, a TREE_LIST, or a TREE_VEC. | |
4883 | * search.c (marked_pushdecls_p): Don't descend into | |
4884 | TEMPLATE_TYPE_PARMs and the like. | |
4885 | (unmarked_pushdecls_p): Likewise. | |
c8094d83 | 4886 | |
4e876a0f NS |
4887 | * call.c (build_over_call): Don't throw away |
4888 | initializations/copies of empty classes; use MODIFY_EXPR and | |
4889 | INIT_EXPR as for non-empty classes. | |
4890 | * class.c (finish_struct_1): Put the padding byte for an empty | |
4891 | class on the TYPE_NONCOPIED_PARTS list for the class. | |
4892 | ||
4893 | 1999-05-16 Mark Mitchell <mark@codesourcery.com> | |
4894 | ||
4895 | * decl2.c (build_expr_from_tree): Handle COMPONENT_REFs that | |
4896 | indicate a reference to a field that is a qualified name. | |
4897 | ||
4898 | 1999-05-16 Jason Merrill <jason@yorick.cygnus.com> | |
4899 | ||
4900 | * decl2.c (finish_objects): Don't use .?tors.* if we don't have | |
4901 | ASM_OUTPUT_CONSTRUCTOR. | |
4902 | ||
4903 | * friend.c (do_friend): Add attrlist arg. Remove support for | |
4904 | getting a non-decl as 'decl'. | |
4905 | * decl.c (grokfndecl): Remove attrlist arg. Don't set attrs or | |
4906 | rtl. | |
4907 | (grokdeclarator): Adjust. | |
4908 | * cp-tree.h: Adjust. | |
4909 | ||
4910 | 1999-05-16 Mark Mitchell <mark@codesourcery.com> | |
4911 | ||
4912 | * cp-tree.h (permanent_p): New function. | |
4913 | * init.c (build_new_1): Use mapcar, not copy_node, to copy a | |
4914 | possibly complex tree node. | |
4915 | * tree.c (mapcar): Adjust comments, and follow coding standards in | |
4916 | conditional. | |
4917 | (permanent_p): New function. | |
4918 | ||
4919 | 1999-05-13 Per Bothner <bothner@cygnus.com> | |
4920 | ||
4921 | * class.c (push_lang_context): Turn off DECL_IGNORED_P for | |
4922 | primitive Java types, if we actually see `extern "Java"'. | |
4923 | ||
4924 | 1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> | |
4925 | ||
4926 | * lang-specs.h: Pass -$ to the preprocessor. | |
4927 | ||
4928 | 1999-05-10 Jason Merrill <jason@yorick.cygnus.com> | |
4929 | ||
4930 | * init.c (build_offset_ref): Wrap baselinks in OFFSET_REF, too. | |
4931 | Don't bother wrapping an OFFSET_TYPE around unknown_type_node. | |
4932 | (resolve_offset_ref): Don't handle a raw baselink. | |
4933 | * cvt.c (build_expr_type_conversion): Likewise. | |
4934 | * typeck.c (decay_conversion, build_c_cast, convert_for_assignment, | |
4935 | convert_for_initialization): Likewise. | |
4936 | * class.c (instantiate_type): Handle seeing a baselink under an | |
4937 | OFFSET_REF. | |
c8094d83 | 4938 | * error.c (dump_expr): Likewise. |
4e876a0f NS |
4939 | * pt.c (for_each_template_parm): Likewise. |
4940 | (resolve_overloaded_unification): Likewise. | |
4941 | * tree.c (is_overloaded_fn, really_overloaded_fn): Likewise. | |
4942 | * typeck.c (expr_sizeof): Also complain about other permutations | |
4943 | of overloaded functions. | |
4944 | ||
4945 | 1999-05-07 Jason Merrill <jason@yorick.cygnus.com> | |
4946 | ||
4947 | * init.c (resolve_offset_ref): Don't return a raw method. | |
4948 | Use BASELINK_P. | |
4949 | * typeck.c (decay_conversion): Don't handle a raw method. | |
4950 | Resolve all OFFSET_REFs. | |
4951 | (get_member_function_from_ptrfunc): 0 is a valid vtable index. | |
4952 | (build_binary_op_nodefault): Handle resolving overloaded fns. Use | |
4953 | same_type_p for pmf bits. Don't use build_binary_op to compare | |
4954 | raw pointers to methods. | |
4955 | (convert_for_assignment): Check for OFFSET_REF, not OFFSET_TYPE, | |
4956 | to decide when to call resolve_offset_ref. | |
4957 | (build_c_cast, convert_for_initialization): Likewise. | |
4958 | * cvt.c (build_expr_type_conversion): Likewise. | |
4959 | ||
4960 | 1999-05-06 Nathan Sidwell <nathan@acm.org> | |
4961 | ||
4962 | * call.c (build_new_method_call): Use TYPE_MAIN_VARIANT of class. | |
4963 | ||
4964 | 1999-05-05 Mark Mitchell <mark@codesourcery.com> | |
4965 | ||
4966 | * decl2.c (start_objects): Don't let static constructors and | |
4967 | destructors get inlined. | |
4968 | ||
4969 | * parse.y (nested_name_specifier): Make sure ordinary types are | |
4970 | complete, just like template types. | |
4971 | * parse.c: Regenerated. | |
4972 | ||
4973 | * pt.c (check_explicit_specialization): Improve error messages. | |
4974 | ||
719bb4e3 | 4975 | 1999-05-04 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
4976 | |
4977 | * typeck.c (string_conv_p): Use same_type_p to check whether we | |
4978 | try to convert between char and wchar_t. | |
4979 | ||
4980 | 1999-05-03 Mark Mitchell <mark@codesourcery.com> | |
4981 | ||
4982 | * search.c (lookup_field_r): Set the TREE_TYPE of an ambiguous | |
4983 | lookup to error_mark_node here. | |
4984 | (lookup_member): Revise documentation. Add comments. Don't set | |
4985 | the TREE_TYPE to error_mark_node here, and don't build up an extra | |
4986 | TREE_LIST for ambiguous lookups. | |
4987 | (setup_class_bindings): Adjust accordingly. | |
4988 | (push_class_decls): Revise out-of-date comments. | |
c8094d83 | 4989 | |
4e876a0f NS |
4990 | * typeck.c (build_const_cast): Tighten checks for legality. |
4991 | ||
719bb4e3 | 4992 | 1999-05-02 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
4993 | |
4994 | * init.c (build_member_call): Lookup names coming from | |
4995 | namespace-scoped LOOKUP_EXPR. | |
4996 | ||
4997 | 1999-05-03 Jim Blandy <jimb@zwingli.cygnus.com> | |
4998 | ||
4999 | * gxxint.texi: Add documentation for 'I'. | |
5000 | ||
719bb4e3 | 5001 | 1999-05-02 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
5002 | |
5003 | * tinfo.cc (operator==): Qualify type_info with std::. | |
5004 | ||
5005 | 1999-05-02 Mark Mitchell <mark@codesourcery.com> | |
5006 | ||
5007 | * cp-tree.h (lang_decl_flags): Remove comdat. Updated dummy. | |
5008 | (DECL_COMDAT): Remove definition. | |
5009 | ||
5010 | 1999-05-01 Mark Mitchell <mark@codesourcery.com> | |
5011 | ||
5012 | * decl.c (wrapup_globals_for_namespace): Fix thinko in previous | |
5013 | change. | |
5014 | ||
5015 | 1999-04-30 Mark Mitchell <mark@codesourcery.com> | |
5016 | ||
5017 | * class.c (build_vtable): Use build_lang_decl when building | |
5018 | vtables, not just build_decl. | |
5019 | (prepare_fresh_vtable): Likewise. | |
5020 | * decl.c (wrapup_globals_for_namespace): Mark vtables as | |
5021 | DECL_EXTERNAL when calling wrapup_global_declarations. | |
5022 | * decl2.c (priority_info_s): Add initializations_p and | |
5023 | destructions_p members. | |
5024 | (finish_vtable_vardecl): Use TREE_SYMBOL_REFERENCED, not TREE_USED, | |
5025 | when deciding what vtables to write out. | |
5026 | (ssdf_decls): New variable. | |
5027 | (ssdf_decls_used): Likewise. | |
5028 | (start_static_storage_duration_function): Deal with being called | |
5029 | multiple times. Avoid inlining this function. | |
5030 | (generate_inits_for_priority): Deal with reuse of priority map. | |
5031 | (get_priority_info): Clear initializations_p and destructions_p. | |
5032 | (do_static_initialization): Tweak comment. | |
5033 | (do_static_destruction): Likewise. Fix condition on sentries for | |
5034 | destruction. | |
5035 | (generate_ctor_or_dtor_function): Call all of the static storage | |
5036 | duration functions. | |
5037 | (generate_ctor_or_dtor_function_for_priority): Check | |
5038 | initializations_p and destructions_p to see what priorities need | |
5039 | initialization functions. | |
5040 | (finish_file): Rework to generate multiple static storage duration | |
5041 | functions, rather than just one. | |
5042 | ||
5043 | * typeck.c (build_const_cast): Tweak last change to handle | |
5044 | templates correctly. | |
5045 | ||
5046 | * typeck.c (build_const_cast): Disallow use of const_cast to | |
5047 | anything but a pointer or reference type. | |
5048 | ||
5049 | 1999-04-30 Nathan Sidwell <nathan@acm.org> | |
5050 | ||
5051 | * decl.c (cp_finish_decl): Don't permit arrays of abstract or | |
5052 | signature type. | |
5053 | ||
5054 | 1999-04-29 Mark Mitchell <mark@codesourcery.com> | |
5055 | ||
5056 | * decl2.c (do_static_destruction): Remove obsolete FIXME comment. | |
5057 | (finish_file): Indent comments properly. | |
5058 | ||
5059 | 1999-04-29 Richard Henderson <rth@cygnus.com> | |
5060 | ||
5061 | * decl2.c (do_static_initialization): Call do_pending_stack_adjust. | |
5062 | (do_static_destruction): Likewise. | |
5063 | ||
5064 | 1999-04-29 Nathan Sidwell <nathan@acm.org> | |
5065 | ||
5066 | * cp-tree.h (TYPE_NOTHROW_P): New macro. | |
5067 | * decl2.c (delete_sanity): Warn on deleting void *. | |
5068 | * init.c (build_new_1): Use TYPE_NOTHROW_P. | |
5069 | * typeck.c (c_expand_return): cp_pedwarn on returning NULL from | |
5070 | throwing operator new. | |
5071 | ||
5072 | 1999-04-28 Nathan Sidwell <nathan@acm.org> | |
5073 | ||
5074 | * cp-tree.h (build_component_addr): Remove prototype. | |
5075 | * typeck.c (build_component_addr): Make static. Remove MSG | |
5076 | argument. | |
5077 | (build_component_addr): Remove MSG parameter, clean up | |
5078 | comment. | |
5079 | (build_x_function_call): Use cp_error. | |
5080 | (build_unary_op): Adjust call of build_component_addr. | |
5081 | ||
5082 | 1999-04-28 Mark Mitchell <mark@codesourcery.com> | |
5083 | ||
5084 | * pt.c (tsubst_friend_class): Check for NULL. | |
5085 | ||
5086 | Wed Apr 28 11:42:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> | |
5087 | ||
5088 | * search.c (binfo_for_vtable): Initialize bfvi.var. | |
5089 | ||
5090 | 1999-04-27 Nathan Sidwell <nathan@acm.org> | |
5091 | ||
5092 | * rtti.c (build_x_typeid): Check rtti is enabled. | |
5093 | ||
5094 | 1999-04-26 Mark Mitchell <mark@codesourcery.com> | |
5095 | ||
5096 | * search.c (is_subobject_of_p): Make sure we're looking at the | |
5097 | right baseclasses. | |
5098 | ||
5099 | 1999-04-26 Marc Espie <espie@cvs.openbsd.org> | |
5100 | ||
5101 | * Make-lang.in (cplib2.ready): Don't depend on phony targets. | |
5102 | ||
5103 | 1999-04-23 Mark Mitchell <mark@codesourcery.com> | |
5104 | ||
5105 | * decl2.c (finish_file): Tweak handling of extern inlines so that | |
5106 | they are not unnecessarily put out. | |
5107 | ||
5108 | * search.c (is_subobject_of_p): Handle TEMPLATE_TYPE_PARMs and | |
5109 | such as base classes. | |
5110 | ||
5111 | 1999-04-22 Brendan Kehoe <brendan@cygnus.com> | |
5112 | ||
5113 | * tree.c (build_exception_variant): Fix typo: use the chain of U, | |
5114 | not trying V, while cycling through U. | |
5115 | ||
5116 | 1999-04-22 Mark Mitchell <mark@codesourcery.com> | |
5117 | ||
5118 | * cp-tree.h (lang_decl_flags): Remove returns_first_arg and | |
5119 | preserves_first_arg. Enlarge dummy accordingly. | |
5120 | (DECL_TINFO_FN_P): New macro. | |
5121 | (SET_DECL_TINFO_FN_P): Likeiwse. | |
5122 | (DECL_RETURNS_FIRST_ARG): Remove. | |
5123 | (DECL_PRESERVES_THIS): Likewise. | |
5124 | (DECL_INIT_PRIORITY): New macro. | |
5125 | (finish_struct_1): Change prototype. | |
5126 | (cat_namespace_levels): Remove prototype. | |
5127 | (vtable_decl_p): New prototype. | |
5128 | (vtype_decl_p): Likewise. | |
5129 | (sigtable_decl_p): Likewise. | |
5130 | (walk_globals_pred): New typedef. | |
5131 | (walk_globals_fn): Likewise. | |
5132 | (walk_globals): New prototype. | |
5133 | (walk_namespaces_fn): New typedef. | |
5134 | (walk_namespaces): New prototype. | |
5135 | (wrapup_globals_for_namespace): Likewise. | |
5136 | (walk_vtables): Remove prototype. | |
5137 | (walk_sigtables): Likewise. | |
5138 | (instantiate_pending_templates): New prototype. | |
5139 | * class.c (finish_struct_1): Don't return a value. | |
5140 | * decl.h (pending_statics): Remove declaration. | |
5141 | * decl.c (walk_namespaces_r): New function. | |
5142 | (walk_globals_r): Likewise. | |
5143 | (vtable_decl_p): Likewise. | |
5144 | (vtype_decl_p): Likewise. | |
5145 | (sigtable_decl_p): Likewise. | |
5146 | (walk_namespaces): Likewise. | |
5147 | (walk_globals_data): New type. | |
5148 | (walk_globals): New function. | |
5149 | (wrapup_globals_for_namespace): Likewise. | |
5150 | (expand_static_init): Remove assertion. Remove redundancy in | |
5151 | conditional. Don't put static data members in static_aggregates | |
5152 | Tidy. | |
5153 | (finish_function): Remove redundancy in conditional. Don't set | |
5154 | DECL_RETURNS_FIRST_ARG. | |
5155 | (cat_namespace_levels): Remove. | |
5156 | * decl2.c: Include splay-tree.h and varray.h. | |
5157 | (priority_info_s): New structure. | |
5158 | (finish_vtable_vardecl): Change prototype. Adjust for new calling | |
5159 | conventions. | |
5160 | (prune_vtable_vardecl): Likewise. | |
5161 | (finish_sigtable_vardecl): Likewise. | |
5162 | (setup_initp): Remove. | |
5163 | (do_dtors): Remove. | |
5164 | (do_ctors): Remove. | |
5165 | (start_static_storage_duration_function): New function. | |
5166 | (generate_inits_for_priority): Likewise. | |
5167 | (finish_static_storage_duration_function): Likewise. | |
5168 | (get_priority_info): Likewise. | |
5169 | (do_static_initialization): Likewise. | |
5170 | (do_static_destruction): Likewise. | |
5171 | (do_static_initialization_and_destruction): Likewise. | |
5172 | (generate_ctor_or_dtor_function): Likewise. | |
5173 | (generate_ctor_and_dtor_functions_for_priority): Likewise. | |
5174 | (pending_statics): Make it a varray. | |
5175 | (pending_statics_used): New variable. | |
5176 | (saved_inlines): Make it a varray. | |
5177 | (saved_inlines_used): New variable. | |
5178 | (finish_static_data_member): Change method of updating | |
5179 | pending_statics. | |
5180 | (mark_inline_for_output): Remove #if 0'd code. Change method of | |
5181 | updating saved_inlines. | |
5182 | (walk_vtables): Remove. | |
5183 | (walk_sigtables): Likewise. | |
5184 | (import_export_decl): Use DECL_TINFO_FN_P. | |
5185 | (pending_templates): Remove declaration. | |
5186 | (maybe_templates): Likewise. | |
5187 | (static_aggregates_initp): Likewise. | |
5188 | (setup_initp): Likewise. | |
5189 | (finish_objects): Simplify. | |
5190 | (INITIALIZE_P_IDENTIFIER): New macro. | |
5191 | (PRIORITY_IDENTIFIER): New macro. | |
5192 | (SSDF_IDENTIFIER): New macro. | |
5193 | (initialize_p_decl): New variable. | |
5194 | (priority_decl): Likewise. | |
5195 | (ssdf_decl): Likewise. | |
5196 | (priority_info_map): Likewise. | |
5197 | (finish_file): Recode output of static intializers and other | |
5198 | file-scope finalization tasks. | |
5199 | * error.c (OB_END_TEMPLATE_ID): New macro. | |
5200 | (dump_type_real): Use it. | |
5201 | (dump_decl): Likewise. | |
5202 | (dump_function_name): Likewise. | |
5203 | * lex.c (set_typedecl_interface_info): Adjust for new walk_globals | |
5204 | interface. | |
5205 | (check_newline): Use walk_globals, not walk_vtables. | |
5206 | * pt.c (pending_tempalte_expansions): Remove. | |
5207 | (set_vardecl_interface_info): Likewise. | |
5208 | (pending_templates): Make static. | |
5209 | (maybe_templates): Likewise. | |
5210 | (instantiate_class_template): Adjust call to finish_struct_1. | |
5211 | (instantiate_pending_templates): New function. | |
5212 | * rtti.c (get_tinfo_fn): Use SET_DECL_TINFO_FN_P. | |
5213 | * tree.c (static_aggregates_initp): Remove. | |
5214 | (cp_valid_lang_attribute): Don't use it; use DECL_INIT_PRIORITY | |
5215 | instead. | |
5216 | * Makefile.in (decl2.o): Depend on varray.h and splay-tree.h. | |
5217 | ||
5218 | * gxx.gperf (RETURN): Rename to RETURN_KEYWORD to avoid clashes | |
5219 | with the RTL code RETURN. | |
5220 | * hash.h: Regenerated. | |
5221 | * lex.c (reinit_parse_for_block): Use RETURN_KEYWORD. | |
5222 | * parse.y: Replace RETURN with RETURN_KEYWORD throughout. | |
5223 | * parse.c: Regenerated. | |
5224 | * pt.c: Include varray.h. Include rtl.h since varray.h requires | |
5225 | it. | |
5226 | (inline_parm_levels): New variable. | |
5227 | (inline_parm_levels_used): Likewise. | |
5228 | (maybe_begin_member_template_processing): Update them. | |
5229 | (maybe_end_member_template_processing): Use them, rather than | |
5230 | guessing how many levels to pop. | |
5231 | ||
5232 | * decl.c (make_typename_type): Tighten error-checking. | |
5233 | ||
5234 | 1999-04-20 Mark Mitchell <mark@codesourcery.com> | |
5235 | ||
5236 | * cp-tree.h (build_binary_op): Remove unneeded parameter. | |
5237 | * class.c (build_vrable_entry_ref): Adjust call to | |
5238 | build_binary_op. | |
5239 | * decl.c (expand_static_init): Likewise. | |
5240 | (grokdeclarator): Likewise. | |
5241 | (finish_function): Likewise. | |
5242 | * decl2.c (delete_sanity): Likewise. | |
5243 | (do_dtors): Likewise. | |
5244 | (do_ctors): Likewise. | |
5245 | * error.c (dump_type_suffix): Likewise. | |
5246 | * expr.c (cplus_expand_expr): Likewise. | |
5247 | * init.c (resolve_offset_ref): Likewise. | |
5248 | (build_new): Likewise. | |
5249 | (build_new_1): Likewise. | |
5250 | (build_vec_delete_1): Likewise. | |
5251 | (expand_vec_init_catch_clause): Likewise. | |
5252 | (build_delete): Likewise. | |
5253 | * pt.c (tsubst): Likewise. | |
5254 | * rtti.c (synthesize_tinfo_fn): Likewise. | |
5255 | * search.c (expand_upcast_fixups): Likewise. | |
5256 | (expand_direct_vtbls_init): Likewise. | |
5257 | * typeck.c (get_member_function_from_ptrfunc): Likewise. | |
5258 | (build_binary_op_nodefault): Likewise. | |
5259 | (point_int_sum): Likewise. | |
5260 | (pointer_diff): Likewise. | |
5261 | (build_unary_op): Likewise. | |
5262 | (build_modify_expr): Likewise. | |
5263 | (get_delta_difference): Likewise. | |
5264 | (build_ptrmemfunc): Likewise. | |
5265 | (expand_ptrmemfunc_cst): Likewise. | |
5266 | ||
5267 | 1999-04-20 Jason Merrill <jason@yorick.cygnus.com> | |
5268 | ||
5269 | * decl.c (grokfndecl): Always call cplus_decl_attributes. | |
5270 | * decl2.c (grokfield): Pass attrlist to grokdeclarator. | |
5271 | ||
5272 | 1999-04-19 Mark Mitchell <mark@codesourcery.com> | |
5273 | ||
5274 | * cp-tree.h (finish_static_data_member_decl): New function. | |
5275 | * decl2.c (finish_static_data_member_decl): Split out from ... | |
5276 | (grokfield): Here. | |
5277 | * pt.c (instantiate_class_template): Use it here instead of | |
5278 | trying to fake it. | |
5279 | (tsubst_decl): Don't set DECL_ASSEMBLER_NAME; | |
5280 | finish_static_data_member_decl will do that. Explicit set | |
5281 | DECL_EXTERNAL to match non-template processing. | |
5282 | ||
5283 | 1999-04-18 Mark Mitchell <mark@codesourcery.com> | |
5284 | ||
5285 | * cp-tree.h (finish_class_definition): Add parameter. | |
5286 | * parse.y (structsp): Use it. Don't call pop_scope here. | |
5287 | * parse.c: Regenerated. | |
5288 | * semantics.c (finish_class_definition): Pop it here. | |
5289 | ||
5290 | 1999-04-17 Mark Mitchell <mark@codesourcery.com> | |
5291 | ||
5292 | * decl.c (xref_tag): Revise handling of nested template | |
5293 | declarations. | |
5294 | * pt.c (check_explicit_specialization): Tweak handling of friend | |
5295 | templates in template classes. | |
5296 | (tsubst_friend_class): Handle friend declarations for nested | |
5297 | member template classes. | |
5298 | ||
5299 | 1999-04-16 Mark Mitchell <mark@codesourcery.com> | |
5300 | ||
5301 | * class.c (finish_struct): Remove unused variable. | |
5302 | (pushclass): Likewise. | |
5303 | (invalidate_class_lookup_cache): Likewise. | |
5304 | * cp-tree.def (TYPENAME_TYPE): Improve documentation. | |
5305 | * decl.c (build_typename_type): Make sure TYPENAME_TYPE_FULLNAME | |
5306 | doesn't get obliterated. | |
5307 | (make_typename_type): Handle template classes correctly. | |
5308 | ||
5309 | * cp-tree.h (TREE_NONLOCAL_FLAG): Remove. | |
5310 | (storetags): Declare. | |
5311 | * class.c (finish_struct): Don't use TREE_NONLOCAL_FLAG. | |
5312 | (pushclass): Likewise. Use storetags to install tag declarations, | |
5313 | not pushtag. | |
5314 | (invalidate_class_lookup_cache): Don't use TREE_NONLOCAL_FLAG. | |
5315 | * decl.c (storetags): Make it global. | |
5316 | (push_class_binding): Set INHERITED_VALUE_BINDING_P for an | |
5317 | implicit typename declaration. | |
5318 | (pushtag): Tidy. Don't use TREE_NONLOCAL_FLAG. | |
5319 | * method.c (hack_identifier): Likewise. | |
5320 | * search.c (lookup_member): Likewise. | |
5321 | ||
5322 | * decl.c (warn_about_implicit_typename_lookup): New function. | |
5323 | (lookup_name_real): Use it. Rework handling of implicit typename | |
5324 | extension. | |
5325 | ||
5326 | 1999-04-15 Mark Mitchell <mark@codesourcery.com> | |
5327 | ||
5328 | * cp-tree.h (lookup_nested_field): Remove. | |
5329 | * class.c (push_nested_class): Handle UNION_TYPEs. | |
5330 | (pop_nested_class): Likewise. | |
5331 | * decl.c (lookup_name_real): Don't call lookup_nested_field. | |
5332 | (start_decl): Use push_nested_class, not just pushclass. | |
5333 | (cp_finish_decl): Use pop_nested_class, not just popclass. | |
5334 | * search.c (lookup_nested_field): Remove. | |
5335 | ||
5336 | * cp-tree.h (lang_type): Add documentation. | |
5337 | * decl2.c (handle_class_head): Create template declarations here, | |
5338 | as appropriate. | |
5339 | * parse.y (class_head): Return whether or not we entered a new | |
5340 | scope, as well as the type named. | |
5341 | (named_class_head): Likewise. | |
5342 | (named_complex_class_head_sans_basetype): Likewise. | |
5343 | (structsp): Adjust accordingly. Pop scope when required. | |
5344 | * parse.c: Regenerated. | |
5345 | * pt.c (check_default_tmpl_args): Robustify. | |
5346 | (redeclare_class_template): Likewise. | |
5347 | (instantiate_class_template): An instantiation of an | |
5348 | anonymous union is itself an anonymous union. | |
5349 | * semantics.c (begin_class_definition): Don't create template | |
5350 | declarations here. | |
5351 | ||
5352 | 1999-04-15 Jason Merrill <jason@yorick.cygnus.com> | |
5353 | ||
5354 | * parse.y (after_type_declarator_intern): New nonterminal. | |
5355 | (after_type_declarator): Use it. | |
5356 | (direct_after_type_declarator): Likewise. Move above | |
5357 | nonnested_type to fix reduce/reduce conflict resolution. | |
5358 | (declmods): Reducing from just 'attributes' has EMPTY precedence. | |
5359 | * Makefile.in (CONFLICTS): Update. | |
5360 | ||
5361 | * decl.c (define_label): Downgrade error for jumping over a | |
5362 | non-POD decl to pedwarn. | |
5363 | ||
5364 | 1999-04-14 Mark Mitchell <mark@codesourcery.com> | |
5365 | ||
5366 | * cp-tree.h (popclass): Change declaration. | |
5367 | (pop_nested_class): Likewise. | |
5368 | (poplevel_class): Remove declaration. | |
5369 | * call.c (convert_default_argument): Pass no arguments to | |
5370 | popclass. | |
5371 | * class.c (finish_struct_1): Likewise. | |
5372 | (finish_struct): Likewise. | |
5373 | (popclass): Remove argument. Simplify code accordingly. | |
5374 | (pop_nested_class): Likewise. | |
5375 | * decl.c (poplevel_class): Declare it here, and make it static. | |
5376 | (poplevel): Handle class scopes. | |
5377 | (poplevel_class): Don't take an rgument. Simplify. | |
5378 | (pop_everything): Pass no arguments to pop_nested_class. | |
5379 | (cp_finish_decl): Pass no arguments to popclass. | |
5380 | (grokdeclarator): Pass no arguments to pop_nested_class. | |
5381 | (finish_function): Likewise. | |
5382 | * decl2.c (grokfield): Likewise. | |
5383 | (pop_scope): Pass no arguments to popclass. | |
5384 | * lex.c (do_pending_defargs): Pass no arguments to pop_nested_class. | |
5385 | * pt.c (instantiate_class_template): Move call to pushclass, and | |
5386 | document. Pass no arguments to popclass. | |
5387 | (regenerate_decl_from_template): Likewise. | |
5388 | ||
5389 | 1999-04-14 Jason Merrill <jason@yorick.cygnus.com> | |
5390 | ||
5391 | * typeck.c (build_unary_op): Handle taking the address of a unique | |
5392 | bound non-static member function. | |
5393 | ||
719bb4e3 | 5394 | 1999-04-13 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
5395 | |
5396 | * lang-options.h (-Wdeprecated): New flag. | |
5397 | * decl2.c (warn_deprecated): New flag. | |
5398 | (lang_decode_option): Deprecated this-is-variable, | |
5399 | external-templates, alt-external-templates. | |
5400 | Support -Wdeprecated. | |
5401 | * errfn.c (cp_deprecated): New function. | |
5402 | ||
5403 | 1999-04-13 Jason Merrill <jason@yorick.cygnus.com> | |
5404 | ||
5405 | * decl2.c (setup_initp): Compare DECL_ASSEMBLER_NAME instead | |
5406 | of the decls themselves. | |
5407 | ||
5408 | * pt.c (tsubst_function_type): Copy attributes over. | |
5409 | ||
5410 | * tree.c (cp_valid_lang_attribute): New fn. Handle init_priority | |
5411 | and com_interface. | |
5412 | * cp-tree.h: Add prototype. | |
5413 | * decl.c (init_decl_processing): Set valid_lang_attribute. | |
5414 | ||
5415 | 1999-04-13 Mark Mitchell <mark@codesourcery.com> | |
5416 | ||
5417 | * class.c (finish_struct_1): Look at the const-ness of the field's | |
5418 | type, not the TREE_READONLY-ness of the declaration. | |
5419 | * method.c (synthesize_method): Likewise. | |
5420 | * pt.c (tsubst_decl): Call c_apply_type_quals_to_decl when | |
5421 | creating new declarations. | |
5422 | ||
5423 | 1999-04-13 Mike Stump <mrs@wrs.com> | |
5424 | ||
5425 | * decl2.c (import_export_decl): Because vtables always reference | |
5426 | virtual functions, even if they are inlined, don't allow | |
5427 | -fno-implement-inlines to not emit them, instead, emit them with | |
5428 | the vtable. | |
5429 | * decl.c (start_function): Likewise. | |
5430 | ||
5431 | 1999-04-12 Jason Merrill <jason@yorick.cygnus.com> | |
5432 | ||
5433 | * cp-tree.h (struct lang_type): Add com_interface. | |
5434 | (CLASSTYPE_COM_INTERFACE): New macro. | |
5435 | * class.c (set_rtti_entry): COM interface classes have no RTTI | |
5436 | entries in their vtables; adjust. | |
5437 | (add_virtual_function, finish_base_struct, skip_rtti_stuff, | |
5438 | modify_one_vtable, fixup_vtable_deltas1, override_one_vtable, | |
5439 | finish_struct_1): Likewise. | |
5440 | * decl2.c (mark_vtable_entries): Likewise. | |
5441 | * rtti.c (build_headof, get_tinfo_fn_dynamic): Likewise. | |
5442 | * search.c (get_abstract_virtuals_1, get_abstract_virtuals, | |
5443 | expand_upcast_fixups): Likewise. | |
5444 | * tree.c (debug_binfo): Likewise. | |
5445 | ||
5446 | * cp-tree.h (COMPARE_NO_ATTRIBUTES): New macro. | |
5447 | * typeck.c (comptypes): If we get it, ignore attributes. | |
5448 | * class.c (instantiate_type): Use BASELINK_P. Change complain | |
5449 | parameter to flags; 2 means ignore attributes. | |
5450 | * call.c (build_op_delete_call): Pass it. | |
5451 | ||
5452 | * decl.c (xref_tag): Only complain once about using a typedef-name | |
5453 | with 'struct'. Downgrade to pedwarn. | |
5454 | ||
5455 | * decl.c (grokdeclarator): Allow [] syntax for zero-length array. | |
5456 | ||
5457 | * parse.y (absdcl_intern): New nonterminal. | |
5458 | (absdcl, direct_abstract_declarator): Use it. | |
5459 | ||
5460 | * pt.c (lookup_template_class): Look through implict typename. | |
5461 | ||
5462 | 1999-04-11 Mark Mitchell <mark@codesourcery.com> | |
5463 | ||
5464 | * friend.c (add_friend): Deal gracefully with error_mark_node. | |
5465 | * method.c (build_overload_value): Handle pointers-to-members as | |
5466 | template parameters. | |
5467 | ||
5468 | * decl.c (push_binding): Fix typo in comment. | |
5469 | ||
5470 | 1999-04-10 Mark Mitchell <mark@codesourcery.com> | |
5471 | ||
5472 | * error.c (dump_type_real): If a typename is a template-id, put | |
5473 | out the template arguments. | |
5474 | (dump_expr): Handle TEMPLATE_ID_EXPR. | |
5475 | * pt.c (lookup_template_class): Now that full arguments are | |
5476 | available everywhere, remove code that tried to guess them. | |
5477 | ||
5478 | 1999-04-09 Mark Mitchell <mark@codesourcery.com> | |
5479 | ||
5480 | * decl.c (make_typename_type): Complain if we don't find a type | |
5481 | when trying to make a typename type for a non-template type. | |
5482 | ||
5483 | 1999-04-09 Jason Merrill <jason@yorick.cygnus.com> | |
5484 | ||
5485 | * decl.c (start_decl): Pass attributes to grokdeclarator. | |
5486 | (grokdeclarator): Handle attributes on constructor-syntax | |
5487 | initializers. | |
5488 | ||
5489 | 1999-04-08 Mark Mitchell <mark@codesourcery.com> | |
5490 | ||
5491 | * error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands | |
5492 | don't have types. | |
5493 | ||
5494 | * search.c (template_self_reference_p): Tweak. | |
5495 | ||
5496 | 1999-04-07 Mark Mitchell <mark@codesourcery.com> | |
5497 | ||
5498 | * init.c (build_offset_ref): Don't build yet another weird data | |
5499 | structure to describe overloaded functions. | |
5500 | ||
5501 | 1999-04-06 Mark Mitchell <mark@codesourcery.com> | |
5502 | ||
5503 | * cp-tree.h (BASELINK_P): New macro. | |
5504 | (SET_BASELINK_P): Likewise. | |
5505 | * init.c (build_member_call): Remove needless assignment in if | |
5506 | statement. | |
5507 | * search.c (lookup_field_r): Fix handling when we are looking | |
5508 | specifically for a type; these are not hidden by functions and | |
5509 | variables. | |
5510 | (lookup_member): Use SET_BASELINK_P. | |
5511 | * tree.c (is_overloaded_fn): Use BASELINK_P. | |
5512 | (really_overloaed_fn): Likewise. | |
5513 | (get_first_fn): Likewise. | |
5514 | ||
5515 | 1999-04-05 Mark Mitchell <mark@codesourcery.com> | |
5516 | ||
5517 | * decl.c (lookup_name_current_level): Tweak, and improve | |
5518 | documentation. | |
5519 | ||
5520 | * class.c (maybe_fixup_vptrs): Remove declaration. | |
5521 | (build_class_init_list): Likewise. | |
5522 | * decl.c (pushdecl_class_level): Call check_template_shadow here | |
5523 | ... | |
5524 | (push_class_level_binding): ... not here. | |
5525 | * search.c (dfs_push_type_decls): Only avoid | |
5526 | template-self-reference TYPE_DECLs if they are from base classes. | |
5527 | ||
5528 | 1999-04-04 Mark Mitchell <mark@codesourcery.com> | |
5529 | ||
5530 | * pt.c (check_template_shadow): Don't treat OVERLOADs as _DECL | |
5531 | nodes. Tidy. | |
5532 | ||
5533 | 1999-04-03 Jason Merrill <jason@yorick.cygnus.com> | |
5534 | ||
5535 | * class.c (maybe_fixup_vptrs, build_class_init_list): Lose. | |
5536 | (finish_struct_1): Don't call build_class_init_list. | |
5537 | ||
5538 | 1999-04-02 Mark Mitchell <mark@codesourcery.com> | |
5539 | ||
5540 | * tinfo.h (__class_type_info): Fix illegal declaration. | |
5541 | ||
5542 | * cp-tree.def (TEMPLATE_ID_EXPR): Update comment. | |
5543 | * cp-tree.h (INHERITED_VALUE_BINDING_P): New macro. | |
5544 | (IDENTIFIER_CLASS_VALUE): Improve documentation. | |
5545 | (is_properly_derived_from): Declare. | |
5546 | (invalidate_class_lookup_cache): Likewise. | |
5547 | (maybe_maybe_note_name_used_in_class): Likewise. | |
5548 | (note_name_declared_in_class): Likewise. | |
5549 | (push_using_decl): Remove duplicate declaration. | |
5550 | (id_in_current_class): Remove declaration. | |
5551 | (push_class_binding): Change prototype. | |
5552 | (clear_identitifer_class_values): Declare. | |
5553 | * call.c (is_properly_derived_from): Make it global. | |
5554 | (build_new_function_call): Be careful about updating candidates. | |
5555 | (build_new_method_call): Handle COMPONENT_REFs. Don't crash when | |
5556 | asked to make illegal calls. | |
5557 | * class.c: Include splay-tree.h. | |
5558 | (class_stack_node): Add names_used slot. | |
5559 | (check_member_decl_is_same_in_complete_scope): Remove. | |
5560 | (add_method): Fix comment. Push the declaration into class | |
5561 | scope. | |
5562 | (finish_struct_1): When popping the class, pop the bindings too. | |
5563 | Remove check for data member/function member conflict. | |
5564 | (finish_struct): Remove calls to | |
5565 | check_member_decl_is_same_in_complete_scope. Change calls to | |
5566 | popclass. | |
5567 | (pushclass): Clear names_used in the class stack entry. | |
5568 | Use invalidate_class_lookup_cache to remove cached entries, rather | |
5569 | than magic values with popclass. Clear IDENTIFIER_CLASS_VALUE | |
5570 | before entering a new class. Remove dead code. Don't mess with | |
5571 | current_function_decl when pushing declarations. | |
5572 | (invalidate_class_lookup_cache): New function, split out from ... | |
5573 | (popclass): Here. Clean up names_used on our way out. | |
5574 | (instantiate_type): Adjust. | |
5575 | (build_self_reference): Don't push the declaration here. | |
5576 | (maybe_note_name_used_in_class): New function. | |
5577 | (note_name_declared_in_class): Likewise. | |
5578 | * decl.c (add_binding): Change prototype. | |
5579 | (find_class_binding_level): New function. | |
5580 | (innermost_nonclass_level): Likewise. | |
5581 | (current_binding_level): Update documentation. | |
5582 | (inner_binding_level): Remove. Replace with current_binding_level | |
5583 | throughout. | |
5584 | (push_binding_level): Remove special handling of | |
5585 | class_binding_level. | |
5586 | (pop_binding_level): Likewise. Use find_class_binding_level. | |
5587 | (suspend_binding_level): Likewise. | |
5588 | (global_bindings_p): Use innermost_nonclass_level. | |
5589 | (toplevel_bindings_p): Likewise. | |
5590 | (namespace_bindings_p): Likewise. | |
5591 | (pseudo_global_level_p): Likewise. | |
5592 | (push_binding): Clear INHERITED_VALUE_BINDING_P. | |
5593 | (add_binding): Check for illegal multiple declarations. Return a | |
5594 | value indicating whether or not the new binding was legal. | |
5595 | (push_local_binding): Skip over class binding levels. Check | |
5596 | return value from add_binding. | |
5597 | (push_class_binding): Set INHERITED_VALUE_BINDING_P. Call | |
5598 | note_name_declared_in_class. | |
5599 | (pushlevel_class): Remove "fake out the rest of the compiler" | |
5600 | code. | |
5601 | (poplevel_class): Reset IDENTIFIER_CLASS_VALUEs. | |
5602 | (clear_identifier_class_values): New function. | |
5603 | (pop_from_top_level): Use it. | |
5604 | (pop_everything): Tweak. | |
5605 | (maybe_process_template_type_declaration): Don't push the | |
5606 | declaration for the template here. | |
5607 | (pushtag): Don't push tag declarations into class scope here. | |
5608 | (pushdecl): Apply DeMorgan's law for readability. | |
5609 | (pushdecl_class_level): Remove special-case code for | |
5610 | TYPE_BEING_DEFINED. Handle OVERLOADs and anonymous unions. | |
5611 | (push_class_level_bindng): Deal with inherited bindings. | |
5612 | (lookup_name_real): Remove special-case code for | |
5613 | TYPE_BEING_DEFINED, and some implicit typename magic. | |
5614 | (grokdeclarator): Handle COMPONENT_REF for a template function. | |
5615 | (build_enumerator): Don't call pushdecl_class_level here. | |
5616 | (id_in_current_class): Remove. | |
5617 | * decl2.c (grokfield): Don't call pushdecl_class_level or | |
5618 | check_template_shadow. | |
5619 | * errfn.c (cp_file_of): Don't declare. | |
5620 | (cp_line_of): Likewise. | |
5621 | * error.c (dump_decl): Handle an OVERLOAD. | |
5622 | (cp_file_of): Likewise. | |
5623 | (cp_line_of): Likewise. | |
5624 | * init.c (build_member_call): Handle a COMPONENT_REF. | |
5625 | * lex.c (do_identifier): Call maybe_note_name_used_in_class, not | |
5626 | pushdecl_class_level. | |
5627 | * method.c (hack_identifier): Build COMPONENT_REFs for references | |
5628 | to member templates as well as member functions. Remove dead | |
5629 | code. | |
5630 | * parse.y (left_curly): Remove. | |
5631 | (nonnested_type): Call maybe_note_name_used_in_class, not | |
5632 | pushdecl_class_level. | |
5633 | * parse.c: Regenerated. | |
5634 | (nested_name_specifier_1): Likewise. | |
5635 | * pt.c (check_explicit_specialization): Adjust, for robustness. | |
5636 | (check_template_shadow): Handle OVERLOADs. | |
5637 | (build_template_decl): Set DECL_CONSTRUCTOR_P on the | |
5638 | TEMPLATE_DECL, if appropriate. | |
5639 | * search.c (envelope_add_decl): Remove. | |
5640 | (dfs_pushdecls): Likewise. | |
5641 | (dfs_compress_decls): Likewise. | |
5642 | (dfs_push_decls): New function. | |
5643 | (dfs_push_type_decls): Likewise. | |
5644 | (setup_class_bindings): Likewise. | |
5645 | (template_self_reference_p): Likewise. | |
5646 | (lookup_field_r): Use it. | |
5647 | (looup_member): Remove old comment. Deal with ambiguity. | |
5648 | (push_class_decls): Use dfs_push_decls and dfs_push_type_decls, | |
5649 | and remove envelope processing. | |
5650 | * semantics.c (begin_class_definition): Let pushclass push | |
5651 | declarations for base classes. | |
5652 | (finish_member_declaration): Push declarations into class scope. | |
5653 | * typeck.c (build_component_ref): Just put an OVERLOAD into the | |
5654 | COMPONENT_REF, not a TREE_LIST of an OVERLOAD. | |
5655 | (build_x_function_call): Deal with OVERLOAD. Handle template-ids. | |
5656 | * Makefile.in (class.o): Depend on splay-tree.h. | |
5657 | ||
5658 | Wed Mar 31 11:30:43 1999 Nathan Sidwell <nathan@acm.org> | |
5659 | ||
5660 | * cvt.c (convert_pointer_to_real): Use same_type_p. | |
5661 | * typeck.c (comp_target_types): Use same_type_p. | |
5662 | ||
5663 | 1999-03-31 Jason Merrill <jason@yorick.cygnus.com> | |
5664 | ||
5665 | * semantics.c (begin_inline_definitions, | |
5666 | finish_inline_definitions): Rename from finish_default_args and | |
5667 | begin_inline_definitions, respectively, to something that isn't a | |
5668 | total lie. :) | |
5669 | * parse.y (structsp): Adjust. | |
5670 | ||
5671 | * tree.c (hash_tree_cons): Remove obsolete via_* parms. | |
5672 | (list_hash_lookup): Likewise. | |
5673 | (hash_tree_chain): Adjust. | |
5674 | * pt.c (tsubst): Adjust. | |
5675 | (tsubst_arg_types): Use plain hash_tree_cons. | |
5676 | * cp-tree.h (hash_tree_cons_simple): Lose. | |
5677 | * parse.y (declmods, nonempty_cv_qualifiers): Use hash_tree_cons. | |
5678 | ||
5679 | Wed Mar 31 10:48:29 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
5680 | ||
5681 | * Makefile.in (hash.h): Generate using gperf language 'C', not | |
5682 | 'KR-C', so gperf uses the `const' keyword on strings. | |
5683 | ||
5684 | * gxx.gperf (resword): Const-ify a char*. | |
5685 | ||
5686 | 1999-03-30 Jason Merrill <jason@yorick.cygnus.com> | |
5687 | ||
5688 | * cp-tree.h (IDENTIFIER_AS_DESC, IDENTIFIER_AS_LIST, | |
5689 | CLASSTYPE_BASELINK_VEC, CLASSTYPE_N_SUPERCLASSES, | |
5690 | CLASSTYPE_N_BASECLASSES, CLASSTYPE_MAX_DEPTH, | |
5691 | CLASSTYPE_BASE_INIT_LIST, CLASSTYPE_AS_LIST, CLASSTYPE_ID_AS_LIST, | |
5692 | CLASSTYPE_BINFO_AS_LIST): Remove cruft. | |
5693 | * class.c, lex.c, parse.y, ptree.c, search.c, semantics.c, | |
5694 | tree.c: Adjust. | |
5695 | ||
5696 | 1999-03-29 Jason Merrill <jason@yorick.cygnus.com> | |
5697 | ||
5698 | * decl2.c (lang_decode_option): Remove -Wsign-promo from -Wall. | |
5699 | ||
5700 | 1999-03-28 Jason Merrill <jason@yorick.cygnus.com> | |
5701 | ||
5702 | * pt.c (fn_type_unification): Ignore 'this' parm from conversion ops. | |
5703 | ||
5704 | 1999-03-27 Mark Mitchell <mark@codesourcery.com> | |
5705 | ||
5706 | * cp-tree.h (add_friend): Declare. | |
5707 | (add_friends): Likewise. | |
5708 | * friend.c (add_friend): Make it global. Don't add to | |
5709 | DECL_BEFRIENDING_CLASSES if the befriending class is a template. | |
5710 | (add_friends): Make it global. | |
5711 | (make_friend_class): Don't add to DECL_BEFRIENDING_CLASSES if the | |
5712 | befriending class is a template. | |
5713 | * parse.y (component_decl_1): Fix typo in comment. | |
5714 | * parse.c: Regenerated. | |
5715 | * pt.c (instantiate_class_template): Use add_friend and | |
5716 | add_friends rather that duplicating some of their functionality | |
5717 | here. | |
5718 | ||
5719 | 1999-03-27 Jason Merrill <jason@yorick.cygnus.com> | |
5720 | ||
5721 | * call.c (build_field_call): Unify 'this' and non-'this' cases. | |
5722 | ||
5723 | * typeck.c (build_indirect_ref): Check for 'this' sooner. | |
5724 | ||
5725 | Fri Mar 26 10:20:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
5726 | ||
5727 | * call.c (op_error): Const-ify a char*. | |
5728 | (add_candidate, source_type, add_warning): Add static prototype. | |
5729 | (print_z_candidates): Const-ify a char*. | |
5730 | ||
5731 | * class.c (resolve_address_of_overloaded_function, | |
5732 | fixed_type_or_null, build_vtable_entry_ref): Add static prototype. | |
5733 | (get_vtable_name, finish_struct_1): Const-ify a char*. | |
5734 | ||
5735 | * cvt.c (convert_to_reference): Likewise. | |
5736 | ||
5737 | * decl.c (redeclaration_error_message, record_builtin_type, | |
5738 | record_unknown_type, member_function_or_else, bad_specifiers): | |
5739 | Likewise. | |
5740 | (find_binding, select_decl, unqualified_namespace_lookup, | |
5741 | lookup_flags, qualify_lookup, record_builtin_java_type, tag_name): | |
5742 | Add static prototype. | |
5743 | (warn_extern_redeclared_static, duplicate_decls, pushdecl, | |
5744 | implicitly_declare, record_builtin_java_type, define_function, | |
5745 | grok_op_properties, tag_name): Const-ify a char*. | |
5746 | ||
5747 | * cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const. | |
5748 | (define_function, finish_builtin_type): Const-ify a char*. | |
5749 | (cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn, | |
5750 | cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args. | |
5751 | (file_name_nondirectory): Const-ify a char*. | |
5752 | (init_filename_times): Don't prototype. | |
5753 | (compiler_error): Prototype. | |
5754 | (yyerror, init_repo): Const-ify a char*. | |
5755 | (build_srcloc): Don't prototype. | |
5756 | (build_x_indirect_ref, build_indirect_ref, build_component_addr): | |
5757 | Const-ify a char*. | |
5758 | (warn_for_assignment): Don't prototype. | |
5759 | (convert_for_initialization, readonly_error, check_for_new_type, | |
5760 | GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call): | |
5761 | Const-ify a char*. | |
5762 | ||
5763 | * decl2.c (acceptable_java_type, output_vtable_inherit, | |
5764 | setup_initp, start_objects, finish_objects, do_dtors, do_ctors, | |
5765 | merge_functions, decl_namespace, validate_nonmember_using_decl, | |
5766 | do_nonmember_using_decl): Add static prototype. | |
5767 | (lang_f_options): Const-ify a char*. | |
5768 | (finish_builtin_type): Likewise. | |
5769 | (add_function, arg_assoc_namespace, arg_assoc_class): Add static | |
5770 | prototype. | |
5771 | ||
5772 | * errfn.c: Include cp-tree.h. | |
5773 | (cp_thing): Add static prototype. | |
5774 | (compiler_error): Don't protoptype. | |
5775 | (cp_compiler_error): Cast `compiler_error' to `errorfn' before | |
5776 | passing it to `cp_thing'. | |
5777 | ||
5778 | * error.c (interesting_scope_p): Add static prototype. | |
5779 | ||
5780 | * except.c (build_eh_type_type, build_eh_type_type_ref): Const-ify | |
5781 | a char*. | |
5782 | ||
5783 | * init.c (compiler_error): Don't prototype. | |
5784 | (member_init_ok_or_else): Const-ify a char*. | |
5785 | (build_java_class_ref): Add static prototype. | |
5786 | ||
5787 | * lex.c (compiler_error): Don't prototype. | |
5788 | (get_time_identifier, interface_strcmp, extend_token_buffer, | |
5789 | handle_cp_pragma): Const-ify a char*. | |
5790 | (is_global, init_filename_times): Add static prototype. | |
5791 | (file_name_nondirectory, cplus_tree_code_name): Const-ify a char*. | |
5792 | (compiler_error): Change from fixed args to variable args. | |
5793 | (yyerror): Const-ify a char*. | |
5794 | ||
5795 | * parse.y (cond_stmt_keyword): Const-ify a char*. | |
5796 | (parse_decl): Add static prototype. | |
5797 | ||
5798 | * pt.c (template_args_equal, print_template_context): Likewise. | |
5799 | (print_candidates, check_default_tmpl_args): Const-ify a char*. | |
5800 | (instantiate_class_template): Likewise. | |
5801 | ||
5802 | * repo.c (get_base_filename, open_repo_file, init_repo): Likewise. | |
5803 | ||
5804 | * rtti.c (call_void_fn, expand_generic_desc, expand_si_desc, | |
5805 | expand_class_desc, expand_ptr_desc, expand_attr_desc): Likewise. | |
5806 | ||
5807 | * search.c (lookup_field_info, lookup_member): Likewise. | |
5808 | (lookup_member): Cast the first argument of `bzero' to a PTR. | |
5809 | ||
5810 | * sig.c (compiler_error): Don't prototype. | |
5811 | (build_signature_pointer_or_reference_nam): Const-ify a char*. | |
5812 | (get_sigtable_name, build_member_function_pointer): Likewise. | |
5813 | ||
5814 | * tree.c (compiler_error): Don't prototype. | |
5815 | (no_linkage_helper, build_srcloc): Add static prototype. | |
5816 | (build_vbase_pointer_fields): Const-ify a char*. | |
5817 | (__eprintf): Don't unnecessarily handle `const' when !__STDC__. | |
5818 | ||
5819 | * typeck.c (compiler_error): Don't prototype. | |
5820 | (convert_for_assignment): Const-ify a char*. | |
5821 | (comp_cv_target_types): Add static prototype. | |
5822 | (build_x_indirect_ref, build_indirect_ref, convert_arguments, | |
5823 | build_component_addr, build_unary_op, convert_for_initialization): | |
5824 | Const-ify a char*. | |
5825 | ||
5826 | * typeck2.c (ack): Add static prototype and change from fixed args | |
5827 | to variable args. | |
5828 | (readonly_error, check_for_new_type): Const-ify a char*. | |
5829 | ||
5830 | * xref.c (_XREF_FILE, find_file, filename, fctname, declname, | |
5831 | fixname, open_xref_file, classname, GNU_xref_begin): Likewise. | |
5832 | (GNU_xref_file): Likewise. Also use `xmalloc' instead of `malloc'. | |
5833 | (GNU_xref_end_scope, GNU_xref_ref, GNU_xref_decl, GNU_xref_call, | |
5834 | gen_assign, GNU_xref_member): Const-ify a char*. | |
5835 | ||
719bb4e3 | 5836 | 1999-03-25 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
5837 | |
5838 | * gxxint.texi: Remove old discussion on copying virtual bases. | |
5839 | ||
5840 | 1999-03-25 Zack Weinberg <zack@rabi.columbia.edu> | |
5841 | ||
5842 | * Make-lang.in: Remove all references to g++.o/g++.c. | |
5843 | Link g++ from gcc.o. | |
5844 | ||
5845 | 1999-03-25 Jason Merrill <jason@yorick.cygnus.com> | |
5846 | ||
5847 | * decl2.c (comdat_linkage): Treat vtables like functions. | |
5848 | ||
5849 | 1999-03-25 Mark Mitchell <mark@codesourcery.com> | |
5850 | ||
5851 | * pt.c (tsubst_decl): tsubst into DECL_BEFRIENDING_CLASSES. | |
5852 | ||
5853 | 1999-03-25 Nathan Sidwell <nathan@acm.org> | |
5854 | ||
5855 | * decl.c (init_decl_processing): Add `signed' type as a synonym | |
5856 | for `int'. | |
5857 | ||
5858 | 1999-03-25 Jason Merrill <jason@yorick.cygnus.com> | |
5859 | ||
5860 | * typeck.c (common_type): Handle cv-qual unification for pointers | |
5861 | to members. | |
5862 | ||
5863 | * decl.c (unqualified_namespace_lookup): Return error_mark_node | |
5864 | on error. | |
5865 | (lookup_name_real): Set LOOKUP_COMPLAIN when *not* parsing. | |
5866 | * lex.c (do_identifier): If we got error_mark_node, call | |
5867 | lookup_name again. | |
5868 | ||
719bb4e3 | 5869 | 1999-03-24 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
5870 | |
5871 | * class.c (finish_struct_1): Always reset TYPE_FIELDS for empty | |
5872 | classes. | |
5873 | ||
5874 | 1999-03-24 Jason Merrill <jason@yorick.cygnus.com> | |
5875 | ||
5876 | * decl.c (lookup_name_real): Do nested field lookup regardless of | |
5877 | TYPE_BEING_DEFINED. | |
5878 | ||
5879 | 1999-03-24 Mark Mitchell <mark@codesourcery.com> | |
5880 | ||
5881 | * cp-tree.h (lang_type): Remove has_assignment and | |
5882 | has_real_assignment. Add befriending_classes. | |
5883 | (TYPE_HAS_ASSIGNMENT): Remove. | |
5884 | (TYPE_HAS_REAL_ASSIGNMENT): Likewise. | |
5885 | (CLASSTYPE_BEFRIENDING_CLASSES): New macro. | |
5886 | (lang_decl): Document. | |
5887 | (DECL_BEFRIENDING_CLASSES): New macro. | |
5888 | (FRIEND_NAME): Move declaration to more obvious location. | |
5889 | (FRIEND_DECLS): Likewise. | |
5890 | * class.c (finish_struct_1): Don't use TYPE_HAS_REAL_ASSIGNMENT. | |
5891 | * decl.c (duplicate_decls): Copy DECL_BEFRIENDING_CLASSES. | |
5892 | (fixup_anonymous_union): Don't use TYPE_HAS_ASSIGNMENT. | |
5893 | (grok_op_properties): Likewise. | |
5894 | * friend.c (is_friend): Use FRIEND_NAME and FRIEND_DECLS. | |
5895 | (add_friend): Likewise. Don't do weird things with assignment | |
5896 | operators. Update DECL_BEFRIENDING_CLASSES. | |
5897 | (add_friends): Don't do weird things with assignment operators. | |
5898 | (make_friend_class): Likewise. Update | |
5899 | CLASSTYPE_BEFRIENDING_CLASSES. | |
5900 | * pt.c (instantiate_class_template): Don't set | |
5901 | TYPE_HAS_ASSIGNMENT. | |
5902 | (tsubst_copy): Substitute the TREE_TYPE for more unary | |
5903 | expressions. | |
5904 | * ptree.c (print_lang_type): Don't look at TYPE_HAS_ASSIGNMENT. | |
5905 | * search.c (protected_accessible_p): New function. | |
5906 | (friend_accessible_p): Likewise. | |
5907 | (accessible_p): Use them. | |
5908 | ||
5909 | 1999-03-23 Mark Mitchell <mark@codesourcery.com> | |
5910 | ||
5911 | * pt.c (convert_nontype_argument): Don't create things that aren't | |
5912 | PTRMEM_CSTs when applying a qualification conversion to a | |
5913 | PTRMEM_CST. | |
5914 | ||
5915 | 1999-03-23 Mark Mitchell <mark@codesourcery.com> | |
5916 | ||
5917 | * Makefile.in (OBJS): Don't mention hash.o. | |
5918 | (OBJDEPS): Likewise. | |
5919 | ||
5920 | 1999-03-23 Jason Merrill <jason@yorick.cygnus.com> | |
5921 | ||
5922 | * decl2.c (finish_file): Set at_eof to 2 after expanding ctors. | |
5923 | * decl.c (expand_static_init): Make sure we don't add any after | |
5924 | then. | |
5925 | ||
5926 | * decl.c (cp_finish_decl): Move intelligence about handling | |
5927 | DECL_COMDAT for variables from here... | |
5928 | * decl2.c (comdat_linkage): ...to here. | |
5929 | (maybe_make_one_only): Tweak. | |
5930 | (import_export_decl): Call comdat_linkage for variables, too. | |
5931 | (finish_file): Handle template statics properly. | |
5932 | ||
5933 | 1999-03-22 Mark Mitchell <mark@codesourcery.com> | |
5934 | ||
5935 | * cp-tree.h (TYPE_PTRMEMFUNC_P): Use TYPE_PTRMEMFUNC_FLAG. | |
5936 | Document internals of pointer-to-member-functions. | |
5937 | (DELTA2_FROM_PTRMEMFUNC): Make it call delta2_from_ptrmemfunc. | |
5938 | (PFN_FROM_PTRMEMFUNC): Likewise. | |
5939 | (build_type_conversion): Remove unused parameter. | |
5940 | (build_ptrmemfunc1): Declare. | |
5941 | (expand_ptrmemfunc_cst): New function. | |
5942 | (delta2_from_ptrmemfunc): Likewise. | |
5943 | (pfn_from_ptrmemfunc): Likewise. | |
5944 | * cvt.c (cp_convert_to_pointer): Remove unused parameter to | |
5945 | build_type_conversion. Use TYPE_PTRMEM_P for readability. | |
5946 | (convert_to_reference): Remove unused parameter to | |
5947 | build_type_conversion. | |
5948 | (ocp_convert): Likewise. | |
5949 | (build_user_type_conversion): Likewise. | |
5950 | * error.c (dump_expr): Handle NULL pointer-to-member functions. | |
5951 | * expr.c (cplus_expand_expr): Handle PTRMEM_CSTs for functions. | |
5952 | * method.c (build_overload_value): Don't go splitting CONSTRUCTORs | |
5953 | open when handling pointer-to-member functions. | |
5954 | * pt.c (convert_nontype_argument): Clean up error messages. Be | |
5955 | more stringent with pointers-to-members. | |
5956 | * typeck.c (build_ptrmemfunc1): Don't declare. Make it global. | |
5957 | (build_unary_op): Tidy ever-so-slightly. | |
5958 | (build_conditional_expr): Remove extra parameter to | |
5959 | build_type_conversion. | |
5960 | (build_ptrmemfunc): Build PTRMEM_CSTs if we know what function | |
5961 | we're using. | |
5962 | (expand_ptrmemfunc_cst): Define. | |
5963 | (delta2_from_ptrmemfunc): Likewise. | |
5964 | (pfn_from_ptrmemfunc): Likewise. | |
5965 | ||
5966 | 1999-03-19 Mark Mitchell <mark@codesourcery.com> | |
5967 | ||
5968 | * init.c (build_member_call): Handle template-id expressions | |
5969 | correctly. | |
5970 | * typeck.c (build_x_function_call): Likewise. | |
5971 | ||
5972 | 1999-03-19 Chip Salzenberg <chip@perlsupport.com> | |
5973 | ||
5974 | * friend.c (make_friend_class): Avoid core dump when | |
5975 | not-yet-defined friend type lacks TYPE_LANG_SPECIFIC(). | |
5976 | ||
5977 | 1999-03-18 Jason Merrill <jason@yorick.cygnus.com> | |
5978 | ||
5979 | * decl.c (start_function): Suppress normal linkage heuristics | |
5980 | for #pragma interface under MULTIPLE_SYMBOL_SPACES. | |
5981 | ||
5982 | 1999-03-19 Alexandre Oliva <oliva@dcc.unicamp.br> | |
5983 | ||
5984 | * Make-lang.in: ($(INTL_TARGETS)): Depend on cp/parse.c. | |
5985 | ($(srcdir)/cp/parse.c): Moved from ../Makefile.in. | |
5986 | ||
719bb4e3 | 5987 | 1999-03-17 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
5988 | |
5989 | * parse.y (named_complex_class_head_sans_basetype): | |
5990 | Do not push a scope for error_mark_node. | |
5991 | (maybe_base_class_list): Likewise. | |
5992 | ||
5993 | * decl.c (start_decl): Check for error_mark_node as a type. | |
5994 | Detected by g++.brendan/array-refs.C. | |
5995 | (start_decl_1): Likewise. Detected by g++.bugs/900322_01.C. | |
5996 | (maybe_build_cleanup_1): Likewise. Detected by | |
5997 | g++.jason/incomplete1.C. | |
5998 | ||
5999 | * tree.c (build_dummy_object): Use void_zero_node instead of the | |
6000 | error_mark_node. | |
6001 | (is_dummy_object): Check for such a node. | |
6002 | Detected by g++.bob/inherit1.C | |
6003 | ||
6004 | 1999-03-16 Jason Merrill <jason@yorick.cygnus.com> | |
6005 | ||
6006 | * method.c (old_backref_index): Split out... | |
6007 | (flush_repeats): From here. Rename back from try_old_backref. | |
6008 | (build_mangled_name): Put back some old-style repeat handling. | |
6009 | ||
6010 | Mon Mar 15 21:57:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
6011 | ||
6012 | * lex.c: Don't include setjmp.h. | |
6013 | (parse_float): New static function. | |
6014 | (pf_args): New struct. | |
6015 | (real_yylex): Use them in call to `do_float_handler'. | |
6016 | ||
6017 | 1999-03-15 Mark Mitchell <mark@markmitchell.com> | |
6018 | ||
6019 | * decl.c (xref_basetypes): Set CLASSTYPE_VBASECLASSES here. | |
6020 | * tree.c (layout_basetypes): Not here. | |
6021 | * search.c (dfs_search): Remove; no longer used. | |
6022 | ||
6023 | 1999-03-12 Mark Mitchell <mark@markmitchell.com> | |
6024 | ||
6025 | * decl2.c (validate_nonmember_using_decl): Issue sensible | |
6026 | error-messages on bogus qualifiers. | |
6027 | ||
6028 | 1999-03-14 Jason Merrill <jason@yorick.cygnus.com> | |
6029 | ||
6030 | * call.c (add_function_candidate): Fix uninitialized variable. | |
6031 | ||
6032 | * Makefile.in (search.o): Add dependency on varray.h. | |
6033 | ||
6034 | 1999-03-13 Jason Merrill <jason@yorick.cygnus.com> | |
6035 | ||
6036 | * decl.c (duplicate_decls): Use same_type_p. | |
6037 | * method.c (try_old_backref): Renamed from flush_repeats. Use | |
6038 | same_type_p. Don't try to handle repeats. Return success. | |
6039 | (is_back_referenceable_type): Return 0 if TYPE_FOR_JAVA. Support | |
6040 | calls from old-style code, too. | |
6041 | (check_ktype): Use same_type_p. | |
6042 | (check_btype): Use same_type_p. Don't pull out TYPE_MAIN_VARIANT. | |
6043 | (build_qualified_name): Simplify logic. | |
6044 | (process_overload_item): Strip typedefs and quals at the top. | |
6045 | (build_mangled_name_for_type_with_Gcode): Remove call to | |
6046 | type_canonical_variant. | |
6047 | (build_mangled_name): Likewise. Remove support for old-style | |
6048 | repeats, which have been disabled since 2.7.2. Don't mess with | |
6049 | TREE_USED. | |
6050 | (build_decl_overload_real): Don't mess with TREE_USED. | |
6051 | ||
6052 | 1999-03-13 Nathan Sidwell <nathan@acm.org> | |
6053 | ||
6054 | * error.c (cp_printers): Add 'F' escape character. | |
6055 | (dump_type_real): Remove TREE_LIST (fnargs) printing. | |
6056 | Functionality moved to dump_parameters. | |
6057 | (dump_type_suffix): Use dump_parameters and dump_exception_spec. | |
6058 | (dump_function_decl): Extend meaning of V parameter. Use | |
6059 | dump_parameters and dump_exception_spec. | |
6060 | (dump_parameters): New static function. | |
6061 | (dump_exception_spec): New static function. | |
6062 | (fndecl_as_string): Change argument semantics. Use | |
6063 | dump_function_decl directly. | |
6064 | ||
6065 | * sig.c (build_signature_table_constructor): Use cp_error. | |
6066 | ||
719bb4e3 | 6067 | 1999-03-13 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
6068 | |
6069 | * semantics.c (finish_switch_cond): Handle error cases gracefully. | |
6070 | Detected by g++.law/enum5.C. | |
6071 | ||
6072 | * typeck.c (build_modify_expr): Check for errors after resolving | |
6073 | offsets. Detected by g++.brendan/static1.C. | |
6074 | ||
6075 | * decl.c (complete_array_type): Ignore initial_value if it is an | |
6076 | error. Detected by g++.benjamin/17930.C. | |
6077 | ||
6078 | * typeck2.c (process_init_constructor): Return error if one argument | |
6079 | is in error. Detected by g++.benjamin/13478.C. | |
6080 | ||
719bb4e3 | 6081 | 1999-03-12 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
6082 | |
6083 | * decl.c (select_decl): Allow class templates when we need types. | |
6084 | * decl2.c (ambiguous_decl): Likewise. | |
6085 | ||
6086 | 1999-03-12 Mark Mitchell <mark@markmitchell.com> | |
6087 | ||
6088 | * lex.c (do_identifier): Correct call to enforce_access. | |
6089 | * search.c (accessible_p): Tweak comment. | |
6090 | ||
6091 | 1999-03-10 Mark Mitchell <mark@markmitchell.com> | |
6092 | ||
6093 | * semantics.c (begin_class_definition): Call build_self_reference. | |
6094 | (finish_member_declaration): Set DECL_CONTEXT for TYPE_DECLs. | |
6095 | ||
6096 | * search.c (assert_canonical_unmarked): Fix typo in prototype. | |
6097 | ||
6098 | * search.c (dfs_canonical_queue): New function. | |
6099 | (dfs_assert_unmarked_p): Likewise. | |
6100 | (assert_canonical_unmarked): Likewise. | |
6101 | (access_in_type): Use it. | |
6102 | (accessible_p): Likewise. Walk the whole tree when umarking. | |
6103 | ||
6104 | * sig.c (build_signature_table_constructor): Use accessible_p | |
6105 | instead of compute_access. | |
6106 | ||
6107 | 1999-03-09 Jason Merrill <jason@yorick.cygnus.com> | |
6108 | ||
6109 | * call.c (add_builtin_candidates): Handle overloaded conversion ops. | |
6110 | ||
6111 | 1999-03-09 Mark Mitchell <mark@markmitchell.com> | |
6112 | ||
6113 | * cp-tree.h (flag_access_control): Declare. | |
6114 | (TREE_VIA_PPUBLIC): Document. | |
6115 | (DECL_NONSTATIC_MEMBER_P): New macro. | |
6116 | (enforce_access): Return an indication of whether or not access | |
6117 | was permitted. | |
6118 | (build_self_reference): Change prototype. | |
6119 | (compute_access): Replace with ... | |
6120 | (accessible_p): New function. | |
6121 | (dfs_walk): Change prototype. | |
6122 | (dfs_unmark): Likewise. | |
6123 | (markedp): Likewise. | |
6124 | * call.c (enforce_access): Use accessible_p. | |
6125 | * class.c (build_self_reference): Insert the declaration into the | |
6126 | list of members for this type, and make it public. | |
6127 | * decl.c (xref_basetypes): Avoid ill-timed recursion. | |
6128 | * init.c (build_offset_ref): Use lookup_member, not three separate | |
6129 | name-lookups. Call enforce_access rather than checking for | |
6130 | illegal accesses here. | |
6131 | (resolve_offset_ref): Likewise. | |
6132 | * lex.c (do_identifier): Likewise. | |
6133 | * method.c (hack_identifier): Likewise. | |
6134 | * parse.y (self_reference): Remove. | |
6135 | (opt_component_decl_list): Don't use it. | |
6136 | * parse.c: Regenerated. | |
6137 | * pt.c (print_candidates): Generalize to handle lists of | |
6138 | overloaded functions. | |
6139 | (instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's | |
6140 | not set. | |
6141 | (get_template_base): Use new calling convention for dfs_walk. | |
6142 | * search.c: Include varray.h. Add prototypes. | |
6143 | (dfs_walk): Accept a data pointer to pass to the work functions. | |
6144 | All callers changed. All work functions changed. | |
6145 | (breadth_first_search): Rename to bfs_walk, and make consistent | |
6146 | with dfs_walk. | |
6147 | (dfs_walk_real): New function. | |
6148 | (canonical_binfo): New function. | |
6149 | (context_for_name_lookup): Likewise. | |
6150 | (shared_marked_p): Likewise. | |
6151 | (shared_unmarked_p): Likewise. | |
6152 | (lokup_field_queue_p): Likewise. | |
6153 | (lookup_field_r): Generalize to handle both functions and fields. | |
6154 | (lookup_field): Just call lookup_member. | |
6155 | (lookup_fnfields): Likewise. | |
6156 | (lookup_member): Move body of lookup_field here and generalize. | |
6157 | (dfs_accessible_queue_p): Likewise. | |
6158 | (dfs_accessible_p): Likewise. | |
6159 | (dfs_access_in_type): Likewise. | |
6160 | (access_in_type): Likewise. | |
6161 | (compute_access): Remove, and replace with ... | |
6162 | (accessible_p): New function. | |
6163 | (vbase_types): Remove. | |
6164 | (vbase_decl_ptr_intermediate): Likewise. | |
6165 | (vbase_decl_ptr): Likewise. | |
6166 | (vbase_init_result): Likewise. | |
6167 | (closed_envelopes): Likewise. | |
6168 | (bvtable): Likewise. | |
6169 | ||
6170 | 1999-03-09 Jason Merrill <jason@yorick.cygnus.com> | |
6171 | ||
6172 | * call.c (add_function_candidate): Check for proper number of args | |
6173 | before checking the validity of those args. | |
6174 | ||
6175 | 1999-03-06 Jason Merrill <jason@yorick.cygnus.com> | |
6176 | ||
6177 | * cp-tree.h (struct lang_type): Add anon_union field. | |
6178 | (ANON_UNION_TYPE_P): Use it instead of examining type. | |
6179 | (SET_ANON_UNION_TYPE_P): New macro. | |
6180 | * decl.c (check_tag_decl): Use it. | |
6181 | ||
6182 | * search.c (compute_access): Handle non-type contexts earlier, and | |
6183 | handle NULL_TREE. | |
6184 | ||
6185 | * tree.c (build_exception_variant): Use copy_to_permanent. | |
6186 | ||
6187 | * decl2.c (setup_initp): Give statics with no priority the default | |
6188 | priority here. | |
6189 | (do_dtors, do_ctors, finish_file): Remove special handling of | |
6190 | non-prioritized statics. | |
6191 | ||
6192 | 1999-03-05 Mark Mitchell <mark@markmitchell.com> | |
6193 | ||
6194 | * cp-tree.h (ANON_UNION_TYPE_P): Robustify. | |
6195 | * decl.c (make_typename_type): Don't issue an error if an | |
6196 | immediate lookup fails; it migt be resolved later. | |
6197 | * friend.c (is_friend): Add comment. | |
6198 | * search.c (breadth_first_search): Add POSTFN and DATA | |
6199 | parameters. Tidy. All callers changed. | |
6200 | (lookup_field_queue_p): New function. | |
6201 | (lookup_field_r): Likewise. | |
6202 | (lookup_field_post): Likewise. | |
6203 | (lookup_field): Use them, via breadth_first_search, instead of | |
6204 | duplicating logic. | |
6205 | (compute_access): Robustify. | |
6206 | (lookup_fnfield_info): New structure. | |
6207 | ||
6208 | 1999-03-05 Jason Merrill <jason@yorick.cygnus.com> | |
6209 | ||
6210 | * pt.c (tsubst, case ARRAY_REF): Use tsubst_expr again. | |
6211 | ||
6212 | 1999-03-03 Jason Merrill <jason@yorick.cygnus.com> | |
6213 | ||
6214 | * class.c, decl2.c, method.c, pt.c: Add 'static' to make SunOS 4 | |
6215 | cc happy. | |
6216 | ||
6217 | * decl2.c (import_export_class): Also return if | |
6218 | CLASSTYPE_INTERFACE_ONLY is set. | |
6219 | ||
719bb4e3 | 6220 | 1999-03-03 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
6221 | |
6222 | * decl.c (push_overloaded_decl): Only overwrite the old binding if | |
6223 | there was one. | |
6224 | * decl2.c (do_local_using_decl): Fix loop termination. | |
6225 | ||
6226 | 1999-03-02 Mark Mitchell <mark@markmitchell.com> | |
6227 | ||
6228 | * cp-tree.h (determine_specialization): Don't declare. | |
6229 | * pt.c (determine_specialization): Make it static. Eliminate | |
6230 | complain parameter. Note that decl is always non-NULL now, and | |
6231 | simplify accordingly. | |
6232 | ||
6233 | * decl.c (maybe_push_to_top_level): Always call | |
6234 | push_cp_function_context. | |
6235 | (pop_from_top_level): Always call pop_cp_function_context. | |
6236 | ||
6237 | 1999-02-26 Nathan Sidwell <nathan@acm.org> | |
6238 | ||
6239 | * typeck.c (complete_type_or_else): Add VALUE arg, for helpful | |
6240 | diagnostics. | |
6241 | * cp-tree.h (complete_type_or_else): Added VALUE parameter. | |
6242 | * init.c (build_new_1): Extra arg to complete_type_or_else. | |
6243 | (build_delete): Likewise. | |
6244 | * typeck.c (require_complete_type): Likewise. | |
6245 | (pointer_int_sum): Likewise. | |
6246 | (pointer_diff): Likewise. | |
6247 | (build_component_ref): Likewise. | |
6248 | ||
6249 | * typeck2.c (incomplete_type_error): Always use cp_error. | |
6250 | Show declaration of undefined type, if appropriate. | |
6251 | Deal with UNKNOWN_TYPE nodes. | |
6252 | ||
6253 | * typeck.c (require_complete_type): Use TYPE_SIZE as | |
6254 | size_zero_node to mean incomplete type. | |
6255 | (require_complete_type_in_void): New function. | |
6256 | (build_compound_expr): Call complete_type_in_void for LHS. | |
6257 | (build_c_cast): Call complete_type_in_void for void cast. | |
6258 | * cvt.c (ocp_convert): Call complete_type_in_void for void cast. | |
6259 | * decl.c (cplus_expand_expr_stmt): Void expression checks moved to | |
6260 | require_complete_type_in_void. Call it. | |
6261 | * cp-tree.h (require_complete_type_in_void): Prototype new function. | |
6262 | ||
6263 | * typeck.c (convert_arguments): Use alternative format for | |
6264 | function decls. Don't require_complete_type here. Simplify | |
6265 | diagnostic printing. | |
6266 | (convert_for_initialization): Don't require_complete_type on RHS yet. | |
6267 | * call.c (convert_arg_to_ellipsis): Call require_complete_type. | |
6268 | ||
6269 | * call.c (build_over_call): Cope with qualified void return type. | |
6270 | * semantics.c (finish_call_expr): Likewise. | |
6271 | * typeck.c (build_function_call_real): Likewise. | |
6272 | (c_expand_return): Likewise. | |
6273 | * decl2.c (reparse_absdcl_as_expr): Cope with qualified void type. | |
6274 | ||
6275 | * call.c (print_z_candidates): Use alternate print format, to be | |
6276 | consistent with (pt.c) print_candidates. | |
6277 | * method.c (hack_identifier): List candidate members. | |
6278 | * search.c (lookup_field): Build ambiguous list, and show it, if | |
6279 | ambiguous. | |
6280 | ||
6281 | 1999-02-26 Mark Mitchell <mark@markmitchell.com> | |
6282 | ||
6283 | * typeck.c (decay_conversion): Don't confuse constant array | |
6284 | variables with their initializers. | |
6285 | ||
6286 | * decl.c (duplicate_decls): Copy DECL_TEMPLATE_INSTANTIATED when | |
6287 | merging decls. | |
6288 | * pt.c (regenerate_decl_from_template): Tweak for clarity. | |
6289 | (instantiate_decl): Mark a decl instantiated before regenerating | |
6290 | it to avoid recursion. | |
6291 | * tree.c (mapcar): Don't call decl_constant_value unless we know | |
6292 | something is TREE_READONLY_DECL_P. | |
6293 | ||
6294 | * class.c (check_for_override): Don't stop checking when we find | |
6295 | the first overridden function. Delete #if 0'd code. | |
6296 | * search.c (get_matching_virtual): Likewise. | |
6297 | ||
6298 | 1999-02-25 Richard Henderson <rth@cygnus.com> | |
6299 | ||
6300 | * lang-specs.h: Define __FAST_MATH__ when appropriate. | |
6301 | ||
6302 | 1999-02-24 Mike Stump <mrs@wrs.com> | |
6303 | ||
6304 | * typeck.c (convert_for_assignment): Allow boolean integral constant | |
6305 | expressions to convert to null pointer. | |
6306 | ||
719bb4e3 | 6307 | 1999-02-24 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
6308 | |
6309 | * decl.c (lookup_namespace_name): Resolve namespace aliases. | |
6310 | ||
6311 | * class.c (push_nested_class): Allow namespaces. | |
6312 | ||
6313 | * decl2.c (set_decl_namespace): Add friendp parameter. | |
6314 | * decl.c (grokfndecl): Pass it. | |
6315 | (grokvardecl): Likewise. | |
6316 | * cp-tree.h: Change declaration. | |
6317 | ||
6318 | 1999-02-24 Jason Merrill <jason@yorick.cygnus.com> | |
6319 | ||
6320 | * pt.c (tsubst): Allow an array of explicit size zero. | |
6321 | ||
6322 | 1999-02-23 Jason Merrill <jason@yorick.cygnus.com> | |
6323 | ||
6324 | * errfn.c: Change varargs code to look like toplev.c. | |
6325 | ||
6326 | * method.c (process_modifiers): Don't prepend 'U' for char or | |
6327 | wchar_t. | |
6328 | ||
6329 | 1999-02-20 Craig Burley <craig@jcb-sc.com> | |
6330 | ||
6331 | * Make-lang.in (cplib2.ready): Don't consider updating | |
6332 | cplib2 stuff if the current directory isn't writable, as | |
6333 | it won't work (such as during a `make install'). | |
6334 | ||
6335 | Sun Feb 21 20:38:00 1999 H.J. Lu (hjl@gnu.org) | |
6336 | ||
6337 | * decl2.c (start_objects): Make file scope constructors and | |
6338 | destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and | |
6339 | ASM_OUTPUT_DESTRUCTOR are defined. | |
6340 | ||
6341 | 1999-02-19 Mark Mitchell <mark@markmitchell.com> | |
6342 | ||
6343 | * cp-tree.h (CLASSTYPE_METHOD_VEC): Adjust comment. | |
6344 | (fn_type_unification): Adjust prototype. | |
6345 | (lookup_fnfields_1): Declare. | |
6346 | * call.c (add_template_candidate_real): Adjust call to | |
6347 | fn_type_unification. | |
6348 | * class.c (add_method): Don't allow duplicate declarations of | |
6349 | constructors or destructors. | |
6350 | (resolve_address_of_overloaded_function): Remove unused variable. | |
6351 | Adjust call to fn_type_unification. | |
6352 | * decl.c (grokfndecl): Be more robust in the face of illegal | |
6353 | specializations. | |
6354 | * decl2.c (check_classfn): Remove hokey handling of member | |
6355 | templates. | |
6356 | * pt.c (determine_specialization): Improve comments. Adjust to | |
6357 | handle template argument deduction as per the standard. | |
6358 | (check_explicit_specialization): Fix comment spacing. Handle | |
6359 | type-conversion operators correctly. Improve error-recovery. | |
6360 | (fn_type_unification): Remove EXTRA_FN_ARG parameter. | |
6361 | (get_bindings_real): Simplify handling of static members. | |
6362 | * search.c (lookup_fnfields_1): Make it have external linkage. | |
6363 | * typeck.c (compparms): Fix comment. | |
6364 | (build_unary_op): Don't try to figure out which template | |
6365 | specialization is being referred to when when the address-of | |
6366 | operator is used with a template function. | |
6367 | ||
6368 | Thu Feb 18 23:40:01 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
6369 | ||
6370 | * cp-tree.h (lvalue_or_else): Qualify a char* with the `const' | |
6371 | keyword to match an analogous change at the top level. | |
6372 | ||
6373 | * tree.c (lvalue_or_else): Likewise. | |
6374 | ||
6375 | 1999-02-17 Mark Mitchell <mark@markmitchell.com> | |
6376 | ||
6377 | * decl.c (xref_basetypes): Comment. | |
6378 | * pt.c (instantiate_class_template): Use xref_basetypes. | |
6379 | ||
6380 | 1999-02-16 Mark Mitchell <mark@markmitchell.com> | |
6381 | ||
6382 | * cp-tree.h (tsubst): Change prototype. | |
6383 | (tsubst_expr): Likewise. | |
6384 | (tsubst_copy): Likewise. | |
6385 | (type_unification): Remove prototype. | |
6386 | * call.c (convert_default_arg): Adjust call to tsubst_expr. | |
6387 | * class.c (resolve_address_of_overloaded_function): Just use | |
6388 | fn_type_unification. | |
6389 | * decl.c (grokdeclarator): Adjust call to tsubst. | |
6390 | * method.c (build_template_parm_names): Likewise. | |
6391 | * pt.c (GTB_VIA_VIRTUAL): New macro. | |
6392 | (GTB_IGNORE_TYPE): Likewise. | |
6393 | (resolve_overloaded_unification): Add `complain' parameter. | |
6394 | (try_one_overload): Likewise. | |
6395 | (tsubst_template_arg_vector): Likewise. | |
6396 | (tsubst_template_parms): Likewise. | |
6397 | (tsubst_aggr_type): Likewise. | |
6398 | (tsubst_arg_types): Likewise. | |
6399 | (tsubst_call_declarator_parms): Likewise. | |
6400 | (unify): Remove explicit_mask. | |
6401 | (type_unification_real): Likewise. | |
6402 | (get_template_base_recursive): Likewise. | |
6403 | (coerce_template_template_parms): Provide prototype. | |
6404 | (tsubst_function_type): Likewise. | |
6405 | (try_class_unification): New function. | |
6406 | All callers changed to use new complain parameter. | |
6407 | (get_template_base): Use try_class_unification. | |
6408 | (unify): Adjust handling of classes derived from template types. | |
6409 | (fn_type_unification): Substitute explicit arguments before | |
6410 | unification. | |
6411 | ||
6412 | 1999-02-16 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> | |
6413 | ||
6414 | * decl.c (pushdecl): Remove dead code. | |
6415 | ||
6416 | 1999-02-16 Jason Merrill <jason@yorick.cygnus.com> | |
6417 | ||
6418 | * decl2.c (finish_objects): Fix code I missed in previous change. | |
6419 | ||
6420 | 1999-02-13 Jason Merrill <jason@yorick.cygnus.com> | |
6421 | ||
6422 | * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node. | |
6423 | (grokdeclarator): Don't expect error_mark_node from grokfndecl. | |
6424 | ||
6425 | * pt.c (maybe_process_partial_specialization): Complain about | |
6426 | 'template <>' on non-specialization. | |
6427 | ||
6428 | 1999-02-10 Jason Merrill <jason@yorick.cygnus.com> | |
6429 | ||
6430 | * decl.c (grokdeclarator): Catch weird declarators. | |
6431 | * decl2.c (finish_file): Don't abort because of namespace parsing | |
6432 | failure. | |
6433 | (check_decl_namespace): Remove. | |
6434 | ||
6435 | 1999-02-09 Mark Mitchell <mark@markmitchell.com> | |
6436 | ||
6437 | * cp-tree.h (get_template_base): Don't declare. | |
6438 | (dfs_walk): Declare. | |
6439 | (dfs_unmark): Likewise. | |
6440 | (markedp): Likewise. | |
6441 | * pt.c (unify): Remove duplicate declaration. Pass tparms and | |
6442 | targs to get_template_base. | |
6443 | (get_template_base_recursive): Move here from search.c. Check to | |
6444 | see that the base found can be instantiated to form the desired | |
6445 | type. | |
6446 | (get_template_base): Likewise. | |
6447 | (get_class_bindings): Simplify. | |
6448 | * search.c (get_template_base_recursive): Move to pt.c. | |
6449 | (get_template_base): Likewise. | |
6450 | (markedp): Make it global. | |
6451 | (dfs_walk): Likewise. | |
6452 | (dfs_unmark): Likewise. | |
6453 | ||
6454 | 1999-02-07 Jason Merrill <jason@yorick.cygnus.com> | |
6455 | ||
6456 | * pt.c (maybe_process_partial_specialization): Complain about | |
6457 | specialization in wrong namespace. | |
6458 | * tree.c (decl_namespace_context): New fn. | |
6459 | ||
6460 | 1999-02-06 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> | |
6461 | ||
6462 | * decl2.c (arg_assoc_type): Handle TEMPLATE_TEMPLATE_PARM. | |
6463 | * pt.c (coerce_template_template_parms): Handle nested | |
6464 | template template parameters. | |
6465 | ||
6466 | Sat Feb 6 18:08:40 1999 Jeffrey A Law (law@cygnus.com) | |
6467 | ||
6468 | * typeck2.c: Update email addresses. | |
6469 | ||
6470 | 1999-02-04 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> | |
6471 | ||
6472 | * pt.c (unify): Call coerce_template_parms with the COMPLAIN flag | |
6473 | turned off. | |
6474 | ||
6475 | 1999-02-04 Jason Merrill <jason@yorick.cygnus.com> | |
6476 | ||
6477 | * lex.c (retrofit_lang_decl): Split out... | |
6478 | (build_lang_decl): From here. | |
6479 | * decl.c (pushdecl): Call it for functions generated by the middle | |
6480 | end that don't have DECL_LANG_SPECIFIC. | |
6481 | * cp-tree.h: Declare it. | |
6482 | ||
6483 | * decl2.c: Remove flag_init_priority. Always enable initp stuff. | |
6484 | (start_objects, finish_objects): Only use special | |
6485 | init_priority code if the user specified a priority. | |
6486 | (do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp | |
6487 | objects. | |
6488 | ||
6489 | Wed Feb 3 22:50:17 1999 Marc Espie <Marc.Espie@liafa.jussieu.fr> | |
6490 | ||
6491 | * Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and | |
6492 | mkstemp.o. Get them from libiberty now. | |
6493 | (DEMANGLER_PROG): Simlarly, remove getopt.o getopt1.o. | |
6494 | ||
6495 | Tue Feb 2 22:38:48 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> | |
6496 | ||
6497 | * decl2.c (lang_decode_option): Use read_integral_parameter. | |
6498 | ||
6499 | 1999-02-01 Mark Mitchell <mark@markmitchell.com> | |
6500 | ||
6501 | * pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED | |
6502 | before calling complete_type_or_else. | |
6503 | ||
6504 | Mon Feb 1 09:49:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
6505 | ||
6506 | * input.c (inline): Don't define, its handled by system.h. | |
6507 | ||
6508 | Sun Jan 31 20:34:29 1999 Zack Weinberg <zack@rabi.columbia.edu> | |
6509 | ||
6510 | * decl2.c: Don't define flag_no_ident here. Don't process | |
6511 | -f(no-)ident here. | |
6512 | * cp-tree.h: Don't declare flag_no_ident here. | |
6513 | * lang-specs.h: Map -Qn to -fno-ident. | |
6514 | ||
6515 | 1999-01-28 Jason Merrill <jason@yorick.cygnus.com> | |
6516 | ||
6517 | * cp-tree.h (struct tree_binding): Replace scope field with a union. | |
6518 | (BINDING_SCOPE): Adjust. | |
6519 | * decl.c (BINDING_LEVEL): Adjust. | |
6520 | ||
6521 | 1999-01-26 Jason Merrill <jason@yorick.cygnus.com> | |
6522 | ||
6523 | * pt.c (instantiate_class_template): Set up the DECL_INITIAL of | |
6524 | member constants. | |
6525 | ||
6526 | * init.c (expand_member_init): Pull out TYPE_MAIN_VARIANT in | |
6527 | a ctor initializer. | |
6528 | ||
6529 | * tree.c (equal_functions): Fix name in prototype. | |
6530 | ||
6531 | * decl.c (push_local_binding): Add FLAGS argument. | |
6532 | (pushdecl, push_overloaded_decl): Pass it. | |
6533 | * decl2.c (do_local_using_decl): Likewise. | |
6534 | * cp-tree.h: Adjust prototype. | |
6535 | * decl.c (poplevel): Fix logic. | |
6536 | ||
6537 | * decl.c (push_local_binding): Also wrap used decls in a TREE_LIST. | |
6538 | (poplevel): Handle that. Fix logic for removing TREE_LISTs. | |
6539 | (cat_namespace_levels): Don't loop forever. | |
6540 | ||
6541 | 1999-01-25 Richard Henderson <rth@cygnus.com> | |
6542 | ||
6543 | * typeck.c (build_reinterpret_cast): Fix typo in duplicated test. | |
6544 | ||
6545 | 1999-01-25 Jason Merrill <jason@yorick.cygnus.com> | |
6546 | ||
6547 | * class.c (resolve_address_of_overloaded_function): Mark the | |
6548 | chosen function used. | |
6549 | ||
6550 | * call.c (build_call): Make sure that a function coming in has | |
6551 | been marked used already. | |
6552 | * decl.c (expand_static_init): Call mark_used instead of | |
6553 | assemble_external. | |
6554 | * except.c (call_eh_info, do_pop_exception, expand_end_eh_spec, | |
6555 | alloc_eh_object, expand_throw): Likewise. | |
6556 | * init.c (build_builtin_delete_call): Likewise. | |
6557 | * rtti.c (call_void_fn, get_tinfo_fn, build_dynamic_cast_1, | |
6558 | expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, | |
6559 | expand_generic_desc): Likewise. | |
6560 | ||
719bb4e3 | 6561 | 1999-01-25 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
6562 | |
6563 | * tree.c (equal_functions): New function. | |
6564 | (ovl_member): Call it. | |
6565 | ||
6566 | 1999-01-24 Jason Merrill <jason@yorick.cygnus.com> | |
6567 | ||
6568 | * cvt.c (cp_convert_to_pointer): Fix conversion of 0 to pmf. | |
6569 | ||
719bb4e3 | 6570 | 1999-01-25 Martin von Löwis <loewis@informatik.hu-berlin.de> |
4e876a0f NS |
6571 | |
6572 | * decl.c (decls_match): Return 1 if old and new are identical. | |
6573 | (push_overloaded_decl): Set OVL_USED when PUSH_USING. | |
6574 | ||
6575 | 1999-01-24 Jason Merrill <jason@yorick.cygnus.com> | |
6576 | ||
6577 | * decl.c (start_function): Make member functions one_only on windows. | |
6578 | * decl2.c (import_export_decl): Likewise. | |
6579 | ||
6580 | * decl.c (grokdeclarator): Don't complain about implicit int in | |
6581 | a system header. Change same-name field check to not complain in | |
6582 | a system header instead of within extern "C". | |
6583 | ||
6584 | 1999-01-21 Mark Mitchell <mark@markmitchell.com> | |
6585 | ||
6586 | * cp-tree.h (PUSH_GLOBAL): New macro. | |
6587 | (PUSH_LOCAL): Likewise. | |
6588 | (PUSH_USING): Likewise. | |
6589 | (namespace_bindings_p): Declare. | |
6590 | (push_overloaded_decl): Likewise. | |
6591 | * decl.c (push_overloaded_decl): Don't make it static. Check for | |
6592 | illegal declarations after using declarations here. | |
6593 | (namespace_bindings_p): Likewise. | |
6594 | (duplicate_decls): Don't consider declarations from different | |
6595 | namespaces to be the same. | |
6596 | (pushdecl): Use symbolic PUSH_ constants in calls to | |
6597 | push_overloaded_decl. | |
6598 | (push_overloaded_decl_1): Likewise. | |
6599 | * decl2.c (validate_nonmember_using_decl): Tweak `std' handling. | |
6600 | (do_nonmember_using_decl): Check for illegal using declarations | |
6601 | after ordinary declarations here. | |
6602 | (do_local_using_decl): Call pushdecl to insert declarations. | |
6603 | ||
6604 | 1999-01-21 Jason Merrill <jason@yorick.cygnus.com> | |
6605 | ||
6606 | * decl.c (grokdeclarator): Fix lang_c -> lang_name_c typo. | |
6607 | ||
6608 | 1999-01-21 Mark Mitchell <mark@markmitchell.com> | |
6609 | ||
6610 | * tree.c (build_cplus_array_type_1): Don't call build_array_type | |
6611 | for types involving template parameters. | |
6612 | ||
6613 | * cp-tree.h (PARM_DECL_EXPR): Delete. | |
6614 | (convert_default_arg): Change prototype. | |
6615 | (check_default_argument): Declare. | |
6616 | (search_tree): Likewise. | |
6617 | * call.c (convert_default_arg): Take the function to which the | |
6618 | default argument belongs as a parameter, and do any necessary | |
6619 | instantiation here, instead of ... | |
6620 | (build_over_call): Here. | |
6621 | * decl.c (local_variable_p): New function. | |
6622 | (check_default_argument): Likewise, split out and tidied from ... | |
6623 | (grokparms): Here. | |
6624 | * error.c (dump_expr): Don't set PARM_DECL_EXPR. | |
6625 | * pt.c (tsubst_call_declarator_parms): New function. | |
6626 | (for_each_template_parm): Handle ARRAY_REFs. Do the obvious thing | |
6627 | with CALL_EXPRs, rather than trying to be clever. | |
6628 | (tsubst): Use tsubst_call_declarator_parms. | |
6629 | * tree.c (search_tree): Don't make it static. | |
6630 | * typeck.c (convert_arguments): Use new interface to | |
6631 | convert_default_arg. | |
6632 | ||
6633 | 1999-01-20 Mark Mitchell <mark@markmitchell.com> | |
6634 | ||
6635 | * error.c (dump_function_decl): Don't print the argument types for | |
6636 | a function when the verbosity level is negative. | |
6637 | ||
6638 | * call.c (build_over_call): Check format attributes at call-time. | |
6639 | ||
6640 | * pt.c (tsubst_copy): Fix comment. | |
6641 | (unify): Don't allow unification with variable-sized arrays. | |
6642 | ||
6643 | * semantics.c (finish_stmt_expr): When processing a template make | |
6644 | the BIND_EXPR long-lived. | |
6645 | ||
6646 | 1999-01-19 Jason Merrill <jason@yorick.cygnus.com> | |
6647 | ||
6648 | * decl2.c (finish_vtable_vardecl): Make vtables comdat here. | |
6649 | (import_export_vtable): Not here. | |
6650 | ||
6651 | 1999-01-18 Jason Merrill <jason@yorick.cygnus.com> | |
6652 | ||
6653 | * typeck.c (build_component_ref): Wrap an OVERLOAD around a unique | |
6654 | non-static member function. | |
6655 | ||
6656 | 1999-01-18 Nathan Sidwell <nathan@acm.org> | |
6657 | ||
6658 | * class.c (instantiate_type): Only diagnose illegal address of member | |
6659 | function if complaining. | |
6660 | ||
6661 | * decl.c (lookup_name_real): Remove duplicate code. | |
6662 | ||
6663 | 1999-01-18 Jason Merrill <jason@yorick.cygnus.com> | |
6664 | ||
6665 | * tree.c (copy_template_template_parm): Use permanent_obstack. | |
6666 | ||
6667 | 1999-01-18 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> | |
6668 | ||
6669 | * pt.c (unify): Remove restrictions on deduction of argument | |
6670 | of template template parameters. | |
6671 | ||
6672 | 1999-01-18 Nathan Sidwell <nathan@acm.org> | |
6673 | ||
6674 | * rtti.c (build_dynamic_cast_1): Resolve OFFSET_REF exprs. | |
6675 | ||
6676 | * class.c (resolve_address_of_overloaded_function): Show list of | |
6677 | all candidates, when none of them match. | |
6678 | ||
6679 | 1999-01-18 Chip Salzenberg <chip@perlsupport.com> | |
6680 | ||
6681 | * typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up | |
6682 | definition of 'casting away const' in reinterpret_cast<>. | |
6683 | ||
6684 | 1999-01-18 Graham <grahams@rcp.co.uk> | |
6685 | ||
6686 | * cvt.c: Add include for decl.h, remove extern for | |
6687 | static_aggregates which is now provided by decl.h. | |
6688 | ||
6689 | * Makefile.in (cvt.o): Add dependency for decl.h and missing | |
6690 | dependencies for convert.h and flags.h. | |
6691 | ||
6692 | 1999-01-18 Nathan Sidwell <nathan@acm.org> | |
6693 | ||
6694 | * decl2.c (do_dtors): Set current location to that of the | |
6695 | decl, for sensible diagnostics and debugging. | |
6696 | (check_classfn): Issue `incomplete type' error, if | |
6697 | class is not defined. | |
6698 | ||
6699 | 1999-01-16 Jason Merrill <jason@yorick.cygnus.com> | |
6700 | ||
6701 | * cp-tree.h: Add prototype for bound_pmf_p. | |
6702 | ||
6703 | 1999-01-16 Jason Merrill <jason@yorick.cygnus.com> | |
6704 | Manfred Hollstein <manfred@s-direktnet.de> | |
6705 | ||
6706 | * decl.c (grokdeclarator): Don't make 'main(){}' an error with only | |
6707 | -Wreturn-type. | |
6708 | ||
6709 | 1999-01-16 Nathan Sidwell <nathan@acm.org> | |
6710 | ||
6711 | * cp-tree.h (struct lang_type): Added has_mutable flag. | |
6712 | (CLASSTYPE_HAS_MUTABLE): New macro to access it. | |
6713 | (TYPE_HAS_MUTABLE_P): New macro to read it. | |
6714 | (cp_has_mutable_p): Prototype for new function. | |
6715 | * class.c (finish_struct_1): Set has_mutable from members. | |
6716 | * decl.c (cp_finish_decl): Clear decl's TREE_READONLY flag, if | |
6717 | it contains a mutable. | |
6718 | * typeck.c (cp_has_mutable_p): New function. | |
6719 | ||
6720 | 1999-01-15 Mark Mitchell <mark@markmitchell.com> | |
6721 | ||
6722 | * pt.c (process_template_parm): Ignore top-level qualifiers on | |
6723 | non-type parameters. | |
6724 | ||
6725 | * decl.c (start_function): Use current_function_parms in the call | |
6726 | to require_complete_type_for_parms, not the probably empty | |
6727 | DECL_ARGUMENTS. | |
6728 | ||
6729 | 1999-01-14 Jason Merrill <jason@yorick.cygnus.com> | |
6730 | ||
6731 | * semantics.c (finish_asm_stmt): Don't warn about redundant volatile. | |
6732 | ||
6733 | * decl2.c (import_export_class): MULTIPLE_SYMBOL_SPACES only means | |
6734 | that we don't suppress the other copies. | |
6735 | * lex.c (handle_cp_pragma): Likewise. | |
6736 | ||
6737 | 1999-01-13 Mark Mitchell <mark@markmitchell.com> | |
6738 | ||
6739 | * decl.c (grokdeclarator): Undo 1998-12-14 change. | |
6740 | * tree.c (build_cplus_array_type_1): Likewise. | |
6741 | * pt.c (instantiate_class_template): Remove misleading comment. | |
6742 | (tsubst_aggr_type): Substitute if there are template parameters, | |
6743 | regardless of whether or not they use template arguments. | |
6744 | (unify): Likewise, but for unification. | |
6745 | ||
6746 | 1999-01-12 Richard Henderson <rth@cygnus.com> | |
6747 | ||
6748 | * cp-tree.h (flag_permissive): Declare extern. | |
6749 | ||
6750 | 1999-01-06 Mark Mitchell <mark@markmitchell.com> | |
6751 | ||
6752 | * cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT | |
6753 | here. | |
6754 | (lang_type): Add is_partial_instantiation. Decrease width of | |
6755 | dummy. | |
6756 | (PARTIAL_INSTANTIATION_P): New macro. | |
6757 | (OPERATOR_TYPENAME_P): Remove. | |
6758 | * decl.c (unary_op_p): Use IDENTIFIER_TYPENAME_P, not | |
6759 | OPERATOR_TYPENAME_P. | |
6760 | (grok_op_properties): Likewise. | |
6761 | * friend.c (do_friend): Handle friends that are member functions | |
6762 | correctly. | |
6763 | * lex.c (init_parse): Use OPERATOR_TYPENAME_FORMAT. | |
6764 | * pt.c (instantiate_class_template): Rework for clarity. Avoid | |
6765 | leaving TYPE_BEING_DEFINED set in obscure cases. Don't do | |
6766 | any more partial instantiation than is absolutely necessary for | |
6767 | implicit typename. Set PARTIAL_INSTANTIATION_P. | |
6768 | (tsubst_decl): Use IDENTIFIER_TYPENAME_P. | |
6769 | * semantics.c (begin_class_definition): Handle partial | |
6770 | specializations of a type that was previously partially | |
6771 | instantiated. | |
6772 | ||
6773 | Wed Jan 6 03:18:53 1999 Mark Elbrecht <snowball3@usa.net. | |
6774 | ||
6775 | * g++spec.c (LIBSTDCXX): Provide default definition. | |
6776 | (lang_specific_driver): Use LIBSTDCXX instead of "-lstdc++". | |
6777 | ||
6778 | Tue Jan 5 22:11:25 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
6779 | ||
6780 | * Make-lang.in (g++.o): Depend on prefix.h. | |
6781 | ||
6782 | 1999-01-04 Jason Merrill <jason@yorick.cygnus.com> | |
6783 | ||
6784 | * tree.c (bound_pmf_p): New fn. | |
6785 | * typeck.c (build_c_cast): Use it. | |
6786 | ||
6787 | * decl.c (grok_op_properties): Use same_type_p. | |
ad41bd84 JM |
6788 | |
6789 | \f | |
6790 | Copyright (C) 1999 Free Software Foundation, Inc. | |
6791 | ||
6792 | Copying and distribution of this file, with or without modification, | |
6793 | are permitted in any medium without royalty provided the copyright | |
6794 | notice and this notice are preserved. |