]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
Fix formatting in last commit.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
f4f4610e
MM
12003-04-12 Mark Mitchell <mark@codesourcery.com>
2
3 PR c++/10300
4 * init.c (build_new_1): Reorganize.
5
dcf92453
ZW
62003-04-12 Zack Weinberg <zack@codesourcery.com>
7
8 * class.c (initialize_array)
9 * decl.c (reshape_init)
10 * decl2.c (build_expr_from_tree)
11 * init.c (build_zero_init)
12 * pt.c (tsubst_copy, tsubst_copy_and_build)
13 * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer)
14 (ptm_initializer, class_initializer, get_pseudo_ti_init)
15 * semantics.c (finish_compound_literal)
16 * typeck.c (build_ptrmemfunc1)
17 * typeck2.c (store_init_value, process_init_constructor)
18 (build_functional_cast): Use build_constructor.
19
2bd02043
ZW
202003-04-12 Zack Weinberg <zack@codesourcery.com>
21
22 * call.c (print_z_candidates): Use gcc_gettext_width, not
23 strlen, to determine how much padding to use.
24
339a28b9
ZW
252003-04-10 Zack Weinberg <zack@codesourcery.com>
26
27 * decl.c: Update all calls to shadow_warning.
28
1e099144
MM
292003-04-10 Mark Mitchell <mark@codesourcery.com>
30
31 * class.c (layout_class_type): Correct handling for overlong
32 bit-fields whose width is the same as an integer type.
33
d78e771d
ZW
342003-04-06 Zack Weinberg <zack@codesourcery.com>
35
36 * cp-tree.def: Make fourth element for all 'c' and 'x' nodes zero.
37 * cp-lang.c (cp_tree_size): New function.
38 (LANG_HOOKS_TREE_SIZE): Override.
39
40 * cp-tree.h (SOURCE_LOCUS, SRCLOC_FILE, SRCLOC_LINE, struct
41 tree_srcloc, TS_CP_COMMON, TS_CP_SRCLOC): Kill.
42 (union lang_tree_node): Remove common and srcloc members.
43 (build_srcloc_here): Don't prototype.
44 * decl.c (cp_tree_node_structure): Kill SRCLOC case.
45 * pt.c (pending_templates): Correct comment.
46 * tree.c (build_srcloc, build_srcloc_here): Kill.
47
d2a6f3c0
ZW
482003-04-06 Zack Weinberg <zack@codesourcery.com>
49
50 * call.c: Include intl.h.
51 (print_z_candidate): Always use inform; get rid of errfn
52 argument. Reorganize so that all the strings get picked up
53 by xgettext. Note obligation of caller to pass first argument
54 through gettext.
55 (print_z_candidates): Update to match. Indent second and
56 successive candidates by strlen() of translated message.
57 (joust): Restructure ambiguous-conversion pedwarn so that
58 translators see a complete sentence. Update calls to
59 print_z_candidate.
60
61 * Make-lang.in (cp/call.o): Update dependencies.
62
ff955512
KG
632003-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
64
65 * decl.c (set_current_binding_level): Delete, revert last change.
66 (current_binding_level): Modify to allow it as as lvalue.
67
da247ccc
KG
682003-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
69
70 * name-lookup.c (find_binding): Pass appropriate pointer type to
71 POP_TIMEVAR_AND_RETURN.
72
d893ff33
KG
732003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
74
75 * Make-lang.in (cp-warn): Add $(STRICT_WARN).
76 * cp-tree.h: Don't insist on having GNUC.
77
78d55cc8
JM
782003-04-03 Jason Merrill <jason@redhat.com>
79
55a2af0c
JM
80 * cvt.c (ocp_convert): Only abort if we try to convert an object
81 of TREE_ADDRESSABLE type.
82
78d55cc8
JM
83 * class.c (build_vtable): Set DECL_ALIGN here.
84 (get_vtable_decl): Not here.
85 (layout_vtable_decl): Or here.
86 (create_vtable_ptr): Or here.
87 (layout_class_type): Or here.
88 (check_bitfield_decl): Don't mess with field alignment.
89
de94b46c
KG
902003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
91
92 * operators.def (DEF_SIMPLE_OPERATOR, DEF_ASSN_OPERATOR,
93 DEF_ASSN_OPERATOR): Delete spurious semi-colon.
94 * rtti.c (dfs_class_hint_mark): Likewise.
95
96 * decl.c (push_local_name, push_class_level_binding,
97 maybe_inject_for_scope_var): Don't use POP_TIMEVAR_AND_RETURN in
98 functions returning void.
99 * decl2.c (add_using_namespace): Likewise.
100
101 * decl.c (print_binding_level, print_other_binding_stack,
102 print_binding_stack): Cast argument of %p specifier to void*.
103 * ptree.c (cxx_print_decl): Likewise.
104
105 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
106 VAR_FUNCTION_OR_PARM_DECL_CHECK,
107 VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
108 BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK, LANG_TYPE_CLASS_CHECK,
109 LANG_TYPE_PTRMEM_CHECK, LANG_DECL_U2_CHECK): Add __extension__.
110
111 * decl.c (set_current_binding_level): New macro. Use throughout
112 when setting the current binding level.
113
114 * cp-tree.h (cp_lvalue_kind, base_access): Delete trailing comma
115 in enum.
116 * method.c (mangling_flags): Likewise.
117
118 * cp-tree.h (lang_type_header): Add __extension__ and use
119 CHAR_BITFIELD for members.
120
0de298af
GK
1212003-04-02 Geoffrey Keating <geoffk@apple.com>
122
123 PR other/9274
124 * mangle.c: Include gt-cp-mangle.h.
125 (subst_identifiers): Mark with GTY.
126 * config-lang.in (gtfiles): Add cp/mangle.c.
127 * Make-lang.in: (gt-cp-mangle.h): New rule.
128 (cp/mangle.o): Depends on gt-cp-mangle.h.
129
28ea4c88
AP
1302003-04-01 Andrew Pinski <pinskia@physics.uc.edu>
131
0de298af 132 * config-lang.in (gtfiles): Add \$(srcdir)/cp/name-lookup.c
28ea4c88
AP
133 after \$(srcdir)/cp/name-lookup.h.
134 * name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinstead
135 of ggc_alloc. Include gt-cp-name-lookup.h at the end of the file.
0de298af
GK
136 * Make-lang.in: (gt-cp-name-lookup.h): Is generated by gengtype.
137 (cp/name-lookup.o): Depends on gt-cp-name-lookup.h.
d2a6f3c0 138
adff28c3
JM
1392003-03-31 Jason Merrill <jason@redhat.com>
140
141 PR java/10145
142 * class.c (check_field_decl): Don't set DECL_ALIGN.
143
c717c5af
MM
1442003-03-30 Mark Mitchell <mark@codesourcery.com>
145
146 PR c++/7647
147 * decl.c (grokdeclarator): Tidy, slightly.
148 * search.c (lookup_field_1): Add want_type parameter.
149 (lookup_field_r): Adjust call to lookup_field_1.
150
7c71dc2b
GDR
1512003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
152
153 * Make-lang.in (cp/name-lookup.o): Add more dependencies.
154
ed3cf953
GDR
1552003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
156
157 * cp-tree.h (binding_for_name: Move to name-lookup.h Adjust
d2a6f3c0 158 prototype.
ed3cf953
GDR
159 (cxx_scope_find_binding_for_name): Likewise.
160 * decl.c (find_binding: Move to name-lookup.c.
161 (binding_for_name): Likewise.
162 (cxx_scope_find_binding_for_name): Likewise.
163 (BINDING_LEVEL): Remove.
164 (push_binding): Tidy.
165 (push_class_binding): Likewise.
166 (pop_binding): Likewise.
167 (poplevel): Likewise.
168 (poplevel_class): Likewise.
169 (set_identifier_type_value_with_scope): Likewise.
170 (push_overloaded_decl): Likewise.
171 (lookup_tag): Likewise.
172 (unqualified_namespace_lookup): Likewise.
173 (lookup_name_current_level): Likewise.
174 (maybe_inject_for_scope_var): Likewise.
175 (namespace_binding): Move to name-lookup.c.
176 (set_namespace_binding): Likewise.
177 * decl2.c (lookup_using_namespace): Tidy.
178 (qualified_lookup_using_namespace): Likewise.
179 (do_toplevel_using_decl): Likewise.
180 * name-lookup.c: Include "timevar.h"
181 * name-lookup.h (cxx_scope): Declare.
182 (struct cxx_binding): Lose member "has_level". Adjust "scope"
183 member declaration.
184 (BINDING_SCOPE): Adjust definition.
185 (BINDING_HAS_LEVEL_P): Remove.
186
aed81407
GDR
1872003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
188
189 * name-lookup.c: New file.
190 * name-lookup.h: Likewise..
191 * decl.c (push_binding): Adjust use cxx_binding_make.
192 (free_bindings): Move to name-lookup.c
193 (pop_binding): Use cxx_binding_free.
194 (binding_for_name): Tidy.
195 * cp-tree.h: Include "name-lookup.h"
196 (cxx_binding_make): Move to name-lookup.h
197 (cxx_binding_clear): Likewise.
198 (struct cxx_binding): Likewise.
199 (LOCAL_BINDING_P): Likewise.
200 (INHERITED_VALUE_BINDING_P): Likewise.
201 (BINDING_SCOPE): Likewise.
202 (BINDING_HAS_LEVEL_P): Likewise.
203 (BINDING_VALUE): Likewise.
204 (BINDING_TYPE): Likewise.
205 * config-lang.in (gtfiles): Add cp/name-lookup.h
206 * Make-lang.in (cp/name-lookup.o): New rule.
207 (CXX_OBJS): Add cp/name-lookup.o
208 (CXX_TREE_H): Add cp/name-lookup.h
209
f7b9026e
JM
2102003-03-28 Jason Merrill <jason@redhat.com>
211
212 PR c++/10245
213 * cvt.c (force_rvalue): New fn.
214 * call.c (build_conditional_expr): Use it.
215 * cp-tree.h: Declare it.
216
2d30fe53
MS
2172003-03-28 Mike Stump <mrs@apple.com>
218
219 * error.c (dump_expr): Add 0x to printed hex numbers to make
220 output match source code better.
221
400fbc08
MM
2222003-03-28 Mark Mitchell <mark@codesourcery.com>
223
316a2456
MM
224 PR c++/10218
225 * decl.c (grokfndecl): Return NULL_TREE for bogus out-of-class
226 definitions.
227
400fbc08
MM
228 * decl2.c (generate_ctor_or_dtor_function): Tolerate a
229 non-existant ssdf_decls array.
230 (finish_file): Call generator_ctor_or_dtor_function when there are
231 static constructors or destructors and no other static
232 initializations.
233
433cd9c9
NS
2342003-03-28 Nathan Sidwell <nathan@codesourcery.com>
235
236 PR c++/10047
237 * decl2.c (finish_file): Don't warn about explicitly instantiated
238 inline decls.
239
544aef8c
NS
2402003-03-27 Nathan Sidwell <nathan@codesourcery.com>
241
242 PR c++/10224
243 * pt.c (lookup_template_class): Only check instantiated args if
244 they do not contain template parameters.
245
649fc72d
NS
2462003-03-27 Nathan Sidwell <nathan@codesourcery.com>
247
248 PR c++/10158
249 * parser.c (cp_parser_function_definition): Set
250 DECL_INITIALIZED_IN_CLASS for members.
251 * pt.c (instantiate_decl): Only reduce the template args for
252 friends that are not defined in class.
253
d8c8524d
JM
2542003-03-25 Jason Merrill <jason@redhat.com>
255
256 * call.c (print_z_candidate): Change name of first arg to msgid.
257 (joust): Add comment for translators.
258
1c82cc90 2592003-03-24 Nathan Sidwell <nathan@codesourcery.com>
d2a6f3c0 260
1c82cc90 261 PR c++/9898, PR c++/383, DR 322
649fc72d 262 * pt.c (maybe_adjust_types_for_deduction) <DEDUCE_CONV>: Look
1c82cc90
NS
263 through reference types on both PARM and ARG.
264
a5fcc895
NS
2652003-03-24 Nathan Sidwell <nathan@codesourcery.com>
266
267 PR c++/10119
649fc72d 268 * error.c (dump_expr) <BASELINK>: Use dump_expr.
a5fcc895 269 * pt.c (maybe_fold_nontype_args): New function.
649fc72d
NS
270 (tsubst_copy) <SCOPE_REF>: Subst any template_id args.
271 <TEMPLATE_ID_EXPR>: Break out folding code, call it.
272 (tsubst_copy_and_build) <TEMPLATE_ID_EXPR>: Call
a5fcc895
NS
273 maybe_fold_nontype_args.
274
2ef6c975
NS
2752003-03-24 Nathan Sidwell <nathan@codesourcery.com>
276
277 PR c++/10026
649fc72d 278 * decl2.c (arg_assoc_type) <ERROR_MARK>: Don't die.
2ef6c975 279
f29a2bd1
MM
2802003-03-23 Mark Mitchell <mark@codesourcery.com>
281
282 PR c++/7086
2ef6c975
NS
283 * typeck.c (cxx_mark_addressable): Adjust call to
284 gen_mem_addressof or put_var_into_stack.
f29a2bd1 285
3e4a3562
NS
2862003-03-22 Nathan Sidwell <nathan@codesourcery.com>
287
288 PR c++/9978, c++/9708
289 * cp-tree.h (instantiate_template): Add tsubst_flags parameter.
290 * call.c (add_template_candidate_real): Adjust
291 instantiate_template call.
292 * class.c (resolve_address_of_overloaded_function): Likewise.
293 * decl.c (build_enumerator): Set TREE_CONSTANT.
294 * pt.c (check_instantiated_args): New.
295 (push_inline_template_parms_recursive): Set TREE_CONSTANT,
296 TREE_READONLY.
297 (build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY.
298 (reduce_template_parm_level): Likewise.
299 (process_template_parm): Likewise.
300 (check_explicit_specialization): Adjust instantiate_template call.
301 (convert_template_argument): Don't check non-type argument here.
302 (lookup_template_class): Check them here.
303 (tsubst_friend_function): Adjust instantiate_template call.
304 (instantiate_template): Add tsubst_flags parameter, use it. Check
305 instantiated args.
306
d9b2742a
ZW
3072003-03-21 Zack Weinberg <zack@codesourcery.com>
308
309 * decl.c: Update calls to shadow_warning.
310
f3146d75
NS
3112003-03-21 Nathan Sidwell <nathan@codesourcery.com>
312
313 PR c++/9898
314 * error.c (dump_decl) [CONST_DECL]: Print '<enumerator>'.
315 (dump_expr) [CONSTRUCTOR]: Print default ctor as a function call.
316
963142fc
MM
3172003-03-20 Mark Mitchell <mark@codesourcery.com>
318
319 * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
320 friends.
321 * cp/pt.c (instantiate_class_template): Fix formatting.
322
a260bce6
MA
3232003-03-14 Matt Austern <austern@apple.com>
324
325 * cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray.
326 (unemitted_tinfo_decl_p): Remove.
327 (emit_tinfo_decl): Change declaration to remove unused parameter.
328 * decl2.c (finish_file): Change tinfo emission to loop through
329 unemitted_tinfo_decls array instead of looping through all decls.
330 * rtti.c (unemitted_tinfo_decl_p): Declare as static, remove
331 unused second parameter.
332 (init_rtti_processing): initialize unemitted_tinfo_decls varray.
333 (get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls.
334 (emit_tinfo_decl): remove unused second parameter, add assertion
d9b2742a
ZW
335 that decl hasn't already been emitted.
336
2bd3ecad
NN
3372003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
338
339 * dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return
340 type from 'int' to 'bool'. Replace 0 and 1 with true and false in
341 return statements.
342
b9747e59
JM
3432003-03-19 Jason Merrill <jason@redhat.com>
344
345 PR c++/8316, c++/9315, c++/10136
346 * call.c (print_z_candidate): Split out from...
347 (print_z_candidiates): ...here.
348 (joust): Use it.
349
10326855
RS
3502003-03-17 Roger Sayle <roger@eyesopen.com>
351
b9747e59 352 PR c++/10031
10326855
RS
353 * decl.c (duplicate_decls): Use the new type when prototyping
354 anticipated decls, even when the types match. This defines the
355 exception list for the built-in function.
356
bdaa131b
JM
3572003-03-17 Jason Merrill <jason@redhat.com>
358
359 PR c++/10091
d9b2742a 360 * typeck.c (build_class_member_access_expr): Compare
bdaa131b
JM
361 TYPE_MAIN_VARIANTs.
362
ec20aa6c
MM
3632003-03-17 Mark Mitchell <mark@codesourcery.com>
364
365 PR c++/9639
366 * parser.c (cp_parser_declarator_id): Clear parser->scope.
367
35e939ae
JM
3682003-03-16 Jason Merrill <jason@redhat.com>
369
370 PR c++/9993
371 * decl.c (finish_function): Only allow the NRVO to use variables
372 declared at function scope.
373
40a4184c
AJ
3742003-03-17 Andreas Jaeger <aj@suse.de>
375
376 * Make-lang.in (cp/TAGS): Remove.
377
1f5a253a
NS
3782003-03-16 Nathan Sidwell <nathan@codesourcery.com>
379
380 PR c++/9629
381 * cp-tree.h (struct language_function): Add in_base_initializer.
382 (in_base_initializer): define it.
383 (expand_member_init): Remove INIT param.
384 * init.c (expand_member_init): Remove INIT param, return the member.
385 (emit_mem_initializers): Set in_base_initializer.
386 * class.c (build_base_path): Check in_base_initializer.
387 * parser.c (cp_parser_mem_initializer): Set in_base_initializer.
388 * pt.c (tsubst_initializer_list): Likewise.
389
4f907b59
GDR
3902003-03-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
391
392 * decl.c (binding_for_name): Fix initialization thinko.
393
ac2768ff 3942003-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
40a4184c 395
af6fd53f
GDR
396 Compile-time improvement: 2/n.
397 * cp-tree.h (struct cxx_binding): New datatype;
398 (struct lang_identifier): Use it.
399 (LOCAL_BINDING_P): Adjust definition.
400 (INHERITED_VALUE_BINDING_P): Likewise.
401 (BINDING_SCOPE): Likewise.
402 (BINDING_HAS_LEVEL_P): Likewise.
403 (BINDING_VALUE): Likewise.
404 (BINDING_TYPE): Likewise.
405 (IDENTIFIER_VALUE): Likewise.
406 (struct tree_binding): Remove.
407 (TS_CP_BINDING): Likewise.
408 ((union lang_tree_node): Remove field "binding".
409 (cxx_binding_clear): New macro.
410 (binding_for_name): Adjust return type.
411 (qualified_lookup_using_namespace): Adjust prototype.
412 (lookup_using_namespace): Adjust prototype.
413 (cxx_scope_find_binding_for_name): Declare.
414 * cp-tree.def: Remove CPLUS_BINDING definition.
415 * decl.c (push_binding): Adjust local variable type.
416 (add_binding): Likewise.
417 (push_class_binding): Likewise.
418 (pop_binding): Likewise.
419 (poplevel): Likewise.
420 (poplevel_class): Likewise.
421 (free_bindings): Adjust type.
422 (find_binding): Adjust return type, add a third parameter. Remove
40a4184c 423 non-useful assertion now that we use static typing.
af6fd53f 424 (cxx_scope_find_binding_for_name): New function.
40a4184c 425 (binding_for_name): Use it. Adjust local variable type. Simplify.
af6fd53f
GDR
426 (namespace_binding): Simplify.
427 (set_namespace_binding): Likewise.
428 (set_identifier_type_value_with_scope): Adjust local variable type.
429 (lookup_tag): Don't type-abuse of local variable 'old'.
430 (lookup_namespace_name): Likewise. Allocate binding on stack.
431 (select_decl): Adjust prototype.
432 (unqualified_namespace_lookup): Allocate binding on stack.
433 Don't type-abuse of local variable 'val'.
434 (lookup_name_real): Likewise.
435 (maybe_inject_for_scope_var): Adjust local variable type.
436 (cp_tree_node_structure): Remove CPLUS_BINDING case label.
437 (namespace_binding): Adjust logic, simplify.
438 (BINDING_LEVEL): Adjust definition.
439 (push_class_level_binding): Adjust local variable type.
440 (struct cxx_saved_binding): Adjust field 'binding' type.
441 * decl2.c (ambiguous_decl): Adjust prototype.
442 (lookup_using_namespace): Adjust local variable type.
443 (qualified_lookup_using_namespace): Catch type error and correct
444 ensueing logic error.
445 (do_nonmember_using_decl): Adjust local variable type. Allocate
446 temporary cxx_binding on stack.
447 (do_toplevel_using_decl): Adjust local variable type.
448 * ptree.c (cxx_print_cxx_binding): New function.
449 (cxx_print_identifier): Use it.
450 (cxx_print_xnode): Delete CPLUS_BINDING case label.
451
6a87d634
RS
4522003-03-15 Roger Sayle <roger@eyesopen.com>
453
454 * tree.c (count_functions): Fix whitespace.
455
c1bad961
NB
4562003-03-15 Neil Booth <neil@daikokuya.co.uk>
457
458 * Make-lang.in: Update.
459
6e049fcd
KL
4602003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
461
462 PR c++/6440
463 * pt.c (maybe_process_partial_specialization): Handle
464 member class template when enclosing class template is
465 explicit specialized.
466 (most_general_template): Stop looking when DECL is already
467 specialized.
468
0171b21c
JM
4692003-03-13 Jason Merrill <jason@redhat.com>
470
471 PR c++/9420
472 * search.c (lookup_conversions): Call complete_type here.
473 * call.c (implicit_conversion): Not here.
474
26f86471
MM
4752003-03-13 Mark Mitchell <mark@codesourcery.com>
476
45707d31
MM
477 * decl2.c (do_nonmember_using_decl): Correct handling of
478 simultaneous type/non-type bindings.
479
26f86471
MM
480 * call.c (initialize_reference): Remove bogus assertion.
481 * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.
482
847311f4
AL
4832003-03-12 Andrew Lewycky <andrew@mxc.ca>
484
485 PR c++/7050
486 * expr.c (cxx_expand_expr): Return const0_rtx for throw
487 expressions.
488
2601a4ee
MM
4892003-03-11 Mark Mitchell <mark@codesourcery.com>
490
e1145e7f 491 PR c++/9474
2601a4ee
MM
492 * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
493 to merge old and new declarations.
494
2bfe542b
AO
4952003-03-12 Alexandre Oliva <aoliva@redhat.com>
496
497 * g++.1: Remove.
498 * Make-lang.in (c++.generated-manpages): Build cp/g++.1.
499 (cp/g++.1): Build it from scratch in the build tree.
500 (c++.install-man): Depend on it. Install it from the build tree.
501 (c++.mostlyclean): Clean it.
502
0c33daff
MM
5032003-03-11 Mark Mitchell <mark@codesourcery.com>
504
3033f0ed 505 PR c++/9474
2601a4ee
MM
506 * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
507 to merge old and new declarations.
508
0c33daff
MM
509 PR c++/9924
510 * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
511
cf237c19
JM
5122003-03-11 Jason Merrill <jason@redhat.com>
513
514 PR c++/9820
40a4184c 515 * search.c (lookup_member): Fix handling of functions in a class
cf237c19
JM
516 being defined.
517
436f8a4c
MM
5182003-03-11 Mark Mitchell <mark@codesourcery.com>
519
520 PR c++/8700
521 * call.c (convert_class_to_reference): Adjust usage of
522 splice_viable.
523 (any_viable): Remove.
524 (splice_viable): Combine with any_viable.
525 (print_z_candidates): Avoid printing duplicates.
526 (build_user_type_conversion_1): Adjust usage of splice_viable.
527 (build_new_function_call): Likewise.
528 (build_operator_new_call): Likewise.
529 (build_object_call): Likewise.
530 (build_conditional_expr): Likewise.
531 (build_new_op): Likewise.
532 (build_new_method_call): Likewise.
533 (joust): Remove spurious comment.
534 * cp-tree.h (DECL_FRIENDLIST): Correct documentation.
535 * decl2.c (arg_assoc_class): Simplify.
536 * friend.c (add_friend): Likewise.
537
5b8e011c
JM
5382003-03-11 Jason Merrill <jason@redhat.com>
539
540 PR c++/8660
40a4184c 541 * decl2.c (check_classfn): A member template only matches a
5b8e011c
JM
542 member template.
543
cb60f38d
NB
5442003-03-11 Neil Booth <neil@daikokuya.co.uk>
545
546 * Make-lang.in (CXX_C_OBJS): Update.
547 * lang-specs.h: Don't define __GNUG__ here.
548
125e6594
MM
5492003-03-10 Mark Mitchell <mark@codesourcery.com>
550
551 * call.c (perform_overload_resolution): New function.
552 (build_new_function_call): Use it.
553 (build_operator_new_call): Likewise.
554 (add_candidates): Add explicit_targs and template_only parameters.
555 (build_new_op): Adjust accordingly.
556 * cp-tree.h (build_operator_new_call): New function.
557 (build_function_call_real): Remove.
558 (build_function_call_maybe): Likewise.
559 * init.c (build_new_1): Use build_operator_new_call.
560 * typeck.c (build_function_call_real): Rename to ...
561 (build_function_call): ... this.
562
87d7d780 5632003-03-10 Devang Patel <dpatel@apple.com>
40a4184c 564
87d7d780
DP
565 PR c++/9394
566 * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWTCH_TAKES_ARG.
125e6594 567
6e9554e1
JM
5682003-03-10 Jason Merrill <jason@redhat.com>
569
70f0e288
JM
570 PR c++/9798
571 * decl.c (push_using_directive): Push before recursing.
572
573 PR c++/9868, c++/9524
6e9554e1
JM
574 * call.c (resolve_scoped_fn_name): Handle the case of a function
575 pointer member.
576
577 * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
578 argument in the pointer-to-member case.
579
f6d19bfe
MM
5802003-03-09 Mark Mitchell <mark@codesourcery.com>
581
1d719415
MM
582 PR c++/9373
583 * cp-lang.c (cxx_get_alias_set): Use alias set zero for
584 pointers to member functions.
585
f6d19bfe
MM
586 PR c++/8534
587 * decl.c (build_ptrmemfunc_type): Do not allow default arugments
588 in pointer-to-member-function types.
589
d9b4e85e
GDR
5902003-03-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
591
592 * expr.c (cplus_expand_constant): Use C90 prototype style.
593 (cxx_expand_expr): Likewise.
594
ca9e1382
KL
5952003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
596
597 PR c++/9970
598 * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
599 functions.
600
00a221f0
GK
6012003-03-08 Geoffrey Keating <geoffk@apple.com>
602
603 * lang-specs.h (c++-header): Change .pch to .gch.
604
4bfec483
NB
6052003-03-08 Neil Booth <neil@daikokuya.co.uk>
606
607 * cp-tree.h (cxx_init): Update prototype.
608 * lex.c (cxx_init): Similarly.
609
089d6ea7
MM
6102003-03-08 Mark Mitchell <mark@codesourcery.com>
611
0e136342
MM
612 PR c++/9823
613 * cp-tree.h (begin_mem_initializers): Remove.
614 * parser.c (cp_parser_mem_initializer_list): Inline it here.
615 Do not call finish_mem_initializers if not in a constructor.
616 (cp_parser_class_head): Fix typo in error message.
617 * semantics.c (begin_mem_initializers): Remove.
618 * testsuite/g++.dg/parser/constructor1.C: New test.
619
089d6ea7
MM
620 PR c++/9809
621 * call.c (add_function_candidate): Skip builtin fuctions that have
622 not yet been declared.
623
624 PR c++/9982
625 * init.c (build_new_1): Correct logic for determining whether or
626 not to use an array cookie.
627
628 PR c++/9524
629 * parser.c (cp_parser_postfix_expression): Call
630 finish_non_static_data_member, even when processing_template_decl.
631
632 PR c++/9912
633 * cp-tree.h (is_ancestor): New function.
634 (handle_class_head): Change prototype.
635 * decl2.c (is_namespace_ancestor): Rename to ...
636 (namespace_anecestor): ... this.
637 (set_decl_namespace): Adjust accordingly.
638 (handle_class_head): Remove unncessary parameters.
639 * parser.c (cp_parser_class_head): Check that
640 nested-name-specifiers are used appropriately.
40a4184c 641
aa6e8ed3
MM
6422003-03-07 Mark Mitchell <mark@codesourcery.com>
643
644 * call.c (reference_binding): Remove REF_IS_VAR parameter.
645 (implicit_conversion): Adjust call to reference_binding.
646 (make_temporary_var_for_ref_to_type): Add TYPE parameter.
647 (initialize_reference): Adjust handling for references bound to
648 rvalues.
649 * cp-tree.h (make_temporary_var_for_ref_to_temp): Change
650 prototype.
651 (real_non_cast_lvalue_p): New method.
652 * cvt.c (build_up_reference): Adjust use of
653 make_temporary_var_for_ref_to_temp.
89d11511 654 * tree.c (real_non_cast_lvalue_p): New method.
40a4184c 655
5cc3d3b8
GDR
6562003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
657
658 * except.c (init_exception_processing): Use C90 prototype style.
659 (cp_protect_cleanup_actions): Likewise.
660 (prepare_eh_type): Likewise.
661 (build_eh_type_type): Likewise.
662 (build_exc_ptr): Likewise.
663 (do_begin_catch): Likewise.
664 (dtor_nothrow): Likewise.
665 (do_end_catch): Likewise.
666 (push_eh_cleanup): Likewise.
667 (decl_is_java_type): Likewise.
668 (choose_personality_routine): Likewise.
669 (initialize_handler_parm): Likewise.
670 (expand_start_catch_block): Likewise.
671 (expand_end_catch_block): Likewise.
672 (begin_eh_spec_block): Likewise.
673 (finish_eh_spec_block): Likewise.
674 (do_allocate_exception): Likewise.
675 (do_free_exception): Likewise.
676 (wrap_cleanups_r): Likewise.
677 (stabilize_throw_expr): Likewise.
678 (build_throw): Likewise.
679 (complete_ptr_ref_or_void_ptr_p): Likewise.
680 (is_admissible_throw_operand): Likewise.
681 (nothrow_libfn_p): Likewise.
682 (can_convert_eh): Likewise.
683 (check_handlers_1): Likewise.
684 (check_handlers): Likewise.
40a4184c 685
3d938426
MM
6862003-03-06 Mark Mitchell <mark@codesourcery.com>
687
688 * call.c (merge_conversion_sequences): New function.
689 (build_conv): Set ICS_USER_FLAG for USER_CONVs.
690 (convert_class_to_reference): Correct handling of second
691 standard conversion sequence in a user-defined conversion
692 sequence.
693 (build_user_type_conversion_1): Use merge_conversion_sequences.
694 * cp-tree.def: Add comments for CONV nodes.
9534f4bc 695 * rtti.c (get_tinfo_decl): Use build_address/build_nop.
40a4184c 696
3f8548e7
GDR
6972003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
698
699 * error.c (init_error): Use C90 prototype style.
700 (dump_scope): Likewise.
701 (dump_qualifiers): Likewise.
702 (dump_template_argument): Likewise.
703 (dump_template_argument_list): Likewise.
704 (dump_template_parameter): Likewise.
705 (dump_template_bindings): Likewise.
706 (dump_type): Likewise.
707 (dump_typename): Likewise.
708 (class_key_or_enum): Likewise.
709 (dump_aggr_type): Likewise.
710 (dump_type_prefix): Likewise.
711 (dump_type_suffix): Likewise.
712 (dump_global_iord): Likewise.
713 (dump_simple_decl): Likewise.
714 (dump_decl): Likewise.
715 (dump_template_decl): Likewise.
716 (dump_function_decl): Likewise.
717 (dump_parameters): Likewise.
718 (dump_exception_spec): Likewise.
719 (dump_function_name): Likewise.
720 (dump_template_parms): Likewise.
721 (dump_char): Likewise.
722 (dump_expr_list): Likewise.
723 (dump_expr): Likewise.
724 (dump_binary_op): Likewise.
725 (dump_unary_op): Likewise.
726 (type_as_string): Likewise.
727 (expr_as_string): Likewise.
728 (decl_as_string): Likewise.
729 (context_as_string): Likewise.
730 (lang_decl_name): Likewise.
731 (cp_file_of): Likewise.
732 (cp_line_of): Likewise.
733 (decl_to_string): Likewise.
734 (expr_to_string): Likewise.
735 (fndecl_to_string): Likewise.
736 (code_to_string): Likewise.
737 (language_to_string): Likewise.
738 (parm_to_string): Likewise.
739 (op_to_string): Likewise.
740 (type_to_string): Likewise.
741 (assop_to_string): Likewise.
742 (args_to_string): Likewise.
743 (cv_to_string): Likewise.
744 (cxx_print_error_function): Likewise.
745 (cp_diagnostic_starter): Likewise.
746 (cp_diagnostic_finalizer): Likewise.
747 (cp_print_error_function): Likewise.
748 (function_category): Likewise.
749 (print_instantiation_full_context): Likewise.
750 (print_instantiation_partial_context): Likewise.
751 (maybe_print_instantiation_context): Likewise.
752 (print_instantiation_context): Likewise.
753 (cp_printer): Likewise.
754 (print_integer): Likewise.
755 (print_non_consecutive_character): Likewise.
756 (locate_error): Likewise.
757
3d1df1fa
MM
7582003-03-06 Mark Mitchell <mark@codesourcery.com>
759
5e256996
MM
760 PR c++/9965
761 * call.c (reference_binding): Add ref_is_var parameter.
762 (implicit_conversion): Adjust call to reference_binding.
763 (initialize_reference): Likewise.
764
07681121
MM
765 PR c++/9400
766 * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
767 PARM_DECLs.
768
3d1df1fa
MM
769 PR c++/9791
770 * class.c (get_basefndecls): Use lookup_fnfields_1.
771
8a6393df
KL
7722003-03-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
773
774 PR c++/9188
775 * parser.c (cp_parser_type_parameter): Remove redundant `expect'
776 in error message.
777 (cp_parser_single_declaration): Likewise.
778
c965b169
JM
7792003-03-05 Jason Merrill <jason@redhat.com>
780
781 PR c++/9440
782 * call.c (build_conditional_expr): Use convert rather than an
783 explicit NOP_EXPR.
784
1d555f7a
MA
7852003-03-02 Matt Austern <austern@apple.com>
786
787 * decl.c (cp_binding_level): Add static_decls varray member.
788 (add_decl_to_level): Add static/inline namespace scope
789 declarations to static_decls array.
790 (wrapup_global_for_namespace): Pass static_decls only, instead of
791 all decls, to wrapup_global_declarations/check_global_declarations.
792 (push_namespace): Initialize static_decls for ordinary namespaces.
793 (cxx_init_decl_processing): Initialize static_decls for global
794 namespace.
40a4184c 795
8234c6c1
MM
7962003-03-05 Mark Mitchell <mark@codesourcery.com>
797
798 * class.c (end_of_class): Correct thinko.
799
dc2b3526
NN
8002003-03-04 Nathanael Nerode <neroden@gcc.gnu.org>
801
802 * config-lang.in: Replace ${libstdcxx_version} by its value.
803
000d38ea
GDR
8042003-03-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
805
d9b2742a
ZW
806 * cp-tree.h (cxx_saved_binding): Declare.
807 (struct saved_scope): Adjust type of field 'old_binding'.
808 * decl.c (cxx_saved_binding_make): New macro.
809 (struct cxx_saved_binding): Define.
810 (store_bindings): Adjust prototype. Use cxx_saved_binding to save
811 C++ bindings.
812 (maybe_push_to_top_level): Adjust local variable type.
813 (pop_from_top_level): Likewise.
40a4184c 814
b87141b3
TT
8152003-03-04 Tom Tromey <tromey@redhat.com>
816
817 * Make-lang.in (c++.tags): New target.
818
f20d8e39
NB
8192003-03-04 Neil Booth <neil@daikokuya.co.uk>
820
821 * Make-lang.in: Update.
822
f5d70cc0
JM
8232003-03-03 Jason Merrill <jason@redhat.com>
824
825 * decl.c (finish_enum): Do set the type in a template. Simplify.
826 * pt.c (tsubst_enum, tsubst_copy): Revert last patch.
827
7993382e
MM
8282003-03-03 Mark Mitchell <mark@codesourcery.com>
829
830 PR c++/9878
831 * call.c (convert_class_to_reference): Correct conversion
832 sequences.
833 (reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
834 (implicit_conversion): Adjust call to reference_binding.
835 (add_candidate): Change type of candidates parameter.
836 (add_function_candidate): Likewise.
837 (add_conv_candidate): Likewise.
838 (build_builtin_candidate): Likewise.
839 (add_builtin_candidate): Likewise.
840 (add_builtin_candidates): Likewise.
841 (add_template_candidate_real): Likewise.
842 (add_template_candidate): Likewise.
843 (add_template_conv_candidate): Likewise.
844 (build_user_type_conversion_1): Adjust accordingly.
845 (build_object_call): Likewise.
846 (build_conditional_expr): Likewise.
847 (add_candidates): Likewise.
848 (build_new_op): Likewise.
849 (convert_like_real): Use USER_CONV_CAND. Use build_nop.
850 (build_new_method_call): Adjust calls to add_function_candidate.
851 (make_temporary_var_for_ref_to_temp): New function.
852 (initialize_reference): Add decl parameter.
853 * class.c (build_rtti_vtbl_entries): Use build_address and
854 build_nop.
855 * cp-tree.h (initialize_reference): Change prototype.
856 (make_temporary_var_for_ref_to_temp): New function.
857 (build_type_conversion): Change prototype.
858 (build_address): New function.
859 (build_nop): Likewise.
860 * cvt.c (cp_convert_to_pointer): Adjust call to
861 build_type_conversion. Avoid indicating redundant NOP_EXPRs.
862 Use build_nop.
863 (convert_to_pointer_force): Use build_nop.
864 (build_up_reference): Use make_temporary_var_for_ref_to_temp.
865 (convert_to_reference): Adjust call to build_type_conversion.
866 (ocp_convert): Likewise.
867 (build_type_conversion): Remove for_sure parameter.
868 * decl.c (grok_reference_init): Use initialize_reference.
869 * typeck.c (build_address): New function.
870 (build_nop): Likewise.
871 (build_unary_op): Use them.
872 (build_ptrmemfunc): Tidy slightly.
873 (convert_for_initialization): Adjust call to
874 initialize_reference.
875 * typeck2.c (store_init_value): Remove #if 0'd code.
40a4184c 876
d1a74aa7
JM
8772003-03-03 Jason Merrill <jason@redhat.com>
878
879 * decl.c (start_function): Clear DECL_NUM_STMTS.
880
881 * class.c (get_vtable_decl): Use vtbl_type_node.
882 (build_primary_vtable): Check for it.
883
6e1b3a7c
AH
8842003-03-02 Aldy Hernandez <aldyh@redhat.com>
885
08162287 886 * decl.c (check_initializer): Check for vector_opaque_p.
6e1b3a7c 887
8a035a6b
AH
8882003-03-02 Ashif Harji <asharji@uwaterloo.ca>
889
890 * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
891 invoke an external cpp during compilation.
892
456d8864
GDR
8932003-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
894
895 * decl.c (duplicate_decls): Convert use of warning_with_decl() to
896 that of warning().
897 (start_decl): Likewise.
898 (start_function): Likewise.
899
5793b276
NB
9002003-03-01 Neil Booth <neil@daikokuya.co.uk>
901
902 * Make-lang.in (CXX_C_OBJS): Update.
903
b063b379 9042003-02-28 Mark Mitchell <mark@codesourcery.com>
1d62c33e
MM
905
906 PR c++/9892
907 * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
908 instantiating it.
909
704a0bbd
AH
9102003-02-28 Aldy Hernandez <aldyh@redhat.com>
911
d9b2742a
ZW
912 * parser.c (cp_parser_init_declarator): Revert opaque
913 vector_opaque_p change.
914 Do not include target.h.
704a0bbd 915
1cb8292f
MM
9162003-02-28 Mark Mitchell <mark@codesourcery.com>
917
918 PR c++/9879
919 * cp-tree.h (build_zero_init): Add parameter.
920 * decl.c (cp_finish_decl): Adjust call.
921 * init.c (build_zero_init): Add nelts parameter. Adjust recursive
922 calls.
923 (build_default_init): Add nelts parameter. Adjust calls to
924 build_zero_init.
925 (build_new_1): Adjust call to build_default_init.
926 * typeck2.c (process_init_constructor): Adjust call to build_zero_init.
40a4184c 927
fdedded1
DP
9282003-02-26 Devang Patel <dpatel@apple.com>
929
2ef6c975
NS
930 * decl.c (finish_enum): Merge two 'for' loops. Copy value node if
931 required. Postpone enum setting for template decls.
932 (build_enumerator): Delay copying value node until finish_enum
933 (). Remove #if 0'ed code.
fdedded1
DP
934 * pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
935 (tsubst_copy): Add check for enum type.
40a4184c 936
cec24319
MM
9372003-02-25 Mark Mitchell <mark@codesourcery.com>
938
939 PR c++/9683
940 * decl2.c (prune_vars_needing_no_initialization): Do not throw
941 away initializations for DECL_EXTERNAL VAR_DECLs.
942 (finish_file): Adjust accordingly.
943 * pt.c (instantiate_decl): Do not defer VAR_DECLs.
944
7d9f2df2
GDR
9452003-02-24 Gabriel Dos Reis <gdr@integrable-solutions.net>
946
08162287
JM
947 * decl.c (add_binding): Time TV_NAME_LOOKUP.
948 (push_class_binding): Likewise.
949 (set_namespace_binding): Likewise.
7d9f2df2 950
353b4fc0
MM
9512003-02-24 Mark Mitchell <mark@codesourcery.com>
952
953 PR c++/9836
954 * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from
955 specializations back to the main template.
956 * parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.
957 * pt.c (resolve_typename_type): Likewise.
958
8b6a662e
JO
9592003-02-24 Jeffrey D. Oldham <oldham@codesourcery.com>
960
961 PR c++/9778
962 * pt.c (tsubst_copy_and_build): For a templated function inside a
963 scope, process template arguments.
964
9e236a9d
KL
9652003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
966
967 PR c++/9602
968 * typeck2.c (abstract_virtuals_error): Don't check when
969 TYPE is still template parameter dependent.
970
ca099ac8
MM
9712003-02-23 Mark Mitchell <mark@codesourcery.com>
972
973 PR c++/5333
974 * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro.
975 * parser.c (cp_parser_diagnose_invalid_type_name): Use it.
976 * pt.c (instantiate_class_template): Don't try to instantiate
977 dependent types.
978 (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE.
40a4184c 979
2fff6d71
MM
9802003-02-21 Mark Mitchell <mark@codesourcery.com>
981
982 PR c++/9749
983 * decl.c (grokdeclarator): Do not allow parameters with variably
984 modified types.
985
7fb1c86d
NS
9862003-02-21 Nathan Sidwell <nathan@codesourcery.com>
987
1f5a253a 988 * search.c (grow_bfs_bases): Remove. Fold into ...
7fb1c86d
NS
989 (bfs_walk): ... here, fix fencepost error. Fix merge lossage
990 in previous patch.
991
63a3cd3e
MM
9922003-02-20 Mark Mitchell <mark@codesourcery.com>
993
994 PR c++/9729
995 * mangle.c (mangle_conv_op_name_for_type): Issue an error message
996 when the G++ 3.2 ABI prevents correct compilation.
997
dbbf88d1
NS
9982003-02-20 Nathan Sidwell <nathan@codesourcery.com>
999
1000 Change base class access representation. Share virtual base
1001 binfos.
1002 * cp/call.c (build_special_member_call): Remove binfo_for_vbase
1003 call.
1004 * cp/class.c (build_base_path): Likewise.
1005 (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
1006 (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
1007 (make_new_vtable): Adjust.
1008 (force_canonical_binfo_r): Delete.
1009 (force_canonical_binfo): Delete.
1010 (mark_primary_virtual_base): Delete.
1011 (dfs_unshared_virtual_bases): Delete.
1012 (mark_primary_bases): Adjust.
1013 (maybe_warn_about_overly_private_class): Adjust.
1014 (dfs_base_derived_from): Delete.
1015 (base_derived_from): Follow the inheritance chain.
1016 (struct find_final_overrider_data): Add vpath member.
1017 (dfs_find_final_overrider): Adjust.
1018 (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
1019 (find_final_overrider): Adjust.
1020 (update_vtable_entry_for_fn): Adjust.
1021 (modify_all_vtables): Adjust.
1022 (walk_subobject_offsets): Adjust.
1023 (layout_nonempty_base_or_field): Adjust.
1024 (layout_empty_base): Remove last parameter. Adjust.
1025 (build_base_field): Adjust.
1026 (build_base_fields): Adjust.
1027 (propagate_binfo_offsets): Remove last parameter. Adjust.
1028 (dfs_set_offset_for_unshared_vbases): Delete.
1029 (layout_virtual_bases): Adjust.
1030 (finish_struct_1): Adjust.
1031 (init_class_processing): Don't init access nodes.
1032 (dfs_get_primary_binfo): Delete.
1033 (get_primary_binfo): Adjust.
1034 (dump_class_hierarchy_r): Remove most derived arg, add IGO
1035 parameter. Adjust.
1036 (dump_class_hierarchy): Adjust.
1037 (finish_vtbls): Adjust.
1038 (get_original_base): Delete.
1039 (build_vtt_inits): Adjust.
1040 (dfs_build_secondary_vptr_vtt_inits): Adjust.
1041 (dfs_ctor_vtable_bases_queue_p): Adjust.
1042 (build_ctor_vtbl_group): Adjust.
1043 (dfs_accumulate_vtbl_inits): Adjust.
1044 (build_vtbl_initializer): Adjust.
1045 (build_vbase_offset_vtbl_entries): Adjust.
1046 (add_vcall_offset_vtbl_entries_1): Adjust.
1047 * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
1048 (access_*_node): Remove.
1049 (CANONICAL_BINFO): Delete.
1050 (BINFO_UNSHARED_MARKED): Remove.
1051 (BINFO_MARKED): Set LANG_FLAG_0 directly.
1052 (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
1053 (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
1054 (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
1055 Delete.
1056 (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
1057 (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
1058 (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
1059 Delete.
1060 (BINFO_DEPENDENT_BASE_P): New.
1061 (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
1062 index.
1063 (markedp, unmarkedp): Adjust.
1064 (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
1065 dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
1066 find_vbase_instance, binfo_for_vbase): Delete.
1067 (copied_binfo, original_binfo): Declare.
1068 (finish_base_specifier): Add virtual_p arg.
1069 (unshare_base_binfos): Delete.
1070 (copy_base_binfos): Declare.
1071 (reverse_path): Delete.
1072 * cp/decl.c (xref_basetypes): Access and virtuality passed
1073 differently. Don't copy direct base binfos here. Call
1074 copy_base_binfos.
1075 * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
1076 (initialize_vtbl_ptrs): Adjust.
1077 (expand_member_init): Adjust.
1078 * cp/parser.c (cp_parser_base_specifier): Adjust.
1079 * cp/pt.c (instantiate_class_template): Adjust.
1080 (get_template_base_recursive): Adjust.
1081 * cp/rtti.c (get_pseudo_ti_init): Adjust.
1082 (get_pseudo_ti_desc): Adjust.
1083 * cp/tree.c (unshare_base_binfos): Rename to ...
1084 (copy_base_binfos): ... here, reimplement.
1085 (make_binfo): Set BINFO_DEPENDENT_BASE_P.
1086 (reverse_path): Remove.
1087 * cp/typeck.c (get_delta_difference): Adjust error messages.
1088 * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
1089 * cp/search.c (lookup_base_r): Adjust.
1090 (dynamic_cast_base_recurse): Adjust.
1091 (canonical_binfo): Remove.
1092 (dfs_canonical_queue): Remove.
1093 (dfs_assert_unmarked_p): Remove.
1094 (assert_canonical_unmarked): Remove.
1095 (shared_marked_p, shared_unmarked_p): Remove.
1096 (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
1097 (dfs_access_in_type): Adjust.
1098 (access_in_type): Adjust.
1099 (dfs_accessible_queue_p): Adjust.
1100 (dfs_accessible_p): Adjust.
1101 (is_subobject_of_p_1, is_subobject_of_p): Remove.
1102 (struct lookup_field_info): Remove from_dep_base_p field.
1103 (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
1104 (lookup_field_r): Remove dependent base code.
1105 (lookup_member): Likewise.
1106 (dfs_walk, dfs_walk_real): Add access arg to queue fn.
1107 (dfs_unmarked_real_bases_queue_p): Remove.
1108 (dfs_marked_real_bases_queue_p): Remove.
1109 (dfs_skip_vbases): Remove.
1110 (dfs_get_pure_virtuals): Adjust.
1111 (markedp, unmarkedp): Adjust.
1112 (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
1113 (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
1114 (dfs_unmark): Adjust.
1115 (dfs_get_vbase_types):Remove.
1116 (dfs_build_inheritance_graph_order): Remove.
1117 (get_vbase_types): Remove
1118 (dfs_find_vbase_instance): Remove.
1119 (find_vbase_instance): Remove.
1120 (dfs_debug_unmarkedp): Adjust.
1121 (dependent_base_p): Remove.
1122 (dfs_push_type_decls): Adjust.
1123 (dfs_push_decls): Adjust.
1124 (dfs_no_overlap_yet): Adjust.
1125 (copied_binfo): New function.
1126 (original_binfo): New function.
1127 (binfo_for_vbase): Remove.
1128
860c9ea6
ZW
11292003-02-18 Zack Weinberg <zack@codesourcery.com>
1130
1131 * cp/search.c (grow_bfs_bases): New subroutine of bfs_walk.
1132 (bfs_walk): Rewritten using circular queue of BINFO_BASETYPES
1133 vectors, for speed.
1134
6b99d1c0
MM
11352003-02-18 Mark Mitchell <mark@codesourcery.com>
1136
1137 PR c++/9704
1138 * class.c (layout_class_type): In the 3.2 ABI, take into account
1139 trailing bit fields when computing CLASSTYPE_SIZE_UNIT.
1140
2b59501b 11412003-02-18 Matt Austern <austern@apple.com>
40a4184c 1142
2b59501b
MA
1143 * cp/cp-lang.c: Change lang hooks so that final_write_globals does
1144 nothing for C++.
1145 * cp/decl.c (wrapup_globals_for_namespace): Remove special
1146 handling of global namespace.
40a4184c 1147
e17aafd1
GK
11482003-02-18 Geoffrey Keating <geoffk@apple.com>
1149
1150 * cp-tree.h (rid_to_yy): Delete.
1151 (C_RID_YYCODE): Delete.
1152 (finish_file): Delete redundant declaration.
1153
04b03085
JM
11542003-02-18 Jason Merrill <jason@redhat.com>
1155
1156 PR c++/9623
1157 * decl.c (reshape_init): Don't mess with initializer labels.
1158
08162287
JM
1159 PR c++/9485
1160 * parser.c (cp_parser_postfix_expression): Set idk properly for
1161 object->scope::member.
1162
bf7c02dd
BE
11632003-02-18 Ben Elliston <bje@redhat.com>
1164
1165 PR other/7350
1166 * decl.c (duplicate_decls): Fix typo in comment.
1167
0f3a8219
MEC
11682003-02-17 Michael Elizabeth Chastain <mec@shout.net>
1169
c7adfa01 1170 PR debug/9717
0f3a8219
MEC
1171 * class.c (build_base_field): Mark fields for base classes with
1172 DECL_IGNORED_P.
1173
db77ef4c
KL
11742003-02-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1175
1176 PR c++/9457
1177 * pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Substitute
1178 CONSTRUCTOR_ELTS only once.
1179
0df4ae96
KL
11802003-02-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1181
1182 PR c++/9459
1183 * error.c (dump_type_prefix): Handle TYPEOF_TYPE.
1184 (dump_type_suffix): Likewise.
1185
86ac0575
NS
11862003-02-14 Nathan Sidwell <nathan@codesourcery.com>
1187
1188 * search.c: ANSIfy function declarations and definitions.
1189 * cp-tree.h (lookup_field, lookup_member): Last parameter is a bool.
1190 * call.c (build_method_call, resolve_scoped_fn_name,
1191 build_java_interface_fn_ref): Adjust lookup_field, lookup_member
1192 calls.
1193 * class.c (handle_using_decl): Likewise.
1194 * decl.c (make_typename_type, make_unmound_class_template,
1195 start_decl, compute_array_index_type): Likewise.
1196 * decl2.c (build_expr_from_tree, build_call_from_tree): Likewise.
1197 * init.c (expand_member_init, build_member_call): Likewise.
1198 * pt.c (tsubst_copy, tsubst_copy_and_build, do_decl_instantiation,
1199 resolve_typename_type): Likewise.
1200 * typeck.c (lookup_destructor, finish_class_member_access_exprm
1201 build_prememfunc_access_expr): Likewise.
1202
fd295cb2
GDR
12032003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
1204
1205 * decl2.c: Include "timevar.h".
1206 (namespace_ancestor): Time name lookup.
1207 (add_using_namespace): Likewise.
1208 (lookup_using_namespace): Likewise.
1209 (qualified_lookup_using_namespace): Likewise.
1210 (decl_namespace): Likewise.
1211 (lookup_arg_dependent): Likewise.
1212 * lex.c (do_identifier): Likewise.
1213 (do_scoped_id): Likewise.
1214 * pt.c (lookup_template_class): Likewise.
1215
62ed060f
AP
12162003-02-14 Andrew Pinski <pinskia@physics.uc.edu>
1217
d9b2742a 1218 * decl.c: (define_label): Fix warning for return 0 instead of NULL.
40a4184c 1219
22ffcc6f
GDR
12202003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
1221
1222 * decl.c: Include "timevar.h".
1223 (poplevel): Time name lookup.
1224 (find_binding): Likewise.
1225 (push_namespace): Likewise.
1226 (pop_nested_namespace): Likewise.
1227 (store_bindings): Likewise.
1228 (maybe_push_to_top_level): Likewise.
1229 (pop_from_top_level): Likewise.
1230 (push_local_name): Likewise.
1231 (pushtag): Likewise.
1232 (pushdecl): Likewise.
1233 (pushdecl_with_scope): Likewise.
1234 (pushdecl_namespace_level): Likewise.
1235 (pushdecl_top_level): Likewise.
1236 (pushdecl_class_level): Likewise.
1237 (push_class_level_binding): Likewise.
1238 (push_using_decl): Likewise.
1239 (push_using_directive): Likewise.
1240 (push_overloaded_decl): Likewise.
1241 (lookup_label): Likewise.
1242 (define_label): Likewise.
1243 (lookup_tag): Likewise.
1244 (lookup_tag_reverse): Likewise.
1245 (lookup_namespace_name): Likewise.
1246 (select_decl): Likewise.
1247 (unqualified_namespace_lookup): Likewise.
1248 (lookup_name_real): Likewise.
1249 (lookup_name_current_level): Likewise.
1250 (lookup_type_current_level): Likewise.
1251 (maybe_inject_for_scope_var): Likewise.
1252 (xref_tag): Likewise.
1253
1254 * Make-lang.in (cp/decl.o): Add dependency on timevar.h
40a4184c 1255
6a540f3c
PE
12562003-02-12 Phil Edwards <pme@gcc.gnu.org>
1257
1258 * decl.c (build_enumerator): Remove unneeded test.
1259
7a93f739
DN
12602003-02-09 Dan Nicolaescu <dann@ics.uci.edu>
1261
1262 * cp-tree.h (struct lang_type_header): Make all fields unsigned
1263 char.
1264
b80f8ef3
MM
12652003-02-03 Mark Mitchell <mark@codesourcery.com>
1266
1267 PR c++/7129
1268 * call.c (z_candidate): Add args.
1269 (convert_class_to_reference): Set it.
1270 (implicit_conversion): Tidy.
1271 (add_candidate): Add args parameter.
1272 (add_function_candidate): Adjust call to add_candidate.
1273 (add_conv_candidate): Likewise.
1274 (build_builtin_candidate): Likewise.
1275 (build_user_type_conversion_1): Eliminate wasteful tree_cons
1276 usage.
1277 (build_new_function_call): Likewise.
1278 (build_object_call): Likewise.
1279 (add_candidates): New function.
1280 (build_new_op): Use it.
1281 (covert_like_real): Adjust call to build_over_call.
1282 (build_over_call): Remove args parameter.
1283 * operators.def: Add <?= and >?=.
1284
271bd540
RS
12852003-02-01 Richard Sandiford <rsandifo@redhat.com>
1286
1287 * typeck.c (build_indirect_ref): Don't check flag_volatile.
1288
db0f613d
KL
12892003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1290
1291 PR c++/8849
1292 * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.
1293
1824b90d
NS
12942003-01-31 Nathan Sidwell <nathan@codesourcery.com>
1295
1296 * cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
1297 BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
1298 (BINFO_LANG_ELTS): New #define.
1299 * tree.c (make_binfo): Use BINFO_LANG_ELTS.
1300
f099d360
GK
13012003-01-30 Geoffrey Keating <geoffk@apple.com>
1302
1303 * cp/Make-lang.in: Remove -Wno-error from cp/decl.o.
1304
5552b43c
MM
13052003-01-30 Mark Mitchell <mark@codesourcery.com>
1306
1307 * class.c (check_field_decls): Only check C_TYPE_FIELDS_READONLY
1308 for class types.
1309 * cp-tree.h (C_TYPE_FIELDS_READONLY): Use a lang-specific bit
1310 rather than TYPE_LANG_FLAG_0.
1311 (TYPE_BUILT_IN): Remove.
1312 (TYPE_DEPENDENT_P): New macro.
1313 (TYPE_DEPENDENT_P_VALID): Likewise.
1314 (lang_type_class): Add fields_readonly.
1315 * decl.c (record_builtin_type): Don't set TYPE_BUILT_IN.
1316 * pt.c (dependent_type_p_r): New function, split out from ...
1317 (dependent_type_p): ... here. Memoize results.
1318 * search.c (dependent_base_p): Use dependent_type_p, not
1319 uses_template_parms.
1320 * typeck.c (build_modify_expr): Only check C_TYPE_FIELDS_READONLY
1321 for class types.
1322
14d22dd6
MM
13232003-01-29 Mark Mitchell <mark@codesourcery.com>
1324
1325 * call.c (build_field_call): Use build_new_op, not build_opfncall.
1326 (prep_operand): New function.
1327 (build_new_op): Use it. Remove dead code.
1328 * class.c (pushclass): Change "modify" parameter type from int to
1329 bool.
1330 (currently_open_class): Use same_type_p, not pointer equality.
1331 (push_nested_class): Adjust calls to pushclass, remove modify
1332 parameter.
1333 * cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro.
1334 (pushclass): Change prototype.
1335 (push_nested_class): Likewise.
1336 (grokoptypename): Remove.
1337 (build_opfncall): Remove.
1338 (value_dependent_expression_p): Declare.
1339 (resolve_typename_type): Likewise.
1340 (resolve_typename_type_in_current_instantiation): Likewise.
1341 (enter_scope_of): Remove.
1342 (tsubst): Remove.
1343 (tsubst_expr): Likewise.
1344 (tsubst_copy): Likewise.
1345 (tsubst_copy_and_build): Likewise.
1346 * decl.c (warn_about_implicit_typename_lookup): Remove.
1347 (finish_case_label): Return error_mark_node for erroneous labels.
1348 (start_decl): Adjust calls to push_nested_class.
1349 (grokfndecl): Call push_scope/pop_scope around call to
1350 duplicate_decls.
1351 (grokdeclarator): Do not call tsubst.
1352 (start_function): Adjust calls to push_nested_class.
1353 * decl2.c (grok_array_decl): Use build_new_op, not build_opfncall.
1354 (check_classfn): Use push_scope/pop_scope around type comparisions.
1355 (grokoptypename): Remove.
1356 (push_sscope): Adjust call to push_nested_class.
1357 * error.c (dump_type): Show cv-qualification of typename types.
1358 * init.c (build_member_call): Use build_new_op, not
1359 build_opfncall.
1360 * method.c (build_opfncall): Remove.
1361 * parser.c (cp_parser): Add allow_non_constant_expression_p and
1362 non_constant_expression_p.
1363 (cp_parser_constant_expression): Adjust prototype.
1364 (cp_parser_resolve_typename_type): Remove.
1365 (cp_parser_non_constant_expression): New function.
1366 (cp_parser_non_constant_id_expression): Likewise.
1367 (cp_parser_new): Set allow_non_constant_expression_p and
1368 non_constant_expression_p.
1369 (cp_parser_primary_expression): Reject `this' and `va_arg' in
1370 constant-expressions. Note that dependent names aren't really
1371 constant.
1372 (cp_parser_postfix_expression): Reject conversions to non-integral
1373 types in constant-expressions. Neither are increments or
1374 decrements.
1375 (cp_parser_unary_expression): Reject increments and decrements in
1376 constant-expressions.
1377 (cp_parser_direct_new_declarator): Adjust call to
1378 cp_parser_constant_expression.
1379 (cp_parser_cast_expression): Reject conversions to non-integral
1380 types in constant-expressions.
1381 (cp_parser_assignment_expression): Rejects assignments in
1382 constant-expressions.
1383 (cp_parser_expression): Reject commas in constant-expressions.
1384 (cp_parser_labeled_statement): Adjust call to
1385 cp_parser_constant_expression.
1386 (cp_parser_direct_declarator): Simplify array bounds, even in
1387 templates, when they are non-dependent. Use
1388 resolve_typename_type, not cp_parser_resolve_typename_type.
1389 (cp_parser_class_head): Use resolve_typename_type, not
1390 cp_parser_resolve_typename_type.
1391 (cp_parser_member_declaration): Adjust call to
1392 cp_parser_constant_expression.
1393 (cp_parser_constant_initializer): Likewise.
1394 (cp_parser_constructor_declarator): Use resolve_typename_type, not
1395 cp_parser_resolve_typename_type.
1396 (cp_parser_late_parsing_default_args): Adjust call to
1397 push_nested_class.
1398 * pt.c (tsubst): Give it internal linkage.
1399 (tsubst_expr): Likewise.
1400 (tsubst_copy): Likewise.
1401 (tsubst_copy_and_build): Likewise.
1402 (push_access_scope_real): Likewise.
1403 (tsubst_friend_class): Likewise.
1404 (instantiate_class_template): Adjust call to pushclass.
1405 (value_dependent_expression_p): Give it external linkage.
1406 Robustify.
1407 (resolve_typename_type): New function.
1408 * semantics.c (finish_call_expr): Use build_new_op, not
1409 build_opfncall.
1410 (begin_constructor_declarator): Remove.
1411 (begin_class_definition): Adjust call to pushclass.
1412 (enter_scope_of): Remove.
1413 * typeck.c (comptypes): Resolve typename types as appropriate.
1414 (build_x_indirect_ref): Use build_new_op, not build_opfncall.
1415 (build_x_compound_expr): Likewise.
1416 (build_modify_expr): Likewise.
1417 (build_x_modify_expr): Likewise.
1418 * typeck2.c (build_x_arrow): Likewise.
40a4184c 1419
be5a07ac
FJ
14202003-01-29 Fariborz Jahanian <fjahanian@apple.com>
1421
d9b2742a 1422 * pt.c (last_pending_template) Declare GTY().
be5a07ac 1423
710b73e6
KL
14242003-01-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1425
1426 PR c++/8591
1427 * parser.c (cp_parser_elaborated_type_specifier): Convert
1428 TEMPLATE_DECL to TYPE_DECL only when processing template friends.
1429 (cp_parser_maybe_treat_template_as_class): Remove redundant tests.
1430
f2ce60b8
NS
14312003-01-28 Nathan Sidwell <nathan@codesourcery.com>
1432
9ae58faf
NS
1433 PR c++/9437
1434 * pt.c (unify): Don't unify '*T' with 'U C::*'.
1435
f2ce60b8
NS
1436 PR c++/3902
1437 * parser.c (cp_parser_decl_specifier_seq): Cannot have constructor
1438 inside a declarator.
1439
a2ddc397
NS
14402003-01-27 Nathan Sidwell <nathan@codesourcery.com>
1441
1442 * class.c (update_vtable_entry_for_fn): Add index parameter.
1443 Generate vcall thunk for covariant overriding from a virtual
1444 primary base.
1445 (dfs_modify_vtables): Adjust.
1446
bbaab916
NS
14472003-01-25 Nathan Sidwell <nathan@codesourcery.com>
1448
1449 PR c++/9403
1450 * parser.c (cp_parser_class_or_namespace_name): Reject duplicate
1451 template keyword.
1452 (cp_parser_base_specifier): Look for and consume a
1453 TEMPLATE keyword. Replace switch with array index.
1454
1455 PR c++/795
1456 * semantics.c (finish_non_static_data_member): Remember the
1457 field's type even in a template.
1458
1459 PR c++/9415
1460 * pt.c (tsubst_copy_and_build, CALL_EXPR): BASELINK exprs are
1461 already scoped.
40a4184c 1462
bbaab916
NS
1463 PR c++/8545
1464 * parser.c (cp_parser_cast_expression): Be more tentative.
1465
fb8eab96
KL
14662003-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1467
1468 * cp-tree.h (flagged_type_tree_s): Remove.
1469 (check_for_new_type): Likewise.
1470 * typeck2.c (check_for_new_type): Likewise.
1471
c38e9817
NN
14722003-01-23 Nathanael Nerode <neroden@gcc.gnu.org>
1473
ee42dd9d
NN
1474 * dump.c: ANSIfy function declarations and definitions.
1475
c38e9817
NN
1476 * cp-tree.h, decl.h: Get rid of PARAMS. Again.
1477
c006d942
MM
14782003-01-22 Mark Mitchell <mark@codesourcery.com>
1479
1480 PR c++/9354
1481 * init.c (build_new): Set the type of the new-expression, even
1482 when processing_templte_decl.
1483
1484 PR c++/9216
1485 * parser.c (cp_parser_primary_expression): Improve error message
1486 for templates used in an expression context.
1487
1488 PR c++/8696
1489 * parser.c (cp_parser_decl_specifier_seq): Commit to tentative
1490 parse when encountering "typedef".
1491
94edc4ab
NN
14922003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
1493
1494 * class.c, parser.c: ANSIfy function definitions and declarations.
1495
e0860732
MM
14962003-01-22 Mark Mitchell <mark@codesourcery.com>
1497
65a5559b
MM
1498 PR c++/9328
1499 * error.c (dump_decl): For an OVERLOAD, just print the name of the
1500 function; it doesn't make sense to try to print its type.
1501 * semantics.c (finish_typeof): Issue errors about invalid uses.
1502
e0860732
MM
1503 PR c++/9298
1504 * parser.c (cp_parser_consume_semicolon_at_end_of_statement): New
1505 function.
1506 (cp_parser_expression_statement): Use it.
1507 (cp_parser_explicit_instantiation): Likewise.
1508 * pt.c (do_decl_instantiation): Improve error handling logic.
40a4184c 1509
1fb3244a
MM
15102003-01-22 Mark Mitchell <mark@codesourcery.com>
1511
4eb6d609
MM
1512 PR c++/9384
1513 * parser.c (cp_parser_using_declaration): Issue error messages
1514 about name resolution failures here.
1515
1fb3244a
MM
1516 PR c++/9388
1517 * class.c (currently_open_derived_class): Use dependent_type_p.
1518 * cp-tree.h (dependent_type_p): New function.
1519 (dependent_template_arg_p): Likewise.
1520 (dependent_template_p): Likewise.
1521 (type_dependent_expression_p): Likewise.
1522 * parser.c (cp_parser_dependent_type_p): Remove.
1523 (cp_parser_value_dependent_type_p): Likewise.
1524 (cp_parser_type_dependent_expression_p): Likewise.
1525 (cp_parser_dependent_template_arg_p): Likewise.
1526 (cp_parser_dependent_template_id_p): Likewise.
1527 (cp_parser_dependent_template_p): Likewise.
1528 (cp_parser_diagnose_invalid_type_name): Replace
1529 cp_parser_dependent_type_p with dependent_type_p, etc.
1530 (cp_parser_primary_expresion): Likewise.
1531 (cp_parser_nested_name_specifier_opt): Likewise.
1532 (cp_parser_postfix_expression): Likewise.
1533 (cp_parser_unary_expression): Likewise.
1534 (cp_parser_template_name): Likewise.
1535 (cp_parser_class_name): Likewise.
1536 (cp_parser_lookup_name): Likewise.
1537 * pt.c (dependent_type_p): New function.
1538 (value_dependent_expression_p): Likewise.
1539 (type_dependent_expression_p): Likewise.
1540 (dependent_template_arg_p): Likewise.
1541 (dependent_template_id_p): Likewise.
1542 (dependent_template_p): Likewise.
40a4184c 1543
1fb3244a
MM
1544 PR c++/9285
1545 PR c++/9294
00b51d29 1546 * parser.c (cp_parser_simple_declaration): Return quickly when
d9b2742a 1547 encountering errors.
1fb3244a 1548
dd859b8a
KG
15492003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1550
1551 Make-lang.in (cp/decl.o-warn): Add -Wno-error.
1552
753225c1
JM
15532003-01-17 Jason Merrill <jason@redhat.com>
1554
1555 PR c++/9167, c++/9358
1556 * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.
1557
77b996cc
JM
15582003-01-17 Jason Merrill <jason@redhat.com>
1559
1560 PR c++/9342
1561 * call.c (build_conditional_expr): Always do lvalue-rvalue
1562 conversion.
1563
5dae1114
MM
15642003-01-17 Mark Mitchell <mark@codesourcery.com>
1565
1566 PR c++/9294
1567 * cp-tree.def (BASELINK): Make it class 'x', not class 'e'.
1568 * cp-tree.h (BASELINK_BINFO): Adjust.
1569 (BASELINK_FUNCTIONS): Likewise.
1570 (BASELINK_ACCESS_BINFO): Likewise.
1571 (tree_baselink): New structure.
1572 (cp_tree_node_structure_enum): Add TS_CP_BASELINK.
1573 (lang_tree_node): Add baselink.
1574 * decl.c (cp_tree_node_structure): Add BASELINK case.
1575 * search.c (build_baselink): Adjust.
1576 * tree.c (cp_walk_subtrees): Add BASELINK case. Remove BASELINK_P
1577 test from TREE_LIST case.
1578
1579 PR c++/9272
1580 * parser.c (cp_parser_constructor_declarator_p): Do not assume
1581 that a constructor cannot be declared outside of its own class.
40a4184c 1582
5dae1114
MM
1583 * parser.c (cp_parser_resolve_typename_type): If the scope cannot
1584 be resolved, neither can the qualified name.
1585
1586 * rtti.c (get_pseudo_ti_desc): Fix thinko.
1587
a48cccea
JM
15882003-01-16 Jason Merrill <jason@redhat.com>
1589
1590 PR c++/8564
1591 * init.c (build_vec_init): Re-add maxindex parm.
1592 (perform_member_init, build_aggr_init): Pass it.
1593 (build_new_1): Pass it. Use an incomplete array type for full_type.
1594 * typeck.c (build_modify_expr): Pass it.
1595 * cp-tree.h: Adjust.
1596
cc23546e
JO
15972003-01-16 Jeffrey D. Oldham <oldham@codesourcery.com>
1598
1599 * cp-tree.h (tsubst_copy_and_build): New declaration.
1600 * pt.c (tsubst_copy): Remove 'build_expr_from_tree' from comment.
1601 (tsubst_expr): Use 'tsubst_copy_and_build'. Update initial comment.
1602 (tsubst_copy_and_build): New function.
1603
8fbc5ae7
MM
16042003-01-16 Mark Mitchell <mark@codesourcery.com>
1605
1606 * cp-tree.h (lang_type_class): Remove is_partial_instantiation.
1607 (PARTIAL_INSTANTIATION_P): Remove.
1608 (IMPLICIT_TYPENAME_P): Likewise.
1609 (IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise.
1610 (build_typename_type): Remove declaration.
1611 (parmlist_is_exprlist): Likewise.
1612 * decl.c (build_typename_type): Make it static, remove third
1613 parameter.
1614 (push_class_binding): Don't do implicit typename stuff.
1615 (make_typename_type): Likewise.
1616 (lookup_name_real): Likewise.
1617 (grokdeclarator): Don't try to convert declarations into
1618 initializations. Don't do implicit typename stuff.
1619 (parmlist_is_exprlist): Remove.
1620 (xref_basetypes): Simplify.
1621 * decl2.c (grokfield): Don't try to convert declarations into
1622 initializations.
1623 (build_anon_union_vars): Do this while processing templates, too.
1624 (finish_anon_union): Likewise.
1625 * error.c (dump_type): Remove implicit typename handling.
1626 * parser.c (cp_parser_diagnose_invalid_type_name): New method.
1627 (cp_parser_primary_expression): Correct handling of names not
1628 found by unqualified name lookup in templates.
1629 (cp_parser_nested_name_specifier_opt): Avoid checking dependency
1630 of types when possible.
1631 (cp_parser_simple_declaration): Complain intelligently about some
1632 invalid declarations.
1633 (cp_parser_member_declaration): Likewise.
1634 (cp_parser_constructor_declarator_p): Don't check when we're in a
1635 function scope.
1636 * pt.c (instantiate_class_template): Remove
1637 PARTIAL_INSTANTIATION_P gunk.
1638 * search.c (lookup_field_r): Don't build implicit typenames.
1639 (marked_pushdecls_p): Don't enter dependent base types.
1640 (unmarked_pushdecls_p): Likewise.
1641 * semantics.c (begin_class_definition): Remove implicit typename
1642 stuff.
1643
712becab
NS
16442003-01-16 Nathan Sidwell <nathan@codesourcery.com>
1645
1646 PR c++/9212
1647 * parser.c (cp_parser_direct_declarator): If accepting either
1648 abstract or named, the name must be an unqualified-id.
1649
fc555370
KG
16502003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1651
1652 * class.c (layout_virtual_bases): Avoid signed/unsigned warning.
1653
dd1b7476
KG
16542003-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1655
1656 * decl2.c (check_classfn): Fix uninitialized warning.
1657 (build_anon_union_vars): Likewise.
1658 * pt.c (tsubst_copy): Likewise.
1659
a7189b49
JO
16602003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com>
1661
1662 Further conform g++'s __vmi_class_type_info to the C++ ABI
1663 specification.
1664 * rtti.c (dfs_class_hint_mark): Do not set hints not specified by
1665 the specification.
1666 (class_hint_flags): Likewise.
1667
cf22909c
KL
16682003-01-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1669
1670 * config-lang.in: Add semantics.c to gtfiles.
1671 * cp-tree.h (flagged_type_tree_s): Remove lookups field.
1672 (saved_scope): Likewise.
1673 (type_lookups): Remove.
1674 (deferred_access): New structure.
1675 (type_access_control): Remove.
1676 (save_type_access_control): Likewise.
1677 (reset_type_access_control): Likewise.
1678 (decl_type_access_control): Likewise.
1679 (push_deferring_access_checks): Declare.
1680 (resume_deferring_access_checks): Likewise.
1681 (stop_deferring_access_checks): Likewise.
1682 (pop_deferring_access_checks): Likewise.
1683 (get_deferred_access_checks): Likewise.
1684 (pop_to_parent_deferring_access_checks): Likewise.
1685 (perform_deferred_access_checks): Likewise.
1686 (perform_or_defer_access_check): Likewise.
1687 * decl.c (make_typename_type): Use perform_or_defer_access_check.
1688 (make_unbound_class_template): Likewise.
1689 (grokdeclarator): Don't call decl_type_access_control.
1690 * parser.c (cp_parser_context): Remove deferred_access_checks
1691 and deferring_access_checks_p fields.
1692 (cp_parser_context_new): Adjust.
1693 (cp_parser): Remove access_checks_lists.
1694 (cp_parser_defer_access_check): Remove.
1695 (cp_parser_start_deferring_access_checks): Remove.
1696 (cp_parser_stop_deferring_access_checks): Remove.
1697 (cp_parser_perform_deferred_access_checks): Remove.
1698 (cp_parser_nested_name_specifier_opt): Use new deferred access
1699 functions.
1700 (cp_parser_simple_declaration): Likewise.
1701 (cp_parser_template_id): Likewise.
1702 (cp_parser_function_definition): Likewise.
1703 (cp_parser_class_specifier): Likewise.
1704 (cp_parser_lookup_name): Likewise.
1705 (cp_parser_single_declaration): Likewise.
1706 (cp_parser_pre_parsed_nested_name_specifier): Likewise.
1707 (cp_parser_parse_tentatively): Likewise.
1708 (cp_parser_parse_definitely): Likewise.
1709 (yyparse): Likewise.
1710 (cp_parser_init_declarator): Remove access_checks parameter.
1711 Use new deferred access functions.
1712 (cp_parser_function_definition_from_specifiers_and_declarator):
1713 Likewise.
1714 (cp_parser_class_head): Remove deferring_access_checks_p and
1715 saved_access_checks parameters. Use new deferred access functions.
1716 (cp_parser_member_specification_opt): Don't call
1717 reset_type_access_control.
1718 * search.c (type_access_control): Remove.
1719 * semantics.c: Include "gt-cp-semantics.h".
1720 (deferred_type_access_control): Remove.
1721 (deferred_access_stack): New variable.
1722 (deferred_access_free_list): Likewise.
1723 (push_deferring_access_checks): New function.
1724 (resume_deferring_access_checks): Likewise.
1725 (stop_deferring_access_checks): Likewise.
1726 (pop_deferring_access_checks): Likewise.
1727 (get_deferred_access_checks): Likewise.
1728 (pop_to_parent_deferring_access_checks): Likewise.
1729 (perform_deferred_access_checks): New function, adapted from
1730 cp_parser_perform_deferred_access_checks.
1731 (perform_or_defer_access_check): New function, adapted from
1732 cp_parser_defer_access_check.
1733 (current_type_lookups): Remove.
1734 (deferred_type_access_control): Likewise.
1735 (decl_type_access_control): Likewise.
1736 (save_type_access_control): Likewise.
1737 (reset_type_access_control): Likewise.
1738 (begin_function_definition): Adjust.
1739 (begin_class_definiton): Likewise.
1740
f576dfc4
JM
17412003-01-13 Jason Merrill <jason@redhat.com>
1742
1743 PR c++/8748
1744 * class.c (build_base_path): Take the address before calling save_expr.
1745
1746 * call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if
1747 all the ambiguous conversions are bad.
1748
1749 * class.c (maybe_warn_about_overly_private_class): Don't stop
1750 searching when we find a nonprivate method.
1751
1752 * typeck.c (build_class_member_access_expr): Use unary_complex_lvalue.
1753
8fa1ad0e
MM
17542003-01-12 Mark Mitchell <mark@codesourcery.com>
1755
1756 * cp-tree.h (get_arglist_len_in_bytes): Remove.
1757
1758 PR c++/9264
1759 * parser.c (cp_parser_elaborated_type_specifier): Handle erroneous
1760 typeame types more robustly.
1761
15d2cb19
PE
17622003-01-11 Phil Edwards <pme@gcc.gnu.org>
1763
1764 * parser.c: Fix comment typos.
1765
a6f6052a
MM
17662003-01-10 Mark Mitchell <mark@codesourcery.com>
1767
99152b95 1768 PR c++/9099
a6f6052a
MM
1769 * parser.c (cp_parser_scope_through_which_access_occurs): Handle
1770 an object_type which is not a class type.
1771
3466b292
GK
17722003-01-10 Geoffrey Keating <geoffk@apple.com>
1773
1774 * parser.c (cp_parser_late_parsing_for_member): Don't cast to void.
1775 (cp_parser_late_parsing_default_args): Likewise.
1776
b2f29cd9
NN
17772003-01-10 Nathanael Nerode <neroden@gcc.gnu.org>
1778
1779 * cfns.gperf: ANSIfy function declarations.
1780 * cfns.h: Regenerate.
1781 * cp-tree.h: ANSIfy function declarations.
1782
2050a1bb
MM
17832003-01-10 Mark Mitchell <mark@codesourcery.com>
1784
1785 * cp-tree.h (reparse_absdcl_as_expr): Remove.
1786 (reparse_absdcl_as_casts): Likewise.
1787 (reparse_decl_as_expr): Likewise.
1788 (finish_decl_parsing): Likewise.
1789 * decl2.c (reparse_absdcl_as_expr): Remove.
1790 (reparse_absdcl_as_casts): Likewise.
1791 (repase_decl_as_expr): Likewise.
1792 (finish_decl_parsing): Likewise.
1793
1794 PR c++/9128
1795 PR c++/9153
1796 PR c++/9171
1797 * parser.c (cp_parser_pre_parsed_nested_name_specifier): New
1798 function.
1799 (cp_parser_nested_name_specifier_opt): Correct the
1800 check_dependency_p false.
1801 (cp_parser_postfix_expression): Fix formatting.
1802 (cp_parser_decl_specifier_seq): Avoid looking for constructor
1803 declarators when possible.
1804 (cp_parser_template_id): Avoid performing name-lookup when
1805 possible.
1806 (cp_parser_class_head): Do not count specializations when counting
1807 levels of templates.
1808 (cp_parser_constructor_declarator_p): Return immediately if
1809 there's no chance that the tokens form a constructor declarator.
1810 * rtti.c (throw_bad_typeid): Add comment. Do not return an
1811 expression with reference type.
1812 (get_tinfo_decl_dynamic): Do not return an expression with
1813 reference type.
1814 (build_typeid): Add comment. Do not return an expression with
1815 reference type.
1816 * typeck.c (build_class_member_access_expr): Improve handling of
1817 conditionals and comma-expressions as objects.
1818
45225759
NN
18192003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
1820
d9b2742a
ZW
1821 * cfns.gperf: ANSIfy function declarations.
1822 * cfns.h: Regenerate.
1823 * cp-tree.h: ANSIfy function declarations.
1824 * parser.c: ANSIfy function declarations & definitions.
b2f29cd9 1825
45225759
NN
1826 * decl.c (bad_specifiers): Fix parameter order error I introduced.
1827
17211ab5
GK
18282003-01-09 Geoffrey Keating <geoffk@apple.com>
1829
1830 Merge from pch-branch:
1831
1832 2003-01-09 Geoffrey Keating <geoffk@apple.com>
1833
1834 Merge to tag pch-merge-20030102:
40a4184c 1835
17211ab5
GK
1836 * semantics.c (finish_translation_unit): Don't call finish_file.
1837 * parser.c: Don't include ggc.h.
1838 (cp_lexer_new_main): Rename from cp_lexer_new, only create main lexer,
1839 read first token here. Don't allow PCH files after the first
1840 token is read.
1841 (cp_lexer_new_from_tokens): Duplicate functionality from cp_lexer_new.
1842 (cp_lexer_get_preprocessor_token): Allow LEXER to be NULL.
1843 (cp_parser_new): Call cp_lexer_new_main before allocating GCed memory.
1844 (cp_parser_late_parsing_for_member): Don't duplicate call to
1845 cp_lexer_set_source_position_from_token.
1846 (cp_parser_late_parsing_default_args): Likewise.
1847 (yyparse): Call finish_file after clearing the_parser.
1848
1849 2002-12-11 Geoffrey Keating <geoffk@apple.com>
1850
1851 * Make-lang.in: Remove $(GGC_H) from all dependencies.
1852 (CXX_TREE_H): Add $(GGC_H).
40a4184c 1853 * class.c: Don't include ggc.h.
17211ab5
GK
1854 (field_decl_cmp): Make parameters be 'const void *' to match qsort.
1855 (method_name_cmp): Likewise.
1856 (resort_data): New variable.
1857 (resort_field_decl_cmp): New.
1858 (resort_method_name_cmp): New.
1859 (resort_sorted_fields): New.
1860 (resort_type_method_vec): New.
1861 (finish_struct_methods): Delete cast.
1862 (finish_struct_1): Delete cast.
1863 * cp-tree.h: Include ggc.h.
1864 (struct lang_type_class): Add reorder attribute to field `methods'.
1865 (union lang_decl_u3): Add reorder attribute to field `sorted_fields'.
1866 (resort_sorted_fields): New prototype.
1867 (resort_type_method_vec): New prototype.
1868 * call.c: Don't include ggc.h.
1869 * decl.c: Likewise.
1870 * decl2.c: Likewise.
1871 * init.c: Likewise.
1872 * lex.c: Likewise.
1873 * method.c: Likewise.
1874 * optimize.c: Likewise.
1875 * parse.y: Likewise.
1876 * pt.c: Likewise.
1877 * repo.c: Likewise.
1878 * search.c: Likewise.
1879 * semantics.c: Likewise.
1880 * spew.c: Likewise.
1881 * tree.c: Likewise.
1882
1883 * lang-specs.h: Remove comment.
1884
1885 2002-12-03 Geoffrey Keating <geoffk@apple.com>
1886
1887 * cp-tree.h (struct operator_name_info_t): Mark for GTY machinery.
1888 (operator_name_info): Mark to be saved for PCH, specify size.
1889 (assignment_operator_name_info): Likewise.
1890
1891 2002-11-19 Geoffrey Keating <geoffk@apple.com>
1892
1893 * decl.c (anon_cnt): Mark to be saved for PCH.
1894
1895 2002-10-25 Geoffrey Keating <geoffk@apple.com>
1896
1897 * lex.c (init_reswords): Delete now-untrue comment.
1898 Allocate ridpointers using GGC.
1899
1900 2002-10-04 Geoffrey Keating <geoffk@apple.com>
1901
1902 * cp-tree.h (union lang_decl_u2): Add tags to all fields.
1903
1904 * g++spec.c (lang_specific_driver): Don't include standard
1905 libraries in `added'.
1906
1907 2002-08-27 Geoffrey Keating <geoffk@redhat.com>
1908
1909 * decl2.c (finish_file): Call c_common_write_pch.
1910 * Make-lang.in (CXX_C_OBJS): Add c-pch.o.
1911
1912 2002-08-17 Geoffrey Keating <geoffk@redhat.com>
1913
1914 * g++spec.c (lang_specific_driver): Treat .h files as C++ header
1915 files when using g++.
1916 * lang-specs.h: Handle compiling C++ header files.
1917
ca5dd8b7
JJ
19182003-01-09 Jakub Jelinek <jakub@redhat.com>
1919
1920 * decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.
1921
0f399e5f
KL
19222003-01-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1923
1924 * pt.c (push_access_scope_real): Call push_to_top_level for
1925 function in namespace scope.
1926 (pop_access_scope): Call pop_from_top_level for function in
1927 namespace scope.
1928
c456a45a
JJ
19292003-01-09 Jakub Jelinek <jakub@redhat.com>
1930
1931 * decl.c (start_decl): Don't set DECL_COMMON for __thread variables.
1932
2c6ce97e
CC
19332003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
1934
1935 * Make-lang.in (c++.install-common, c++.install-man,
1936 c++.uninstall): Prepend $(DESTDIR) to destination paths in
1937 all (un)installation commands.
1938 (c++.install-common): Rewrite $(LN) commands to support
1939 DESTDIR with "ln" as well as with "ln -s".
1940
f74dbcec
JM
19412003-01-08 Jason Merrill <jason@redhat.com>
1942
1943 * parser.c (cp_parser_primary_expression): See through explicitly
1944 scoped ALIAS_DECLs, too.
1945
11f6b451
NN
19462003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
1947
1774f99d
NN
1948 * decl.c: Remove some #if 0 code.
1949
11f6b451
NN
1950 * decl.c: ANSIfy function declarations.
1951
8caf4c38
MM
19522003-01-07 Mark Mitchell <mark@codesourcery.com>
1953
1954 * parser.c (cp_parser_asm_definition): Correct handling of omitted
1955 operands.
1956
2b59fc25
KL
19572003-01-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1958
1959 PR c++/9030
1960 * decl.c (make_typename_type): Check access only when tf_error.
1961 (make_unbound_class_template): Likewise.
1962 * pt.c (saved_access_scope): New variable.
1963 (push_access_scope_real): New function.
1964 (push_access_scope): Likewise.
1965 (pop_access_scope): Likewise.
1966 (tsubst_default_argument): Use them.
1967 (instantiate_template): Likewise.
1968 (regenerate_decl_from_template): Likewise.
1969 (instantiate_decl): Likewise.
1970 (get_mostly_instantiated_function_type): Likewise.
1971
3f7617e4
NN
19722003-01-07 Nathanael Nerode <neroden@gcc.gnu.org>
1973
1974 * tree.c: Delete bogus #if 0 code.
1975
c9372112
AS
19762003-01-07 Andreas Schwab <schwab@suse.de>
1977
1978 * class.c (layout_class_type): Don't use
1979 PCC_BITFIELD_TYPE_MATTERS if not defined.
1980
8218bd34
MM
19812003-01-06 Mark Mitchell <mark@codesourcery.com>
1982
c10cdb3d
MM
1983 PR c++/9165
1984 * decl2.c (build_cleanup): Mark the object as used.
1985
69f794a7
MM
1986 * pt.c (retrieve_local_specialization): Revert 2003-01-05 change.
1987 (hash_local_specialization): New function.
1988 (register_local_specialization): Revert 2003-01-05 change.
1989 (instantiate_decl): Use hash_local_specialization when creating
1990 the local_specializations table.
40a4184c 1991
4c4646b5
MM
1992 * decl2.c (mark_used): Do not synthesize thunks.
1993
63e5f567
MM
1994 * class.c (layout_class_type): Correct handling of unnamed
1995 bitfields wider than their types.
1996
8218bd34
MM
1997 PR c++/9189
1998 * parser.c (cp_parser): Remove default_arg_types. Update
1999 documentation for unparsed_functions_queues.
2000 (cp_parser_late_parsing_default_args): Take a FUNCTION_DECL as the
2001 parameter.
2002 (cp_parser_new): Don't set parser->default_arg_types.
2003 (cp_parser_function_definition): Adjust usage of
2004 unparsed_funtions_queues.
2005 (cp_parser_class_specifier): Don't mess with
2006 parser->default_arg_types. Handle default argument processing in
2007 a separate phase from function body processing.
2008 (cp_parser_template_declaration_after_export): Adjust usage of
2009 unparsed_functions_queues.
2010 (cp_parser_late_parsing_for_member): Do not handle default
2011 arguments.
2012
62b8a44e
NS
20132003-01-06 Nathan Sidwell <nathan@codesourcery.com>
2014
2015 PR c++/9109
2016 * parser.c (cp_parser_declarator_kind): New enum.
2017 (cp_parser_declarator): Adjust.
2018 (cp_parser_direct_declarator): Adjust. Allow for either named or
2019 abstract declarator. Prefer abstract, if possible. Allow
2020 parenthesized function name.
2021 (cp_parser_condition): Adjust cp_parser_declarator call.
2022 (cp_parser_explicit_instantiation): Likewise.
2023 (cp_parser_init_declarator): Likewise.
2024 (cp_parser_type_id): Likewise.
2025 (cp_parser_function_definition): Likewise.
2026 (cp_parser_member_declaration): Likewise.
2027 (cp_parser_parameter_declaration): Use cp_parser_declarator to do
2028 the tentative parsing.
2029 (cp_parser_exception_declaration): Likewise.
2030
ec194454
MM
20312003-01-05 Mark Mitchell <mark@codesourcery.com>
2032
2033 * parser.c (cp_parser_template_parameter): Adjust call to
2034 cp_parser_parameter_declaration.
2035 (cp_parser_parameter_declaration_list): Likewise.
2036 (cp_parser_parameter_declaration): Replace
2037 greater_than_is_operator_p with template_parm_p parameter. Do not
2038 cache tokens for template default arguments.
2039
2040 * pt.c (retrieve_local_specialization): Use htab_find, not
2041 htab_find_with_hash.
2042 (register_local_specialization): Use htab_find_slot, not
2043 htab_find_slot_with_hash.
2044 (instantiate_decl): Pass a hash function to htab_create.
40a4184c 2045
39b1af70
KG
20462003-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2047
2048 * parser.c (cp_parser_binary_expression,
2049 cp_parser_multiplicative_expression,
2050 cp_parser_additive_expression, cp_parser_shift_expression,
2051 cp_parser_relational_expression, cp_parser_equality_expression,
2052 cp_parser_and_expression, cp_parser_exclusive_or_expression,
2053 cp_parser_inclusive_or_expression,
2054 cp_parser_logical_and_expression, cp_parser_logical_or_expression,
2055 cp_parser_binary_expression): Const-ify.
2056
1bb2cc34
MM
20572003-01-04 Mark Mitchell <mark@codesourcery.com>
2058
2059 * method.c (use_thunk): Disable access control while building the
2060 body of the thunk.
2061
3fd5abcf
NN
20622003-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
2063
40a4184c 2064 * cvt.c, decl.c, decl2.c: This is the C++ front end, not the C
3fd5abcf
NN
2065 front end.
2066
9aad8f83
MA
20672003-01-03 Matt Austern <austern@apple.com>
2068
2069 * cp-tree.h (struct lang_type_class): add field for key method
2070 (cp_global_trees): rename dynamic_classes to keyed_classes
2071 (key_method): add definition
2072 * class.c (finish_struct_1): compute class's key method, and add
2073 the class to keyed_classes list if there is no key method.
2074 * decl.c (finish_function): add class to keyed_classes list if we
2075 see a definition of the class's key method.
2076 * pt.c (instantiate_class_template): add template specialization
2077 of a dynamic class to keyed_classes list.
2078 * decl2.c (key_method): remove
2079 (finish_file): iterate only through keyed_classes list when
2080 deciding whether to emit vtables, remove class from its list after
2081 we do the emission.
40a4184c 2082
6cce57b0
JM
20832003-01-02 Jason Merrill <jason@redhat.com>
2084
4e8dca1c
JM
2085 * call.c (build_conditional_expr): Stabilize lvalues properly.
2086 * cvt.c (ocp_convert): Don't build NOP_EXPRs of class type.
2087 * tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues.
2088 Don't allow CALL_EXPR or VA_ARG_EXPR, either.
2089
2090 * call.c (convert_like_real): Call decl_constant_value for an
2091 IDENTITY_CONV even if there are no more conversions.
2092
2093 * cvt.c (build_up_reference): Don't push unnamed temps.
2094
2095 * decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL.
2096
2097 * dump.c (cp_dump_tree): Don't try to dump class-specific fields
2098 for a backend struct.
2099
2100 * except.c (wrap_cleanups_r, build_throw): Make
2101 MUST_NOT_THROW_EXPRs void.
2102 * init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR.
2103
2104 * init.c (build_vec_delete_1): Pre-evaluate the base address.
2105
2106 * init.c (get_temp_regvar): Simplify logic.
2107
2108 * tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks if
2109 our replacement is a decl.
2110
6cce57b0
JM
2111 * decl.c (cp_make_fname_decl): Push the decls inside the
2112 outermost scope.
2113
31758337
NS
21142003-01-03 Nathan Sidwell <nathan@codesourcery.com>
2115
2116 PR c++/45, c++/3784
2117 * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
2118 the same too.
2119
24c0ef37
GS
21202003-01-03 Graham Stott <graham.stott@btinternet.com>
2121
2122 * parser.c (struct cp_parser): Add access_checks_lists field
2123 (cp_parser_simple_declaration): Use.
40a4184c 2124 (cp_parser_init_declarator): Likewise.
24c0ef37 2125
5e8a153a
MM
21262003-01-02 Mark Mitchell <mark@codesourcery.com>
2127
1092805d
MM
2128 * parser.c (cp_parser_declaration): Accept the __extension__
2129 keyword before the declaration.
2130
4971227d
MM
2131 PR c++/2843
2132 * parser.c (cp_parser_parameter_declaration): Allow attributes to
2133 appear after the declarator.
2134
5e8a153a
MM
2135 * call.c (build_new_method_call): Fix typo in message format
2136 string.
2137
3beb3abf
MM
21382003-01-02 Mark Mitchell <mark@codesourcery.com>
2139
f7b5ecd9
MM
2140 * parser.c (cp_lexer_next_token_is): Declare it inline.
2141 (cp_lexer_set_source_position_from_token): Likewise.
2142 (cp_lexer_debugging_p): Likewise.
2143 (cp_parser_parsing_tentatively): Likewise.
2144 (cp_parser_nested_name_specifier_opt): Reduce the number of calls
2145 to the cp_lexer_peek_token.
1092805d 2146
3beb3abf
MM
2147 * parser.c (cp_parser_sizeof_operand): Do not evaluate the
2148 expression.
2149
43c6a96a
SB
21502003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
2151
2152 * cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c,
2153 cp/lang-options.h, cp/lang-specs.h, cp/lex.h, cp/ptree.c,
2154 cp/repo.c: Fix copyright years.
2155
c58b209a
NB
21562003-01-01 Neil Booth <neil@daikokuya.co.uk>
2157
2158 * lex.c: Remove superfluous include of cpplib.h.
2159 (CONSTRAINT): Define without conditions.
2160 (init_cp_pragma): Use c_register_pragma.
2161
7347c2c5
NB
21622002-12-31 Neil Booth <neil@daikokuya.co.uk>
2163
2164 * .cvsignore: Remove.
2165
f5adbb8d
SB
21662002-12-31 Steven Bosscher <s.bosscher@student.tudelft.nl>
2167
2168 * call.c, class.c, cp-lang.c, cp-tree.h, cvt.c, dump.c, error.c,
2169 except.c, expr.c friend.c, g++spec.c, init.c, lang-options.h,
2170 lang-specs.h, lex.c, mangle.c, method.c, optimize.c, parser.c,
2171 pt.c, ptree.c, repo.c, rtti.c, search.c, semantics.c, tree.c,
2172 typeck.c, typeck2.c: Replace "GNU CC" with "GCC" in the
2173 copyright header.
2174 * lex.h: parse.y is dead, so don't mention it. Also replace the
2175 copyright header with the default GNU copyright header.
2176
f1aba0a5
MM
21772002-12-31 Mark Mitchell <mark@codesourcery.com>
2178
eea9800f
MM
2179 * cp-tree.h (LOOKUP_TEMPLATES_EXPECTED): Remove.
2180 (lookup_name_namespace_only): Likewise.
2181 (begin_only_namespace_names): Likewise.
2182 (end_only_namespace_names): Likewise.
2183 * decl.c (only_namespace_names): Remove.
2184 (qualify_lookup): Do not check LOOKUP_TEMPLATES_EXPECTED.
2185 (lookup_name_real): Do not check only_namespace_names.
2186 (lookup_name_namespace_only): Remove.
2187 (begin_only_namespace_names): Likewise.
2188 (end_only_namespace_names): Likewise.
2189 * parser.c (cp_parser_nested_name_specifier_opt): Handle erroneous
2190 nested-name-specifiers more gracefully.
2191 (cp_parser_class_or_namespace_name): Avoid looking up namespace
2192 names when they cannot possibly appear.
2193 (cp_parser_template_name): Adjust call to cp_parser_lookup_name.
2194 (cp_parser_elaborated_type_specifier): Likewise.
2195 (cp_parser_namespace_name): Only look for namespace names.
2196 (cp_parser_lookup_name): Add is_namespace parameter.
2197 (cp_parser_lookup_name_simple): Adjust call to
2198 cp_parser_lookup_name.
2199
f1aba0a5
MM
2200 * parser.c (cp_parser_dependent_type_p): Fix thinko.
2201
eea9800f
MM
22022002-12-31 Neil Booth <neil@daikokuya.co.uk>
2203
2204 * .cvsignore: Update.
2205
3cfabe60
NS
22062002-12-31 Nathan Sidwell <nathan@codesourcery.com>
2207
2208 * class.c (modify_vtable_entry): Remove unused variable.
2209 (get_vcall_index): Always expect a non-thunk.
2210 (update_vtable_entry_for_fn): Combine covariant adjustments, when
2211 overriding a thunk. Pass get_vcall_index a non-thunk.
2212
2213 * decl2.c (finish_file): Mark undefined inlines as extern.
2214
92bc1323
MM
22152002-12-31 Mark Mitchell <mark@codesourcery.com>
2216
2217 * cp-tree.def (RETURN_INIT): Remove.
2218 * cp-tree.h (DECL_IN_MEMORY_P): Remove.
2219 (scope_kind): Add sk_block, sk_try, sk_catch, sk_for.
2220 (note_level_for_for): Remove.
2221 (note_level_for_try): Likewise.
2222 (note_level_for_catch): Likewise.
2223 (finish_named_return_value): Likewise.
2224 (do_pushlevel): Change prototype.
2225 (pending_lang_change): Remove.
2226 * decl.c (begin_scope): Handle sk_block, sk_try, sk_catch,
2227 sk_for.
2228 (note_level_for_for): Remove.
2229 (note_level_for_try): Likewise.
2230 (note_level_for_catch): Likewise.
2231 (maybe_inject_for_scope_var): Remove use of DECL_IN_MEMORY_P.
2232 * parser.c (cp_parser_context_free_list): Make it "deletable".
2233 (cp_parser_template_argument): Remove misleading comment.
2234 * pt.c (tsubst_expr): Remove RETURN_INIT code.
2235 * semantics.c (genrtl_named_return_value): Remove.
2236 (do_pushlevel): Take a scope kind as an argument.
2237 (begin_if_stmt): Adjust.
2238 (begin_while_stmt): Likewise.
2239 (begin_for_stmt): Likewise.
2240 (finish_for_init_stmt): Likewise.
2241 (begin_switch_stmt): Likewise.
2242 (begin_handler): Likewise.
2243 (begin_compound_stmt): Likewise.
2244 (finish_named_return_value): Remove.
2245 (cp_expand_stmt): Remove RETURN_INIT case.
2246 * tree.c (cp_statement_code_p): Remove RETURN_INIT case.
43c6a96a 2247
abda8efe
MM
22482002-12-31 Mark Mitchell <mark@codesourcery.com>
2249
2250 PR c++/9112
2251 * parser.c (cp_parser_direct_declarator): Handle erroneous
2252 parenthesized declarators correctly.
2253
eddcae5a
GDR
22542002-12-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
2255
2256 * cp-tree.h (pending_lang_change): Declare.
2257
c838d82f
MM
22582002-12-30 Mark Mitchell <mark@codesourcery.com>
2259
e5976695
MM
2260 * parser.c (cp_parser_context_free_list): New variable.
2261 (cp_parser_context_new): Use it.
2262 (cp_parser_error): Check return code from
2263 cp_parser_simulate_error.
2264 (cp_parser_simulate_error): Return a value.
2265 (cp_parser_id_expression): Optimize common case.
2266 (cp_parser_class_name): Likewise.
2267 (cp_parser_class_specifier): Adjust call to
2268 cp_parser_late_parsing_default_args.
2269 (cp_parser_lookup_name): Optimize common case.
2270 (cp_parser_late_parsing_for_member): Adjust call to
2271 cp_parser_late_parsing_default_args.
2272 (cp_parser_late_parsing_default_args): Add scope parameter.
2273 (cp_parser_require): Avoid creating the error message unless it's
2274 needed.
2275 (cp_parser_parse_definitely): Place free'd contexts on the free
2276 list.
2277
c838d82f
MM
2278 * parser.c (cp_parser_declaration_seq_opt): Handle pending_lang_change.
2279
c73aecdf
DE
22802002-12-30 David Edelsohn <edelsohn@gnu.org>
2281
2282 * parser.c (cp_parser_parameter_declaration_clause): Treat system
2283 header as extern "C" if NO_IMPLICIT_EXTERN_C undefined.
2284
b599b135
NN
22852002-12-30 Nathanael Nerode <neroden@gcc.gnu.org>
2286
43c6a96a 2287 * config-lang.in, Make-lang.in, operators.def, cp-tree.def:
b599b135
NN
2288 GCC, not GNU CC.
2289
946d5e45
MM
22902002-12-30 Mark Mitchell <mark@codesourcery.com>
2291
afd9b9dd
MM
2292 * parse.y: Remove.
2293 * spew.c: Likewise.
2294 * Make-lang.in (gt-cp-spew.h): Remove.
2295 * cp-tree.h (do_pending_lang_change): Remove.
2296 (do_identifier): Change prototype.
2297 (finish_id_expr): Remove.
2298 * decl.c (lookup_name_real): Remove yylex variable.
2299 * decl2.c (build_expr_from_tree): Adjust call to do_identifier.
2300 * lex.c (init_cpp_parse): Remove.
2301 (reduce_cmp): Likewise.
2302 (token_cmp): Likewise.
2303 (yychar): Likewise.
2304 (lastiddecl): Likewise.
2305 (token_count): Likewise.
2306 (reduce_count): Likewise.
2307 (yyhook): Likewise.
2308 (print_parse_statistics): Likewise.
2309 (do_pending_lang_change): Likewise.
2310 (do_identifier): Remove parsing parameter.
2311 * lex.h (lastiddecl): Remove.
2312 (looking_for_typename): Remove.
2313 (looking_for_template): Likewise.
2314 (pending_lang_change): Likewise.
2315 (yylex): Likewise.
2316 * semantics.c (finish_id_expr): Remove.
43c6a96a 2317
946d5e45
MM
2318 * decl.c (grokdeclarator): Diagnost "extern thread" and "static
2319 thread" correctly.
2320
1c313945
NN
23212002-12-30 Nathanael Nerode <neroden@gcc.gnu.org>
2322
2323 * decl.c, decl2.c, decl.h: GCC, not GNU CC. This is the C++ front
2324 end, not the C front end.
2325
8e268f72
NS
23262002-12-30 Nathan Sidwell <nathan@codesourcery.com>
2327
2328 * cp-tree.h (THUNK_TARGET): New macro.
2329 (THUNK_VIRTUAL_OFFSET): For result thunks it is always a binfo.
2330 (finish_thunk): Remove offset parms.
2331 * class.c (find_final_overrider): Look through thunks.
2332 (get_vcall_index): Use THUNK_TARGET.
2333 (update_vtable_entry_for_fn): Look through thunks. Set covariant
2334 fixed offset here. Adjust finish_thunk call.
2335 (build_vtbl_initializer): Adjust finish_thunk calls.
2336 * mangle.c (mangle_call_offset): Remove superfluous if.
2337 (mangle_thunk): Adjust.
2338 * method.c (make_thunk): Adjust.
2339 (finish_thunk): Adjust.
2340 (thunk_adjust): Remove assert.
2341 (use_thunk): Use THUNK_TARGET
2342 * dump1.c (cp_dump_tree): Adjust thunk dumping.
2343
2344 PR c++/9054
2345 * class.c (layout_class_type): Set TYPE_CONTEXT of type for base.
2346 * dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types.
2347
848eed92
GDR
23482002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
2349
2350 Remove traditional C constructs 4/n.
2351 * decl2.c (grok_method_quals, warn_if_unknown_interface,
2352 grok_x_components, cp_build_parm_decl, build_artificial_parm,
2353 maybe_retrofit_in_chrg, grokclassfn, grok_array_decl,
2354 delete_sanity, check_member_template, check_java_method,
2355 check_classfn, finish_static_data_member_decl, grokfield,
2356 grokbitfield, grokoptypename, grok_function_init,
2357 cplus_decl_attributes, constructor_name, defer_fn,
2358 build_anon_union_vars, finish_anon_union, coerce_new_type,
2359 coerce_delete_type, comdat_linkage, maybe_make_one_only,
2360 key_method, import_export_vtable, import_export_class,
2361 output_vtable_inherit, import_export_decl, import_export_tinfo,
2362 build_cleanup, get_guard, get_guard_bits, get_guard_cond,
2363 set_guard, start_objects, finish_objects,
2364 start_static_storage_duration_function,
2365 finish_static_storage_duration_function, get_priority_info,
2366 start_static_initialization_or_destruction,
2367 finish_static_initialization_or_destruction,
2368 do_static_initialization, do_static_destruction,
2369 prune_vars_needing_no_initialization, write_out_vars,
2370 reparse_decl_as_expr, finish_decl_parsing, namespace_ancestor,
2371 add_using_namespace, merge_functions, ambiguous_decl,
2372 lookup_using_namespace, lookup_using_namespace,
2373 qualified_lookup_using_namespace, set_decl_namespace,
2374 decl_namespace, current_decl_namespace, push_decl_namespace,
2375 pop_decl_namespace, push_scope, pop_scope, add_function,
2376 arg_assoc_namespace, arg_assoc_template_arg, arg_assoc,
2377 lookup_arg_dependent, do_namespace_alias,
2378 validate_nonmember_using_decl, do_nonmember_using_decl,
2379 do_toplevel_using_decl, do_local_using_decl,
2380 do_class_using_decl, do_using_directive, check_default_args,
2381 mark_used, handle_class_head): Use C90 prototypings. Use booleans.
2382 * parser.c (cp_parser_class_head): Use booleanss.
2383 * decl.c (walk_globals, walk_vtables): Likewise.
2384 * cp-tree.h (walk_globals_pred, walk_globals_fn, walk_vtables,
2385 walk_globals): Change return type from 'int' to 'bool'.
2386 * rtti.c (init_rtti_processing, build_headof, throw_bad_cast
2387 throw_bad_typeid, get_tinfo_decl_dynamic, typeid_ok_p,
2388 build_typeid, tinfo_name, get_tinfo_decl, get_tinfo_ptr,
2389 get_typeid, ifnonnull, build_dynamic_cast_1, build_dynamic_cast,
2390 qualifier_flags, tinfo_base_init, generic_initializer,
2391 ptr_initializer, dfs_class_hint_mark, ptm_initializer,
2392 dfs_class_hint_unmark, class_hint_flags, class_initializer,
2393 typeinfo_in_lib_p, get_pseudo_ti_init, create_pseudo_type_info,
2394 get_pseudo_ti_desc, create_tinfo_types, emit_support_tinfos,
2395 unemitted_tinfo_decl_p, emit_tinfo_decl): Likewise.
2396 * repo.c (repo_compile_flags, repo_template_declared,
2397 repo_template_defined, repo_class_defined, repo_get_id,
2398 repo_template_used, repo_vtable_used, repo_inline_used,
2399 repo_tinfo_used, repo_template_instantiated, extract_string,
2400 open_repo_file, afgets, init_repo, reopen_repo_file_for_write,
2401 finish_repo): Likewise.
2402 * ptree.c (cxx_print_decl, cxx_print_type, cxx_print_identifier,
2403 cxx_print_xnode): Likewise..
2404 * cp-lang.c (ok_to_generate_alias_set_for_type, cxx_get_alias_set,
2405 cxx_warn_unused_global_decl, cp_expr_size): Likewise.
2406 * cxxfilt.c (demangle_it, print_demangler_list, usage,
2407 standard_symbol_characters, hp_symbol_characters, main, fatal):
43c6a96a 2408 Likewise.
848eed92
GDR
2409 (strip_underscore): Change type from 'int' to 'bool'.
2410 (main): Use boolean constants.
2411
b746c5dc
GDR
24122002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
2413
2414 Remove traditional C constructs 3/n.
2415 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
2416 build_up_reference, warn_ref_binding, convert_to_reference,
2417 convert_from_reference, convert_lvalue, cp_convert, ocp_convert,
2418 convert_to_void, convert, convert_force, build_type_conversion,
2419 build_expr_type_conversion, type_promotes_to,
2420 perform_qualification_conversions): Use C90 prototyping style.
2421 * decl2.c (grok_array_decl): Use boolean constant.
2422 (delete_sanity): Likewise.
2423 * typeck.c (build_unary_op): Likewise.
2424 * semantics.c (finish_switch_cond): Likewise.
2425 * parser.c (cp_parser_direct_new_declarator): Likewise.
2426 * init.c (build_new): Likewise.
2427
a723baf1
MM
24282002-12-27 Mark Mitchell <mark@codesourcery.com>
2429
2430 * Make-lang.in (po-generated): Remove parse.c.
2431 (CXX_OBJS): Remove parse.o and spew.o. Add parser.o.
2432 ($(srcdir)/cp/parse.h): Remove target.
2433 ($(srcdir)/cp/parse.c): Likewise.
2434 (gt-cp-parse.h): Likewise.
2435 (gt-cp-parser.h): New target.
2436 (c++.distclean): Do not remove parse.output.
2437 (c++.maintainer-clean): Do not remove parse.c or parse.h.
2438 (cp/spew.o): Remove target.
2439 (cp/lex.o): Adjust dependencies.
2440 (cp/pt.o): Likewise.
2441 (cp/parse.o): Likewise.
2442 (cp/TAGS): Do not mention parse.c.
2443 (cp/parser.o): New target.
2444 * NEWS: Mention the new parser.
2445 * call.c (build_scoped_method_call): Simplify.
2446 (build_method_call): Likewise.
2447 (build_new_function_call): Adjust calls to add_function_candidate
2448 and add_template_candidate.
2449 (build_new_op): Improve handling of erroroneous operands.
2450 (convert_default_arg): Remove circular argument processing.
2451 (name_as_c_string): New function.
2452 (build_new_method_call): Use it.
2453 (perform_implicit_conversion): Use error_operand_p.
2454 * class.c (finish_struct_anon): Use constructor_name_p.
2455 (check_field_decls): Likewise.
2456 (pop_nested_class): Use OVL_NEXT, not OVL_CHAIN.
2457 (resolve_address_of_overloaded_function): Likewise.
2458 (instantiate_type): Tweak pointer-to-member handling.
2459 (get_primary_binfo): Remove incorrect assertion.
2460 * config-lang.in (gtfiles): Add parser.c, remove parse.c.
2461 * cp-tree.h (DEFARG_TOKENS): New macro.
2462 (default_arg): New structure.
2463 (cp_tree_node_structure_enum): Add TS_CP_DEFAULT_ARG.
2464 (lang_tree_node): Add default_arg.
2465 (cp_tree_index): Add CPTI_TYPE_INFO_REF_TYPE.
2466 (type_info_ref_type): New macro.
2467 (saved_scope): Make processing_explicit_instantiation a boolean.
2468 (check_access): New field.
2469 (unparsed_text): Remove.
2470 (language_function): Remove unparsed_inlines.
2471 (error_operand_p): New macro.
2472 (lang_decl): Adjust pending_inline_info.
2473 (DEFARG_POINTER): Remove.
2474 (tag_types): Add typenames.
2475 (lookup_ualified_name): Declare.
2476 (lookup_name_real): Likewise.
2477 (shadow_tag): Adjust prototype.
2478 (get_scope_of_declarator): Declare it.
2479 (process_next_inline): Remove it.
2480 (check_for_missing_semicolon): Likewise.
2481 (maybe_get_template_decl_from_type_decl): Declare it.
2482 (finish_label_stmt): Adjust prototype.
2483 (finish_non_static_data_meber): Declare it.
2484 (finish_pseudo_destructor_call_expr): Rename to ...
2485 (finish_pseudo_destructor_expr): ... this.
2486 (finish_compound_literal): Declare it.
2487 (begin_inline_definitions): Remove it.
2488 (init_spew): Remove.
2489 (peekyylex): Likewise.
2490 (arbitrate_lookup): Likewise.
2491 (frob_opname): Likewise.
2492 (maybe_snarf_defarg): Likewise.
2493 (add_defarg_fn): Likewise.
2494 (do_pending_defargs): Likewise.
2495 (done_pending_defargs): Likewise.
2496 (unprocessed_defarg_fn): Likewise.
2497 (replace_defarg): Likewise.
2498 (end_input): Likewise.
2499 (get_overloaded_fn): Likewise.
2500 * cvt.c (convert_to_reference): Improve error handling.
2501 * decl.c (lookup_name_real): Do not declare it static.
2502 (maybe_push_to_top_level): Set check_access.
2503 (identifier_type_value): Adjust call to lookup_name_real.
2504 (lookup_qualified_name): New method.
2505 (lookup_name_real): Remove special-case parsing code.
2506 (lookup_name-nonclass): Adjust call to lookup_name_real.
2507 (lookup_name_namespace_only): Likewise.
2508 (lookup_name): Likewise.
2509 (check_tag_decl): Return the type declared.
2510 (shadow_tag): Likewise.
2511 (register_dtor_fn): Tweak check_access.
2512 (grokfndecl): Use constructor_name_p.
2513 (get_scope_of_declarator): New function.
2514 (grokdeclarator): Obscure tweaks for slightly different declarator
2515 representations.
2516 (start_method): Return error_mark_node to indicate failure.
43c6a96a 2517 (cp_tree_node_structure_enum): Use TS_CP_DEFAULT_ARG for DEFAULT_ARGs.
a723baf1
MM
2518 * decl2.c (constructor_name_full): Simplify.
2519 (constructor_name): Use it.
2520 (build_expr_from_tree): Adjust for changes to do new parser.
2521 (push_scope): Improve robustness.
2522 (validate_nonmember_using_decl): Process declarations, not names.
2523 (do_class_using_decl): Likewise.
2524 (handle_class_head): Do not mess with CLASSTYPE_DECLARED_CLASS
2525 here.
2526 * error.c (dump_expr): Handle IDENTIFIER_NODEs and BASELINKs.
2527 * expr.c (cxx_expand_expr): Handle BASELINKs.
2528 * init.c (member_init_ok_or_else): Issue more errors.
2529 (build_offset_ref): Tweak handling of FUNCTION_DECLs.
2530 * lex.c: Do not include parse.h.
2531 (yypring): Do not declare.
2532 (yylval): Likewise.
2533 (make_reference_declarator): Remove error-generating code.
2534 (rid_to_yy): Remove.
2535 (cxx_init): Do not call init_spew.
2536 (yypring): Remove.
2537 (check_for_missing_semicolon): Remove.
2538 * lex.h (got_scope): Remove.
2539 (got_object): Remove.
2540 * method.c (hack_identifier): Use finish_non_static_data_member.
2541 (implicitly_declare_fn): Adjust use of constructor_name.
2542 * parser.c: New file.
2543 * pt.c (parse.h): Do not include it.
2544 (maybe_get_template_decl_from_template): Do not declare it.
2545 (finish_member_template_decl): Tweak.
2546 (begin_explicit_instantiation): Adjust for
2547 processing_explicit_instantiation being boolean.
2548 (end_explicit_instantiation): Likewise.
2549 (maybe_process_partial_specialization): Tighten specialization
2550 test.
2551 (retrieve_local_specialization): Adjust ue of hash table.
2552 (eq_local_specializations): New function.
2553 (register_local_specialization): Likewise.
2554 (push_template_decl_real): Remove unnecessary test.
2555 (maybe_get_template_decl_from_type_decl): Don't make it static.
2556 (for_each_template_parm_r): Handle TYPEOF_TYPE.
2557 (tsubst_copy): Use retrieive_local_specialization to handle
2558 PARM_DECL. Adjust handling of CONST_DECLs. Handle BASELINKs.
2559 Handle COMPONENT_REFs with pseudo-destructor-expressions.
2560 Simplify handling of CALL_EXPR and METHOD_CALL_EXPR.
2561 (tsubst_expr): Pass decls, not names, to do_local_using_decl.
2562 (unify): Tweak handling of CONST_DECLs.
2563 (regenerate_decl_from_template): Use push_nested_class.
2564 (template_for_substitution): New funciton.
2565 (instantiate_decl): Use it. Register parameters as local
2566 specializations.
2567 * rtti.c (init_rtti_processing): Set type_info_ref_type.
2568 (build_typeid): Use it.
2569 (get_typeid): Likeise.
2570 * search.c (accessible_p): Use check_access, not
2571 flag_access_control.
2572 (adjust_result_of_qualified_name_lookup): Pay attention to the
2573 context_class.
2574 * semantics.c (finish_asm_stmt): Adjust error handling.
2575 (finish_label_stmt): Return the statement.
2576 (finish_non_static_data_member): New function.
2577 (finish_class_expr): Handle BASELINKs.
2578 (finish_call_expr): Handle PSEUDO_DTOR_EXPR.
2579 (finish_object_call_expr): Simplify handling during templates.
2580 (finish_pseudo_destructor_call_expr): Rename to ...
2581 (finish_pseudo_dtor_expr): ... this.
2582 (finish_compound_literal): New function.
2583 (begin_inline_definitions): Remove.
2584 (finish_sizeof): Remove special template handling.
2585 * spew.c: Do not include parse.h.
2586 * tree.c (get_overloaded_fn): Remove.
2587 * typeck.c (build_class_member_access_expr): Handle
2588 PSEUDO_DTOR_EXPR. Adjust handling of static member functions.
2589 (lookup_destructor): New function.
2590 (finish_class_member_access_expr): Use it.
2591 (convert_arguments): Simplify.
2592 (build_unary_op): Handle BASELINKs.
43c6a96a 2593
aac1406f
NS
25942002-12-26 Nathan Sidwell <nathan@codesourcery.com>
2595
eab5474f
NS
2596 PR c++/4803
2597 * decl2.c (mark_used): Defer inline functions.
2598 (finish_file): Merge deferred_fns loops. Check all used
2599 inline functions have a definition.
2600 * method.c (make_thunk): Thunks are not inline.
2601
aac1406f
NS
2602 PR c++/5116, c++/764
2603 * call.c (build_new_op): Make sure template class operands are
2604 instantiated.
2605
b9201622
NS
26062002-12-24 Nathan Sidwell <nathan@codesourcery.com>
2607
3e14cd30
NS
2608 PR C++/7964
2609 * cp-tree.h (resolve_scoped_fn_name): Prototype.
2610 * call.c (resolve_scoped_fn_name): New function. Deal with
2611 more template expansion. Broken out of ...
2612 * parse.y (parse_finish_call_expr): ... here. Call it.
2613 * decl2.c (build_expr_from_tree, CALL_EXPR): Use
2614 resolve_scoped_fn_name and build_call_from_tree.
2615
b9201622
NS
2616 PR c++/9053
2617 * decl.c (duplicate_decls): Templates may be disambiguated by
2618 return type.
43c6a96a 2619
b9201622
NS
2620 PR c++/8702
2621 * decl2.c (check_classfn): Use lookup_fnfield_1. List all
2622 conversion operators on failure.
2623
94be8403
GDR
26242002-12-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2625
b746c5dc
GDR
2626 Remove traditional C constructs 2/n.
2627 * call.c (tourney, build_field_call, equal_functions, joust,
2628 compare_ics, build_over_call, build_java_interface_fn_ref,
2629 convert_like_real, op_error, build_object_call, resolve_args,
2630 build_vfield_ref, check_dtor_name, build_scoped_method_call,
2631 build_addr_func, build_call, build_method_call, null_ptr_cst_p,
2632 sufficient_parms_p, build_conv, non_reference, strip_top_quals,
2633 standard_conversion, reference_related_p,
2634 reference_compatible_p, convert_class_to_reference,
2635 direct_reference_binding, reference_binding,
2636 ,implicit_conversion, is_complete, promoted_arithmetic_type_p,
2637 add_template_conv_candidate, any_viable, any_strictly_viable,
2638 build_this, splice_viable, print_z_candidates,
2639 build_user_type_conversion, build_new_function_call,
2640 conditional_conversion, build_conditional_expr, build_new_op,
2641 build_op_delete_call, enforce_access, call_builtin_trap,
2642 convert_arg_to_ellipsis, build_x_va_arg, cxx_type_promotes_to,
2643 convert_default_arg, type_passed_as, convert_for_arg_passing,
2644 in_charge_arg_for_name, is_properly_derived_from,
2645 maybe_handle_implicit_object, maybe_handle_ref_bind,
2646 source_type, add_warning, can_convert, can_convert_arg,
2647 perform_implicit_conversion, can_convert_arg_bad,
2648 initialize_reference, add_conv_candidate,
2649 add_template_candidate_real, add_template_candidate): Ansify.
94be8403 2650
081cebb2
NS
26512002-12-22 Nathan Sidwell <nathan@codesourcery.com>
2652
2653 PR c++/8572
2654 * cp-tree.h (grokoptypename): Add SCOPE parameter.
2655 * decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type
2656 if in a template scope.
2657 * parse.y (unoperator): Return the scope.
2658 (operator_name): Adjust grokoptypename call.
2659
4f09be91
KL
26602002-12-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2661
2662 * cp-tree.h (make_unbound_class_template): Use tsubst_flags_t.
2663 * decl.c (make_unbound_class_template): Adjust. Check for tf_error.
2664 * pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error.
2665
4639c5c6
KH
26662002-12-20 Kazu Hirata <kazu@cs.umass.edu>
2667
2668 * ChangeLog: Fix a typo.
2669 * class.c: Fix comment typos.
2670 * cp-tree.h: Likewise.
2671
0ca7178c
JM
26722002-12-18 Jason Merrill <jason@redhat.com>
2673
2674 Handle anonymous unions at the tree level.
2675 C++ ABI change: Mangle anonymous unions using the name of their
2676 first named field (by depth-first search). Should not cause
2677 binary compatibility problems, though, as the compiler previously
2678 didn't emit anything for affected unions.
2679 * cp-tree.def (ALIAS_DECL): New tree code.
2680 * decl2.c (build_anon_union_vars): Build ALIAS_DECLs. Return the
2681 first field, not the largest.
2682 (finish_anon_union): Don't mess with RTL. Do set DECL_ASSEMBLER_NAME,
2683 push the decl, and write it out at namespace scope.
2684 * decl.c (lookup_name_real): See through an ALIAS_DECL.
2685 (pushdecl): Add namespace bindings for ALIAS_DECLs.
2686 * rtti.c (unemitted_tinfo_decl_p): Don't try to look at the name
2687 of a decl which doesn't have one.
2688 * typeck.c (build_class_member_access_expr): Don't recurse if
2689 we already have the type we want.
2690
da9701a6
KL
26912002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2692
2693 PR c++/8099
2694 * friend.c (make_friend_class): Allow partial specialization
2695 when declaration is not a template friend.
2696
cab7a9a3
KL
26972002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2698
2699 PR c++/3663
2700 * pt.c (lookup_template_class): Copy TREE_PRIVATE and
2701 TREE_PROTECTED to created decl nodes.
2702
50cb9059
MM
27032002-12-18 Mark Mitchell <mark@codesourcery.com>
2704
2705 * class.c (build_base_field): Do not set DECL_PACKED on the
2706 FIELD_DECL.
2707
e220f0a4
GDR
27082002-12-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
2709
2710 * cp-tree.h (struct tree_srcloc): Use location_t.
2711 (SOURCE_LOCUS): New.
2712 (SRCLOC_FILE, SRCLOC_LINE): Adjust.
2713
efc7052d
JM
27142002-12-17 Jason Merrill <jason@redhat.com>
2715
2716 * decl.c (finish_function): Also complain about no return in
2717 templates.
43c6a96a 2718 * semantics.c (finish_return_stmt): Also call check_return_expr in
efc7052d
JM
2719 templates.
2720 * typeck.c (check_return_expr): In a template, just remember that we
2721 saw a return.
2722
9f175208
JM
27232002-12-16 Jason Merrill <jason@redhat.com>
2724
89ea02fb
JM
2725 * semantics.c (simplify_aggr_init_exprs_r): Don't change the type
2726 of the CALL_EXPR.
2727
9f175208
JM
2728 * semantics.c (do_pushlevel): Call pushlevel after adding the
2729 SCOPE_STMT.
2730 (do_poplevel): Call poplevel before adding the SCOPE_STMT.
2731 * parse.y (function_body): Go back to using compstmt.
2732 * decl.c (pushdecl): Skip another level to get to the parms level.
2733
2734 * call.c (build_new_method_call): Use is_dummy_object to determine
2735 whether or not to evaluate the object parameter to a static member
2736 function.
2737
4977bab6
ZW
27382002-12-14 Jason Merrill <jason@redhat.com>
2739
2740 * semantics.c (simplify_aggr_init_exprs_r): Also prepend the
2741 return slot for normal functions. Set CALL_EXPR_HAS_RETURN_SLOT_ADDR.
2742 * tree.c (build_cplus_new): If the type isn't TREE_ADDRESSABLE,
2743 don't bother with an AGGR_INIT_EXPR.
2744 (cp_copy_res_decl_for_inlining): If the type isn't TREE_ADDRESSABLE,
2745 just generate a new decl normally. Take return slot parm.
2746 * cp-tree.h: Adjust prototype.
2747
75c525d7
GDR
27482002-12-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
2749
2750 PR C++/8031
43c6a96a 2751 * cvt.c (convert_to_pointer_force): Don't try comparing against
75c525d7
GDR
2752 erronous type.
2753
8c6ae51f
GK
27542002-12-13 Geoffrey Keating <geoffk@apple.com>
2755
2756 * cp-tree.h: Have the multiple-include guards around
2757 the entire file.
2758
4977bab6
ZW
27592002-12-10 David Edelsohn <edelsohn@gnu.org>
2760
2761 * cp/spew.c (feed_input): Change limit to last_pos and pos to cur_pos
2762 for SPEW_DEBUG.
2763 (snarf_method): Same.
2764 (snarf_defarg): Same.
2765
d23faea1
MM
27662002-12-10 Mark Mitchell <mark@codesourcery.com>
2767
2768 PR c++/8372
2769 * pt.c (tsubst_copy): Handle destructor names more correctly.
2770
3932057c 27712002-12-10 Matt Austern <austern@apple.com>
d23faea1 2772
3932057c 2773 * cp-tree.h: get rid of needs_virtual_reinit bit.
43c6a96a 2774
dcba9b0f
MM
27752002-12-09 Mark Mitchell <mark@codesourcery.com>
2776
43c6a96a 2777 * NEWS: Document removal of in-class initialization extension for
dcba9b0f
MM
2778 static data members of non-arithmetic, non-enumeration type.
2779 * decl.c (check_static_variable_definition): Do not allow that
2780 extension.
2781 * decl2.c (grokfield): Do not call digest_init when processing
2782 templates.
2783
42b99e03
KG
27842002-12-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2785
2786 * error.c (dump_expr): Fix format specifier warning.
2787
6c73ad72
GK
27882002-12-04 Geoffrey Keating <geoffk@apple.com>
2789
2790 * class.c (finish_struct_1): Correct comment.
2791 * cp-tree.c (DECL_SORTED_FIELDS): Likewise.
2792
8c048a52
GDR
27932002-12-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
2794
2795 PR C++/8799
2796 * error.c (dump_expr): Don't ever try to dump a non-existent
43c6a96a 2797 expression.
8c048a52 2798
4977bab6
ZW
27992002-12-03 Nathan Sidwell <nathan@codesourcery.com>
2800
2801 Implement covariant returns.
2802 * cp-tree.h (IS_AGGR_TYPE_2): Remove.
2803 (struct lang_decl_flags): Add this_thunk_p flag.
2804 Rename vcall_offset to virtual_offset.
2805 (struct lang_decl): Rename delta to fixed_offset.
2806 (DECL_THIS_THUNK_P, DECL_RESULT_THUNK_P): New #defines.
2807 (SET_DECL_THUNK_P): Add THIS_ADJUSTING arg.
2808 (THUNK_DELTA, THUNK_VCALL_OFFSET): Rename to ...
2809 (THUNK_FIXED_OFFSET, THUNK_VIRTUAL_OFFSET): ... here.
2810 (make_thunk): Add this_adjusting arg.
2811 (finish_thunk): Declare.
2812 (mangle_thunk): Add this_adjusting arg.
2813 * class.c (get_vcall_index): Use base function for lookup.
2814 (update_vtable_entry_for_fn): Generate covariant thunk.
2815 (finish_struct_1): Set DECL_VINDEX to NULL for thunks.
2816 (build_vtbl_initializer): Use base function for lookup.
2817 Finish covariant thunk here. Adjust thunk generation.
2818 * dump.c (cp_dump_tree): Simplify DECL_GLOBAL_[CD]TOR_P handling.
2819 Adjust thunk dumping.
2820 * mangle.c (mangle_call_offset): New function.
2821 (mangle_thunk): Adjust for covariant thunks.
2822 * method.c (make_thunk): Adjust. Do not set name here.
2823 (finish_thunk): New function. Set name here.
2824 (use_thunk): Generate covariant thunks too.
2825 (thunk_adjust): New function.
2826 * search.c (covariant_return_p): Remove. Fold into ...
2827 (check_final_overrider): ... here. Simplify.
2828 * semantics.c (emit_associated_thunks): Walk covariant thunk lists.
2829
c203334d
JM
28302002-12-03 Jason Merrill <jason@redhat.com>
2831
c246c65d
JM
2832 PR c++/8674
2833 * call.c (build_over_call): Check specifically for TARGET_EXPR
2834 when eliding.
2835
2836 PR c++/8461, c++/8625
2837 * call.c (convert_for_arg_passing): Don't mess with error_mark_node.
2838 (cp_convert_parm_for_inlining): Remove.
43c6a96a 2839 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
c246c65d
JM
2840 Remove.
2841 * cp-tree.h (ADDR_IS_INVISIREF): Remove.
2842 * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code.
2843
c203334d
JM
2844 * call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on
2845 an ambiguous conversion.
2846
ee7ecb29
MM
28472002-12-03 Mark Mitchell <mark@codesourcery.com>
2848
2849 PR c++/8688
2850 * decl.c (reshape_init): Handle erroneous initializers.
2851
5089de93
MM
28522002-12-02 Mark Mitchell <mark@codesourcery.com>
2853
2854 PR c++/8720
2855 * spew.c (remove_last_token): Make sure that last_chunk is set
2856 correctly.
2857
2858 PR c++/8615
2859 * error.c (dump_expr): Handle character constants with
2860 TREE_OVERFLOW set.
43c6a96a 2861
218e0eb6
KL
28622002-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2863
2864 DR 180
2865 * decl.c (grokdeclarator): Require class-key for all friend class.
2866 Output the correct type and context in the error message.
2867
a82d6da5
MM
28682002-12-01 Mark Mitchell <mark@codesourcery.com>
2869
94fc547c
MM
2870 PR c++/5919
2871 * pt.c (unify): Use variably_modified_type_p to test validity of
2872 template argument types.
43c6a96a 2873
a82d6da5
MM
2874 PR c++/8727
2875 * cp-tree.h (lang_type_class): Add typeinfo_var.
2876 (CLASSTYPE_TYPEINFO_VAR): New macro.
2877 * rtti.c (get_tinfo_decl): Use it.
2878
2879 PR c++/8663
2880 * init.c (expand_member_init): Always get the main variant of a
2881 base class.
2882
c9f8536c
MM
28832002-12-01 Mark Mitchell <mark@codesourcery.com>
2884
2885 PR c++/8332
2886 PR c++/8493
2887 * decl.c (cxx_init_decl_processing): Use size_type_node, not
2888 c_size_type_node.
2889 * decl2.c (coerce_new_type): Likewise.
2890 * except.c (do_allocate_exception): Likewise.
2891
4977bab6
ZW
28922002-11-30 Zack Weinberg <zack@codesourcery.com>
2893
2894 * call.c, class.c, cp-lang.c, cvt.c, cxxfilt.c, decl.c, decl2.c,
2895 dump.c, error.c, except.c, expr.c, friend.c, g++spec.c, init.c,
2896 lex.c, mangle.c, method.c, optimize.c, parse.y, pt.c, ptree.c,
2897 repo.c, rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
2898 typeck2.c: Include coretypes.h and tm.h.
2899 * Make-lang.in: Update dependencies.
2900
c17707f1
MM
29012002-11-30 Mark Mitchell <mark@codesourcery.com>
2902
328de7c2
MM
2903 PR c++/8227
2904 * decl.c (layout_var_decl): Deal gracefully with erroneous types.
2905 (check_initializer): Validate the type of the initialized
2906 variable, even if the initializer is absent.
2907 * typeck.c (cp_type_quals): Deal gracefully with erroneous types.
43c6a96a 2908
c17707f1
MM
2909 PR c++/8214
2910 * typeck.c (convert_for_assignment): Do not use
2911 decl_constant_value on the operand.
2912
65f8b0fb
MM
2913 PR c++/8511
2914 * pt.c (instantiate_decl): Handle template friends defined outside
2915 of the class correctly.
2916
f6a83eb0
JB
29172002-11-29 Joe Buck <jbuck@synopsys.com>
2918
2919 * parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for
2920 anonymous structs.
43c6a96a 2921
ff944b49
MM
29222002-11-29 Mark Mitchell <mark@codesourcery.com>
2923
2924 * class.c (walk_subobject_offsets): Recur on binfos as well as on
2925 types.
2926 (layout_nonempty_base_or_field): Pass it a binfo when processing a
2927 base class.
2928 (layout_empty_base): Likewise.
2929 (build_base_field): Likewise.
43c6a96a 2930
21b3d0ba
MM
29312002-11-27 Mark Mitchell <mark@codesourcery.com>
2932
2933 * class.c (build_base_field): Make sure we get the canonical base
2934 when descending through primary bases.
2935
a16f2357
GK
29362002-11-26 Geoffrey Keating <geoffk@apple.com>
2937
2938 * decl.c (check_initializer): Don't error on initialisation of
2939 a scalar with a brace-enclosed expression.
2940
688f6688
NS
29412002-11-26 Nathan Sidwell <nathan@codesourcery.com>
2942
2943 * cp-tree.h (DECL_LANG_FLAG_4): Document more uses.
2944 (template_parms_equal): Remove prototype.
2945 * typeck.c (buuld_indirect_ref): Reformat.
2946
4977bab6
ZW
29472002-11-25 Jason Merrill <jason@redhat.com>
2948
2949 * init.c (build_vec_init): Use a FOR_STMT instead of an IF_STMT
2950 and a DO_STMT.
2951
b82ddab4
MM
29522002-11-25 Mark Mitchell <mark@codesourcery.com>
2953
2003cd37
MM
2954 * tree.c (cp_build_qualified_type_real): Correct handling of
2955 array types.
2956 * class.c (walk_subobject_offsets): Fix thinko.
2957 (build_base_field): Record offsets of empty bases in primary
2958 virtual bases.
2959 (layout_class_type): Record offsets of empty bases in fields.
43c6a96a 2960
b82ddab4
MM
2961 * search.c (is_subobject_of_p_1): Fix thinko.
2962 (lookup_field_queue_p): Likewise.
2963
8a874cb4
MM
29642002-11-24 Mark Mitchell <mark@codesourcery.com>
2965
2966 * class.c (layout_class_type): Reuse tail padding when laying out
2967 virtual bases.
2968
05abed76
MM
29692002-11-22 Mark Mitchell <mark@codesourcery.com>
2970
2971 * rtti.c (qualifier_flags): Fix thinko.
2972
4977bab6
ZW
29732002-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
2974
2975 Remove traditional C constructs 1/n.
2976 * cp-tree.h (init_method, set_mangled_name_for_decl,
2977 build_opfncall, hack_identifier, make_thunk, use_thunk,
2978 synthesize_method, implicitly_declare_fn,
2979 skip_artificial_parms_for, optimize_function, calls_setjmp_p,
2980 maybe_clone_body): Remove use of PARAMS.
2981
2982 * method.c (do_build_assign_ref, do_build_copy_constructor,
2983 synthesize_exception_spec, locate_dtor, locate_ctor, locate_copy):
2984 Likewise.
2985 (synthesize_method): Use 'bool' type and constants instead of
2986 'int'.
2987 (locate_copy): Likewise.
2988 (implicitly_declare_fn): Likewise.
2989
2990 * optimize.c (calls_setjmp_r, update_cloned_parm, dump_function):
2991 Remove old-style declaration.
2992 (maybe_clone_body): Use 'bool' type and constants.
2993
1c83ea9f
GN
29942002-11-21 Glen Nakamura <glen@imodulo.com>
2995
2996 PR c++/8342
2997 * typeck.c (get_member_function_from_ptrfunc): Make sure that a
2998 SAVE_EXPR for instance_ptr doesn't get evaluated first inside one
2999 of the branches of a COND_EXPR.
3000
ad2ae3b2
MM
30012002-11-19 Mark Mitchell <mark@codesourcery.com>
3002
3003 * pt.c (for_each_template_parm): Free allocated memory.
3004 * search.c (is_subobject_of_p_1): New function.
3005 (is_subobject_of_p): Avoid walking virtual bases multiple times.
3006
f3226a90
JT
30072002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
3008
3009 * g++spec.c (lang_specific_spec_functions): New.
3010
90024bdc
KH
30112002-11-15 Kazu Hirata <kazu@cs.umass.edu>
3012
3013 * ChangeLog: Follow spelling conventions.
3014 * class.c: Likewise.
3015 * decl2.c: Likewise.
3016
fa7b533b
ZW
30172002-11-14 Zack Weinberg <zack@codesourcery.com>
3018
3019 * search.c (dfs_push_decls): Do not try to reorder elements
3020 3..n of method_vec if method_vec has only two elements.
3021 Reverse order of two tests to avoid accessing unallocated
3022 memory.
3023
95675950
MM
30242002-11-14 Mark Mitchell <mark@codesourcery.com>
3025
3026 * class.c (dfs_find_final_overrider): Adjust so that the most
3027 derived object is a binfo, rather than a class type.
3028 (find_final_overrider): Likewise.
3029 (add_vcall_offset_vtbl_entries_1): Simplify accordingly.
3030 (add_vcall_offset): Likewise.
3031
5c74d5b0
KL
30322002-11-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3033
3034 PR c++/8389
3035 * pt.c (instantiate_template): Push class scope for member
3036 functions.
3037 (get_mostly_instantiated_function_type): Likewise. Don't call
3038 tsubst on context. Remove CONTEXTP and TPARMSP parameters.
3039 * cp-tree.h (get_mostly_instantiated_function_type): Adjust.
3040 * mangle.c (write_encoding, write_unqualified_name): Adjust.
3041
4f2c9d7e
MM
30422002-11-07 Mark Mitchell <mark@codesourcery.com>
3043
e6a66567
MM
3044 * class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of
3045 vcall offfsets. Split out ...
3046 (add_vcall_offset): ... new function.
3047
4f2c9d7e
MM
3048 PR c++/8338
3049 * pt.c (for_each_template_parm): Add htab parameter.
3050 (process_partial_specialization): Adjust call.
3051 (push_template_decl_real): Likewise.
3052 (pair_fn_data): Add visited.
3053 (for_each_template_parm_r): Avoid walking duplicates more than
3054 once.
3055 (uses_template_parms): Adjust call to for_each_template_parm.
3056
f72ab53b
MM
30572002-11-07 Mark Mitchell <mark@codesourcery.com>
3058
3059 * class.c (add_implicitly_declared_members): Put implicitly
3060 declared functions at the end of TYPE_METHODs when -fabi-version
3061 is at least 2.
3062
0a288b9a
GK
30632002-11-05 Geoffrey Keating <geoffk@apple.com>
3064
3065 * decl2.c (finish_file): Correct spelling.
3066
548502d3
MM
30672002-11-03 Mark Mitchell <mark@codesourcery.com>
3068
3069 * call.c (build_special_member_call): Do not try to lookup VTTs by
3070 name.
3071 * class.c (vtbl_init_data): Add generate_vcall_entries.
3072 (get_vtable_decl): Do not look up virtual tables by name.
3073 (copy_virtuals): Do not use BV_USE_VCALL_INDEX_P.
3074 (set_primary_base): Do not set CLASSTYPE_RTTI.
3075 (determine_primary_base): Likewise.
3076 (get_matching_virtual): Remove.
3077 (get_vcall_index): New function.
3078 (update_vtable_entry_for_fn): Do not try to use virtual thunks
3079 when they are not required. Assign vcall indices at this point.
3080 (finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT.
3081 Do update dynamic_classes.
3082 (build_vtt): Do not add VTTs to the symbol table.
3083 (build_ctor_vtbl_group): Likewise.
3084 (build_vtbl_initializer): Simplify handling of vcall indices.
3085 (build_vcall_offset_vtbl_entries): Pretend to build vcall offsets
3086 for the most derived class.
3087 (add_vcall_offset_vtbl_entries_1): But do not actually add them to
3088 the vtable.
3089 * cp-tree.h (dynamic_classes): New macro.
3090 (lang_type_class): Remove rtti. Add vtables. Add vcall_indices.
3091 (CLASSTYPE_RTTI): Remove.
3092 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove.
3093 (CLASSTYPE_VCALL_INDICES): New macro.
3094 (CLASSTYPE_VTABLES): Likewise.
3095 (BV_USE_VCALL_INDEX_P): Remove.
3096 (build_vtable_path): Remove.
3097 * decl2.c (finish_vtable_vardecl): Remove.
3098 (key_method): Remove #if 0'd code.
3099 (finish_vtable_vardecl): Rename to ...
3100 (maybe_emit_vtables): ... this.
3101 (finish_file): Use it.
3102 * search.c (look_for_overrides_here): Update comment.
3103
04d57dd5
ZW
31042002-11-01 Zack Weinberg <zack@codesourcery.com>
3105
3106 PR c/7353 redux
3107 * decl2.c (grokfield): Reject TYPE_DECLs with initializers.
3108
bab076f7
JM
31092002-10-30 Jason Merrill <jason@redhat.com>
3110
3111 PR c++/8186
3112 * cp-tree.h (ADDR_IS_INVISIREF): New macro.
3113 * call.c (convert_for_arg_passing): Set it.
3114 * except.c (stabilize_throw_expr): Recurse for such an arg.
3115
14b4829d
MM
31162002-10-31 Mark Mitchell <mark@codesourcery.com>
3117
3118 * cp-tree.h (lang_decl_flags): Remove init_priority.
3119 (lang_decl): Add delta.
3120 (GLOBAL_INIT_PRIORITY): Remove.
3121 (THUNK_DELTA): Revise definition.
3122 * decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY.
3123 * dump.c (cp_dump_tree): Don't dump it.
3124
8c081e84
MM
31252002-10-30 Mark Mitchell <mark@codesourcery.com>
3126
3127 PR c++/8160
3128 * typeck2.c (process_init_constructor): Call complete_array_type.
3129
3130 PR c++/8149
3131 * decl.c (make_typename_type): Issue errors about invalid results.
04d57dd5 3132
7088fca9
KL
31332002-10-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3134
3135 Core issue 287, PR c++/7639
3136 * cp-tree.h (lang_type_class): Add decl_list field.
3137 (CLASSTYPE_DECL_LIST): New macro.
3138 (maybe_add_class_template_decl_list): Add declaration.
3139 * class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST.
3140 (unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST.
3141 (maybe_add_class_template_decl_list): New function.
3142 (add_implicitly_declared_members): Use it.
3143 * decl.c (maybe_process_template_type_declaration): Likewise.
3144 (pushtag): Likewise.
3145 * friend.c (add_friend): Likewise.
3146 (make_friend_class): Likewise.
3147 * semantics.c (finish_member_declaration): Likewise.
3148 (begin_class_definition): Initialize CLASSTYPE_DECL_LIST.
3149 * pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST
3150 to process members and friends in the order of declaration.
3151
5633b37c
MM
31522002-10-29 Mark Mitchell <mark@codesourcery.com>
3153
3154 PR c++/8287
3155 * decl.c (finish_destructor_body): Create the label to jump to
3156 when returning from a destructor here.
3157 (finish_function_body): Rather than here.
3158
f65e1183
ZW
31592002-10-25 Zack Weinberg <zack@codesourcery.com>
3160
3161 PR c++/7266
3162 * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a
3163 SCOPE_REF is not null before dereferencing it.
3164
bb5e8a7f
MM
31652002-10-25 Mark Mitchell <mark@codesourcery.com>
3166
e93ee644
MM
3167 * call.c (build_over_call): Use DECL_CONTEXT, not
3168 DECL_VIRTUAL_CONTEXT.
3169 * class.c (modify_vtable_entry): Don't mess with
3170 DECL_VIRTUAL_CONTEXT.
3171 (set_vindex): Remove.
3172 (set_primary_base): Remove vfuns_p parameter.
3173 (determine_primary_base): Likewise.
3174 (modify_all_vtables): Likewise.
3175 (layout_class_type): Likewise. Adjust calls to other functions
3176 accordingly.
3177 (finish_struct_1): Adjust calls to modified functions. Set
3178 DECL_VINDEX here.
3179 * cp-tree.h (lang_type_class): Remove vsize.
3180 (CLASSTYPE_VSIZE): Remove.
3181 (lang_decl): Remove thunks.
3182 (DECL_THUNKS): Adjust.
3183 (DECL_VIRTUAL_CONTEXT): Remove.
3184 (duplicate_decls): Don't copy it.
3185 * pt.c (build_template_decl): Don't set it.
3186 (tsubst_decl): Likewise.
3187 * typeck.c (expand_ptrmemfunc_cst): Don't use it.
04d57dd5 3188
bb5e8a7f
MM
3189 * class.c (build_vtbl_initializer): Don't use build_vtable_entry.
3190 (build_vtable_entry): Remove.
3191 * cp-tree.h (BINFO_VIRTUALS): Expand documentation.
3192 (lang_decl): Add thunks.
3193 (DECL_THUNKS): New macro.
3194 * decl.c (duplicate_decls): Copy it.
3195 * method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS.
3196 * semantics.c (emit_associated_thunks): Simplify.
f65e1183 3197
6eb35968
DE
31982002-10-24 David Edelsohn <edelsohn@gnu.org>
3199
3200 PR c++/7228
3201 * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that
3202 lang_type structure exists before accessing field.
3203 (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro.
3204 (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar.
3205 (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro.
3206 * class.c (check_field_decls): Use new macros.
3207 * typeck2.c (process_init_constructor): Remove redundant check for
3208 existence of lang_type structure.
3209
0cee073d
MM
32102002-10-24 Mark Mitchell <mark@codesourcery.com>
3211
ba9a991f
MM
3212 * class.c (end_of_base): New method.
3213 (end_of_class): Use it. Check indirect virtual bases.
3214
0cee073d
MM
3215 * class.c (check_field_decls): Fix typo.
3216
e6f052b7
MM
32172002-10-23 Mark Mitchell <mark@codesourcery.com>
3218
6b607ffd
MM
3219 PR c++/8067
3220 * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and
3221 related variables.
3222
e6f052b7
MM
3223 PR c++/7679
3224 * spew.c (next_token): Do not return an endless stream of
3225 END_OF_SAVED_INPUT tokens.
3226 (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of
3227 the cached token stream.
3228 (snarf_defarg): Likewise.
3229
8bcefb43
ZW
32302002-10-23 Zack Weinberg <zack@codesourcery.com>
3231
3232 * cp-lang.c (cp_var_mod_type_p): New: C++ hook for
3233 variably_modified_type_p.
3234 * cp-tree.h: Remove prototype of variably_modified_type_p.
3235 * tree.c (variably_modified_type_p): Remove; now implemented
3236 in language-independent code.
3237
ad4f9910
MM
32382002-10-22 Mark Mitchell <mark@codesourcery.com>
3239
3240 PR c++/6579
3241 * spew.c (snarf_parenthesized_expression): New function.
3242 (snarf_block): Use it.
3243
3961e8fe
RH
32442002-10-22 Richard Henderson <rth@redhat.com>
3245
3246 * method.c (use_thunk): Always compute vcall_value; assert that
3247 it is not zero. Use can_output_mi_thunk; use output_mi_thunk
3248 for vcall thunks as well.
3249
5ec1192e
MM
32502002-10-21 Mark Mitchell <mark@codesourcery.com>
3251
7ba539c6
MM
3252 * class.c (empty_base_at_nonzero_offset_p): New function.
3253 (layout_nonempty_base_or_field): Do not check for conflicts when
3254 laying out a virtual base using the GCC 3.2 ABI.
3255 (build_base_field): Correct checking for presence of empty classes
90024bdc 3256 at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P.
7ba539c6 3257
e3ccdd50
MM
3258 * class.c (include_empty_classes): Use normalize_rli.
3259 (layout_class_type): Likewise.
3260
42328048
MM
3261 * decl.c (reshape_init): Tweak handling of character arrays.
3262
5ec1192e
MM
3263 PR c++/8218
3264 * cp-tree.h (lang_type_class): Add contains_empty_class_p.
3265 (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro.
3266 * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P.
3267 (check_field_decls): Likewise.
3268 (layout_class_type): Likewise.
3269 (finish_struct_1): Initialize it.
3270 (walk_subobject_offsets): Use it to prune searches.
3271
eb0424da
MM
32722002-10-20 Mark Mitchell <mark@codesourcery.com>
3273
3274 * method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT.
3275 * optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with
3276 TARGET_ASM_OUTPUT_MI_THUNK in comments.
8bcefb43 3277
4a7510cb
ZW
32782002-10-18 Zack Weinberg <zack@codesourcery.com>
3279
3280 * decl.c (start_decl): Point users of the old initialized-
3281 typedef extension at __typeof__.
3282
483ab821
MM
32832002-10-18 Mark Mitchell <mark@codesourcery.com>
3284
3285 * Make-lang.in (method.o): Depend on TARGET_H.
3286 * method.c (target.h): Include it.
3287 (use_thunk): Use target hooks. Use vcall thunks, if available.
3288
e4f4feba
MM
32892002-10-18 Mark Mitchell <mark@codesourcery.com>
3290
3291 * class.c (base_derived_from): Make sure return value is a bool.
3292
9368208b
MM
32932002-10-18 Mark Mitchell <mark@codesourcery.com>
3294
3295 * class.c (find_final_overrider_data_s): Remove overriding_fn and
3296 overriding_base.
3297 (dfs_base_derived_from): New function.
3298 (base_derived_from): Likewise.
3299 (dfs_find_final_overrider): Use base_derived_from.
3300 (find_final_overrider): Adjust.
3301
5275f2bf
JM
33022002-10-18 Jason Merrill <jason@redhat.com>
3303
3304 PR c++/8080
3305 * semantics.c (finish_for_cond, finish_while_cond): Don't mess
3306 with condition decls in a template.
3307
8a188e24
NS
33082002-10-17 Nathan Sidwell <nathan@codesourcery.com>
3309
3310 * class.c (add_method): Compare template parms too.
3311
b216f69b
MM
33122002-10-17 Mark Mitchell <mark@codesourcery.com>
3313
982216be
MM
3314 PR c++/7584
3315 * class.c (handle_using_decl): Allow the declaration used to be
3316 from an ambiguous base.
3317
d768a589
MM
3318 * pt.c (convert_template_argument): Revert this change:
3319 2002-10-16 Mark Mitchell <mark@codesourcery.com>
3320 * pt.c (convert_template_argument): Do not fold non-type
3321 template rguments when inside a template.
3322
b216f69b
MM
3323 * init.c (expand_default_init): Handle brace-enclosed initializers
3324 correctly.
3325
2303a079
MM
33262002-10-16 Mark Mitchell <mark@codesourcery.com>
3327
d3133e68
MM
3328 * mangle.c (write_expression): Correct handling of enumeration
3329 constants.
3330 (write_template_arg): Likewise.
3331 * pt.c (convert_template_argument): Do not fold non-type template
3332 arguments when inside a template.
3333
2303a079
MM
3334 PR c++/7478
3335 * cvt.c (convert_to_reference): Allow references as the incoming
3336 type.
3337
451c0899
MM
33382002-10-16 Mark Mitchell <mark@codesourcery.com>
3339
3340 PR c++/7524
3341 * method.c (do_build_assign_ref): Use cp_build_qualified_type, not
3342 build_qualified_type.
3343
da6eec72
RH
33442002-10-15 Richard Henderson <rth@redhat.com>
3345
3346 * error.c (dump_expr): Use real_to_decimal directly, and with
3347 the new arguments.
3348
3fa3c4bd
MM
33492002-10-15 Mark Mitchell <mark@codesourcery.com>
3350
3351 * decl.c (reshape_init): Fix typo.
3352
3353 * cp-tree.h (operator_name_info_t): Add arity.
3354 * lex.c (init_operators): Initialize it.
3355 * mangle.c (write_conversion_operator_name): New function.
3356 (write_unqualified_name): Use it.
3357 (write_template_args): Accept template arguments as a TREE_LIST.
3358 (write_expression): Adjust handling of qualified names to match
3359 specification.
3360
1a55127d
JM
33612002-10-15 Jason Merrill <jason@redhat.com>
3362
3363 * call.c (call_builtin_trap): New fn.
3364 (convert_arg_to_ellipsis): Use it. Downgrade error to warning.
3365 (build_call): Don't set current_function_returns_abnormally outside
3366 a function.
3367
58731fd1
MM
33682002-10-14 Mark Mitchell <mark@codesourcery.com>
3369
3370 * class.c (check_field_decls): Remove empty_p parameter. Instead,
3371 clear CLASSTYPE_EMPTY_P.
3372 (build_base_field): Likewise.
3373 (build_base_fields): Likewise.
3374 (check_bases_and_members): Likewise.
3375 (create_vtbl_ptr): Likewise.
3376 (layout_class_type): Likewise. Ensure that empty classes have
3377 size zero when used as base classes in the 3.2 ABI.
3378 (finish_struct_1): Initialize CLASSTYPE_EMPTY_P and
3379 CLASSTYPE_NEARLY_EMPTY_P. Adjust calls to avoid passing empty_p
3380 parameter.
3381 (is_empty_class): Correct definition when using post-3.2 ABI.
3382 * cp-tree.h (lang_type_class): Add empty_p.
3383 (CLASSTYPE_EMPTY_P): New macro.
3384
6742d92b
NS
33852002-10-12 Nathan Sidwell <nathan@codesourcery.com>
3386
3387 * init.c (build_delete): Do not apply save_expr for arrays.
3388 (build_vec_delete): Likewise.
3389
77631fa7
MM
33902002-10-14 Mark Mitchell <mark@codesourcery.com>
3391
4a7510cb 3392 * decl.c (layout_var_decl): Call layout_decl even for variables
7de85f7e
MM
3393 whose type is an array with unspecified bounds.
3394
77631fa7
MM
3395 PR c++/7176
3396 * lex.c (do_identifier): Add another option for the parsing
3397 parameter.
3398 * parse.y (do_id): Use it.
3399
2ee366b5
GDR
34002002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
3401
3402 PRs C++/6803, C++/7721 and C++/7803
3403 * decl.c (grokdeclarator): Gracefully handle template-name as
3404 decl-specifier.
3405
01c3fb15
JM
34062002-10-11 Jason Molenda <jmolenda@apple.com>
3407
3408 * init.c (build_field_list): Provide uses_unions_p with a default
3409 value.
3410
8e3df2de
MM
34112002-10-11 Mark Mitchell <mark@codesourcery.com>
3412
dac45b5c
MM
3413 PR c++/5661
3414 * cp-tree.h (variably_modified_type_p): New function.
3415 (grokdeclarator) Tighten check for variably modified types as
3416 fields.
3417 * pt.c (convert_template_argument): Do not allow variably modified
3418 types as template arguments.
4a7510cb 3419 * tree.c (variably_modified_type_p): New function.
dac45b5c 3420
8e3df2de
MM
3421 * NEWS: Document removal of "new X = ..." extension.
3422 * class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on
3423 brace-enclosed initializers.
3424 * cp-tree.h (CP_AGGREGATE_TYPE_P): New macro.
3425 (initialize_local_var): Remove declaration.
3426 (expand_static_init): Likewise.
3427 * decl.c (next_initializable_field): New function.
3428 (reshape_init): Likewise.
3429 (check_initializer): Use them. Build dynamic initializer for
3430 aggregates here too.
3431 (initialize_local_var): Simplify, and incorporate cleanup
3432 insertion code as well.
3433 (destroy_local_var): Remove.
3434 (cp_finish_decl): Tidy.
3435 (expand_static_init): Fold checks for whether or not a variable
3436 needs initialization into this function. Simplify.
3437 * decl2.c (do_static_initialization): Simplify.
3438 * init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will
3439 be done for us automatically.
3440 (expand_default_init): Handle brace-enclosed initializers
3441 correctly.
3442 (expand_aggr_init_1): Remove RTL-generation code.
3443 (build_vec_init): Remove "new X = ..." support.
3444 * parse.y (new_initializer): Likewise.
3445 * rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on
3446 brace-enclosed initializer.
3447 (create_pseudo_type_info): Likewise.
3448 * typeck2.c (store_init_value): Don't try to handle digest_init
3449 being called more than once.
3450 (digest_init): Tidy handling of brace-enclosed initializers.
01c3fb15 3451
7bdfd72e
KG
34522002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3453
3454 * decl.c (typename_hash): Use htab_hash_pointer.
3455
e89fe41c
JW
34562002-10-10 Jim Wilson <wilson@redhat.com>
3457
3458 * decl.c (duplicate_decls): Don't call decl_attributes.
3459
95f79357
ZW
34602002-10-09 Zack Weinberg <zack@codesourcery.com>
3461
85cd7be8 3462 PR c/7353
95f79357
ZW
3463 * decl.c (start_decl): Unconditionally issue error for
3464 'typedef foo = bar'.
3465 (cp_finish_decl): Remove special case for TYPE_DECL with initializer.
3466 (grokdeclarator): Remove redundant error for 'typedef foo = bar'.
3467
10a38dba
KG
34682002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3469
3470 * decl2.c (prune_vtable_vardecl): Delete unused function.
3471
edebf865
MM
34722002-10-03 Mark Mitchell <mark@codesourcery.com>
3473
3474 PR c++/7754
3475 * decl2.c (finish_anon_union): Do not expand anonymous unions when
3476 procesing template functions.
3477 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
3478 type. Call layout_decl.
3479 (tsubst_expr, case DECL_STMT): Handle anonymous unions.
3480
01f4137f
RH
34812002-10-07 Richard Henderson <rth@redhat.com>
3482
3483 * decl2.c, pt.c: Revert c++/7754 fix.
3484
eb55ce4b
KL
34852002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3486
3487 PR c++/7804
3488 * error.c (dump_expr) [REAL_CST]: Output in decimal format.
3489
bd9bb3d2
MM
34902002-10-03 Mark Mitchell <mark@codesourcery.com>
3491
43c6a96a 3492 PR c++/7931
bd9bb3d2
MM
3493 * pt.c (for_each_template_parm_r): Handle BASELINKs.
3494
3495 PR c++/7754
3496 * decl2.c (finish_anon_union): Do not expand anonymous unions when
3497 procesing template functions.
3498 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
3499 type. Call layout_decl.
3500 (tsubst_expr, case DECL_STMT): Handle anonymous unions.
3501
6397d80b
MM
35022002-10-03 Mark Mitchell <mark@codesourcery.com>
3503
3504 PR c++/8006
3505 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template
3506 template parameters.
3507 (globals): Add entity and need_abi_warning.
3508 (decl_is_template_id): Use TYPE_TEMPLATE_INFO, not
3509 CLASSTYPE_TEMPLATE_INFO.
3510 (is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not
3511 TYPE_TI_TEMPLATE.
3512 (write_prefix): Handle typename types correctly.
3513 (write_template_prefix): Handle template template parameters
3514 correctly.
3515 (start_mangling): Add entity parameter.
3516 (finish_mangling): Warn about names whose mangling will change.
3517 (mangle_decl_string): Adjust.
3518 (mangle_type_string): Likewise.
3519 (mangle_special_for_type): Likewise.
3520 (mangle_ctor_vtbl_for_type): Likewise.
3521 (mangle_thunk): Likewise.
3522 (mangle_guard_variable): Likewise.
3523 (mangle_ref_init_variable): Likewise.
3524
2282d28d
MM
35252002-10-02 Mark Mitchell <mark@codesourcery.com>
3526
3527 PR c++/7188.
3528 * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two.
3529 * cp-tree.h (emit_base_init): Rename to ....
3530 (emit_mem_initializers): ... this.
3531 (expand_member_init): Change prototype.
3532 * init.c (perform_member_init): Compute explicit, rather than
3533 requiring it as a parameter.
3534 (sort_member_init): Rename to ...
3535 (sort_mem_initializers): ... this. Process bases and data members
3536 together.
3537 (sort_base_init): Remove.
3538 (emit_base_init): Rename to ...
3539 (emit_mem_initializers): ... this.
3540 (expand_aggr_vbase_init_1): Remove.
3541 (construct_virtual_bases): Rename to ...
3542 (construct_virtual_base): ... this.
3543 (expand_member_init): Rework handling of base initializers.
3544 * method.c (do_build_copy_constructor): Use
3545 finish_mem_initializers.
3546 * parse.y (member_init): Adjust calls to expand_member_init.
3547 * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case.
3548 (tsubst_initializer_list): Use expand_member_init.
3549 * semantics.c (finish_mem_intiailizers): Simplify.
69788039
MA
3550
35512002-10-02 Matt Austern <austern@apple.com>
3552 * decl.c (walk_vtables_r): Fixed typo that caused result to
3553 never get a nonzero value.
95f79357 3554
f963b5d9
RS
35552002-10-02 Roger Sayle <roger@eyesopen.com>
3556
3557 PR optimization/6627
3558 * cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition
3559 from here, and move it to tree.h.
3560 * decl.c (cxx_init_decl_processing): If storing the vbit
3561 in function pointers, ensure that force_align_functions_log
3562 is atleast one.
3563
69788039
MA
35642002-10-02 Matt Austern <austern@apple.com>
3565
3566 * class.c (check_field_decls): Changed warning about const member
3567 variables so that it doesn't get issued for a class aggregate.
95f79357 3568
d881ff25
MM
35692002-10-01 Mark Mitchell <mark@codesourcery.com>
3570
3571 * decl.c (cp_finish_decl): Make sure array types are laid out,
3572 even if the array bounds are unknown.
3573
2e88ae22
SE
35742002-10-01 Steve Ellcey <sje@cup.hp.com>
3575
d881ff25 3576 * class.c (build_vtbl_initializer): Change build_c_cast
2e88ae22
SE
3577 to build1.
3578
b4c20e52
MM
35792002-10-01 Mark Mitchell <mark@codesourcery.com>
3580
d881ff25
MM
3581 * decl.c (cp_finish_decl): Make sure array types are laid out,
3582 even if the array bounds are unknown.
3583
b4c20e52
MM
3584 * decl.c (cp_finish_decl): Correct check for dynamic
3585 initialization of thread-local storage.
3586
5a9a1961
NS
35872002-09-30 Nathan Sidwell <nathan@codesourcery.com>
3588
3589 * tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also
3590 overloaded.
3591
7befdb9f
SE
35922002-09-30 Steve Ellcey <sje@cup.hp.com>
3593
3594 * class.c (build_vtbl_initializer): Add cast.
3595 (add_vcall_offset_vtbl_entries_1):
3596 Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset.
3597
17bbb839
MM
35982002-09-30 Mark Mitchell <mark@codesourcery.com>
3599
3600 * class.c (walk_subobject_offsets): Correct the calculation of
3601 offsets for virtual bases. Correct the counting of array
3602 elements.
3603 (layout_nonempty_base_or_field): Simplify. Correct the
3604 calculation of offsets to be propagated through the binfo
3605 hierarchy.
3606 (build_base_field): Avoid creating a FIELD_DECL for empty bases.
3607 Add the FIELD_DECL to TYPE_FIELDS.
3608 (build_base_fields): Adjust accordingly.
3609 (layout_virtual_bases): Use build_base_field.
3610 (end_of_class): Return a tree, not an integer.
3611 (warn_about_ambiguous_direct_bases): Rename to ...
3612 (warn_about_ambiguous_bases): ... this.
3613 (include_empty_classes): New function.
3614 (layout_class_type): Create an alternative version of the type to
3615 be used when as a base class type. Do not call
3616 finish_record_layout until we are done laying out the class.
3617 * cp-tree.h (lang_type_class): Remove size, size_unit. Add
3618 as_base.
3619 (CLASSTYPE_SIZE): Reimplement.
3620 (CLASSTYPE_SIZE_UNIT): Likewise.
3621 (CLASSTYPE_ALIGN): Likweise.
3622 (CLASSTYPE_USER_ALIGN): Likewise.
3623 (CLASSTYPE_AS_BASE): New macro.
3624 (DECL_INITIALIZED_P): Likewise.
3625 (extract_init): Remove prototype.
3626 (build_forced_zero_init): Rename to ...
3627 (build_zero_init): ... this.
3628 (force_store_init_value): Remove.
3629 * decl.c (obscure_complex_init): Remove.
3630 (duplicate_decls): Copy DECL_INITIALIZED_P.
3631 (check_initializer): Do not leave junk in DECL_INITIAL.
3632 (cp_finish_decl): Handle zero-initialization of entities with
3633 static storage duration.
3634 * expr.c (extract_init): Remove.
3635 * init.c (build_forced_zero_init): Remove.
3636 (build_zero_init): New function.
3637 (build_default_init): Use it.
3638 (build_field_list): Skip FIELD_DECLs for base subobjects.
3639 (push_base_cleanups): Likewise.
3640 * method.c (do_build_assign_ref): Likewise.
3641 (synthesize_exception_spec): Likewise.
3642 * pt.c (tsubst_decl): Clear DECL_INITIALIZED_P.
3643 (regenerate_decl_from_template): To not set DECL_INITIAL for a
3644 static data member whose initialization took place in its class.
3645 (instantiate_decl): Do not pass an initializer to cp_finish_decl
3646 in that situation.
3647 * search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects.
3648 (dfs_unuse_fields): Likewise.
3649 * tree.c (pod_type_p): Handle error_mark_node.
3650 (zero_init_p): Likewise.
95f79357 3651 * typeck.c (lookup_anon_field): Skip FIELD_DECLs for base
17bbb839
MM
3652 subobjects.
3653 * typeck2.c (store_init_value): Remove #if 0'd code.
3654 (force_store_init_value): Remove.
3655 (process_init_constructor): Use build_zero_init.
95f79357 3656
03357c23
NS
36572002-09-29 Nathan Sidwell <nathan@codesourcery.com>
3658
3659 PR c++/7788
3660 * rtti.c (unemitted_tinfo_decl_p): Check it has a field.
3661
27631dae
KH
36622002-09-29 Kazu Hirata <kazu@cs.umass.edu>
3663
3664 * cp-tree.h: Fix comment typos.
3665 * decl.c: Likewise.
3666 * pt.c: Likewise.
3667
956d9305
MM
36682002-09-25 Mark Mitchell <mark@codesourcery.com>
3669
3670 * cp/class.c (contains_empty_class_p): New method.
3671 (walk_subobject_offsets): Correct computation of field offset.
3672 (layout_empty_base): Correct placement of emtpy base classes.
3673 (layout_class_type): Warn about ABI changes.
3674
2d3e278d
MM
36752002-09-23 Mark Mitchell <mark@codesourcery.com>
3676
3677 * cp/class.c (layout_virtual_bases): Do not round the size of the
3678 type to a multiple of the alignment before laying out virtual bases.
3679 (layout_class_type): Correct handling of bit-fields that are wider
3680 than their type inside unions. Round the size of the type to a
3681 even number of bytes when computing the size without virtual
3682 bases.
3683 * cp/cp-tree.h (abi_version_at_least): New macro.
95f79357 3684
838dfd8a
KH
36852002-09-21 Kazu Hirata <kazu@cs.umass.edu>
3686
3687 * ChangeLog: Follow spelling conventions.
3688 * ChangeLog.2: Likewise.
3689 * call.c: Likewise.
3690 * class.c: Likewise.
3691 * cp-tree.h: Likewise.
3692 * cvt.c: Likewise.
3693 * decl.c: Likewise.
3694 * decl2.c: Likewise.
3695 * except.c: Likewise.
3696 * friend.c: Likewise.
3697 * g++spec.c: Likewise.
3698 * init.c: Likewise.
3699 * lex.c: Likewise.
3700 * mangle.c: Likewise.
3701 * method.c: Likewise.
3702 * operators.def: Likewise.
3703 * optimize.c: Likewise.
3704 * pt.c: Likewise.
3705 * rtti.c: Likewise.
3706 * search.c: Likewise.
3707 * semantics.c: Likewise.
3708 * spew.c: Likewise.
3709 * tree.c: Likewise.
3710 * typeck.c: Likewise.
3711
9ced0328
DP
37122002-09-18 Devang Patel <dpatel@apple.com>
3713
3714 * cp/cp-tree.h: New prototype for walk_vtabls().
3715 * cp/decl.c (walk_vtables_r): New function.
3716 (struct cp_binding_level): Add new members, namespaces,
3717 names_size and vtables.
3718 (add_decl_to_level): Add decl in namespaces or vtables
3719 chain, if conditions match.
3720 (walk_vtables): New function.
3721 (walk_namespaces_r): Travers separate namespace chain
3722 for namespace decls.
3723 (wrapup_globals_for_namespace): Use names_size instead
3724 of list_length().
3725 * cp/decl2.c (finish_file): Use walk_vtables() instead of
3726 walk_globals() to walk vtable decls.
3727
dd29188b
NS
37282002-09-18 Nathan Sidwell <nathan@codesourcery.com>
3729
3730 * decl.c (grokdeclarator): Use assert, not internal_error. Don't
3731 ICE with invalid pointers & references.
3732
f989ed67
ZW
37332002-09-17 Zack Weinberg <zack@codesourcery.com>
3734
3735 * Make-lang.in: Remove all references to the demangler.
3736 * cxxfilt.c: Moved to binutils.
3737
171d2f50
NS
37382002-09-16 Nathan Sidwell <nathan@codesourcery.com>
3739
3ec83083
NS
3740 PR c++/7718
3741 * pt.c (tsubst_decl): Remove assert.
3742
171d2f50
NS
3743 Remove DR 295 implementation.
3744 * pt.c (check_cv_quals_for_unify): Disable function & method cases.
3745 * tree.c (cp_build_qualified_type_real): Likewise. Don't warn
3746 about ignoring volatile qualifiers.
3747
3748 * search.c (lookup_member): Correct documentation.
3749
36a5eadd
GK
37502002-09-16 Geoffrey Keating <geoffk@apple.com>
3751
3752 * cp-tree.h (union lang_tree_node): Add chain_next option.
3753
28c56d25
NS
37542002-09-16 Nathan Sidwell <nathan@codesourcery.com>
3755
7979434d
NS
3756 * parse.y (parse_finish_call_expr): Check lookup_member result.
3757
28c56d25
NS
3758 PR c++/7015
3759 * semantic.c (finish_asm_stmt): Fix operand/output_operands
3760 thinko.
3761 * typeck.c (c_expand_asm_operands): Protect from error_mark_node.
3762
3baab484
NS
37632002-09-15 Nathan Sidwell <nathan@codesourcery.com>
3764
3765 PR c++/7919
3766 * call.c (build_over_call): Convert this pointer for fns found by
3767 using decls.
3768
d30d6e7a
KH
37692002-09-15 Kazu Hirata <kazu@cs.umass.edu>
3770
3771 * ChangeLog: Follow spelling conventions.
3772 * ChangeLog.1: Likewise.
3773
c8460010
NS
37742002-09-14 Nathan Sidwell <nathan@codesourcery.com>
3775
3776 PR c++/7768
3777 * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P.
3778
c6002625
KH
37792002-09-14 Kazu Hirata <kazu@cs.umass.edu>
3780
3781 * error.c: Fix comment formatting.
3782 * except.c: Likewise.
3783 * expr.c: Likewise.
3784 * friend.c: Likewise.
3785 * g++spec.c: Likewise.
3786 * init.c: Likewise.
3787 * lex.c: Likewise.
3788 * mangle.c: Likewise.
3789 * method.c: Likewise.
3790 * optimize.c: Likewise.
3791 * pt.c: Likewise.
3792 * rtti.c: Likewise.
3793 * search.c: Likewise.
3794 * semantics.c: Likewise.
3795 * spew.c: Likewise.
3796 * tree.c: Likewise.
3797 * typeck.c: Likewise.
3798 * typeck2.c: Likewise.
3799
46dd3884
GDR
38002002-09-13 Matt Austern <austern@apple.com>
3801
4a7510cb 3802 PR C++/7828
46dd3884
GDR
3803 * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p.
3804 * cp/call.c: Change call-by-const-reference mechanism to use
3805 non_cast_lvalue_p when deciding whether the create a temporary.
3806 We need a temporary when passing, e.g. (long) x by const ref.
3807
712467a4
NS
38082002-09-13 Nathan Sidwell <nathan@codesourcery.com>
3809
3810 * pt.c (unify, ARRAY_TYPE): Element type can be more qualified.
3811
a1c65f9f
KH
38122002-09-13 Kazu Hirata <kazu@cs.umass.edu>
3813
3814 * decl.c: Fix comment formatting.
3815 * decl2.c: Likewise.
3816
00a17e31
KH
38172002-09-12 Kazu Hirata <kazu@cs.umass.edu>
3818
3819 * call.c: Fix comment formatting.
3820 * class.c: Likewise.
3821 * cp-lang.c: Likewise.
3822 * cp-tree.h: Likewise.
3823 * cvt.c: Likewise.
3824
3fd9d606
ZW
38252002-09-11 Zack Weinberg <zack@codesourcery.com>
3826
3827 * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c,
3828 and c++filt from cxxfilt.o + version.o + $(LIBDEPS).
3829 * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with
3830 minor adjustments (use version_string, eliminate yet another
3831 duplicate of xmalloc)
3832
2515a7ea
KG
38332002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3834
3835 * cp-tree.h (require_complete_eh_spec_types): Add prototype.
3836
5aa3396c
JM
38372002-09-05 Jason Merrill <jason@redhat.com>
3838
3839 * typeck2.c (add_exception_specifier): Only pedwarn for an
3840 incomplete type.
3841 (require_complete_eh_spec_types): New fn.
3842 (cxx_incomplete_type_diagnostic): Also support pedwarning.
3843 * typeck.c (complete_type_or_diagnostic): Likewise.
3844 * call.c (build_call): Call require_complete_eh_spec_types.
3845 * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting
3846 on an incomplete type.
3847
23ccd1f3
JJ
38482002-09-04 Jakub Jelinek <jakub@redhat.com>
3849
3850 * decl.c (start_cleanup_fn): Clear interface_only before
3851 start_function, restore it afterwards.
3852
4977bab6
ZW
38532002-09-02 Nathan Sidwell <nathan@codesourcery.com>
3854
3855 * cp-tree.h (finish_builtin_type): Remove.
3856 * decl2.c (finish_builtin_type): Move to common code.
3857 * decl.c (build_ptrmemfunc_type): Adjust.
3858 * rtti.c (create_pseudo_type_info): Adjust.
3859 (create_tinfo_types): Adjust.
3860
d99f015c
JM
38612002-08-31 Jason Merrill <jason@redhat.com>
3862
3863 * cp-lang.c (cp_expr_size): Allow initialization from a
3864 CONSTRUCTOR.
3865
8a3c9180
RH
38662002-08-30 Richard Henderson <rth@redhat.com>
3867
c9989d09 3868 PR opt/7515
8a3c9180
RH
3869 * tree.c: Include target.h.
3870 (cp_cannot_inline_tree_fn): Don't auto-inline functions that
3871 don't bind locally.
3872 * Makefile.in (tree.o): Update.
3873
eca7f13c
MM
38742002-08-27 Mark Mitchell <mark@codesourcery.com>
3875
3876 * class.c (layout_virtual_bases): Warn about bugs in G++ that
3877 result in incorrect object layouts.
3878 (layout_class_type): Likewise.
f989ed67 3879
13d3f0b6
MA
38802002-08-24 Matt Austern <austern@apple.com>
3881
3882 * tree.c (lvalue_p_1): Add argument for whether casts of lvalues
3883 are allowable.
3884 (real_lvalue_p): Update caller.
3885 (lvalue_p): Ditto.
3886 (non_cast_lvalue_or_else): New.
3887 * tree.h: Declare it.
f989ed67 3888 * typeck.c (build_unary_op): Use non_cast_lvalue_or_else.
13d3f0b6 3889
5b770a96
MM
38902002-08-22 Mark Mitchell <mark@codesourcery.com>
3891
3892 * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR
3893 and COND_EXPR specially; fix error message output.
3894
d65b1d77
JM
38952002-08-22 Jason Merrill <jason@redhat.com>
3896
3897 * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
3898 * semantics.c (nullify_returns_r): Likewise.
3899
8a5f4379
GDR
39002002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
3901
3902 Fix PR/7621
3903 * typeck.c (finish_class_member_access_expr): Diagnose cases where
3904 name lookup finds nothing.
3905
5d764395
JM
39062002-08-15 Jason Merrill <jason@redhat.com>
3907
3908 * semantics.c (finish_then_clause): Remove redundant assignment.
3909 (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the
3910 extra binding level outside the if/switch statement.
3911 (finish_while_cond, finish_for_cond): Rewrite complex condition
3912 into the loop body.
3913
c01b9ec8
AO
39142002-08-15 Alexandre Oliva <aoliva@redhat.com>
3915
3916 * parse.y (sizeof, alignof, typeof): New non-terminals to
3917 increment skip_evaluation. Replace terminals with them and
3918 decrement skip_evaluation at the end of rules using them.
3919 * decl2.c (mark_used): Don't assemble_external if
3920 skipping evaluation.
3921
e8fe46d4
GDR
39222002-08-15 Gabriel Dos Reis <gdr@nerim.net>
3923
3924 Fix PR/7504
3925 * parse.y (parse_finish_call_expr): Handle incomplete
3926 type used to name a scope.
3927
eac5ce6c
NS
39282002-08-15 Nathan Sidwell <nathan@codesourcery.com>
3929
3930 PR c++/7598
3931 * typeck.c (build_unary_op): Fold offsetof idiom. Fixes
3932 regression caused by my 2002-08-08 patch.
3933
22eadedb
MM
39342002-08-13 Mark Mitchell <mark@codesourcery.com>
3935
3936 * decl.c (pushdecl_class_level): Honor requests to bind names to
3937 OVERLOADs.
3938
e65e6212
KG
39392002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3940
3941 * decl2.c (build_call_from_tree): Fix uninitialized variable.
3942 * parse.y (parse_finish_call_expr): Likewise.
3943 * repo.c (old_args, old_dir, old_main): Const-ify.
3944
3e72ec9a
GDR
39452002-08-11 Gabriel Dos Reis <gdr@nerim.net>
3946
d78e771d 3947 * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE
3e72ec9a
GDR
3948 DECL_SOURCE_LINE with DECL_SOURCE_LOCATION.
3949 * optimize.c (maybe_clone_body): Likewise.
3950 * pt.c (tsubst_enum): Likewise.
3951 (lookup_template_class): Likewise.
3952 * tree.c (cp_copy_res_decl_for_inlining): Likewise.
3953
f749a36b
NB
39542002-08-10 Neil Booth <neil@daikokuya.co.uk>
3955
3956 * lang-specs.h: Remove -ansi.
3957
3ebf5204
NS
39582002-08-10 Nathan Sidwell <nathan@codesourcery.com>
3959
3960 * tree.c (maybe_dummy_object): Replace // with /* */
3961
9e259dd1
MM
39622002-08-09 Mark Mitchell <mark@codesourcery.com>
3963
3964 * call.c (standard_conversion): Use build_ptrmem_type.
3965 * cp-tree.h (build_ptrmem_type): New function.
3966 (adjust_result_of_qualified_name_lookup): Likewise.
3967 * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate
3968 static data members.
3969 (build_ptrmem_type): New function.
3970 (grokdeclarator): Do not use build_offset_type when encountering a
3971 qualified name.
3972 * parse.y (parse_finish_call_expr): Use
3973 adjust_result_of_qualified_name_lookup.
3974 * search.c (adjust_result_of_qualified_name_lookup): New function.
3975 * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than
3976 accessing OFFSET_TYPEs directly.
f989ed67 3977
0e339752
MS
39782002-08-08 Mike Stump <mrs@apple.com>
3979
3980 * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid.
3981 (type_decays_to): Likewise.
3982 * class.c (find_final_overrider): Likewise.
3983 (maybe_note_name_used_in_class): Likewise.
3984 * decl.c (current_tmpl_spec_kind): Likewise.
3985 (add_binding): Likewise.
3986 (push_class_binding): Likewise.
3987 (duplicate_decls): Likewise.
3988 (layout_var_decl): Likewise.
3989 (grokfndecl): Likewise.
3990 (grokdeclarator): Likewise.
3991 (check_default_argument): Likewise.
3992 * decl2.c (handle_class_head): Likewise.
3993 * error.c (dump_template_decl): Likewise.
3994 * init.c (build_offset_ref): Likewise.
3995 * pt.c (check_specialization_scope): Likewise.
3996 (determine_specialization): Likewise.
3997 (check_explicit_specialization): Likewise.
3998 (maybe_check_template_type): Likewise.
3999 (process_partial_specialization): Likewise.
4000 (check_default_tmpl_args): Likewise.
4001 (push_template_decl_real): Likewise.
4002 (convert_template_argument): Likewise.
4003 (try_class_unification): Likewise.
4004 (get_bindings_real): Likewise.
4005 (do_decl_instantiation): Likewise.
4006 * semantics.c (begin_function_definition): Likewise.
4007 (finish_member_declaration): Likewise.
4008 (check_multiple_declarators): Likewise.
4009 * typeck.c (comp_array_types): Likewise.
4010 (comptypes): Likewise.
4011 (expr_sizeof): Likewise.
4012 (build_binary_op): Likewise.
4013 (dubious_conversion_warnings): Likewise.
4014 (check_return_expr): Likewise.
b6ce26ac 4015
a6f5b2d3
MM
40162002-08-08 Mark Mitchell <mark@codesourcery.com>
4017
4018 * typeck.c (build_class_member_access_expr): Do not return
4019 error_mark_node when no error has occurred.
b6ce26ac 4020
c93a26f5
NS
40212002-08-08 Nathan Sidwell <nathan@codesourcery.com>
4022
4023 * typeck.c (build_component_addr): Remove.
4024 (build_unary_op): Just check it's not a bitfield, and then build
4025 an ADDR_EXPR.
4026
5bfc90de
NS
40272002-08-08 Nathan Sidwell <nathan@codesourcery.com>
4028
4029 * class.c (convert_to_base): Correct check for error_mark_node.
4030 (create_vtable_ptr): Remove unused VFUNS_P parm.
4031
22aa533e
NS
40322002-08-08 Nathan Sidwell <nathan@codesourcery.com>
4033
4034 * cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
4035
50ad9642
MM
40362002-08-07 Mark Mitchell <mark@codesourcery.com>
4037
4038 Rework build_component_ref.
4039 * call.c (build_vfield_ref): Do not go through build_component_ref.
4040 (build_field_call): Use build_class_member_access_expr.
4041 (build_user_type_conversion_1): Use BASELINK_FUNCTIONS.
4042 (build_object_call): Likewise.
4043 * class.c (convert_to_base): New function.
4044 (type_requires_array_cookie): Use BASELINK_FUNCTIONS.
4045 (instantiate_type): Handle BASELINKs.
4046 * cp-tree.def (BASELINK): New tree code.
4047 * cp-tree.h (BASELINK_P): Reimplement.
4048 (SET_BASELINK_P): Remove.
4049 (BASELINK_BINFO): Reimplement.
4050 (BASELINK_FUNCTIONS): Likewise.
4051 (BASELINK_ACCESS_BINFO): Likewise.
4052 (BASELINK_OPTYPE): Likewise.
4053 (convert_to_base): New function.
4054 (name_p): Likewise.
4055 (build_object_ref): Remove.
4056 (build_component_ref_1): Likewise.
4057 (build_component_ref): Likewise.
4058 (build_x_component_ref): Likewise.
4059 (build_class_member_access_expr): New function.
4060 (finish_class_member_access_expr): Likewise.
4061 (build_ptrmemfunc_access_expr): Likewise.
4062 * decl.c (grokdeclarator): Handle BASELINKs.
4063 * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using
4064 finish_class_member_access_expr.
4065 (arg_assoc): Handle BASELINKs.
4066 (do_class_using_decl): Likewise.
4067 * error.c (dump_decl): Likewise.
4068 (dump_expr): Use build_ptrmemfunc_access_expr.
4069 * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find
4070 destructors.
4071 (build_throw): Use BASELINK_FUNCTIONS.
4072 * init.c (perform_member_init): Use
4073 build_class_member_access_expr.
4074 (build_offset_ref): Handle BASELINKs. Use
4075 build_class_member_access_expr.
4076 * method.c (hack_identifier): Likewise.
4077 * parse.y (do_id): Use BASELINK, not TREE_LIST.
4078 (primary): Remove uses of build_object_ref.
4079 * pt.c (lookup_template_function): Handle BASELINKs.
4080 (resolve_overloaded_unification): Likewise.
4081 * search.c (build_baselink): Build a BASELINK, not a TREE_LIST.
4082 (lookup_field): Use BASELINK, not TREE_LIST.
4083 (lookup_fnfiels): Likewise.
4084 (setup_class_bindings): Likewise.
4085 * semantics.c (finish_object_call_expr): Do not use
4086 build_method_call when we already know what function is being
4087 called.
4088 * spew.c (identifier_type): Use BASELINK, not TREE_LIST.
4089 * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not
4090 TREE_CHAIN.
4091 (name_p): New function.
4092 * typeck.c (build_object_ref): Remove.
4093 (build_component_ref_1): Likewise.
4094 (build_x_component_ref): Likewise.
4095 (build_class_member_access_expr): New function.
4096 (finish_class_member_access_expr): Likewise.
4097 (build_ptrmemfunc_access_expr): Likewise.
4098 (get_member_function_from_ptrfunc): Use
4099 build_ptrmemfunc_access_expr.
4100 (build_binary_op): Likewise.
4101 (build_unary_op): Likewise.
4102 (build_ptrmemfunc): Likewise.
4103 (pfn_from_ptrmemfunc): Likewise.
4104 * typeck2.c (build_m_component_ref): Adjust comment.
b6ce26ac 4105
0b6f2917
NB
41062002-08-07 Neil Booth <neil@daikokuya.co.uk>
4107
4108 * Make-lang.in (CXX_C_OBJS): Update.
4109 * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
4110 * cp-tree.h (cxx_decode_option): Remove.
4111 * decl2.c (compare_options, lang_f_options, unsupported_options,
4112 cxx_decode_option): Remove.
4113
1e14c7f0
GDR
41142002-08-06 Gabriel Dos Reis <gdr@nerim.net>
4115
4116 * typeck.c (build_x_unary_op): Handle pointer-to-member.
4117
b3426eb9
GK
41182002-08-05 Geoffrey Keating <geoffk@redhat.com>
4119
4120 * class.c: Don't include obstack.h.
b6ce26ac 4121 (popclass):
b3426eb9
GK
4122 * decl2.c: Delete bogus comment.
4123 * error.c: Don't include obstack.h.
4124 * except.c: Likewise.
4125 (dump_type): Correct comment.
4126 * method.c: Don't include obstack.h.
4127 * tree.c: Likewise.
4128
201fbb7f
GDR
41292002-08-04 Gabriel Dos Reis <gdr@nerim.net>
4130
4131 Fix PR/2213
4132 * cvt.c (cp_convert_to_pointer): Reject conversions from integral
4133 expressions to pointer-to-data-member of pointer-to-member-functions.
4134
6d9f628e
GK
41352002-08-04 Geoffrey Keating <geoffk@redhat.com>
4136
4137 * cvt.c (ocp_convert): Delete obsolete code.
4138 * parse.y (permanent_obstack): Delete declaration.
4139 * pt.c (permanent_obstack): Delete declaration.
4140 * repo.c (permanent_obstack): Delete declaration.
4141 (open_repo_file): Use xmalloc instead of permanent_obstack.
4142 (init_repo): Use xstrdup instead of permanent_obstack.
4143
dd98e14f
NS
41442002-08-04 Nathan Sidwell <nathan@codesourcery.com>
4145
4146 * cp-tree.h (VF_DERIVED_VALUE): Remove.
4147 * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE.
4148
e6858a84
NS
41492002-08-03 Nathan Sidwell <nathan@codesourcery.com>
4150
4151 PR 7470.
4152 C++ ABI change - vfunc ordering.
4153 * class.c (add_virtual_function): Remove.
4154 (dfs_modify_all_vtables): Take list of all declared
4155 virtuals. Assign all that are not in primary base.
4156 (check_for_override): Adjust comments.
4157 (create_vtable_ptr): Take single list of virtuals. Build chain
4158 of declared virtuals here.
4159 (layout_class_type): Take single list of virtuals. Adjust.
4160 (finish_struct_1): Keep virtuals on single list. Adjust.
4161
55765de4
MM
41622002-08-02 Mark Mitchell <mark@codesourcery.com>
4163
4164 * init.c (build_member_call): Use build_new_method_call, not
4165 build_method_call.
4166
d0067571
KW
41672002-08-02 Krister Walfridsson <cato@df.lth.se>
4168
4169 * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies.
4170
4a34e0e8
MM
41712002-08-02 Mark Mitchell <mark@codesourcery.com>
4172
4173 * call.c (build_method_call): Issue a more helpful error message
4174 about ambiguous method names.
4175
41ab2ae2
NS
41762002-08-02 Nathan Sidwell <nathan@codesourcery.com>
4177
4178 * tree.c (build_shared_int_cst): Make cache file scope, and
4179 GTY it.
4180
367aa585
JM
41812002-08-02 Jason Merrill <jason@redhat.com>
4182
a77a9a18
JM
4183 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
4184 (cp_expr_size): New fn.
4185 * call.c (build_over_call): Lose empty class hackery.
4186 (convert_arg_to_ellipsis): Promote non-POD warning to error.
4187 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
4188
367aa585
JM
4189 * semantics.c (expand_body): Do tree optimization in the function
4190 context, too.
4191
4078b403
NB
41922002-08-01 Neil Booth <neil@daikokuya.co.uk>
4193
4194 * cp-tree.h: Move all warning and flag declarations to c-common.h.
4195 * decl.c: Move all warning and flag variables to c-common.c.
4196 * decl2.c: Move all warning and flag variables to c-common.c.
4197 * lex.c (flag_digraphs): Remove.
4198 (warn_traditional): Now in c-common.c.
4199
4ba126e4
MM
42002002-07-31 Mark Mitchell <mark@codesourcery.com>
4201
4202 * call.c (build_field_call): Do not look up the field by name.
4203 (build_method_call): Simplify.
4204 (struct z_candidate): Add access_path and conversion_path. Remove
4205 basetype_path.
4206 (convert_class_to_reference): Adjust use of
4207 add_function_candidate.
4208 (add_candidate): Add conversion_path argument.
4209 (add_function_candidate): Use it.
4210 (add_conv_dndidate): Likewise.
4211 (build_builtin_candidate): Likewise.
4212 (add_template_candidate_real): Add conversion_path argument.
4213 (add_template_conv_candidate): Likewise.
4214 (add_template_candidate): Likewise.
4215 (build_user_type_conversion_1): Use it.
4216 (build_new_function_call): Remove name lookup code. Adjust use of
4217 add_template_candidate and add_function_candidate.
4218 (build_new_op): Likewise.
4219 (convert_like_real): Use build_special_member_call.
4220 (build_over_call): Use cand->conversion_path.
4221 (build_special_member_call): New method.
4222 (build_new_method_call): Remove name lookup code.
4223 * cp-tree.def (OFFSET_REF): Update documentation.
4224 (TEMPLATE_ID_EXPR): Likewise.
4225 * cp-tree.h (BASELINK_ACCESS_BINFO): New macro.
4226 (BASELINK_OPTYPE): Likewise.
4227 (build_new_method_call): Adjust prototype.
4228 (build_special_member_call): New method.
4229 (build_baselink): New method.
4230 (build_offset_ref_call_from_tree): Likewise.
4231 (build_call_from_tree): Likewise.
4232 (finish_qualified_call_expr): Remove.
4233 (finish_call_expr): Adjust prototype.
4234 (build_x_function_call): Remove.
4235 * cvt.c (ocp_convert): Use build_special_member_call.
4236 * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr.
4237 (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and
4238 CALL_EXPR.
4239 (build_offset_ref_call_from_tree): New function.
4240 (build_call_from_tree): Likewise.
4241 * init.c (expand_cleanup): Use build_special_member_call.
4242 (expand_default_init): Likewise.
4243 (build_member_call): Use finish_call_expr.
4244 (build_new_1): Use build_special_member_call.
4245 (push_base_cleanups): Likewise.
4246 * method.c (do_build_assign_ref): Likewise.
4247 * parse.y (template_id): Do not pass a COMPONENT_REF to
4248 lookup_template_function.
4249 (primary): Use parse_finish_call_epxr, not finish_call_expr.
4250 (parse_finish_call_expr): New function.
4251 * pt.c (lookup_template_function): Add assertions.
4252 * search.c (lookup_base): Allow T to be a binfo.
4253 (build_baselink): New function.
4254 (lookup_member): Use it.
4255 * semantics.c (finish_call_expr): Do not do name lookup.
4256 (finish_object_call_expr): Remove #if 0'd code.
4257 (finish_qualified_call_expr): Remove.
4258 * typeck.c (build_x_function_call): Remove.
4259 (build_static_case): Use build_special_member_call.
4260 * typeck2.c (build_functional_cast): Likewise.
b6ce26ac 4261
60b8aa94
FS
42622002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4263
4264 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c.
4265
8a4a7242
GDR
42662002-07-30 Gabriel Dos Reis <gdr@nerim.net>
4267
4268 * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion.
4269
03fc215c
NS
42702002-07-30 Nathan Sidwell <nathan@codesourcery.com>
4271
4272 * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more
4273 documentation.
4274
3f16a8f3
AM
42752002-07-29 Alan Modra <amodra@bigpond.net.au>
4276
4277 * cp-tree.h: Comment typo fix.
4278
c03d566f
RE
42792002-07-29 Richard Earnshaw <rearnsha@arm.com>
4280
4281 * spew.c (space_for_token): Allocate zeroed memory for a new token
4282 chunk.
4283
c2ef6d34
RS
42842002-07-27 Roger Sayle <roger@eyesopen.com>
4285
4286 * decl.c (builtin_function_1): No need to explicitly mark
4287 BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
4288
a3926fe1
RS
42892002-07-27 Roger Sayle <roger@eyesopen.com>
4290
4291 * decl2.c (cxx_decode_option): Support -fno-builtin-foo.
4292
8e51619a
JM
42932002-07-26 Jason Merrill <jason@redhat.com>
4294
4295 * call.c (build_over_call): Likewise.
4296 (cp_convert_parm_for_inlining): New fn.
f989ed67
ZW
4297 (convert_for_arg_passing): New fn.
4298 (convert_default_arg, build_over_call): Use it.
8e51619a
JM
4299 (type_passed_as): New fn.
4300 * pt.c (tsubst_decl): Use it.
4301 * decl2.c (cp_build_parm_decl): New fn.
4302 (build_artificial_parm): Use it.
4303 (start_static_storage_duration_function): Likewise.
4304 * decl.c (start_cleanup_fn, grokdeclarater): Likewise.
4305 (grokparms): Don't mess with DECL_ARG_TYPE.
4306 * typeck.c (convert_arguments): Use convert_for_arg_passing.
4307 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
4308 Define.
4309 * cp-tree.h: Declare new fns.
b6ce26ac 4310
c372b0fa
NB
43112002-07-26 Neil Booth <neil@daikokuya.co.uk>
4312
4313 * cp-tree.h (flag_operator_names): Remove.
4314 * decl2.c (flag_operator_names): Remove.
4315 (lang_f_options): Remove operator-names.
4316 * lex.c (D_OPNAME): Remove.
4317 (reswords): Remove operator names.
4318 (rid_to_yy): Remove operator names.
4319 (init_reswords): No need to handle D_OPNAME.
4320 * spew.c (read_process_identifier): There are no operator
4321 names.
4322
558ee214
JM
43232002-07-26 Jason Merrill <jason@redhat.com>
4324
4325 * dump.c (cp_dump_tree): Call c_dump_tree.
4326 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
4327
81a1552d
NB
43282002-07-25 Neil Booth <neil@daikokuya.co.uk>
4329
4330 * error.c (print_whitespace): Remove.
4331 * g++spec.c (LIBUNWIND): Move.
4332 * mangle.c (mangled_position, write_signed_number): Remove.
4333
cad2c6b6
NB
43342002-07-25 Neil Booth <neil@daikokuya.co.uk>
4335
4336 * decl2.c (cxx_decode_option): Similarly.
4337
ea793912
GDR
43382002-07-25 Gabriel Dos Reis <gdr@nerim.net>
4339
4340 * cp-tree.h (cxx_sizeof_nowarn): Now a macro.
4341 (cxx_sizeof_or_alignof_type): Take a third argument.
4342 (cxx_sizeof): Adjust definition.
4343 (cxx_alignof): Likewise.
4344 * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
4345 * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
4346 complaining.
4347 (c_sizeof_nowarn): Remove definition.
4348 (build_unary_op): Use cxx_sizeof_nowarn.
4349
3cfab7ec
GK
43502002-07-24 Geoffrey Keating <geoffk@redhat.com>
4351
4352 * tree.c (cp_build_qualified_type_real): When copying
4353 pointer-to-method types, unshare the record that holds
4354 the cached pointer-to-member-function type.
4355
c0667597
NB
43562002-07-23 Neil Booth <neil@daikokuya.co.uk>
4357
4358 * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove.
4359
fa72b064
GDR
43602002-07-23 Gabriel Dos Reis <gdr@nerim.net>
4361
4362 Fix PR/7363:
4363 * typeck.c (cxx_sizeof_or_alignof_type): New function.
4364 (c_sizeof): Remove definition.
4365 (expr_sizeof): Use cxx_sizeof.
4366 * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type.
4367 * decl.c (finish_destructor_body): Use cxx_sizeof.
4368 * semantics.c (finish_alignof): Likewise.
4369 (finish_alignof): Use cxx_alignof.
4370 * cp-tree.h (cxx_sizeof, cxx_alignof): New macros.
4371 (cxx_sizeof_or_alignof_type): Declare.
4372 (my_friendly_assert): Move to ../c-common.h.
4373
4fa31c2a
NB
43742002-07-23 Neil Booth <neil@daikokuya.co.uk>
4375
4376 * class.c, method.c, pt.c, search.c: Don't define obstack macros.
4377
0e902d98
KL
43782002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4379
4380 PR c++/7347, c++/7348
4381 * cp-tree.h (tsubst_flags_t): Add tf_parsing.
4382 * decl.c (make_typename_type): Use it.
4383 (make_unbound_class_template): Likewise.
4384 (lookup_name_real): Don't call type_access_control if scope is
4385 template parameter dependent.
4386 * parse.y (template_arg): Call make_unbound_class_template with
4387 tf_parsing set.
4388 (nest_name_specifier): Call make_typename_type with tf_parsing set.
4389 (typename_sub0): Likewise.
4390 (typename_sub1): Likewise.
4391 (instantiate_decl): Push class scope.
4392 * pt.c (regenerate_decl_from_template): Call pushclass and popclass
4393 for both static variable and member function template.
4394 (instantiate_decl) Call pushclass and popclass when tsubst'ing type
4395 and arguments.
4396 * search.c (type_access_control): Do type access for TEMPLATE_DECL
4397 too.
4398
b886c620
RS
43992002-07-20 Roger Sayle <roger@eyesopen.com>
4400
4401 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions
4402 test by using positive_option. Make whitespace consistent.
4403
7a561142
GDR
44042002-07-20 Gabriel Dos Reis <gdr@nerim.net>
4405
fa72b064 4406 * spew.c (struct unparsed_test): Replace 'filename' and 'lineno'
7a561142
GDR
4407 members with 'locus'. Adjust use throughout.
4408 (struct feed): Likewise.
4409 (alloc_unparsed_test): Change prototype, take a 'const location_t *'.
4410 Adjust use.
4411 (snarf_defarg): Use error(), not error_with_file_and_line().
4412
059ba716
CD
44132002-07-19 Chris Demetriou <cgd@broadcom.com>
4414
4415 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever
4416 cpp_options is included.
4417
d955f6ea
KL
44182002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4419
4420 PR c++/2862, c++/2863
4421 * pt.c (determine_specialization): Compare the length of
4422 TYPE_ARG_TYPES. Tidy.
4423
d03d18e8
KL
44242002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4425
4426 PR c++/3797
4427 * decl.c (duplicate_decls): Don't propagate inlining parameters from
b6ce26ac 4428 olddecl to newdecl when newdecl is a specialization of the
d03d18e8
KL
4429 instantiation olddecl.
4430
ba59df78
KL
44312002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4432
4433 PR c++/4802, c++/5387
4434 * decl.c (make_typename_type): Use enforce_access.
4435
58f05188
SS
44362002-07-17 Scott Snyder <snyder@fnal.gov>
4437
4438 PR c++/7320
4439 * rtti.c (get_tinfo_decl): Set DECL_COMDAT.
4440
04ec0065
MM
44412002-07-12 Mark Mitchell <mark@codesourcery.com>
4442
4443 * class.c (add_method): Correct handling of conversion operators.
4444
f0ab6bf2
MM
44452002-07-11 Mark Mitchell <mark@codesourcery.com>
4446
4447 PR c++/7224
4448 * class.c (add_method): Simplify.
4449
34902e16
JM
44502002-07-11 Jason Merrill <jason@redhat.com>
4451
4452 PR c++/7279
4453 * tree.c (cp_copy_res_decl_for_inlining): Also copy
4454 TREE_ADDRESSABLE.
4455
6e04241f
GS
44562002-07-10 Graham Stott <graham.stott@btinternet.com>
4457
4458 * pt.c (template_parm_this_level_p, push_template_decl_real):
b6ce26ac 4459 Pass depth as int pointer.
6e04241f 4460
8ac9d31f
TJ
44612002-07-11 Tim Josling <tej@melbpc.org.au>
4462
b6ce26ac 4463 Remove front end hard coding from gengtype.c.
8ac9d31f
TJ
4464
4465 * config-lang.in (gtfiles): Add files needed for this front end.
4466
15c7fb9c
MM
44672002-07-10 Mark Mitchell <mark@codesourcery.com>
4468
4469 * cp-tree.h (unqualified_name_lookup_error): Declare it.
4470 (begin_function_definition): Adjust prototype.
4471 * lex.c (unqualified_name_lookup_error): New function, split out
4472 from ...
4473 (do_identifier): ... here.
4474 * parse.y (parse_begin_function_definition): New function.
4475 (fn.def1): Use it.
4476 * semantics.c (begin_function_definition): Accept decl-specifiers
4477 and attributes as separate parameters.
4478
abf92e26
JM
44792002-07-10 Jason Merrill <jason@redhat.com>
4480
4481 PR c++/6255
4482 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
4483 modifying the old one.
4484
8ba658ee
MM
44852002-07-09 Mark Mitchell <mark@codesourcery.com>
4486
4487 * cp-tree.h (constructor_name_p): Declare it.
4488 (check_template_template_default_arg): Likewise.
4489 * class.c (handle_using_decl): Use constructor_name_p.
4490 * decl.c (grokdeclarator): Likewise.
4491 * decl2.c (constructor_name_p): Define it.
4492 * init.c (build_member_call): Use constructor_name_p.
4493 * parse.y (template_parm): Use check_template_template_default_arg.
4494 * pt.c (check_explicit_specialization): Use constructor_name_p.
4495 * semantics.c (check_template_template_default_arg): New function.
b6ce26ac 4496
d5372501
KL
44972002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4498
4499 * pt.c (can_complete_type_without_circularity): Add static to
4500 function definition.
4501
594bb0e7
MM
45022002-07-08 Mark Mitchell <mark@codesourcery.com>
4503
4504 * cp-tree.h (have_extern_spec): Declare it
4505 * decl.c (have_extern_spec): Define it.
4506 (start_decl): Eliminate use of used_extern_spec.
4507 (start_function): Likewise.
4508 * parse.y (have_extern_spec): Remove declaration.
4509 (used_extern_spec): Likewise.
4510 (frob_specs): Eliminate use of used_extern_spec.
4511 (.hush_warning): Likewise.
4512
eb8845be
MM
45132002-07-07 Mark Mitchell <mark@codesourcery.com>
4514
4515 * Make-lang.in (cp/parse.o): Depend on decl.h.
4516 * cp-tree.h (do_decl_instantiation): Change prototype.
4517 * parse.y: Include decl.h.
4518 (parse_decl_instantiation): New function.
4519 (explicit_instantiation): Use it.
4520 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
4521 and DECLSPECS.
b6ce26ac 4522
78abea27
RS
45232002-07-07 Roger Sayle <roger@eyesopen.com>
4524
4525 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
4526 constructor and destructor tests when passed a TEMPLATE_DECL.
4527
98c07d7b
JM
45282002-07-05 Jason Merrill <jason@redhat.com>
4529
212e17fd
JM
4530 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null
4531 pointers.
4532
98c07d7b
JM
4533 PR optimization/7145
4534 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
4535
c6f553d1
NS
45362002-07-05 Nathan Sidwell <nathan@codesourcery.com>
4537
4538 Repair damage on weak-impared targets caused by my previous patch.
4539 * cp-tree.h (import_export_tinfo): Add parameter.
4540 * decl2.c (import_export_tinfo): Add parameter, post adjust
4541 DECL_COMDAT.
4542 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
4543 import_export_tinfo.
4544
b2153b98
KL
45452002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4546
4547 PR c++/6944
4548 * init.c (build_aggr_init): Remove qualifiers of init before calling
4549 build_vec_init.
4550 (build_vec_init): Flatten multi-dimensional array during cleanup.
4551 (build_vec_delete_1): Abort if the type of each element is array.
4552
492ff760
GS
45532002-07-03 Graham Stott <graham.stott@btinternet.com>
4554
4555 * pt.c (instantiate_class_template): Fix typo.
4556
04c4491d
KL
45572002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4558
06728f70
KL
4559 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
4560 by CVS conflict in my last patch.
04c4491d 4561
17f29637
KL
45622002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4563
4564 PR c++/6716
4565 * pt.c (can_complete_type_without_circularity): New function.
4566 (instantiate_class_template): Use it.
06728f70
KL
4567 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error
4568 message due to incomplete fields.
17f29637 4569
5d69ba1f
MM
45702002-07-01 Mark Mitchell <mark@codesourcery.com>
4571
4572 PR c++/7112
4573 * mangle.c (write_expression): Add mangling for sizeof when
4574 applied to a type.
4575 * operators.def: Remove stale comment.
4576
d689a8f1
NS
45772002-06-30 Nathan Sidwell <nathan@codesourcery.com>
4578
4579 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
4580 (CPTI_TYPE_INFO_PTR_TYPE): ... this.
4581 (tinfo_decl_type): Replace with ...
4582 (type_info_ptr_type): ... this.
4583 (import_export_tinfo): Declare.
4584 (tinfo_decl_p): Rename to ...
4585 (unemitted_tinfo_decl_p): ... this.
4586 * decl2.c (import_export_decl): Break out tinfo handling into ...
4587 (import_export_tinfo): ... here. New function.
4588 (finish_file): Adjust.
4589 * rtti.c (TINFO_REAL_NAME): New macro.
4590 (init_rtti_processing): Create the tinfo types.
4591 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
4592 (get_tinfo_decl): Adjust.
4593 (get_tinfo_ptr): New function.
4594 (get_type_id): Use it.
4595 (tinfo_base_init): Create vtable decl here, if it doesn't exist.
4596 (ptr_initializer): Use get_tinfo_ptr.
4597 (ptm_initializer): Likewise.
4598 (synthesize_tinfo_var): Break into ...
4599 (get_pseudo_ti_init): ... this. Just create the initializer.
4600 (get_pseudo_ti_desc): .. and this.
4601 (create_real_tinfo_var): Remove.
4602 (create_pseudo_type_info): Don't create the vtable decl here.
4603 (get_vmi_pseudo_type_info): Remove.
4604 (create_tinfo_types): Adjust.
4605 (tinfo_decl_p): Rename to ...
4606 (unemitted_tinfo_decl_p): ... here. Adjust.
4607 (emit_tinfo_decl): Adjust. Create the initializer.
4608
5ce49b4b
MM
46092002-06-27 Mark Mitchell <mark@codesourcery.com>
4610
4611 PR c++/6695
4612 * pt.c (tsubst_friend_class): Substitute into the context of the
4613 friend before using it.
4614
88e5899c
MM
46152002-06-26 Mark Mitchell <mark@codesourcery.com>
4616
4617 * cp-tree.h (xref_tag): Change prototype.
4618 (handle_class_head): Likewise.
4619 (build_x_component_ref): Likewise.
4620 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
4621 (xref_tag): Take attributes as a separate parameter.
4622 (xref_tag_from_type): Adjust call to xref_tag.
4623 * decl2.c (build_expr_from_tree): Adjust call to
4624 build_x_component_ref.
4625 (handle_class_head): Take attributes as a separate parameter.
4626 * parse.y (parse_xref_tag): New function.
4627 (parse_handle_class_head): Likewise.
4628 (primary): Use parse_xref_tag.
4629 (class_head_decl): Use parse_handle_class_head.
4630 (class_head_defn): Likewise.
4631 * rtti.c (init_rtti_processing): Adjust call to xref_tag.
4632 (build_dynamic_cast_1): Likewise.
4633 (create_pseudo_type_info): Likewise.
4634 (emit_support_tinfos): Likewise.
4635 * typeck.c (build_object_ref): Adjust call to
4636 build_x_component_ref.
4637 (build_x_component_ref): Remove protect parameter.
b6ce26ac 4638
da15dae6
MM
46392002-06-25 Mark Mitchell <mark@codesourcery.com>
4640
4641 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
4642 * class.c (handle_using_decl): Likewise.
4643 (instantiate_type): Likewise.
4644 * cp-tree.h (BASELINK_FUNCTIONS): New macro.
4645 (xref_basetypes): Change prototype.
4646 (begin_mem_initializers): New function.
4647 (get_overloaded_fn): Likewise.
4648 * decl.c (xref_basetypes): Simplify.
4649 * error.c (dump_expr): Use BASELINK_FUNCTIONS.
4650 * init.c (build_offset_ref): Likewise.
4651 * parse.y (base_init): Use begin_mem_initializers().
4652 (structsp): Adjust call to xref_basetypes.
4653 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
4654 (instantiate_class_template): Adjust call to xref_basetypes.
4655 * semantics.c (begin_mem_initializers): New function.
4656 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
4657 (really_overlaoded_fn): Likewise.
4658 (get_overloaded_fn): New function.'
4659 (get_first_fn): USe BASELINK_FUNCTIONS.
b6ce26ac 4660
5f261ba9
MM
46612002-06-24 Mark Mitchell <mark@codesourcery.com>
4662
4663 * cp-tree.h (SCALAR_TYPE_P): New macro.
4664 (check_for_out_of_scope_variable): New function.
4665 (at_class_scope_p): Likewise.
4666 (finish_fname): Likewise.
4667 * class.c (finish_struct): Use at_function_scope_p.
4668 * decl.c (check_for_out_of_scope_variable): New function, split
4669 out from do_identifier.
4670 (finish_enum): Use at_function_scope_p.
4671 * lex.c (do_identifier): Use check_for_out_of_scope_variable.
4672 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname.
4673 (primary): Use at_function_scope_p.
4674 * search.c (at_class_scope_p): New function.
4675 * semantics.c (finish_fname): Likewise.
4676 (check_multiple_declarators): Use at_function_scope_p.
b6ce26ac 4677
80b1331c
MM
46782002-06-23 Mark Mitchell <mark@codesourcery.com>
4679
4680 * parse.y (parse_scoped_id): New function.
4681 (primary): Use it.
4682 * cp-tree.h (do_scoped_id): Adjust declaration.
4683 * lex.c (do_scoped_id): Remove call to yylex.
4684 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
4685 * typeck2.c (add_exception_specifier): Use tree_cons, rather than
4686 expanding it inline.
b6ce26ac 4687
08c7ae5a
MT
46882002-06-23 Matt Thomas <matt@3am-software.com>
4689
4690 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to
4691 "#if VMS_TARGET".
4692
eb6b51b9
KG
46932002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4694
4695 * mangle.c (integer_type_codes): Const-ify.
4696
aa8dea09
RH
46972002-06-20 Richard Henderson <rth@redhat.com>
4698
4699 PR c++/6747
f989ed67
ZW
4700 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
4701 Call put_var_into_stack.
aa8dea09 4702
62c71f4b
KG
47032002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4704
4705 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
4706 array size calculation.
4707
aa16c0fa
KL
47082002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4709
4710 PR c++/6892
4711 * pt.c (tsubst_expr): Handle FILE_STMT.
4712
342cea95
KL
47132002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4714
4715 PR c++/6723
4716 * pt.c (lookup_template_class): Don't build complete argument of
4717 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
4718 argument.
4719
84d901be
AD
47202002-06-19 Akim Demaille <akim@epita.fr>
4721
4722 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
4723 decl.h's TYPENAME.
4724 * spew.c, lex.c: Adjust.
4725 * parse.y (explicit_instantiation): Add empty action to override
4726 the default $$ = $1 where it introduces a type clash.
4727
83b14b88
JM
47282002-06-14 Jason Merrill <jason@redhat.com>
4729
18ba380b
JM
4730 * semantics.c (begin_for_stmt): Push the 'for' scope before
4731 adding the FOR_STMT.
4732
83b14b88
JM
4733 C++ ABI changes.
4734 * class.c (build_base_field): Set DECL_PACKED.
4735 (layout_class_type): Don't use tail padding of PODs.
4736 * mangle.c (write_unqualified_name): Fix template conversion op
4737 mangling.
4738
fd852454
RH
47392002-06-16 Richard Henderson <rth@redhat.com>
4740
4741 PR opt/6793
4742 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
4743 after template instantiation.
4744
750491fc
RH
47452002-06-16 Richard Henderson <rth@redhat.com>
4746
4747 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
4748
f7d3c5f0
GDR
47492002-06-15 Gabriel Dos Reis <gdr@codesourcery.com>
4750
4751 * cp-tree.h (compiler_error): Remove declaration.
4752 * lex.c (compiler_error): Remove definition.
4753
893a047c
SE
47542002-06-14 Steve Ellcey <sje@cup.hp.com>
4755
4756 * g++spec.c (LIBUNWIND): New.
4757 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
4758
a6f5e048
RH
47592002-06-13 Jessica Han <jessica@cup.hp.com>
4760
4761 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
4762 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
4763 (build_vbase_offset_vtbl_entries): Likewise.
4764 * rtti.c (build_headof): Likewise.
4765 (get_tinfo_decl_dynamic): Likewise.
4766 (create_pseudo_type_info): Likewise.
4767
e4dadd2a
SS
47682002-06-12 Stan Shebs <shebs@apple.com>
4769
4770 * mpw-config.in: Remove file, no longer used.
4771 * mpw-make.sed: Ditto.
4772
09e77dee
ZW
47732002-06-07 Zack Weinberg <zack@codesourcery.com>
4774
4775 * decl2.c: Update call to cpp_handle_option.
4776
4bafaa6f
L
47772002-06-07 H.J. Lu (hjl@gnu.org)
4778
4779 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
4780
3cb8660c
GDR
47812002-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
4782
4783 * error.c (cp_error_at): Fix typo.
4784
47b69537
GDR
47852002-06-04 Gabriel Dos Reis <gdr@codesourcery.com>
4786
4787 * error.c (cp_diagnostic_starter): Adjust call.
4788 (maybe_print_instantiation_context): Change prototype to take a
4789 'diagnostic_info *'.
4790 (print_instantiation_full_context): Likewise.
4791 (print_instantiation_partial_context): Likewise.
4792 (cp_diagnostic_starter): Likewise.
4793 (cp_diagnostic_finalizer): Likewise.
4794 (cp_print_error_function): Likewise.
4795 (cp_printer): Take a secondary parameter as a 'text_info *'.
4796 Remove output_state savings. Adjust calls.
4797
e2500fed
GK
47982002-06-03 Geoffrey Keating <geoffk@redhat.com>
4799
4800 * pt.c (inline_parm_levels): Mark for GC.
4801
4802 * mangle.c (start_mangling): Allocate G.substitutions here...
4803 (init_mangle): ... rather than here.
4804 (finish_mangling): Clear the varray pointer when done with it.
84d901be
AD
4805 * spew.c (yylexstring): Don't use VARRAY_FREE.
4806 * search.c (bfs_walk): Don't use VARRAY_FREE.
e2500fed
GK
4807 * decl2.c (pending_statics): Use gengtype to mark.
4808 (deferred_fns): Likewise.
4809 (ssdf_decls): Likewise.
4810 (init_decl2): Delete.
4811 * decl.c (pop_from_top_level): Don't use VARRAY_FREE.
4812 (cxx_init_decl_processing): Don't call init_decl2.
4813 (cxx_pop_function_context): Don't use VARRAY_FREE.
4814 * cp-tree.h (struct saved_scope): No need for special marking
4815 of varrays.
4816 (struct language_function): Likewise.
4817 (local_classes): Use gengtype to mark.
4818 (init_decl2): Delete prototype.
4819 * class.c (init_class_processing): Don't use
4820 ggc_add_tree_varray_root.
4821 (build_vtbl_initializer): Don't use VARRAY_FREE.
4822
4823 * decl.c (typename_compare): Don't use same_type_p.
4824
4825 * decl.c: Include hashtab.h instead of hash.h.
4826 (typename_hash): Update to use htab_h.
4827 (typename_compare): Likewise.
4828 (typename_htab): Use gengtype to mark.
4829 (build_typename_type): Update to use htab_h.
4830 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
4831
4832 * Make-lang.in (gt-cp-tree.h): New rule.
4833 (cp/tree.o): Depend on gt-cp-tree.h.
4834 * config-lang.in (gtfiles): Add cp/tree.c.
4835 * tree.c: Include gt-cp-tree.h.
4836 (list_hash_table): Use gengtype to mark.
4837 (init_tree): Use gengtype to mark trees.
4838
4839 * Make-lang.in (cp/decl.o): Add debug.h dependency.
4840 * call.c (struct z_candidate): Use gengtype.
4841 (USER_CONV_CAND): Use WRAPPER_ZC.
4842 (convert_class_to_reference): Use build_zc_wrapper.
4843 (build_type_conversion_1): Likewise.
4844 (build_over_call): Use WRAPPER_ZC.
4845 (add_warning): Use build_zc_wrapper.
4846 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
4847 * cp-tree.h (struct lang_identifier): Use gengtype.
4848 (struct template_parm_index_s): Likewise.
4849 (struct ptrmem_cst): Likewise.
4850 (struct tree_binding): Likewise.
4851 (struct tree_overload): Likewise.
4852 (struct tree_srcloc): Likewise.
4853 (struct tree_wrapper): Likewise. Also modify to have a pointer
4854 to struct z_candidate rather than void.
4855 (enum cp_tree_node_structure_enum): New.
4856 (union lang_tree_node): New.
4857 (cxx_mark_tree): Delete prototype.
4858 (cp_tree_node_structure): New prototype.
4859 (build_ptr_wrapper): Delete prototype.
4860 (build_int_wrapper): Delete prototype.
4861 (build_zc_wrapper): New prototype.
4862 * decl.c: Include debug.h
4863 (cxx_mark_tree): Delete.
4864 (cp_tree_node_structure): New.
4865 * tree.c (build_ptr_wrapper): Delete.
4866 (build_int_wrapper): Delete.
4867 (build_zc_wrapper): New.
4868
4869 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
4870 Correct typo. Patch from k_fukui@highway.ne.jp.
4871
4872 * semantics.c (current_stmt_tree): Update for change to
4873 struct language_function.
4874 (finish_mem_initializers): Likewise.
4875 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
4876 * cp-tree.h (struct language_function): Rename from
4877 cp_language_function. Change all uses.
4878 (cp_function_chain): Don't need to cast.
4879
4880 * class.c (duplicate_tag_error): Reset discriminator.
4881 (check_bases_and_members): Update for data structure changes.
4882 * cp-tree.h (struct lang_id2): Use gengtype.
4883 (flagged_type_tree): Likewise.
4884 (SET_LANG_ID): Use GGC on struct lang_id2.
4885 (struct cp_language_function): Use gengtype. Remove field
4886 'x_vcalls_possible_p'.
4887 (current_vcalls_possible_p): Delete.
4888 (struct lang_type_header): New.
4889 (struct lang_type_class): Rename from struct lang_type. Include
4890 struct lang_type_header.
4891 (struct lang_type_ptrmem): New.
4892 (struct lang_type): New.
4893 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros.
4894 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros.
4895 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
4896 (struct lang_decl_flags): Use gengtype. Add discriminators.
4897 (struct lang_decl): Use gengtype. Add and use discriminators.
4898 Update the macros that reference moved fields.
4899 (LANG_DECL_U2_CHECK): New function. Use it when appropriate.
4900 (SET_DECL_THUNK_P): Set discriminator too.
4901 (clear_inline_text_obstack): Delete prototype.
4902 (finish_inline_definitions): Delete prototype.
4903 (mark_pending_inlines): Delete prototype.
4904 (lang_check_failed): New prototype.
4905 * decl.c (struct named_label_use_list): Use gengtype.
4906 (struct named_label_list): Likewise.
4907 (mark_binding_level): Delete.
4908 (mark_named_label_lists): Delete.
4909 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
4910 (cxx_init_decl_processing): Use generated marker routine.
4911 (begin_destructor_body): Delete dead set to
4912 current_vcalls_possible_p.
4913 (mark_lang_function): Delete.
4914 (mark_cp_function_context): Delete.
4915 (lang_mark_tree): Use generated marker routines.
4916 * decl2.c (start_objects): Set discriminator when setting
4917 GLOBAL_INIT_PRIORITY.
4918 * lex.c (retrofit_lang_decl): Set discriminators.
4919 (copy_lang_type): Update for changes to lang_type structure.
4920 (cp_make_lang_type): Set discriminator.
4921 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers.
4922 * search.c: Include ggc.h.
4923 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
4924 (finish_inline_definitions): Delete.
4925 * spew.c (struct token): Use gengtype.
4926 (struct token_chunk): New.
4927 (struct unparsed_text): Use gengtype. Store tokens in chunks.
4928 (struct feed): Use gengtype.
4929 (feed_obstack): Delete.
4930 (feed): Mark as GC root.
4931 (pending_inlines): Mark as GC root.
4932 (pending_inlines_tail): Likewise.
4933 (processing_these_inlines): Likewise.
4934 (token_obstack): Make static.
4935 (first_token): Likewise.
d30d6e7a 4936 (init_spew): Don't initialize deleted things; use gengtype for roots.
e2500fed
GK
4937 (clear_inline_text_obstack): Delete.
4938 (feed_input): Use GC for struct feed. Update for changes to
4939 struct unparsed_text.
4940 (mark_pending_inlines): Delete.
4941 (next_token): Rename from add_token. Change all callers. Update
4942 for changes to struct unparsed_text.
4943 (space_for_token): New.
4944 (remove_last_token): New.
4945 (alloc_unparsed_text): New.
4946 (snarf_block): Take an unparsed_text. Update for changes to struct
4947 unparsed_text.
4948 (snarf_method): Update for changes to struct unparsed_text.
4949 (snarf_defarg): Update for changes to struct unparsed_text.
4950 * tree.c (lang_check_failed): New.
4951
4952 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
4953 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
4954 (cp/spew.o): Add dependency on gt-<filename>.h.
4955 (cp/decl2.o): Add dependency on gt-<filename>.h.
4956 (cp/call.o): Add dependency on gt-<filename>.h.
4957 (cp/pt.o): Add dependency on gt-<filename>.h.
4958 (cp/repo.o): Add dependency on gt-<filename>.h.
4959 (cp/parse.o): Add dependency on gt-<filename>.h.
4960 * call.c: Use gengtype for roots.
4961 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
4962 decl2.c parse.y pt.c repo.c spew.c.
4963 * cp-tree.h: Use gengtype for roots.
4964 (struct saved_scope): Use GGC, gengtype.
4965 (cp_parse_init): Delete prototype.
4966 (init_pt): Delete prototype.
4967 * decl.c: Use gengtype for roots.
4968 (mark_saved_scope): Delete.
4969 (cxx_init_decl_processing): Don't call deleted initilisation
4970 routines.
4971 (signed_size_zero_node): Delete, unused.
4972 * decl.h: Use gengtype for roots.
4973 * decl2.c: Use gengtype for roots.
4974 * lex.h: Use gengtype for roots.
4975 * parse.y: Use gengtype for roots.
4976 (cp_parse_init): Delete.
4977 * pt.c: Use gengtype for roots.
4978 (init_pt): Delete.
4979 * repo.c: Use gengtype for roots.
4980 * spew.c: Use gengtype for roots.
4981
4982 * Make-lang.in: Allow for filename changes. Add gtype-cp.h.
4983 (cp/decl.o): Add dependency on gtype-cp.h.
4984 * decl.c: Remove use of add_deletable_root, use GTY marker instead.
4985 Include gtype-cp.h. Allow for filename changes.
4986
4987 * Make-lang.in (cp/gt-decl.h): Generate using gengtype.
4988 (cp/decl.o): Add cp/gt-decl.h dependency.
4989 * config-lang.in (gtfiles): New.
4990 * tree.h: Rename struct binding_level to struct cp_binding_level.
4991 * decl.c: Rename struct binding_level to struct cp_binding_level.
4992 Include cp/gt-decl.h.
4993 (struct cp_binding_level): Use gengtype.
4994 (make_binding_level): Use GGC on struct cp_binding_level.
4995 (mark_binding_level): Use gt_ggc_m_cp_binding_level.
4996 (cxx_init_decl_processing): Mark free_binding_level as
4997 deletable.
4998
4999 * decl.c (mark_cp_function_context): Update calling sequence.
5000
5001 * decl.c (start_function): Don't free 'struct
5002 cp_language_function'.
5003 (pop_cp_function_context): Likewise.
5004 (save_function_data): Allocate it using GC.
5005 * semantics.c (genrtl_start_function): Don't free 'struct
5006 cp_language_function'.
5007
8b968bd1
MW
50082002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
5009
5010 * lang-specs.h: Use cpp_debug_options.
5011
11ad4784
ZW
50122002-05-28 Zack Weinberg <zack@codesourcery.com>
5013
5014 * mangle.c, tree.c: Include real.h.
5015 * Make-lang.in: Update dependency lists.
5016
81a75f0f
NB
50172002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
5018
5019 * lex.c: Don't include c-lex.h.
5020 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
5021
a97d1398
NB
50222002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
5023
5024 * spew.c (yyungetc, snarf_block): Remove indent_level handling.
5025
6f001fdf
RH
50262002-05-22 Richard Henderson <rth@redhat.com>
5027
5028 * decl.c (obscure_complex_init): Check for VAR_DECL
5029 before using DECL_THREAD_LOCAL.
5030
7a1f3f5f
RH
50312002-05-22 Richard Henderson <rth@redhat.com>
5032
5033 * decl.c (check_tag_decl): Handle RID_THREAD.
5034 (obscure_complex_init): Reject run-time init of tls.
5035 (grokvardecl, grokdeclarator): Handle RID_THREAD.
5036 * lex.c (reswords): Add __thread.
5037 (rid_to_yy): Map RID_THREAD to SCSPEC.
5038
e5f3b786
NB
50392002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
5040
5041 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
5042 * cp-tree.h (cxx_post_options): Kill.
5043 * cp-lex.c (cxx_post_options): Kill.
5044
3d78f2e9
RH
50452002-05-21 Richard Henderson <rth@redhat.com>
5046
5047 * lex.c (rid_to_yy): Add RID_THREAD.
5048
c8a3d889
AO
50492002-05-21 Alexandre Oliva <aoliva@redhat.com>
5050
5051 * init.c (build_vec_init): Test for trivial copy-assignment when
5052 copy-assigning arrays.
5053
500abaa8
AJ
50542002-05-20 Andreas Jaeger <aj@suse.de>
5055
5056 * init.c (build_default_init): Remove unused variable.
5057
ecc42c14
AO
50582002-05-20 Alexandre Oliva <aoliva@redhat.com>
5059
5060 * call.c (any_strictly_viable): New.
5061 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
5062
4e664ef1
KL
50632002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5064
5065 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
5066
07782718
KL
50672002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5068
5069 PR c++/186, DR 259
5070 * pt.c (do_decl_instantiation): Don't complain explicit
5071 instantiation after explicit specialization.
5072 (do_type_instantiation): Likewise.
5073
23b4deba
AO
50742002-05-19 Alexandre Oliva <aoliva@redhat.com>
5075
5076 * cp-tree.h (complete_type_or_diagnostic): Changed prototype,
5077 renamed from...
5078 (complete_type_or_else): ... this. Redefined as macro.
5079 (cxx_incomplete_type_diagnostic): Declare.
5080 (cxx_incomplete_type_error): Define as macro.
5081 * init.c (build_delete): Warn about incomplete types other than
5082 void, and use the built-in operator delete for them.
5083 * typeck.c (complete_type_or_diagnostic): Renamed from
5084 complete_type_or_else. Added warn_only argument, passed to...
5085 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print
5086 warnings or errors depending on new warn_only argument. Renamed
5087 from...
5088 (cxx_incomplete_type_error): ... this. New implementation in
5089 terms of cxx_incomplete_type_diagnostic.
5090
b41d214e
JM
50912002-05-18 Jason Merrill <jason@redhat.com>
5092
98c07d7b 5093 PR c++/6611
b41d214e
JM
5094 * decl2.c (import_export_decl): If we clear
5095 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
5096
e2005c8d
KL
50972002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5098
5099 PR c++/6620
5100 * pt.c (verify_class_unification): Don't check if PARM is template
5101 parameter dependent. Simplify.
5102 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
5103 parameter dependent expression.
5104
ff48be5c
JM
51052002-05-14 Jason Merrill <jason@redhat.com>
5106
5107 * rtti.c (get_tinfo_decl): Don't call comdat_linkage.
5108 Do set DECL_COMDAT.
5109 (synthesize_tinfo_var): Take the public decl.
5110 (create_real_tinfo_var): Likewise. Check DECL_COMDAT.
5111 (emit_tinfo_decl): Adjust. Call import_export_decl.
5112 * decl2.c (import_export_decl): Simplify tinfo decl handling.
5113
94e6e4c4
AO
51142002-05-14 Alexandre Oliva <aoliva@redhat.com>
5115
5116 * cp-tree.h (struct lang_type): Added non_zero_init.
0fe1cd70 5117 (CLASSTYPE_NON_ZERO_INIT_P): New macro.
94e6e4c4
AO
5118 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
5119 * class.c (check_field_decls): Test non_zero_init.
5120 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
5121 zero-to-NULL conversions.
5122 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
5123 type that needs zero-initialization without zeros.
5124 (check_initializer_decl): Compute zero-initializer for types
5125 that require a non-trivial one.
5126 * init.c (build_forced_zero_init): New function.
5127 (build_default_init): Use it.
5128 * tree.c (zero_init_p): New function.
5129 * typeck2.c (force_store_init_value): New function.
5130 (process_init_constructor): Create non-trivial zero-initializers
5131 for array members and class fields.
5132
e5f5feea
NB
51332002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
5134
5135 * lang-specs.h: Remove redundant -lang-c++.
5136
f63ab951
JM
51372002-05-13 Jason Merrill <jason@redhat.com>
5138
5139 * class.c (build_vtbl_ref_1): Use fixed_type_or_null.
5140 (fixed_type_or_null): See through reference vars.
5141 (build_base_path): Vtable contents are constant.
5142 * typeck.c (get_member_function_from_ptrfunc): Likewise.
5143
0d08ea48
JM
51442002-05-12 Jason Merrill <jason@redhat.com>
5145
5146 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
5147 structs are safe.
5148
3df89291
NB
51492002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
5150
5151 * cp-tree.h (flag_ansi): Remove.
5152 * decl2.c (flag_ansi): Remove.
5153 (cxx_decode_option): Set flag_iso and flag_undef.
5154
c87978aa
JM
51552002-05-09 Jason Merrill <jason@redhat.com>
5156
5157 * typeck.c (get_member_function_from_ptrfunc): Reorganize.
5158 Use subtraction rather than a bitmask to get the index.
5159 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
5160
5161 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
5162
a5a49440
NB
51632002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
5164
5165 * Make-lang.in (decl2.o): Update.
5166 * cp-tree.h (warn_multichar): Remove.
5167 * decl2.c: Include c-common.h.
5168 (warn_multichar): Remove.
5169
609688f3
JM
51702002-05-03 Jason Merrill <jason@redhat.com>
5171
0abc082a
JM
5172 * tree.c (build_cplus_array_type): Only const and volatile get
5173 special handling.
5174
609688f3
JM
5175 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
5176
8b16faa2
MM
51772002-04-30 Mark Mitchell <mark@codesourcery.com>
5178
394ab947 5179 ABI change, returning simple classes from functions.
8b16faa2
MM
5180 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
5181 TYPE_HAS_TRIVIAL_INIT_REF is false or
5182 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
5183
ac905924
JM
51842002-04-30 Jason Merrill <jason@redhat.com>
5185
2cb008af 5186 PR debug/6436
ac905924
JM
5187 * decl.c (grokdeclarator): Don't override TYPE_NAME of an
5188 anonymous class with a typedef if there are attributes.
5189
e6e81f1c 51902002-04-29 Paul Eggert <eggert@twinsun.com>
b819d9e0 5191
e6e81f1c 5192 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
b819d9e0 5193
3a73bffb
JJ
51942002-04-29 Jakub Jelinek <jakub@redhat.com>
5195
5196 PR c++/6477
5197 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
5198 non-NULL first.
5199
33dd07ee
MM
52002002-04-29 Mark Mitchell <mark@codesourcery.com>
5201
5202 PR c++/6492
5203 * pt.c (tsubst_friend_class): If the friend has an explicit scope,
5204 enter that scope before name lookup.
5205
5206 PR c++/6486
5207 * method.c (do_build_copy_constructor): Avoid building
5208 cv-qualified reference types.
500abaa8 5209
4bd7c270
NS
52102002-04-29 Nathan Sidwell <nathan@codesourcery.com>
5211
5212 PR c++/5719
500abaa8 5213 * decl.c (grok_op_properties): Assignment ops don't have to return
4bd7c270
NS
5214 by value. operator% should.
5215
45806a3f
FS
52162002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5217
5218 PR c/6343
5219 * decl.c (duplicate_decls): Call merge_weak.
5220
94a50397
RH
52212002-04-26 Richard Henderson <rth@redhat.com>
5222
5223 * parse.y (malloced_yyss, malloced_yyvs): New.
5224 (yyoverflow): Re-add. Set them.
5225 (free_parser_stacks): New.
5226
7d793e9b
MM
52272002-04-26 Mark Mitchell <mark@codesourcery.com>
5228
5229 PR c++/6497
5230 * method.c (do_build_assign_ref): Pass a derivation to
5231 build_method_call when calling base class assignment operators.
5232
bde3c0c0
RH
52332002-04-26 Richard Henderson <rth@redhat.com>
5234
5235 * parse.y (yyoverflow): Revert.
5236
b84a3874
RH
52372002-04-26 Richard Henderson <rth@redhat.com>
5238
5239 PR c/3581
5240 * parse.y (string): Remove. Update all uses to use STRING
5241 instead, and not call combine_strings.
5242 * rtti.c (tinfo_name): Use fix_string_type.
5243 * semantics.c (finish_asm_stmt): Don't call combine_strings.
5244 * spew.c (yylexstring): New.
5245 (read_token): Use it.
5246
6052bef0
RH
52472002-04-25 Richard Henderson <rth@redhat.com>
5248
5249 PR c/2161
5250 * parse.y (yyoverflow): New.
5251
8d1f0f67
JM
52522002-04-25 Jason Merrill <jason@redhat.com>
5253
5254 PR c++/5607
5255 * search.c (check_final_overrider): No longer static.
5256 * class.c (update_vtable_entry_for_fn): Call it.
5257 * cp-tree.h: Adjust.
5258
ff45c01e
NB
52592002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
5260
5261 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
5262 * cp-tree.h (cxx_set_yydebug): Die.
5263 * lex.c (YYDEBUG): Get from c-lex.h.
5264 (cxx_set_yydebug): Remove.
5265 * parse.y: Include c-lex.h.
5266 (YYDEBUG): Get from c-lex.h.
5267
a62d375f
MM
52682002-04-24 Mark Mitchell <mark@codesourcery.com>
5269
5270 PR c++/6438.
5271 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
5272 void.
5273
349ae713
NB
52742002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
5275
5276 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
5277 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
5278 Redefine.
5279 * cp-tree.h (cp_attribute_table): Rename.
5280 * decl.c (lang_attribute_table): Remove declaration.
5281 (cxx_init_decl_processing): Don't set it.
5282 * tree.c (cp_attribute_table): Rename.
5283
b602511f
JM
52842002-04-24 Jason Merrill <jason@redhat.com>
5285
985723ce
JM
5286 PR c++/6331
5287 * method.c (do_build_copy_constructor): Use cp_build_qualified_type.
5288 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
a49cfba8
JM
5289 The pedwarn for array assignment is now unconditional.
5290 * tree.c (build_cplus_array_type_1): Still process simple array types
5291 normally in templates.
985723ce 5292
b602511f
JM
5293 PR c++/6395
5294 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
5295 stuff for comdats.
5296
29cece2e
JJ
52972002-04-23 Jakub Jelinek <jakub@redhat.com>
5298
5299 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class
5300 node with attributes.
5301
515387dc
DB
53022002-2-23 David O'Brien <obrien@FreeBSD.org>
5303
5304 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
5305 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
5306
77adef84
MM
53072002-04-23 Mark Mitchell <mark@codesourcery.com>
5308
5309 PR c++/6256:
5310 * pt.c (tsubst_friend_class): Handle templates with explicit
5311 nested names.
5312
5313 PR c++/6331:
5314 * typeck.c (merge_types): Remember the cv-qualification of pointer
5315 types when merging them.
5316
b03e38e1
NB
53172002-04-20 Neil Booth <neil@daikokuya.demon.co.uk>
5318
5319 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
5320 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
5321 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
5322 cxx_mark_function_context): New.
5323 * decl.c (push_cp_function_context, pop_cp_function_context,
5324 mark_cp_function_context): Rename for consistency.
5325 (cxx_init_decl_processing): Don't set old hooks.
5326
ab393bf1
NB
53272002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
5328
5329 * call.c (convert_type_from_ellipsis): Rename, update.
5330 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
5331 * cp-tree.h (convert_type_from_ellipsis): Rename.
5332 * decl.c (cxx_init_decl_processing): Don't set hook.
5333
7a228918
NB
53342002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
5335
5336 * call.c (build_new_method_call): Update.
5337 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5338 * cp-tree.h (cxx_incomplete_type_error): New.
5339 * decl.c (grokdeclarator, grokparms): Update.
5340 * decl2.c (check_classfn): Update.
5341 * pt.c (tsubst): Update.
5342 * typeck.c (complete_type_or_else, expr_sizeof,
5343 decay_conversion): Update.
5344 * typeck2.c (incomplete_type_error): Rename.
5345 (add_exception_specifier): Update.
5346
8152c320
JM
53472002-04-18 Jason Merrill <jason@redhat.com>
5348
5349 PR c++/5658
5350 * search.c (setup_class_bindings): A class template qualifies as a
5351 type binding.
5352
32121b96
JJ
53532002-04-17 Jakub Jelinek <jakub@redhat.com>
5354
5355 PR c++/6316
5356 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
5357 before expanding.
5358
b2123dc0
MM
53592002-04-16 Mark Mitchell <mark@codesourcery.com>
5360
5361 * init.c (begin_init_stmts): Remove commented out code.
5362 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
5363 * semantics.c (begin_gobal_stmt_expr): Adjust call to
5364 expand_start_stmt_expr.
500abaa8 5365
0f268005
MM
53662002-04-15 Mark Mitchell <mark@codesourcery.com>
5367
5368 * decl.c (register_dtor_fn): Pass the address of dso_handle, not
5369 dso_handle itself, to __cxa_atexit.
5370
bd6bec6b
GDR
53712002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5372
5373 * error.c (cxx_print_error_function): Adjust call to macros.
5374
0f490a2b
JJ
53752002-04-14 Jakub Jelinek <jakub@redhat.com>
5376
5377 * class.c (layout_virtual_bases): Do all dsize computation on trees.
5378
85b7def6
JM
53792002-04-14 Jason Merrill <jason@redhat.com>
5380
5381 * typeck.c (get_member_function_from_ptrfunc): Don't do
5382 gratuitious division and multiplication on
5383 ptrmemfunc_vbit_in_delta targets.
5384
0481bc21
MM
53852002-04-12 Mark Mitchell <mark@codesourcery.com>
5386
5387 PR c++/5373.
5388 * semantics.c (finish_expr_stmt): Remember the type of the
5389 expression before any conversions are performed.
5390
9928a3d5
MM
53912002-04-12 Mark Mitchell <mark@codesourcery.com>
5392
5393 PR c++/5189.
5394 * call.c (add_template_candidate_real): Do not treat member
5395 templates as copy constructors.
5396
c740732f
MM
53972002-04-12 Mark Mitchell <mark@codesourcery.com>
5398
5399 * decl.c (duplicate_decls): Do not copy the RTL for a variable
5400 declaration if the old variable had an incomplete type and the new
5401 variable does not.
5402 (complete_vars): Do not call layout_decl for completed variables.
5403
4782bd5b
RS
54042002-04-12 Richard Sandiford <rsandifo@redhat.com>
5405
5406 * decl.c (duplicate_decls): Don't try to unify an implicit typedef
5407 with an explicit one.
5408 (follow_tag_typedef): New.
5409 (lookup_tag): Use it to extract the tag of an explicit typedef.
5410 (xref_tag): Likewise.
5411
2f4d058f
AH
54122002-04-11 Andrew Haley <aph@redhat.com>
5413
5414 * typeck.c (type_after_usual_arithmetic_conversions):
5415 If two types have the same variant, return immediately.
500abaa8 5416 When two floating-point operands are the same precision:
2f4d058f
AH
5417 convert to float if one of the operands is float;
5418 if neither operand is one of the standard types, return the type
5419 of the first operand.
500abaa8 5420
ba3307c0
NS
54212002-04-10 Nathan Sidwell <nathan@codesourcery.com>
5422
5423 PR c++/5507
5424 * decl.c (make_typename_type): Remove implicit typenameness.
5425
cd6af0c1
JM
54262002-04-09 Jason Merrill <jason@redhat.com>
5427
edf5cd1d
JM
5428 PR optimization/6189
5429 * semantics.c (genrtl_start_function): Don't free
5430 DECL_SAVED_FUNCTION_DATA for inline functions.
5431
cd6af0c1
JM
5432 * init.c (build_member_call): For now, don't convert to
5433 intermediate base if it would cause an error.
5434
224e6091
PC
54352002-04-08 Paolo Carlini <pcarlini@unitus.it>
5436
5437 * parse.y (namespace_qualifier, maybe_identifier,
5438 begin_explicit_instantiation, end_explicit_instantiation,
5439 apparent_template_type, .finish_template_type,
5440 do_id, maybe_init, defarg_again, component_decl_1):
5441 Add ending ';', in accordance with POSIX.
5442
0154eaa8
MM
54432002-04-06 Mark Mitchell <mark@codesourcery.com>
5444
5445 PR c++/5571
5446 * class.c (layout_class_type): Remember incomplete static
5447 variables.
5448 (finish_struct_1): Call complete_vars, not
5449 hack_incomplete_structures.
5450 * cp-tree.h (hack_incomplete_structures): Rename to ...
5451 (complete_vars): ... this.
5452 (struct saved_scope): Remove incomplete.
5453 (namespace_scope_incomplete): Remove.
5454 * decl.c (struct binding_level): Remove incomplete.
5455 (incomplete_vars): New variable.
5456 (mark_binding_level): Don't mark incomplete.
5457 (print_binding_level): Don't print it.
5458 (mark_saved_scope): Don't mark incomplete.
5459 (pushdecl): Use maybe_register_incopmlete_var.
5460 (cxx_init_decl_processing): Register incomplete_vars for GC.
5461 (start_decl_1): Clarify error message.
5462 (hack_incomplete_vars): Remove.
5463 (maybe_register_incomplete_var): New function.
5464 (complete_vars): Likewise.
5465
f62ea157
JM
54662002-04-06 Jason Merrill <jason@redhat.com>
5467
03da5286
JM
5468 PR c++/4934
5469 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
5470 set before checking it.
5471
a29e1034
JM
5472 PR c++/525
5473 * init.c (build_member_call): Use build_scoped_ref.
5474 (resolve_offset_ref): Likewise.
5475 * call.c (build_scoped_method_call): Likewise.
500abaa8 5476 * tree.c (maybe_dummy_object): Kludge around current_class_type being
a29e1034
JM
5477 wrong.
5478 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
5479 * cp-tree.h: Adjust.
500abaa8 5480
a29e1034
JM
5481 * init.c (push_base_cleanups): Just use build_scoped_method_call.
5482
f62ea157 5483 PR c++/6179
500abaa8 5484 * method.c (implicitly_declare_fn): Pass unqualified type to
f62ea157
JM
5485 synthesize_exception_spec.
5486
78ef5b89
NB
54872002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
5488
5489 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
5490 * cvt.c: Update comment.
5491 * init.c (expand_cleanup_for_base): Update.
5492 * semantics.c (finish_parenthesized_expr): Update.
5493 * typeck.c (cp_truthvalue_conversion): Update.
5494
dffa4176
JM
54952002-04-04 Jason Merrill <jason@redhat.com>
5496
659e5a7a
JM
5497 * semantics.c (finish_eh_cleanup): New fn.
5498 * cp-tree.h: Add prototype.
500abaa8 5499 * init.c (perform_member_init, expand_cleanup_for_base): Use
659e5a7a
JM
5500 finish_eh_cleanup.
5501 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
5502 * cp-tree.h: Remove references.
5503 * decl.c (begin_constructor_body, end_constructor_body): Likewise.
5504 * dump.c (cp_dump_tree): Likewise.
5505 * pt.c (tsubst_expr): Likewise.
5506 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
5507 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
5508 * tree.c (cp_statement_code_p): Likewise.
5509
5510 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
5511
5512 PR c++/5636
5513 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
5514 cleanup for nrv.
5515
dffa4176
JM
5516 PR c++/5104
5517 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
5518 specifiers.
5519 [METHOD_TYPE]: Use same code as FUNCTION_TYPE.
5520
ef4f94ac
RH
55212002-04-03 Richard Henderson <rth@redhat.com>
5522
5523 * cp-lang.c (cxx_warn_unused_global_decl): New.
5524 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
5525
599bba86
NB
55262002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
5527
5528 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
5529 * tree.c (init_tree): Don't set hook.
5530
cba2004a
RS
55312002-04-03 Roger Sayle <roger@eyesopen.com>
5532
5533 PR c++/5998:
5534 * decl.c (duplicate_decls): Don't mess with assembler names when
5535 redeclaring builtin functions as static.
5536
dffd7eb6
NB
55372002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
5538
5539 * call.c (build_addr_func): Update.
5540 * class.c (resolve_address_of_overloaded_function): Update.
5541 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
5542 * cp-tree.h (cxx_mark_addressable): New.
5543 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
5544 * decl2.c (build_cleanup): Update.
5545 * except.c (build_throw): Update.
5546 * init.c (resolve_offset_ref): Update.
5547 * pt.c (convert_nontype_argument): Update.
5548 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
5549 * typeck.c (decay_conversion, build_array_ref, build_unary_op,
5550 unary_complex_lvalue): Update.
5551 (mark_addressable): Rename.
5552
04a9d080
RS
55532002-04-01 Roger Sayle <roger@eyesopen.com>
5554
5555 PR c++/5998:
5556 * decl.c (duplicate_decls): Overwrite the RTL when (and only
5557 when) overwriting a built-in function. Don't use COPY_DECL_RTL,
5558 but follow the SET_DECL_RTL idiom used elsewhere in the function.
5559
ceef8ce4
NB
55602002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
5561
5562 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
5563 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
5564 * decl.c (grokdeclarator): Update.
5565 * mangle.c (write_integer_cst): Update.
5566 * typeck.c (build_binary_op): Update.
5567
48a7a235
NB
55682002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
5569
5570 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
5571 * lex.c (cxx_init): Don't set hook.
5572
7cb32822
NB
55732002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
5574
5575 * Make-lang.in (error.o): Update.
5576 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
5577 * cp-tree.h (struct diagnostic_context): Predeclare.
5578 (cxx_print_error_function): New.
5579 * error.c: Include langhooks-def.h.
5580 (lang_print_error_function): Rename. Update.
5581 (init_error): Don't set hook.
5582
b0c48229
NB
55832002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
5584
5585 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
5586 Redefine.
5587 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
5588 * decl.c (finish_enum): Similarly.
5589 * error.c (dump_type): Similarly.
5590 * lex.c (cxx_init): Similarly.
5591 * mangle.c (write_builtin_type): Similarly.
5592 * typeck.c (comptypes): Similarly.
5593
d52e4867
RS
55942002-03-28 Roger Sayle <roger@eyesopen.com>
5595
5596 PR c++/5998:
5597 * decl.c (cxx_init_decl_processing): Re-enable built-in functions
5598 in the g++ front-end.
5599 (duplicate_decl): Allow redefinition of anticipated built-ins.
5600 Fix inlining problem by over-writing the old DECL_RTL.
5601 (lookup_namespace_name): Fail to find an identifier in the
5602 specified namespace if its still anticipated.
5603 (builtin_function_1): New function split out from builtin_function
5604 to create a builtin in the current namespace with given context.
5605 (builtin_function): Call builtin_function_1 to define the
5606 appropriate builtins in both the std and global namespaces.
5607 (select_decl): Don't test for anticipated decls here.
5608 (unqualified_namespace_lookup): Instead ignore them whilst
5609 searching through scopes and namespaces.
5610 * decl2.c (do_nonmember_using_decl): If a using declaration
5611 specifies an anticipated built-in function, mark it as no longer
5612 anticipated in that scope.
5613 (ambiguous_decl): Avoid resolving to an anticipated decl.
5614 * lex.c (do_scoped_id): Fail to find an identifier in the global
5615 namespace if its still anticipated.
5616
f1e639b1
NB
56172002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
5618
5619 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
5620 * cp-tree.h (cp_make_lang_type): Rename.
5621 * lex.c (cp_make_lang_type): Rename.
5622 (make_aggr_type): Update.
5623 * tree.c (init_tree): Don't set make_lang_type_fn.
5624
c7f4981a
JJ
56252002-03-29 Jakub Jelinek <jakub@redhat.com>
5626
5627 PR c++/6073
5628 * class.c (finish_struct_1): Update static field's DECL_MODE even
5629 if its type is a variant of t.
5630
7ffb4fd2
NB
56312002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
5632
5633 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
5634 * cp-tree.h (cxx_insert_default_attributes): New.
5635 * decl.c (insert_default_attributes): Rename.
5636
cd4e8331
MM
56372002-03-27 Mark Mitchell <mark@codesourcery.com>
5638
5639 PR c++/4884
5640 * call.c (build_op_delete_call): Allow for the fact the placement
5641 may be a COMPOUND_EXPR.
500abaa8 5642
c9d892a8
NB
56432002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
5644
5645 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
5646 * cp-tree.h (init_cplus_expand): Remove.
5647 (cxx_expand_expr): New.
5648 * expr.c (cplus_expand_expr): Rename cxx_expand_expr,
5649 fix prototype.
5650 (init_cplus_expand): Remove.
5651 * lex.c (cxx_init): Don't call init_cplus_expand.
5652
46ff5047
MM
56532002-03-26 Mark Mitchell <mark@codesourcery.com>
5654
5655 PR c++/4884.
5656 * init.c (build_new_1): Allow for the fact the result of
5657 build_function_call may be a COMPOUND_EXPR.
5658
6d4c57a0
NS
56592002-03-26 Nathan Sidwell <nathan@codesourcery.com>
5660
5661 PR c++/5682
5662 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
5663 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
5664 (dfs_skip_nonprimary_vbases_markedp): Remove.
5665 * search.c (get_shared_vbase_if_not_primary): Remove.
5666 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
5667 (dfs_skip_nonprimary_vbases_markedp): Remove.
5668 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
5669 (dfs_marked_real_bases_queue_p): Likewise.
5670
4f0ade92
NB
56712002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
5672
5673 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
5674 * cp-tree.h (cxx_mark_tree): New.
5675 * decl.c (lang_mark_tree): Rename cxx_mark_tree.
5676
c88770e9
NB
56772002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
5678
5679 * cp-tree.h (cxx_maybe_build_cleanup): New.
5680 * decl.c (destroy_local_var, hack_incomplete_structures): Update.
5681 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
5682 * tree.c (build_target_expr): Update.
7b3e5198 5683 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
c88770e9 5684
aaf93206
NB
56852002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
5686
5687 * decl2.c (cxx_decode_option): Handle -E.
5688 * lang-specs.h (default_compilers): Preprocess with cc1plus.
5689 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
5690
e756a7da
JJ
56912002-03-23 Jakub Jelinek <jakub@redhat.com>
5692
5693 PR c++/6037
5694 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
5695
ea9264e9
GDR
56962002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5697
5698 * error.c (dump_type): Be careful about implicit typenames.
5699
acb044ee
GDR
57002002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5701
5702 PR C++/3656
5703 * semantics.c (finish_base_specifier): Handle erronous base
500abaa8 5704 classes.
acb044ee 5705
b216cd4a
ZW
57062002-03-22 Zack Weinberg <zack@codesourcery.com>
5707
5708 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
5709 REAL_IS_NOT_DOUBLE.
5710
9181f8db
JK
57112002-03-22 Jeff Knaggs <jknaggs@redhat.com>
5712
cd6af0c1
JM
5713 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to
5714 an index into the vtable_entry array regardless of
9181f8db
JK
5715 TARGET_PTRMEMFUNC_VBIT_LOCATION.
5716
e019cf95
AH
57172002-03-21 Aldy Hernandez <aldyh@redhat.com>
5718
84d901be 5719 * tree.c (cp_cannot_inline_tree_fn): Same.
e019cf95 5720
43577e6b
NB
57212002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
5722
5723 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
5724 insert_block, getdecls, global_bindings_p): New.
5725
8c152bad
NS
57262002-03-20 Nathan Sidwell <nathan@codesourcery.com>
5727
5728 PR c++/4361
5729 * mangle.c (struct globals) Add internal_mangling_p member.
5730 (write_template_param): Do internal mangling, if needed.
5731 (mangle_conv_op_name_for_type): Request internal mangling.
5732
e3fe84e5
JM
57332002-03-20 Jason Merrill <jason@redhat.com>
5734
5735 PR c++/2136
5736 * init.c (build_delete): Check access for a member op delete here.
5737 * decl2.c (delete_sanity): Not here.
5738
ea122333
JM
57392002-03-19 Jason Merrill <jason@redhat.com>
5740
5741 PR c++/5118
5742 * class.c (get_vfield_name): Use the constructor_name.
5743
7afff7cf
NB
57442002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
5745
5746 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
5747 * cp-tree.h (lang_printable_name): Rename.
5748 * error.c (lang_decl_name): Use new hook.
5749 * lex.c (cxx_init): Remove old hook.
5750 * pt.c (tsubst_decl): Use new hook.
5751 * tree.c (lang_printable_name): Rename.
5752
ff77ac85
EB
57532002-03-18 Eric Botcazou <ebotcazou@multimania.com>
5754
5755 PR c++/3882
5756 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
5757 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
5758 only after recording the declaration.
5759
ffd696af
JM
57602002-03-18 Jason Merrill <jason@redhat.com>
5761
097955f2
JM
5762 PR c++/2039
5763 * init.c (resolve_offset_ref): Hand off to build_component_ref.
5764
b663bcf3
JM
5765 PR c++/4222, c++/5995
5766 * call.c (build_over_call): Fix empty class logic.
5767
0f4237c2
JM
5768 PR c++/3870
5769 * cp-tree.h (struct saved_scope): Add last_parms field.
5770 * decl.c (maybe_push_to_top_level): Save last_function_parms.
5771 (pop_from_top_level): Restore it.
5772
001ad76c
JM
5773 PR c++/4377
5774 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip
5775 NON_LVALUE_EXPRs.
5776
5777 PR c++/4003
ed2fa432
JM
5778 * pt.c (tsubst_friend_function): Use decl_namespace_context.
5779
ffd696af
JM
5780 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
5781 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
5782 type with a nontrivial destructor.
5783
f2606a97
JM
57842002-03-17 Jason Merrill <jason@redhat.com>
5785
5786 PR c++/4460
5787 * class.c (build_base_path): Virtual base layout is fixed in
5788 in-charge [cd]tors.
5789
52dabb6c
NB
57902002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
5791
5792 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
5793 * parse.y (yyparse): Remove macro.
5794
beb9c8a2
JM
57952002-03-17 Jason Merrill <jason@redhat.com>
5796
5797 PR c++/5757
5798 * init.c (build_new_1): Pass the right pointer to op delete.
5799
5dd236e2
NS
58002002-03-16 Nathan Sidwell <nathan@codesourcery.com>
5801
5802 PR c++/4361
5803 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
5804 conversion operators go.
5805 (struct lang_decl_flags): Add template_conv_p and unused
5806 bitfields.
5807 (DECL_TEMPLATE_CONV_FN_P): New macro.
5808 * call.c (build_user_type_conversion_1): Don't check second type
5809 conversion of overload set first.
5810 * class.c (add_method): Make sure templated conversion operators
5811 all end up on slot 2.
5812 * lex.c (do_identifier): A conversion operator token might be
5813 satisfied by a templated conversion operator.
5dd236e2
NS
5814 * pt.c (check_explicit_specialization): Use
5815 CLASSTYPE_FIRST_CONVERSION_SLOT.
5816 (template_parm_this_level_p): New function.
5817 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
8c152bad 5818 * search.c (lookup_fnfields_1): Template conversions will be on
5dd236e2
NS
5819 the first slot.
5820 * typeck.c (build_component_ref): Preserve the type of an
5821 conversion operator name on the overload type.
5822 (build_x_function_call): Retrieve the conversion operator name.
5823
0ba20759
RH
58242002-03-15 Richard Henderson <rth@redhat.com>
5825
5826 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
5827
6e4ae815
MM
58282002-03-15 Mark Mitchell <mark@codesourcery.com>
5829
5830 * cp-tree.h (CLEANUP_DECL): Remove.
5831 (CLEANUP_EXPR): Likewise.
5832 * decl.c (destroy_local_var): Simplify.
5833 (maybe_build_cleanup): Tidy.
5834 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
5835 * semantics.c (cp_expand_stmt): Likewise.
5836 * cp/tree.c (cp_statement_code_p): Likewise.
5837
5cc90635
JM
58382002-03-15 Jason Merrill <jason@redhat.com>
5839
6da794e8
JM
5840 PR c++/5857
5841 * decl.c (duplicate_decls): Use merge_types instead of common_type.
5842 * typeck.c (common_type): Just hand off to
5843 type_after_usual_arithmetic_conversions and
5844 composite_pointer_type.
5845 (merge_types): New fn.
5846 (commonparms): Use it instead of common_type.
5847 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
5848 (composite_pointer_type): Also handle attributes.
5849 * cp-tree.h: Declare merge_types.
5850
5cc90635
JM
5851 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
5852 variables.
5853 * decl2.c (maybe_make_one_only): Also mark the decl as needed.
5854
ecb0eece
RH
58552002-03-14 Richard Henderson <rth@redhat.com>
5856
5857 * decl.c: Include c-pragma.h.
5858 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
5859 * Make-lang.in: Update dependencies.
5860
d3f129b3
JJ
58612002-03-14 Jakub Jelinek <jakub@redhat.com>
5862
f6562b37 5863 PR c++/5908
d3f129b3
JJ
5864 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
5865 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
5866
049e6879
RS
58672002-03-12 Richard Sandiford <rsandifo@redhat.com>
5868
5869 * mangle.c (write_builtin_type): Handle 128-bit integers even if
5870 they are not a standard integer type.
5871
872c9284
RS
58722002-03-12 Richard Sandiford <rsandifo@redhat.com>
5873
5874 * cp-tree.h (init_init_processing): Remove declaration.
5875 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
5876 * decl.c (cxx_init_decl_processing): Don't call init_init_processing.
5877
2f9834e8
KG
58782002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5879
5880 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
5881 Define.
5882 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
5883 tree_code_length.
5884 * lex.c (cplus_tree_code_type, cplus_tree_code_length,
5885 cplus_tree_code_name): Delete.
5886 (cxx_init): Don't call add_c_tree_codes, instead set
5887 lang_unsafe_for_reeval. Don't try to copy into the various
5888 tree_code arrays.
5889
df867456
NS
58902002-03-12 Nathan Sidwell <nathan@codesourcery.com>
5891
5892 PR c++/5659
5893 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
5894 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
5895 definitions.
5896
ab04e34b
NS
58972002-03-11 Nathan Sidwell <nathan@codesourcery.com>
5898
5899 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>,
5900 DR209 is now not a defect.
5901 * cp-tree.h (skip_type_access_control): Remove.
5902 * decl.c (grokdeclarator): Do type access control for friend
5903 declarations.
5904 * semantics.c (decl_type_access_control): Don't reset
5905 current_type_lookups.
5906 (save_type_access_control): Always save the lookups.
5907 (skip_type_access_control): Remove.
5908 (finish_class_definition): Don't change type_lookups.
5909
999cc24c
NS
59102002-03-11 Nathan Sidwell <nathan@codesourcery.com>
5911
5912 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>,
5913 It is incorrect.
5914 * typeck.c (build_static_cast): Compare non-qualified types
5915 with pointer to member conversions.
5916
61eece67
DN
59172002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
5918 Daniel Berlin <dan@dberlin.org>
5919
5920 * cp-lang.c (ok_to_generate_alias_set_for_type): New function.
5921 (cxx_get_alias_set): Use it.
5922
644d28d4
KG
59232002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5924
5925 * cp-tree.h (stabilize_expr): Prototype.
5926
7e326356
CR
59272002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
5928
5929 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
5930 conditional return void.
5931
24965e7a
NB
59322002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
5933
5934 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
5935 * cp-tree.h (cxx_unsave): New.
5936 * tree.c (cp_unsave): Rename cxx_unsave, update prototype.
5937 (init_tree): Update.
5938
ca7558fc
KG
59392002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5940
5941 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
5942 explicit sizeof/sizeof.
5943 * decl2.c (cxx_decode_option): Likewise.
5944 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
5945
fd87b7a7
NS
59462002-03-02 Nathan Sidwell <nathan@codesourcery.com>
5947
5948 PR c++/775
5949 * decl.c (lookup_tag): Only reject enum/class mismatch, not
5950 class/union mismatch.
5951 * parse.y (check_class_key): New function.
5952 (structsp): Call it.
5953
bfba94bd
MM
59542002-03-01 Michael Matz <matz@suse.de>
5955
5956 * typeck.c (cp_pointer_int_sum): Complete inner type which is
5957 used later by size_in_bytes().
5958
fdc9bf29
PE
59592002-03-01 Phil Edwards <pme@gcc.gnu.org>
5960
5961 * cp-tree.h: Require __GNUC__ to be #defined.
5962 (build_init): Add missing prototype.
5963
6f30f1f1
JM
59642002-03-01 Jason Merrill <jason@redhat.com>
5965
5966 * except.c: Don't include decl.h or obstack.h. Do include
5967 tree-inline.h.
5968 (build_throw): Destroy temporaries from the thrown
500abaa8 5969 expression before calling __cxa_throw. Construct a thrown
6f30f1f1
JM
5970 temporary directly into the exception object.
5971 (stabilize_throw_expr): New function.
5972 (wrap_cleanups_r): New function.
5973 * tree.c (stabilize_expr): New function.
5974 * init.c (build_init): New function.
5975 * Make-lang.in (cp/except.o): Adjust .h deps.
5976
46cfb101
JM
59772002-02-28 Jason Merrill <jason@redhat.com>
5978
07f521fc
JM
5979 * search.c (lookup_base_r): Don't clear is_non_public just because
5980 we found a friendly scope.
5981
46cfb101
JM
5982 * decl.c (finish_function): Only warn about missing return
5983 statement with -Wreturn-type.
5984
63e1b1c4
NB
59852002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
5986
5987 * class.c (build_clone): Update.
5988 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
5989 * cp-tree.h (cxx_dup_lang_specific_decl): New.
5990 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
5991 (copy_decl): Update.
5992 * method.c (make_thunk): Update.
5993
f458d1d5
ZW
59942002-02-27 Zack Weinberg <zack@codesourcery.com>
5995
5996 * decl2.c: Delete traditional-mode-related code copied from
5997 the C front end but not used, or used only to permit the
5998 compiler to link.
5999
500abaa8 60002002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org>
3387d36e
CR
6001
6002 PR c++/4093
6003 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
6004 to void.
6005
25c8b645
JJ
60062002-02-22 Jakub Jelinek <jakub@redhat.com>
6007
6008 PR other/5746
6009 * semantics.c (finish_switch_cond): Don't call get_unwidened
6010 if error_mark_node.
6011
4f2b0fb2
NS
60122002-02-22 Nathan Sidwell <nathan@codesourcery.com>
6013
6014 PR c++/2645, DR 295
6015 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
6016 tf_keep_type_decl.
6017 (make_typename_type): Use tsubst_flags_t.
6018 * decl.c (make_typename_type): Adjust. Return non-artificial
6019 TYPE_DECLs, if required.
6020 (grokdeclarator): Simplify CVR qualification handling. Allow bad
6021 qualifiers on typedef types.
6022 * decl2.c (handle_class_head): Adjust make_typename_type call.
6023 * parse.y (nested_name_specifier): Likewise.
6024 (typename_sub0): Likewise.
6025 (typename_sub1): Likewise.
6026 * pt.c (convert_template_argument): Adjust make_typename_type
6027 return value.
6028 (tsubst): Adjust cp_build_qualified_type_real calls.
1a55127d 6029 (check_cv_quals_for_unify): Cope with allowing bad qualifications
4f2b0fb2
NS
6030 on template type parms.
6031 (instantiate_decl): Recheck substitutions to give warnings on bad
6032 qualifications.
6033 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
6034
8fc2ba41
AH
60352002-02-21 Aldy Hernandez <aldyh@redhat.com>
6036
84d901be 6037 * cp/decl.c (duplicate_decls): Merge always_inline attribute.
8fc2ba41 6038
84d901be
AD
6039 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
6040 unless DECL_ALWAYS_INLINE.
8fc2ba41 6041
7552da58
JJ
60422002-02-20 Jakub Jelinek <jakub@redhat.com>
6043
6044 * typeck.c (cp_pointer_int_sum): Renamed from
6045 pointer_int_sum, call pointer_int_sum.
6046
00fae85d
JJ
60472002-02-20 Jakub Jelinek <jakub@redhat.com>
6048
6049 * decl.c (duplicate_decls): Return 0 if issued error about
6050 redeclaration.
6051
6ea868b7
JM
60522002-02-19 Jason Merrill <jason@redhat.com>
6053
500abaa8 6054 ABI change: Mangle `void (A::*)() const' as
6ea868b7
JM
6055 M1AKFvvE, not MK1AFvvE.
6056 * mangle.c (write_function_type): Write cv-quals for member
6057 function type here.
6058 (write_pointer_to_member_type): Not here.
6059
c02f5e29
JM
60602002-02-18 Jason Merrill <jason@redhat.com>
6061
6062 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
6063 (do_decl_instantiation): Likewise.
6064
624a5800
CR
60652002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org>
6066
6067 PR c++/5685
6068 * decl.c (duplicate_decls): Make warning unconditional
6069 if duplicate default argument declarations are present.
6070
f6f8ada3
JJ
60712002-02-17 Jakub Jelinek <jakub@redhat.com>
6072
6073 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
6074 shortening.
6075
8d6e459d
NS
60762002-02-15 Nathan Sidwell <nathan@codesourcery.com>
6077
6078 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
6079 remove incorrect comment. Move #if 0'd code to common path. Use
6080 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
6081
ca4feb54
JM
60822002-02-13 Jason Merrill <jason@redhat.com>
6083
57d5032b
JM
6084 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
6085 (finish_function): Don't warn if current_function_returns_null.
6086
bb26522d
JM
6087 * typeck2.c (digest_init): Do handle values of vector type.
6088
ca4feb54
JM
6089 * typeck2.c (digest_init, process_init_constructor): Treat vectors
6090 like arrays.
6091
e6b9638b
JM
60922002-02-11 Jason Merrill <jason@redhat.com>
6093
6094 * parse.y (reserved_declspecs): Don't handle attributes.
6095 (reserved_typespecquals): Handle them here.
6096 * Make-lang.in (parse.c): Adjust expected conflicts.
6097
1cf537c5
JJ
60982002-02-08 Jakub Jelinek <jakub@redhat.com>
6099
6100 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
6101 instead of compstmt.
6102 (compstmt_or_stmtexpr): Renamed from compstmt.
6103 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
6104
c2ea3a40
NS
61052002-02-07 Nathan Sidwell <nathan@codesourcery.com>
6106
6107 Rename instantiate_type_flags to tsubst_flags_t & expand use.
6108 * cp-tree.h (instantiate_type_flags): Rename to ...
6109 (tsubst_flags_t): ... here. Rename itf_complain to tf_error,
6110 add tf_warning flag.
6111 (instantiate_type): Adjust prototype.
6112 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
6113 do_type_instantiation, cp_build_qualified_type_real): Likewise.
6114 cp_build_qualified_type: Adjust.
6115 * class.c (instantiate_type): Adjust parameter. Rename itf_* to
6116 tf_*.
6117 * call.c (standard_conversion): Rename itf_* to tf_*.
6118 (reference_binding): Likewise.
6119 (convert_like_real): Likewise.
6120 * cvt.c (cp_convert_to_pointer): Likewise.
6121 (convert_to_reference): Likewise.
6122 * decl.c (lookup_namespace_name): Use tf_* flags.
6123 (make_typename_type): Likewise.
6124 (grokdeclarator): Likewise.
6125 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
6126 (coerce_template_template_parms, convert_template_argument,
6127 coerce_template_parms, maybe_get_template_decl_from_type_decl,
6128 lookup_template_class, tsubst_friend_function, tsubst_friend_class,
500abaa8
AJ
6129 instantiate_class_template, tsubst_template_arg_vector,
6130 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
c2ea3a40 6131 tsubst_decl, tsubst_arg_types, tsubst_function_type,
500abaa8 6132 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
c2ea3a40 6133 instantiate_template, fn_type_unification,
500abaa8
AJ
6134 resolve_overloaded_unification, verify_class_unification,
6135 unify, get_bindings_real, do_type_instantiation,
6136 regenerate_decl_from_template, instantiate_decl,
c2ea3a40
NS
6137 tsubst_initializer_list, tsubst_enum,
6138 get_mostly_instantiated_function_type,
6139 invalid_nontype_parm_type_p): Likewise.
6140 * tree.c (cp_build_qualified_type_real): Likewise.
6141 * typeck.c (build_binary_op): Rename itf_* to tf_*.
6142 (build_ptrmemfunc): Likewise.
6143 (convert_for_assignment): Likewise.
6144
d5614afb
NS
61452002-02-07 Nathan Sidwell <nathan@codesourcery.com>
6146
6147 PR c++/109
6148 * decl.c (grokdeclarator): Allow friend declarations from
8d6e459d 6149 dependent types.
d5614afb
NS
6150 * decl2.c (handle_class_head): Don't push into template parm contexts.
6151 * pt.c (push_template_decl_real): Template parm contexts are never
6152 being defined.
6153
1af6141b
AO
61542002-02-05 Alexandre Oliva <aoliva@redhat.com>
6155
6156 * class.c: Include target.h.
6157 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
6158 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
6159 bit-field layout.
6160 * Make-lang.in: Adjust deps.
6161
d8a6f584
JM
61622002-02-05 Jason Merrill <jason@redhat.com>
6163
6164 * error.c (dump_type): Be more helpful about VECTOR_TYPE.
6165
6f9fdf4d
JJ
61662002-02-04 Jakub Jelinek <jakub@redhat.com>
6167
6168 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
6169 (finish_switch_cond): Set SWITCH_TYPE.
6170
14691f8d
RH
61712002-02-04 Richard Henderson <rth@redhat.com>
6172
6173 * method.c (use_thunk): Always initialize the block tree. Reindent.
6174 * semantics.c (expand_body): Emit thunks after function, not before.
6175
e89a6075
JM
61762002-02-04 Jason Merrill <jason@redhat.com>
6177
6178 * decl.c (start_function): Call cplus_decl_attributes immediately
6179 after grokdeclarator.
6180
6181 * decl.c (start_function): Combine DECL_RESULT handling code.
6182
9780c24f
JM
61832002-02-03 Jason Merrill <jason@redhat.com>
6184
6185 * xref.c: Remove.
6186 * Make-lang.in (CXX_OBJS): Remove cp/xref.o
6187 (cp/xref.o): Remove dependencies.
6188 * class.c (finish_struct_1, check_methods): Don't call xref fns.
6189 (finish_struct_1): Likewise.
6190 * friend.c (make_friend_class): Likewise.
6191 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
6192 * spew.c (read_process_identifier): Likewise.
6193
65f36ac8
JM
61942002-02-01 Jason Merrill <jason@redhat.com>
6195
efe49da0 6196 PR c++/4872
500abaa8 6197 * decl.c (finish_function): Warn about a non-void function with
efe49da0
JM
6198 no return statement and no abnormal exit.
6199 * cp-tree.h (struct cp_language_function): Add returns_abnormally.
6200 (current_function_returns_abnormally): New macro.
6201 * call.c (build_call): Set it.
6202
f2d9afec
JM
6203 * typeck.c (build_component_ref): Always complain about offsetof
6204 constructs on non-PODs. Only make it an error for members of
6205 virtual bases.
6206
65f36ac8
JM
6207 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
6208 (dump_function_decl): Always dump parms.
6209
6210 * decl2.c (finish_static_data_member_decl): Complain about a local
6211 class with a static data member.
6212
6213 PR c++/4286
6214 * search.c (lookup_field_1): Don't xref a static data member
6215 just because we looked it up.
6216
98884b26
JM
62172002-01-31 Jason Merrill <jason@redhat.com>
6218
b88c0704
JM
6219 * Make-lang.in (parse.c): Handle .output file.
6220
a588fe25
JM
6221 PR c++/3395
6222 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
6223 not TREE_TYPE.
6224 * semantics.c (finish_class_definition): Adjust.
6225
98884b26
JM
6226 Allow attributes in parms and casts.
6227 * parse.y (named_parm): Don't strip attrs.
6228 (declmods): Remove 'attributes' production.
6229 (nonempty_cv_qualifiers): Accept attributes.
6230 (ATTRIBUTE): Give precedence.
6231 * decl.c (groktypename): Handle attributes.
6232 (grokparms): Likewise.
6233
ffdeea47
JJ
62342002-01-29 Jakub Jelinek <jakub@redhat.com>
6235
6236 * decl2.c (cxx_decode_option): Pass 0 as last argument to
6237 cpp_handle_option.
6238 * lang-specs.h: Use cpp_unique_options instead of cpp_options
6239 when used together with cc1_options.
6240
b8b98c66
NS
62412002-01-29 Nathan Sidwell <nathan@codesourcery.com>
6242
6243 PR c++/5132
6244 * typeck2.c (digest_init): Make sure non-array core type is
6245 instantiated.
6246 * decl2.c (reparse_absdcl_as_casts): Just store the type in the
6247 constructor, rather than build a new one.
6248 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the
6249 PURPOSE of constructor elts.
6250
7437519c
ZW
62512002-01-23 Zack Weinberg <zack@codesourcery.com>
6252
6253 * Make-lang.in (parse.c): Adjust expected number of
6254 shift-reduce conflicts.
6255 (decl.o): Depend on diagnostic.h.
6256 * decl.c: Include diagnostic.h.
6257 (grokdeclarator): Check for null pointer.
6258 (finish_function): Don't abort when
6259 current_binding_level->parm_flag != 1, if errors have
6260 occurred; throw away the statement tree and extra binding
6261 levels, and continue.
6262 * lex.c (note_list_got_semicolon): Check for null pointer.
6263 * method.c (hack_identifier): Just return error_mark_node if
6264 value is error_mark_node.
6265 * parse.y (primary: TYPEID(type_id)): No need to use
6266 TYPE_MAIN_VARIANT here.
6267 (handler_seq): Accept an empty list of catch clauses and
6268 generate a fake handler block to avoid later crashes.
6269 (ansi_raise_identifier): Accept the error token too.
6270 * semantics.c (begin_class_definition,
6271 finish_class_definition): Check for error_mark_node.
6272
c588e52b
ZW
62732002-01-23 Zack Weinberg <zack@codesourcery.com>
6274
6275 * typeck2.c (friendly_abort): Delete definition.
6276 * cp-tree.h (friendly_abort): Don't prototype.
6277 (my_friendly_assert): Use fancy_abort.
6278
d55ecaa4
CR
62792002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
6280
6281 * cp-tree.h (my_friendly_abort): Remove.
6282
0a01c261
JJ
62832002-01-23 Jakub Jelinek <jakub@redhat.com>
6284
6285 * spew.c (pending_inlines, pending_inlines_tail,
6286 processing_these_inlines): Make static.
6287 (mark_pending_inlines): Remove static.
6288 (begin_parsing_inclass_inline): If in function, save pi
6289 for GC to cp_function_chain->unparsed_inlines instead.
6290 (process_next_inline): Likewise.
6291 * cp-tree.h (struct cp_language_function): Add unparsed_inlines.
6292 (mark_pending_inlines): Add prototype.
6293 * decl.c (spew_debug): Remove unused extern.
6294 (mark_lang_function): Call mark_pending_inlines.
6295
a98facb0
CR
62962002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
6297
c588e52b
ZW
6298 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
6299 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
6300 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
a98facb0
CR
6301 Change my_fancy_abort() to abort().
6302
f893c16e
JM
63032002-01-23 Jason Merrill <jason@redhat.com>
6304
608afcc5
JM
6305 PR c++/5453
6306 * class.c (fixed_type_or_null): Fix thinko.
6307
f893c16e
JM
6308 PR c++/3331
6309 * init.c (resolve_offset_ref): Use build_indirect_ref.
6bc34b14 6310
b2115575
JM
6311 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
6312
f893c16e
JM
63132002-01-22 Jason Merrill <jason@redhat.com>
6314
b5856475
JM
6315 * parse.y (function_body): Suppress the block for the outermost
6316 curly braces.
6317 * decl.c (pushdecl): Don't try to skip it.
6318 (begin_function_body): Keep the block we create, not the next one.
6319 * init.c (emit_base_init): Don't mess with keep_next_level.
6320
6bc34b14
JM
6321 * class.c (build_base_path): Tweak formatting.
6322
3807621a
NS
63232002-01-19 Nathan Sidwell <nathan@codesourcery.com>
6324
6325 Fix regression introduced with patch for c++/775
6326 * parse.y (class_head_defn): Check for template specializations
6327 with a different class-key.
6328
cdd2559c
JM
63292002-01-17 Jason Merrill <jason@redhat.com>
6330
6331 * decl.c (begin_constructor_body, begin_destructor_body): New fns.
6332 (begin_function_body): Call them and keep_next_level.
6333 * init.c (emit_base_init): Call keep_next_level.
6334 * semantics.c (setup_vtbl_ptr): Lose.
6335 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
6336 (vtbls_set_up_p): Lose.
6337 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
6338 * method.c (do_build_copy_constructor): Likewise.
6339 (synthesize_method): Call finish_mem_initializers.
6340 * parse.y (nodecls): Likewise.
ad6b1795
JM
6341
6342 * error.c (dump_type_suffix): Print the exception specs before
6343 recursing.
6344 (dump_function_decl): Here, too.
6345
6346 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
6347
195a5def
IR
63482002-01-10 Ira Ruben <ira@apple.com>
6349
6bc34b14 6350 PR c++/907
195a5def
IR
6351 * decl.c (start_method): Handle attrlist.
6352
f21ee879
JJ
63532002-01-10 Jakub Jelinek <jakub@redhat.com>
6354
6355 * decl2.c (max_tinst_depth): Increase default limit to 500.
6356
63572002-01-10 Graham Stott <grahams@redhat.com>
8fabd4e2
GS
6358
6359 * spew.c (YYCHAR): Uppercase macro parameter and add
6360 parenthesis.
6361 (YYCODE): Likewise.
6362 (NAME): Uppercase macro parameter.
6363
c3af729a
GS
63642002-01-09 Graham Stott <grahams@redhat.com>
6365
6bc34b14 6366 * decl.h (grokdeclarator): Wrap long line.
5d8b4235 6367
c3af729a
GS
6368 * semantics.c (FINISH_COND): Uppercase macro paramaters and
6369 add parenthesis.
6370
91800747
GS
63712002-01-08 Graham Stott <grahams@redhat.com>
6372
6373 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
6374 (PALLOC): Uppercase macro parameter and whitespace.
6375 (SALLOC): Uppercase macro parameter.
6376 (SFREE): Uppercase macros parameter, add parenthese and
6377 whitespace.
6378 (STREQL): Uppercase macro parameter and whitespace.
6379 (STRNEQ): Likewise.
6380 (STRLSS): Likewise.
6381 (STRLEQ): Likewise.
6382 (STRGTR): Likewise.
6383 (STRGEQ): Likewise.
6384
6385 * call.c (convert_like): Add parenthesis and wrap.
6386 (convert_like_with_context): Likewise.
6387 (ICS_RANK): Whitespace.
6388 (NEED_TEMPORARY_P): Remove parenthesis.
6389
6390 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
6391 whitespace.
6392 (VTT_MARKED_BINFO_P): Likewise.
6393
6394 * decl.c (BINDING_LEVEL): Add parenthesis.
6395 (DEF_OPERATOR): Likewise.
6396
91800747
GS
6397 * mangle.c (MANGLE_TRACE): Add parenthesis.
6398 (MANGLE_TRACE_TREE): Likewise.
6399 (write_signed_number): Likewise.
6400 (write_unsigned_number): Likewise.
6401
6402 * pt.c (ccat): Uppercase macro parameter.
6403 (cat): Likewise
6404
6405 * search.c (SET_BINFO_ACCESS): Add parenthesis.
6406
15eb1e43
JM
64072002-01-07 Jason Merrill <jason@redhat.com>
6408
6409 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
6410 to pedwarn.
6411
6bc34b14 6412 PR c++/3536
15eb1e43
JM
6413 * method.c (make_thunk): If !flag_weak, give the thunk the
6414 function's linkage.
6415 (use_thunk): Here, too.
6416
b34c06e3
GS
64172002-01-07 Graham Stott <grahams@redhat.com>
6418
6bc34b14
JM
6419 * error.c: Update copyright date.
6420 (print_scope_operator): Add parenthesis.
6421 (print_left_paren): Likewise.
6422 (print_right_paren): Likewise.
6423 (print_left_bracket): Likewise.
6424 (print_right_bracket): Likewise.
6425 (print_template_argument_list_start): Likewise.
6426 (print_template_argument_list_end): Likewise.
6427 (print_non_consecutive_character): Likewise.
6428 (print_tree_identifier): Likewise.
6429 (print_identifier): Likewise.
6430 (NEXT_CODE): Uppercase macro parameter.
6431 (ident_fndecl): Delete unused.
6432 (GLOBAL_THING): Likewise.
b34c06e3 6433
98e40e83
GS
64342002-01-06 Graham Stott <grahams@redhat.com>
6435
6436 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
6437 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
6438 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
6439 (RECORD_OR_UNION_TYPE_CHECK): Likewise.
6440 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
6441 (C_IS_RESERVED_WORD): Uppercase macro parameter.
6442 (C_RID_YYCODE) Likewise.
6443 (ptrmem_cst): Use rtx.
6444 (LOCAL_BINDING_P): Add whitespace.
6445 (INHERITED_VALUE_BINDING_P): Likewise.
6446 (BINDING_SCOPE): Wrap long line.
6447 (BINDING_HAS_LEVEL_P): Remove parenthesis.
6448 (BINDING_VALUE): Wrap long line.
6449 (BINDING_TYPE): Whitespace.
6450 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
6451 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
c588e52b 6452 (IDENTIFIER_NAMESPACE_VALUE): Likewise.
98e40e83
GS
6453 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
6454 (same_type_p): Uppercase macro parameters.
6455 (same_type_ignoring_top_level_qualifiers_p): Likewise.
6456 (OVL_FUNCTION): Wrap long line.
6457 (OVL_CHAIN): Whitespace.
b34c06e3 6458 (OVL_CURRENT): Add parenthesis and whitespace.
98e40e83
GS
6459 (OVL_NEXT): Whitespace.
6460 (OVL_USED): Likewise.
6461 (IDENTIFIER_TYPE_VALUE): Likewise.
6462 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
6463 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
6464 (LANG_ID_FIELD): Whitespace.
6465 (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
6466 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
6467 (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
6468 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
6469 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
6470 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
6471 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
6472 (IDENTIFIER_VIRTUAL_P): Likewise.
6473 (IDENTIFIER_OPNAME_P): Likewise.
6474 (IDENTIFIER_TYPENAME_P): Remove parenthesis.
6475 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
6476 (C_SET_EXP_ORIGINAL_CODE): Likewise.
6477 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
6478 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
6479 (IS_AGGR_TYPE): Uppercase macro parameter.
6480 (CLASS_TYPE_P): Likewise.
6481 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
6482 (IS_AGGR_TYPE_2): Whitespace.
6483 (TAGGED_TYPE_P): Uppercase macro parameter.
6484 (TYPE_BUILT_IN): Whitespace.
6485 (TYPE_FOR_JAVA): Likewise.
6486 (FUNCTION_ARG_CHAIN): Remove parenthesis.
6487 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
6488 (FUNCTION_FIRST_USER_PARAM): Likewise.
6489 (PROMOTES_TO_AGGR_TYPE): Whitespace.
6490 (DERIVED_FROM_P): Add parenthesis and wrap.
6491 (UNIQUELY_DERIVED_FROM_P): Likewise.
6492 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
6493 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
6494 (CLASSTYPE_USE_TEMPLATE): Whitespace.
6495 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
6496 (TYPE_GETS_DELETE): Add parenthesis.
6497 (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
6498 (TYPE_HAS_ASSIGN_REF): Likewise,
6499 (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
6500 (TYPE_HAS_INIT_REF): Likewise.
6501 (TYPE_HAS_CONST_INIT_REF): Likewise.
6502 (TYPE_BEING_DEFINED): Likewise.
6503 (TYPE_LANG_SPECIFIC): Likewise.
6504 (CLASSTYPE_RTTI): Likewise.
6505 (TYPE_OVERLOADS_CALL_EXPR): Likewise.
6506 (TYPE_OVERLOADS_ARRAY_REF): Likewise.
6507 (TYPE_OVERLOADS_ARROW): Likewise.
6508 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
6509 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
6510 (CLASSTYPE_METHOD_VEC): Likewise.
6511 (CLASSTYPE_MARKED_N): Likewise.
6512 (CLASSTYPE_MARKED): Likewise.
6513 (CLASSTYPE_MARKED2): Likewise.
6514 (CLASSTYPE_MARKED3): Likewise.
6515 (CLASSTYPE_MARKED4): Likewise.
6516 (CLASSTYPE_MARKED5): Likewise.
6517 (CLASSTYPE_MARKED6): Likewise.
6518 (SET_CLASSTYPE_MARKED): Whitespace.
6519 (CLEAR_CLASSTYPE_MARKED): Likewise.
6520 (SET_CLASSTYPE_MARKED2): Likewise.
6521 (CLEAR_CLASSTYPE_MARKED2): Likewise.
6522 (SET_CLASSTYPE_MARKED3): Likewise.
6523 (CLEAR_CLASSTYPE_MARKED3): Likewise.
6524 (SET_CLASSTYPE_MARKED4): Likewise.
6525 (CLEAR_CLASSTYPE_MARKED4): Likewise.
6526 (SET_CLASSTYPE_MARKED5): Likewise.
6527 (CLEAR_CLASSTYPE_MARKED5): Likewise.
6528 (SET_CLASSTYPE_MARKED6): Likewise.
6529 (CLEAR_CLASSTYPE_MARKED6): Likewise.
6530 (CLASSTYPE_TAGS): Likewise.
6531 (CLASSTYPE_VSIZE): Likewise.
6532 (CLASSTYPE_VBASECLASSES): Likewise.
6533 (CANONICAL_BINFO): Add parenthesis.
6534 (CLASSTYPE_SIZE(NODE): Likewise.
6535 (CLASSTYPE_SIZE_UNIT): Likewise.
6536 (CLASSTYPE_ALIGN(NODE): Likewise.
6537 (CLASSTYPE_USER_ALIGN): Likewise.
6538 (TYPE_JAVA_INTERFACE): Likewise.
6539 (CLASSTYPE_PURE_VIRTUALS): Likewise.
6540 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
6541 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
6542 (CLASSTYPE_HAS_MUTABLE): Likewise.
6543 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
6544 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
6545 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
6546 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
6547 (CLASSTYPE_INTERFACE_ONLY): Likewise.
6548 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
6549 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
6550 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
6551 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
6552 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
6553 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
6554 (BINFO_UNSHARED_MARKED): Whitespace.
6555 (BINFO_MARKED): Whitespace and wrap.
6556 (SET_BINFO_MARKED): Likewise.
6557 (CLEAR_BINFO_MARKED): Likewise.
6558 (BINFO_VTABLE_PATH_MARKED): Likewise.
6559 (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
6560 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
6561 (BINFO_SUBVTT_INDEX): Remove parenthesis.
6562 (BINFO_VPTR_INDEX): Likewise.
6563 (BINFO_PRIMARY_BASE_OF): Likewise,
6564 (CLASSTYPE_VFIELDS): Whitespace.
6565 (VF_DERIVED_VALUE): Wrap long line.
6566 (NAMESPACE_LEVEL): Whitespace.
6bc34b14
JM
6567 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
6568 (DEFARG_POINTER): Whitespace.
6569 (DECL_NEEDED_P): Remove parenthesis.
6570 (DECL_LANGUAGE): Whitespace.
6571 (SET_DECL_LANGUAGE): Add parenthesis.
6572 (DECL_CONSTRUCTOR_P): Whitespace and wrap.
6573 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
6574 (DECL_IN_AGGR_P): Whitespace.
6575 (DECL_FRIEND_P): Likewise.
6576 (DECL_BEFRIENDING_CLASSES): Likewise.
6577 (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
6578 (DECL_NONCONVERTING_P): Whitespace.
6579 (DECL_PURE_VIRTUAL_P): Likewise.
6580 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
6581 (DECL_PENDING_INLINE_INFO): Whitespace.
6582 (DECL_SORTED_FIELDS): Likewise.
6583 (DECL_DEFERRED_FN): Likewise.
6584 (DECL_TEMPLATE_INFO): Likewise.
6585 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
6586 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
6587 (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
6588 (TMPL_ARGS_LEVEL): Likewise.
6589 (SET_TMPL_ARGS_LEVEL): Likewise.
6590 (INNERMOST_TEMPLATE_PARMS): Whitespace.
6591 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
6592 (INTEGRAL_CODE_P(CODE): Add parenthesis.
6593 (CP_INTEGRAL_TYPE_P): Remove parenthesis.
6594 (TYPE_HAS_CONSTRUCTOR): Whitespace.
6595 (TREE_HAS_CONSTRUCTOR): Likewise.
6596 (TYPE_HAS_DESTRUCTOR): Likewise.
6597 (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
6598 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
6599 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
6600 (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
6601 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
6602 (TYPE_PTRMEMFUNC_P): Likewise.
6603 (TYPE_PTRMEMFUNC_FLAG): Likewise.
6604 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
6605 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
6606 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
6607 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
6608 (DECL_ACCESS): Whitespace.
6609 (DECL_GLOBAL_CTOR_P): Remove parenthesis.
6610 (DECL_GLOBAL_DTOR_P): Likewise.
6611 (GLOBAL_INIT_PRIORITY): Likewise.
98e40e83 6612 (DECL_TEMPLATE_PARMS): Likewise.
6bc34b14
JM
6613 (DECL_TEMPLATE_RESULT): Likewise.
6614 (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
6615 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
6616 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
6617 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
6618 (PRIMARY_TEMPLATE_P): Add parenthesis.
6619 (DECL_USE_TEMPLATE): Whitespace.
6620 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
6621 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
6622 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
6623 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
6624 (CALL_DECLARATOR_PARMS): Remove parenthesis.
6625 (CALL_DECLARATOR_QUALS): Likewise.
6626 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
6627 (TEMP_NAME_P): Wrap.
6628 (VFIELD_NAME_P): Likewise.
6629 (B_SET): Uppercase macro parameters and add parenthesis.
6630 (B_CLR): Likewise.
6631 (B_TST): Likewise.
6632 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
6633 (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
6634 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
6635 (same_or_base_type_p): Likewise.
6636 (cp_deprecated): Likewise.
98e40e83 6637
c28abdf0
RH
66382002-01-05 Richard Henderson <rth@redhat.com>
6639
15eb1e43 6640 * semantics.c (expand_body): Revert last change.
c28abdf0 6641
f11ee281
JM
66422002-01-04 Jason Merrill <jason@redhat.com>
6643
195a5def 6644 PR c++/4122
f11ee281
JM
6645 * class.c (update_vtable_entry_for_fn): Set delta to zero for a
6646 lost primary.
6647
6648 * class.c (build_vtbl_initializer): Check for a lost primary
6649 before calculating the vtable entry to throw away.
6650
a4200657
JM
66512002-01-02 Jason Merrill <jason@redhat.com>
6652
6653 * semantics.c (expand_body): Call outlining_inline_function when
6654 emitting an inline function out of line.
6655
40e593d7
NS
66562002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6657
6658 PR c++/5116, c++/764 reversion
6659 * call.c (build_new_op): Revert the instantiations. They are
6660 incorrect.
c588e52b 6661
323728aa
NS
66622002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6663
6664 PR c++/5089
6665 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
6666
46c895ac
NS
66672002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6668
6669 PR c++/3716
6670 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
6671 (tsubst, case POINTER_TYPE): Handle pmfs here.
6672 (tsubst, case OFFSET_TYPE): Check it is not an offset to
6673 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
6674
833aa4c4
NS
66752002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6676
6677 PR c++/35
6678 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
6679 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
6680 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
6681 PARM_DECL.
6682 (tsubst_template_parms): Break up loop statements.
6683 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
6684 parm PARM_DECLs don't get promoted.
6685
18976b21
NS
66862002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6687
6688 PR c++/5123
6689 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
6690 (build_x_function_call): Cope with a COMPONENT_REF containing a
6691 TEMPLATE_ID_EXPR.
6692
303d1c55
NS
66932002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6694
6695 PR c++/5213
6696 * pt.c (convert_template_argument): Be more careful determining
6697 when RECORD_TYPE templates are or are not templates.
6698
d46a33b3
NS
66992002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6700
6701 PR c++/775
6702 * cp-tree.h (handle_class_head): Adjust prototype.
6703 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
6704 parameters. Use for all class heads.
6705 * parse.y (named_class_head_sans_basetype, named_class_head,
6706 named_complex_class_head_sans_basetype,
6707 named_class_head_sans_basetype_defn,
6708 unnamed_class_head): Remove.
6709 (class_head, class_head_apparent_template): Recognize class heads
6710 (class_head_decl, class_head_defn): New reductions. Process class
6711 heads.
6712 (structsp): Adjust class definition and class declaration
6713 reductions.
6714 (maybe_base_class_list): Give diagnostic on empty list.
6715
4542128e
NS
67162002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6717
6718 PR c++/4379
6719 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
6720 single non-static member.
6721 (unary_complex_lvalue): If it cannot be a pointer to member, don't
6722 make it so. Check it is not pointer to reference.
6723
903c6234
NS
67242002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6725
6726 PR c++/5132
6727 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
6728 are processing a template decl.
6729
477558bf
NS
67302002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6731
6732 PR c++/5116, c++/764
6733 * call.c (build_new_op): Make sure template class operands are
6734 instantiated. Simplify arglist construction.
6735
41f5d4b1
NS
67362001-12-29 Nathan Sidwell <nathan@codesourcery.com>
6737
6738 * call.c (build_user_type_conversion_1): Use my_friendly_assert
6739 rather than if ... abort.
6740 * cvt.c (convert_to_reference): Likewise.
6741 * semantics.c (setup_vtbl_ptr): Likewise.
6742 * pt.c (lookup_template_class): Comment typo.
c588e52b 6743
f3368a90
NS
67442001-12-29 Nathan Sidwell <nathan@codesourcery.com>
6745
6746 PR c++/5125
6747 * pt.c (push_template_decl_real): Make sure DECL has
6748 DECL_LANG_SPECIFIC.
6749
03c9c274
NS
67502001-12-29 Nathan Sidwell <nathan@codesourcery.com>
6751
6752 PR c++/335
6753 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
6754 for non-reference fields.
6755 * typeck.c (require_complete_type): Use resolve_offset_ref).
6756
7d8e8369
NS
67572001-12-26 Nathan Sidwell <nathan@codesourcery.com>
6758
6759 PR c++/196
03c9c274 6760 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
7d8e8369 6761
a56ca899
NS
67622001-12-24 Nathan Sidwell <nathan@codesourcery.com>
6763
6764 PR c++/160
6765 * typeck.c (build_modify_expr): Remove old unreachable code & tidy
6766 up. Don't stabilize_references when initializing a reference.
6767
0b5826ac
KG
67682001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6769
6770 * decl2.c (lang_f_options): Const-ify.
6771
38be19f6
JM
67722001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
6773
6774 * config-lang.in (diff_excludes): Remove.
6775
2e4cf9dc
NS
67762001-12-19 Nathan Sidwell <nathan@codesourcery.com>
6777
6778 PR c++/90
6779 * typeck.c (build_function_call_real): Use original function
6780 expression for errors.
6781
00e4119c
JM
67822001-12-18 Jason Merrill <jason@redhat.com>
6783
195a5def 6784 PR c++/3242
00e4119c
JM
6785 * class.c (add_method): Do compare 'this' quals when trying to match a
6786 used function. Don't defer to another used function.
6787
3ad97789
NS
67882001-12-18 Nathan Sidwell <nathan@codesourcery.com>
6789
6790 * pt.c (instantiate_clone): Remove, fold into ...
6791 (instantiate_template): ... here. Simplify by removing mutual
6792 recursion.
6793 * typeck2.c (build_m_component_ref): Don't cv qualify the function
6794 pointed to by a pointer to function.
6795 * class.c (delete_duplicate_fields_1): Typo.
6796
f21add07
JM
67972001-12-18 Jason Merrill <jason@redhat.com>
6798
6799 C++ ABI change: destroy value arguments in caller.
6800 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
6801 create an extra binding level for the parameters.
6802 * decl.c (store_parm_decls): Don't do parameter cleanups.
6803
ea50ad82
NS
68042001-12-18 Nathan Sidwell <nathan@codesourcery.com>
6805
6806 * call.c (build_new_method_call): Use '%#V'.
6807 * error.c (cv_to_string): Use V parameter to determine padding.
6808
3855d0d1
JM
68092001-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
6810
6811 * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
6812 spellings in messages.
6813
33bd39a2
ZW
68142001-12-17 Zack Weinberg <zack@codesourcery.com>
6815
6816 * cp-tree.h: Delete #defines for cp_error, cp_warning,
6817 cp_pedwarn, and cp_compiler_error.
6818 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
6819 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
6820 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
6821 typeck2.c: Change calls to the above macros to use their
6822 language-independent equivalents: error, warning, pedwarn, and
6823 internal_error respectively.
6824
317c26c3
NB
68252001-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
6826
6827 * decl2.c (finish_file): Remove back_end_hook.
6828
aba649ba
JM
68292001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
6830
6831 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
6832 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
6833 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
6834
1737c953
JM
68352001-12-15 Joseph S. Myers <jsm28@cam.ac.uk>
6836
6837 * lang-options.h: Use American spelling in messages.
6838
4a90862e
JM
68392001-12-13 Jason Merrill <jason@redhat.com>
6840
ade3dc07
JM
6841 * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
6842
6843 Use cleanups to run base and member destructors.
6844 * init.c (push_base_cleanups): New function, split out from...
6845 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code.
6846 * decl.c (finish_destructor_body): Move vbase destruction code to
6847 push_base_cleanups.
6848 (begin_function_body, finish_function_body): New fns.
6849 (finish_function): Move [cd]tor handling and call_poplevel to
6850 finish_function_body.
6851 (pushdecl): Skip the new level.
6852 * semantics.c (genrtl_try_block): Don't call end_protect_partials.
6853 (setup_vtbl_ptr): Call push_base_cleanups.
6854 * method.c (synthesize_method): Call {begin,end}_function_body.
6855 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
6856 * cp-tree.h: Declare new fns.
6857 * parse.y (function_body, .begin_function_body): New nonterminals.
6858 (fndef, pending_inline, function_try_block): Use function_body.
6859 (ctor_initializer_opt, function_try_block): No longer has a value.
6860 (base_init): Remove .set_base_init token.
6861 (.set_base_init, compstmt_or_error): Remove.
6862 * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
6863
4a90862e
JM
6864 * optimize.c (maybe_clone_body): Fix parameter updating.
6865
a0de9d20
JM
68662001-12-12 Jason Merrill <jason@redhat.com>
6867
6868 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
6869 * semantics.c (genrtl_start_function): Don't pass
6870 parms_have_cleanups or push an extra binding level.
6871 (genrtl_finish_function): Lose cleanup_label cruft.
6872
6873 * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
6874 (ctor_label): Remove.
6875 * semantics.c (finish_return_stmt): Lose ctor_label support.
6876 * decl.c (finish_constructor_body, mark_lang_function): Likewise.
33bd39a2 6877 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
a0de9d20
JM
6878 dtor_label.
6879
6880 * call.c (build_new_method_call): Let resolves_to_fixed_type_p
6881 check for [cd]tors.
6882 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
6883
6884 * decl.c (finish_function): Check VMS_TARGET, not VMS.
6885
6886 * decl.c (start_cleanup_fn): Remove redundant pushlevel.
6887 (end_cleanup_fn): And poplevel.
6888
6889 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
6890 if we're in a template.
6891
dc5c569a
JJ
68922001-12-12 Jakub Jelinek <jakub@redhat.com>
6893
6894 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
6895 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
6896 THIS_NAME_P): Delete.
6897 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
6898 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
6899 with internal naming scheme.
6900 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
6901
ad1a6d45
NS
69022001-12-12 Nathan Sidwell <nathan@codesourcery.com>
6903
6904 * decl.c (grokdeclarator): Deprecated implicit typename use.
6905
270d8c65
NS
69062001-12-11 Nathan Sidwell <nathan@codesourcery.com>
6907
6908 PR g++/51
6909 * parse.y (frob_specs): Indicate it is a language linkage which
6910 contained the extern.
6911 * decl.c (grokdeclarator): Allow extern language linkage with
6912 other specifiers.
6913
9aaceb4b
NS
69142001-12-10 Nathan Sidwell <nathan@codesourcery.com>
6915
6916 PR g++/72
6917 * decl.c (add_binding): Don't reject duplicate typedefs involving
6918 template parameters.
6919
a23c9413
NB
69202001-12-10 Neil Booth <neil@daikokuya.demon.co.uk>
6921
6922 * parse.y, semantics.c: Similarly.
6923
9aaceb4b 69242001-12-09 Nathan Sidwell <nathan@codesourcery.com>
271e6f02
NS
6925
6926 PR g++/87
6927 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
6928 (copy_args_p): Rename to ...
6929 (copy_fn_p): ... here.
6930 (grok_special_member_properties): New function.
6931 (grok_op_properties): Lose VIRTUALP parameter.
6932 (copy_assignment_arg_p): Remove.
6933 * call.c (build_over_call): Use copy_fn_p.
6934 * decl.c (grokfndecl): Reformat. Adjust call to
6935 grok_op_properties.
6936 (copy_args_p): Rename to ...
6937 (copy_fn_p): ... here. Reject template functions. Check for pass
6938 by value.
6939 (grok_special_member_properties): Remember special functions.
6940 (grok_ctor_properties): Don't remember them here, just check.
6941 (grok_op_properties): Likewise.
6942 (start_method): Call grok_special_member_properties.
6943 * decl2.c (grokfield): Likewise.
6944 (copy_assignment_arg_p): Remove.
6945 (grok_function_init): Don't remember abstract assignment here.
6946 * pt.c (instantiate_class_template): Call
6947 grok_special_member_properties.
6948 (tsubst_decl): Adjust grok_op_properties call.
6949
bdd8737f
AH
69502001-12-08 Aldy Hernandez <aldyh@redhat.com>
6951
33bd39a2
ZW
6952 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
6953 RID_TYPES_COMPATIBLE_P.
bdd8737f 6954
46af705a
JDA
69552001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
6956
6957 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
6958 call to build_aggr_init.
6959 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
6960
cb97d97d
NB
69612001-12-08 Neil Booth <neil@daikokuya.demon.co.uk>
6962
6963 * parse.y: Replace uses of the string non-terminal with STRING.
6964 Don't perform string concatentaion here.
6965 (string): Remove non-terminal.
6966 * semantics.c (finish_asm_stmt): Don't concatenate strings here.
6967
742a37d5
JM
69682001-12-05 Jason Merrill <jason@redhat.com>
6969
6970 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
6971 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
6972 * tree.c (cp_start_inlining, cp_end_inlining): New fns.
6973 * pt.c (push_tinst_level): No longer static.
6974 * cp-tree.h: Declare them.
6975
6976 * init.c (resolve_offset_ref): Don't check access for the base
6977 conversion to access a FIELD_DECL.
6978
6979 * cp-tree.h (TYPE_REFFN_P): New macro.
6980 * decl.c (bad_specifiers): Check it, too.
6981
6982 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
6983 on the __*_type_info type if we haven't seen a definition.
6984
26f943fd
NB
69852001-12-05 Neil Booth <neil@daikokuya.demon.co.uk>
6986
6987 * decl.c: Include c-common.h.
6988 (shadow_warning): Move to c-common.c.
6989
d2a6f3c0 69902001-12-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37a08a29
RK
6991
6992 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
6993
9471d3e2
NS
69942001-12-04 Nathan Sidwell <nathan@codesourcery.com>
6995
6996 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
6997
713ccd0c
NS
69982001-12-04 Nathan Sidwell <nathan@codesourcery.com>
6999
7000 PR g++/164
7001 * init.c (sort_base_init): Allow binfos to be directly specified.
7002 * method.c (do_build_copy_constructor): Explicitly convert to the
7003 base instance.
7004 (do_build_assign_ref): Likewise.
7005
591382c4
HPN
70062001-12-03 Hans-Peter Nilsson <hp@bitrange.com>
7007
7008 * decl.c (xref_basetypes): Don't use C99 construct in tag_code
7009 declaration and initialization.
7010
c725bd79
NB
70112001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
7012
7013 * typeck2.c: Remove leading capital from diagnostic messages, as
7014 per GNU coding standards.
7015
a5d7c4a3
MK
70162001-12-03 Mumit Khan <khan@nanotech.wisc.edu>
7017
7018 PR c++/3394
9fe038e8
HPN
7019 * decl.c (xref_basetypes): Handle attributes between
7020 'class' and name.
a5d7c4a3 7021
f1880e13
NS
70222001-12-03 Nathan Sidwell <nathan@codesourcery.com>
7023
7024 PR g++/3381
7025 * parse.y (named_complex_class_head_sans_basetype): Add new
7026 reduction.
7027 * Make-lang.in (parse.c): Adjust expected conflict count.
7028
ff668506
JM
70292001-12-03 Jason Merrill <jason@redhat.com>
7030
7031 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
7032 immediate binfos for our virtual bases.
7033
1f978f5f
NB
70342001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
7035
7036 * call.c (build_java_interface_fn_ref): Similarly.
7037 * except.c (is_admissible_throw_operand): Similarly.
7038 * init.c (build_java_class_ref): Similarly.
7039 * xref.c (open_xref_file): Similarly.
7040
357351e5
NB
70412001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
7042
7043 * class.c (finish_struct): Remove trailing periods from messages.
7044 * decl.c (check_tag_decl): Similarly.
7045 * lex.c (cxx_set_yydebug): Similarly.
7046 * typeck2.c (friendly_abort): Similarly.
7047
998979e6
MM
70482001-11-29 Mark Mitchell <mark@codesourcery.com>
7049
7050 PR c++/3048
7051 * cp-tree.h (ovl_member): Remove.
33bd39a2 7052 * decl2.c (merge_functions): Handle extern "C" functions
998979e6
MM
7053 specially.
7054 * tree.c (ovl_member): Remove.
7055
7d5b8b11
MM
70562001-11-29 Mark Mitchell <mark@codesourcery.com>
7057
7058 PR c++/4842
7059 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
7060 FUNCTION_DECL, as input.
7061 (mark_overriders): Remove.
7062 (warn_hidden): Rework for the new ABI.
7063
b67db529
MM
70642001-11-29 Mark Mitchell <mark@codesourcery.com>
7065
7066 PR c++/3471
7067 * call.c (convert_like_real): Do not build additional temporaries
7068 for rvalues of class type.
7069
2db1ab2d
NS
70702001-11-28 Nathan Sidwell <nathan@codesourcery.com>
7071
7072 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
7073 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
7074 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
7075 (DERIVED_FROM_P): Likewise.
7076 (enum base_access): Renumber, add ba_quiet bit mask.
7077 (get_binfo): Remove.
7078 (get_base_distance): Remove.
7079 (binfo_value): Remove.
7080 (ACCESSIBLY_DERIVED_FROM_P): Remove.
7081 * call.c (standard_conversion): Use lookup_base.
7082 * class.c (strictly_overrides): Likewise.
7083 (layout_virtual_bases): Likewise.
7084 (warn_about_ambiguous_direct_bases): Likewise.
7085 (is_base_of_enclosing_class): Likewise.
7086 (add_vcall_offset_vtbl_entries_1): Likewise.
7087 * cvt.c (build_up_reference): Adjust comment.
7088 * init.c (build_member_call): Reformat.
7089 * search.c (get_binfo): Remove.
7090 (get_base_distance_recursive): Remove.
7091 (get_base_distance): Remove.
7092 (lookup_base_r): Tweak.
7093 (lookup_base): Add ba_quiet control. Complete the types here.
7094 (covariant_return_p): Use lookup_base.
7095 * tree.c (binfo_value): Remove.
7096 (maybe_dummy_object): Use lookup_base.
7097 * typeck.c (build_static_cast): Use lookup_base.
7098 (get_delta_difference): Likewise.
7099 * typeck2.c (binfo_or_else): Use lookup_base.
7100 (build_scoped_ref): Add back error_mark_check.
7101 (build_m_component_ref): Use lookup_base.
7102
d3945f0a
JM
71032001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
7104
7105 * Make-lang.in (c++.generated-manpages): New dummy target.
7106
d2a6f3c0 71072001-11-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
ac79cd5a
RK
7108
7109 * Make-lang.in (cp-lang.o): Depends on c-common.h.
7110 * cp-lang.c (c-common.h): Include.
7111 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
7112 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
7113 * expr.c (init_cplus_expand): Don't set lang_expand_constant.
7114
4d6baafa
NB
71152001-11-26 Neil Booth <neil@daikokuya.demon.co.uk>
7116
7117 * decl2.c (c_language): Move to c-common.c.
7118 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
7119 functions.
7120 (cxx_init): Update.
7121
5b0c5896
JM
71222001-11-26 Jason Merrill <jason@redhat.com>
7123
7124 * call.c (joust): Remove COND_EXPR hack.
7125
4bdd26e6
AH
71262001-11-25 Aldy Hernandez <aldyh@redhat.com>
7127
195a5def 7128 * search.c (lookup_base_r): Declare bk in variable declaration
4bdd26e6 7129 space.
33bd39a2 7130
338d90b8
NS
71312001-11-25 Nathan Sidwell <nathan@codesourcery.com>
7132
7133 PR g++/3145
7134 * class.c (build_vbase_pointer): Remove.
7135 (build_vbase_path): Remove.
7136 (build_base_path): New function.
7137 * cp-tree.h (base_access, base_kind): New enumerations.
7138 (build_base_path): Declare.
7139 (convert_pointer_to_real): Remove.
7140 (convert_pointer_to): Remove.
7141 (lookup_base): Declare.
7142 (convert_pointer_to_vbase): Remove.
7143 * call.c (build_scoped_method_call): Use lookup_base &
7144 build_base_path instead of convert_pointer_to_real,
7145 get_base_distance & get_binfo.
7146 (build_over_call): Likewise.
7147 * cvt.c (cp_convert_to_pointer): Likewise.
7148 (convert_to_pointer_force): Likewise.
7149 (build_up_reference): Likewise.
7150 (convert_pointer_to_real): Remove.
7151 (convert_pointer_to): Remove.
7152 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
7153 instead of convert_pointer_to_vbase & build_vbase_path.
7154 (emit_base_init): Use build_base_path instead of
7155 convert_pointer_to_real.
7156 (expand_virtual_init): Lose unrequired conversions.
7157 (resolve_offset_ref): Use lookup_base and build_base_path
7158 instead of convert_pointer_to.
7159 * rtti.c (build_dynamic_cast_1): Use lookup_base &
7160 build_base_path instead of get_base_distance & build_vbase_path.
7161 * search.c (get_vbase_1): Remove.
7162 (get_vbase): Remove.
7163 (convert_pointer_to_vbase): Remove.
07f521fc 7164 (lookup_base_r): New function.
338d90b8
NS
7165 (lookup_base): New function.
7166 * typeck.c (require_complete_type): Use lookup_base &
7167 build_base_path instead of convert_pointer_to.
7168 (build_component_ref): Likewise.
7169 (build_x_function_call): Likewise.
7170 (get_member_function_from_ptrfunc): Likewise.
7171 (build_component_addr): Likewise.
7172 * typeck2.c (build_scoped_ref): Likewise.
7173
89d684bb
BM
71742001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
7175
7176 * cp-tree.h (CP_TYPE_QUALS): Removed.
7177 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
33bd39a2 7178 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
89d684bb 7179 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
33bd39a2 7180 * dump.c (cp_dump_tree): Use void* dump_info argument to match
89d684bb
BM
7181 lang-hooks prototype.
7182 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
7183 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
7184 CP_TYPE_QUALS changed to cp_type_quals.
7185 * Make-lang.in: References to c-dump.h changed to tree-dump.h.
7186 (CXX_C_OBJS): Remove c-dump.o.
7187
12eb9f93 71882001-11-21 Mark Mitchell <mark@codesourcery.com>
2d2e8123
MM
7189
7190 PR c++/3637
12eb9f93
MM
7191 * pt.c (lookup_template_class): Ensure that all specializations
7192 are registered on the list corresponding to the most general
7193 template.
7194
71952001-11-20 Mark Mitchell <mark@codesourcery.com>
7196
2d2e8123 7197 * call.c (non_reference): Add documentation.
33bd39a2 7198 (convert_class_to_reference): Do not strip reference types
2d2e8123
MM
7199 from conversion operators.
7200 (maybe_handle_ref_bind): Simplify.
7201 (compare_ics): Correct handling of references.
7202
78a40378
MM
72032001-11-19 John Wilkinson <johnw@research.att.com>
7204
7205 * dump.c (dump_op): New function.
7206 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use
7207 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
7208 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
33bd39a2 7209
78a40378
MM
72102001-11-19 Mark Mitchell <mark@codesourcery.com>
7211
7212 PR4629
7213 * semantics.c (finish_sizeof): Make sure that expression created
7214 while processing a template do not have a type.
7215 (finish_alignof): Likewise.
7216 * typeck.c (c_sizeof): Likewise.
7217 (expr_sizeof): Likewise.
7218
22703ccc
NB
72192001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
7220
7221 * lex.c (cxx_finish): Call c_common_finish.
7222 (finish_parse): Remove.
7223
b3faacfd
KL
72242001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7225
7226 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
7227 when displaying error message about missing array bounds.
7228
873ff987
KL
72292001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7230
7231 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
7232 CONST_CAST_EXPR.
7233 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
7234
08f3a861
NB
72352001-11-16 Neil Booth <neil@daikokuya.demon.co.uk>
7236
7237 * cp-tree.h (print_class_statistics): Restore.
7238
8a2b77e7
JM
72392001-11-15 Jason Merrill <jason@redhat.com>
7240
3b1a4132
JM
7241 * method.c (use_thunk): Don't emit debugging information for thunks.
7242
8a2b77e7
JM
7243 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
7244 * decl.c (make_typename_type): Handle getting a class template.
7245 * search.c (lookup_field_r): A class template is good enough for
7246 want_type.
7247
7248 * call.c (convert_like_real): Only use cp_convert for the bad part.
7249 (standard_conversion): Also allow bad int->enum.
7250 * typeck.c (ptr_reasonably_similar): Also allow functions to
7251 interconvert. Pointers to same-size integers are reasonably
7252 similar.
7253
7254 * cvt.c (convert_to_void): If we build a new COND_EXPR, always
7255 give it void type.
7256
36a68fe7
NS
72572001-11-15 Nathan Sidwell <nathan@codesourcery.com>
7258
7259 PR g++/3154
7260 * init.c (sort_base_init): Remove unreachable code.
7261 (expand_member_init): Adjust comment to reflect reality. Simplify
7262 and remove unreachable code.
7263
f5e99456
NB
72642001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
7265
7266 * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
7267 (cxx_init): Update prototype.
7268 * decl.c (init_decl_processing): Rename. Move null node init
7269 to its creation time.
7270 * lex.c (cxx_init_options): Update.
7271 (cxx_init): Combine with old init_parse; also call
7272 cxx_init_decl_processing.
7273
fe5b6c1c
RS
72742001-11-14 Richard Sandiford <rsandifo@redhat.com>
7275
8a2b77e7
JM
7276 * decl.c (check_initializer): Try to complete the type of an
7277 array element before checking whether it's complete. Don't
7278 complain about arrays with complete element types but an
7279 unknown size.
7280 (cp_finish_decl): Build the hierarchical constructor before
7281 calling maybe_deduce_size_from_array_init.
fe5b6c1c 7282
77bd67cb
JM
72832001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
7284
7285 * Make-lang.in: Change all uses of $(manext) to $(man1ext).
7286
b02922a4
NS
72872001-11-13 Nathan Sidwell <nathan@codesourcery.com>
7288
7289 PR g++/4206
7290 * parse.y (already_scoped_stmt): Remove.
7291 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
7292
abfc1ef6
L
72932001-11-12 H.J. Lu <hjl@gnu.org>
7294
195a5def 7295 * cvt.c (ocp_convert): Don't warn the address of a weak
abfc1ef6
L
7296 function is always `true'.
7297
5d69f816
NB
72982001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
7299
7300 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
7301 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
7302 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
7303 * cp-tree.h (print_class_statistics): Remove.
7304 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
7305 cxx_print_identifier, cxx_set_yydebug): New.
7306 * lex.c (set_yydebug): Rename c_set_yydebug.
7307 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
7308 lang_print_xnode): Rename.
7309 * tree.c (print_lang_statistics): Rename.
7310
4fdc14ca
KG
73112001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7312
7313 * class.c (dump_array): Fix format specifier warning.
7314
3ac88239
NB
73152001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
7316
7317 * cp-lang.c (LANG_HOOKS_NAME): Override.
7318 (struct lang_hooks): Constify.
7319 * lex.c (cxx_init_options): Update.
7320 (lang_identify): Remove.
33bd39a2 7321 * parse.y (language_string): Remove.
3ac88239 7322
b21d216c
AF
73232001-11-08 Andreas Franck <afranck@gmx.de>
7324
7325 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
7326 DEMANGLER_CROSS_NAME): Handle program_transform_name the way
7327 suggested by autoconf.
7328 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
7329 (c++.install-common): Use the transformed target alias names.
7330
d23c55c2
NB
73312001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
7332
7333 * Make-lang.in: Update.
7334 * cp-lang.c: Include langhooks-def.h.
7335
2a2b1d56
KL
73362001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7337
7338 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
7339
76648a8b
KG
73402001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7341
7342 * lex.c (copy_lang_type): Add static prototype.
7343
fccef71e
KL
73442001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7345
7346 * pt.c (unify): Handle SCOPE_REF.
7347
19989812
JJ
73482001-11-01 Jakub Jelinek <jakub@redhat.com>
7349
7350 * tree.c (cp_copy_res_decl_for_inlining): Adjust
7351 DECL_ABSTRACT_ORIGIN for the return variable.
7352
5b7874aa
ZW
73532001-10-31 Zack Weinberg <zack@codesourcery.com>
7354
7355 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
7356
306ef644
JM
73572001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
7358
7359 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
7360 semantics.c, spew.c: Fix spelling errors.
7361
76543000
KL
73622001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7363
7364 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
7365
37207ee7
ZW
73662001-10-25 Zack Weinberg <zack@codesourcery.com>
7367
7368 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
7369 pop_everything.
7370
d2a6f3c0 73712001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8ac61af7
RK
7372
7373 * cp-lang.c (cxx_get_alias_set): New function.
7374 Point LANG_HOOKS_GET_ALIAS_SET to it.
7375
f1e09fa2 73762001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
b8c6534b
KL
7377
7378 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
7379 * cp-tree.h (make_unbound_class_template): Prototype new function.
7380 * decl.c (make_unbound_class_template): New function.
7381 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
7382 * error.c (dump_type): Likewise.
7383 * mangle.c (write_type): Likewise.
7384 * parse.y (template_parm): Likewise.
7385 (template_argument): Use make_unbound_class_template.
7386 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
7387 (tsubst): Likewise.
7388 (tsubst_copy): Likewise.
7389 (unify): Likewise.
7390 * tree.c (walk_tree): Likewise.
7391 * typeck.c (comptypes): Likewise.
7392
0df6c2c7
KG
73932001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7394
7395 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
7396 extra calls into fewer ones.
7397
97055d5c
AO
73982001-10-18 Alexandre Oliva <aoliva@redhat.com>
7399
7400 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
7401 Warn when merging inline with attribute noinline.
7402 (start_decl, start_function): Warn if inline and attribute
7403 noinline appear in the same declaration.
7404
b5823a44
L
74052001-10-16 H.J. Lu <hjl@gnu.org>
7406
7407 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
7408 for tree checking disabled.
7409
dc8ad298
HPN
74102001-10-16 Hans-Peter Nilsson <hp@axis.com>
7411
7412 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
7413 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
7414
d9f818d9
RS
74152001-10-15 Richard Sandiford <rsandifo@redhat.com>
7416
7417 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
7418 (unify): Only handle MINUS_EXPR specially if the above flag is set
7419 and the subtracted constant is 1. Clear the flag on recursive calls.
7420 Set it when unifying the maximum value in an INTEGER_TYPE's range.
7421
e1be26f4
RS
74222001-10-15 Richard Sandiford <rsandifo@redhat.com>
7423
7424 * decl.c (bad_specifiers): Don't allow exception specifications
7425 on any typedefs.
7426
a5da89c6
NB
74272001-10-14 Neil Booth <neil@daikokuya.demon.co.uk>
7428
7429 * cp/lex.c (init_cp_pragma): Similarly.
7430
4f96ff63
KL
74312001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7432
7433 * pt.c (lookup_template_class): Build complete template arguments
7434 for BOUND_TEMPLATE_TEMPLATE_PARM.
7435
11e74ea6
KL
74362001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7437
7438 * cp-tree.h (TYPE_BINFO): Update comment.
7439 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
7440 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
7441 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
7442 (copy_type): Prototype new function.
7443 * lex.c (copy_lang_decl): Gather tree node statistics.
7444 (copy_lang_type): New function.
7445 (copy_type): Likewise.
7446 (cp_make_lang_type): Create lang_type for
7447 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE
7448 and BOUND_TEMPLATE_TEMPLATE_PARM.
7449 * pt.c (tsubst): Use copy_type instead of copy_node.
7450 * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
7451
f5d47abd
KL
74522001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7453
7454 * pt.c (determine_specialization): Ignore functions without
7455 DECL_TEMPLATE_INFO.
7456
e60505a5
NS
74572001-10-12 Nathan Sidwell <nathan@codesourcery.com>
7458
7459 PR g++/4476
7460 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
7461
6f32162a
JM
74622001-10-11 Jason Merrill <jason_merrill@redhat.com>
7463
7464 * typeck2.c (store_init_value): Don't re-digest a bracketed
7465 initializer.
7466
7467 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
7468 ANON_AGGR_TYPE_P.
7469
4a8d0c9c
RH
74702001-10-11 Richard Henderson <rth@redhat.com>
7471
7472 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
7473 of an asm statement.
7474 (build_vtbl_ref_1): Split out from build_vtbl_ref.
7475 (build_vfn_ref): Use it to handle vtable descriptors before
7476 calling build_vtable_entry_ref.
7477 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
7478
84b72302
RH
74792001-10-10 Richard Henderson <rth@redhat.com>
7480
37207ee7 7481 * parse.y (asm_operand): Allow named operands.
84b72302 7482 * semantics.c (finish_asm_stmt): Tweek for changed location
4639c5c6 7483 of the operand constraint.
84b72302 7484
48c8b0be 74852001-10-09 Jason Merrill <jason_merrill@redhat.com>
72a08131
JM
7486
7487 * call.c (standard_conversion): Add bad conversion between
7488 integers and pointers.
7489 (convert_like_real): Don't use convert_for_initialization for bad
7490 conversions; complain here and use cp_convert.
7491 (build_over_call): Don't handle bad conversions specially.
7492 (perform_implicit_conversion): Allow bad conversions.
7493 (can_convert_arg_bad): New fn.
7494 * cp-tree.h: Declare it.
7495 * typeck.c (convert_for_assignment): Use it.
7496 (ptr_reasonably_similar): Any target type is similar to void.
7497
19551f29
AO
74982001-10-08 Alexandre Oliva <aoliva@redhat.com>
7499
7500 * Make-lang.in (CXX_OBJS): Added cp-lang.o.
7501 (cp/cp-lang.o): New rule.
7502 * cp-tree.h: Declare hooks.
7503 * tree.c: Make hooks non-static.
7504 (init_tree): Don't initialize hooks here.
7505 * lex.c: Likewise. Move definition of lang_hooks to...
7506 * cp-lang.c: ... new file.
7507
31ed8fea
RH
75082001-10-08 Richard Henderson <rth@redhat.com>
7509
7510 * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
7511 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
7512
8b60264b
KG
75132001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7514
7515 * class.c (build_vtable_entry_ref): Const-ify.
7516 * decl.c (predefined_identifier,
37207ee7 7517 initialize_predefined_identifiers): Likewise.
8b60264b
KG
7518 * init.c (build_new_1): Likewise.
7519 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
7520 Likewise.
7521
bc4c7159
AO
75222001-10-05 Alexandre Oliva <aoliva@redhat.com>
7523
7524 * optimize.c (struct inline_data): Moved to ../tree-inline.c.
7525 (INSNS_PER_STMT): Likewise.
7526 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
7527 (copy_body, initialize_inlined_parameters): Likewise.
7528 (declare_return_variable, inlinable_function_p): Likewise.
7529 (expand_call_inline, expand_calls_inline): Likewise.
7530 (optimize_inline_calls, clone_body): Likewise.
7531 * tree.c (walk_tree): Moved to ../tree-inline.c.
7532 (walk_tree_without_duplicates): Likewise.
7533 (copy_tree_r, remap_save_expr): Likewise.
7534
25af8512
AO
75352001-10-04 Alexandre Oliva <aoliva@redhat.com>
7536
7537 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
7538 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
7539 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
7540 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
7541 (flag_inline_trees): Moved declaration to ../tree-inline.h.
7542 (walk_tree): Moved declaration to ../tree-inline.h.
7543 (walk_tree_without_duplicates, copy_tree_r): Likewise.
7544 (remap_save_expr): Likewise.
7545 * decl.c: Include tree-inline.h.
7546 (lang_mark_tree): Don't mark inlined_fns.
7547 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
7548 * optimize.c: Include tree-inline.h.
7549 (optimize_inline_calls): Move declaration to ../tree.h, as
7550 non-static.
7551 (remap_decl): Use language-independent constructs and hooks.
7552 (remap_block, copy_body_r, declare_return_variable): Likewise.
7553 (inlinable_function_p): Likewise. Don't test for
7554 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
7555 no longer language-specific.
7556 (optimize_inline_calls): Likewise. Make it non-static. Moved
7557 call of dump_function to...
7558 (optimize_function): Here...
7559 (clone_body): New function, extracted from...
7560 (maybe_clone_body): ... here. Build decl_map locally and pass
7561 it on to clone_body.
7562 * pt.c, semantics.c: Include tree-inline.h.
7563 * tree.c: Likewise.
7564 (cp_walk_subtrees): New language-specific hook for tree inlining.
7565 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
7566 cp_is_overload_p, cp_auto_var_in_fn_p,
7567 cp_copy_res_decl_for_inlining): Likewise.
7568 (walk_tree): Move language-specific constructs into...
7569 (cp_walk_subtrees): this new function.
7570 (copy_tree_r): Use language-independent constructs and hooks.
7571 (init_tree): Initialize tree inlining hooks.
7572 (remap_save_expr): Adjust prototype so that the declaration
7573 does not require the definition of splay_tree.
7574
6a4af81f
JDA
75752001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
7576
7577 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
7578 to build the declaration instead of the declaration itself.
7579
0caee1c6
JM
75802001-10-02 Jason Merrill <jason_merrill@redhat.com>
7581
48c8b0be
JM
7582 * decl2.c (cxx_decode_option): Add 'else'.
7583
0caee1c6
JM
7584 * spew.c (end_input): No longer static.
7585 * cp-tree.h: Declare it.
7586 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
7587
80a497e4
JM
75882001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
7589
7590 * call.c (build_over_call), typeck.c (build_function_call_real):
7591 Pass type attributes to check_function_format rather than name or
7592 assembler name. Don't require there to be a name or assembler
7593 name to check formats.
7594
6431177a
JM
75952001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
7596
7597 * decl.c (init_decl_processing): Don't call
7598 init_function_format_info. Initialize lang_attribute_table
7599 earlier.
7600 (builtin_function): Call decl_attributes.
7601 (insert_default_attributes): New.
7602
55b3d665
JM
76032001-10-01 Jason Merrill <jason_merrill@redhat.com>
7604
7605 * decl.c (grokdeclarator): Copy array typedef handling from C
7606 frontend.
7607
7608 * decl.c (grokdeclarator): Copy too-large array handling from C
7609 frontend.
7610
9f57ca19
AO
76112001-09-29 Alexandre Oliva <aoliva@redhat.com>
7612
7613 * config-lang.in (target_libs): Added target-gperf, so that we
7614 don't try to build it if C++ is disabled.
7615
749ced52
ZW
76162001-09-23 Zack Weinberg <zack@codesourcery.com>
7617
7618 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
7619 (cp/errfn.o): Delete rule.
7620 (cp/error.o): Depend on flags.h.
7621 * errfn.c: Delete file.
7622 * cp-tree.h: Declare warn_deprecated. Remove definitions of
7623 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
7624 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
7625 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
7626 internal_error respectively. Make cp_deprecated into a macro.
7627 Don't define cp_printer typedef or declare cp_printers.
7628 * error.c: Include flags.h.
7629 Delete: struct tree_formatting_info, print_function_argument_list,
7630 print_declaration, print_expression, print_function_declaration,
7631 print_function_parameter, print_type_id, print_cv_qualifier_seq,
7632 print_type_specifier_seq, print_simple_type_specifier,
7633 print_elaborated_type_specifier, print_rest_of_abstract_declarator,
7634 print_parameter_declaration_clause, print_exception_specification,
7635 print_nested_name_specifier, and definition of cp_printers.
7636 (locate_error): New function.
7637 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
7638 rewritten in terms of locate_error and diagnostic.c.
7639 (cp_tree_printer): Rename cp_printer; wire up to *_to_string
7640 instead of deleted print_* routines. Handle %C, %L, %O, %Q also.
7641 (init_error): Adjust to match.
7642
d2a6f3c0 76432001-09-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
bb9f8221
RK
7644
7645 * Make-lang.in (CXX_C_OBJS): Add attribs.o.
7646
67231816
RH
76472001-09-21 Richard Henderson <rth@redhat.com>
7648
7649 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
7650 (build_vtbl_initializer): Likewise.
7651 (build_vfn_ref): New.
7652 * cp-tree.h: Declare it.
7653 * call.c (build_over_call): Use it.
7654 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
7655 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
7656
d2a6f3c0 76572001-09-21 J"orn Rennecke <amylaar@redhat.com>
c9574c9f
R
7658
7659 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
7660
91d231cb
JM
76612001-09-21 Joseph S. Myers <jsm28@cam.ac.uk>
7662
7663 Table-driven attributes.
7664 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
7665 * decl2.c (cplus_decl_attributes): Only take one attributes
7666 parameter.
7667 * cp-tree.c (cplus_decl_attributes): Update prototype.
7668 * class.c (finish_struct), decl.c (start_decl, start_function),
7669 decl2.c (grokfield), friend.c (do_friend), parse.y
7670 (parse_bitfield): Update calls to cplus_decl_attributes.
7671 * decl.c (grokdeclarator): Take a pointer to a single ordinary
7672 attribute list.
7673 * decl.h (grokdeclarator): Update prototype.
7674 * decl2.c (grokfield): Take a single ordinary attribute list.
7675 * friend.c (do_friend): Likewise.
7676 * decl.c (shadow_tag, groktypename, start_decl,
7677 start_handler_parms, grokdeclarator, grokparms, start_function,
7678 start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
7679 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
7680 (process_template_parm, do_decl_instantiation): Pass single
7681 ordinary attribute lists around.
7682 * decl.c (grokdeclarator): Correct handling of nested attributes.
7683 Revert the patch
7684 1998-10-18 Jason Merrill <jason@yorick.cygnus.com>
7685 * decl.c (grokdeclarator): Embedded attrs bind to the right,
7686 not the left.
7687 .
7688 * cp-tree.h (cp_valid_lang_attribute): Remove declaration
7689 (cp_attribute_table): Declare.
7690 * decl.c (valid_lang_attribute): Don't define.
7691 (lang_attribute_table): Define.
7692 (init_decl_processing): Initialize lang_attribute_table instead of
7693 valid_lang_attribute.
7694 * tree.c (cp_valid_lang_attribute): Remove.
7695 (handle_java_interface_attribute, handle_com_interface_attribute,
7696 handle_init_priority_attribute): New functions.
7697 (cp_attribute_table): New array.
7698 * decl2.c (import_export_class): Don't use
7699 targetm.valid_type_attribute.
7700
a1bda5f1
GDR
77012001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
7702
e6b9638b
JM
7703 * Make-lang.in (cp/error.o): Depend on real.h
7704 * error.c: #include "real.h"
a1bda5f1 7705
cb6edbcb
KG
77062001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7707
7708 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
7709 xmalloc/strcpy/strcat.
7710
83182544
KG
77112001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7712
7713 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
7714 Const-ification.
7715 * pt.c (tsubst_decl): Likewise.
7716
40008eda
KG
77172001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7718
7719 * decl2.c (lang_f_options): Const-ification.
7720 * lex.c (cplus_tree_code_name): Likewise.
7721 * spew.c (yyerror): Likewise.
7722
39e78d8b
NS
77232001-09-06 Nathan Sidwell <nathan@codesourcery.com>
7724
7725 PR c++/3986
7726 * class.c (force_canonical_binfo_r): Check & move an indirect
7727 primary base first.
7728 (force_canonical_binfo): Check that it's not already
7729 canonical.
7730 (mark_primary_virtual_base): Remove BINFO parameter.
7731 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
7732
6d0a3f67
NS
77332001-09-06 Nathan Sidwell <nathan@codesourcery.com>
7734
7735 Remove TYPE_NONCOPIED_PARTS.
7736 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
7737 CLASSTYPE_PURE_VIRTUALS.
7738 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
7739 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
72a08131 7740 (layout_class_type): Don't call fixup_inline_methods here ...
6d0a3f67
NS
7741 (finish_struct_1): ... call it here.
7742
4f8e1232
MM
77432001-09-04 Mark Mitchell <mark@codesourcery.com>
7744
7745 * decl.c (duplicate_decls): Remove code deadling with
7746 DECL_SAVED_INSNS.
7747 * decl2.c (finish_file): Likewise.
7748 * pt.c (instantiate_decl): Likewise.
7749 * semantics.c (expand_body): Don't defer local functions if
7750 they wouldn't be deferred for some other reason. Don't
7751 generate RTL for functions that will not be emitted.
7752 (genrtl_start_function): Remove code deadling with
7753 DECL_SAVED_INSNS.
7754 (genrtl_finish_function): Likewise.
7755
da86f08f
NS
77562001-09-04 Nathan Sidwell <nathan@codesourcery.com>
7757
7758 PR c++/4203
7759 * call.c (build_over_call): Do not optimize any empty base
7760 construction.
7761
38066e83
KL
77622001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7763
7764 * error.c (dump_template_decl): Output template parameters
7765 together with their specifiers.
7766 Output `class' prefix for template template parameter.
7767 (dump_decl): Fix formatting.
7768
598e9ba5 77692001-08-30 Kurt Garloff <garloff@suse.de>
749ced52 7770
598e9ba5
KG
7771 * optimize.c (inlinable_function_p): Allow only smaller single
7772 functions. Halve inline limit after reaching recursive limit.
749ced52 7773
f232e4a5
JR
77742001-08-30 Joern Rennecke <amylaar@redhat.com>
7775 Jason Merrill <jason_merrill@redhat.com>
7776
7777 * class.c (build_vtable_entry_ref): Subtract in char*, not
7778 ptrdiff_t.
7779
0213a355
JM
77802001-08-23 Jason Merrill <jason_merrill@redhat.com>
7781
7782 * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
7783 (build_cplus_array_type): Use cp_build_qualified_type, not
7784 TYPE_MAIN_VARIANT, to get an unqualified version.
7785
7786 * decl2.c (grok_alignof): Lose.
7787 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
7788 * typeck.c (c_alignof): Lose.
7789 * semantics.c (finish_sizeof, finish_alignof): New.
7790 * parse.y: Use them.
7791 * cp-tree.h: Declare them.
7792
fd10dd09
JM
77932001-08-22 Jason Merrill <jason_merrill@redhat.com>
7794
7795 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
7796 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
7797 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
7798
baeb4732
JJ
77992001-08-19 Jakub Jelinek <jakub@redhat.com>
7800
7801 * typeck2.c (add_exception_specifier): Only require complete type if
7802 not in processing template declaration.
7803
1c0cc57e
KG
78042001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7805
7806 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
7807 GNU_xref_start_scope and GNU_xref_end_scope.
7808
7809 * tree.c (TYPE_HASH): Moved to ../tree.h.
7810
9a52d09b
MM
78112001-08-16 Mark Mitchell <mark@codesourcery.com>
7812
7813 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
7814 on COMPOUND_EXPRs.
7815
b5d1cbd2
RH
78162001-08-14 Richard Henderson <rth@redhat.com>
7817
7818 * class.c, cp-tree.h (build_vfn_ref): Remove.
7819 * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
7820
63d6f87a
MM
78212001-08-13 Mark Mitchell <mark@codesourcery.com>
7822
7823 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
7824 empty class assignment as having side-effects to avoid
7825 spurious warnings.
7826
e78d8e51
ZW
78272001-08-13 Zack Weinberg <zackw@panix.com>
7828
7829 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
7830 * except.c: Include libfuncs.h.
7831
a60af04a
GDR
78322001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
7833
7834 * decl.c (grokdeclarator): Clarify diagnostic message.
7835
3605b283
KL
78362001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7837
7838 * decl2.c (do_nonmember_using_decl): Replace using directive
7839 with using declaration in the error message.
7840
4d5f3fbd
KL
78412001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7842
7843 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
7844 criterion to avoid rebuilding expression tree instead of
7845 processing_template_decl.
7846
07b2f2fd
JM
78472001-08-07 Jason Merrill <jason_merrill@redhat.com>
7848
7849 Support named return value optimization for inlines, too.
7850 * decl.c (finish_function): Nullify returns here.
7851 * semantics.c (genrtl_start_function): Not here.
7852 (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
7853 (nullify_returns_r): No longer static. Just clear RETURN_EXPR.
7854 Also nullify the CLEANUP_STMT for the nrv.
7855 * cp-tree.h: Declare it.
7856 * optimize.c (declare_return_variable): Replace the nrv with the
7857 return variable.
7858 * typeck.c (check_return_expr): Be more flexible on alignment check.
7859 Ignore cv-quals when checking for a matching type.
7860
2cc07db4
RH
78612001-08-09 Richard Henderson <rth@redhat.com>
7862
7863 * decl2.c (finish_objects): Use target hooks instead of
7864 assemble_constructor and assemble_destructor.
7865
0ca179b2
JDA
78662001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
7867
7868 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
7869
0830ae44
NS
78702001-08-07 Nathan Sidwell <nathan@codesourcery.com>
7871
7872 PR c++/3820
7873 Stop using TYPE_NONCOPIED_PARTS.
7874 * call.c (build_over_call): Be careful when copy constructing
7875 or assigning to an empty class.
7876 * class.c (check_bases_and_members): It has a
7877 COMPLEX_ASSIGN_REF if it has a vptr.
7878 (layout_class_type): Don't add empty class padding to
7879 TYPE_NONCOPIED_PARTS.
7880 (finish_struct_1): Don't add the VFIELD either.
7881 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
7882 initialization.
7883
59a13e0f
JM
78842001-08-07 Jason Merrill <jason_merrill@redhat.com>
7885
7886 * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
7887
47907859
RH
78882001-08-06 Richard Henderson <rth@redhat.com>
7889
7890 * decl2.c (finish_objects): Pass a symbol_ref and priority to
7891 assemble_{constructor,destructor}. Remove priority handling.
7892
eac69b8a
GDR
78932001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
7894
7895 Don't allow template-id in using-declaration.
7896 * decl2.c (validate_nonmember_using_decl): Handle template-ids.
7897 (do_class_using_decl): Likewise.
7898
ef6e958a
NB
78992001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk>
7900
7901 * cp/spew.c (read_token): No need to pop buffers.
7902
dff94ad7
SS
79032001-08-02 Stan Shebs <shebs@apple.com>
7904
7905 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
7906 (fnaddr_from_vtable_entry): Remove decl.
7907 * method.c (use_thunk): Update comment.
7908
026c3f13
AC
79092001-08-01 Andrew Cagney <ac131313@redhat.com>
7910
7911 * repo.c (get_base_filename): Change return value to const char
7912 pointer.
7913
1dbb6023
NS
79142001-08-02 Nathan Sidwell <nathan@codesourcery.com>
7915
7916 Kill -fhonor-std.
7917 * NEWS: Document.
7918 * cp-tree.h (flag_honor_std): Remove.
7919 (CPTI_FAKE_STD): Remove.
7920 (std_node): Remove comment about it being NULL.
7921 (fake_std_node): Remove.
7922 * decl.c (in_fake_std): Remove.
7923 (walk_namespaces_r): Remove fake_std_node check.
7924 (push_namespace): Remove in_fake_std code.
7925 (pop_namespace): Likewise.
7926 (lookup_name_real): Remove fake_std_node check.
7927 (init_decl_processing): Always create std_node. Always add
7928 std:: things there.
7929 (builtin_function): Always put non '_' fns in std.
7930 * decl2.c (flag_honor_std): Remove.
7931 (lang_f_options): Remove honor-std.
7932 (unsupported_options): Add honor-std.
7933 (set_decl_namespace): Remove fake_std_node check.
7934 (validate_nonmember_using_decl): Likewise.
7935 (do_using_directive): Likewise.
7936 (handle_class_head): Likewise.
7937 * dump.c (cp_dump_tree): Likewise.
7938 * except.c (init_exception_processing): Adjust.
7939 * init.c (build_member_call): Remove fake_std_node check.
7940 (build_offset_ref): Likewise.
7941 * lang-options.h: Remove -fhonor-std, -fno-honor-std.
7942 * rtti.c (init_rtti_processing): Adjust.
7943
6ad7895a
APB
79442001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
7945
7946 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
7947 operand while calling cp_tree_equal.
7948
befe7c61
NS
79492001-07-31 Nathan Sidwell <nathan@codesourcery.com>
7950
7951 The 3.0 ABI no longer has vbase pointer fields.
7952 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
7953 FORMAT_VBASE_NAME): Remove.
7954 * method.c (do_build_copy_constructor): Adjust.
7955 (do_build_assign_ref): Adjust.
7956 * search.c (lookup_field_r): Adjust.
7957 * typeck.c (build_component_ref): Adjust.
7958
7959 The 3.0 ABI always has a vtable pointer at the start of every
7960 polymorphic class.
7961 * rtti.c (build_headof_sub): Remove.
7962 (build_headof): Adjust.
7963 (get_tinfo_decl_dynamic): No need to check flag_rtti
7964 here. Adjust.
7965 (create_real_tinfo_var): Explain why we need a hidden name.
7966
20dde49d
NS
79672001-07-31 Nathan Sidwell <nathan@codesourcery.com>
7968
7969 PR c++/3631
7970 * class.c (update_vtable_entry_for_fn): The fixed adjustment
7971 of a virtual thunk should be from declaring base.
7972
b7ad2f8b
NS
79732001-07-31 Nathan Sidwell <nathan@codesourcery.com>
7974
7975 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
7976 the shared virtual base, so preserving inheritance graph order.
7977
57cb6d52
AJ
79782001-07-30 Andreas Jaeger <aj@suse.de>
7979
749ced52 7980 * decl2.c: Remove unused var global_temp_name_counter.
57cb6d52 7981
594280a3
RH
79822001-07-28 Richard Henderson <rth@redhat.com>
7983
7984 * method.c (pending_inlines): Remove.
7985
0ab142b0
NS
79862001-07-27 Nathan Sidwell <nathan@codesourcery.com>
7987
7988 * class.c (mark_primary_virtual_base): Don't adjust base
7989 offsets here.
7990 (dfs_unshared_virtual_bases): Adjust them here.
7991 (mark_primary_bases): Explain why we adjust at the end.
7992
d60d223b
NS
79932001-07-27 Nathan Sidwell <nathan@codesourcery.com>
7994
7995 * class.c (finish_struct_1): When copying the primary base's
7996 VFIELD, make sure we find it is at offset zero.
7997
db3ef87b
KL
79982001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7999
8000 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
8001 tsubst_expr for default template arguments.
8002
312b7c9d
NS
80032001-07-26 Nathan Sidwell <nathan@codesourcery.com>
8004
d60d223b 8005 PR c++/3621
312b7c9d 8006 * spew.c (yylex): Only copy the token's lineno, if it is
838dfd8a 8007 nonzero.
312b7c9d 8008
648c2206
NS
80092001-07-26 Nathan Sidwell <nathan@codesourcery.com>
8010
8011 PR c++/3624
8012 * call.c (resolve_args): Simplify, call
8013 convert_from_reference.
8014 (build_new_op): Resolve and convert from reference ARG1
8015 earlier. Adjust ARG2 & ARG3 resolve and conversion.
8016
969fd501
NS
80172001-07-26 Nathan Sidwell <nathan@codesourcery.com>
8018
8019 * decl.c (last_function_parm_tags): Remove.
8020 (current_function_parm_tags): Remove.
8021 (init_decl_processing): Adjust.
8022 (start_function): Adjust.
8023 (store_parm_decls): Adjust.
8024
8025 PR c++/3152
8026 * decl.c (grokdeclarator): Detect when a function typedef is
8027 declaring a function, and create last_function_parms correctly.
8028
08ac397c 80292001-07-25 Jason Merrill <jason_merrill@redhat.com>
749ced52 8030
08ac397c
JM
8031 * call.c (joust): Only prefer a non-builtin candidate to a builtin
8032 one if they have the same signature.
8033
8034 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on
8035 it rather than toplevel_bindings_p. Give it a mangled name if static.
8036 (convert_to_reference): Adjust.
8037 * decl2.c (get_temp_name): Lose.
8038 * mangle.c (mangle_ref_init_variable): New fn.
8039 (mangle_guard_variable): Strip the ref-init header.
8040 * cp-tree.h: Adjust.
8041 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
8042 initializer.
8043 (grok_reference_init): Always use DECL_INITIAL.
8044
40260429
NS
80452001-07-25 Nathan Sidwell <nathan@codesourcery.com>
8046
8047 PR c++/3416
8048 * call.c (build_conditional_expr): Recheck args after
8049 conversions.
8050 * cp-tree.h (build_conditional_expr): Move to correct file.
8051 * typeck.c (decay_conversion): Diagnose any unknown types
8052 reaching here.
8053 (build_binary_op): Don't do initial decay or default
8054 conversions on overloaded functions.
8055 (build_static_cast): Don't do a decay conversion here.
8056
ab085207
NS
80572001-07-25 Nathan Sidwell <nathan@codesourcery.com>
8058
8059 PR c++/3543
8060 * typeck.c (condition_conversion): Resolve an OFFSET_REF.
8061 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
8062
0abe00c5
NS
80632001-07-25 Nathan Sidwell <nathan@codesourcery.com>
8064
8065 * class.c (build_vtbl_or_vbase_field): Remove, move into ...
8066 (create_vtbl_ptr): ... here.
8067
90b1ca2f
NS
80682001-07-25 Nathan Sidwell <nathan@codesourcery.com>
8069
8070 * class.c (build_vbase_offset_vbtl_entries): Look for
8071 non-primary base of which we are a sub vtable.
8072
cfe5dc31
PE
80732001-07-24 Phil Edwards <pme@sources.redhat.com>
8074
8075 * semantics.c (finish_this_expr): Remove unused code.
8076
7f54a851
NS
80772001-07-24 Nathan Sidwell <nathan@codesourcery.com>
8078
8079 Simplify rtti, now we've only one ABI.
8080 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
8081 CPTI_TINFO_VAR_ID.
8082 (tinfo_decl_id, tinfo_var_id): Remove.
8083 (get_typeid_1): Remove.
8084 * rtti.c
8085 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
8086 (typeid_ok_p): New function.
8087 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
8088 (get_tinfo_decl): Remove old abi documentation.
8089 (tinfo_from_decl): Remove.
8090 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
8091 (get_typeid_1): Remove.
8092 (get_base_offset): Remove.
8093 (synthesize_tinfo_var): Absorb get_base_offset.
8094 (create_real_tinfo_var): Don't use tinfo_decl_id.
8095
18fee3ee
GS
80962001-07-23 Graham Stott <grahams@redhat.com>
8097
d30d6e7a 8098 * cp/class.c (type_requires_array_cookie): Fix use of uninitialized
18fee3ee
GS
8099 variable has_two_argument_delete_p.
8100
c4372ef4
NS
81012001-07-21 Nathan Sidwell <nathan@codesourcery.com>
8102
8103 Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
8104 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
8105 (CPTI_INDEX_IDENTIFIER): Remove.
8106 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
8107 (delta2_identifier): Remove.
8108 (index_identifier): Remove.
8109 (pfn_or_delta2_identifier): Remove.
8110 (flag_vtable_thunks): Remove.
8111 (VTABLE_DELTA2_NAME): Remove.
8112 (VTABLE_INDEX_NAME): Remove.
8113 (FNADDR_FROM_VTABLE_ENTRY): Adjust.
8114 (vfunc_ptr_type_node): Adjust.
8115 (VTABLE_NAME_PREFIX): Adjust.
8116 (build_vfn_ref): Lose first parameter.
8117 (fixup_all_virtual_upcast_offsets): Remove.
8118 * decl.c (initialize_predefined_identifiers): Remove
8119 delta2_identifier, index_identifier, pfn_or_delta2_identifier.
8120 (init_decl_processing): Remove no-vtable-thunk code.
8121 * decl2.c (flag_vtable_thunks): Remove.
8122 (mark_vtable_entries): Remove no-vtable-thunk code.
8123 * error.c (dump_decl): Remove no-vtable-thunk code.
8124 (dump_expr): Adjust ptr to member function code.
8125 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
8126 code.
8127 * rtti.c (build_headof): Remove no-vtable-thunk code.
8128 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
8129 * search.c (get_base_distance): Remove expand_upcast_fixups case.
8130 (virtual_context) Remove.
8131 (expand_upcast_fixups): Remove.
8132 (fixup_virtual_upcast_offsets): Remove.
8133 (fixup_all_virtual_upcast_offsets): Remove.
8134 * typeck.c (get_member_function_from_ptrfunc): Remove
8135 no-vtable-thunk code.
8136 * call.c (build_over_call): Adjust call to build_vfn_ref.
8137 * class.c (build_vfn_ref): Lose first parameter. Remove
8138 no-vtable-thunk code.
8139 (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
8140 (build_vtable_entry): Remove no-vtable-thunk code.
8141
3461fba7
NS
81422001-07-20 Nathan Sidwell <nathan@codesourcery.com>
8143
8144 Remove old-abi remnants. Remove comments about old abi
838dfd8a 8145 behavior. Remove references to 'new-abi' in comments.
3461fba7
NS
8146 * cp-tree.h: Adjust comments.
8147 (vbase_offsets_in_vtable_p): Delete.
8148 (vcall_offsets_in_vtable_p): Delete.
8149 (vptrs_present_everywhere_p): Delete.
8150 (all_overridden_vfuns_in_vtables_p): Delete.
8151 (merge_primary_and_secondary_vtables_p): Delete.
8152 (TYPE_CONTAINS_VPTR_P): Adjust.
8153 (VTT_NAME_PREFIX): Remove.
8154 (CTOR_VTBL_NAME_PREFIX): Remove.
8155 (init_vbase_pointers): Remove.
8156 * class.c: Adjust coments.
8157 (build_vbase_pointer_fields): Delete.
8158 (build_vbase_pointer): Remove old-abi code.
8159 (build_secondary_vtable): Likewise.
8160 (modify_all_vtables): Likewise.
8161 (create_vtable_ptr): Likewise.
8162 (layout_class_type): Likewise.
8163 (finish_struct_1): Likewise.
8164 (finish_vtbls): Likewise.
8165 (dfs_finish_vtbls): Delete.
8166 (build_vbase_offset_vtbl_entries): Remove old-abi code.
8167 * cvt.c: Adjust comments.
8168 * decl.c: Adjust comments.
8169 * decl2.c: Adjust comments.
8170 * init.c: Adjust comments.
8171 (construct_virtual_bases): Remove old-abi code.
8172 * lang-specs.h: Remove -fno-new-abi.
8173 * mangle.c: Adjust comments.
8174 * rtti.c: Adjust comments.
8175 (get_base_offset): Remove old-abi-code.
8176 * search.c: Adjust comments.
8177 (dfs_init_vbase_pointers): Remove.
8178 (dfs_vtable_path_unmark): Remove.
8179 (init_vbase_pointers): Remove.
8180 * semantics.c: Adjust comments.
8181 (emit_associated_thunks): Remove old-abi code.
8182 * typeck.c: Adjust comments.
8183
1c432a87
DB
81842001-07-20 Daniel Berlin <dan@cgsoftware.com>
8185
8186 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
8187 params.h.
8188
b7076960
MM
81892001-07-19 Mark Mitchell <mark@codesourcery.com>
8190
8191 * class.c (finish_struct_anon): Forbid nested classes.
8192
2b85879e
NB
81932001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
8194
8195 * decl2.c: Don't include dwarfout.h and dwarf2out.h.
8196 * optimize.c: Include debug.h.
8197 (maybe_clone_body): Use debug hook.
8198 * semantics.c: Include debug.h.
8199 (expand_body): Use debug hook.
8200
c60e94a7
NB
82012001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
8202
8203 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
8204
dbc957f1
MM
82052001-07-18 Mark Mitchell <mark@codesourcery.com>
8206
8207 * class.c (type_requires_array_cookie): New function.
8208 (check_methods): Don't try to figure out whether the type needs a
8209 cookie here.
8210 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
8211 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
8212 (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
8213 * pt.c (instantiate_class_template): Don't set
8214 TYPE_VEC_DELETE_TAKES_SIZE.
8215 * NEWS: Document ABI changes from GCC 3.0.
57cb6d52 8216
7ba0b0f7 82172001-07-18 Xavier Delacour <xavier@fmaudio.net>,
749ced52 8218 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7ba0b0f7
XD
8219
8220 * NEWS (Changes in GCC 3.0): Fix typo.
8221
59387d2e
JM
82222001-07-13 Joseph S. Myers <jsm28@cam.ac.uk>
8223
8224 * decl2.c (cplus_decl_attributes): Take a pointer to the node to
8225 which attributes are to be attached, and a flags argument. Update
8226 call to decl_attributes.
8227 (grokfield): Update call to decl_attributes.
8228 * class.c (finish_struct): Update call to cplus_decl_attributes.
8229 * cp-tree.h (cplus_decl_attributes): Update prototype.
8230 * decl.c (start_decl, grokdeclarator, start_function): Update
8231 calls to decl_attributes and cplus_decl_attributes.
8232 * friend.c (do_friend): Update call to cplus_decl_attributes.
8233 * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
8234
7ed47c04
MM
82352001-07-12 Mark Mitchell <mark@codesourcery.com>
8236
8237 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
8238 for `register' variables with an asm-specification.
8239
40b18c0a
MM
82402001-07-11 Mark Mitchell <mark@codesourcery.com>
8241
8242 * semantics.c (finish_asm_stmt): Mark the output operands
8243 to an asm addressable, if necessary.
8244
517c3b80
BE
82452001-07-11 Ben Elliston <bje@redhat.com>
8246
219670f1
BE
8247 * Revert this change -- there is a subtle bug.
8248
517c3b80
BE
8249 PR c++/80
8250 * decl.c (finish_enum): New "attributes" argument; pass it to
8251 cplus_decl_attributes. Use a narrower type if the enum is packed.
8252 * cp-tree.h (finish_enum): Adjust prototype.
8253 * parse.y (enum_head): New non-terminal.
8254 (structsp): Use it. Enums now may be preceded or followed by
8255 optional attributes -- pass their chained tree to finish_enum().
8256 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
8257
2ba9c47e
MM
82582001-07-10 Mark Mitchell <mark@codesourcery.com>
8259
8260 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
8261 variables.
8262
35241192
JM
82632001-07-10 Jason Merrill <jason_merrill@redhat.com>
8264
8265 * semantics.c (cp_expand_stmt): Fix for null
8266 current_function_return_value.
8267
07167a18
JM
82682001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl>
8269
8270 * call.c (build_op_delete_call): Initialize fn.
8271 (convert_like_real): Delete conditional.
8272 (joust): Initialize *w and *l.
8273 * class.c: Add prototype for binfo_ctor_vtable.
8274 (get_primary_binfo): Initialize result.
8275 * init.c (build_java_class_ref): Initialize name.
ae818d3b 8276
35241192
JM
82772001-07-09 Erik Rozendaal <dlr@acm.org>
8278
ae818d3b
ER
8279 * typeck.c (unary_complex_lvalue): Do not duplicate the
8280 argument to modify, pre-, or post-increment when used as an
8281 lvalue and when the argument has side-effects.
8282
12a68f1f
JM
82832001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
8284
8285 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
8286 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call
8287 cplus_decl_attributes even if attrs is NULL.
8288 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
8289
f7a4cec0
JM
82902001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
8291
8292 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
8293 calls to decl_attributes.
8294
c80106a4
IR
82952001-07-06 Ira Ruben <ira@apple.com>
8296
ae818d3b 8297 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
c80106a4
IR
8298 be DECL_TEMPLATE_RESULT.
8299
dac65501
KL
83002001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8301
8302 * cp-tree.h (copy_template_template_parm): Rename to ...
8303 (bind_template_template_parm): ... here.
8304 * tree.c (copy_template_template_parm): Rename to ...
8305 (bind_template_template_parm): ... here. Remove the case when
8306 NEWARGS is NULL_TREE.
8307 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
8308 BOUND_TEMPLATE_TEMPLATE_PARM.
8309 * pt.c (lookup_template_class): Adjust.
8310
01f9e964
JM
83112001-07-05 Jason Merrill <jason_merrill@redhat.com>
8312
8313 * cvt.c (convert_lvalue): New fn.
8314 * cp-tree.h: Declare it.
8315 * method.c (do_build_assign_ref): Use it.
8316 (do_build_copy_constructor): Convert parm to base types
8317 before calling base constructors.
8318
8319 * typeck.c (check_return_expr): Check DECL_ALIGN instead of
8320 DECL_USER_ALIGN. Check flag_elide_constructors instead of
8321 optimize.
8322 * semantics.c (cp_expand_stmt): Don't destroy the named return value.
8323
6be77748
NS
83242001-07-02 Nathan Sidwell <nathan@codesourcery.com>
8325
8326 * optimize.c (optimize_inline_calls): New function, broken out
8327 of ...
8328 (optimize_function): ... here. Call it. Don't inline if it is
8329 a thunk.
8330 (dump_function): Print name of dump flag causing this dump.
8331 * semantics.c (expand_body): Move thunk inline check to
8332 optimize_function.
8333
8d8e52be
JM
83342001-06-29 Joseph S. Myers <jsm28@cam.ac.uk>
8335
8336 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
8337 (comptypes): Use target.comp_type_attributes.
8338
5a0db193
NS
83392001-06-29 Nathan Sidwell <nathan@codesourcery.com>
8340
8341 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
8342
46f018e1
GDR
83432001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
8344
8345 * error.c (lang_print_error_function): Add a `diagnostic_context *'
8346 parameter. Tweak.
8347
501990bb
NB
83482001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk>
8349
8350 * decl2.c (import_export_class): Update.
8351
f68fc4db
GDR
83522001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
8353
8354 * error.c (init_error): Adjust settings.
8355
9596ddd6
GDR
83562001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
8357
8358 * error.c (init_error): Adjust settings.
8359
c93586fa
RS
83602001-06-19 Richard Sandiford <rsandifo@redhat.com>
8361
8362 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
8363 return pointers to data members by reference rather than by value.
8364
0d97bf4c
JM
83652001-06-18 Jason Merrill <jason_merrill@redhat.com>
8366
8367 Implement the Named Return Value optimization.
8368 * cp-tree.h (struct cp_language_function): Add x_return_value.
8369 (current_function_return_value): Now a macro.
8370 * decl.c: Don't define it.
8371 (define_label, finish_case_label): Don't clear it.
8372 (init_decl_processing): Don't register it with GC.
8373 * semantics.c (genrtl_finish_function): Don't check it for
8374 no_return_label. Copy the RTL from the return value to
8375 current_function_return_value and walk, calling...
8376 (nullify_returns_r): ...this new fn.
8377 * typeck.c (check_return_expr): Set current_function_return_value.
8378
13de7ec4
JM
83792001-06-15 Jason Merrill <jason_merrill@redhat.com>
8380
8381 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
8382 sharing a ctor vtable with. Merge code for cases 1 and 2.
8383 (binfo_ctor_vtable): New fn.
8384 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
8385
3ea099f1
JM
83862001-06-14 Jason Merrill <jason_merrill@redhat.com>
8387
8388 * class.c (dfs_find_final_overrider): Fix logic.
8389
8390 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
8391 virtual thunk instead of non-virtual.
8392 (get_matching_virtual): Uncomment.
8393
8394 * pt.c (unify): Don't recurse between the POINTER_TYPE and the
8395 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on
8396 PARM, not ARG.
8397
87326ba8
NS
83982001-06-14 Nathan Sidwell <nathan@codesourcery.com>
8399
8400 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
8401 we've not emerged from the hierarchy of RTTI_BINFO on reaching
8402 a non-virtual base.
8403
e065a36e
MM
84042001-06-13 Mark Mitchell <mark@codesourcery.com>
8405
8406 * NEWS: Update release number.
8407
623fe76a
NS
84082001-06-12 Nathan Sidwell <nathan@codesourcery.com>
8409
8410 PR c++/3130, c++/3131, c++/3132
8411 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
8412 * class.c (force_canonical_binfo_r): Move
8413 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
8414 virtual bases unless they're primary and what they're primary
8415 too has been moved.
8416 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
8417 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
8418 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
8419 derived binfo.
8420 (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
8421 (layout_nonempty_base_or_field): Add most derived type
8422 parameter. Adjust.
8423 (layout_empty_base): Likewise.
8424 (build_base_field): Likewise.
8425 (build_base_fields): Likewise.
8426 (propagate_binfo_offsets): Add most derived type
8427 parameter. Skip non canonical virtual bases too.
8428 (dfs_set_offset_for_unshared_vbases): Don't skip primary
8429 bases. Do skip canonical bases.
8430 (layout_virtual_bases): Adjust.
8431 (layout_class_type): Adjust.
8432 (dfs_get_primary_binfo): Build list of virtual primary base
8433 candidates.
8434 (get_primary_binfo): Check that the shared virtual primary
8435 base candidate was found first.
8436 (accumulate_vtbl_inits): Don't do anything for non-vptr
8437 containing binfos. For case 1 primary virtual bases, keep
8438 checking that we've not emerged from the hierarchy of RTTI_BINFO.
8439
7bdcf888
NS
84402001-06-12 Nathan Sidwell <nathan@codesourcery.com>
8441
8442 PR c++/3089
8443 * class.c (dfs_accumulate_vtbl_inits): Always walk down the
8444 hierarchy looking for primary bases for a ctor
8445 vtable. Recursively call oneself, if we meet our primary via
8446 this route and haven't met it yet via inheritance graph order.
8447
25b5b465
MM
84482001-06-11 Mark Mitchell <mark@codesourcery.com>
8449
8450 * lang-options.h: Emit documentation for -fno-honor-std, not
8451 -fhonor-std.
8452
eb2d0614
AO
84532001-06-10 Alexandre Oliva <aoliva@redhat.com>
8454
8455 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
8456 Don't clobber delta.
8457 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
8458
2a2b2d43
GDR
84592001-06-10 Mark Mitchell <mark@codesourcery.com>
8460 Gabriel Dos Reis <gdr@codesourcery.com>
8461
8462 * Make-lang.in (cp/call.o): Depend on diagnostic.h
8463 (cp/typeck.o): Depend on diagnostic.h
8464 (cp/typeck2.o): Depend on diagnostic.h
07167a18 8465 (cp/repo.o): Depend on dignostic.h
2a2b2d43
GDR
8466 * typeck.c: #include diagnostic.h
8467 (convert_for_initialization): Remove extern declaration for
8468 warningcount and errorcount.
8469
8470 * call.c: #include diagnostic.h
8471 (convert_like_real): Remove extern declaration for warnincount and
07167a18 8472 errorcount.
2a2b2d43
GDR
8473
8474 * repo.c: #include diagnostic.h
8475 * typeck2.c: #include diagnostic.h
8476
06d5e633
NS
84772001-06-08 Nathan Sidwell <nathan@codesourcery.com>
8478
8479 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
8480 in previous change.
8481
9ac1bd2e
NS
84822001-06-08 Nathan Sidwell <nathan@codesourcery.com>
8483
8484 PR c++/2929
8485 * friend.c (do_friend): Use push_decl_namespace for classes at
8486 namespace scope.
8487
85a9a0a2
NS
84882001-06-08 Nathan Sidwell <nathan@codesourcery.com>
8489 Jason Merrill <jason_merrill@redhat.com>
8490
8491 PR c++/3061
8492 * class.c (build_secondary_vtable): Use assert, rather than an error
8493 message.
8494 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
8495 (dfs_accumulate_vtbl_inits): A lost primary virtual base may
8496 be between ORIG_BINFO and RTTI_BINFO, but neither of them.
8497 Don't set BINFO_VTABLE for a primary virtual base.
8498
daa8df65
MM
84992001-06-07 Mark Mitchell <mark@codesourcery.com>
8500
8501 * decl.c (duplicate_decls): Update source position information
8502 when a template function is defined.
8503
37344b9b
PE
85042001-06-07 Phil Edwards <pme@sources.redhat.com>
8505
8506 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h.
8507
fcebb2dd
NS
85082001-06-07 Nathan Sidwell <nathan@codesourcery.com>
8509
8510 PR c++/2914
8511 * decl.c (pushtag): Don't push into a complete type's scope.
8512
d0cd8b44
JM
85132001-06-06 Jason Merrill <jason_merrill@redhat.com>
8514
8515 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
8516 (struct lang_decl_flags): Lose generate_with_vtable_p.
8517 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
8518 * class.c (copy_virtuals): Adjust.
8519 * decl2.c (mark_vtable_entries): Adjust.
8520 * method.c (make_thunk, build_vtable_entry): Adjust.
8521 * class.c (update_vtable_entry_for_fn): Only look as far as the
8522 first defining class.
07167a18 8523 (build_vtbl_initializer): Put nothing in the slot for a function only
d0cd8b44 8524 defined in a lost primary virtual base.
07167a18 8525 (add_vcall_offset_vtbl_entries_1): Use the same code for
d0cd8b44
JM
8526 the lost primary case and the normal case.
8527 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
8528 (get_vfield_offset, get_derived_offset): Lose.
8529 (dfs_find_final_overrider): Use look_for_overrides_here.
8530 (get_matching_virtual): New fn.
8531 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
8532 not BV_VCALL_INDEX.
8533 * search.c (look_for_overrides_here): Split out from...
8534 (look_for_overrides_r): Here.
8535
8536 * class.c (find_final_overrider): Return error_mark_node on error.
8537
8538 * decl2.c (key_method): #if 0 accidental change.
8539
acf97e0b
JDA
85402001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
8541
8542 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
8543 (build_over_call): Likewise.
8544 * decl.c (grokparms): Likewise.
8545 * pt.c (tsubst_decl): Likewise.
8546 * typeck.c (convert_arguments): Likewise.
8547
7e9abee9
MM
85482001-06-05 Mark Mitchell <mark@codesourcery.com>
8549
47ee8904
MM
8550 * semantics.c (begin_class_definition): Robustify.
8551
7e9abee9
MM
8552 * pt.c (instantiate_decl): Tell the repository code about the
8553 clones, not the cloned functions.
8554 * repo.c (repo_template_used): Explicitly instantiate the cloned
8555 function, not the clones.
8556
bea09693
NS
85572001-06-05 Nathan Sidwell <nathan@codesourcery.com>
8558
8559 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
8560 ICS_BAD_FLAG on created conversion.
8561 (compare_ics): Break out rank.
8562
8f7550ca
NS
85632001-06-05 Nathan Sidwell <nathan@codesourcery.com>
8564
8565 * decl.c (xref_tag): Remove extraneous %s on dependent name
8566 lookup warning.
8567
442e01b6
NS
85682001-06-05 Nathan Sidwell <nathan@codesourcery.com>
8569
8570 * class.c (layout_vtable_decl): Fix off by one error on
8571 build_index_type.
8572 (build_vtt): Likewise.
8573 (build_ctor_vtbl_group): Likewise.
8574
b7442fb5
NS
85752001-06-05 Nathan Sidwell <nathan@codesourcery.com>
8576
8577 * class.c (maybe_indent_hierarchy): New function.
8578 (dump_class_hierarchy_r): Add flags. Dump extra binfo
8579 information, if enabled. Use maybe_indent_hierarchy. Adjust
8580 output format.
8581 (dump_class_hierarchy): Adjust prototype. Adjust output format.
8582 (dump_array, dump_vtable, dump_vtt): New functions.
8583 (finish_struct_1): Adjust hierarchy dumping.
8584 (initialize_vtable): Call dump_vtable.
8585 (build_vtt): Call dump_vtt.
8586 (build_ctor_vtbl_group): Call dump_vtable.
8587 * decl2.c (flag_dump_class_layout): Remove.
8588 (cxx_decode_option): Remove dump translation unit
8589 and dump class hierarchy check. Call dump_switch_p.
8590 (finish_file): Adjust dumping.
8591 (dump.c): Only dump base classes if not TDF_SLIM.
8592 Only dump namespace members if not TDF_SLIM.
8593 * optimize.c (dump_function): New function.
8594 (optimize_function): Call dump_function.
8595 * semantics.c (expand_body): Use dump_enabled_p.
8596
e5410b32
NS
85972001-06-01 Nathan Sidwell <nathan@codesourcery.com>
8598
8599 PR g++/2936
8600 Part missed from first commit
8601 * decl2.c (finish_anon_union): Copy context.
8602
e97c9488
NS
86032001-05-30 Nathan Sidwell <nathan@codesourcery.com>
8604
8605 PR g++/2936
e97c9488
NS
8606 * optimize.c (remap_decl): Remap anonymous aggregate members too.
8607
87d9ac49
NS
86082001-05-26 Nathan Sidwell <nathan@codesourcery.com>
8609
8610 PR g++/2823
8611 * semantics.c (expand_body): Don't optimize thunks.
8612
88657302
RH
86132001-05-25 Sam TH <sam@uchicago.edu>
8614
8615 * cp-tree.h lex.h: Fix header include guards.
8616
86172001-05-25 Mark Mitchell <mark@codesourcery.com>
10841285
MM
8618
8619 * decl.c (init_decl_processing): Tweak.
8620
0b1161fc
MM
86212001-05-24 Mark Mitchell <mark@codesourcery.com>
8622
8623 * decl.c (duplicate_decls): Tidy.
8624 (init_decl_processing): Always set flag_no_builtin.
8625
6f56d925
NS
86262001-05-24 Nathan Sidwell <nathan@codesourcery.com>
8627
8628 PR c++/2184
8629 * decl2.c (do_local_using_decl): Push the decls, even in a
8630 template.
8631
39e0656d
MM
86322001-05-22 Mark Mitchell <mark@codesourcery.com>
8633
8634 * optimize.c (initialize_inlined_parameters): Don't set
8635 TREE_READONLY for a VAR_DECL taking the place of an inlined
8636 PARM_DECL.
8637
0401d499
JM
86382001-05-22 Jason Merrill <jason_merrill@redhat.com>
8639
8640 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
8641 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
8642 attribute.
8643
14fc3426
JM
86442001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
8645
8646 * parse.y: Refer to compound literals as such, not as
8647 constructor-expressions.
8648
3f41ffd8
MM
86492001-05-21 Mark Mitchell <mark@codesourcery.com>
8650
8651 * call.c (build_op_delete_call): Ignore exception-specifications
8652 when looking for matching delete operators.
8653 * init.c (build_new_1): Compute whether or not the allocation
8654 function used is a placement allocation function or not, and
8655 communicate this information to build_op_delete_call.
8656
1a6025b4
JM
86572001-05-21 Jason Merrill <jason_merrill@redhat.com>
8658
90ecce3e
JM
8659 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi.
8660 (build_vtbl_ref): Adjust.
8661 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
8662 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
8663 Re-add vtable-gc.
8664 (unsupported_options): Correspondingly.
8665
8666 * decl2.c (maybe_make_one_only): Check flag_weak, not
8667 supports_one_only().
8668
1a6025b4
JM
8669 * cp-tree.def (START_CATCH_STMT): Lose.
8670 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS.
8671 * tree.c (cp_statement_code_p): Don't case it.
8672 * semantics.c (cp_expand_stmt): Likewise.
8673 * cp-tree.h (START_CATCH_TYPE): Lose.
8674 (HANDLER_TYPE): New.
8675 * except.c (expand_start_catch_block): Don't start any blocks.
8676 Return the type.
8677 (expand_end_catch_block): Don't end any blocks.
8678 * parse.y (handler): Don't pass anything from finish_handler_parms
8679 to finish_handler.
8680 * pt.c (tsubst_expr): Likewise.
8681 * semantics.c (begin_handler): Call note_level_for_catch here.
8682 (finish_handler_parms): Don't return anything.
8683 (genrtl_catch_block, begin_catch_block): Lose.
8684 (genrtl_handler): Call expand_start_catch here.
8685
86862001-05-18 Jason Merrill <jason_merrill@redhat.com>
8687
8688 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
8689 (get_vtable_decl, build_vtt): Not here.
8690
d30a825a
NS
86912001-05-20 Nathan Sidwell <nathan@codesourcery.com>
8692
8693 PR c++/2781
8694 * optimize.c (update_cloned_parm): Copy addressability and other
8695 flags.
8696
3b82c249
KL
86972001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8698
8699 * pt.c (determine_specialization): Ignore artificial functions.
8700
2a967f3d
NB
87012001-05-20 Neil Booth <neil@daikokuya.demon.co.uk>
8702
8703 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
8704 (C_RID_CODE): Remove.
8705 * lex.c (cxx_init_options): Call set_identifier_size. Update.
8706 (init_parse): Don't do it here.
8707
f99df08e
DN
87082001-05-18 Diego Novillo <dnovillo@redhat.com>
8709
8710 * decl2.c (finish_objects): Use the original SYMBOL_REF from the
8711 function declaration to avoid stripping the symbol's attributes.
8712
2b0cbc5d
NS
87132001-05-18 Nathan Sidwell <nathan@codesourcery.com>
8714
8715 * decl.c (pushdecl): Adjust error string.
8716 (xref_tag): Adjust friend class injection warning. Remove the
8717 inherited name from the class shadowed scope.
8718
e6855a2d
MM
87192001-05-17 Mark Mitchell <mark@codesourcery.com>
8720
8721 * except.c (cp_protect_cleanup_actions): New function.
07167a18 8722 (init_exception_processing): Don't set protect_cleanup_actions
e6855a2d
MM
8723 here. Do set lang_protect_cleanup_actions.
8724
cc469ee9
NS
87252001-05-16 Nathan Sidwell <nathan@codesourcery.com>
8726
8727 * spew.c (read_token): Call yyerror on all unexpected tokens.
8728
3f0a9b35
NS
87292001-05-16 Nathan Sidwell <nathan@codesourcery.com>
8730
8731 * init.c (member_init_ok_or_else): Take a tree rather than
8732 string for name.
8733 (expand_member_init): Adjust.
8734
8d0cb60d
NC
87352001-05-14 Nick Clifton <nickc@cambridge.redhat.com>
8736
8737 * decl.c (duplicate_decls): Suppress warning about duplicate
749ced52 8738 decls if the first decl is a friend.
8d0cb60d 8739
1f730ff7
ZW
87402001-05-12 Zack Weinberg <zackw@stanford.edu>
8741
8742 * except.c (choose_personality_routine): Export. Add
8743 explanatory comment. Take an enum languages, not a boolean.
8744 (initialize_handler_parm): Adjust to match.
8745 * cp-tree.h: Prototype choose_personality_routine.
8746 * lex.c (handle_pragma_java_exceptions): New function.
8747 (init_cp_pragma): Register #pragma GCC java_exceptions.
8748
90e0c410
NB
87492001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
8750
8751 * method.c (build_mangled_C99_name): Remove unused prototype.
8752
cb7fdde2
AO
87532001-05-12 Alexandre Oliva <aoliva@redhat.com>
8754
8755 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
8756 * typeck.c (get_member_function_from_ptrfunc,
8757 build_ptrmemfunc, expand_ptrmemfunc_cst): Take
8758 TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
18ae7f63
AO
8759
8760 Reverted Geoff Keating's 2001-05-03's patch.
8761
401deb20
IR
87622001-05-11 Ira Ruben <ira@apple.com>
8763
8764 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
8765
8e93d446
NB
87662001-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
8767
8768 * cp-tree.h (finish_label_expr, lookup_label): Delete.
8769 * parse.y: Update for '&&'; don't issue warning here.
8770 * semantics.c (finish_label_expr): Delete.
8771
5cdba4ff
MM
87722001-05-07 Mark Mitchell <mark@codesourcery.com>
8773
8774 * splay-tree.h (splay_tree_max): New function.
8775 (splay_tree_min): Likewise.
8776
8e9eff6b
GK
87772001-05-03 Geoffrey Keating <geoffk@redhat.com>
8778
8779 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
8780 (pfn_vflag_identifier): Define.
8781 Update comment about layout of pointer functions.
8782 (build_ptrmemfunc1): Update prototype.
8783 (expand_ptrmemfunc_cst): Update prototype.
8784 * decl.c (initialize_predefined_identifiers): Initialize
8785 pfn_vflag_identifier.
8786 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
8787 an extra field to the type.
07167a18 8788 * expr.c (cplus_expand_constant): Pass 'flag' between
8e9eff6b
GK
8789 expand_ptrmemfunc_cst and build_ptrmemfunc1.
8790 * typeck.c (get_member_function_from_ptrfunc): When
8791 FUNCTION_BOUNDARY < 16, look at additional field to determine
8792 if a pointer-to-member is a real pointer or a vtable offset.
8793 (build_ptrmemfunc1): Add new parameter to contain extra field.
8794 (build_ptrmemfunc): Pass the extra field around.
8795 (expand_ptrmemfunc_cst): Add new parameter to return extra field.
8796 (pfn_from_ptrmemfunc): Ignore the extra field.
8797
acc72c37
MM
87982001-05-03 Mark Mitchell <mark@codesourcery.com>
8799
8800 * cp-tree.h (flag_inline_trees): Update documentation.
8801 * decl.c (init_decl_processing): Adjust handling of
8802 flag_inline_functions and flag_inline_trees to support -O3.
8803 (grokfndecl): Set DECL_INLINE on all functions if that's what
8804 the user requested.
8805 (save_function_data): Clear DECL_INLINE in
8806 current_function_cannot_inline is non-NULL.
8807 * decl2.c (flag_inline_trees): Update documentation.
8808
5158d7ee
NS
88092001-05-03 Nathan Sidwell <nathan@codesourcery.com>
8810
8811 * dump.c (cp_dump_tree, USING_STMT case): New case.
8812 * tree.c (cp_statement_code_p): Add USING_STMT.
8813 * decl2.c (do_using_directive): Add the using directive statement.
8814
8815 * tree.c (walk_tree): Reformat an if block.
8816
80f5bb34
MM
88172001-05-02 Mark Mitchell <mark@codesourcery.com>
8818
8819 * decl.c (compute_array_index_type): Don't try to do anything with
8820 the indices when processing a template.
8821
3e411c3f
KG
88222001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8823
8824 * call.c: NULL_PTR -> NULL.
8825 * class.c: Likewise.
8826 * cvt.c: Likewise.
8827 * decl.c: Likewise.
8828 * decl2.c: Likewise.
8829 * except.c: Likewise.
8830 * init.c: Likewise.
8831 * rtti.c: Likewise.
8832 * search.c: Likewise.
8833 * tree.c: Likewise.
8834 * typeck.c: Likewise.
8835 * typeck2.c: Likewise.
8836
46188dca
MM
88372001-05-02 Mark Mitchell <mark@codesourcery.com>
8838
8839 * decl2.c (do_using_directive): Revert previous patch.
8840
9da99f7d
NS
88412001-05-01 Nathan Sidwell <nathan@codesourcery.com>
8842
8843 * cp-tree.def (USING_STMT): New statement node.
8844 * cp-tree.h (USING_STMT_NAMESPACE): New macro.
8845 * decl2.c (do_using_directive): Add USING_STMT to statement
8846 tree. Don't emit errors when processing template decl.
8847 * pt.c (tsubst_expr, USING_STMT case): New case.
8848 * semantics.c (cp_expand_stmt, USING_STMT case): New case.
8849
4b48a93e
NS
88502001-05-01 Nathan Sidwell <nathan@codesourcery.com>
8851
8852 * call.c (build_new_op): Convert args from reference here.
8853 (build_conditional_expr): Don't convert here.
8854
1bcea8d7
NS
88552001-05-01 Nathan Sidwell <nathan@codesourcery.com>
8856
8857 * spew.c (last_token_id): New static variable.
8858 (read_token): Set it here.
8859 (yyerror): Use it here.
8860
d72040f5
RH
88612001-04-30 Richard Henderson <rth@redhat.com>
8862
749ced52 8863 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
d72040f5
RH
8864 * decl.c: Likewise.
8865
c3aac512
MM
88662001-04-30 Mark Mitchell <mark@codesourcery.com>
8867
8868 * gxxint.texi: Remove.
8869 * Make-lang.in: Remove all traces of gxxint.texi.
8870
d2a6f3c0 88712001-04-30 Mark P Mitchell <mark@codesourcery.com>
5fd893d5
MM
8872
8873 * decl2.c (start_static_initialization_or_destruction): Correct
8874 logic to handle the -fno-use-cxa-atexit case.
8875
d60e5448
MM
88762001-04-30 Mark Mitchell <mark@codesourcery.com>
8877
8878 * optimize.c (update_cloned_parm): New function.
8879 (maybe_clone_body): Use it. Update the `this' parameter too.
8880
7200764f
JM
88812001-04-29 Joseph S. Myers <jsm28@cam.ac.uk>
8882
8883 * decl2.c (unsupported_options): Add new-abi.
8884 * lang-options.h: Remove no longer supported options.
8885
2d46ec83
NS
88862001-04-27 Nathan Sidwell <nathan@codesourcery.com>
8887
8888 * except.c (can_convert_eh): Don't check template parms,
8889 typename types etc.
8890
02a1a68c
NS
88912001-04-27 Nathan Sidwell <nathan@codesourcery.com>
8892
8893 * optimize.c (maybe_clone_body): Copy parameter names and locations.
8894
5f6eeeb3
NS
88952001-04-27 Nathan Sidwell <nathan@codesourcery.com>
8896
8897 * cp-tree.h (adjust_clone_args): Prototype new function.
8898 * class.c (adjust_clone_args): New function.
8899 * decl.c (start_function): Call it for in charge ctors.
8900
1b28d441
MM
89012001-04-26 Mark Mitchell <mark@codesourcery.com>
8902
8903 * method.c (use_thunk): Make sure that thunks really are emitted
8904 when requested.
8905
0576ec13
NS
89062001-04-26 Nathan Sidwell <nathan@codesourcery.com>
8907
8908 * mangle.c (write_chars): New macro.
8909 (hwint_to_ascii): New function
8910 (write_number): Use it.
8911 (write_integer_cst): Deal with really big numbers.
8912
b96ada87
MM
89132001-04-25 Mark Mitchell <mark@codesourcery.com>
8914
8915 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
8916 the clone.
8917
6bda7a5e
NS
89182001-04-25 Nathan Sidwell <nathan@codesourcery.com>
8919
8920 * decl.c (grokdeclarator): Set context of namespace scope
8921 TYPE_DECLS.
8922
11fe225a
ZW
89232001-04-24 Zack Weinberg <zackw@stanford.edu>
8924
8925 * cp/optimize.c: Include hashtab.h.
8926 (struct inline_data): Add tree_pruner.
8927 (expand_call_inline, expand_calls_inline): Use it when calling
8928 walk_tree.
8929 (optimize_function): Initialize and free tree_pruner.
8930
0ba8a114
NS
89312001-04-24 Nathan Sidwell <nathan@codesourcery.com>
8932
8933 Lazy __FUNCTION__ generation.
8934 * cp-tree.def (FUNCTION_NAME): Remove.
8935 * cp-tree.h (function_name_declared_p): Remove.
8936 (cp_fname_init): Prototype.
8937 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
8938 don't call declare_function_name. Call start_fname_decls.
8939 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
8940 clobber the line number.
8941 (cp_fname_init): New function.
8942 (start_function): Call start_fname_decls.
8943 (finish_function): Call finish_fname_decls.
8944 * lex.c (reswords): Add slots for __FUNCTION__ et al.
8945 (rid_to_yy): Add mappings for __FUNCTION__ et al.
8946 * optimize.c (maybe_clone_body): Remove function_name_declared_p.
8947 * parse.y (VAR_FUNC_NAME): New token.
8948 (primary): Add VAR_FUNC_NAME.
8949 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
8950 generation.
8951 (tsubst, FUNCTION_NAME case): Remove.
8952 (tsubst_copy, FUNCTION_NAME case): Remove.
8953 (tsubst_expr, DECL_STMT case): Be careful with a
8954 DECL_PRETTY_FUNCTION_P.
8955 (instantiate_decl): Remove function_name_declared_p.
8956 * semantics.c (begin_compound_statement): Don't call
8957 declare_function_name here.
8958 (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
8959 (finish_translation_unit): Call finish_fname_decls.
8960 (expand_body): Remove function_name_declared_p.
8961 * typeck2.c (digest_init): Allow any ERROR_MARK.
8962
dfbb4f34
NS
89632001-04-24 Nathan Sidwell <nathan@codesourcery.com>
8964
8965 * pt.c (tsubst_decl): Use VOID_TYPE_P.
8966 * semantics.c: Fix some typos.
8967
e2584c52
PE
89682001-04-23 Phil Edwards <pme@sources.redhat.com>
8969
8970 * cp/decl2.c (flag_honor_std): Always initialize to 1.
8971
d4c3ec27
KG
89722001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8973
8974 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
8975
2ac8a0f9
JM
89762001-04-23 Jason Merrill <jason_merrill@redhat.com>
8977
8978 * except.c (build_throw): Wrap the initialization of the exception
8979 object in a MUST_NOT_THROW_EXPR.
8980 (do_free_exception): #if 0.
8981
968b956a
MM
89822001-04-20 Mark Mitchell <mark@codesourcery.com>
8983
8984 * cp-tree.h (finish_enum): Change prototype.
8985 * decl.c (finish_enum): Reorganize.
8986 * parse.y (structsp): Adjust calls to finish_enum.
11fe225a 8987
aa1826e2
NS
89882001-04-20 Nathan Sidwell <nathan@codesourcery.com>
8989
8990 * tree.c (cp_tree_equal): Adjust final switch formatting. Add
8991 't' case.
8992
06d9f09f
NS
89932001-04-20 Nathan Sidwell <nathan@codesourcery.com>
8994
8995 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
8996 (layout_empty_base): Return at end flag.
8997 (build_base_field): Likewise.
8998 (build_base_fields): Likewise.
8999 (layout_virtual_bases): Don't add 1 to eoc value.
9000 (end_of_class): Use full size for empty bases.
9001 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
9002 empty bases. Don't add 1 to eoc value. Only add trailing padding
9003 if we're an empty class with no empty bases.
9004 (dump_class_hierarchy): Dump size and alignment.
9005
351a0f00
JJ
90062001-04-20 Jakub Jelinek <jakub@redhat.com>
9007
9008 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
9009 ICS_BAD_FLAG.
9010
881cae05
JJ
90112001-04-20 Jakub Jelinek <jakub@redhat.com>
9012
9013 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
9014 is found, look first if name does not match the structure name.
9015
5d2ed28c
MM
90162001-04-19 Mark Mitchell <mark@codesourcery.com>
9017
9018 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
9019 set.
9020 (SET_DECL_LANGUAGE): New macro.
9021 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
9022 (pushdecl): Likewise.
9023 (build_library_fn_1): Likewise.
9024 (build_cp_library_fn): Likewise.
9025 (grokfndecl): Likewise.
9026 (grokvardecl): Mark `extern "C"' variables as having C linkage.
9027 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
9028 * lex.c (retrofit_lang_decl): Likewise.
9029 * mangle.c (mangle_decl_string): Don't mangle the names of
9030 variables declared with C language linkage.
9031 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
11fe225a 9032
41251458
JDA
90332001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca>
9034
9035 * semantics.c (simplify_aggr_init_exprs_r): Don't restore
9036 flag_access_control from uninitialized storage.
9037
1b4a93f7
MM
90382001-04-15 Mark Mitchell <mark@codesourcery.com>
9039
24272dc0
MM
9040 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
9041 * mangle.c (write_pointer_to_member_type): Fix mangling of
9042 pointers to cv-qualified member function types.
9043
1b4a93f7
MM
9044 * init.c (build_delete): Create a SAVE_EXPR for the address if
9045 we're going to use it more than once.
9046
530ec96d
MM
90472001-04-13 Mark Mitchell <mark@codesourcery.com>
9048
9049 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
9050 (expand_ptremfunc_cst): Change prototype.
9051 (delta2_from_ptrmemfunc): Remove.
9052 * expr.c (cplus_expand_constant): Adjust call to
9053 expand_ptrmemfunc_cst.
9054 * typeck.c (build_ptrmemfunc1): Simplify.
9055 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
9056 results in a constant.
9057 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
9058 (delta2_from_ptrmemfunc): Remove.
9059 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
11fe225a 9060
ee8fc32b
JM
90612001-04-12 Jason Merrill <jason_merrill@redhat.com>
9062
9063 * cp-tree.h (decl_namespace_list): New macro.
9064 (struct saved_scope): Add decl_ns_list.
9065 * decl.c (mark_saved_scope): Mark it.
9066 * decl2.c: Lose static decl_namespace_list.
9067 (init_decl2): Don't save it.
9068
48857160
KG
90692001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9070
9071 * cp-tree.h (warn_return_type, yylex): Delete redundant
9072 declarations.
11fe225a 9073
48857160
KG
9074 * decl.c (current_class_depth, global_namespace): Likewise.
9075
9076 * decl2.c (current_class_depth, flag_gnu_xref): Likewise
9077
9078 * repo.c (flag_use_repository): Likewise.
9079
845e14ed
KG
90802001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9081
9082 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
9083 set_block, pushdecl, getdecls, gettags, init_decl_processing,
9084 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
9085 lvalue_or_else, print_lang_statistics, comp_target_types,
9086 unsigned_type, signed_type, signed_or_unsigned_type,
9087 build_function_call, mark_addressable, incomplete_type_error):
9088 Delete redundant declarations.
9089
1951a1b6
JM
90902001-04-11 Jason Merrill <jason_merrill@redhat.com>
9091
9092 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
9093 (TYPE_ANONYMOUS_P): New macro.
9094 (TAGGED_TYPE_P): New macro.
9095 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
9096 (grokfndecl, grokvardecl, grokdeclarator): Likewise.
9097 * tree.c (no_linkage_helper): Likewise.
9098 * semantics.c (begin_class_definition): Likewise.
9099 * pt.c (convert_template_argument): Likewise.
9100 * lex.c (check_for_missing_semicolon): Likewise.
9101
0fb3018c
NS
91022001-04-12 Nathan Sidwell <nathan@codesourcery.com>
9103
9104 * class.c (dfs_unshared_virtual_bases): New function.
9105 (mark_primary_bases): Call it.
9106 (check_bases): Ignore virtual bases when determining
9107 nearly-emptiness.
9108
bbb53468
NS
91092001-04-12 Nathan Sidwell <nathan@codesourcery.com>
9110
9111 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
9112
9b7949d5
MM
91132001-04-11 Mark Mitchell <mark@codesourcery.com>
9114
9115 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
9116 cloned function to the clone.
9117
d6684bc8
KG
91182001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9119
9120 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
9121
9122 * semantics.c: Include expr.h.
9123
a2095778
NS
91242001-04-11 Nathan Sidwell <nathan@codesourcery.com>
9125
9126 * method.c (implicitly_declare_fn): Commonize code for copy ctor
9127 and assignment op. Set TREE_USED for parameter.
9128
78b45a24
MM
91292001-04-10 Mark Mitchell <mark@codesourcery.com>
9130
9131 * class.c (find_final_overrider_data): Add `candidates'.
9132 (dfs_find_final_overrider): Don't issue error messages
9133 prematurely.
9134 (find_final_overrider): Issue error messages here.
9135 (build_base_field): Don't warn about amgibuous direct bases here.
9136 (warn_about_ambiguous_direct_bases): New function.
9137 (layout_class_type): Use it.
9138
0450d74d
RH
91392001-04-10 Richard Henderson <rth@redhat.com>
9140
9141 * typeck.c (build_array_ref): Push the array reference inside
9142 COMPOUND_EXPR and COND_EXPR.
9143
79065db2
MM
91442001-04-05 Mark Mitchell <mark@codesourcery.com>
9145
9146 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
9147 * decl.c (duplicate_decls): Adjust accordingly.
9148 (maybe_commonize_var): Likewise.
9149 (grokfndecl): Likewise.
9150 (start_function): Likewise.
9151 (start_method): Likewise.
9152 * decl2.c (key_method): Likewise.
9153 (import_export_decl): Likewise.
9154 * method.c (implicitly_declare_fn): Likewise.
9155 * optimize.c (maybe_clone_body): Likewise.
11fe225a 9156
fdecbf8a
BK
91572001-04-05 Benjamin Kosnik <bkoz@redhat.com>
9158
b03eced6 9159 * lang-specs.h: Add __DEPRECATED.
fdecbf8a 9160
d2a6f3c0 91612001-04-05 J"orn Rennecke <amylaar@redhat.com>
0b4c1646
R
9162
9163 * search.c (get_dynamic_cast_base_type): When building a new
9164 constant, set its type to ssizetype.
9165
e59d6709
JJ
91662001-04-04 Jakub Jelinek <jakub@redhat.com>
9167
9168 * optimize.c (expand_call_inline): Only add newly inlined statements
9169 into inlined_stmts.
9170
0c918ce5
MM
91712001-04-03 Mark Mitchell <mark@codesourcery.com>
9172
9173 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
9174 (OPERATOR_FORMAT): Likewise.
9175 (OPERATOR_TYPENAME_FORMAT): Likewise.
9176 * operators.def: Remove old name-mangling information.
9177 * decl.c (grok_op_properties): Adjust accordingly.
9178 * lex.c (init_operators): Likewise.
9179 * rtti.c (get_tinfo_decl): Issue error messages about types that
9180 have variable size.
9181
92788413
MM
91822001-04-03 Mark Mitchell <mark@codesourcery.com>
9183
11fe225a 9184 * decl2.c (import_export_decl): Don't call import_export_class
92788413
MM
9185 when processing an inline member function.
9186 * semantics.c (expand_body): Call import_export_decl before
9187 emitting inline functions.
9188
52a11cbf
RH
91892001-03-28 Richard Henderson <rth@redhat.com>
9190
9191 IA-64 ABI Exception Handling:
9192 * cp-tree.def (EH_SPEC_BLOCK): New.
9193 (MUST_NOT_THROW_EXPR): New.
9194 * cp-tree.h: Update changed function declarations.
9195 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
9196 (CPTI_CALL_UNEXPECTED): New.
9197 (struct cp_language_function): Rename x_eh_spec_try_block
9198 to x_eh_spec_block.
9199 (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
11fe225a 9200 * decl.c (current_binding_level): If no current function
52a11cbf
RH
9201 bindings, revert to scope_chain.
9202 (initialize_predefined_identifiers): Remove __cp_push_exception.
9203 (store_parm_decls): Use begin_eh_spec_block.
9204 (finish_function): Use finish_eh_spec_block.
9205 (mark_lang_function): Update for name changes.
9206 * decl2.c (finish_file): No mark_all_runtime_matches.
9207 * dump.c (cp_dump_tree): Handle new tree codes.
9208 * error.c (dump_expr) [BIND_EXPR]: Fix typo.
9209 * except.c (catch_language_init, catch_language): Remove.
9210 (init_exception_processing): Don't set language code.
9211 Initialize call_unexpected_node, protect_cleanup_actions,
9212 eh_personality_libfunc, lang_eh_runtime_type.
9213 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
9214 (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
9215 (prepare_eh_type): Split out type canonicalizations ...
9216 (build_eh_type_type): ... from here.
9217 (build_eh_type_type_ref): Remove.
9218 (mark_all_runtime_matches): Remove.
9219 (build_exc_ptr): New.
9220 (do_begin_catch, do_end_catch): New.
9221 (do_pop_exception): Remove.
9222 (build_terminate_handler): Remove.
9223 (choose_personality_routine): Split out language choice from ...
9224 (initialize_handler_parm): ... here.
9225 Use MUST_NOT_THROW_EXPR.
9226 (expand_start_catch_block): Use do_begin_catch. Simplify Java
9227 exception object handling.
9228 (expand_start_eh_spec, expand_end_eh_spec): Remove.
9229 (expand_exception_blocks, alloc_eh_object): Remove.
9230 (begin_eh_spec_block, finish_eh_spec_block): New.
9231 (do_allocate_exception, do_free_exception): New.
9232 (expand_throw): Merge into ...
9233 (build_throw): ... here. Update for abi.
9234 * expr.c (cplus_expand_expr): No expand_internal_throw.
9235 Handle MUST_NOT_THROW_EXPR.
9236 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
9237 * semantics.c (*) Update for except.h name changes.
9238 (genrtl_try_block): No protect_with_terminate.
9239 (genrtl_eh_spec_block): New.
9240 (genrtl_handler): Don't emit the goto here.
9241 (cp_expand_stmt): Handle EH_SPEC_BLOCK.
9242 (genrtl_finish_function): Don't expand_exception_blocks.
9243 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
9244
826840d9
RH
92452001-03-28 Richard Henderson <rth@redhat.com>
9246
9247 * decl.c (struct named_label_list): Rename eh_region to
9248 in_try_scope, add in_catch_scope.
9249 (struct binding_level): Rename eh_region to is_try_scope,
9250 add is_catch_scope.
9251 (note_level_for_try): Rename from note_level_for_eh.
9252 (note_level_for_catch): New.
9253 (poplevel): Copy both is_try_scope and is_catch_scope to
9254 the named_label_list struct.
9255 (check_previous_goto_1): Don't check for catch block via
9256 DECL_ARTIFICIAL; use in_try_scope instead.
9257 (check_goto): Likewise.
9258 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
9259 * except.c (expand_start_catch_block): Call note_level_for_catch.
9260 * semantics.c (begin_compound_stmt): Update for note_level_for_try.
9261
531073e7
RH
92622001-03-27 Richard Henderson <rth@redhat.com>
9263
9264 * except.c: Use USING_SJLJ_EXCEPTIONS instead of
9265 exceptions_via_longjmp.
9266
8653a2c3
PE
92672001-03-27 Phil Edwards <pme@sources.redhat.com>
9268
9269 * pt.c (check_default_tmpl_args): Make error messages clearer.
9270
92712001-03-26 Phil Edwards <pme@sources.redhat.com>
9272
9273 * error.c: Also undefine 'A' macro used for cp_printers definition.
9274
911e6107
KG
92752001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9276
9277 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
9278
005a5cb0
MY
92792001-03-26 Mike Yang <yang@research.att.com>
9280 Mark Mitchell <mark@codesourcery.com>
9281
9282 * dump.c (dump_access): New function.
9283 (cp_dump_tree): Use it. Dump basetype information for class
9284 types.
9285
b850de4f
MM
92862001-03-26 Mark Mitchell <mark@codesourcery.com>
9287
9288 * Makefile.in (optimize.o): Depend on params.h.
9289 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
9290 (init_decl_processing): Set flag_no_inline when doing
9291 inlining-on-trees.
9292 * optimize.c: Include params.h.
9293 (struct inline_data): Improve documentation of FNS. Add
9294 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
9295 (INSNS_PER_STMT): New macro.
9296 (remap_block): Use CLONING_P.
9297 (inlinable_function_p): Don't inline big functions.
9298 (expand_call_inline): Keep track of how much inlining we've done.
9299 (optimize_function): Set FIRST_INLINED_FN.
9300 (maybe_clone_body): Set CLONING_P.
9301 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
9302 tree nodes.
9303 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
9304 rest_of_compilation. Clear DECL_RTL for local variables
9305 afterwards.
9306 (clear_decl_rtl): New function.
11fe225a 9307
788bf0e3
NS
93082001-03-26 Nathan Sidwell <nathan@codesourcery.com>
9309
9310 Implement DR 209
9311 * cp-tree.h (skip_type_access_control,
9312 reset_type_access_control): Prototype.
9313 * decl.c (grokdeclarator): Access of friends is not checked.
9314 * parse.y (component_decl_list): Reset type access control.
9315 * semantics.c (decl_type_access_control): Clear
9316 current_type_lookups.
9317 (save_type_access_control): Don't save if not deferring.
9318 (skip_type_access_control, reset_type_access_control): New
9319 functions.
9320 (begin_class_definition): Do type access control for basetypes.
9321 Start deferred access control.
9322 (finish_class_definition): Resume immediate access control if
9323 this is a local class.
9324
730e1556
KG
93252001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9326
9327 * class.c (add_method): Use memcpy/memmove, not bcopy.
9328
9329 * decl.c (duplicate_decls): Likewise.
9330
f1a0345c
JJ
93312001-03-23 Jakub Jelinek <jakub@redhat.com>
9332
9333 * mangle.c (write_discriminator): Use `_0' for discriminator 1,
9334 not `_'.
9335
8e4ce833
JJ
93362001-03-23 Jakub Jelinek <jakub@redhat.com>
9337
9338 * decl.c (local_names): Define.
9339 (push_local_name): New.
9340 (grok_reference_init): Return init if initializing static reference
9341 variable with non-constant instead of emitting it.
9342 Move expand_static_init call to cp_finish_decl.
9343 (layout_var_decl): Call push_local_name.
9344 (maybe_commonize_var): Allow inlining functions even if they have
9345 static local variables, use comdat_linkage for them if flag_weak.
9346 (check_initializer): Call obscure_complex_init if
838dfd8a 9347 grok_reference_init returned nonzero.
8e4ce833
JJ
9348 (save_function_data): Clear x_local_names.
9349 (pop_cp_function_context): Free x_local_names.
9350 (mark_inlined_fns): Remove.
9351 (mark_lang_function): Mark x_local_names.
9352 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
9353 Mark inlined_fns as tree, remove call to mark_inlined_fns.
9354 * class.c (alter_access): Ensure DECL_ACCESS is never set if
9355 DECL_DISCRIMINATOR_P.
9356 * cp-tree.h (cp_language_function): Add x_local_names.
9357 (lang_decl_flags): Add discriminator into u2.
9358 (lang_decl_inlined_fns): Remove.
9359 (lang_decl): inlined_fns is now a TREE_VEC.
9360 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
9361 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
9362 TREE_VEC, not a custom structure.
9363 (optimize_function): Likewise.
9364 * mangle.c (discriminator_for_local_entity): Discriminate among
9365 VAR_DECL local entities.
9366 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
9367 is not valid.
9368
60c87482
BM
93692001-03-22 Bryce McKinlay <bryce@albatross.co.nz>
9370
9371 Add support for Java interface method calls.
9372 * cp-tree.h (struct lang_type): Add java_interface flag.
9373 (TYPE_JAVA_INTERFACE): New macro.
9374 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
9375 by setting TYPE_JAVA_INTERFACE.
9376 * call.c (java_iface_lookup_fn): New static.
11fe225a 9377 (build_over_call): If calling a method declared in a
60c87482
BM
9378 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
9379 expression which resolves the function address.
9380 (build_java_interface_fn_ref): New function.
9381
94c7f30b
RH
93822001-03-22 Richard Henderson <rth@redhat.com>
9383
9384 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
9385 * except.c: Don't include it.
9386
fd8b7a0e 93872001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
826840d9 9388 based on an idea from Joe Buck <jbuck@synopsys.com>
fd8b7a0e
GP
9389
9390 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
9391 New nonterminals.
9392 (data_def, component_decl): Add reductions to bad_decl.
9393
a1c2b86d
JJ
93942001-03-22 Jakub Jelinek <jakub@redhat.com>
9395
9396 * method.c (do_build_assign_ref): Don't use build_modify_expr for
9397 anonymous aggregates, since they don't have assignment operator
9398 method.
9399 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
9400 assignment operators for anonymous structure fields.
9401
46ccf50a
JM
94022001-03-21 Jason Merrill <jason@redhat.com>
9403
9404 * pt.c (instantiate_decl): Abort if we see a member constant
9405 instantiation that doesn't already have its initializer.
9406 Downgrade explicit instantiation without definition to pedwarn.
9407
9408 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
9409 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
9410 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
9411
9412 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
9413 (pending_vtables): Remove.
9414 * decl2.c (pending_vtables): Remove.
9415 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
9416 CLASSTYPE_VTABLE_NEEDS_WRITING.
9417 (import_export_class): Likewise.
9418 (init_decl2): Don't mark pending_vtables.
9419 * lex.c (handle_pragma_vtable): Just sorry.
9420 * pt.c (instantiate_class_template): Don't mess with
9421 CLASSTYPE_VTABLE_NEEDS_WRITING.
9422 (mark_class_instantiated): Likewise.
9423 * ptree.c (print_lang_type): Don't print it.
9424 * semantics.c (begin_class_definition): Don't set it.
9425
9426 * pt.c (template_tail): Replace with last_pending_template.
9427 (maybe_templates, maybe_template_tail): Remove.
9428 (add_pending_template): Adjust.
9429 (instantiate_pending_templates): Adjust.
9430
9431 * cp-tree.h (struct saved_scope): Remove lang_stack field.
9432 (current_lang_stack): Remove.
9433 * decl.c (maybe_push_to_top_level): Don't initialize it.
9434 (duplicate_decls): Use current_lang_depth.
9435 (xref_basetypes): Likewise.
9436 * class.c (current_lang_depth): New fn.
9437 (push_lang_context): Use more varray functionality.
9438 (pop_lang_context): Likewise.
64d9c3fe
JM
9439
9440 * error.c (GLOBAL_THING): Always use '__'.
9441
1c06710a
MM
94422001-03-21 Mark Mitchell <mark@codesourcery.com>
9443
71cb9286
MM
9444 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
9445
1c06710a
MM
9446 * mangle.c (mangle_decl_string): Mangle the names of overloaded
9447 operators, even when they have `extern "C"' linkage.
9448
92643fea
MM
94492001-03-19 Mark Mitchell <mark@codesourcery.com>
9450
9451 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
9452 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
9453 where it's not necessary.
9454 (add_method): Remove optimization involving comparison of
9455 DECL_ASSEMBLER_NAME.
9456 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
9457 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
9458 where it's not necessary.
9459 (check_methods): Likewise.
9460 (build_clone): Likewise.
9461 (built_vtt): Likewise.
9462 * cp-tree.h (DECL_NEEDED_P): Likewise.
9463 * decl.c (pushtag): Likewise.
9464 (duplicate_decls): Likewise.
9465 (pushdecl): Likewise.
9466 (builtin_function): Likewise.
9467 (build_library_fn_1): Set DECL_LANGUAGE for library functions.
9468 (build_cp_library_fn): Likewise.
9469 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
9470 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
9471 where it's not necessary.
9472 (make_rtl_for_nonlocal_decl): Likewise.
9473 (cp_finish_decl): Likewise.
9474 (grokfndecl): Likewise.
9475 (grokvardecl): Likewise.
9476 (grokdeclarator): Likewise.
9477 (start_function): Likewise.
9478 (cp_missing_return_ok_p): Likewise.
9479 * decl2.c (grokclassfn): Likewise.
9480 (check_classfn): Likewise.
9481 (finish_static_data_member_decl): Likewise.
9482 (grokfield): Likewise.
9483 * error.c (GLOBAL_IORD_P): Remove.
9484 (dump_global_iord): Improve output.
9485 (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
9486 * except.c (nothrow_libfn_p): Summarily reject any function not in
9487 namespace-scope.
9488 * init.c (build_java_class_ref): Don't explicitly set
9489 DECL_ASSEMBLER_NAME after calling mangle_decl.
9490 * mangle.c (mangle_decl_string): Handle extern "C" functions.
9491 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
9492 * method.c (set_mangled_name_for_decl): Don't explicitly set
9493 DECL_ASSEMBLER_NAME after calling mangle_decl.
9494 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
9495 IDENTIFIER_GLOBAL_VALUE for the thunk.
9496 * pt.c (set_mangled_name_for_template_decl): Remove.
9497 (check_explicit_specialization): Don't use it.
9498 (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
9499 (tsubst_friend_function): Likewise.
9500 (tsubst_decl): Likewise.
9501 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
9502 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
9503 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
9504 where it's not necessary.
9505 (tinfo_base_init): Likewise.
9506 (create_real_tinfo_var): Likewise.
9507 * search.c (looup_field_1): Likewise.
9508 * semantics.c (finish_named_return_value): Likewise.
9509 * tree.c (init_tree): Set lang_set_decl_assembler_name.
11fe225a 9510
d064d75a
GDR
95112001-03-15 Gabriel Dos Reis <gdr@codesourcery.com>
9512
9513 Correct semantics restrictions checking in throw-expression.
9514 * except.c (is_admissible_throw_operand): New function.
9515 (build_throw): Use it.
9516
a3eab619
MM
95172001-03-14 Mark Mitchell <mark@codesourcery.com>
9518
9519 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
9520 and its ilk.
9521
19e7881c
MM
95222001-03-14 Mark Mitchell <mark@codesourcery.com>
9523
9524 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
9525 * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
9526 * decl.c (duplicate_decls): Likewise.
9527 (builtin_function): Likewise.
9528 (build_library_fn): Likewise.
9529 (build_cp_library_fn): Likewise.
9530 (check_initializer): Likewise.
9531 (cp_finish_decl): Likewise.
9532 * decl2.c (grokfield): Likewise.
9533 (grok_function_init): Remove #if 0'd code.
9534 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
9535 * friend.c (do_friend): Likewise.
9536 * init.c (get_temp_regvar): Likewise.
9537 * method.c (make_thunk): Likewise.
9538 * pt.c (tsubst_friend_function): Likewise.
9539 (tsubst_decl): Likewise.
9540 (regenerate_decl_from_template): Likewise.
9541 * semantics.c (genrtl_named_return_value): Likewise.
9542 (expand_body): Likewise.
9543 (genrtl_finish_function): Likewise.
9544 * tree.c (cp_tree_equal): Likewise.
11fe225a 9545
78fe06c2
NS
95462001-03-12 Nathan Sidwell <nathan@codesourcery.com>
9547
9548 * call.c (convert_like_real): Add extra semantics to INNER
9549 parameter. Don't convert to temporary if a user conversion
9550 gives us an lvalue that we're about to bind to a reference.
9551 Set INNER to indicate pending reference binding on recursive
9552 calls.
9553
b3e68a79
NB
95542001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
9555
9556 * cp/lex.c: Delete duplicate pending_lang_change.
9557
95582001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
9559
9560 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
9561 Similarly.
9562 * cp/repo.c (get_base_filename, open_repo_file): Similarly.
9563 * cp/cp-tree.h: Remove file_name_nondirectory prototype.
9564
11642c3a
ZW
95652001-03-09 Zack Weinberg <zackw@stanford.edu>
9566
9567 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
9568
bb6852eb 95692001-03-08 Stan Shebs <shebs@apple.com>
f7687817
SS
9570
9571 * cp-tree.h (set_identifier_local_value): Remove unused decl.
9572
cc937581
ZW
95732001-03-06 Zack Weinberg <zackw@stanford.edu>
9574
9575 * spew.c: Remove references to CPP_OSTRING.
9576
d1188d91
AH
95772001-03-06 Andrew Haley <aph@redhat.com>
9578
9579 * typeck.c (convert_arguments): Check that we have an fndecl.
9580
4eaf1d5b
AH
95812001-03-05 Andrew Haley <aph@redhat.com>
9582
9583 * typeck.c (convert_arguments): Don't do ellipsis conversion for
9584 __built_in_constant_p.
9585
7eeb553c
NS
95862001-03-02 Nathan Sidwell <nathan@codesourcery.com>
9587
9588 * typeck.c (build_static_cast): Allow enum to enum conversions
9589 as per DR 128.
9590
d282fcb2
NS
95912001-03-02 Nathan Sidwell <nathan@codesourcery.com>
9592
9593 * class.c (check_field_decls): Pointers to member do not a
9594 non-pod struct make, as per DR 148.
9595
f86fdf68
NS
95962001-03-02 Nathan Sidwell <nathan@codesourcery.com>
9597
9598 * call.c (joust): cp_pedwarn when using gnu extension concerning
9599 worst conversion sequences.
9600
d6edb99e
ZW
96012001-03-01 Zack Weinberg <zackw@stanford.edu>
9602
9603 * decl.c: Replace all uses of 'boolean' with 'bool'.
9604
f7143427
ZW
96052001-03-01 Zack Weinberg <zackw@stanford.edu>
9606
9607 * lang-specs.h: Add zero initializer for cpp_spec field to
9608 all array elements that need one. Don't put an #ifdef inside
9609 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
9610 use it.
9611
fbfe8c9e
NS
96122001-03-01 Nathan Sidwell <nathan@codesourcery.com>
9613
9614 Implement using decls inside template functions.
9615 * decl2.c (validate_nonmember_using_decl): Don't special case
9616 fake_std_node in the global namespace. Don't reject early when
9617 processing a template.
9618 (do_local_using_decl): Add to statement tree. Don't do further
9619 processing when building a template.
9620 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
9621
4d24a889
NS
96222001-03-01 Nathan Sidwell <nathan@codesourcery.com>
9623
9624 * decl2.c (do_nonmember_using_decl): Don't complain if we find
9625 same function. Do complain about ambiguating extern "C"
9626 declarations.
9627
e5844e6d
NS
96282001-02-28 Nathan Sidwell <nathan@codesourcery.com>
9629
9630 Remove floating point and complex type template constant parms.
9631 * pt.c (convert_nontype_argument): Remove REAL_TYPE and
9632 COMPLEX_TYPE extensions.
9633 (invalid_nontype_parm_type_p): Likewise.
9634
788f238c
JO
96352001-02-27 Jeffrey Oldham <oldham@codesourcery.com>
9636
9637 * except.c (call_eh_info): Revert "match_function"'s type.
9638
73ea87d7
NS
96392001-02-27 Nathan Sidwell <nathan@codesourcery.com>
9640
9641 Fix ctor vtable vcall offsets.
9642 * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
9643 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
9644 (get_matching_base): Remove.
9645 (get_original_base): New function.
11fe225a 9646 (build_vtbl_initializer): Initialize vid.rtti_binfo.
73ea87d7
NS
9647 Use a virtual thunk for a ctor vtable with an index
9648 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
9649 primary base within a constructor vtable. Only set
9650 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
9651 when primary base has been lost.
9652 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
9653
fe730161
JO
96542001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
9655
9656 * call.c (joust): Ensure more_specialized()'s argument length
9657 parameter has correct value for constructors.
9658
e5dd4aad
NS
96592001-02-26 Nathan Sidwell <nathan@codesourcery.com>
9660
9661 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
11fe225a 9662
e5dd4aad
NS
9663 * decl.c (mark_inlined_fns): Prototype.
9664
25200ab2
MM
96652001-02-22 Mark Mitchell <mark@codesourcery.com>
9666
9667 * spew.c (yylex): Correct handling of friends.
9668
f58c04ac
MM
96692001-02-22 Mark Mitchell <mark@codesourcery.com>
9670
9671 * mangle.c (write_encoding): Pass write_function_type the
9672 FUNCTION_DECL for the function being encoded.
9673 (write_function_type): Pass it along to write_bare_function_type.
9674 (write_bare_function_type): Pass it along to write_method_parms.
9675 (write_method_parms): Don't mangle the compiler-generated
9676 parameters to a constructor or destructor.
9677
9c96f3f8
AJ
96782001-02-22 Andreas Jaeger <aj@suse.de>
9679
9680 * optimize.c: Include toplev.h for
9681 note_deferral_of_defined_inline_function prototype.
9682
b3bae5e2
JJ
96832001-02-22 Jakub Jelinek <jakub@redhat.com>
9684
9685 * cp-tree.h (struct lang_decl_inlined_fns): New.
9686 (struct lang_decls): Add inlined_fns.
9687 (DECL_INLINED_FNS): New macro.
9688 * optimize.c (struct inline_data): Add inlined_fns.
9689 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
9690 (inlinable_function_p): Likewise, fix typo in comment,
9691 function is not inlinable if it already inlined function currently
9692 being optimized.
306ef644 9693 (expand_call_inline): Add fn to inlined_fns if necessary.
b3bae5e2
JJ
9694 (optimize_function): Initialize inlined_fns.
9695 Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
9696 * decl.c (mark_inlined_fns): New function.
9697 (lang_mark_tree): Call it.
9698
5daf7c0a
JM
96992001-02-21 Jason Merrill <jason@redhat.com>
9700
9701 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
9702 (DECL_UNINLINABLE): Move to middle-end.
9703
9704 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
9705 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
9706 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
9707 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
9708 parms and outer BLOCK. note_deferral_of_defined_inline_function.
9709
9710 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
9711 second parm of op=.
9712
2c0fc02d
MM
97132001-02-19 Mark Mitchell <mark@codesourcery.com>
9714
9715 * decl2.c (set_decl_namespace): Allow explicit instantiations in
9716 any namespace.
9717
612164eb
KL
97182001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
9719
9720 * optimize.c (expand_call_inline): Don't walk subtrees of type
9721 nodes.
9722
69a59a49
MM
97232001-02-18 Mark Mitchell <mark@codesourcery.com>
9724
9725 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
9726 for a destructor.
9727
e0fff4b3
JM
97282001-02-18 Jason Merrill <jason@redhat.com>
9729
9730 Do put the VTT parameter in DECL_ARGUMENTS.
9731 * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
9732 (current_vtt_parm): New macro.
9733 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
9734 (DECL_HAS_VTT_PARM_P): New macro.
9735 (DECL_VTT_PARM): Remove.
9736 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
9737 * decl.c (duplicate_decls): Only copy the operator code if
9738 appropriate.
9739 (start_function): Set current_vtt_parm.
9740 (lang_mark_tree): Don't mark vtt_parm.
9c96f3f8 9741 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
e0fff4b3
JM
9742 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
9743 * class.c (build_clone): Maybe remove the VTT parm.
9744 * optimize.c (maybe_clone_body): Set up the VTT parm.
9745 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
9746 * call.c (build_over_call): Just allow the VTT arg.
9747 * method.c (make_thunk): Don't set DECL_VTT_PARM.
9748 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
9749 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
9750 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
9751 * error.c (dump_function_decl): Likewise.
9752 * call.c (build_user_type_conversion_1, convert_like_real): Abort
9753 if we try to call a constructor with in-charge or VTT parms.
9754 * method.c (skip_artificial_parms_for): New fn.
9755 * call.c (add_function_candidate, build_over_call): Call it.
9756 * call.c (build_new_method_call): Use current_vtt_parm.
9757 * init.c (expand_virtual_init): Likewise.
9758 * class.c (same_signature_p): No longer static.
9759 * cp-tree.h: Declare it.
9760 * search.c (look_for_overrides_r): Use it.
9761
c750255c
MM
97622001-02-17 Mark Mitchell <mark@codesourcery.com>
9763
8fa33dfa
MM
9764 * cp-tree.h (new_abi_rtti_p): Remove.
9765 (name_mangling_version): Likewise.
9766 (flag_do_squangling): Likewise.
9767 * class.c (build_rtti_vtbl_entries): Remove old ABI support.
9768 * decl.c (grokfndecl): Likewise.
9769 * decl2.c (name_mangling_version): Remove.
9770 (flag_do_squangling): Likewise.
9771 (lang_f_options): Remove `squangle'.
9772 (unsupported_options): Add `squangle'.
9773 (cxx_decode_option): Issue a warning about uses of
9774 -fname-mangling-version.
9775 (finish_file): Remove old ABI support.
9776 * pt.c (check_explicit_specialization): Likewise.
9777 (tsubst_decl): Likewise.
9778 * rtti.c (init_rtti_processing): Likewise.
9779 (build_headof): Likewise.
9780 (get_tinfo_decl_dynamic): Likewise.
9781 (tinfo_from_decl): Likewise.
9782 (build_dynamic_cast_1): Likewise.
9783 (synthesize_tinfo_var): Likewise.
12fa82db
MM
9784 * init.c (build_new): Allow enumeration types for the array-bounds
9785 in a direct-new-declarator.
9786
9787 * semantics.c (finish_typeof): Resolve OFFSET_REFs.
9788
c750255c
MM
9789 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
9790 TREE_PROTECTED from the template being specialized.
9791
a714e5c5
JM
97922001-02-17 Jason Merrill <jason@redhat.com>
9793
9794 * decl2.c (build_artificial_parm): Set TREE_READONLY.
9795
9c96f3f8 9796 * decl.c (bad_specifiers): Allow throw specs on things with
a714e5c5
JM
9797 pointer-to-function or -member-function type.
9798 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
9799 a pmf.
9800
8084b91e
MM
98012001-02-17 Mark Mitchell <mark@codesourcery.com>
9802
9803 * call.c (check_dtor_name): Handle template names correctly.
9804
48f22ed2
JM
98052001-02-16 Jason Merrill <jason@redhat.com>
9806
9807 * cp-tree.h (DECL_USE_VTT_PARM): Remove.
9808 * decl2.c (maybe_retrofit_in_chrg): Don't create it.
9809 * optimize.c (maybe_clone_body): Don't substitute it.
9810 * call.c (build_new_method_call): Check in_chrg instead.
9811 * init.c (expand_virtual_init): Likewise.
9812
e8186ecf
GDR
98132001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
9814
9815 * decl.c (check_tag_decl): Make sure a typedef for an anonymous
9816 class-type introduces at least a type-name.
9817
2c1be322
JJ
98182001-02-16 Jakub Jelinek <jakub@redhat.com>
9819
9820 * call.c (convert_like_real): Create a temporary for non-lvalue.
9821
aab8454a
JO
98222001-02-16 Jeffrey Oldham <oldham@codesourcery.com>
9823
9824 * cp-tree.h: Fix typos in comments.
9825
a901fa64
JM
98262001-02-16 Jason Merrill <jason@redhat.com>
9827
9828 * optimize.c (remap_block): If we're compiling a clone, pass the
9829 new block to insert_block.
9830
8853373c
MM
98312001-02-16 Mark Mitchell <mark@codesourcery.com>
9832
9833 * semantics.c (finish_asm_stmt): Robustify.
9834
b60ecc04
MM
98352001-02-15 Mark Mitchell <mark@codesourcery.com>
9836
9837 * pt.c (push_template_decl_real): Don't remangle the name of a
9838 class template.
9839
e658449e
JM
98402001-02-15 Jim Meyering <meyering@lucent.com>
9841
fd48c9b5
DD
9842 * Make-lang.in (c++.install-common): Depend on installdirs.
9843 (c++.install-info): Likewise.
9844 (c++.install-man): Likewise.
e658449e 9845
f1a3f197
MM
98462001-02-15 Mark Mitchell <mark@codesourcery.com>
9847
9848 * typeck2.c (build_m_component_ref): Robustify.
9849
8826b15b
AO
98502001-02-15 Alexandre Oliva <aoliva@redhat.com>
9851
9852 * friend.c (do_friend): Don't take the nested [template] class
9853 into account when deciding whether to warn about the friend
9854 function not referring to a template function.
9855
7161c1a5
JJ
98562001-02-14 Jakub Jelinek <jakub@redhat.com>
9857
9858 * typeck.c (build_unary_op): Clarify error message.
9859
4806765e
AH
98602001-02-08 Aldy Hernandez <aldyh@redhat.com>
9861
a901fa64
JM
9862 * parse.y (component_constructor_declarator): allow optional
9863 parentheses around constructor class name.
4806765e 9864
bfc8e1e2
NS
98652001-02-14 Nathan Sidwell <nathan@codesourcery.com>
9866
9867 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
9868 section.
9869 * init.c (emit_base_init): Remove incorrect comment about
9870 virtual bases.
9871 * method.c (make_thunk): Fix comment alignment.
9872
394fd776
NS
98732001-02-14 Nathan Sidwell <nathan@codesourcery.com>
9874
9875 Kill remnants of this is variable.
9876 * cp-tree.h (flag_this_is_variable): Remove.
9877 * decl2.c (flag_this_is_variable): Remove.
9878 * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
9879 (build_vbase_path): The path is non-static, even in a cdtor.
9880 (resolves_to_fixed_type_p): Add additional return value.
9881 * search.c (init_vbase_pointers): Adjust.
9882 * tree.c (lvalue_p_1): Adjust.
9883 * typeck.c (mark_addressable): Adjust.
9884
d0ab7624
NS
98852001-02-14 Nathan Sidwell <nathan@codesourcery.com>
9886
9887 * pt.c (unify): Don't check cv quals of array types.
9888
7773899b
NS
98892001-02-14 Nathan Sidwell <nathan@codesourcery.com>
9890
9891 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
9892 check whether we already have the type.
9893
52682a1b
MM
98942001-02-13 Mark Mitchell <mark@codesourcery.com>
9895
9896 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
9897 * call.c (build_op_delete_call): Simplify to remove duplicate
9898 code.
9899 * class.c (clone_function_decl): Don't build the deleting variant
9900 of a non-virtual destructor.
9901 * decl.c (finish_destructor_body): Don't call delete if this is a
9902 non-virtual destructor.
9903 * init.c (build_delete): Explicitly call `operator delete' when
9904 deleting an object with a non-virtual destructor.
9c96f3f8 9905
3b6bd115
JM
99062001-02-13 Jason Merrill <jason@redhat.com>
9907
9908 * lang-specs.h: Add more __EXCEPTIONS.
9909
45abaea8
NS
99102001-02-12 Nathan Sidwell <nathan@codesourcery.com>
9911
9912 * typeck2.c (process_init_constructor): Check
9913 TREE_HAS_CONSTRUCTOR before issuing missing init warning.
9914
996065b4
NS
99152001-02-12 Nathan Sidwell <nathan@codesourcery.com>
9916
9917 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
9918 Remove spurious information in comment. Allow further
9919 adjustments of REFERENCE_TYPE args.
9920
82c18d5c
NS
99212001-02-12 Nathan Sidwell <nathan@codesourcery.com>
9922
9923 * errfn.c (cp_deprecated): Tweak diagnostic text.
9924 * parse.y (new_initializer): Deprecate initializer lists
9925 extension.
9926
1f84ec23
MM
99272001-02-12 Mark Mitchell <mark@codesourcery.com>
9928
9929 Remove old ABI support.
9930
8c310e3f
MM
99312001-02-11 Mark Mitchell <mark@codesourcery.com>
9932
b1012f1b
MM
9933 * decl2.c (flag_vtable_thunks): Always set it to 1.
9934 (flag_new_abi): Likewise.
9935 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9c96f3f8 9936
8c310e3f
MM
9937 * Makefile.in (g++spec.o): Fix typo.
9938
3b635dfc
JM
99392001-02-09 Jason Merrill <jason@redhat.com>
9940
9941 * lang-specs.h: Restore definition of __EXCEPTIONS.
9942
bd0d5d4a
JM
99432001-02-08 Jason Merrill <jason@redhat.com>
9944
9945 * search.c (shared_member_p): New function.
9946 (lookup_field_r): Use it.
9947 * cp-tree.h (SHARED_MEMBER_P): Remove.
9948
9949 * method.c (process_overload_item): Handle template-dependent array
9950 bounds.
9951 * pt.c (type_unification_real): If we end up with undeduced nontype
9952 parms, try again.
9953
9954 * decl.c (lookup_name_real): Tweak warning to refer to decls, not
9955 types.
9956
9957 * typeck2.c (friendly_abort): Don't say anything if we have
9958 earlier errors or sorries.
9959
9c96f3f8 9960 * decl.c (check_tag_decl): Notice attempts to redefine bool and
bd0d5d4a
JM
9961 wchar_t. Ignore if in_system_header.
9962
9963 * decl.c (maybe_push_cleanup_level): New fn...
9964 (start_decl_1): ...split out from here.
9965 * cvt.c (build_up_reference): Use it.
9966 * cp-tree.h: Declare it.
9967
a9374841
MM
99682001-02-07 Mark Mitchell <mark@codesourcery.com>
9969
9c96f3f8 9970 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
a9374841
MM
9971 spec.
9972
a87b4257
NS
99732001-02-06 Nathan Sidwell <nathan@codesourcery.com>
9974
9975 * pt.c (lookup_template_class): Make sure it's a primary
9976 template or template_template_parm when called from the parser.
9977 (instantiate_template_class): Add assertion.
9978
518fed76
AO
99792001-02-05 Alexandre Oliva <aoliva@redhat.com>
9980
9981 * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
9982 from error_mark_node.
9983
9965d119
NS
99842001-02-05 Nathan Sidwell <nathan@codesourcery.com>
9985
9986 Fix specification and implementation bugs in V3 ABI
9987 construction vtables.
9988 * cp-tree.h (flag_dump_class_layout): New flag.
9989 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
9990 (BINFO_LOST_PRIMARY_P): New flag.
9991 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
9992 (BINFO_PRIMARY_MARKED_P): Rename to ...
9993 (BINFO_PRIMARY_P): ... here.
9994 (binfo_via_virtual): New prototype.
9995 * decl2.c (flag_dump_class_layout): New flag.
9996 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
9997 use `=' as a file name separator.
9998 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
9999 bases.
10000 (build_vtbl_address): If this is a virtual primary base, then
10001 get the vtbl of what it is ultimately primary for.
10002 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
10003 for BINFO_PRIMARY_P.
10004 (dfs_skip_nonprimary_vbases_markedp): Likewise.
10005 (get_shared_vbase_if_not_primary): Likewise.
10006 (dfs_get_pure_virtuals): Likewise.
10007 (expand_upcast_fixups): Likewise.
10008 (fixup_virtual_upcast_offsets): Likewise.
10009 (dfs_find_vbase_instance): Likewise.
10010 (find_vbase_instance): Likewise.
10011 (binfo_from_vbase): Adjust comment to reflect reality.
10012 (binfo_via_virtual): New function.
10013 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
10014 for binfo walking during VTT construction.
10015 (dfs_mark_primary_bases): Remove.
10016 (force_canonical_binfo_r): New function.
10017 (force_canonical_binfo): New function.
10018 (mark_primary_virtual_base): New function.
10019 (mark_primary_bases): Walk in inheritance graph order, use
10020 mark_primary_virtual_base.
10021 (determine_primary_base): Use some more intermediate variables.
10022 (dfs_find_final_overrider): Don't check for overriding along a
10023 virtual path.
10024 (dfs_modify_vtables): Walk into primary virtual bases too.
10025 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
10026 (build_base_fields): Likewise.
10027 (dfs_set_offset_for_unshared_vbases): Likewise.
10028 (layout_virtual_bases): Likewise.
10029 (end_of_class): Likewise.
10030 (finish_struct_1): Call dump_class_hierarchy, if requested.
10031 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
10032 (dump_class_hierarchy_r): Add stream parameter. Emit more information.
10033 (dump_class_hierarchy): Add file parameter. Append to file, if
10034 required.
10035 (finish_vtbls): Adjust accumulate_vtbl_inits call.
10036 Use canonical base for virtual bases.
10037 (build_vtt): Add more comments. Adjust build_vtt_inits call.
10038 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
10039 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
10040 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
10041 virtual VTTs.
10042 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
10043 from DATA. We want virtual primary bases and all bases via virtual.
10044 Only set BINFO_VPTR_INDEX for top level. Look up from a primary
10045 virtual base when not a construction vtable.
10046 (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
10047 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
10048 Use canonical bases when processing virtual bases.
10049 (accumulate_vtbl_inits): We're interested in any base via a
10050 virtual path.
10051 (dfs_accumulate_vtbl_inits): If this is a primary virtual base
10052 within a construction vtable, determine what is being overridden.
10053 (build_vtbl_initializer): Add more comments
10054 (add_vcall_offset_vtbl_entries_1): Adjust comment.
10055 (build_rtti_vtbl_entries): Check if the base has lost its
10056 primary.
10057
39d6f2e8
MM
100582001-02-05 Mark Mitchell <mark@codesourcery.com>
10059
10060 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
10061
d2a6f3c0 100622001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
400500c4
RK
10063
10064 * decl.c (pushdecl): Call abort instead of fatal.
10065 * except.c (decl_is_java_type): Call fatal_error instead of fatal.
10066 * init.c (build_new_1): Likewise.
10067 (build_java_class_ref): Call internal_error and fatal_error, not fatal.
10068 * decl.c (build_typename_type): hash_table_init now returns void.
10069 decl.c (init_decl_processing): Make an error non-fatal.
10070
97458258
MM
100712001-02-04 Mark Mitchell <mark@codesourcery.com>
10072
10073 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
10074 Document.
10075 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
10076 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
10077 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
10078 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
10079 * decl.c (maybe_commonize_var): Use the new name-mangling where
10080 appropriate.
10081 * decl2.c (comdat_linkage): Enhance comments. Make all
10082 compiler-generated things static, if COMDAT is not available.
10083 (get_tinfo_decl): Do not make typeinfo objects that belong in the
10084 library COMDAT.
10085 (tinfo_base_init): Use the correct mangled name for typeinfo
10086 strings, and push them into the global scope.
10087 (typeinfo_in_lib_p): New function.
10088 (synthesize_tinfo_var): Use it.
10089 (create_real_tinfo_var): Likewise.
9c96f3f8 10090
55de1b66
JJ
100912001-02-03 Jakub Jelinek <jakub@redhat.com>
10092
10093 * decl.c (push_class_binding): Use context_for_name_lookup instead
10094 of CP_DECL_CONTEXT.
10095 * search.c (context_for_name_lookup): Remove static. Check for NULL
10096 context in the loop.
10097 * cp-tree.h (context_for_name_lookup): Add prototype.
10098
e92730aa
JJ
100992001-02-02 Jakub Jelinek <jakub@redhat.com>
10100
10101 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
10102 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
10103 Remove.
10104 * call.c (convert_class_to_reference, build_user_type_conversion_1,
10105 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
10106
049f6ec9
MM
101072001-02-02 Mark Mitchell <mark@codesourcery.com>
10108
10109 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
10110 of macros used when compiling g++spec.c.
10111 * g++spec.c (lang_specific_driver): Link with the shared
10112 libgcc by default.
10113
718b8ea5
JM
101142001-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
10115
10116 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
10117 make_reference_declarator, make_call_declarator), method.c
10118 (implicitly_declare_fn), parse.y (namespace_using_decl,
10119 notype_unqualified_id, expr_or_declarator, new_type_id,
10120 after_type_declarator, direct_after_type_declarator,
10121 notype_declarator, complex_notype_declarator,
10122 complex_direct_notype_declarator, qualified_id,
10123 notype_qualified_id, overqualified_id, direct_new_declarator,
10124 absdcl, direct_abstract_declarator, conversion_declarator), pt.c
10125 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
10126 instead of build_parse_node.
10127
f2d1f0ba
KG
101282001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10129
10130 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
10131 (minus_one_node): Moved to top level gcc directory. Renamed
10132 to integer_minus_one_node.
10133
10134 * init.c (init_init_processing): Don't set minus_one_node.
10135 (build_vec_init): Use integer_minus_one_node.
10136
10137 * rtti.c (get_tinfo_decl_dynamic): Likewise.
10138
6001735e
JJ
101392001-01-28 Jakub Jelinek <jakub@redhat.com>
10140
10141 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
10142 identical and they would be replaced with constant, remove
10143 MODIFY_EXPR from the tree.
10144
c913b6f1
KG
101452001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10146
10147 * Make-lang.in: Remove all dependencies on defaults.h.
10148 * call.c: Don't include defaults.h.
10149 * decl.c: Likewise.
10150 * decl2.c: Likewise.
10151 * except.c: Likewise.
10152 * pt.c: Likewise.
10153 * rtti.c: Likewise.
10154 * tree.c: Likewise.
10155 * typeck.c: Likewise.
10156
324ffb8c
JJ
101572001-01-25 Jakub Jelinek <jakub@redhat.com>
10158
10159 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
10160 operators even in "C" linkage.
10161 * method.c (set_mangled_name_for_decl): Likewise.
10162 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
10163 overloaded operators in "C" linkage.
10164
4b2811e9
NS
101652001-01-24 Nathan Sidwell <nathan@codesourcery.com>
10166
10167 * pt.c (tsubst_decl): Remove IN_DECL parameter.
10168 (tsubst_arg_types): Check parameter is not void.
10169 (tsubst): Adjust tsubst_decl call.
10170
d8caf48e
NS
101712001-01-24 Nathan Sidwell <nathan@codesourcery.com>
10172
10173 * call.c (add_builtin_candidate): Quote std properly, from
10174 previous change.
10175
08511114
KL
101762001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10177
10178 * pt.c (check_explicit_specialization): Clone constructors and
10179 destructors.
10180
92ecdfb7
NS
101812001-01-23 Nathan Sidwell <nathan@codesourcery.com>
10182
10183 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
10184 indicates anything special about template depth. Make sure we
10185 only count the user visible template classes.
10186
4cff6abe
NS
101872001-01-23 Nathan Sidwell <nathan@codesourcery.com>
10188
10189 * call.c (build_conv): Typo in comment.
10190 (add_builtin_candidate): Add more explanation.
10191 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
10192 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
10193 when we have enumeral types.
10194 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
10195 candidates for relops and eqops.
10196 (joust): Simplify control flow. Allow a non-template user
10197 function to hide a builtin.
10198
62e4a758
NS
101992001-01-22 Nathan Sidwell <nathan@codesourcery.com>
10200
10201 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
10202 (more_specialized): Add deduction parameter.
10203 * call.c (joust): Adjust more_specialized call.
10204 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
10205 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
10206 (get_bindings_order): Remove.
10207 (get_bindings_real): Add DEDUCE parameter.
10208 (maybe_adjust_types_for_deduction): Return extra unify flags. Do
10209 REFERENCE_TYPE jig for DEDUCE_ORDER.
10210 (type_unification_real): Deal with DEDUCE_ORDER. Use result of
10211 maybe_adjust_types_for_deduction.
10212 (more_specialized): Add DEDUCE parameter. Call get_bindings_real
10213 directly.
10214 (try_one_overload): Use result of maybe_adjust_types_for_deduction.
10215 (check_cv_quals_for_unify): Use new unify qualifier flags.
10216 (unify): Clear new unify qualifier flags.
10217 (get_bindings_real): Add DEDUCE parameter.
10218 (get_bindings): Adjust call to get_bindings_real.
10219 (get_bindings_overload): Likewise.
10220 (most_specialized_instantiation): Adjust call to
10221 more_specialized.
10222
2a2a9e5a
JM
102232001-01-19 Jason Merrill <jason@redhat.com>
10224
10225 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
10226
10227 * decl.c (init_decl_processing): Just force -fvtable-thunks on if
10228 -fnew-abi.
10229
60696c53
JM
102302001-01-19 Ute Pelkmann <scope.muc@t-online.de>
10231
10232 * decl2.c (arg_assoc_class): Fix double iteration logic.
10233
102342001-01-19 Jason Merrill <jason@redhat.com>
10235
10236 * init.c (build_delete): Always call convert_force to strip cv-quals.
10237
10238 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
10239 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
10240 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
10241
1e00f18c
NS
102422001-01-19 Nathan Sidwell <nathan@codesourcery.com>
10243
10244 * search.c (get_vbase_1): Count only virtual bases.
10245
e13bced2
NS
102462001-01-19 Nathan Sidwell <nathan@codesourcery.com>
10247
10248 * class.c (duplicate_tag_error): Robustify flag clearing.
10249
f9c244b8
NS
102502001-01-19 Nathan Sidwell <nathan@codesourcery.com>
10251
10252 * cp-tree.h (lookup_template_class): Add complain parm.
10253 * decl.c (lookup_namespace_name): Adjust call to
10254 lookup_template_class.
10255 (make_typename_type): Likewise.
10256 * semantics.c (finish_template_type): Likewise.
10257 * pt.c (lookup_template_class): Add complain parm. Adjust.
10258 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
10259 (tsubst): Likewise.
10260
08c2df0f
NS
102612001-01-19 Nathan Sidwell <nathan@codesourcery.com>
10262
10263 * pt.c (copy_default_args_to_explicit_spec): Preserve
10264 object's CV quals. Reorganize.
10265
f5ceeec8
NS
102662001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10267
10268 * typeck.c (build_modify_expr): Say `initialization' for
10269 INIT_EXPRs.
10270 * init.c (build_default_init): Convert to enumeral type, if
10271 needed.
10272
a1cfa434
JJ
102732001-01-18 Jakub Jelinek <jakub@redhat.com>
10274
10275 * parse.y (nomods_initdcl0): Properly set things up for
10276 initdcl0_innards.
10277
028d1f20
NS
102782001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10279
10280 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
10281 (type_unification_real): Set it.
10282 (unify): Use it.
10283
9f724b6a
NS
102842001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10285
10286 * decl.c (finish_destructor_body): Convert to vbase pointer here.
10287
522d6614
NS
102882001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10289
10290 * semantics.c (begin_class_definition): Check we're not inside a
10291 template parm list.
10292
7f805b8f
NS
102932001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10294
10295 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
10296 BASELINK_P.
10297
dc3799c1
KL
102982001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10299
10300 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
10301 * call.c (build_over_call): Add comment.
10302
bb37c4a5
DB
103032001-01-16 Daniel Berlin <dberlin@redhat.com>
10304
826840d9
RH
10305 * cvt.c (ocp_convert): Handle vector type conversion
10306 * typeck2.c (digest_init): Handle vector type initializations
9c96f3f8 10307
a26e7fb5
PE
103082001-01-16 Phil Edwards <pme@sources.redhat.com>
10309
10310 * g++spec.c: Don't add libraries needlessly if -fsyntax-only
10311 was given.
10312
11b810f1
NS
103132001-01-15 Nathan Sidwell <nathan@codesourcery.com>
10314
10315 * pt.c (check_nontype_parm): Rename to ...
10316 (invalid_nontype_parm_type_p): ... here.
10317 (process_template_parm): Adjust.
10318 (convert_template_argument): Adjust.
10319
db3f4e4e
NS
103202001-01-15 Nathan Sidwell <nathan@codesourcery.com>
10321
10322 * pt.c (check_nontype_parm): New function.
10323 (process_template_parm): Use it.
10324 (convert_template_argument): Use it.
10325 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
10326 member.
10327
ea4f1fce
JO
103282001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
10329
10330 * tree.c: Add defaults.h
10331 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
10332 * Make-lang.in (cp/tree.o): Add defaults.h.
10333
1312c143
JM
103342001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
10335
10336 * Make-lang.in (CXX_C_OBJS): Add c-format.o.
10337
4bc1997b
JM
103382001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
10339
10340 * g++.1: Change to be ".so man1/gcc.1".
10341
23de1fbf
JM
103422001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
10343
10344 * Make-lang.in (c++.info, c++.install-info): Build and install g++
10345 internals info.
10346 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
10347 ($(srcdir)/cp/g++int.info): New target.
10348 * gxxint.texi: Add info directory entry. Use @@ in email address.
10349 * .cvsignore: Update.
10350
0949f723
NS
103512001-01-12 Nathan Sidwell <nathan@codesourcery.com>
10352
10353 * typeck.c (build_c_cast): Do template processing earlier.
10354 Always pedwarn on array casts.
10355
a8641661
NS
103562001-01-12 Nathan Sidwell <nathan@codesourcery.com>
10357
10358 * friend.c (make_friend_class): Make sure a templated class is
10359 actually a template.
10360
844511c8
NS
103612001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10362
10363 * decl2.c (get_guard): Set linkage from guarded decl.
10364
96a1e32d
NS
103652001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10366
10367 * call.c (convert_default_arg): Check for unprocessed
10368 DEFAULT_ARG.
10369 * cp-tree.h (replace_defarg): Move to spew.c.
10370 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
10371 spew.c, which is where they really are.
10372 (done_pending_defargs): Declare.
10373 (unprocessed_defarg_fn): Declare.
10374 * decl.c (replace_defarg): Move to spew.c
10375 * parse.y (structsp): Call done_pending_defargs.
10376 * spew.c (defarg_fns): Rearrange list structure.
10377 (defarg_fnsdone): New static variable.
10378 (defarg_depfns): New static variable.
10379 (init_spew): Adjust.
10380 (add_defarg_fn): Store the type in TREE_TYPE.
10381 (do_pending_defargs): Detect and deal with ordering constraints
10382 and circularity.
10383 (done_pending_defargs): New function.
10384 (unprocessed_defarg_fn): New function.
10385 (replace_defarg): Moved from decl.c. Robustify. Don't save
10386 if circularity detected.
10387
34e225a3
NS
103882001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10389
10390 * pt.c (unify): Check array has a domain, before checking
10391 whether it is variable sized.
10392
98979fe0
NS
103932001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10394
10395 * decl.c (grokparms): Unobfuscate and get correct diagnostic for
10396 parameters with pointers to arrays of unknown bound.
10397
b37bf5bd
NS
103982001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10399
10400 * parse.y (template_parm_header, template_spec_header): New
10401 reductions. Split out from ...
10402 (template_header): ... here. Use them.
10403 (template_template_parm): Use template_parm_header.
10404 * semantics.c (finish_template_template_parm): Add assert.
10405
6c418184
MM
104062001-01-10 Mark Mitchell <mark@codesourcery.com>
10407
792508b5
MM
10408 * mangle.c (write_builtin_type): Fix thinko.
10409
8afa707f
MM
10410 * pt.c (copy_default_args_to_explicit_spec_1): New function.
10411 (copy_default_args_to_explicit_spec): Likewise.
10412 (check_explicit_specialization): Use it.
10413
6c418184
MM
10414 * class.c (finish_struct_1): Remove last argument in call to
10415 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
10416 * decl.c (builtin_function): Likewise.
10417 (build_cp_library_fn): Likewise.
10418 (check_initializer): Likewise.
10419 (make_rtl_for_nonlocal_decl): Likewise.
10420 (cp_finish_decl): Likewise.
10421 (start_function): Likewise.
10422 * decl2.c (finish_anon_union): Likewise.
10423 * friend.c (do_friend): Likewise.
10424 * init.c (build_java_class_ref): Likewise.
10425 * method.c (make_thunk): Likewise.
10426 * pt.c (tsubst_friend_function): Likewise.
10427 * semantics.c (expand_body): Likewise.
10428
31d95fc6
MM
104292001-01-10 Mark Mitchell <mark@codesourcery.com>
10430
10431 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
10432 looking at DECL_CLONED_FUNCTION for non-functions.
10433
31bb3027
NS
104342001-01-10 Nathan Sidwell <nathan@codesourcery.com>
10435
10436 * error.c (dump_template_parameter): Use parm to determine how
10437 to print default value.
10438
fd3f43e7
NS
104392001-01-10 Nathan Sidwell <nathan@codesourcery.com>
10440
10441 * class.c (duplicate_tag_error): Clear more flags.
10442
042b4c4e
NS
104432001-01-10 Nathan Sidwell <nathan@codesourcery.com>
10444
10445 * call.c (build_new_method_call): Use binfo_for_vbase.
10446
a7537031
JM
104472001-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
10448
10449 * cp-tree.h (flag_cond_mismatch): Don't declare.
10450 * decl2.c (flag_cond_mismatch): Don't define.
10451 (lang_f_options): Remove cond-mismatch.
10452 (unsupported_options): Add cond-mismatch.
10453
186c0fbe
NS
104542001-01-09 Nathan Sidwell <nathan@codesourcery.com>
10455
10456 * class.c (handle_using_decl): Reject using of constructor name
10457 of sourcing class. Allow injecting of a method with same name as
10458 nested class. Fixup error messages.
10459
28ec8d6b
JM
104602001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
10461
10462 * decl2.c (lang_decode_option): Handle -Wformat=2.
10463
3febd123
NS
104642001-01-08 Nathan Sidwell <nathan@codesourcery.com>
10465
10466 * cp-tree.h (lang_decl_flags): Rename defined_in_class to
10467 initialized_in_class.
10468 (DECL_DEFINED_IN_CLASS_P): Rename to ...
10469 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
10470 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
10471 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
10472 * pt.c (check_default_tmpl_args): Adjust for
10473 DECL_INITIALIZED_IN_CLASS_P.
10474 (instantiate_class_template): Likewise.
10475 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9c96f3f8 10476
3febd123
NS
10477 * class.c (finish_struct): Constify saved_filename.
10478
1f0d71c5
NS
104792001-01-08 Nathan Sidwell <nathan@codesourcery.com>
10480
10481 * class.c (duplicate_tag_error): Adjust diagnostic.
10482 (finish_struct): Locally set location to start of struct.
10483 * decl.c (fixup_anonymous_aggr): Use cp_error_at.
10484
5bf15e84 104852001-01-08 Nathan Sidwell <nathan@codesourcery.com>
76191fdd
NS
10486
10487 * decl.c (struct binding_level): Adjust class_shadowed comments
10488 to reflect reality.
aba649ba 10489 (push_class_level_binding): Adjust comments to reflect reality.
76191fdd
NS
10490 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
10491 Don't set TREE_VALUE on the class_shadowed list.
10492
23d4e4cc 104932001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9c96f3f8
AJ
10494
10495 * decl2.c (acceptable_java_type): Allow references too.
23d4e4cc
APB
10496 * init.c (build_java_class_ref): When using the new ABI, search
10497 `class$' and have it mangled with `mangle_decl.'
10498 * mangle.c (write_java_integer_type_codes): New function.
10499 (write_builtin_type): Detect and mangle Java integer and real
10500 types.
9c96f3f8 10501
0c58da3e
MM
105022001-01-07 Mark Mitchell <mark@codesourcery.com>
10503
10504 * decl2.c (grokfield): Don't accept `asm' specifiers for
10505 non-static data members.
10506
45b8ddb4
KG
105072001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10508
10509 * expr.c (cplus_expand_expr): Don't reset `target'.
10510
96302433
NB
105112001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
10512
826840d9 10513 * cp/decl2.c (cxx_post_options): Call cpp_post_options.
96302433 10514
220bce48
NS
105152001-01-05 Nathan Sidwell <nathan@codesourcery.com>
10516
10517 * parse.y (template_datadef): Check for error_mark_node.
10518
bfa2cb33
NS
105192001-01-05 Nathan Sidwell <nathan@codesourcery.com>
10520
10521 * cp-tree.def (DEFAULT_ARG): Make `x' class.
10522
eaa7c03f
JM
105232001-01-04 Joseph S. Myers <jsm28@cam.ac.uk>
10524
10525 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
10526 (record_builtin_type): Make non-static.
10527 (flag_short_double): Don't declare.
10528 (init_decl_processing): Remove the creation of many tree nodes now
10529 in c_common_nodes_and_builtins.
10530 (build_void_list_node): New function.
10531 * decl2.c (flag_short_double, flag_short_wchar): Don't define.
10532 * cp-tree.h (flag_short_wchar): Don't declare.
10533
3af4c257
MM
105342001-01-04 Mark Mitchell <mark@codesourcery.com>
10535
10536 * call.c (build_conv): Don't use build1 for USER_CONV.
10537 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
10538
03dc0325
JM
105392001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
10540
10541 * lex.c (lang_init): Call c_common_lang_init.
10542
3c505507
NS
105432001-01-03 Nathan Sidwell <nathan@codesourcery.com>
10544
10545 * search.c (lookup_fnfields_here): Remove.
10546 (look_for_overrides_r): Use lookup_fnfields_1.
10547 Ignore functions from using declarations.
10548
03378143
NS
105492001-01-03 Nathan Sidwell <nathan@codesourcery.com>
10550
10551 Implement exceptions specifiers for implicit member functions.
10552 * cp-tree.h (merge_exceptions_specifiers): Declare new function.
10553 * method.c (synthesize_exception_spec): New function.
10554 (locate_dtor, locate_ctor, locate_copy): New functions.
10555 (implicitly_declare_fn): Generate the exception spec too.
10556 * search.c (check_final_overrider): Check artificial functions
10557 too.
9c96f3f8 10558 * typeck2.c (merge_exception_specifiers): New function.
03378143 10559
f30efcb7
JM
105602001-01-03 Jason Merrill <jason@redhat.com>
10561
10562 * init.c (build_default_init): New fn.
10563 (perform_member_init): Split out from here.
10564 (build_new_1): Use it. Simplify initialization logic.
10565 (build_vec_init): Take an array, rather than a pointer and maxindex.
10566 Speed up simple initializations. Don't clean up if we're assigning.
10567 * cp-tree.h: Adjust.
10568 * decl2.c (do_static_initialization): Remove TREE_VEC case.
10569 * parse.y (new_initializer): Return void_zero_node for ().
10570 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
10571 * typeck2.c (digest_init): Only complain about user-written
10572 CONSTRUCTORs.
10573
a412bf75
MS
105742000-12-22 Mike Stump <mrs@wrs.com>
10575
10576 * decl2.c: (max_tinst_depth): Increase to 50.
10577
4890c2f4
MM
105782001-01-02 Mark Mitchell <mark@codesourcery.com>
10579
10580 * class.c (invalidate_class_lookup_cache): Zero the
10581 previous_class_values.
10582 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
10583 TREE_INT_CST_HIGH.
10584 (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
10585 * decl.c (free_bindings): New variable.
10586 (push_binding): Don't create a new binding if we have one on the
10587 free list.
10588 (pop_binding): Put old bindings on the free list.
10589 (init_decl_processing): Use size_int, not build_int_2.
10590 Register free_bindings as a GC root.
10591 (cp_make_fname_decl): Use size_int, not build_int_2.
10592 (push_inline_template_parms_recursive): Likewise.
10593 (end_template_parm_list): Likewise.
688f6688 10594 (for_each_template_parm): Do not use walk_tree_without_duplicates.
4890c2f4
MM
10595 (tsubst_template_parms): Use size_int, not build_int_2.
10596 (tsubst): Likewise.
10597 * rtti.c (get_vmi_pseudo_type_info): Likewise.
9c96f3f8 10598
4f78b9a8
RH
105992001-01-02 Richard Henderson <rth@redhat.com>
10600
10601 * parse.y (asm): Set ASM_INPUT_P.
10602
3c8c2a0a
JM
106032001-01-02 Jason Merrill <jason@redhat.com>
10604
96d6c610
JM
10605 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
10606 for v3 ABI.
10607
10608 * typeck.c (cp_truthvalue_conversion): New fn.
10609 * cvt.c (ocp_convert): Use it.
10610
10611 * cp-tree.h: Lose c-common.c decls.
10612
10613 * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
10614 * cvt.c (convert_to_void): Use type_unknown_p.
10615
9c96f3f8 10616 * typeck.c (strip_all_pointer_quals): Also strip quals from
3c8c2a0a
JM
10617 pointer-to-member types.
10618
10619 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat
10620 parse.y as C.
10621
10622 * call.c (build_new_method_call): Do evaluate the object parameter
10623 when accessing a static member.
10624 * typeck.c (build_component_ref): Likewise.
10625
d363e7bf
AJ
106262001-01-02 Andreas Jaeger <aj@suse.de>
10627
10628 * decl.c (cp_missing_noreturn_ok_p): New.
10629 (init_decl_processing): Set lang_missing_noreturn_ok_p.
10630
77f5250d
JJ
106312000-12-29 Jakub Jelinek <jakub@redhat.com>
10632
10633 * decl.c (init_decl_processing): Fix sign of wchar_type_node.
10634
31a714f6
MM
106352000-12-29 Mark Mitchell <mark@codesourcery.com>
10636
10637 * class.c (pushclass): Remove #if 0'd code.
10638 * cp-tree.h (overload_template_name): Remove.
10639 * decl.c (store_bindings): Simplify.
10640 (pop_from_top_level): Likewise.
10641 * pt.c (overload_template_name): Remove.
d363e7bf 10642 (instantiate_decl): Don't call push_to_top_level if it's not
31a714f6
MM
10643 needed.
10644
414ea4aa
MM
106452000-12-28 Mark Mitchell <mark@codesourcery.com>
10646
10647 * pt.c (register_local_specialization): Don't return a value.
10648 (lookup_template_class): Use move-to-front heuristic when looking
10649 up template instantiations.
10650 (instantiate_decl): Only push_to_top_level when we're actually
10651 going to instantiate the template.
10652
6f18f7e9
HPN
106532000-12-29 Hans-Peter Nilsson <hp@bitrange.com>
10654
10655 * search.c (binfo_for_vtable): Return least derived class, not
10656 most. Handle secondary vtables.
10657
e5214479
JM
106582000-12-22 Jason Merrill <jason@redhat.com>
10659
3c8c2a0a
JM
10660 * pt.c (more_specialized): Don't optimize len==0.
10661 (fn_type_unification): If we're adding the return type, increase len.
10662
ebb1abc3
JM
10663 * typeck.c (build_binary_op): Fix pmf comparison logic.
10664
c939ca5f
JM
10665 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
10666 DECL_STATIC_FUNCTION_P.
10667
e6fe680d
JM
10668 * semantics.c (genrtl_finish_function): Don't try to jump to
10669 return_label unless it exists.
10670
e5214479
JM
10671 In partial ordering for a call, ignore parms for which we don't have
10672 a real argument.
10673 * call.c (joust): Pass len to more_specialized.
10674 (add_template_candidate_real): Strip 'this', pass len.
10675 * pt.c (more_specialized): Pass len down. Lose explicit_args parm.
10676 (get_bindings_order): New fn. Pass len down.
10677 (get_bindings_real): Strip 'this', pass len.
10678 (fn_type_unification): Likewise.
10679 (type_unification_real): Succeed after checking 'len' args.
10680 (most_specialized_instantiation): Lose explicit_args parm.
d363e7bf 10681 * class.c (resolve_address_of_overloaded_function): Strip 'this',
e5214479
JM
10682 pass len.
10683
106842000-12-21 Jason Merrill <jason@redhat.com>
477f6664
JM
10685
10686 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
10687 DECL_TEMPLATE_RESULT.
10688
10689 * search.c (lookup_field_r): Call lookup_fnfields_1, not
10690 lookup_fnfields_here.
10691
10692 * parse.y (typename_sub2): Return the TYPE_DECL, not the type.
10693
10694 * call.c (build_object_call): Also allow conversions that return
10695 reference to pointer to function.
10696 (add_conv_candidate): Handle totype being ref to ptr to fn.
10697 (build_field_call): Also allow members of type reference to function.
10698 Lose support for calling pointer to METHOD_TYPE fields.
10699
10700 * error.c (dump_expr): Handle *_CAST_EXPR.
10701
10702 * typeck2.c (build_scoped_ref): Always convert to the naming class.
10703
10704 * tree.c (break_out_cleanups): Lose.
10705 * cp-tree.h: Remove prototype.
10706 * typeck.c (build_component_ref): Don't break_out_cleanups.
10707 (build_compound_expr): Likewise.
10708 * semantics.c (finish_expr_stmt): Likewise.
10709
3e4d04a1
RH
107102000-12-20 Richard Henderson <rth@redhat.com>
10711
10712 * cp-tree.h: Update declarations.
10713 * decl.c (finish_case_label): Return the new stmt node.
10714 * semantics.c (finish_goto_stmt): Likewise.
10715 (finish_expr_stmt, finish_return_stmt): Likewise.
10716 (finish_break_stmt, finish_continue_stmt): Likewise.
10717 (finish_asm_stmt): Likewise.
10718 * parse.y (already_scoped_stmt): Set STMT_LINENO.
10719 (compstmt, implicitly_scoped_stmt, stmt): Likewise.
10720 (simple_if, simple_stmt): Return the new stmt node.
10721 (save_lineno): New.
10722
20d380b1
JM
107232000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
10724
10725 * cp-tree.h: Don't declare warn_long_long.
10726
221c7a7f
KL
107272000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10728
10729 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
10730 IS_AGGR_TYPE.
10731
b429fdf0
KL
107322000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10733
10734 * pt.c (unify): Handle when both ARG and PARM are
10735 BOUND_TEMPLATE_TEMPLATE_PARM.
10736
c2beae77
KL
107372000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10738
10739 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
10740 DECL_TEMPLATE_PARM_P.
10741
c3e899c1
JM
107422000-12-15 Jason Merrill <jason@redhat.com>
10743
96790071
JM
10744 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs!
10745
8d42565b
JM
10746 * init.c (build_new_1): Don't strip quals from type.
10747
fab09a24
JM
10748 * decl.c (pushdecl): Don't check for linkage on a non-decl.
10749
c3e899c1
JM
10750 * call.c (build_op_delete_call): See through ARRAY_TYPEs.
10751
10752 * call.c (build_new_function_call): Lose space before paren in
10753 error message.
10754 (build_new_method_call): Likewise.
10755
10756 * typeck2.c (build_m_component_ref): Propagate quals from datum.
10757
edac124d
KL
107582000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10759
10760 * pt.c (check_explicit_specialization): Propagate default
10761 function arguments to explicit specializations.
10762
31750649 107632000-12-13 DJ Delorie <dj@redhat.com>
8d3b081e
DD
10764
10765 * typeck.c (build_binary_op): Do signed/unsigned warnings for >?
10766 and <? operators.
10767
5e818b93
JM
107682000-12-08 Jason Merrill <jason@redhat.com>
10769
10770 * error.c (dump_function_name): Don't let the user see __comp_ctor.
10771
10772 Clean up copy-initialization in overloading code.
10773 * call.c (build_user_type_conversion_1): Die if we are asked to
10774 convert to the same or a base type.
10775 (implicit_conversion): Avoid doing so. Lose reference binding code.
10776 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
10777 direct-initialization. Also do direct-init part of copy-init.
10778 (build_user_type_conversion): Don't provide context to convert_like.
10779 * cvt.c (ocp_convert): build_user_type_conversion will now provide
10780 the constructor call for copy-init.
10781
10782 * pt.c (tsubst_decl): Call clone_function_decl here if this is an
10783 instantiation of a member template.
10784 (do_decl_instantiation): Not here.
10785
38da6039
NS
107862000-12-07 Nathan Sidwell <nathan@codesourcery.com>
10787
10788 * class.c (check_field_decls): Don't special case anonymous
10789 fields in error messages.
c9407e4c 10790 (note_name_declared_in_class): Use %D on diagnostic.
d363e7bf 10791
38da6039
NS
10792 * tree.c (pod_type_p): Use strip_array_types.
10793 (cp_valid_lang_attribute): Likewise.
10794 * typeck.c (cp_type_quals): Strip arrays separately, to avoid
10795 multiple evaluations.
d363e7bf 10796 (cp_has_mutable_p): Use strip_array_types.
38da6039 10797
a11d04b5
NS
107982000-12-07 Nathan Sidwell <nathan@codesourcery.com>
10799
10800 * cp-tree.h (sufficient_parms_p): Declare new function.
10801 * call.c (sufficient_parms_p): New function, broken out of ...
10802 (add_function_candidate): ... here. Use it.
10803 (add_conv_candidate): Use it.
10804 * decl.c (grok_ctor_properties): Use it.
10805
5eec2847
JJ
108062000-12-07 Jakub Jelinek <jakub@redhat.com>
10807
10808 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
10809
c907e684
JM
108102000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
10811
10812 * decl2.c (lang_decode_option): Handle -Wformat-security.
10813
74601d7c
KL
108142000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10815
10816 * pt.c (verify_class_unification): New function.
10817 (get_class_bindings): Use it.
10818 (try_class_unification): Tidy.
10819 (unify): Handle when argument of a template-id is not
10820 template parameter dependent.
10821 (template_args_equal): Handle when TREE_CODE's do not match.
10822
8954e858
AO
108232000-12-06 Alexandre Oliva <aoliva@redhat.com>
10824
10825 * lang-specs.h (c++): When invoking the stand-alone preprocessor
10826 for -save-temps, pass all relevant -Defines to it, and then don't
10827 pass them to cc1plus.
10828
3dc9aec6
WC
108292000-12-05 Will Cohen <wcohen@redhat.com>
10830
10831 * decl.c (finish_case_label): Cleared
10832 more_cleanups_ok in surrounding function scopes.
10833 (define_label): Likewise.
10834
cbb40945
NS
108352000-12-05 Nathan Sidwell <nathan@codesourcery.com>
10836
10837 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
10838 (get_matching_virtual): Remove.
10839 (look_for_overrides): Declare new function.
10840 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
10841 DECL_VINDEX here.
10842 * class.c (check_for_override): Move base class iteration code
10843 to look_for_overrides.
10844 * search.c (next_baselink): Remove.
10845 (get_virtuals_named_this): Remove.
10846 (get_virtual_destructor): Remove.
10847 (tree_has_any_destructors_p): Remove.
10848 (struct gvnt_info): Remove.
10849 (check_final_overrider): Remove `virtual' from error messages.
10850 (get_matching_virtuals): Remove. Move functionality to ...
10851 (look_for_overrides): ... here, and ...
10852 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
10853 to be overriding.
10854
61402b80
NS
108552000-12-05 Nathan Sidwell <nathan@codesourcery.com>
10856
10857 * typeck.c (get_delta_difference): If via a virtual base,
10858 return zero.
10859 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no
10860 adjustment.
10861
39abc9a6
RH
108622000-12-04 Richard Henderson <rth@redhat.com>
10863
10864 * error.c (dump_tree): Use output_add_string not OB_PUTS.
10865
c00996a3
JM
108662000-12-04 Jason Merrill <jason@redhat.com>
10867
10868 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
d363e7bf 10869 (write_builtin_type): Pass intSI_type_node and the like through
c00996a3
JM
10870 type_for_mode.
10871 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
10872 Pass intSI_type_node and the like through type_for_mode.
10873 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
10874 * pt.c (tsubst, unify): Likewise.
10875 * tree.c (walk_tree): Likewise.
10876 * error.c (dump_type): Likewise.
10877 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
d363e7bf 10878
c00996a3
JM
10879 * Make-lang.in: Tweak top comment for emacs.
10880 (cp/TAGS): Restore.
10881
10882 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
10883
c00996a3
JM
10884 * class.c (clone_function_decl): Robustify.
10885
108862000-12-04 Michael Matz <matzmich@cs.tu-berlin.de>
10887
10888 * decl.c (store_bindings): Only search in the non modified
10889 old_bindings for duplicates.
10890
00bb3dad
NS
108912000-12-04 Nathan Sidwell <nathan@codesourcery.com>
10892
10893 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
10894 TYPE_POLYMORPHIC_P.
d363e7bf 10895
00bb3dad
NS
10896 * typeck.c (build_static_cast): Remove unused variable.
10897
dc957d14
KL
108982000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10899
10900 * pt.c: Fix typo in comment.
10901
4d808927
JM
109022000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
10903
10904 * decl2.c (warn_format): Remove definition.
10905 (lang_decode_option): Handle -Wformat-nonliteral,
10906 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat.
10907
5fd8e536
JM
109082000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
10909
10910 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
10911 (init_decl_processing): Don't create string_type_node,
10912 const_string_type_node, wint_type_node, intmax_type_node,
10913 uintmax_type_node, default_function_type, ptrdiff_type_node and
10914 unsigned_ptrdiff_type_node. Adjust position of call to
10915 c_common_nodes_and_builtins.
10916 (identifier_global_value): New function.
10917
13f9714b
NS
109182000-12-01 Nathan Sidwell <nathan@codesourcery.com>
10919
10920 * call.c (standard_conversion): Reject pointer to member
10921 conversions from ambiguous, inaccessible or virtual bases.
10922 * typeck.c (build_static_cast): Don't check pointers to members
10923 specially.
10924
31b1b957
NS
109252000-11-30 Nathan Sidwell <nathan@codesourcery.com>
10926
10927 * method.c (do_build_copy_constructor): Preserve cv
10928 qualifications when accessing source object members.
10929 (do_build_assign_ref): Likewise. Remove separate diagnostics for
10930 unnamed fields.
10931
717e3f73
NS
109322000-11-30 Nathan Sidwell <nathan@codesourcery.com>
10933
10934 * method.c (do_build_assign_ref): Construct appropriately
10935 CV-qualified base reference. Don't allow const casts in base
10936 conversion.
10937
2c92b94d
NS
109382000-11-30 Nathan Sidwell <nathan@codesourcery.com>
10939
10940 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on
10941 incomplete return type.
10942
bb92901d
NS
109432000-11-28 Nathan Sidwell <nathan@codesourcery.com>
10944
10945 * parse.y (base_class.1): Produce a _TYPE not a _DECL.
10946 * semantics.c (finish_base_specifier): Accept a _TYPE not a
10947 _DECL.
10948
2f3608c3
NS
109492000-11-28 Nathan Sidwell <nathan@codesourcery.com>
10950
10951 * spew.c (yyerror): Cope if yylval.ttype is NULL.
10952
eeb75383
NS
109532000-11-28 Nathan Sidwell <nathan@codesourcery.com>
10954
10955 * decl.c (grokdeclarator): Diagnose undefined template contexts.
10956
5ee4cc26
NS
109572000-11-28 Nathan Sidwell <nathan@codesourcery.com>
10958
10959 * decl.c (grokdeclarator): Do type access control on friend
10960 class.
10961
76e57b45
NS
109622000-11-27 Nathan Sidwell <nathan@codesourcery.com>
10963
10964 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
10965 bison parser ickiness.
10966 * pt.c (tsubst_friend_function): Enter namespace scope when
10967 tsubsting the function name.
10968 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
10969
f9825168
NS
109702000-11-27 Nathan Sidwell <nathan@codesourcery.com>
10971
10972 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
10973 * cvt.c (cp_convert_to_pointer): Add force parameter.
10974 Allow conversions via virtual base if forced.
10975 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
10976 (ocp_convert): Likewise.
10977 * search.c (binfo_from_vbase): Return the virtual base's binfo.
10978 * typeck.c (get_delta_difference): Adjust handling of virtual
10979 bases.
10980
9ccb25d5
MM
109812000-11-26 Mark Mitchell <mark@codesourcery.com>
10982
10983 * tree.c (struct list_hash): Remove.
10984 (list_hash_table): Make it be an htab.
10985 (struct list_proxy): New type.
10986 (list_hash_eq): New function.
10987 (list_hash_pieces): Renamed from ...
10988 (list_hash): ... this.
10989 (list_hash_lookup): Remove.
10990 (list_hash_add): Remove.
10991 (hash_tree_cons): Use the generic hashtable.
10992 (mark_list_hash): Remove.
10993 (init_tree): Create the hashtable.
10994
9399bad3
JM
109952000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
10996
10997 * method.c (build_mangled_C9x_name): Rename to
10998 build_mangled_C99_name. Change C9X references in comments to
10999 refer to C99.
11000
2f401cc8
NS
110012000-11-24 Nathan Sidwell <nathan@codesourcery.com>
11002
11003 * parse.y (unary_expr): Move VA_ARG from here ...
11004 (primary): ... to here.
11005
3d7e9ba4
NS
110062000-11-24 Nathan Sidwell <nathan@codesourcery.com>
11007
11008 * semantics.c (finish_id_expr): If type is error_mark, return
11009 error_mark.
11010
ab097535
NS
110112000-11-23 Nathan Sidwell <nathan@codesourcery.com>
11012
11013 * pt.c (lookup_template_class): Simplify loop exit constructs.
11014 Cope when there is no partial instantiation of a template
11015 template member.
11016
d2a6f3c0 110172000-11-23 J"orn Rennecke <amylaar@redhat.com>
9196ece5
R
11018
11019 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
11020
cac78ea2
MM
110212000-11-22 Mark Mitchell <mark@codesourcery.com>
11022
6e1b44bc
MM
11023 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
11024 prefix.
11025
cac78ea2
MM
11026 * pt.c (do_decl_instantiate): Explicitly clone constructors and
11027 destructors that haven't already been cloned.
11028
3aac38d7
RH
110292000-11-20 Richard Henderson <rth@redhat.com>
11030
11031 * parse.y (yyparse_1): Rename the parser entry point.
11032
110332000-11-20 Alex Samuel <samuel@codesourcery.com>
beac9b93
AS
11034
11035 * mangle.c (write_name): Use <unscoped-name> for names directly in
11036 function scope.
11037 (write_unscoped_name): Accept names directly in function scope.
d363e7bf 11038
447306fa
NS
110392000-11-20 Nathan Sidwell <nathan@codesourcery.com>
11040
11041 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
11042 * parse.y (extdef): Add EXPORT reduction.
11043 * spew.c (yylex): Don't skip export here.
11044
2650255a
MM
110452000-11-19 Mark Mitchell <mark@codesourcery.com>
11046
11047 * decl.c (init_decl_processing): Correct name of pure virtual
11048 function under the new ABI.
11049 * rtti.c (throw_bad_cast): Likewise, for bad cast function.
11050 (throw_bad_typeid): Likewise for bad typeid function.
11051
0657c69c
MM
110522000-11-18 Mark Mitchell <mark@codesourcery.com>
11053
04f3dc2b
MM
11054 * decl.c (grokparms): Don't even function types of `void' type,
11055 either.
11056 * mangle.c (write_type): Don't crash when confronted with the
11057 error_mark_node.
11058
0657c69c
MM
11059 * decl.c (grokparms): Don't create parameters of `void' type.
11060
a8a05998
ZW
110612000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
11062
11063 * lex.c (mark_impl_file_chain): Delete.
11064 (init_parse): Remove call to ggc_add_string_root. No need to
11065 ggc_strdup a string constant. Do not add impl_file_chain to GC
11066 roots.
11067 (handle_pragma_implementation): No need to ggc_strdup main_filename.
11068
35728a80
NS
110692000-11-17 Nathan Sidwell <nathan@codesourcery.com>
11070
11071 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
11072
5cce22b6
NS
110732000-11-17 Nathan Sidwell <nathan@codesourcery.com>
11074
11075 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
11076 * decl.c (grokdeclarator): Don't reject void parms here.
11077 (require_complete_types_for_parms): Simplify, use
11078 complete_type_or_else.
11079 (grokparms): Remove bitrot. Remove funcdef parm.
11080 Deal with ellipsis parm lists here.
11081 * semantics.c (finish_parmlist): Don't append void_list_node
11082 here. Set PARMLIST_ELLIPSIS_P.
11083
146c8d60
NS
110842000-11-17 Nathan Sidwell <nathan@codesourcery.com>
11085
d30d6e7a 11086 * typeck2.c (incomplete_type_error): Reorganize to avoid
146c8d60
NS
11087 excessive diagnostics.
11088
520a57c8
ZW
110892000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
11090
11091 * lex.c (struct impl_files, internal_filename): Constify a char *.
11092
43048a06
MM
110932000-11-16 Mark Mitchell <mark@codesourcery.com>
11094
11095 * mangle.c (write_special_name_constructor): Don't generate
11096 assembler junk when confronted with an old-style constructor.
11097 (write_special_name_destructor): Likewise.
11098 (mangle_decl_string): Do it here instead.
11099
cdb71673
NS
111002000-11-16 Nathan Sidwell <nathan@codesourcery.com>
11101
11102 * call.c (op_error): Make error messages clearer.
11103
62136084
MM
111042000-11-15 Mark Mitchell <mark@codesourcery.com>
11105
11106 * decl.c (wrapup_globals_for_namespace): Don't mark things
11107 TREE_ASM_WRITTEN when they're not.
11108
ee3400e8
JM
111092000-11-15 Jason Merrill <jason@redhat.com>
11110
11111 * typeck2.c (friendly_abort): Uncount the error before handing
11112 off to fancy_abort.
11113
71631a1f
NS
111142000-11-15 Nathan Sidwell <nathan@codesourcery.com>
11115
11116 * typeck.c (lookup_anon_field): Cope with qv qualifiers.
11117
79cda2d1
MM
111182000-11-14 Mark Mitchell <mark@codesourcery.com>
11119
11120 * class.c (build_vtbl_initializer): Fix typo in comment.
11121 * typeck.c (expr_sizeof): Don't crash on errors.
11122
2567bc56
JW
111232000-11-14 Jim Wilson <wilson@redhat.com>
11124
11125 * lang-specs.h: Add %2 after %(cc1_options).
11126
8422942c
RH
111272000-11-14 Richard Henderson <rth@redhat.com>
11128
11129 * typeck.c (c_sizeof): Be strict about casting result value
11130 back to c_size_type_node.
11131 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
11132
19552aa5
JM
111332000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
11134
11135 * typeck.c (build_unary_op): Use boolean_increment from
11136 c-common.c, moving the relevant code there.
11137
d96a6d1a
JM
111382000-11-11 Jason Merrill <jason@redhat.com>
11139
11140 * typeck.c (mark_addressable): Don't call put_var_into_stack.
492cca24
JM
11141
11142 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
11143 in inlines.
11144
4e135bdd
KG
111452000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11146
11147 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
11148 * lex.c (copy_lang_decl): Likewise.
11149
0a7394bc
MM
111502000-11-09 Mark Mitchell <mark@codesourcery.com>
11151
13507bd8
MM
11152 * dump.c (cp_dump_tree): Don't dump function bodies here.
11153
0a7394bc
MM
11154 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
11155 (dump.o): Update dependency list.
11156 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
11157 (flag_dump_translation_unit): Likewise.
11158 (CP_TYPE_QUALS): Adjust definition.
11159 (DECL_C_BIT_FIELD): Remove.
11160 (SET_DECL_C_BIT_FIELD): Likewise.
11161 (CLEAR_DECL_C_BIT_FIELD): Likewise.
11162 (add_maybe_template): Likewise.
11163 (strip_array_types): Likewise.
11164 (dump_node_to_file): Likewise.
11165 (cp_dump_tree): New function.
11166 * decl.c (init_decl_processing): Set lang_dump_tree.
11167 * decl2.c (flag_dump_translation_unit): Remove.
11168 * dump.c: Move most of it to ../c-dump.c.
11169 (cp_dump_tree): New function.
11170 * pt.c (add_maybe_template): Remove.
11171 * typeck.c (strip_array_types): Likewise.
a8a05998 11172
5362b086
EC
111732000-11-07 Eric Christopher <echristo@redhat.com>
11174
492cca24
JM
11175 * decl.c (init_decl_processing): Change definition of
11176 __wchar_t to wchar_t. Remove artificial declaration of
11177 wchar_t.
11178 * lex.c: Change instances of __wchar_t to wchar_t.
5362b086 11179
5361cbb7
NS
111802000-11-09 Nathan Sidwell <nathan@codesourcery.com>
11181
11182 * lex.c (do_identifier): Don't lookup_name for operators.
11183 * parse.y (operator): Save looking_for_typename.
11184 (unoperator): Restore it.
11185 * spew.c (frob_opname): Use nth_token for lookahead.
11186
36791f1e
NS
111872000-11-08 Nathan Sidwell <nathan@codesourcery.com>
11188
11189 * decl.c (grok_op_properties): Always use coerce_new_type and
11190 coerce_delete_type.
11191 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve
11192 exception specification. Tidy up.
11193 (coerce_delete_type): Preserve exception specification. Tidy up.
11194
961192e1
JM
111952000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
11196
11197 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
11198 (push_binding_level), error.c (cp_tree_printer), pt.c
11199 (process_partial_specialization, tsubst_template_arg_vector),
11200 search.c (lookup_member): Use memset () instead of bzero ().
11201
d48ebde1
NS
112022000-11-07 Nathan Sidwell <nathan@codesourcery.com>
11203
11204 * decl.c (build_ptrmemfunc_type): Allow error_mark_node.
11205
436a88a6
JM
112062000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
11207
11208 * Make-lang.in (c++.distdir): Remove.
11209
7a4e5091
MM
112102000-11-04 Mark Mitchell <mark@codesourcery.com>
11211
11212 * decl2.c (do_nonmember_using_decl): Allow `extern "C"'
11213 declarations from different namespaces to be combined.
11214
0e9295cf
ZW
112152000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
11216
11217 * decl.c: Include tm_p.h.
11218
da61dec9
JM
112192000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
11220
11221 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
11222
9473c522
JM
112232000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
11224
11225 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
11226 (build_overload_value), repo.c (open_repo_file), xref.c
11227 (open_xref_file): Use strchr () and strrchr () instead of index ()
11228 and rindex ().
11229
b0b3afb2
BS
112302000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
11231
11232 * call.c (build_over_call): Call fold on the CALL_EXPR.
11233
faafaee6
GDR
112342000-11-01 Gabriel Dos Reis <gdr@codesourcery.com>
11235
11236 * error.c (dump_template_decl): Separate template hearders with
11237 space not comma.
11238
761f0855
GDR
112392000-10-31 Gabriel Dos Reis <gdr@codesourcery.com>
11240
11241 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace
11242 TS_* flags with corresponding TFF_*. Adjust prototypes of
11243 functions (which used to take a tree_string_flags) to take an int.
11244
11245 * cp-tree.h (enum tree_string_flags): Remove
11246 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
11247 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
11248 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
11249 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
11250 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
11251 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
11252 (type_as_string, decl_as_string, expr_as_string,
11253 context_as_string): Adjust prototype.
11254
11255 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
11256 instead of TS_PLAIN.
11257
11258 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
11259 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
11260 plain `0'.
11261
ad50e811
MM
112622000-10-30 Mark Mitchell <mark@codesourcery.com>
11263
11264 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
11265 (linkage_kind): New enumeration.
11266 (decl_linkage): New function.
11267 * decl2.c (comdat_linkage): Extend comment.
11268 * error.c (dump_function_decl): Print the arguments used to
11269 instantiate a template, even when not printing the type of the
11270 function.
11271 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
11272 not TREE_PUBLIC, to test for external linkage.
11273 * tree.c (decl_linkage): New function.
11274
930cd796
MM
112752000-10-28 Mark Mitchell <mark@codesourcery.com>
11276
11277 * pt.c (instantiate_decl): Always instantiate static data members
11278 initialized in-class.
11279
b8dad04b
ZW
112802000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
11281
11282 * Make-lang.in: Move all build rules here from Makefile.in,
11283 adapt to new context. Wrap all rules that change the current
11284 directory in parentheses. Expunge all references to $(P).
11285 When one command depends on another and they're run all at
11286 once, use && to separate them, not ;. Add OUTPUT_OPTION to
11287 all object-file generation rules. Delete obsolete variables.
11288
11289 * Makefile.in: Delete.
11290 * config-lang.in: Delete outputs= line.
11291
5f9cd837
GDR
112922000-10-26 Gabriel Dos Reis <gdr@codesourcery.com>
11293
11294 * error.c (dump_function_decl): Print no space between
11295 `ptr-operator' the `type-specifier' of the return type.
11296 (dump_type_prefix): Make sure we put space at the appropriate
5362b086 11297 place.
5f9cd837 11298
6c6ed0ef
JM
112992000-10-23 Jason Merrill <jason@redhat.com>
11300
11301 * call.c (equal_functions): Also call decls_match for extern "C" fns.
11302
113032000-10-22 Jason Merrill <jason@redhat.com>
11304
11305 * call.c (build_conditional_expr): Use ocp_convert to force
11306 rvalue conversion.
11307
e36308b0
MM
113082000-10-22 Mark Mitchell <mark@codesourcery.com>
11309
583ca5a0
MM
11310 * call.c (standard_conversion): Use RVALUE_CONVs for all
11311 expressions that satisfy lvalue_p, not just those that satisfy
11312 real_lvalue_p.
11313
f9808f81
MM
11314 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
11315
5362b086 11316 * typeck.c (c_sizeof): Return an expression of `size_t' type,
e36308b0
MM
11317 not one with TYPE_IS_SIZETYPE set.
11318 (dubious_conversion_warnings): Remove special-case code.
11319
3b9ae6f0
GK
113202000-10-21 Geoffrey Keating <geoffk@cygnus.com>
11321
7a0f14e5
GK
11322 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
11323 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
11324 (dump_type_prefix): Print vector-of-int as 'int vector'.
11325 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
11326 * tree.c (walk_tree): Handle VECTOR_TYPE.
11327
3b9ae6f0 11328 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
5362b086 11329
aca77bd1
JM
113302000-10-21 Jason Merrill <jason@redhat.com>
11331
11332 * parse.y (operator): Set got_object from got_scope.
11333 Set looking_for_typename.
11334 * decl.c (lookup_name_real): Clear val after setting from_obj.
11335 Reorganize diagnostic.
11336
ba523395
JM
113372000-10-20 Jason Merrill <jason@redhat.com>
11338
11339 * tree.c (walk_tree): Don't walk into default args.
11340
11341 * error.c (dump_expr): Use host_integerp.
11342
2e44948d
DE
113432000-10-20 David Edelsohn <edelsohn@gnu.org>
11344
11345 * typeck2.c (abstract_virtuals_error): Use "because" instead of
11346 "since" in error message.
11347
d2a6f3c0 113482000-10-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
44475138
RK
11349
11350 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
11351
11306230
JO
113522000-10-20 Jeffrey Oldham <oldham@codesourcery.com>
11353
11354 * decl.c (revert_static_member_fn): Fixed typo.
11355
97ba1e3c
MM
113562000-10-19 Mark Mitchell <mark@codesourcery.com>
11357
c20118a8
MM
11358 * class.c (subobject_offset_fn): New type.
11359 (dfs_record_base_offsets): Remove.
11360 (record_base_offsets): Likewise.
11361 (dfs_search_base_offsets): Likewise.
11362 (record_subobject_offset): New function.
11363 (check_subobject_offset): Likewise.
11364 (walk_subobject_offsets): Likewise.
11365 (record_subobject_offsets): Likewise.
11366 (layout_conflict_p): Reimplement.
11367 (layout_nonempty_base_or_field): Correct handling of type
11368 conflicts during layout.
11369 (layout_empty_base): Likewise.
11370 (build_base_field): Adjust to handle new representation of empty
11371 base offset table.
11372 (build_base_fields): Likewise.
11373 (layout_virtual_bases): Likewise.
11374 (splay_tree_compare_integer_csts): New function.
11375 (layout_class_type): Use a splay_tree, rather than a varray, to
11376 represent the offsets of empty bases.
5362b086 11377
97ba1e3c
MM
11378 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
11379 * decl.c (select_decl): Don't return declarations that are
11380 DECL_ANTICIPATED.
11381
6bcedb4e
MM
113822000-10-18 Mark Mitchell <mark@codesourcery.com>
11383
11384 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
11385 (fake_std_node): New macro.
11386 * decl.c (in_std): Rename to ...
11387 (in_fake_std): ... this.
11388 (flag_no_builtin): Remove.
11389 (flag_no_nonansi_builtin): Likewise.
11390 (walk_namespaces_r): Use fake_std_node.
11391 (push_namespace): Use std_identifier.
11392 (pop_namespace): Use in_fake_std.
11393 (lookup_name_real): Use fake_std_node.
11394 (init_decl_processing): When -fhonor-std, create the `std'
11395 namespace. Don't create a dummy fake_std_node in that case.
11396 Adjust call to c_common_nodes_and_builtins. Use std_identifier.
11397 (builtin_function): Put builtins whose names don't begin
11398 with `_' in the std namespace.
11399 * decl2.c (flag_no_builtin): Remove.
11400 (flag_no_nonansi_builtin): Likewise.
11401 (set_decl_namespace): Use fake_std_node.
11402 (validate_nonmember_using_decl): Likewise.
11403 (do_using_directive): Likewise.
11404 (handle_class_head): Likewise.
11405 * dump.c (dequeue_and_dump): Likewise.
11406 * except.c (init_exception_processing): Use std_identifier.
11407 * init.c (build_member_call): Use fake_std_node.
11408 * rtti.c (init_rtti_processing): Use std_identifier.
5362b086 11409
67673f5c
MM
114102000-10-17 Mark Mitchell <mark@codesourcery.com>
11411
11412 * cp-tree.h (back_end_hook): Remove declaration.
11413 * decl2.c (back_end_hook): Remove definition.
11414
11415 * dump.c (dequeue_and_dump): Dump TREE_USED.
11416
d2a6f3c0 114172000-10-17 Brad Lucier <lucier@math.purdue.edu>
8fef2e47
BL
11418
11419 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
11420
652469d0
JM
114212000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
11422
11423 * decl.c (WINT_TYPE): Define.
11424 (init_decl_processing): Create types unsigned_ptrdiff_type_node,
11425 c_size_type_node, signed_size_type_node and wint_type_node.
11426
74ff4629
JM
114272000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
11428
11429 * decl2.c (warn_missing_format_attribute): New variable.
11430 (lang_decode_option): Decode -Wmissing-format-attribute.
11431
634790f4
MM
114322000-10-16 Mark Mitchell <mark@codesourcery.com>
11433
11434 * typeck.c (qualify_type): Remove.
11435 (composite_pointer_type): Fix handling of conversions to `cv void*'.
11436
bb12da9d
KG
114372000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11438
11439 * Makefile.in (parse.c, parse.h): Fix think-o in last patch.
11440
4b945402
KG
114412000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11442
11443 * Makefile.in (parse.c, parse.h): Create atomically.
11444
1f8f4a0b
MM
114452000-10-12 Mark Mitchell <mark@codesourcery.com>
11446
11447 * class.c (current_obstack): Remove.
11448 * decl.c (ggc_p): Remove.
11449 (start_decl): Don't use decl_tree_cons.
11450 (grokdeclarator): Don't use build_decl_list.
11451 (start_function): Don't use decl_tree_cons.
11452 (finish_function): Don't mess with obstacks.
11453 * decl2.c (grok_x_components): Don't use build_decl_list.
11454 * lex.c (make_call_declarator): Don't call decl_tree_cons.
11455 (implicitly_declare_fn): Don't call build_decl_list.
11456 * parse.y (frob_specs): Don't call build_decl_list or
11457 decl_tree_cons.
11458 (expr_or_declarator_intern): Don't call decl_tree_cons.
11459 (primary): Don't call build_decl_list.
11460 (fcast_or_absdcl): Likewise.
11461 (typed_declspecs): Don't call decl_tree_cons.
11462 (reserved_declspecs): Don't call build_decl_list.
11463 (declmods): Likewise.
11464 (reserved_typespecquals): Likewise.
11465 (aggr): Likewise.
11466 (new_type_id): Likewise.
11467 (cv_qualifiers): Likewise.
11468 (after_type_declarator_intern): Likewise.
11469 (notype_declarator_intern): Likewise.
11470 (absdcl_intern): Likewise.
11471 (named_parm): Likewise.
11472 * pt.c (most_specialized_class): Likewise.
11473 * repo.c (temporary_obstack): Make it a structure, not a pointer.
11474 (init_repo): Initialize it.
11475 * search.c (current_obstack): Remove.
11476 * typeck2.c (add_exception_specifier): Don't call build_decl_list.
5362b086 11477
8dc54971
RH
114782000-10-09 Richard Henderson <rth@cygnus.com>
11479
11480 * Make-lang.in (CXX_EXTRA_HEADERS): Remove.
11481 (c++ language support bits for libgcc): Remove.
11482 (c++.clean): Remove cplib2.txt cleanup.
11483 * config-lang.in (headers, lib2funcs): Remove.
11484
11485 * exception.cc, new.cc, new1.cc, new2.cc: Remove files.
11486 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
11487 * inc/cxxabi.h, inc/exception, inc/new: Remove files.
11488 * inc/new.h, inc/typeinfo: Remove files.
11489
b15ad712
JM
114902000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
11491
11492 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
11493 defined.
11494 (init_decl_processing): Initialize intmax_type_node and
11495 uintmax_type_node.
11496
156ce211
RH
114972000-10-06 Richard Henderson <rth@cygnus.com>
11498
11499 * cp-tree.h (struct cp_language_function): Remove x_result_rtx.
11500 (original_result_rtx): Remove.
11501 * decl.c (save_function_data): Don't clear x_result_rtx.
11502 (mark_lang_function): Don't mark it either.
11503 * expr.c (fixup_result_decl): Remove.
11504 * semantics.c (genrtl_named_return_value): Frob the return decl
11505 before calling emit_local_var.
11506 (genrtl_finish_function): Don't call fixup_result_decl.
11507 Always emit the jump to return_label.
11508
92777ce4
NS
115092000-10-06 Nathan Sidwell <nathan@codesourcery.com>
11510
11511 * pt.c (lookup_template_class): Set current access for enum.
11512 (tsubst_enum): Set file & line for enum decl.
5362b086 11513
92777ce4
NS
11514 * spew.c (yylex): Remove unused variable.
11515
63c16fc5
RH
115162000-10-05 Richard Henderson <rth@cygnus.com>
11517
11518 * semantics.c (genrtl_finish_function): Don't init or check
11519 can_reach_end; remove noreturn and return value checks.
11520
d1a458c4
TT
115212000-10-05 Tom Tromey <tromey@cygnus.com>
11522
11523 * init.c (build_java_class_ref): Use `build_static_name' with a
11524 suffix, not a prefix, to build the class object's name.
11525
509fc277
NS
115262000-10-05 Nathan Sidwell <nathan@codesourcery.com>
11527
11528 * cp-tree.h (access_kind): Fix comment typo.
11529 * decl2.c (grokfield): Fix diagnostic typo.
11530 * semantics.c (finish_template_type): Fix comment typo.
11531 (finish_qualified_object_call_expr): Likewise.
11532
ce2e5191
NS
115332000-10-05 Nathan Sidwell <nathan@codesourcery.com>
11534
11535 * pt.c (tsubst_expr, DECL_STMT case): Don't process if
5362b086 11536 tsubsting fails.
ce2e5191 11537
79cc5312
NS
115382000-10-05 Nathan Sidwell <nathan@codesourcery.com>
11539
11540 * spew.c (frob_id): New static function.
11541 (frob_opname): Use it.
11542 (yylex): Use it.
11543
f15b9af9
MM
115442000-10-01 Mark Mitchell <mark@codesourcery.com>
11545
11546 * decl.c (lang_mark_false_label_stack): Remove.
11547 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
5362b086 11548
28e6b1c2
JM
115492000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
11550
11551 * gxxint.texi: Use @email for formatting email addresses.
11552
99885b3f
GDR
115532000-09-29 Gabriel Dos Reis <gdr@codesourcery.com>
11554
11555 * error.c: Remove direct obstack manipulation. Replace with
11556 output_buffer-based formatting. Adjust calls to removed macros.
11557 (obstack_chunk_alloc, obstack_chunk_free): Remove.
11558 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
11559 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
11560
c06aa51e
MM
115612000-09-24 Mark Mitchell <mark@codesourcery.com>
11562
11563 * ir.texi: Move to ../c-tree.texi.
11564
99fada40
JM
115652000-09-20 Jason Merrill <jason@redhat.com>
11566
11567 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
11568
bb20cc46
AJ
115692000-09-21 Andreas Jaeger <aj@suse.de>
11570
11571 * errfn.c: Move declaration of cp_printer and cp_printers to ...
11572 * cp-tree.h: ... here.
11573
11574 * error.c: Remove declaration of cp_printer.
11575
fab701da
MM
115762000-09-20 Mark Mitchell <mark@codesourcery.com>
11577
11578 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
11579
0370fea1
HPN
115802000-09-20 Hans-Peter Nilsson <hp@axis.com>
11581
11582 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
11583 users.
11584
78c120b5
MM
115852000-09-18 Mark Mitchell <mark@codesourcery.com>
11586
11587 * decl.c (start_function): Robustify.
11588
3f80e6ac
KG
115892000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11590
11591 * cp-tree.h (check_function_format): Accept a `status' parameter.
bb20cc46 11592
3f80e6ac
KG
11593 * call.c, typeck.c: Updates calls to `check_function_format'.
11594
fc928afe
GK
115952000-09-17 Geoffrey Keating <geoffk@cygnus.com>
11596
11597 * decl2.c (handle_class_head): Always push some scope even
11598 in the error case.
11599
8f17b5c5
MM
116002000-09-16 Mark Mitchell <mark@codesourcery.com>
11601
11602 * cp-tree.h (struct cp_language_function): Remove
11603 x_scope_stmt_stack and name_declared.
11604 (current_scope_stmt_stack): Remove.
11605 (function_name_declared_p): New macro.
11606 (struct lang_decl_flags): Use c_lang_decl as a base class.
11607 (context): Remove.
11608 (struct lang_decl): Replace saved_tree with context.
11609 (DECL_FRIEND_CONTEXT): Adjust accordingly.
11610 (SET_DECL_FRIEND_CONTEXT): Likewise.
11611 (DECL_VIRTUAL_CONTEXT): Likewise.
11612 (DECL_SAVED_TREE): Remove.
11613 (C_DECLARED_LABEL_FLAG): Likewise.
11614 (cplus_expand_expr_stmt): Don't declare.
11615 (add_decl_stmt): Likewise.
11616 (add_scope_stmt): Likewise.
11617 * decl.c (mark_stmt_tree): Remove.
11618 (case_compare): Likewise.
11619 (finish_case_label): Use c_add_case_label.
11620 (init_decl_processing): Set more language-specific hooks.
11621 (build_enumerator): Fix typo in comment.
11622 (cplus_expand_expr_stmt): Remove.
11623 (mark_lang_function): Use mark_c_language_function.
11624 (lang_mark_tree): Use c_mark_lang_decl.
11625 * decl2.c: Change order of inclusion.
11626 * except.c: Likewise.
11627 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall
11628 back on c_expand_expr.
11629 * friend.c: Include expr.h.
11630 * init.c: Change order of inclusion.
11631 * Makefile.in: Update dependencies.
11632 * lex.h (free_lang_decl_chain): Remove.
11633 * optimize.c (maybe_clone_body): Use function_name_declared_p.
11634 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
11635 it doesn't exist.
11636 (instantiate_decl): Use function_name_declared_p.
11637 * semantics.c (lang_expand_expr_stmt): Remove.
11638 (set_current_function_name_declared): Likewise.
11639 (current_function_name_declared): Likewise.
11640 (begin_compound_stmt): Use function_name_declared_p.
11641 (add_decl_stmt): Remove.
11642 (setup_vtbl_ptr): Use function_name_declared_p.
11643 (add_scope_stmt): Remove.
11644 (current_scope_stmt_stack): New function.
11645 (cp_expand_stmt): Don't handle SCOPE_STMTs.
11646 (expand_body): Use function_name_declared_p.
11647 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
11648 * typeck.c: Change order of includes.
11649 (convert_sequence): Remove.
bb20cc46 11650
d9dbd9b1
JM
116512000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
11652
11653 * lex.c (reswords): Add _Complex.
11654
d2a6f3c0 116552000-09-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9985f210
RK
11656
11657 * Make-lang.in (cplib2.txt): Depend on cp/Makefile.
11658
f903ebb1
DA
116592000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
11660
11661 * init.c (begin_init_stmts): Don't use // comments.
11662
f2ae0c45
JM
116632000-09-12 Jason Merrill <jason@redhat.com>
11664
11665 * decl.c (maybe_deduce_size_from_array_init): Set do_default for
11666 all non-extern arrays.
11667
11668 * decl.c (grokdeclarator): Complain about 'friend T' for implicit
11669 typenames, too. Downgrade complaint to pedwarn.
11670 (xref_tag): Warn about surprising behavior of 'friend struct T'.
11671 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
11672 'class This::Inherited'.
11673
71ad4a16
MM
116742000-09-12 Mark Mitchell <mark@codesourcery.com>
11675
11676 * decl.c (finish_case_label): Given the LABEL_DECL a
11677 DECL_CONTEXT.
11678
c3e76028
GDR
116792000-09-12 Gabriel Dos Reis <gdr@codesourcery.com>
11680
11681 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
11682 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
11683 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
11684 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
11685 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
11686 New macros.
11687 (sorry_for_unsupported_tree, print_scope_operator,
11688 print_left_paren, print_right_paren, print_left_bracket,
11689 print_right_bracket, print_whitespace): Likewise.
11690 (aggr_variety): Rename to class_key_or_enum.
11691 (print_type): Rename to print_type_id.
11692 (print_type_specifier_seq, print_simple_type_specifier,
11693 print_elaborated_type_specifier,
11694 print_rest_of_abstract_declarator,
11695 print_parameter_declaration_clause, print_exception_specification,
11696 print_nested_name_specifier, print_template_id,
11697 typedef_original_name, print_template_argument_list_start,
11698 print_template_argument_list_end): New functions.
11699
eb50138b
GDR
117002000-09-11 Gabriel Dos Reis <gdr@codesourcery.com>
11701
a8a05998 11702 * ir.texi: Add more documentation.
eb50138b 11703
f444e36b
MM
117042000-09-11 Mark Mitchell <mark@codesourcery.com>
11705
11706 * cp-tree.h (struct saved_scope): Remove x_function_parms.
11707 (current_function_parms): Don't define.
11708 (struct cp_language_function): Remove parms_stored.
11709 (current_function_just_assigned_this): Don't define.
11710 (current_function_parms_stored): Likewise.
11711 (static_ctors): Declare.
11712 (static_dtors): Likewise.
11713 (SF_EXPAND): Don't define.
11714 (expand_start_early_try_stmts): Remove declaration.
11715 (store_parm_decls): Likewise.
11716 * decl.c (static_ctors): Don't declare.
11717 (static_dtors): Likewise.
11718 (struct binding_level): Remove this_block.
11719 (poplevel): Remove dead code.
11720 (set_block): Likewise.
11721 (mark_binding_level): Don't mark this_block.
11722 (mark_saved_scope): Don't mark x_function_parms.
11723 (init_decl_processing): Don't add current_function_parms as a GC
11724 root.
11725 (check_function_type): Change prototype.
11726 (start_function): Remove RTL-generation code.
11727 (expand_start_early_try_stmts): Remove.
11728 (store_parm_decls): Give it internal linkage. Remove
11729 RTL-generation code.
11730 (finish_function): Remove RTL-generation code.
11731 * decl2.c (static_ctors): Fix formatting.
11732 (static_dtors): Likewise.
11733 * method.c (use_thunk): Don't call store_parm_decls.
11734 (synthesize_method): Likewise.
11735 * optimize.c (maybe_clone_body): Likewise.
11736 * parse.y (fn.def2): Likewise.
11737 (.set_base_init): Likewise.
11738 (nodecls): Likewise.
11739 * pt.c (instantiate_decl): Likewise.
11740 * rtti.c (synthesize_tinfo_fn): Likewise.
11741 * semantics.c (genrtl_try_block): Simplify.
11742 (expand_body): Use genrtl_start_function and
11743 genrtl_finish_function.
11744 (genrtl_start_function): New function.
11745 (genrtl_finish_function): Likewise.
11746
181d2ba0
NS
117472000-09-11 Nathan Sidwell <nathan@codesourcery.com>
11748
11749 * error.c (cp_tree_printer, case 'P'): Append break.
11750
f2d71db6
NS
117512000-09-11 Nathan Sidwell <nathan@codesourcery.com>
11752
11753 * cp-tree.h (frob_opname): Declare.
11754 * parse.y (saved_scopes): New static variable.
11755 (cp_parse_init): Adjust.
11756 (do_id): If lastiddecl is NULL, do do_identifier.
11757 (operator): Save scope information.
aca77bd1 11758 (unoperator): New reduction. Restore scope information.
f2d71db6
NS
11759 (operator_name): Append unoperator. Call frob_opname.
11760 * spew.c (frob_opname): Define.
11761
d8ea8f28
ZW
117622000-09-10 Zack Weinberg <zack@wolery.cumb.org>
11763
11764 * decl.c, rtti.c: Include defaults.h if not already included.
11765 Don't define the *_TYPE_SIZE macros.
11766
56cb9733
MM
117672000-09-09 Mark Mitchell <mark@codesourcery.com>
11768
11769 * cp-tree.h (push_switch): Change prototype.
11770 (check_cp_case_value): Remove declaration.
11771 (decl_constant_value): Likewise.
11772 * decl.c (struct cp_switch): Add switch_stmt and cases.
11773 (case_compare): New function.
11774 (push_switch): Set switch_stmt. Initialize cases.
11775 (pop_switch): Clean up cases.
11776 (define_case_label): Rename to ...
11777 (finish_case_label): ... this. Do semantic analysis for case
11778 labels here.
11779 (start_function): Correct comment.
11780 * decl2.c (check_cp_case_value): Remove.
11781 * expr.c (do_case): Remove.
11782 * pt.c (tsubst_expr): Adjust call to finish_case_label.
11783 * semantics.c (genrtl_do_poplevel): Remove declaration.
11784 (RECHAIN_STMTS): Remove.
11785 (finish_break_stmt): Use build_break_stmt.
11786 (finish_continue_stmt): Use build_continue_stmt.
11787 (finish_switch_cond): Adjust condition here, rater than in
11788 c_expand_start_case.
11789 (finish_case_label): Remove.
11790 * typeck.c (c_expand_return): Remove.
11791 (c_expand_start_case): Likewise.
bb20cc46 11792
990a9693
GDR
117932000-09-07 Gabriel Dos Reis <gdr@codesourcery.com>
11794
11795 * ir.texi: Document type nodes.
11796
ae499cce
MM
117972000-09-06 Mark Mitchell <mark@codesourcery.com>
11798
54f7877c
MM
11799 * cp-tree.h (init_cp_semantics): Declare.
11800 (genrtl_try_block): Don't declare.
11801 (genrtl_handler): Likewise.
11802 (genrtl_catch_block): Likewise.
11803 (genrtl_ctor_stmt): Likewise.
11804 (genrtl_subobject): Likewise.
11805 (genrtl_do_poplevel): Likewise.
11806 (genrtl_named_return_value): Likewise.
11807 * lex.c (init_parse): Call init_cp_semantics.
11808 * semantics.c (genrtl_try_block): Give it internal linkage.
11809 (genrtl_handler): Likewise.
11810 (genrtl_catch_block): Likewise.
11811 (genrtl_ctor_stmt): Likewise.
11812 (genrtl_subobject): Likewise.
11813 (genrtl_do_poplevel): Likewise.
11814 (genrtl_named_return_value): Likewise.
11815 (lang_expand_stmt): Rename to ...
11816 (cp_expand_stmt): ... this. Only handle C++-specific nodes.
11817 (init_cp_semantics): Define.
11818
3a0d3e1e
MM
11819 * decl.c (initialize_local_var): Remove RTL-generating code.
11820 * semantics.c (genrtl_try_block): Fix formatting.
11821
ae499cce
MM
11822 Move statement-tree facilities from C++ to C front-end.
11823 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
11824 (void_zero_node): Remove.
11825 (stmt_tree): Likewise.
11826 (scope_chain): Adjust.
11827 (language_function): Rename to cp_language_function.
11828 (cp_function_chain): Adjust.
11829 (current_stmt_tree): Remove.
11830 (last_tree): Likewise.
11831 (last_expr_type): Likewise.
11832 (struct lang_decl): Adjust.
11833 (STMT_IS_FULL_EXPR_P): Remove.
11834 (add_tree): Remove.
11835 (begin_stmt_tree): Likewise.
11836 (finish_stmt_tree): Likewise.
11837 (walk_tree_fn): Likewise.
11838 (walk_stmt_tree): Likewise.
11839 * class.c (finish_struct): Replace use of add_tree with add_stmt.
11840 * decl.c (mark_stmt_tree): Adjust type.
11841 (init_decl_processing): Don't build void_zero_node.
11842 (initialize_local_var): Adjust usage of current_stmt_tree.
11843 (finish_enum): Use add_stmt, not add_tree.
11844 (save_function_data): Adjust use of language_function.
11845 (finish_constructor_body): Use add_stmt, not add_tree.
11846 (finish_destructor_body): Likewise.
11847 (push_cp_function_context): Adjust use of language_function.
11848 (pop_cp_function_context): Likewise.
11849 (mark_lang_function): Likewise.
11850 (mark_cp_function_context): Likewise.
11851 * init.c (build_aggr_init): Adjust use of current_stmt_tree.
11852 (build_vec_init): Likewise.
11853 * semantics.c (SET_LAST_STMT): Remove.
11854 (RECHAIN_STMTS): Don't use it.
11855 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
11856 (current_stmt_tree): Define.
11857 (add_tree): Remove.
11858 (finish_goto_stmt): Use add_stmt, not add_tree.
11859 (finish_expr_stmt): Likewise.
11860 (begin_if_stmt): Likewise.
11861 (finish_then_clause): Likewise.
11862 (begin_while_stmt): Likewise.
11863 (begin_do_stmt): Likewise.
11864 (finish_return_stmt): Likewise.
11865 (begin_for_stmt): Likewise.
11866 (finish_break_stmt): Likewise.
11867 (finish_continue_stmt): Likewise.
11868 (begin_switch_stmt): Likewise.
11869 (finish_case_label): Likewise.
11870 (begin_try_block): Likewise.
11871 (begin_function_try_block): Likewise.
11872 (begin_handler): Likewise.
11873 (begin_catch_block): Likewise.
11874 (begin_compound_stmt): Likewise.
11875 (begin_asm_stmt): Likewise.
11876 (finish_asm_stmt): Likewise.
11877 (finish_label_stmt): Likewise.
11878 (add_decl_stmt): Likewise.
11879 (finish_subobject): Likewise.
11880 (finish_decl_cleanup): Likewise.
11881 (finish_named_return_value): Likewise.
11882 (setup_vtbl_ptr): Likewise.
11883 (add_scope_stmt): Likewise.
11884 (finish_stmt_expr): Likewise.
11885 (prune_unused_decls): Remove.
11886 (begin_stmt_tree): Likewise.
11887 (finish_stmt_tree): Likewise.
11888 (prep_stmt): Adjust use of current_stmt_tree.
11889 (lang_expand_stmt): Likewise.
11890 * tree.c (statement_code_p): Remove.
11891 (cp_statement_code_p): New function.
11892 (walk_stmt_tree): Remove.
11893 (init_tree): Set lang_statement_code_p.
bb20cc46 11894
0e5921e8
ZW
118952000-09-06 Zack Weinberg <zack@wolery.cumb.org>
11896
11897 Integrated preprocessor.
11898
11899 * Make-lang.in, Makefile.in: Remove all references to input.c,
11900 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
11901 * gxx.gperf, hash.h, input.c: Delete.
11902 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
11903 initialized properly.
11904
11905 * class.c (fixup_pending_inline): Take a tree, not a
11906 struct pending_inline *. All callers changed.
11907 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
11908 RID_PROTECTED entries in ridpointers[] array here.
11909 * decl.c (duplicate_decls): Do not refer to struct
11910 pending_inline.
11911 (record_builtin_type, init_decl_processing): Use RID_MAX not
11912 CP_RID_MAX.
11913 (grokdeclarator): Use C_IS_RESERVED_WORD.
11914 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
11915 cpplib.
11916 (grok_x_components): Do not inspect pending_inlines chain.
11917
11918 * cp-tree.h (struct lang_identifier): Add rid_code entry.
11919 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
11920 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
11921 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
11922 TIME_IDENTIFIER_FILEINFO): Kill.
11923 Update prototypes.
11924 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
11925 single 32-bit word.
11926 * parse.y: Call do_pending_inlines unconditionally.
11927 reinit_parse_for_method is now snarf_method. fn.defpen is no
11928 longer necessary. Remove unnecessary <itype> annotation on
11929 SCOPE. Do not refer to end_of_file or struct pending_inline.
11930 * semantics.c (begin_inline_definitions): Call
11931 do_pending_inlines unconditionally.
11932
11933 * lex.c: Remove all code now shared with C front end.
11934 Initialize cpplib properly if USE_CPPLIB. Put reserved words
11935 into the get_identifier table. Rewrite pragma handling to
11936 work with the registry. Move code to save tokens for later
11937 processing to spew.c.
11938
11939 * spew.c: Rewrite everything in terms of token streams instead
11940 of text. Move routines here from lex.c / input.c as
11941 appropriate. GC-mark trees hanging off the pending inlines
11942 chain.
11943
44835fdd
MM
119442000-09-06 Mark Mitchell <mark@codesourcery.com>
11945
11946 * NEWS: Mention that the named return value extension has been
11947 deprecated.
11948 * cp-tree.h (original_result_rtx): Define.
11949 (TREE_REFERENCE_EXPR): Remove.
11950 (DECL_VPARENT): Likewise.
11951 (pushdecl_nonclass_level): Likewise.
11952 (store_return_init): Likewise.
11953 (reinit_lang_specific): Likewise.
11954 (genrtl_named_return_value): Change prototype.
11955 * decl.c (original_result_rtx): Remove.
11956 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
11957 Do not generate RTL for local variables here.
11958 (store_return_init): Remove.
11959 * semantics.c (genrtl_named_return_value): Simplify. Fold in
11960 store_return_init.
11961 (finish_named_return_value): Adjust accordingly. Warn that this
11962 extension is deprecated.
11963 (lang_expand_stmt): Adjust call to genrtl_named_return_value.
11964
d7c4edd0
NS
119652000-09-06 Nathan Sidwell <nathan@codesourcery.com>
11966
11967 * pt.c (type_unification_real): Replace switch with if.
11968 (unify): Tsubst non-type parms before comparing.
11969
46e2747c
NS
119702000-09-06 Nathan Sidwell <nathan@codesourcery.com>
11971
11972 * error.c (dump_typename): New function, broken out of ...
11973 (dump_type): ... here. Use it.
11974 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
11975
c833d2be
NS
119762000-09-06 Nathan Sidwell <nathan@codesourcery.com>
11977
11978 * init.c (build_offset_ref): Deal with namespace scoped
11979 TEMPLATE_ID_EXPRs.
11980
b1ce3eb2
NS
119812000-09-06 Nathan Sidwell <nathan@codesourcery.com>
11982
11983 * class.c (resolve_address_of_overloaded_function): Add
11984 explanation message.
11985 * decl.c (define_case_label): Reformat explanation.
11986 * decl2.c (finish_static_data_member_decl): Likewise.
11987 (grokfield): Likewise.
11988 * friend.c (do_friend): Likewise.
11989
11f53b6a
ZW
119902000-09-05 Zack Weinberg <zack@wolery.cumb.org>
11991
11992 * tree.c (walk_tree): Expose tail recursion.
11993 (walk_stmt_tree): New function.
11994 * cp-tree.h: Prototype walk_stmt_tree.
11995 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
11996 the BLOCKs directly. If a BLOCK has no variables after
11997 pruning, discard it.
11998 (finish_stmt_tree): Use walk_stmt_tree. No need to save and
11999 restore the line number.
12000
ee94fce6
MM
120012000-09-05 Mark Mitchell <mark@codesourcery.com>
12002
12003 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
12004 (pt.o): Remove dependency on HTAB_H.
12005 * cp-tree.h: Include hashtab.h.
12006 (walk_tree): Change prototype.
12007 (walk_tree_without_duplicates): New function.
12008 * decl.c (check_default_argument): Use it.
12009 * optimize.c (remap_decl): Adjust calls to walk_tree.
12010 (copy_body): Likewise.
12011 (expand_calls_inline): Likewise.
12012 (calls_setjmp_p): Use walk_tree_without_duplicates.
12013 * pt.c: Don't include hashtab.h.
12014 (for_each_template_parm): Use walk_tree_without_duplicates.
12015 * semantics.c (finish-stmt_tree): Likewise.
12016 (expand_body): Likewise.
12017 * tree.c (walk_tree): Add additional parameter.
12018 (walk_tree_without_duplicates): New function.
12019 (count_trees): Use it.
12020 (verify_stmt_tree): Adjust call to walk_tree.
12021 (find_tree): Use walk_tree_without_duplicates.
12022 (no_linkage_check): Likewise.
12023 (break_out_target_exprs): Adjust call to walk_tree.
12024 (cp_unsave): Likewise.
12025
a1281f45
KL
120262000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
12027
12028 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
12029 (TEMPLATE_TEMPLATE_PARM): Adjust comment.
12030 * cp-tree.h (TYPE_BINFO): Adjust comment.
12031 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
12032 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
12033 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
12034 (TYPE_TEMPLATE_INFO): Likewise.
12035 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
12036 * class.c (push_nested_class): Likewise.
12037 * decl.c (lookup_name_real): Likewise.
12038 (grokdeclarator): Likewise.
12039 (grok_op_properties): Likewise.
12040 (xref_tag): Likewise.
12041 (xref_basetypes): Likewise.
12042 * decl2.c (constructor_name_full): Likewise.
12043 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
12044 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
12045 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
12046 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12047 (dump_type_suffix): Likewise.
12048 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
12049 instead.
12050 (get_aggr_from_typedef): Likewise.
12051 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
12052 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12053 (write_template_parm): Likewise.
12054 (write_template_template_parm): Check tree code instead of
12055 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
0e5921e8 12056 * method.c (build_overload_nested_name): Add
a1281f45
KL
12057 BOUND_TEMPLATE_TEMPLATE_PARM.
12058 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
12059 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12060 * pt.c (convert_template_argument): Check tree code instead of
12061 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
12062 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
12063 (for_each_template_parm): Adjust comment.
12064 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize.
12065 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12066 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use
12067 template_args_equal to compare template template parameter cases.
12068 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12069 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
12070 instead.
12071 * tree.c (copy_template_template_parm): Decide whether to create
12072 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
12073 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12074 (copy_tree_r): Likewise.
12075 * typeck.c (comptypes): Likewise. Check tree code instead of
12076 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
12077
c9672d45
ME
120782000-09-04 Mark Elbrecht <snowball3@bigfoot.com>
12079
12080 * decl.c (finish_function): Move the code for handling functions
12081 marked with the constructor and destructor attributes inside the
12082 expand_p block.
12083
67804825
NS
120842000-09-04 Nathan Sidwell <nathan@codesourcery.com>
12085
12086 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
12087
1bc0793e
NS
120882000-09-04 Nathan Sidwell <nathan@codesourcery.com>
12089
12090 * pt.c (lookup_template_class): Remove abort.
12091 * tree.c (get_type_decl): Allow error_mark_node.
12092
3338663b
NS
120932000-09-04 Nathan Sidwell <nathan@codesourcery.com>
12094
12095 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
12096 TEMPLATE_ID_EXPRs.
12097
1b84dc37
MM
120982000-09-03 Mark Mitchell <mark@codesourcery.com>
12099
12100 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
c9672d45 12101 new ABI mangling.
1b84dc37 12102
9687f8f4
NS
121032000-09-01 Nathan Sidwell <nathan@codesourcery.com>
12104
12105 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
c9672d45 12106 union tag mismatch error reporting.
9687f8f4 12107
4f8025eb
NS
121082000-09-01 Nathan Sidwell <nathan@codesourcery.com>
12109
c9672d45 12110 * call.c (build_scoped_method_call): Check it is not a namespace.
4f8025eb 12111
495d26d6
JM
121122000-08-30 Jason Merrill <jason@redhat.com>
12113
12114 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
12115
12116 * tree.c (bot_manip): Check TREE_CONSTANT rather than
12117 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and
12118 build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
12119
12120 * decl.c (start_function): Always call make_function_rtl.
12121
7efcf466
ZW
121222000-08-29 Zack Weinberg <zack@wolery.cumb.org>
12123
495d26d6 12124 * semantics.c (prune_unused_decls): New function.
7efcf466
ZW
12125 (finish_stmt_tree): Call it via walk_tree.
12126
63ad61ed
ZW
121272000-08-29 Zack Weinberg <zack@wolery.cumb.org>
12128
12129 * class.c (build_secondary_vtable): Constify a char *.
12130 * decl.c (init_decl_processing): Initialize function_id_node,
12131 pretty_function_id_node, and func_id_node.
12132 * input.c (struct input_source): Constify 'str'.
12133 (feed_input): Constify first argument.
12134 * mangle.c (write_identifier): Constify argument.
12135 * pt.c (mangle_class_name_for_template): Constify argument.
12136
4361b41d
MM
121372000-08-29 Mark Mitchell <mark@codesourcery.com>
12138
12139 * typeck.c (mark_addressable): Remove code that pokes around in
12140 RTL.
12141
881c6935
JM
121422000-08-28 Jason Merrill <jason@redhat.com>
12143
12144 * lex.c (file_name_nondirectory): Move to toplev.c.
12145
12146 * cp-tree.h (LOCAL_CLASS_P): New macro.
12147 * class.c (finish_struct_1): Use it.
12148
f0f33848
AS
121492000-08-27 Alex Samuel <samuel@codesourcery.com>
12150
12151 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
12152 (write_encoding): Pass another argument to write_name.
12153 (write_name): Add ignore_local_scope parameter. Fix handling of
12154 local names.
12155 (write_nested_name): Use write_unqualified_name.
12156 (write_prefix): Likewise. Skip out on FUNCTION_DECLs.
12157 (write_template_prefix): Use write_unqualified_name.
12158 (write_component): Remove.
12159 (write_local_name): Add parameter. Use direct local entity to
12160 discriminator calculation.
0e5921e8 12161 (write_class_enum_type): Pass another argument to write_name.
f0f33848
AS
12162 (write_template_template_arg): Likewise.
12163 (make_guard_variable): Likewise.
0e5921e8 12164
94dfccd1
JM
121652000-08-27 Jason Merrill <jason@redhat.com>
12166
12167 * decl.c (pushdecl): Matching decls for local externs are found in
12168 the current level. Propagate linkage information from previous
12169 declarations.
12170
14fdf4b6
GDR
121712000-08-26 Gabriel Dos Reis <gdr@codesourcery.com>
12172
12173 * ir.texi (Expressions): Fix typo.
12174
b5232c64
GM
121752000-08-25 Greg McGary <greg@mcgary.org>
12176
12177 * tree.c (init_tree): Use ARRAY_SIZE.
12178
22a4158c
GDR
121792000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
12180
12181 * error.c (cp_tree_printer): Rework.
12182
f22967f3
MM
121832000-08-25 Mark Mitchell <mark@codesourcery.com>
12184
a0c182fe
MM
12185 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
12186 dyn-string.o.
12187 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
12188 (cp-demangle.o): Remove target.
12189 (dyn-string.o): Likewise.
12190
f22967f3
MM
12191 * decl.c (grokfndecl): Require that `main' return an `int'.
12192 * mangle.c (write_encoding): Don't mangle return types for
12193 conversion functions.
12194
a1066c99
GDR
121952000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
12196
12197 * error.c (tree_formatting_info): New data type.
12198 (tree_being_formatted): New macro.
12199 (tree_formatting_flags): Likewise.
12200 (put_whitespace): Likewise.
12201 (print_tree_identifier): Likewise.
12202 (print_identifier): Likewise.
12203 (cp_tree_printer, print_function_argument_list, print_declaration,
12204 print_expression, print_function_declaration,
12205 print_function_parameter, print_type, print_cv_qualifier): New
0e5921e8 12206 functions.
a1066c99
GDR
12207 (init_error): Initialize lang_printer.
12208
3f2b640a
JM
122092000-08-24 Jason Merrill <jason@redhat.com>
12210
12211 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no
12212 adjustment necessary.
12213
7ec09bf7
GM
122142000-08-24 Greg McGary <greg@mcgary.org>
12215
12216 * cp-tree.h (MAIN_NAME_P): Remove macro.
12217
2ab99c46
GDR
122182000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
12219
12220 * error.c (print_instantiation_context): Don't forget to flush the
12221 buffer.
12222
7def1251
JM
122232000-08-23 Jason Merrill <jason@redhat.com>
12224
12225 * typeck.c (build_ptrmemfunc): Save the input pmf.
12226
12227 * method.c (process_modifiers): Use same_type_p.
12228
94350948
MM
122292000-08-23 Mark Mitchell <mark@codesourcery.com>
12230
12231 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
12232 * mangle.c (write_function_type): Change prototype.
12233 (write_encoding): Don't mangle return types for
12234 constructors or destructors.
12235 (write_type): Adjust call to write_function_type.
12236 * pt.c (instantiate_template): Instantiate alternate entry points
12237 when instantiating the main function.
0e5921e8 12238
a64e7329
GDR
122392000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
12240
12241 * error.c (cp_print_error_function): Don't use embedded '\n' in
0e5921e8 12242 output_printf.
a64e7329 12243
a72462a4
GDR
122442000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
12245
12246 * decl.c (init_decl_processing): Remove bogus initialization.
12247 * error.c (lang_print_error_function): Restore here.
0e5921e8
ZW
12248 (init_error): Initialize print_error_function.
12249
3add6264
TP
122502000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
12251
12252 * decl2.c (arg_assoc): Revert my 2000-08-11 change.
12253
cb753e49
GDR
122542000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
12255
12256 * Makefile.in (error.o): Depends on diagnostic.h
12257
12258 * cp-tree.h (problematic_instantiation_changed,
12259 record_last_problematic_instantiation, current_instantiation,
12260 print_instantiation_context): Declare.
12261 (maybe_print_template_context): Remove.
12262
12263 * decl.c (init_decl_processing): Set print_error_function to NULL.
12264 (lang_print_error_function): Remove, since we're using a new
12265 machinery.
12266
12267 * error.c: #include diagnostic.h
12268 (function_category): New function.
12269 (cp_diagnostic_starter): Likewise.
12270 (cp_diagnostic_finalizer): Likewise.
12271 (cp_print_error_function): Likewise.
12272 (maybe_print_instantiation_context): Likewise.
12273 (print_instantiation_full_context): Likewise.
12274 (print_instantiation_partial_context): Likewise.
12275 (print_instantiation_context): Define.
12276 (init_error): Initialize diagnostic pager and finalizer.
12277
12278 * pt.c (problematic_instantiation_changed): Define.
12279 (record_last_problematic_instantiation): Likewise.
12280 (current_instantiation): Likewise.
12281 (maybe_print_template_context): Remove.
12282 (print_template_context): Likewise.
12283 (current_tinst_level): Make static to reflect Brendan Kehoe's
12284 change of 1995-04-13.
0e5921e8
ZW
12285 (push_tinst_level): Call print_instantiation_context.
12286
05a3d06e 122872000-08-21 Nix <nix@esperi.demon.co.uk>
0e5921e8 12288
05a3d06e
N
12289 * lang-specs.h: Do not process -o or run the assembler if
12290 -fsyntax-only.
12291
93e2382f
JM
122922000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
12293
12294 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New
12295 variables.
12296 * decl2.c (lang_decode_option): Disable gettext attributes for
12297 -ansi.
12298
24805e80
GDR
122992000-08-21 Gabriel Dos Reis <gdr@codesourcery.com>
12300
12301 * lex.c (lang_init_options): Default diagnostic message maximum
12302 length to 80, when line-wrapping.
12303
b485e15b
MM
123042000-08-20 Mark Mitchell <mark@codesourcery.com>
12305
12306 * class.c (build_vtbl_initializer): Clear the entire
12307 vtbl_init_data. Start keeping track of the functions for which we
12308 have created vcall offsets here.
12309 (dfs_build_vcall_offset_vtbl_entries): Remove.
12310 (build_vcall_offset_vtbl_entries): Reimplement.
12311 (add_vcall_offset_vtbl_entries_r): New function.
12312 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for
12313 computing when vcall offsets are necessary.
12314
2ae7bada
NS
123152000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12316
12317 * decl.c (member_function_or_else): Use cp_error ... %T.
12318 (grokdeclarator): Likewise.
12319 (start_method): Likewise.
0e5921e8 12320 * friend.c (make_friend_class): Use cp_pedwarn ... %T.
2ae7bada 12321
7a8b1375
NS
123222000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12323
12324 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
0e5921e8 12325 TYPE_DECLs.
7a8b1375 12326
19420d00
NS
123272000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12328
12329 * cp-tree.h (PTRMEM_OK_P): New macro.
12330 (itf_ptrmem_ok): New enumeration value.
12331 * class.c (resolve_address_of_overloaded_function): Add PTRMEM
12332 argument. Diagnose implicit pointer to member.
12333 (instantiate_type): Don't diagnose implicit pointer to member
12334 here. Pass itf_ptrmem_ok if ok. Adjust calls to
12335 resolve_address_of_overloaded_function.
12336 * init.c (build_offset_ref): Set PTRMEM_OK_P.
12337 (resolve_offset_ref): Don't diagnose implicit pointer to member here.
12338 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
12339 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
12340 (build_unary_op): Deal with single non-static member in
12341 microsoft-land.
12342
66081283
NS
123432000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12344
12345 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
12346
fa40aa12
NS
123472000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12348
12349 * cp-tree.h (enum_name_string): Remove prototype.
12350 (report_case_error): Remove prototype.
12351 * cp/typeck2.c (enum_name_string): Remove.
12352 (report_case_error): Remove.
12353 * error.c (dump_expr): Deal with enum values directly.
12354 Correctly negate integer constant.
12355
d13b34e9
NS
123562000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12357
12358 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
12359 (__cxa_vec_delete2, __cxa_vec_delete3): Declare.
12360 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
12361 (__cxa_vec_delete2, __cxa_vec_delete3): Implement.
12362 (__cxa_vec_new): Use __cxa_vec_new2.
12363 (__cxa_vec_delete): Use __cxa_vec_delete2.
12364
2f1b80af
NS
123652000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12366
12367 * vec.cc (__cxa_vec_new): Set "C" linkage.
12368 (__cxa_vec_ctor): Likewise.
12369 (__cxa_vec_cctor): Likewise.
12370 (__cxa_vec_dtor): Likewise.
12371 (__cxa_vec_delete): Likewise.
12372 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
12373 (__cxa_vec_ctor): Likewise.
12374 (__cxa_vec_cctor): Likewise.
12375 (__cxa_vec_dtor): Likewise.
12376 (__cxa_vec_delete): Likewise.
12377
105d8e1f
NS
123782000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12379
12380 * class.c (instantiate_type): Reinstate local variable
12381 deleted in previous change.
0e5921e8 12382
f1819d9a
NS
12383 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not
12384 itf_no_attributes.
105d8e1f 12385
5e76004e
NS
123862000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12387
12388 * cp-tree.h (instantiate_type_flags): New enumeration.
12389 (instantiate_type): Change parameter.
12390 * class.c (instantiate_type): Adjust prototype. Adjust.
12391 * call.c (standard_conversion): Adjust instantiate_type call.
12392 (reference_binding): Likewise.
12393 (build_op_delete_call): Likewise.
12394 (convert_like_real): Likewise.
12395 * cvt.c (cp_convert_to_pointer): Likewise.
12396 (convert_to_reference): Likewise.
12397 * pt.c (convert_nontype_argument): Likewise.
12398 * typeck.c (build_binary_op): Likewise.
12399 (build_ptrmemfunc): Likewise.
12400 (convert_for_assignment): Likewise.
12401
4b054b80
NS
124022000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12403
12404 * cp-tree.h (CPTR_AGGR_TAG): New global tree node.
12405 (current_aggr): Define.
12406 * decl.c (grokdeclarator): Make sure a friend class is an
12407 elaborated type specifier.
12408 * parse.y (current_aggr): Remove static definition.
12409 (cp_parse_init): Adjust.
12410 (structsp): Clear and restore current_aggr.
12411 (component_decl_list): Clear current_aggr.
0e5921e8 12412
4b054b80
NS
12413 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the
12414 aggregate tag on the typename's context.
0e5921e8 12415
321cba97
NS
12416 * pt.c (tsubst_friend_class): Return error_mark_node, if
12417 parms becomes NULL.
12418 (instantiate_class_template): Ignore error_mark_node friend types.
4b054b80 12419
08aead78
NS
124202000-08-14 Nathan Sidwell <nathan@codesourcery.com>
12421
12422 * cvt.c (warn_ref_binding): New static function, broken out of ...
0e5921e8 12423 (convert_to_reference): ... here. Use it.
08aead78 12424
fa1f3ebc
KL
124252000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
12426
12427 * parse.y (template_arg): Add rule for template qualified with
12428 global scope.
12429
9845b52b
TP
124302000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
12431
12432 * decl2.c (add_function): Reorganize.
12433 (arg_assoc): Do not consider function template decls.
12434
e69c8072
JM
124352000-08-11 Jason Merrill <jason@redhat.com>
12436
12437 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
12438 looking inside.
12439
5c1e5476
NS
124402000-08-11 Nathan Sidwell <nathan@codesourcery.com>
12441
12442 * cp-tree.h (resolve_scope_to_name): Remove unused prototype.
12443 (lookup_nested_tag): Likewise.
0e5921e8 12444
5c1e5476
NS
12445 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs
12446 can be produced.
12447
5426aa7f
NS
124482000-08-11 Nathan Sidwell <nathan@codesourcery.com>
12449
12450 * parse.y (named_complex_class_head_sans_basetype): Remove
12451 always true if.
12452
fd037e0d
NS
124532000-08-11 Nathan Sidwell <nathan@codesourcery.com>
12454
12455 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
12456 explicit TEMPLATE_ID_EXPR args.
12457 (build_expr_from_tree, case CALL_EXPR): Likewise.
12458
73ae5c34
NS
124592000-08-11 Nathan Sidwell <nathan@codesourcery.com>
12460
12461 * decl.c (check_tag_decl): Diagnose typename's which don't
12462 declare anything.
12463
aa54df09
NS
124642000-08-10 Nathan Sidwell <nathan@codesourcery.com>
12465
12466 * init.c (build_aggr_init): Reject bogus array initializers
12467 early.
12468
7e8dad18
NS
124692000-08-09 Nathan Sidwell <nathan@codesourcery.com>
12470
12471 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
12472 runtime.
12473 * cp/tinfo.cc (__dynamic_cast): Likewise.
0e5921e8 12474 * cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7e8dad18 12475
0f586b9b
NS
124762000-08-09 Nathan Sidwell <nathan@codesourcery.com>
12477
12478 * cvt.c (convert_to_pointer_force): Fix error message when
0e5921e8 12479 attempting to cast from ambiguous base.
0f586b9b 12480
08e72a19
JM
124812000-08-08 Jason Merrill <jason@redhat.com>
12482
12483 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
12484 (tsubst_template_arg_vector): Likewise.
12485
12486 * decl2.c (build_anon_union_vars): Choose the largest field; don't
12487 assume that one will be as large as the union.
12488
0811ea8f
KH
124892000-08-07 Kazu Hirata <kazu@hxi.com>
12490
12491 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
12492 * decl.c (pop_labels): Likewise.
12493
f9fcf62b
JO
124942000-08-04 Jeffrey Oldham <oldham@codesourcery.com>
12495
12496 * inc/cxxabi.h (__pbase_type_info): Changed member names to match
12497 specifications.
12498 (__pointer_to_member_type_info): Likewise.
12499 (__base_class_info): Likewise.
12500 (__class_type_info): Likewise.
12501 (__si_class_type_info): Likewise.
12502 (__vmi_class_type_info): Likewise.
12503 * tinfo.cc (__si_class_type_info::__do_find_public_src):
12504 Changed member names to match specifications.
12505 (__vmi_class_type_info::__do_find_public_src): Likewise.
12506 (__si_class_type_info::__do_dyncast): Likewise.
12507 (__vmi_class_type_info::__do_dyncast): Likewise.
12508 (__si_class_type_info::__do_upcast): Likewise.
12509 (__vmi_class_type_info::__do_upcast): Likewise.
12510 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
12511 (__pbase_type_info::__pointer_catch): Likewise.
12512 (__pointer_type_info::__pointer_catch): Likewise.
12513 (__pointer_to_member_type_info::__pointer_catch): Likewise.
12514
a36556a8
ZW
125152000-08-04 Zack Weinberg <zack@wolery.cumb.org>
12516
0e5921e8
ZW
12517 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
12518 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
12519 (cc1plus): Link with $(BACKEND) and $(C_OBJS).
a36556a8 12520
452a394b
MM
125212000-08-04 Mark Mitchell <mark@codesourcery.com>
12522
12523 * cp-tree.h (add_method): Change prototype.
12524 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P.
12525 Don't double the size of the method vector in the error case.
12526 (handle_using_decl): Adjust call to add_method.
12527 (add_implicitly_declared_members): Likewise.
12528 (clone_function_decl): Likewise.
12529 * decl2.c (check_classfn): Likewise.
12530 * semantics.c (finish_member_declaration): Likewise.
0e5921e8 12531
b8458e3e
JM
125322000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
12533
12534 * decl.c (flag_isoc94): New variable.
12535
a1bcc528
JM
125362000-08-02 Jason Merrill <jason@redhat.com>
12537
12538 * pt.c (do_type_instantiation): Add complain parm; don't complain
12539 if called recursively.
12540 * cp-tree.h, parse.y: Adjust.
12541
50e60bc3
ZW
125422000-08-02 Zack Weinberg <zack@wolery.cumb.org>
12543
eae51189
ZW
12544 * decl2.c: Silently ignore -Wstrict-prototypes; warn about
12545 -Wno-strict-prototypes.
12546
37620334
ZW
12547 * g++spec.c: Adjust type of second argument to
12548 lang_specific_driver, and update code as necessary.
12549
50e60bc3
ZW
12550 * cp-tree.h: Don't prototype min_precision here.
12551 (my_friendly_assert): Cast expression to void.
12552 * semantics.c (do_poplevel): Initialize scope_stmts.
12553
3f954fc3
MM
125542000-08-02 Mark Mitchell <mark@codesourcery.com>
12555
12556 * cp-tree.h (DECL_NEEDED_P): Tweak.
12557
ab4fa7ed
JM
125582000-07-28 Jason Merrill <jason@redhat.com>
12559
12560 * lang-specs.h: Use %i in rule for .ii files.
12561
4871239e
ZW
125622000-07-31 Zack Weinberg <zack@wolery.cumb.org>
12563
12564 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
12565
911a71a7
MM
125662000-07-30 Mark Mitchell <mark@codesourcery.com>
12567
12568 Allow indirect primary bases.
12569 * cp-tree.h (struct lang_type): Remove vfield_parent. Add
12570 primary_base.
12571 (CLASSTYPE_VFIELD_PARENT): Remove.
12572 (CLASSTYPE_PRIMARY_BINFO): Reimplement.
12573 (BINFO_PRIMARY_BINFO): Remove.
12574 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
12575 (BINFO_VBASE_PRIMARY_P): Likewise.
12576 (BINFO_PRIMARY_BASE_OF): New macro.
12577 (BINFO_INDIRECT_PRIMARY_P): Likewise.
12578 (get_primary_binfo): New function.
12579 * decl.c (lang_mark_tree): Make lang_type::primary_base.
12580 * class.c (vcall_offset_data_s): Rename to ...
12581 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p,
12582 and add ctor_vtbl_p.
12583 (get_derived_offset): Use get_primary_binfo.
12584 (dfs_mark_primary_bases): Adjust handling of virtual primary
12585 bases.
12586 (mark_primary_bases): Likewise.
12587 (set_primary_base): Take a binfo, not an integer, as a
12588 representation of the primary base.
12589 (indirect_primary_base_p): Remove.
12590 (determine_primary_base): Adjust for indirect primary bases.
12591 (dfs_find_final_overrider): Fix typo in coment.
12592 (update_vtable_entry_for_fn): Use get_primary_binfo.
12593 (layout_nonempty_base_or_field): Tweak.
12594 (build_base_fields): Adjust for new primary base semantics.
12595 (dfs_propagate_binfo_offsets): Remove.
12596 (propagate_binfo_offsets): Rewrite.
12597 (dfs_set_offset_for_shared_vbases): Remove.
12598 (layout_virtual_bases): Don't use it.
12599 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new
12600 ABI.
12601 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
12602 CLASSTYPE_VFIELD_PARENT.
12603 (dfs_get_primary_binfo): New function.
12604 (get_primary_binfo): Likewise.
12605 (dump_class_hierarchy_r): Tweak printing of primary bases.
12606 (build_vtbl_initializer): Fix typo in comments. Use
12607 vtbl_init_data.
12608 (build_vcall_and_vbase_vtbl_entries): Likewise.
12609 (build_vbaes_offset_vtbl_entries): Likewise.
12610 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of
12611 BV_VCALL_INDEX to handle indirect primary bases.
12612 (build_vcall_offset_vtbl_entries): Use vtbl_init_data.
12613 (build_rtti_vtbl_entries): Likewise.
12614 * search.c (get_shared_vbase_if_not_primary): Tweak.
12615 (find_vbase_instance): Likewise.
12616 (binfo_for_vtable): Simplify.
12617 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
12618 (make_binfo): Make it have 11 entries.
0e5921e8 12619
722bed0f
AS
126202000-07-30 Alex Samuel <samuel@codesourcery.com>
12621
12622 * mangle.c (DECL_TEMPLATE_ID_P): Remove.
12623 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
12624 ascertaining primaryness.
12625 (G): Remove template_args.
12626 (decl_is_template_id): New function.
12627 (write_encoding): Use decl_is_template_id.
12628 (write_name): Likewise. Handle type_decls. Get main variant of
12629 type decls.
12630 (write_nested_name): Likewise.
12631 (write_prefix): Likewise.
12632 (write_template_prefix): Likewise.
12633 (write_special_name_constructor): Remove defunct production from
12634 comment.
12635 (write_bare_function_type): Remove comment about absent parameter.
12636 (write_template_template_arg): Add missing grammar production to
12637 comment.
12638
9076e292
JM
126392000-07-27 Jason Merrill <jason@redhat.com>
12640
12641 * decl.c (duplicate_decls): If common_type produces a non-typedef
12642 type for a typedef, just use the old type.
12643
b2244c65
MM
126442000-07-27 Mark Mitchell <mark@codesourcery.com>
12645
12646 * cp-tree.h (function_depth): Declare.
12647 (verify_stmt_tree): Likewise.
12648 (find_tree): Likewise.
12649 * decl.c (function_depth): Give it external linkage.
12650 * optimize.c (optimize_function): Increment and decrement it.
12651 * tree.c (verify_stmt_tree_r): New function.
12652 (verify_stmt_tree): Likewise.
12653 (find_tree_r): Likewise.
12654 (find_tree): Likewise.
12655
62e3bf54
JM
126562000-07-27 Jason Merrill <jason@redhat.com>
12657
9076e292
JM
12658 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
12659 TYPE_PTRMEMFUNC_P.
12660 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
62e3bf54 12661
5a728aca
MM
126622000-07-26 Mark Mitchell <mark@codesourcery.com>
12663
12664 * decl.c (start_cleanup_fn): Mark the function as `inline'.
12665 * decl2.c (get_guard): Call cp_finish_decl, not
12666 rest_of_decl_compilation, for local guards.
12667 * lex.c (do_identifier): Remove unused variable.
12668
d2a6f3c0 126692000-07-26 Marc Espie <espie@cvs.openbsd.org>
6a1fa5f9
ME
12670
12671 * parse.y: Add missing ';'.
12672
0c10a805
MM
126732000-07-26 Mark Mitchell <mark@codesourcery.com>
12674
12675 * parse.y (empty_parms): Use `()', not `(...)', when in the scope
12676 of `extern "C++"'.
12677
8b27e9ef
NS
126782000-07-25 Nathan Sidwell <nathan@codesourcery.com>
12679
12680 Kill strict_prototype. Backwards compatibility only for
12681 non NO_IMPLICIT_EXTERN_C systems.
12682 * cp-tree.h (flag_strict_prototype): Remove.
12683 (strict_prototype): Remove.
12684 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
12685 * decl.c (maybe_push_to_top_level): Adjust.
12686 (pop_from_top_level): Adjust.
12687 (decls_match): Only allow sloppy parm matching for ancient
12688 system headers.
12689 (init_decl_processing): Adjust.
12690 (grokdeclarator): Adjust.
12691 * decl2.c (flag_strict_prototype): Remove.
12692 (strict_prototype): Remove.
12693 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
12694 (lang_f_options): Remove "strict-prototype".
12695 (unsupported-options): Add "strict-prototype".
12696 * lex.c (do_identifier): Adjust.
12697 (do_scoped_id): Adjust.
12698 * parse.y (empty_parms): Adjust.
12699 * class.c (push_lang_context): Adjust.
12700 (pop_lang_context): Adjust.
12701 * typeck.c (comp_target_parms): Adjust.
12702
c3783399
NS
127032000-07-25 Nathan Sidwell <nathan@codesourcery.com>
12704
12705 * decl.c (poplevel): Deal with anonymous variables at for scope.
12706 (maybe_inject_for_scope_var): Likewise.
12707
a7023245
ZW
127082000-07-25 Zack Weinberg <zack@wolery.cumb.org>
12709
12710 * decl.c: Remove all signal handling code, now done in toplev.c.
12711
95ee998c
MM
127122000-07-23 Mark Mitchell <mark@codesourcery.com>
12713
12714 * decl.c (make_rtl_for_nonlocal_decl): Rework.
12715
12716 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
12717 correctly.
12718
1b493b81
ZW
127192000-07-20 Zack Weinberg <zack@wolery.cumb.org>
12720
12721 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
12722 Define my_friendly_assert and my_friendly_abort as macros
12723 which may call friendly_abort. Prototype friendly abort, not
12724 my_friendly_abort or my_friendly_assert.
12725 * decl.c (signal_catch): Report the signal caught in the error
12726 message. Call fatal directly.
12727 * typeck2.c (ack, my_friendly_assert): Delete.
12728 (my_friendly_abort): Rename to friendly_abort. Expect file,
12729 line, and function parameters. Report the abort code, then
12730 call fancy_abort. Do not mask an abort if errors have
12731 already occurred.
12732
a306451c
NS
127332000-07-18 Nathan Sidwell <nathan@codesourcery.com>
12734
12735 * typeck.c (comp_target_parms): Remove obsolete parameter.
12736 (comp_target_types): Adjust.
12737
f49fad00
JM
127382000-07-17 Jason Merrill <jason@redhat.com>
12739
12740 * typeck.c (mark_addressable): Never set TREE_USED.
12741 * call.c (build_call): Don't abort on calls to library functions
12742 that have been declared normally.
12743
12744 * typeck.c (build_binary_op): Fix grammar in warning.
12745
12746 * exception.cc (__eh_free): Fix prototype.
12747
12748 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
12749
0e5921e8 12750 * decl.c (pushdecl): Handle seeing an OVERLOAD in
f49fad00
JM
12751 IDENTIFIER_NAMESPACE_VALUE.
12752
69690d98
MM
127532000-07-16 Mark Mitchell <mark@codesourcery.com>
12754
12755 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
12756 * method.c (use_thunk): Correct handling of vcall offsets.
12757
bfbbc080
ZW
127582000-07-14 Zack Weinberg <zack@wolery.cumb.org>
12759
12760 * .cvsignore: parse.h and parse.c have no cp- prefix.
12761
83a90717
MM
127622000-07-13 Mark Mitchell <mark@codesourcery.com>
12763
12764 * .cvsignore: New file.
12765
ea414c97
ZW
127662000-07-13 Zack Weinberg <zack@wolery.cumb.org>
12767
12768 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
12769
792abd35
MM
127702000-07-12 Mark Mitchell <mark@codesourcery.com>
12771
12772 * Makefile.in ($(PARSE_H)): Depend directly on parse.y.
12773 * parse.c: Remove.
12774 * parse.h: Likewise.
12775
72a50ab0
MM
127762000-07-11 Mark Mitchell <mark@codesourcery.com>
12777
12778 * class.c (layout_class_type): Add pointers to virtual bases after
12779 base classes under the old ABI.
12780
0dfdeca6
BC
127812000-07-10 Benjamin Chelf <chelf@codesourcery.com>
12782
12783 * semantics.c (finish_for_stmt): Remove call to emit_line_note.
12784 (finish_continue_stmt): Likewise.
12785 (begin_for_stmt): Remove call to note_level_for_for.
12786 (finish_goto_stmt): Change call from build_min_nt
12787 to build_stmt.
12788 (finish_expr_stmt): Likewise.
12789 (begin_if_stmt): Likewise.
12790 (begin_while_stmt): Likewise.
12791 (finish_while_stmt): Likewise.
12792 (finish_return_stmt): Likewise.
12793 (begin_for_stmt): Likewise.
12794 (finish_for_stmt): Likewise.
12795 (finish_break_stmt): Likewise.
12796 (begin_switch_stmt): Likewise.
12797 (finish_case_label): Likewise.
12798 (genrtl_try_block): Likewise.
12799 (begin_try_block): Likewise.
12800 (begin_handler): Likewise.
12801 (begin_compound_stmt): Likewise.
12802 (finish_asm_stmt): Likewise.
12803 (finish_label_stmt): Likewise.
12804 (add_decl_stmt): Likewise.
12805 (finish_subobject): Likewise.
12806 (finish_decl_cleanup): Likewise.
12807 (finish_named_return_value): Likewise.
12808 (setup_vtbl_ptr): Likewise.
12809 (add_scope_stmt): Likewise.
12810 * decl.c (finish_constructor_body): Likewise.
12811 (finish_destructor_body): Likewise.
12812 * optimize.c (copy_body_r): Likewise.
12813 (initialize_inlined_parameters): Likewise.
12814 (declare_return_variable): Likewise.
12815 (expand_call_inline): Likewise.
0e5921e8 12816
f12eef58
JJ
128172000-07-10 Jakub Jelinek <jakub@redhat.com>
12818
12819 * semantics.c (expand_body): Sync interface information
12820 at the end of function body expansion.
12821
2bb5d995
JM
128222000-07-09 Jason Merrill <jason@redhat.com>
12823
12824 * init.c (build_new_1): Bail early if the call to new fails.
12825
0e5921e8 12826 * decl.c (compute_array_index_type): Check specifically for
2bb5d995
JM
12827 an INTEGER_CST, not just TREE_CONSTANT.
12828
0e5921e8 12829 * decl.c (duplicate_decls): Don't call duplicate_decls on
2bb5d995
JM
12830 the DECL_TEMPLATE_RESULT.
12831 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
12832 codes.
12833
12834 * error.c (dump_template_bindings): Don't crash if we had an
12835 invalid argument list.
12836
12837 * typeck.c (c_expand_start_case): Do narrowing here.
12838 * semantics.c (finish_switch_cond): Not here.
12839
128402000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com>
12841
12842 * parse.y (asm_clobbers): Do string concatenation.
12843
089acd57
MM
128442000-07-09 Mark Mitchell <mark@codesourcery.com>
12845
12846 * decl.c (pushtag): Don't put local classes in template functions
12847 on the local_classes list.
12848
128492000-07-04 Scott Snyder <snyder@fnal.gov>
12850
12851 * decl2.c (get_guard): Add missing return for old ABI local
12852 variable case.
12853
7b019c19
MM
128542000-07-09 Mark Mitchell <mark@codesourcery.com>
12855
12856 * cp-tree.h (char_type_p): New function.
12857 * decl.c (init_decl_processing): Don't initialize
12858 signed_wchar_type_node or unsigned_wchar_type_node.
12859 (complete_array_type): Handle brace-enclosed string-constants.
12860 * rtti.c (emit_support_tinfos): Remove #if 0'd code.
12861 * tree.c (char_type_p): New function.
12862 * typeck2.c (digest_init): Use char_type_p.
12863
a5f1c5f8
NS
128642000-07-06 Nathan Sidwell <nathan@codesourcery.com>
12865
12866 * pt.c (tsubst): Don't layout type, if it's error_mark.
12867
84e5ca0f
NS
128682000-07-06 Nathan Sidwell <nathan@codesourcery.com>
12869
12870 * pt.c (instantiate_pending_templates): Reset template level.
12871
ab785305
JM
128722000-07-05 Jason Merrill <jason@redhat.com>
12873
12874 * call.c (joust): Don't complain about `operator char *()' beating
12875 `operator const char *() const'.
12876
90418208
JM
128772000-07-04 scott snyder <snyder@fnal.gov>
12878 Jason Merrill <jason@redhat.com>
12879
0e5921e8 12880 * repo.c (repo_get_id): Handle the case where a class with virtual
90418208
JM
12881 bases has a null TYPE_BINFO_VTABLE.
12882
128832000-07-04 Kevin Buhr <buhr@stat.wisc.edu>
12884 Jason Merrill <jason@redhat.com>
12885
12886 * parse.y (member_init): Just pass in the type.
12887 * init.c (expand_member_init): Handle getting a type.
12888
12889