12005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2
3	* cxx-pretty-print.c (pp_cxx_constant): New.  Print
4	string-literal in parens if input program says so.
5	(pp_cxx_primary_expression): Hand off constant printing to
6	pp_cxx_constant.
7	(pp_cxx_pretty_printer_init): Set pp->c_base.constant.
8	(pp_cxx_expression): Use pp_cxx_constant for literals.
9	* error.c (dump_expr): Use pp_constant for literals.
10
112005-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12
13	* method.c (make_thunk): Don't set comdat_linkage here.
14	(use_thunk): Make thunk one only here, if thunk target is
15	DECL_ONE_ONLY.
16
172005-12-26  Mark Mitchell  <mark@codesourcery.com>
18
19	PR c++/25439
20	* decl.c (grokdeclarator): Remove dead code.
21	* ptree.c (cxx_print_xnode): Handle BASELINK.
22	* parser.c (make_id_declarator): Add sfk parameter.
23	(cp_parser_direct_declarator): Do not pass TYPE_DECLs to
24	make_id_declarator.
25	(cp_parser_declarator_id): Simplify BASELINKs here.
26	(cp_parser_member_declaration): Adjust calls to
27	make_id_declarator.
28
292005-12-26  Mark Mitchell  <mark@codesourcery.com>
30
31	PR c++/23171, c++/23172, c++/25417.
32	* typeck.c (build_unary_op): Create temporary variables for
33	compound literals whose addresses are taken.
34	* init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
35	* decl.c (reshape_init_vector): Likewise.
36	(reshape_init): Give it external linkage.
37	(check_initializer): Use COMPOUND_LITERAL_P.
38	(initialize_artificial_var): Allow the initializer to be a
39	CONSTRUCTOR.
40	* call.c (make_temporary_var_for_ref_to_temp): Use
41	create_temporary_var.
42	* cp-tree.h (COMPOUND_LITERAL_P): New macro.
43	(rehape_init): Declare.
44	* typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
45	* semantics.c (finish_compound_literal): Use reshape_init.
46
472005-12-23  Mark Mitchell  <mark@codesourcery.com>
48
49	PR c++/24671
50	* pt.c (instantiate_template): Handle SFINAE.
51
522005-12-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
53
54	* decl.c (grokdeclarator): Improve diagnostic for friend
55	declarations of class members.
56
572005-12-22  Mark Mitchell  <mark@codesourcery.com>
58
59	PR c++/25369
60	* tree.c (really_overloaded_fn): Tweak comment.
61	* pt.c (tsubst_call_declarator_parms): Remove.
62	(tsubst_copy): Call mark_used on the member referenced by an
63	OFFSET_REF.
64	* semantics.c (finish_qualified_id_expr): Simplify.
65	* decl2.c (mark_used): Accept BASELINKs.
66
67	PR c++/25364
68	* typeck.c (build_unary_op): Pass DECLs not names to
69	build_offset_refs.
70	* init.c (build_offset_ref): Do not do name lookup.  Do not call
71	mark_used.
72	* call.c (build_call): Simplify and tidy.
73	* semantics.c (finish_qualified_id_expr): Call mark_used.
74
752005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
76
77	PR c++/23333
78	* parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
79	identify a single '0'.
80
812005-12-20  Mark Mitchell  <mark@codesourcery.com>
82
83	PR c++/21228
84	* decl.c (use_eh_spec_block): New function.
85	(store_parm_decls): Use it.
86	(finish_function): Likewise.
87
882005-12-19  Mark Mitchell  <mark@codesourcery.com>
89
90	PR c++/24278
91	* init.c (expand_member_init): Print messages about baseclasses
92	using %T rather than %D.
93
94	PR c++/24915
95	* class.c (add_method): Do not treat templates as identical unless
96	their return types are the same.
97
982005-12-12  Mark Mitchell  <mark@codesourcery.com>
99
100	PR c++/25300
101	* tree.c (build_qualified_name): Return error_mark_node for
102	erroneous input.
103
1042005-12-10  Mark Mitchell  <mark@codesourcery.com>
105
106	PR c++/25337
107	* pt.c (tsubst_copy_and_build): Permit dependent types for the
108	object in a class member access expression.
109
1102005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>
111
112	PR java/9861
113	* mangle.c (write_bare_function_type): Mangle return type for
114	methods of Java classes
115
1162005-12-08  Théodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
117
118	* call.c (build_conditional_expr): Print types in error messages.
119
1202005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
121
122	* expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
123
1242005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
125
126	* cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
127
1282005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
129
130	* Make-lang.in (c++.all.build, c++.install-normal): Remove.
131
1322005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
133
134	* Make-lang.in: Remove all dependencies on s-gtype.
135
1362005-12-06  Aldy Hernandez  <aldyh@redhat.com>
137
138	PR C++/24138
139	* decl.c (reshape_init_array_1): Handle max_index of -1.
140
1412005-12-06  Roger Sayle  <roger@eyesopen.com>
142
143	* typeck.c (build_binary_op): Issue warning if either operand of a
144	comparison operator is a string literal, except for testing equality
145	or inequality against NULL.
146
1472005-12-06  Roger Sayle  <roger@eyesopen.com>
148
149	PR c++/25263
150	* decl.c (compute_array_index_type): Check that itype is an
151	INTEGER_CST node before testing/clearing TREE_OVERFLOW.
152
1532005-12-05  Daniel Berlin  <dberlin@dberlin.org>
154
155	* ptree.c (cxx_print_decl): Update to check for decl_common
156	structure.
157
1582005-12-02  Mark Mitchell  <mark@codesourcery.com>
159
160	PR c++/24173
161	* decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
162	clobbering newdecl.
163
1642005-12-02  Richard Guenther  <rguenther@suse.de>
165
166	* semantics.c (simplify_aggr_init_expr): Use buildN instead
167	of build.
168
1692005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
170
171	* parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
172	ggc_realloc.
173	(cp_parser_template_argument_list): Use XRESIZEVEC instead of
174	xrealloc.
175	* class.c (pushclass): Likewise.
176
1772005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
178
179	* decl2.c (get_priority_info): Use XNEW, not xmalloc.
180	* decl.c (push_switch): Likewise.
181	* lex.c (handle_pragma_implementation): Likewise.
182	* cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
183	not ggc_alloc.
184	(cxx_initialize_diagnostics): Use XNEW, not xmalloc.
185	* class.c (init_class_processing): Use XNEWVEC, not xmalloc.
186	* g++spec.c (lang_specific_driver): Likewise.
187	* mangle.c (save_partially_mangled_name): Likewise.
188	* parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
189	(cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
190	(cp_parser_sizeof_operand): Likewise.
191	* repo.c (open_repo_file, open_repo_file): Likewise.
192
1932005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
194
195	* parser.c (cp_parser_make_typename_type): Call make_typename_type
196	with tf_none instead of magic value 0.
197	(cp_parser_explicit_instantiation): Call do_type_instantiation
198	with tf_error instead of magic value 1.
199	(cp_parser_elaborated_type_specifier): Call make_typename_type
200	with tf_error instead of magic value 1.
201	(cp_parser_class_name): Likewise.
202	(cp_parser_lookup_name): Likewise.
203
2042005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
205
206	* parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
207	not RID_MAX.
208
2092005-11-30  Jason Merrill  <jason@redhat.com>
210
211	PR c++/21123
212	* cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
213	parms in a thunk.
214
2152005-11-30  Ben Elliston  <bje@au.ibm.com>
216
217	* typeck.c (build_x_unary_op): Correct spelling in error message.
218
2192005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
220
221	PR c++/21166
222	* class.c (check_field_decls): Only set DECL_PACKED on a field
223	when its natural alignment is > BITS_PER_UNIT.
224
2252005-11-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
226
227	PR c++/24979
228	* cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
229
2302005-11-26  Richard Henderson  <rth@redhat.com>
231
232	* lex.c: Update for pragma_lex rename.
233	* parser.c: Likewise.
234
2352005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
236
237	PR c++/9278
238	* decl.c (grokparms): Do not allow typedef-names in a '(void)'
239	parmlist.
240
2412005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
242
243	* typeck2.c (process_init_constructor_union): Remove check for
244	unnamed union members.
245
2462005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
247
248	* name-lookup.c (lookup_name_real): Merge two if's.
249
2502005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
251
252	* pt.c (instantiate_class_template): Clean-up.
253
2542005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
255
256	* pt.c (template_class_depth_real): Remove. Move functionality to ...
257	(template_class_depth): ... here, replacing count_specializations
258	with 0.  Adjust comment.
259
2602005-11-24  Richard Guenther  <rguenther@suse.de>
261	Dirk Mueller <dmueller@suse.de>
262
263	PR c++/14024
264	* typeck.c (build_reinterpret_cast_1): Use
265	strict_aliasing_warning.
266
2672005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
268
269	PR c++/24235
270	* pt.c (check_instantiated_args): Reword diagnostic message about
271	template argument involving local types.
272
2732005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
274
275	PR c++/21667
276	* typeck.c (build_array_ref): Avoid code duplicate.  Use common
277	C/C++ diagnostic function warn_array_subscript_with_type_char.
278
2792005-11-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
280
281	PR c++/22238
282	* error.c (resolve_virtual_fun_from_obj_type_ref): New.
283	(dump_expr): Use it in <case CALL_EXPR>.
284
2852005-11-21  Richard Henderson  <rth@redhat.com>
286
287	* cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
288
289	* name-lookup.c (lookup_name): Remove prefer_type argument.
290	(lookup_name_prefer_type): New.
291	* decl.c (lookup_and_check_tag): Use them.
292	* pt.c (tsubst_friend_class): Likewise.
293	(lookup_template_class): Likewise.
294	(tsubst_copy_and_build): Likewise.
295	* name-lookup.h (lookup_name_prefer_type): New.
296	(lookup_name): Remove declaration.
297
2982005-11-18  Mark Mitchell  <mark@codesourcery.com>
299
300	PR c++/8355
301	* decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
302	set_decl_namespace.
303	* name-lookup.c (set_decl_namespace):
304
3052005-11-18  Mike Stump  <mrs@apple.com>
306
307	* cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
308	* name-lookup.c (lookup_name_two): Remove.
309	(lookup_name_one): Add.
310	* name-lookup.h (lookup_name_two): Remove.
311	(lookup_name_one): Add.
312
3132005-11-15  Jason Merrill  <jason@redhat.com>
314
315	PR c++/24580
316	* method.c (locate_copy): Also use skip_artificial_parms here.
317	(synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
318	for RECORD_TYPE.
319	(locate_ctor): Abort if we fail to find a default constructor.
320
3212005-11-15  Mike Stump  <mrs@apple.com>
322
323	* name-lookup.c (lookup_name_two): Add.
324	* name-lookup.h: Likewise.
325
3262005-11-15  Mark Mitchell  <mark@codesourcery.com>
327
328	PR c++/24667
329	* typeck.c (check_for_casting_away_constness): Use the diag_fn.
330	(build_const_cast_1): Call it, for C-style casts.
331
3322005-11-14  Mark Mitchell  <mark@codesourcery.com>
333
334	PR c++/24687
335	* pt.c (check_explicit_specialization): Don't check for C linkage.
336	(push_template_decl_real): Likewise.
337	* parser.c (cp_parser_explicit_specialization): Check here.
338	(cp_parser_template_declaration_after_export): And here.
339
340	* parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
341	field.
342
3432005-11-14  Jason Merrill  <jason@redhat.com>
344
345	PR c++/24580
346	* method.c (locate_ctor): Skip all artificial parms, not just
347	'this'.
348
3492005-11-14  Mark Mitchell  <mark@codesourcery.com>
350
351	* parser.c (eof_token): Add initializer for ambiguous_p.
352
3532005-11-13  Mark Mitchell  <mark@codesourcery.com>
354
355	PR c++/24817
356	* decl.c (check_redeclaration_exception_specification): New
357	function.
358	(duplicate_decls): Use it.
359	* error.c (fndecl_to_string): Print the template parameter list.
360
361	PR c++/20293
362	* cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
363	for namespaces.
364	(pp_cxx_original_namespace_definition): Likewise.
365	* name-lookup.c (ambiguous_decl): Don't issue error messages;
366	instead return lists of ambiguous candidates.
367	(select_decl): Handle ambiguous namespace lookups.
368	* parser.c (cp_token): Add ambiguous_p.
369	(cp_lexer_get_preprocessor_token): Set it.
370	(cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
371	when a qualified name uses an invalid scope.
372	(cp_parser_primary_expression): Print ambiguous candidates.
373	(cp_parser_type_parameter): Adjust comment to reflect new
374	parameter name for cp_parser_lookup_name.
375	(cp_parser_template_argument): Likewise.
376	(cp_parser_elaborated_type_specifier): Likewise.
377	(cp_parser_namespace_name): Likewise.
378	(cp_parser_class_name): Print ambiguous candidates.
379	(cp_parser_lookup_name): Rename ambiguous_p parameter to
380	ambiguous_decls.  Use it to return a list of ambiguous candiates
381	when a lookup is ambiguous.
382	(cp_parser_lookup_name_simple): Adjust comment to reflect new
383	parameter name for cp_parser_lookup_name.
384
3852005-11-12  Jakub Jelinek  <jakub@redhat.com>
386
387	PR c++/24780
388	* typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
389	and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
390	of array type.
391
392	PR c++/24761
393	* pt.c (tsubst_copy_asm_operands): New function.
394	(tsubst_expr) <case ASM_EXPR>: Use it.
395
3962005-11-08  Jakub Jelinek  <jakub@redhat.com>
397
398	PR c++/19450
399	* decl.c (redeclaration_error_message): Issue diagnostics about
400	olddecl and newdecl disagreement on __thread property.
401	(grokdeclarator): Set DECL_TLS_MODEL on class static variables.
402
4032005-11-08  Jason Merrill  <jason@redhat.com>
404
405	PR c++/21123
406	* method.c (use_thunk): Use build_cplus_new instead of
407	force_target_expr.
408
4092005-11-06  Jason Merrill  <jason@redhat.com>
410	    James A. Morrison <phython@gcc.gnu.org>
411
412	PR c++/17256
413	* decl2.c (cp_finish_file): Fix conditions for undefined warning.
414	Set TREE_NO_WARNING instead of TREE_PUBLIC.
415	* pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
416	a warning on a function we didn't instantiate because of excessive
417	recursion.
418
4192005-11-06  Mark Mitchell  <mark@codesourcery.com>
420
421	* class.c (record_subobject_offsets): Don't record offsets past
422	biggest empty class for non-empty base classes.
423	(layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
424	keeping track of the size of emptyclasses.
425
426	PR c++/21308
427	* class.c (sizeof_biggest_empty_class): New variable.
428	(record_subobject_offsets): Don't record offsets past biggest
429	empty class for data members.  Replace vbases_p parameter with
430	is_data_member parameter.
431	(build_base_field): Adjust call.
432	(layout_class_type): Likewise.  Maintain
433	sizeof_biggest_empty_class.
434
4352005-11-05  Kazu Hirata  <kazu@codesourcery.com>
436
437	* decl2.c, init.c, typeck.c: Fix comment typos.
438
4392005-11-04  Richard Guenther  <rguenther@suse.de>
440
441	PR c++/22487
442	* init.c (build_vec_init): Build comparison of matching
443	types.
444
4452005-11-03  Josh Conner  <jconner@apple.com>
446
447	PR c++/19989
448	pt.c (tsubst): Accept zero-length array if tf_error is set
449	in complain flags.  Change error message for negative-
450	length array.
451
4522005-11-04  Joseph S. Myers  <joseph@codesourcery.com>
453
454	* cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
455	parameter.
456
4572005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
458
459	PR c++/17964
460	* error.c (cp_cpp_error): New function.
461	* cp-tree.h (cp_cpp_error): Declare.
462	* parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
463	and error callback after lexing.
464
4652005-11-03  Mark Mitchell  <mark@codesourcery.com>
466
467	PR c++/21627
468	* pt.c (register_specialization): Update inline flags on clones.y
469
4702005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
471
472	PR c++/24582
473	* decl.c (declare_local_label): Return 0 for variables
474	with error_mark_node as their types.
475
4762005-11-02  Mark Mitchell  <mark@codesourcery.com>
477
478	PR c++/22434
479	* call.c (build_conditional_expr): Do bad conversions, if there's
480	no other choice.
481
482	PR c++/24560
483	* parser.c (cp_parser_postfix_dot_deref_expression): Improve error
484	message for use of overloaded functions on LHS of "." operator.
485
486	PR c++/19253
487	* parser.c (cp_parser_postfix_expression): Use
488	cp_parser_elaborated_type_specifier to handle typename-types in
489	functional casts.
490	(cp_parser_enclosed_argument_list): Skip ahead to the end of the
491	template argument list if the closing ">" is not found.
492
493	PR c++/24569
494	* pt.c (instantiate_decl): Use cp_finish_decl, not
495	finish_static_data_member_decl.
496
4972005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
498
499	* decl.c (grokfndecl): Remove the setting
500	of the return type of the function type
501	of main after erroring about must returning
502	int.
503
5042005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
505
506	PR C++/23229
507	* decl.c (grokfndecl): Create a new function type
508	after erroring out about main not returning int.
509
5102005-10-28  Josh Conner  <jconner@apple.com>
511
512	PR c++/22153
513	* parser.c (cp_parser_member_declaration): Detect and handle
514	a template specialization.
515
5162005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
517
518	PR C++/23426
519	* decl.c (start_decl): Check that the decl is an
520	error_mark_node before getting the type.
521	Remove the check for the decl's type being an
522	error_mark_node.
523
5242005-10-21  Mark Mitchell  <mark@codesourcery.com>
525
526	PR c++/24260
527	* parser.c (cp_parser_init_declarator): Pass attributes to
528	grokfield.
529
5302005-10-20  Mark Mitchell  <mark@codesourcery.com>
531
532	PR c++/22618
533	* search.c (accessible_p): Check access in the outermost set of
534	template parameters.
535
5362005-10-20  Richard Guenther  <rguenther@suse.de>
537
538	* decl.c (grokdeclarator): Fix ambiguous pedwarn message.
539
5402005-10-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
541
542	PR c++/22293
543	* decl.c (grokdeclarator): Reject unqualified destructors in
544	friend declarations.
545
5462005-10-18  Mark Mitchell  <mark@codesourcery.com>
547
548	PR c++/23293
549	* pt.c (convert_template_argument): Use canonical type variants in
550	template specializations.
551
5522005-10-18  Nathan Sidwell  <nathan@codesourcery.com>
553
554	PR c++/21383
555	* name-lookup.c (arg_assoc): Template args can be null in a
556	template-id-expr.
557
558	PR c++/22604
559	* class.c (update_vtable_entry_for_fn): Don't process invalid
560	covariant overriders.
561
562	PR c++/23118
563	* cp-tree.h (add_method): Add return value.
564	* class.c (add_method): Return success indicator.
565	* semantics.c (finish_member_declaration): Don't add an invalid
566	method to the method list.
567
5682005-10-17  Mark Mitchell  <mark@codesourcery.com>
569
570	PR c++/21908
571	* call.c (build_new_method_call): Do not show VTT parameters to
572	the user.
573
5742005-10-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
575
576	PR c++/23440
577	* parser.c (cp_parser_statement): If the parser reached CPP_EOF,
578	only complain about missing statement.
579
5802005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
581
582	PR c++/24386
583	* cp-tree.h (BASELINK_QUALIFIED_P): New.
584	* pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
585	* typeck.c (finish_class_member_access_expr): Set it.
586
587	PR c++/21353
588	* decl.c (check_default_argument): Don't check
589	processing_template_decl or uses_template_parms here.
590	(grokparms): Only call check_default_argument when not processing
591	a template decl.
592	* parser.c (cp_parser_late_parsing_default_arg): Call
593	check_default_argument when not processing a template decl.
594
5952005-10-16  Mark Mitchell  <mark@codesourcery.com>
596
597	PR c++/24389
598	* decl2.c (mark_used): Use uses_template_parms instead of
599	dependent_type_p.
600	* init.c (constant_value_1): Handle uninstantiated templates
601	specially.
602	* pt.c (instantiate_decl): Add sanity check.
603
6042005-10-16  Mark Mitchell  <mark@codesourcery.com>
605
606	PR c++/22173
607	* typeck.c (check_template_keyword): Fix thinko.
608
6092005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
610
611	PR c++/23959
612	* decl.c (pop_switch): Only call c_do_switch_warnings
613	when not processing templates.
614
6152005-10-16  Mark Mitchell  <mark@codesourcery.com>
616
617	PR c++/22173
618	* cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
619	(check_template_keyword): New function.
620	(finish_id_expression): Change prototoype.
621	(finish_qualified_id_expr): Change prototype.
622	(build_qualified_name): New function.
623	(finish_class_member_access_expr): Change prototype.
624	* init.c (build_offset_ref): Use build_qualified_name.
625	* mangle.c (write_expression): Likewise.
626	* parser.c (cp_parser_primary_expression): Remove qualifying_class
627	parameter.  Add address_p and template_arg_p.  Use
628	build_qualified_name.
629	(cp_parser_id_expression): Default *template_p to
630	template_keyword_p.  Check for invalid uses of the template
631	keyword.
632	(cp_parser_postfix_expression): Eliminate special handling for
633	qualified names.  Adjust call to cp_parser_primary_expression.
634	(cp_parser_postfix_dot_deref_expression): Adjust call to
635	cp_parser_id_expression and finish_class_member_access_expr.
636	(cp_parser_template_argument_list): Add comment.
637	(cp_parser_template_argument): Adjust use of
638	cp_parser_primary_expression.  Remove call to
639	finish_qualified_id_expr.
640	(cp_parser_lookup_name): Use build_qualified_name.
641	* pt.c (tsubst): Use build_qualified_name.
642	(tsubst_qualified_id): Likewise.  Adjust call to
643	finish_qualified_id_expr.
644	(tsubst_copy): Use build_qualified_name.
645	(tsubst_copy_and_build): Adjusts call to finish_id_expression and
646	finish_class_member_access_expr.
647	* semantics.c (finish_non_static_data_member): Use
648	build_qualified_name.
649	(finish_qualified_id_expr): Add template_p and template_arg_p
650	parameters.
651	(finish_id_expression): Remove qualifiying_class parameter.  Add
652	template_p, done, address_p, and template_arg_p.  Use
653	build_qualified_name.  Adjust calls to
654	finish_class_member_acess_expr.
655	* tree.c (build_qualified_name): New function.
656	* typeck.c (check_template_keyword): New function.
657	(finish_class_member_access_expr): Add template_p argument.  Check
658	for invalid uses of the template keyword.
659
6602005-10-15  Mark Mitchell  <mark@codesourcery.com>
661
662	PR c++/21347
663	* class.c (maybe_warn_about_overly_private_class): Lazy
664	constructors are public.
665
6662005-10-14  Mark Mitchell  <mark@codesourcery.com>
667
668	PR c++/19565
669	* call.c (convert_like_real): Rely on convert_and_check to issue
670	warnings about overflow and conversion to unsigned.
671	* decl.c (finish_enum): Use the location of the enumerators, not
672	the closing brace of the enumeration, when reporting warnings
673	about conversions.
674	(build_enumerator): Use error_mark_node for erroneous values.
675	* typeck2.c (digest_init): Remove reference to "signature pointer"
676	from comment.
677
6782005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
679
680	PR c++/17796
681	* optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
682	(maybe_clone_body): Track the first clone.
683
6842005-10-13  Nathan Sidwell  <nathan@codesourcery.com>
685
686	PR c++/23984
687	* class.c (build_base_path): The vtable is always the first thing
688	in the vtt.
689
6902005-10-13  Mark Mitchell  <mark@codesourcery.com>
691
692	PR c++/20721
693	* cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
694	* decl.c (duplicate_decls): Merge it into new declarations.
695	(decl_jump_unsafe): Use it, rather than DECL_INITIAL.
696	(cp_finish_decl): Set it, when appropriate.
697
698	PR c++/22180
699	* call.c (build_new_method_call): Correct pretty-printing of
700	destructor names.
701	* pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
702	identifier.
703
704	PR c++/23694
705	* decl.c (start_method): Return error_mark_node for errors.
706
707	PR c++/23307
708	* pt.c (push_template_decl_real): Complain about attempts to
709	declare template variables.
710
711	PR c++/22352
712	* pt.c (tsubst_template_parms): Set processing_template_decl while
713	processing the parameters.
714	(tsubst_decl): Set processing_template_decl when substituting into
715	a TEMPLATE_DECL.
716
717	PR c++/22405
718	* pt.c (most_specialized_instantiation): Robustify.
719
720	PR c++/22464
721	* semantics.c (finish_id_expression): Issue errors about uses of
722	local variables in containing functions even in templates.
723
7242005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
725
726	PR target/21801
727	PR target/23589
728	* class.c (finish_struct_1): Call
729	targetm.cxx.adjust_class_at_definition.
730
731
7322005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
733
734	PR c++/21592
735	* pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
736	with already looked up member functions.  Assert we're not
737	returning a NON_DEPENDENT_EXPR with unknown type.
738	* typeck.c (finish_class_member_access_expr):  We can get
739	non-template-id-expr baselinks.  If the lookup finds a baselink,
740	remember it even inside templates.
741
742	PR c++/23797
743	* parser.c (cp_parser_functional_cast): Cope when TYPE is not a
744	TYPE_DECL.  Use dependent_type_p to check type.
745	* pt.c (uses_template_parms_p): Use dependent_type_p for a
746	TYPE_DECL.
747	(type_dependent_expression_p): Assert we've not been given a
748	TYPE_DECL.
749
750	PR c++/21117
751	* decl.c (check_function_type): Correctly overwrite incomplete
752	return type with void type.
753	* typeck.c (check_return_expr): If the function's return type is
754	void, don't try and convert a return expr.
755
7562005-10-12  David Edelsohn  <edelsohn@gnu.org>
757
758	PR c++/23730
759	* call.c (build_object_call): If BINFO is NULL, bypass
760	lookup_fnfields and set fns to NULL_TREE.
761
7622005-10-12  Paolo Bonzini  <bonzini@gnu.org>
763
764	PR c++/24052
765	* error.c (dump_expr): Pass LABEL_DECL to dump_decl.  Print
766	an ADDR_EXPR of a LABEL_DECL as &&.
767
7682005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
769
770	PR c++/19964
771	* class.c (walk_subobject_offsets): Don't walk error_mark_node.
772
7732005-10-11  Ian Lance Taylor  <ian@airs.com>
774
775	PR c++/8057
776	* cvt.c (convert_to_void): Don't warn about unused values when
777	processing a template declaration.
778
7792005-10-11  Mark Mitchell  <mark@codesourcery.com>
780
781	PR c++/21089
782	* call.c (convert_like_real): Use decl_constant_value, not
783	integral_constant_value.
784	* init.c (constant_value_1): New function.
785	(integral_constant_value): Use it.
786	(decl_constant_value): Likewise.
787	* typeck.c (decay_conversion): Use decl_constant_value, not
788	integral_constant_value.
789
790	PR c++/21369
791	* parser.c (cp_parser_elaborated_type_specifier): Don't treat
792	class types as templates if the type is not appearing as part of a
793	type definition or declaration.
794
7952005-10-10  Mark Mitchell  <mark@codesourcery.com>
796
797	PR c++/24277
798	* pt.c (instantiate_decl): Call finish_static_data_member_decl for
799	static data members.
800
8012005-10-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
802	    Mark Mitchell  <mark@codesourcery.com>
803
804	PR c++/23437
805	* parser.c (cp_parser_template_argument_list): Do not treat
806	contents of argument list as part of a constant expression.
807
8082005-10-10  Mark Mitchell  <mark@codesourcery.com>
809
810	PR c++/24139
811	* decl.c (grokdeclarator): Do not require template parameter lists
812	for explicitly specialized class.
813	* error.c (dump_aggr_type): Do not dump template arguments for
814	non-primary specializations.
815	(dump_function_name): Likewise.
816
817	PR c++/24275
818	* pt.c (instantiate_decl): Instantiate the initializer of
819	a static data member in the namespace containing the class
820	containing the static data member.
821
8222005-10-08  James A. Morrison  <phython@gcc.gnu.org>
823
824	PR c++/22172
825	* parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
826	scopes as nondependent.
827
8282005-10-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
829
830	* call.c (resolve_args): Remove redundant test.
831
8322005-10-05  Paolo Bonzini  <bonzini@gnu.org>
833
834	PR tree-optimization/21419
835	PR tree-optimization/24146
836	PR tree-optimization/24151
837
838	* semantics.c (finish_asm_stmt): Call readonly_error if outputs are
839	read-only.  Set ASM_VOLATILE_P for asms without outputs.
840
8412005-10-05  Nathan Sidwell  <nathan@codesourcery.com>
842
843	PR c++/23513
844	* call.c (joust): Adjust length count to more_specialized_fn.
845	* pt.c (more_specialized_fn): Cope with non-static member vs
846	non-member.
847
8482005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
849
850	PR middle-end/23125
851	* decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
852	instead of change_decl_assembler_name.
853
8542005-10-03  Alexandre Oliva  <aoliva@redhat.com>
855
856	* error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
857
8582005-10-03  Mark Mitchell  <mark@codesourcery.com>
859
860	PR c++/17775
861	* repo.c: Include flags.h.
862	(finish_repo): Add -frandom-seed to the arguments.
863
8642005-10-02  Mark Mitchell  <mark@codesourcery.com>
865
866	PR c++/22621
867	* parser.c (cp_parser_template_argument): Don't turn "T::f" into
868	"(*this).T::f".
869	* pt.c (convert_nontype_argument): Remove ??? comment.
870
871	PR c++/23840
872	* tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
873	when class rvalues are lvalues.
874
8752005-09-28  Mark Mitchell  <mark@codesourcery.com>
876
877	PR c++/16782
878	* decl.c (grokdeclarator): Always pedwarn about overqualified
879	member names.
880
8812005-09-27  Mark Mitchell  <mark@codesourcery.com>
882
883	PR c++/22147
884	* name-lookup.c (maybe_process_template_type_declaration): Don't
885	treat forward declarations of classes as templates just because
886	we're processing_template_decl.
887	* pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
888	functions.
889
8902005-09-26  Jason Merrill  <jason@redhat.com>
891
892	PR c++/13764
893	* cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
894	* name-lookup.c (pushdecl_maybe_friend): Check it.
895	* decl.c (begin_function_body): Do nothing if it's false.
896	(finish_function_body): Ditto.
897	(outer_curly_brace_block): New fn.
898	(finish_function): Use it.
899
9002005-09-26  Richard Guenther  <rguenther@suse.de>
901
902	PR middle-end/15855
903	* decl2.c (do_static_destruction): Remove.
904	(finish_static_initialization_or_destruction): Likewise.
905	(DECL_EFFECTIVE_INIT_PRIORITY): New macro.
906	(NEEDS_GUARD_P): Likewise.
907	(do_static_initialization): Rename to
908	do_static_initialization_or_destruction.  Process all
909	initializers/destructors and handle common conditionalizing.
910	(start_static_initialization_or_destruction): Rename to
911	one_static_initialization_or_destruction.  Handle only
912	decl-specific conditionalizing.
913	(cp_finish_file): Call do_static_initialization_or_destruction.
914
9152005-09-22  Jakub Jelinek  <jakub@redhat.com>
916
917	PR c++/21983
918	* class.c (find_final_overrider): Move diagnostic about no unique final
919	overrider to...
920	(update_vtable_entry_for_fn): ... here.
921
9222005-09-21  Mark Mitchell  <mark@codesourcery.com>
923
924	PR c++/23993
925	* init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
926
9272005-09-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
928
929	PR c++/23965
930	* call.c (resolve_args): Return error_mark_node on arguments
931	whose TREE_TYPE is error_mark_node.
932
9332005-09-20  Jakub Jelinek  <jakub@redhat.com>
934
935	PR c++/23947
936	* rtti.c (get_pseudo_ti_init): Recompute ti pointer after
937	get_tinfo_ptr calls.
938
9392005-09-16  Mark Mitchell  <mark@codesourcery.com>
940
941	PR c++/23914
942	* parser.c (cp_parser_enclosed_template_argument_list): Make sure
943	skip_evaluation is false when processing template arguments.
944
945	PR c++/21514
946	* pt.c (check_instantiated_args): Treat uses of anonymous types as
947	causing type-deduction failure.
948
9492005-09-15  Jason Merrill  <jason@redhat.com>
950
951	PR c++/23357
952	* cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
953	tcc_expression.
954
9552005-09-15  Mark Mitchell  <mark@codesourcery.com>
956
957	PR c++/23896
958	* pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
959	processing template arguments.
960
961	* pt.c (check_explicit_instantiation_namespace): Fix typo.
962
963	PR c++/13140
964	* decl.c (check_class_member_definition_namespace): New function.
965	(grokfndecl): Use it.
966	(grokvardecl): Likewise.
967	(grokdecl): Improve documentation.
968	* pt.c (check_explicit_instantiation_namespace): New function.
969	(register_specialization): Call check_specialization_namespace
970	when replacing an implicitly instantiated function.
971	(check_explicit_specialization): Ensure that DECL_CONTEXT is set
972	correctly for namespace-scope specializations.
973	(do_decl_instantiation): Use
974	check_explicit_instantiation_namespace.
975	(do_type_instantiation): Likewise.
976
9772005-09-15  Nathan Sidwell  <nathan@codesourcery.com>
978
979	PR c++/23725
980	* error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
981
9822005-09-13  Bastian Blank <waldi@debian.org>
983
984	PR c++/16171
985	* mangle.c (find_substitution): Do not use special substitutions
986	for identifiers not in std::.
987
9882005-09-13  Mark Mitchell  <mark@codesourcery.com>
989
990	PR c++/23839
991	* typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
992	for VAR_DECLs.
993
9942005-09-13  Mark Mitchell  <mark@codesourcery.com>
995
996	PR c++/23842
997	* pt.c (tsubst_default_argument): Do treat default argument
998	expressions as occurring in the context of the function called.
999
10002005-09-12  Mark Mitchell  <mark@codesourcery.com>
1001
1002	PR c++/23841
1003	* parser.c (cp_parser_primary_expression): Recognize the closing
1004	">" of a template-argument-list after a floating-point literal as
1005	the end of a cast expression.
1006
10072005-09-12  Mark Mitchell  <mark@codesourcery.com>
1008
1009	PR c++/23789
1010	* cvt.c (perform_qualification_conversions): Don't create
1011	unnecessary NOP_EXPRs.
1012	* pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
1013
10142005-09-12  Ian Lance Taylor  <ian@airs.com>
1015
1016	PR g++/7874
1017	* cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
1018	bitfield.  Make dummy bitfield one bit smaller.
1019	(DECL_HIDDEN_FRIEND_P): Define.
1020	(pushdecl_maybe_friend): Declare.
1021	(pushdecl_top_level_maybe_friend): Declare.
1022	* decl.c (duplicate_decls): Add newdecl_is_friend parameter.
1023	Change prototype and all callers.  Add assertion that a
1024	DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P.  Set
1025	DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
1026	appropriate.
1027	* name-lookup.c (supplement_binding): Don't ignore a
1028	DECL_HIDDEN_FRIEND_P.
1029	(pushdecl_maybe_friend): Break out contents of pushdecl.  Add
1030	is_friend parameter.  Set DECL_ANTICIPATED and
1031	DECL_HIDDEN_FRIEND_P for a friend function.
1032	(pushdecl): Just call pushdecl_maybe_friend.
1033	(pushdecl_with_scope): Add is_friend parameter.  Change prototype
1034	and all callers.
1035	(pushdecl_namespace_level): Likewise.
1036	(push_overloaded_decl): Likewise.  Check DECL_HIDDEN_FRIEND_P as
1037	well as DECL_ANTICIPATED when checking for a builtin.
1038	(do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
1039	DECL_ANTICIPATED when checking for a builtin.
1040	(do_nonmember_using_decl): Likewise.
1041	(pushdecl_top_level_1): Add is_friend parameter.  Change all
1042	callers.
1043	(pushdecl_top_level_maybe_friend): New function.
1044	(remove_hidden_names): New function.
1045	(struct arg_lookup): Add args field.
1046	(friend_of_associated_class_p): New static function.
1047	(arg_assoc_namespace): Ignore hidden functions which are not
1048	friends of an associated class of some argument.
1049	(lookup_arg_dependent): Remove hidden functions from list passed
1050	in.  Initialize k.args.
1051	* name-lookup.h (remove_hidden_names): Declare.
1052	* friend.c (do_friend): Call pushdecl_maybe_friend instead of
1053	pushdecl.
1054	* call.c (add_function_candidate): Change DECL_ANTICIPATED test to
1055	an assertion, with a check for DECL_HIDDEN_FRIEND_P.
1056	(build_new_function_call): Add koenig_p parameter.  Change
1057	prototype and callers.
1058	* pt.c (register_specialization): Add is_friend parameter.  Change
1059	all callers.
1060	(push_template_decl_real): Change is_friend parameter to bool.
1061	Change prototype and all callers.
1062	(tsubst_friend_class): Call pushdecl_top_level_maybe_friend
1063	instead of pushdecl_top_level.
1064
10652005-09-11  Richard Henderson  <rth@redhat.com>
1066
1067	* decl2.c (build_anon_union_vars): Copy attributes from the base addr.
1068	* pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
1069
10702005-09-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1071
1072	* parser.c (cp_parser_translation_unit): Simplify.  The while-block
1073	was actually executed at most once.
1074
10752005-09-09  Richard Henderson  <rth@redhat.com>
1076
1077	PR debug/20998
1078	* cp-tree.def (ALIAS_DECL): Remove.
1079	* cp-lang.c (cp_init_ts): Remove support for it.
1080	* error.c (dump_decl): Likewise.
1081	* name-lookup.c (pushdecl): Likewise.
1082	* semantics.c (finish_id_expression): Likewise.
1083	* decl2.c (build_anon_union_vars): Use a VAR_DECL with
1084	DECL_VALUE_EXPR instead.
1085
10862005-09-09  Mark Mitchell  <mark@codesourcery.com>
1087
1088	PR c++/22252
1089	* decl.c (start_preparsed_function): Do not pay attention to
1090	#pragma interface for implicitly-defined methods.
1091	* decl2.c (cp_finish_file): Do not complain about uses of inline
1092	functions that have bodies, even if we decided not to emit the
1093	body in this translation unit.
1094	* semantics.c (note_decl_for_pch): Do not mess with linkage.
1095	(expand_or_defer_fn): Make inline, non-template functions COMDAT
1096	at this point.
1097
10982005-09-08  Richard Henderson  <rth@redhat.com>
1099
1100	PR debug/23190
1101	* decl.c (wrapup_globals_for_namespace): Call
1102	emit_debug_global_declarations.
1103	* decl2.c (cp_finish_file): Likewise.
1104
11052005-09-08  Mark Mitchell  <mark@codesourcery.com>
1106
1107	PR c++/23691
1108	* decl2.c (mark_used): Instantiate static data members initialized
1109	by constants, even in a template.
1110
11112005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
1112
1113	PR obj-c++/16816
1114	* parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
1115	two CPP_COLON.
1116
11172005-09-07  Richard Guenther  <rguenther@suse.de>
1118
1119	* cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
1120	for EMPTY_CLASS_EXPR.
1121
11222005-09-06  Jakub Jelinek  <jakub@redhat.com>
1123
1124	PR c/23075
1125	* typeck.c (check_return_expr): Add no_warning argument.  Set
1126	*no_warning to true if "return-statement with no value, in function
1127	returning" warning has been issued.
1128	* cp-tree.h (check_return_expr): Adjust prototype.
1129	* semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
1130	check_return_expr set *no_warning to true.
1131
11322005-09-06  Mark Mitchell  <mark@codesourcery.com>
1133
1134	* cp-tree.h (rvalue): New function.
1135	* call.c (build_conditional_expr): Use it.
1136	* init.c (build_new_1): Likewise.
1137	* rtti.c (build_dynamic_cast_1): Likewise.
1138	* tree.c (rvalue): New function.
1139	* typeck.c (build_unary_op): Use it.
1140	(build_static_cast_1): Likewise.
1141
1142	PR c++/9782
1143	* init.c (build_new_1): Make sure the entire array type is
1144	complete, not just its element types.
1145
11462005-09-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1147
1148	* decl.c (check_elaborated_type_specifier): Remove redundant check.
1149
11502005-09-06  Jakub Jelinek  <jakub@redhat.com>
1151
1152	PR c++/23056
1153	* typeck.c (ignore_overflows): New helper function.
1154	(build_static_cast_1): Use it.
1155
11562005-09-06  Kazu Hirata  <kazu@codesourcery.com>
1157
1158	* cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
1159	Follow spelling conventions.
1160
11612005-09-05  Mark Mitchell  <mark@codesourcery.com>
1162
1163	PR c++/23667
1164	* pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
1165	copying a VAR_DECL.
1166
11672005-09-05  Mark Mitchell  <mark@codesourcery.com>
1168
1169	PR c++/21440
1170	* semantics.c (finish_stmt_expr_expr): Add an explicit
1171	initialization to the last statement in the statement-expression.
1172	* (finish_stmt_expr): Adjust accordingly.
1173
11742005-09-03  Mark Mitchell  <mark@codesourcery.com>
1175
1176	PR c++/23699
1177	* decl2.c (mark_used): Always instantiate static data members
1178	initialized by constant expressions.
1179	* pt.c (instantiate_decl): Instantiate the initializers for static
1180	data members initialized by constant expressions.
1181
1182	PR c++/21687
1183	* semantics.c (expand_or_defer_fn): Do not call ggc_collect when
1184	finishing processing for a template function in a local class.
1185	Revert:
1186	2005-09-02  Mark Mitchell  <mark@codesourcery.com>
1187	* parser.c (cp_parser_class_specifier): Push/pop GC contexts
1188	around functions in local classes.
1189
11902005-09-02  Mark Mitchell  <mark@codesourcery.com>
1191
1192	PR c++/21687
1193	* parser.c (cp_parser_class_specifier): Push/pop GC contexts
1194	around functions in local classes.
1195
11962005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
1197
1198	PR obj-c++/23640
1199	* decl2.c (cp_finish_file): If this is obj-c++ and we need a static
1200	init, call generate_ctor_or_dtor_function.
1201
12022005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1203
1204	PR c++/13377
1205	* parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
1206	lookup_name_real on final parse.
1207
12082005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1209
1210	PR c++/23639
1211	* semantics.c (qualified_name_lookup_error): Do not complain again
1212	on invalid scope.
1213
12142005-08-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1215
1216	PR c++/23586
1217	* parser.c (cp_parser_namespace_name): Move diagnostic for
1218	invalid namespace-name to here from ...
1219	* name-lookup.c (do_namespace_alias): ... here and ...
1220	(do_using_directive): ... here.  Remove dead code.
1221
12222005-08-28  Mark Mitchell  <mark@codesourcery.com>
1223
1224	PR c++/23099
1225	* cp-tree.h (saved_scope): Add skip_evaluation.
1226	* decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
1227	DECL_INITIAL, to determine whether or not a static data member was
1228	initialized in the class-specifier.
1229	(cp_finish_decl): Add comment.
1230	* init.c (integral_constant_value): Subtitute into the
1231	initializers for static data members in	templates.
1232	* name-lookup.c (push_to_top_level): Save skip_evaluation.
1233	(pop_from_top_level): Restore it.
1234	* pt.c (instantiate_class_template): Do not substitute into the
1235	intializers of static data members when instantiating a class.
1236	(regenerate_decl_from_template): Simplify.
1237	(instantiate_decl): Tidy.  Substitute into the initializer for a
1238	static data member even when the definition of the data member is
1239	not available.
1240
12412005-08-26  Mark Mitchell  <mark@codesourcery.com>
1242
1243	PR c++/19004
1244	* pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
1245	(type_dependent_expression_p): Allow BASELINKs whose associated
1246	functions are simply a FUNCTION_DECL.
1247
1248	PR c++/23491
1249	* cp-tree.h (build_vec_init): Adjust prototype.
1250	* init.c (perform_member_init): Adjust call to build_vec_init.
1251	(build_aggr_init): Likewise.
1252	(build_new_1): Do not call build_default_init for array types.
1253	(build_vec_init): Add explicit_default_init_p parameter.  Perform
1254	default initialization of vector elements when set.
1255	* typeck.c (build_modify_expr): Adjust call to build_vec_init.
1256
12572005-08-25  Nathan Sidwell  <nathan@codesourcery.com>
1258
1259	PR c++/20817
1260	* typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
1261	->*.
1262
12632005-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1264
1265	PR c++/22454
1266	* parser.c (cp_lexer_peek_nth_token): Relax assert.
1267
12682005-08-23  Nathan Sidwell  <nathan@codesourcery.com>
1269
1270	PR c++/23044
1271	* pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
1272
12732005-08-22  James E Wilson  <wilson@specifix.com>
1274
1275	PR tree-optimization/23426
1276	* decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
1277	array size check.
1278
12792005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1280
1281	PR c++/22233
1282	* pt.c (push_template_decl_real): Return error_mark_node if the
1283	number of template parameters does not match previous definition.
1284
12852005-08-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1286
1287	PR c++/23089
1288	* decl.c (require_complete_types_for_parms): Mark incomplete types
1289	as invalid.
1290
12912005-08-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1292
1293	* parser.c (cp_parser_nth_token_starts_template_argument_list_p):
1294	Fix typo in leading comment.
1295
12962005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1297
1298	* name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
1299
13002005-08-15 Fariborz Jahanian <fjahanian@apple.com>
1301
1302	* cp-tree.h (can_convert_arg, fn_type_unification): New argument.
1303	* call.c (add_template_candidate_real): Pass down 'flags' to
1304	fn_type_unification.
1305	(can_convert_arg): New 'flags' argument. Pass it to call to
1306	implicit_conversion instead of LOOKUP_NORMAL.
1307	(can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
1308	* class.c (resolve_address_of_overloaded_function): Ditto.
1309	(resolve_address_of_overloaded_function): Ditto.
1310	* decl.c (reshape_init, check_default_argument): Ditto.
1311	* typeck.c (build_ptrmemfunc): Ditto.
1312	* pt.c (type_unification_real): Add 'flags' argument.
1313	(fn_type_unification): Pass 'flags' to type_unification_real.
1314	(type_unification_real): Pass new 'flags' argument to call to
1315	can_convert_arg.
1316
13172005-08-12  Giovanni Bajo  <giovannibajo@libero.it>
1318	    Nathan Sidwell  <nathan@codesourcery.com>
1319
1320	PR c++/21799
1321	PR c++/8271
1322	* pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
1323	explicitly.
1324
13252005-08-12  Nathan Sidwell  <nathan@codesourcery.com>
1326
1327	PR c++/21799
1328	Revert my 2005-07-08 patch
1329	* pt.c (type_unification_real): Remove is_method_argument and
1330	assoicated checks.
1331	(fn_type_unification, unify): Adjust type_unification_real calls.
1332
13332005-08-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1334
1335	PR c++/23266
1336	* decl2.c (grokfield): Check that method is not static before
1337	marking it as pure.
1338
13392005-08-11  Nathan Sidwell  <nathan@codesourcery.com>
1340
1341	PR c++/23219
1342	* name-lookup.c (pushtag): Process the template type before
1343	altering the identifier lookup fields.  Remove unreachable code
1344	creating an empty stub decl.
1345
13462005-08-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1347
1348	PR c++/20646
1349	* decl.c (grokdeclarator): Reset storage_class after error.
1350
13512005-08-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1352
1353	PR c++/22508
1354	* init.c (build_new_1): Check for empty candidate list.
1355
13562005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1357
1358	PR c++/23191
1359	* pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
1360	before calling build_exception_variant.
1361
13622005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1363
1364	PR c++/19498
1365	* pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
1366	if substitution of template args did not succeed.
1367
13682005-08-06  Michael Matz  <matz@suse.de>
1369
1370	* method.c (use_thunk): Call init_insn_lengths.
1371
13722005-08-05  James A. Morrison  <phython@gcc.gnu.org>
1373
1374	PR c++/22514
1375	* name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
1376	sorrycount or errorcount are nonzero.
1377
13782005-08-05  Mark Mitchell  <mark@codesourcery.com>
1379
1380	* name-lookup.c (pushtag): Remove accidental commit from:
1381	2004-12-21  Mark Mitchell  <mark@codesourcery.com>
1382	PR c++/19063
1383	* decl.c (grokdeclarator): Return error_mark_node, not
1384	void_type_node, to indicate errors.
1385	* parser.c (cp_parser_template_parameter_list): Robustify.
1386	(cp_parser_template_parameter): Likewise.
1387
13882005-08-01  Kazu Hirata  <kazu@codesourcery.com>
1389
1390	* class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
1391	Fix comment typos.
1392
13932005-07-29  Kazu Hirata  <kazu@codesourcery.com>
1394
1395	* method.c: Fix a comment typo.
1396
13972005-07-28  Mark Mitchell  <mark@codesourcery.com>
1398
1399	PR c++/22545
1400	* call.c (add_builtin_candidate): Adjust for changes in
1401	representation of pointer-to-member types.
1402
14032005-07-28  Mike Stump  <mrs@apple.com>
1404
1405	* pt.c (check_explicit_specialization): Add visibility logic.
1406	(lookup_template_class): Likewise.
1407	(instantiate_class_template): Likewise.
1408
14092005-07-27  Devang Patel  <dpatel@apple.com>
1410
1411	* name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
1412
14132005-07-25  Ian Lance Taylor  <ian@airs.com>
1414
1415	* ptree.c (cxx_print_identifier): Print a leading space if the
1416	indent level is 0.
1417
14182005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1419
1420	* call.c (convert_for_arg_passing): Check function pointers when
1421	-Wmissing-format-attribute is activated.
1422	* typeck.c (convert_for_assignment): Likewise.
1423
14242005-07-22  Manfred Hollstein  <mh@suse.com>
1425
1426	* parser.c (cp_parser_declaration): Fix unitialised warnings.
1427
14282005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
1429
1430	* class.c (build_base_path): Fix typo.
1431
14322005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
1433
1434	PR C++/22358
1435	* class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
1436
14372005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1438
1439	* call.c: Fix comment typo(s).
1440	* cxx-pretty-print.h: Likewise.
1441	* name-lookup.c: Likewise.
1442	* parser.c: Likewise.
1443
14442005-07-20  Douglas Gregor <doug.gregor@gmail.com>
1445
1446	PR c++/2922
1447	* semantics.c (perform_koenig_lookup): For dependent calls, just
1448	return the set of functions we've found so far. Later, it will be
1449	augmented by those found through argument-dependent lookup.
1450	* name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
1451	the optimization that skips namespaces where the functions were
1452	originally found.
1453
14542005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
1455
1456	Make CONSTRUCTOR use VEC to store initializers.
1457	* call.c (convert_default_arg): Update call to digest_init.
1458	* class.c (dump_class_hierarchy, dump_array): Update to cope with
1459	VEC in CONSTRUCTOR_ELTS.
1460	* cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
1461	(finish_compound_literal, digest_init): Update declaration.
1462	* decl.c (struct reshape_iter): New data type.
1463	(reshape_init_array): Rename to...
1464	(reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
1465	(reshape_init): Rewrite from scratch. Split parts into...
1466	(reshape_init_array, reshape_init_vector, reshape_init_class,
1467	reshape_init_r): New functions.
1468	(check_initializer): Update call to reshape_init. Remove obsolete
1469	code.
1470	(initialize_artificial_var, cp_complete_array_type): Update to cope
1471	with VEC in CONSTRUCTOR_ELTS.
1472	* decl2.c (grokfield): Update calls to digest_init.
1473	(mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
1474	* error.c (dump_expr_init_vec): New function.
1475	(dump_expr): Use dump_expr_init_vec.
1476	* init.c (build_zero_init, build_vec_init): Update to cope with VEC
1477	in CONSTRUCTOR_ELTS.
1478	(expand_default_init): Update call to digest_init.
1479	* parser.c  (cp_parser_postfix_expression): Use a VEC for the
1480	initializers.
1481	(cp_parser_initializer_list): Build a VEC of initializers.
1482	* pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
1483	in CONSTRUCTOR_ELTS.
1484	* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
1485	ptm_initializer, class_initializer, get_pseudo_ti_init): Use
1486	build_constructor_from_list instead of build_constructor.
1487	* semantics.c (finish_compound_literal): Update call to digest_init.
1488	* tree.c (stabilize_init): Update to cope with VEC in
1489	CONSTRUCTOR_ELTS.
1490	* typeck.c (build_ptrmemfunc1): Likewise.
1491	* typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
1492	Likewise.
1493	(store_init_value): Use build_constructor_from_list and update call
1494	to digest_init.
1495	(digest_init): Rewrite.
1496	(process_init_constructor): Rewrite from scratch. Split into...
1497	(process_init_constructor_array, picflag_from_initializer,
1498	process_init_constructor_record, process_init_constructor_union):
1499	New functions.
1500	(PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
1501	New macros.
1502	(build_functional_cast): Use build_constructor_from_list instead of
1503	build_constructor.
1504
15052005-07-18  Mark Mitchell  <mark@codesourcery.com>
1506
1507	PR c++/22263
1508	* cp-tree.h (instantiate_decl): Change prototype.
1509	* decl2.c (mark_used): Adjust accordingly.
1510	* pt.c (do_decl_instantiation): Likewise.
1511	(instantiate_class_member): Likewise.
1512	(instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
1513	Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
1514	that has no definition available.
1515	(instantiate_pending_templates): Adjust call to instantiate_decl.
1516
15172005-07-17  Mark Mitchell  <mark@codesourcery.com>
1518
1519	PR c++/22139
1520	* cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
1521	* decl.c (duplicate_decls): Re-register template specializations
1522	for functions that have DECL_TEMLPLATE_INFO, even if they do not
1523	have DECL_TEMPLATE_INSTANTIATION set.
1524
15252005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1526
1527	* call.c (diagnostic_fn_t): New.
1528	(build_temp, convert_like_real): Use diagnostic_fn_t.
1529
15302005-07-15  Mark Mitchell  <mark@codesourcery.com>
1531
1532	PR c++/22204
1533	* repo.c (repo_emit_p): Robustify.
1534
15352005-07-14  Daniel Berlin  <dberlin@dberlin.org>
1536
1537	Fix PR c++/22452
1538	* tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
1539
15402005-07-15  Mark Mitchell  <mark@codesourcery.com>
1541
1542	PR c++/22132
1543	* call.c (implicit_conversion): Add c_cast_p parameter.
1544	(standard_conversion): Likewise.  Allow conversions between
1545	differently-qualified pointer types when performing a C-style
1546	cast.
1547	(add_function_candidate): Adjust callee.
1548	(build_builtin_candidate): Likewise.
1549	(build_user_type_conversion_1): Likewise.
1550	(conditional_conversion): Likewise.
1551	(can_convert_arg): Likewise.
1552	(can_convert_arg_bad): Likewise.
1553	(perform_implicit_conversion): Likewise.
1554	* cp-tree.h (comp_ptr_ttypes_const): Declare.
1555	* typeck.c (comp_ptr_ttypes_const): Give it external linkage.
1556	Return bool.
1557
15582005-07-12  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1559	    Nathan Sidwell  <nathan@codesourcery.com>
1560
1561	PR c++/20172
1562	* pt.c (tsubst_template_parms): Check for invalid non-type
1563	parameters.
1564
15652005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
1566
1567	* cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
1568	decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
1569	(cp_init_ts): Call init_shadowed_var_for_decl.
1570	Remove include of gt-cp-cp-lang.h.
1571	* cp-objcp-common.c (shadowed_var_for_decl,
1572	decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
1573	cp-lang.c.
1574	(init_shadowed_var_for_decl): New function to initialize
1575	shadowed_var_for_decl.
1576	Include gt-cp-cp-objcp-common.h.
1577	* Make-lang.in (gt-cp-lang.h): Remove.
1578	(gt-cp-cp-objcp-common.h): Add.
1579	(cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
1580	(cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
1581	* config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
1582	* cp-tree (init_shadowed_var_for_decl): Add prototype.
1583
15842005-07-08  Daniel Berlin  <dberlin@dberlin.org>
1585
1586	* Make-lang.in: Add gt-cp-lang.h.
1587	(cp-lang.o): Ditto.
1588	* class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
1589	the field.
1590	* config-lang.in: Add cp-lang.c to gtfiles.
1591	* cp-lang.c: Include hashtab.h.
1592	(cp_init_ts): New function.
1593	(LANG_HOOK_INIT_TS): Use macro.
1594	(decl_shadowed_for_var_lookup): New function.
1595	(decl_shadowed_for_var_insert): Ditto.
1596	* cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
1597	(NON_THUNK_FUNCTION_CHECK): Ditto.
1598	(DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
1599	(DECL_INIT_PRIORITY): Ditto.
1600	(DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
1601	(DECL_SHADOWED_FOR_VAR): Use hashtable.
1602	(SET_DECL_SHADOWED_FOR_VAR): Ditto.
1603	* decl.c (duplicate_decls): Update for new/updated structures.
1604	(poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
1605	* decl2.c (start_static_initialization_or_destruction): Deal with
1606	priority.
1607	* pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
1608	SET_DECL_RTL.
1609	* tree.c (handle_init_priority_attribute): Handle priority.
1610
16112005-07-08  Nathan Sidwell  <nathan@codesourcery.com>
1612
1613	PR c++/21799
1614	* pt.c (type_unification_real): Add is_method argument.  Use it
1615	for this pointer unification.
1616	(fn_type_unification): Adjust type_unification_real call.
1617	(unify): Likewise.
1618
16192005-07-07  Nathan Sidwell  <nathan@codesourcery.com>
1620
1621	* pt.c (type_unification_real): Remove allow_incomplete argument.
1622	Remove unreachable code.
1623	(fn_type_unification): Adjust call to type_unification_real.
1624	(unify): Likewise.
1625
16262005-07-05  Paolo Bonzini  <bonzini@gnu.org>
1627
1628	* Makefile.in (class.o, decl2.o): Adjust dependencies.
1629	* class.c: Include tree-dump.h.
1630	* decl2.c: Include tree-dump.h.
1631
16322005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1633
1634	* dump.c: Use dump_string_field.
1635
16362005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
1637
1638	* cp-tree.h (GCC_DIAG_STYLE): #undef before defining.  Change
1639	minimum GCC version for format checking to 4.1.
1640
16412005-07-02  Kazu Hirata  <kazu@codesourcery.com>
1642
1643	* Make-lang.in (cc1plus-checksum.c): Use
1644	build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1645
16462005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
1647
1648	* name-lookup.c, parser.c: Use %q, %< and %> to quote in
1649	diagnostics.
1650
16512005-07-02  Zack Weinberg  <zack@codesourcery.com>
1652	    Joseph S. Myers  <joseph@codesourcery.com>
1653
1654	* error.c (location_of): Add comment.
1655	(locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
1656	* cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
1657	* call.c, class.c, decl.c, decl2.c, friend.c, init.c,
1658	name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
1659	typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
1660	or cp_pedwarn_at.  Mark up some diagnostic strings with N_.
1661
16622005-06-30  Daniel Berlin  <dberlin@dberlin.org>
1663
1664	* decl.c (require_complete_types_for_parms): Call relayout_decl
1665	instead of layout_decl.
1666
16672005-06-30  Zack Weinberg  <zack@codesourcery.com>
1668	    Jakub Jelinek  <jakub@redhat.com>
1669
1670	* cp-lang.c: No need to include cxx-pretty-print.h.
1671	* error.c (cp_printer): Update signature.  No need to process
1672	flags.
1673	(print_instantiation_partial_context): Output last newline
1674	with pp_base_newline.
1675	* Make-lang.in: Update dependencies.
1676
16772005-06-30  Steven Bosscher  <stevenb@suse.de>
1678
1679	* decl.c (start_decl): Replace DECL_THREAD_LOCAL with
1680	DECL_THREAD_LOCAL_P.
1681	(cp_finish_decl): Likewise.
1682	(grokvardecl): Set the default DECL_TLS_MODEL here.
1683
16842005-06-28  Joseph S. Myers  <joseph@codesourcery.com>
1685
1686	* cvt.c (ocp_convert): Use invalid_conversion hook.
1687	* typeck.c (build_binary_op): Use invalid_binary_op hook.
1688	(build_unary_op): Use invalid_unary_op hook.
1689
16902005-06-28  Paul Brook  <paul@codesourcery.com>
1691
1692	* Make-lang.in (cp/except.o): Depend on $(TARGET_H)
1693	* except.c: Include target.h.
1694	(init_exception_processing): Initialize unwind_resume_libfunc.
1695	* doc/tm.texi: Document TARGET_ASM_TTYPE
1696
16972005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1698
1699	* call.c (build_over_call): Pass in named argument list to
1700	`check_function_arguments'.
1701	* typeck.c (build_function_call): Likewise.
1702
17032005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1704
1705	* cp-tree.h (lang_check_failed): Add noreturn attribute.
1706
17072005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1708
1709	* all files: Update FSF address in copyright headers.
1710
17112005-06-23  Jason Merrill  <jason@redhat.com>
1712
1713	PR c++/19317
1714	* semantics.c (simplify_aggr_init_expr): Use
1715	CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
1716
17172005-06-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1718
1719	* pt.c (register_specialization): Remove superfluous assertion.
1720
17212005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1722
1723	* call.c (convert_like_real): Add format attribute.
1724	* typeck.c (check_for_casting_away_constness,
1725	build_static_cast_1): Likewise.
1726	* typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
1727	Likewise.
1728
17292005-06-17  Geoffrey Keating  <geoffk@apple.com>
1730
1731	PR c++/17413
1732	* pt.c (type_unification_real): Apply template type deduction even
1733	to procedure parameters that are not dependent on a template
1734	parameter.
1735
17362005-06-16  Nathan Sidwell  <nathan@codesourcery.com>
1737
1738	* rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
1739	change.
1740	(create_pseudo_type_info): First parameter is an int.
1741
17422005-06-15  Nathan Sidwell  <nathan@codesourcery.com>
1743
1744	PR c++/20678
1745	* error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
1746	null.
1747
1748	* Make-lang.in: Reformat some long lines.
1749	(gt-cp-rtti.h): New target.
1750	(cp/rtti.o): Add dependency.
1751	* config-lang.in (gtfiles): Add cp/rtti.c.
1752	* cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
1753	CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
1754	CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
1755	CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
1756	CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
1757	(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
1758	ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
1759	class_desc_type_node, si_class_desc_type_node,
1760	vmi_class_desc_type_node, ptm_desc_type_node,
1761	base_desc_type_node): Remove.
1762	* decl.c: Adjust documentation of global trees.
1763	* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
1764	TINFO_REAL_NAME): Remove.
1765	(struct tinfo_s): New.
1766	(enum tinfo_kind): New.
1767	(tinfo_descs): New.
1768	(get_tinfo_decl): Adjust use of tinfo descriptor.
1769	(tinfo_base_init, generic_initializer, ptr_initializer,
1770	ptm_initializer, class_initializer): Likewise.
1771	(get_pseudo_ti_init): Take descriptor index. Adjust.
1772	(create_pseudo_type_info): Likewise.
1773	(get_pseudo_ti_desc): Return descriptor index. Adjust.
1774	(create_tinfo_types): Adjust use of create_pseudo_type_info.
1775	(emit_tinfo_decl): Adjust use of tinfo descriptor.
1776
17772005-06-14  Roger Sayle  <roger@eyesopen.com>
1778
1779	* decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
1780
17812005-06-13  Geoffrey Keating  <geoffk@apple.com>
1782
1783	* Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
1784	(rule for installing g++.1 manpage): Does depend on installdirs.
1785
17862005-06-13  Nathan Sidwell  <nathan@codesourcery.com>
1787
1788	PR c++/20789
1789	* decl.c (cp_finish_decl): Clear runtime runtime initialization if
1790	in-class decl's initializer is bad.
1791
1792	PR c++/21929
1793	* parser.c (struct cp_parser): Document that scope could be
1794	error_mark.
1795	(cp_parser_diagnose_invalid_type_name): Cope with error_mark for
1796	scope.
1797	(cp_parser_nested_name_specifier): Return NULL_TREE on error.
1798	(cp_parser_postfix_expression): Deal with null or error_mark
1799	scope.
1800	(cp_parser_elaborated_type_specifier): Adjust
1801	cp_parser_nested_name_specifier call.
1802
1803	* parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
1804
18052005-06-12  Roger Sayle  <roger@eyesopen.com>
1806
1807	PR c++/21930
1808	* error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
1809	Treat CONVERT_EXPR identically to NOP_EXPR.
1810
18112005-06-10  Aldy Hernandez  <aldyh@redhat.com>
1812
1813	PR c++/10611
1814	* cvt.c (build_expr_type_conversion): Same.
1815	* typeck.c (build_binary_op): Handle vectors.
1816	(common_type): Same.
1817	(type_after_usual_arithmetic_conversions): Same.
1818
18192005-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1820
1821	PR c++/19497
1822	* cp-tree.def (USING_DECL): Update documentation.
1823	* cp-tree.h (DECL_DEPENDENT_P): New.
1824	(USING_DECL_DECLS, USING_DECL_SCOPE): New.
1825	* class.c (handle_using_decl): Move most of the processing to ...
1826	* name-lookup.c (do_class_using_decl): ... here.  Make stricter.
1827	(push_using_decl): Use USING_DECL_SCOPE.
1828	(cp_emit_debug_info_for_using): Make extern.
1829	* cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
1830	* name-lookup.h (cp_emit_debug_info_for_using): Declare.
1831	* pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
1832	when tsubsting.
1833	(tsubst_expr): Use USING_DECL_SCOPE.
1834	* search.c (lookup_field_1): Use DECL_DEPENDENT_P.
1835	* semantics.c (finish_member_declaration): Likewise.
1836
18372005-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1838
1839	PR c++/19894
1840	* pt.c (tsubst): Reject pointer-to-member of type void.
1841
1842	PR c++/20563
1843	* parser.c (cp_parser_label_declaration): Deal with invalid/missing
1844	identifiers.
1845
18462005-06-07  Nathan Sidwell  <nathan@codesourcery.com>
1847
1848	* cp-tree.def (DEFAULT_ARG): Adjust documentation.
1849	* cp-tree.h (DEFARG_INSTANTIATIONS): New.
1850	(struct tree_default_arg): Add instantiations member.
1851	* parser.c (cp_parser_late_parsing_default_args): Adjust to use a
1852	VEC.
1853	* pt.c (tsubst_arg_types): Likewise.
1854
1855	* parser.c (cp_parser_late_parsing_default_args): Fix overeager
1856	assert in previous patch.
1857
18582005-06-06  Jakub Jelinek  <jakub@redhat.com>
1859
1860	* error.c (locate_error): Use gmsgid instead of msgid for argument
1861	name.
1862	(cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
1863
18642005-06-06  Nathan Sidwell  <nathan@codesourcery.com>
1865
1866	PR 21903
1867	* cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
1868	* parser.c (cp_parser_late_parsing_default_args): Propagate parsed
1869	argument to any early instantiations.
1870	* pt.c (tsubst_arg_types): Chain early instantiation of default arg.
1871
1872	PR c++/20637
1873	* cp-tree.h (add_method): Add using_decl parameter.
1874	* class.c (add_method): Add using_decl parameter.  Adjust error
1875	messages.
1876	(handle_using_decl): Pass the using decl to add_method.
1877	(clone_function_decl): Adjust add_member calls.
1878	* decl2.c (check_classfn): Likewise.
1879	* method.c (lazily_declare_fn): Likewise.
1880	* semantics.c (finish_member_declaration): Likewise.
1881
1882	* method.c (synthesize_method): Use inform, not warning.
1883
18842005-06-06  Hans-Peter Nilsson  <hp@axis.se>
1885
1886	* config-lang.in (target_libs): Remove target-gperf.
1887
18882005-06-05  Mark Mitchell  <mark@codesourcery.com>
1889
1890	PR c++/21619
1891	* cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
1892	* parser.c (cp_parser_postfix_expression): Allow non-constant
1893	expressions as arguments to __builtin_constant_p.
1894	* tree.c (builtin_valid_in_constant_expr_p): Use
1895	DECL_IS_BUILTIN_CONSTANT_P.
1896
18972005-06-03  Mark Mitchell  <mark@codesourcery.com>
1898
1899	PR c++/21853
1900	* typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
1901	the pointed-to type for a pointer-to-member.
1902
1903	PR c++/21336
1904	* cp-tree.h (grok_op_properties): Remove friendp parameter.
1905	* decl.c (grokfndecl): Adjust call.
1906	(grok_op_properties): Determine the class of which the function is
1907	a member by looking at its DECL_CONTEXT, not current_class_type.
1908	* pt.c (tsubst_decl): Adjust call to grok_op_properties.
1909
19102005-06-02  Nathan Sidwell  <nathan@codesourcery.com>
1911
1912	* method.c (synthesize_method): Add addtional arg to warning call.
1913
1914	PR c++/21280
1915	* Make-lang.in (method.o): Add diagnostic.h
1916	* decl.c (start_preparsed_function): Use decl's location for file
1917	info.
1918	* decl2.c (cp_finish_file): Set input_location before synthesizing
1919	a function.
1920	(mark_used): When deferring a synthesized function, save current
1921	location.  Do not set function's location when actually
1922	synthesizing it.
1923	* method.c: #include diagnostic.h.
1924	(synthesize_method): Set the functions source location.  Show
1925	needed location if errors are emitted.
1926
1927	* decl.c (start_decl): Simplify specialization handling. Remove
1928	unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
1929	* mangle.c (discriminator_for_local_entity): Use VEC_index.
1930
1931	PR c++/20350
1932	* decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
1933
1934	PR c++/21151
1935	* name-lookup.c (pushtag): Push local class even in a template.
1936
19372005-05-31  Nathan Sidwell  <nathan@codesourcery.com>
1938
1939	PR c++/21165
1940	* init.c (integral_constant_value): Check the type of the
1941	initializer, not the decl.
1942
19432005-05-30  Mark Mitchell  <mark@codesourcery.com>
1944
1945	PR c++/21784
1946	* name-lookup.c (do_nonmember_using_decl): Ignore builtin
1947	functions, even	when the used name is not a function.
1948
19492005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1950
1951	* operators.def, optimize.c: Update copyright.
1952
19532005-05-28  Mark Mitchell  <mark@codesourcery.com>
1954
1955	PR c++/21210
1956	* call.c (standard_conversion): Permit conversions to complex
1957	types if conversion to the corresponding scalar type would be
1958	permitted.
1959
1960	PR c++/21340
1961	* method.c (implicitly_declare_fn): Clear processing_template_decl
1962	when generating implicit declaration.
1963
19642005-05-27  Mark Mitchell  <mark@codesourcery.com>
1965
1966	PR c++/21614
1967	* typeck.c (get_member_function_from_ptrfunc): Do not attempt
1968	conversions to base classes of incomplete types.
1969
19702005-05-27  Ian Lance Taylor  <ian@airs.com>
1971
1972	* semantics.c (add_stmt): Add C++ frontend specific version.
1973	* cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
1974	(stmts_are_full_exprs_p): Declare.
1975
19762005-05-27  Roger Sayle  <roger@eyesopen.com>
1977	    Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1978
1979	* cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
1980	* parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
1981	of CONVERT_EXPR.
1982	(cp_parser_unary_expression): Likewise.
1983	* typeck.c (build_unary_op): Likewise.
1984	* call.c (add_builtin_candidate, build_new_op): Likewise.
1985	* error.c (dump_expr): Likewise.
1986	* pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
1987	* decl.c (ambi_op_p, grok_op_properties): Likewise.
1988	* dump.c (dump_op): Likewise.
1989	* lex.c (init_operators): Likewise.
1990	* operators.def ("+"): Likewise.
1991	* cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
1992	conversion, if the result and argument types differ.
1993	* tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
1994	like a NOP_EXPR when !processing_template_decl.
1995
1996	* cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
1997	(pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
1998
19992005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
2000
2001	PR c++/21455
2002	* typeck.c (get_delta_difference): Cope with incomplete but equal
2003	classes.  Reorder if.
2004
2005	PR c++/21681
2006	* parser.c (cp_parser_late_parsing_for_member): Disable access
2007	checking for template functions.
2008
20092005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2010
2011	PR c++/21768
2012	* pt.c (redeclare_class_template): Change error message according
2013	to coding conventions.
2014
20152005-05-26  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2016
2017	* call.c (build_op_delete_call): Fix quoting in error message.
2018
20192005-05-25  Richard Henderson  <rth@redhat.com>
2020
2021	PR libgcj/21692
2022	* cp-tree.h (make_alias_for): Declare.
2023	* decl2.c (build_java_method_aliases): New.
2024	(cp_finish_file): Call it.
2025	* method.c (make_alias_for): Split out from ...
2026	(make_alias_for_thunk): ... here.
2027
20282005-05-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2029
2030	PR c++/21686
2031	* semantics.c (finish_id_expression): Fix quoting in error message.
2032
20332005-05-25  DJ Delorie  <dj@redhat.com>
2034
2035	* decl.c (duplicate_decls): Move warning control from if() to
2036	warning(OPT_*).
2037	* name-lookup.c (parse_using_directive): Likewise.
2038	* parser.c (cp_parser_elaborated_type_specifier): Likewise.
2039	(cp_parser_init_declarator): Likewise.
2040	* tree.c (handle_com_interface_attribute): Likewise.
2041
20422005-05-24  Ziemowit Laski  <zlaski@apple.com>
2043
2044	* class.c (layout_class_type): Do not issue C++ ABI warnings
2045	for ObjC structs.
2046	* decl.c (objc_mark_locals_volatile): Streamline by calling
2047	objc_volatilize_decl().
2048	* parser.c (cp_parser_objc_message_expression): Allow simple
2049	type specifiers (instead of merely type names) as message
2050	receivers.
2051	* pt.c (template_args_equal): Do not call objc_comptypes().
2052	* typeck.c (composite_pointer_type): If both pointers are
2053	ObjC-esque, arbitrarily choose the first; do not call
2054	objc_comptypes().
2055	(comptypes): Do not call objc_comptypes().
2056	(convert_for_assignment): Call objc_compare_types().
2057	(comp_ptr_ttypes_real): Call objc_type_quals_match() before
2058	concluding that types do not match.
2059
20602005-05-24  Andrew Pinski  <pinskia@physics.uc.edu>
2061
2062	PR C++/21645
2063	* optimize.c (update_cloned_parm): Copy the TYPE also from the
2064	original one.
2065
20662005-05-19  Jakub Jelinek  <jakub@redhat.com>
2067
2068	PR c++/21495
2069	* decl.c (grokdeclarator): Fix "storage class specified for"
2070	error reporting.
2071
20722005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
2073
2074	* parser.c: Fix comment typos.
2075
20762005-05-18  Geoffrey Keating  <geoffk@apple.com>
2077
2078	* Make-lang.in (cc1plus-dummy): New.
2079	(cc1plus-checksum.c): New.
2080	(cc1plus-checksum.o): New.
2081	(cc1plus): Add cc1plus-checksum.o.
2082
20832005-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2084
2085	PR C++/19664
2086	* decl2.c (determine_visibility): Don't set visibility to
2087	hidden if it has been set explicitly by user.
2088
20892005-05-17  Ziemowit Laski  <zlaski@apple.com>
2090	    Mike Stump  <mrs@apple.com>
2091
2092	Yet more Objective-C++...
2093
2094	* cp-objcp-common.h (cxx_get_alias_set): Move from
2095	here...
2096	(cxx_warn_unused_global_decl): Likewise.
2097	(cp_expr_size): Likewise.
2098	(cp_tree_size): Likewise.
2099	(cp_var_mod_type_p): Likewise.
2100	(cxx_initialize_diagnostics): Likewise.
2101	(cxx_types_compatible_p): Likewise.
2102	* cp-tree.h: to here.
2103	(do_poplevel): Add.
2104	* lex.c (D_OBJC): Add.
2105	(init_reswords): Add.
2106	* Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
2107	* parser.c: Add c-common.h include.
2108	* pt.c: Add c-common.h and cp-objcp-common.h includes.
2109	(template_args_equal): Use objc_comptypes as well.
2110	(tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
2111	* semantics.c (do_poplevel): Remove static.
2112
2113	* decl.c (objc_mark_locals_volatile): Don't change decls that are
2114	already ok.
2115	* decl2.c (generate_ctor_or_dtor_function): Add code to initialize
2116	Objective C++ early enough.
2117	* lex.c (struct resword reswords): Add Objective-C++ support.
2118	* parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
2119	(cp_parser_objc_message_receiver): Add.
2120	(cp_parser_objc_message_args): Likewise.
2121	(cp_parser_objc_message_expression): Likewise.
2122	(cp_parser_objc_encode_expression): Likewise.
2123	(cp_parser_objc_defs_expression): Likewise.
2124	(cp_parser_objc_protocol_expression): Likewise.
2125	(cp_parser_objc_selector_expression): Likewise.
2126	(cp_parser_objc_expression): Likewise.
2127	(cp_parser_objc_visibility_spec): Likewise.
2128	(cp_parser_objc_method_type): Likewise.
2129	(cp_parser_objc_protocol_qualifiers): Likewise.
2130	(cp_parser_objc_typename): Likewise.
2131	(cp_parser_objc_selector_p): Likewise.
2132	(cp_parser_objc_selector): Likewise.
2133	(cp_parser_objc_method_keyword_params): Likewise.
2134	(cp_parser_objc_method_tail_params_opt): Likewise.
2135	(cp_parser_objc_interstitial_code): Likewise.
2136	(cp_parser_objc_method_signature): Likewise.
2137	(cp_parser_objc_method_prototype_list): Likewise.
2138	(cp_parser_objc_method_definition_list): Likewise.
2139	(cp_parser_objc_class_ivars): Likewise.
2140	(cp_parser_objc_identifier_list): Likewise.
2141	(cp_parser_objc_alias_declaration): Likewise.
2142	(cp_parser_objc_class_declaration): Likewise.
2143	(cp_parser_objc_protocol_declaration): Likewise.
2144	(cp_parser_objc_protocol_refs_opt): Likewise.
2145	(cp_parser_objc_superclass_or_category): Likewise.
2146	(cp_parser_objc_class_interface): Likewise.
2147	(cp_parser_objc_class_implementation): Likewise.
2148	(cp_parser_objc_end_implementation): Likewise.
2149	(cp_parser_objc_declaration): Likewise.
2150	(cp_parser_objc_try_catch_finally_statement): Likewise.
2151	(cp_parser_objc_synchronized_statement): Likewise.
2152	(cp_parser_objc_throw_statement): Likewise.
2153	(cp_parser_objc_statement): Likewise.
2154	(cp_parser_primary_expression): Add Objective-C++.
2155	(cp_parser_statement): Likewise.
2156	(cp_parser_declaration): Likewise.
2157	(cp_parser_simple_type_specifier): Likewise.
2158	(cp_parser_type_name): Likewise.
2159	(cp_parser_parameter_declaration_list): Likewise.
2160	(cp_parser_member_declaration) Likewise.
2161	* tree.c: Include debug.h.
2162	* typeck.c (composite_pointer_type): Add Objective-C++ support.
2163	(finish_class_member_access_expr): Likewise.
2164	(build_function_call): Allow objc to rewrite FUNCTION_DECLs.
2165	(build_modify_expr): Allow objc to generate write barriers.
2166
2167	* Make-lang.in (cp/tree.o): Add debug.h.
2168	* tree.c (lvalue_p_1, case CONST_DECL): Add.
2169
21702005-05-18  Jan Hubicka  <jh@suse.cz>
2171
2172	* method.c: Include tree-pass.h
2173	(use_thunk): Lower body before expanding.
2174
21752005-05-17  Jakub Jelinek  <jakub@redhat.com>
2176
2177	PR c++/21454
2178	* decl.c (maybe_deduce_size_from_array_init): Call
2179	cp_apply_type_quals_to_decl after completing array type.
2180
21812005-05-16  Richard Henderson  <rth@redhat.com>
2182
2183	* decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
2184	(build_library_fn): ... here.
2185
21862005-05-12  Ian Lance Taylor  <ian@airs.com>
2187
2188	* cp-tree.h (cp_stmt_codes): Don't define.
2189	(statement_code_p): Declare.
2190	(STATEMENT_CODE_P): Define.
2191	* lex.c (statement_code_p): Define.
2192	(cxx_init): Use actual codes in stmt_codes initializer, not
2193	cp_stmt_codes macro.  Initialize statement_code_p directly, rather
2194	than using INIT_STATEMENT_CODES.
2195
21962005-05-09  Mark Mitchell  <mark@codesourcery.com>
2197
2198	* typeck.c (build_unary_op): Do not resort to address arithmetic
2199	when taking the address of a COMPONENT_REF.
2200
22012005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2202
2203	* class.c (vtbl_init_data_s): Change the type of fns to
2204	VEC(tree,gc)*.
2205	(build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
2206	Use VEC instead of VARRAY.
2207
22082005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2209
2210	* mangle.c: Remove a reference to the MIPS -mint64 option.
2211
22122005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2213
2214	* decl.c (wrapup_globals_for_namespace): Use VEC instead of
2215	VARRAY.
2216	* name-lookup.c (add_decl_to_level, begin_scope): Likewise.
2217	* name-lookup.h (cp_binding_level): Change the type of
2218	static_decls to VEC(tree,gc)*.
2219
2220	* mangle.c (globals): Change the type of substitutions to
2221	VEC(tree,gc)*.
2222	(dump_substitution_candidates, add_substitution,
2223	find_substitution, finish_mangling, init_mangle): Use VEC
2224	instead of VARRAY.
2225
22262005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
2227
2228	* decl2.c (spew_debug): Remove.
2229
2230	* decl2.c (ssdf_decls, start_static_storage_duration_function,
2231	generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
2232
2233	* decl2.c (pending_statics, note_vague_linkage_var,
2234	cp_finish_file): Use VEC instead of VARRAY.
2235	(pending_statics_used): Remove.
2236
22372005-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2238
2239	* decl2.c (deferred_fns, note_vague_linkage_fn,
2240	cp_finish_file): Use VEC instead of VARRAY.
2241
22422005-05-05  Mark Mitchell  <mark@codesourcery.com>
2243
2244	PR c++/21352
2245	* pt.c (build_non_dependent_expr): Use is_overloaded_fn.
2246
22472005-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2248
2249	* pt.c: Fix a comment typo.
2250
22512005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2252
2253	* cp-tree.h (language_function): Change the type of
2254	x_local_names to VEC.
2255	* decl.c (push_local_name): Adjust uses of local_names.
2256
22572005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2258
2259	* friend.c, lex.c, mangle.c, repo.c: Update copyright.
2260
22612005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2262
2263	* class.c (local_classes, init_class_processing): Use VEC
2264	instead of VARRAY.
2265	* cp-tree.h (local_classes): Likewise.
2266	* mangle.c (discriminator_for_local_entity): Likewise.
2267	* name-lookup.c (pushtag): Likewise.
2268
2269	* class.c (current_lang_depth, push_lang_context,
2270	pop_lang_context): Use VEC instead of VARRAY.
2271	* cp-tree.h (saved_scope): Use VEC for lang_base instead of
2272	VARRAY.
2273	* name-lookup.c (push_to_top_level): Use VEC instead of
2274	VARRAY.
2275
22762005-05-02  Paolo Bonzini  <bonzini@gnu.org>
2277
2278	* semantics.c (finish_call_expr): Call resolve_overloaded_builtin
2279	for BUILT_IN_MD built-ins.
2280
22812005-05-02  Michael Matz  <matz@suse.de>
2282
2283	PR c++/19542
2284	* cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
2285	common frontend.
2286	(null_node): Remove.
2287	* lex.c (cxx_init): Move null_node initialisation to C common frontend.
2288
22892005-04-25  Ian Lance Taylor  <ian@airs.com>
2290
2291	* cp-tree.def: Add EXPR_STMT.
2292	* cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
2293	(EXPR_STMT_EXPR): Define.
2294	* cp-gimplify.c: Include "flags.h".
2295	(gimplify_expr_stmt): New static function.
2296	(cp_gimplify_expr): Handle EXPR_STMT.
2297	* cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
2298	rather than pp_expression.
2299	(pp_cxx_statement): Handle EXPR_STMT.
2300	* dump.c (cp_dump_tree): Handle EXPR_STMT.
2301	* lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
2302	initializer.
2303
23042005-04-25  Andrew Pinski  <pinskia@physics.uc.edu>
2305
2306	PR C++/21188
2307	* rtti.c (ifnonnull): Cast the zero comparison operand
2308	to the correct type.
2309
23102005-04-24  Jakub Jelinek  <jakub@redhat.com>
2311
2312	PR middle-end/20991
2313	* class.c: Include cgraph.h.
2314	(cp_fold_obj_type_ref): Set node->local.vtable_method.
2315	* Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
2316
23172005-04-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
2318
2319	* mangle.c (write_builtin_type): Handle integer types which are
2320	not one of the shared integer type nodes and emit a "vendor
2321	extended builtin type" with an encoding in the form of "u5int96".
2322
23232005-04-24  Ian Lance Taylor  <ian@airs.com>
2324
2325	* cp-tree.def (USING_STMT): Change class to tcc_statement.
2326	(TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
2327	(IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
2328	(BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
2329
23302005-04-23  DJ Delorie  <dj@redhat.com>
2331
2332	* call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
2333	init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
2334	repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
2335	callers.
2336
23372005-04-22  Per Bothner  <per@bothner.com>
2338
2339	* decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
2340	input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
2341
23422005-04-22  Alexandre Oliva  <aoliva@redhat.com>
2343
2344	PR c++/21087
2345	* name-lookup.c (push_overloaded_decl): Do not overload with
2346	non-duplicate anticipated built-in.
2347
23482005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
2349
2350	* cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
2351	VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
2352
23532005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2354
2355	* cp-tree.h: Adjust for new VEC API.
2356	Define VEC(tree_pair_s,gc).
2357	(struct save_scope): Adjust.
2358	(struct lang_type_class): Adjust.
2359	(unemitted_tinfo_decls): Adjust.
2360	* class.c (add_method, resort_type_method_vec,
2361	finish_struct_methods, struct find_final_overrider_data,
2362	dfs_find_final_overrider_pre, find_final_overrider,
2363	get_vcall_index, warn_hidden, walk_subobject_offsets,
2364	check_methods, fixup_inline_methods, end_of_class,
2365	warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
2366	add_vcall_offset): Adjust.
2367	* decl.c (xref_basetypes, finish_method): Adjust.
2368	* decl2.c (check_classfn): Adjust.
2369	* init.c (sort_mem_initializers, push_base_cleanups): Adjust.
2370	* method.c (do_build_copy_constructor): Adjust.
2371	* name-lookup.c (new_class_binding, store_binding,
2372	store_bindings, store_class_bindings): Adjust.
2373	* name-lookup.h: Define VEC(cxx_saved_binding,gc),
2374	VEC(cp_class_binding,gc).
2375	(struct cp_binding_level): Adjust.
2376	* parser.c: Define VEC(cp_token_position,heap).
2377	(struct cp_lexer): Adjust.
2378	(cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
2379	cp_lexer_save_tokens): Adjust.
2380	* pt.c (retrieve_specialization,
2381	check_explicit_specialization): Adjust.
2382	* rtti.c (unemitted_tinfo_decls): Adjust.
2383	(init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
2384	get_pseudo_ti_desc): Adjust.
2385	* search.c (dfs_access_in_type, lookup_conversion_operator,
2386	lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
2387	dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
2388	* semantics.c: Define VEC(deferred_access,gc).
2389	(push_deferring_access_checks): Adjust.
2390	* typeck2.c (abstract_virtuals_error): Adjust.
2391
23922005-04-20  Ian Lance Taylor  <ian@airs.com>
2393
2394	* cp-tree.def: Add STMT_EXPR.
2395	* cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
2396	(STMT_EXPR_STMT): Define.
2397	* cxx-pretty-print.c (pp_cxx_primary_expression): Handle
2398	STMT_EXPR.
2399	(pp_cxx_expression): Likewise.
2400	(pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
2401	* dump.c (cp_dump_tree): Handle STMT_EXPR.
2402
24032005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
2404
2405	* decl.c (expand_static_init): Call build2 and build3 instead
2406	of build.
2407
2408	* cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
2409
24102005-04-17  Ian Lance Taylor  <ian@airs.com>
2411
2412	* cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
2413	* cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
2414	ARROW_EXPR.
2415	(pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
2416	(pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
2417	ALIGNOF_EXPR.
2418	* typeck.c (cxx_sizeof_or_alignof_type): Update call to
2419	c_sizeof_or_alignof_type for change in parameter type.
2420
24212005-04-16  Mark Mitchell  <mark@codesourcery.com>
2422
2423	PR c++/21025
2424	* typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
2425	which sizeof/alignof is dependent, rather than just whether we are
2426	processing_template_decl.
2427
24282005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2429
2430	* cp-tree.h (LOOKUP_GLOBAL): Remove.
2431	(LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
2432	LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
2433	LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
2434	their values.
2435
24362005-04-15  Richard Henderson  <rth@redhat.com>
2437
2438	PR middle-end/14311
2439	* semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
2440
24412005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2442
2443	* cp-tree.h (lang_type_class): Remove redefined.  Move
2444	java_interface into where redefined was.  Increment the width
2445	of dummy.
2446	(TYPE_REDEFINED): Remove.
2447
24482005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2449
2450	* cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
2451	CLASSTYPE_TEMPLATE_LEVEL): Remove.
2452
24532005-04-11  Mark Mitchell  <mark@codesourcery.com>
2454
2455	* decl2.c (determine_visibility): Don't use export_class_data.
2456	(import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
2457	TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
2458
24592005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
2460
2461	* cp-tree.h (cxx_alignof): Remove.
2462
2463	* cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
2464
2465	* cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
2466	CONV_STATIC_CAST): Remove.
2467
2468	* pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
2469
2470	* cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
2471
2472	* cp-tree.h (cp_deprecated): Remove.
2473
24742005-04-08  Ian Lance Taylor  <ian@airs.com>
2475
2476	* cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
2477	CONTINUE_STMT, SWITCH_STMT.
2478	* cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
2479	BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
2480	(WHILE_COND, WHILE_BODY): Define.
2481	(DO_COND, DO_BODY): Define.
2482	(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
2483	(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
2484	* cp-gimplify.c (enum bc_t): Define.
2485	(struct cp_gimplify_ctx, ctxp): Define.
2486	(push_context, pop_context): New static functions.
2487	(begin_bc_block, finish_bc_block): New static functions.
2488	(build_bc_goto): New static function.
2489	(gimplify_cp_loop, gimplify_for_stmt): New static functions.
2490	(gimplify_while_stmt, gimplify_do_stmt): Likewise.
2491	(gimplify_switch_stmt): Likewise.
2492	(cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
2493	SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
2494	(cp_genericize): Call push_context and pop_context.
2495	* semantics.c (finish_break_stmt): Just call build_stmt
2496	(BREAK_STMT) rather than build_break_stmt.
2497	(finish_continue_stmt): Corresponding change.
2498	* decl.c (pop_switch): Update call to c_do_switch_warnings for new
2499	parameters.
2500	* cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
2501	WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
2502	* dump.c (cp_dump_tree): Likewise.
2503
25042005-04-08  Mark Mitchell  <mark@codesourcery.com>
2505
2506	PR c++/20905
2507	* parser.c (cp_parser_type_specifier_seq): Add is_condition
2508	parameter.
2509	(cp_parser_new_type_id): Pass it.
2510	(cp_parser_condition): Likewise.
2511	(cp_parser_conversion_type_id): Likewise.
2512	(cp_parser_type_id): Likewise.
2513	(cp_parser_type_specifier_seq): In a condition, do not allow
2514	invalid type-specifier combinations.
2515	(cp_parser_exception_declaration): Adjust call to
2516	cp_parser_type_specifier_seq.
2517
2518	* cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
2519	* cp-tree.h (struct tinst_level): Add in_system_header_p.
2520	(TINST_IN_SYSTEM_HEADER_P): New macro.
2521	(make_tinst_level): Remove.
2522	* pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
2523	the instantiated class.
2524	(push_tinst_level): Do not use make_tinst_level.  Set
2525	TINST_IN_SYSTEM_HEADER_P.
2526	(pop_tinst_level): Likewise.
2527	(instantiate_class_template): Set in_system_header.
2528	(instantiate_pending_templates): Likewise.
2529	* tree.c (make_tinst_level): Remove.
2530
25312005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
2532
2533	* decl.c (start_decl): Apply pending #pragma weak regardless of
2534	scope.
2535
25362005-04-06  Mark Mitchell  <mark@codesourcery.com>
2537
2538	PR c++/20212
2539	* pt.c (regenerate_decl_from_template): Copy attributes for
2540	parameters from the pattern to the instantiation.
2541
25422005-04-05  Mark Mitchell  <mark@codesourcery.com>
2543
2544	PR c++/20734
2545	* cp-tree.def (OFFSET_REF): Correct comments.
2546	* init.c (build_offset_ref): Remove misleading comment.
2547	* typeck.c (build_unary_op): Handle pointer-to-member creation
2548	here, rather than ...
2549	(unary_complex_lvalue): ... here.
2550
25512005-04-06  Jason Merrill  <jason@redhat.com>
2552
2553	PR c++/19312
2554	* tree.c (stabilize_init): Don't bother trying to stabilize
2555	something with no side-effects.
2556
25572005-04-05  Mark Mitchell  <mark@codesourcery.com>
2558
2559	PR c++/20763
2560	* decl.c (grokdeclarator): Correct attribute handling.
2561
25622005-04-05  Mark Mitchell  <mark@codesourcery.com>
2563
2564	PR c++/19159
2565	* decl2.c (import_export_decl): Use non-COMDAT external linkage
2566	for virtual tables, typeinfo, etc. that will be emitted in only
2567	one translation unit on systems without weak symbols.
2568
25692005-04-04  Mark Mitchell  <mark@codesourcery.com>
2570
2571	PR c++/20679
2572	* parser.c (cp_parser_template_name): Fix thinko.
2573
25742005-04-04  Nathan Sidwell  <nathan@codesourcery.com>
2575
2576	PR c++/20746
2577	* method.c (use_thunk): Protect covariant pointer return
2578	adjustments from NULL pointers.
2579
25802005-04-04  Jan Hubicka  <jh@suse.cz>
2581
2582	* decl2.c (finish_objects): Revert my previous patch.
2583	(cp_finish_file): Likewise.
2584
25852005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
2586
2587	* pt.c: Fix comment typos.
2588
25892005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
2590
2591	PR c++/20723
2592	* pt.c (more_specialized_fn): Member functions are unordered wrt
2593	non-members.  Conversion operators are unordered wrt other
2594	functions.
2595
25962005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
2597
2598	* call.c (add_template_candidates_real): Remove length parameter
2599	from fn_type_unification call.
2600	* class.c (resolve_address_of_overloaded_function): Likewise
2601	* cp-tree.h (fn_type_unification): Remove length parameter.
2602	* pt.c (get_bindings_overload): Remove.
2603	(get_bindings_real): Rename to ...
2604	(get_bindings): ... here.  Remove length and strict
2605	parameters. Change return type flag to boolean.  Remove original
2606	forwarding function.
2607	(determine_specialization): Adjust get_bindings call.
2608	(fn_type_unification): Remove length parameter.  Adjust.
2609	(type_unification_real): Remove length parameter.  Adjust.
2610	(resolve_overloaded_unification): Adjust get_bindings call.
2611	(try_one_overload): Simplify confusing cascaded if control flow.
2612	(unify): Remove length paramter from type_unification_real call.
2613	(most_specialized_instantiation): Adjust get_bindings calls.
2614	(most_specialized): Likewise.
2615
26162005-03-31  Nathan Sidwell  <nathan@codesourcery.com>
2617
2618	PR c++/19203, implement DR 214
2619	* call.c (joust): Use more_specialized_fn.
2620	* cp-tree.h (DEDUCE_ORDER): Remove.
2621	(more_specialized): Replace with ...
2622	(more_specialized_fn): ... this.
2623	* pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
2624	case.
2625	(type_unification_real): Remove DEDUCE_ORDER case.
2626	(more_specialized): Replace with ...
2627	(more_specialized_fn): ... this.  Implement DR 214.
2628	(most_specialized_instantiation): Use get_bindings_real directly.
2629
26302005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2631
2632	PR c++/18644
2633	* call.c (build_new_op): Remove check for -Wsynth.
2634
26352005-03-31  Jan Hubicka  <jh@suse.cz>
2636
2637	* decl2.c (finish_objects): Mark ctor as needed.
2638	(cp_finish_file): Output variables only in nonunit-at-a-time.
2639
26402005-03-29  Richard Henderson  <rth@redhat.com>
2641
2642	PR c/20519
2643	* decl.c (cp_complete_array_type): Rename from complete_array_type.
2644	Use the new complete_array_type in c-common.c.  Update all callers.
2645	* cp-tree.h (cp_complete_array_type): Update to match.
2646
26472005-03-24  Geoffrey Keating  <geoffk@apple.com>
2648
2649	* typeck.c (build_static_cast_1): Allow scalar_cast between
2650	any integral, floating, or enumeration type.
2651
26522005-03-24  Steven Bosscher  <stevenb@suse.de>
2653
2654	* typeck.c (comptypes): First determine if the types are compatible
2655	from a target-independent point of view.  Check target attributes
2656	last.
2657
2658	* class.c (build_base_path):
2659	(build_vbase_offset_vtbl_entries):
2660	(add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
2661	* error.c (dump_expr): Likewise.
2662	* init.c (build_zero_init, expand_cleanup_for_base,
2663	build_vec_delete_1): Likewise.
2664	* mangle.c (write_integer_cst): Likewise.
2665	* method.c (thunk_adjust): Likewise.
2666	* pt.c (convert_nontype_argument, tsubst, unify): Likewise.
2667	* tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
2668	* typeck.c (build_ptrmemfunc_access_expr,
2669	(get_member_function_from_ptrfunc): Likewise.
2670
26712005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2672
2673	* cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2674
26752005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2676
2677	* cp-tree.h (perform_integral_promotions): Remove.
2678	(default_conversion): Add.
2679
26802005-03-22  Mark Mitchell  <mark@codesourcery.com>
2681
2682	* parser.c (cp_parser_warn_min_max): New function.
2683	(cp_parser_binary_expression): Use it.
2684	(cp_parser_assignment_operator_opt): Likewise.
2685	(cp_parser_operator): Likewise.
2686
26872005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2688
2689	PR c++/19980
2690	* decl.c (start_preparsed_function): Robustify.
2691
26922005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2693
2694	PR c++/20499
2695	* parser.c (cp_parser_class_head): Return NULL_TREE when
2696	encountering a redefinition.
2697
26982005-03-22  Nathan Sidwell  <nathan@codesourcery.com>
2699
2700	PR c++/20465
2701	PR c++/20381
2702	* typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
2703	template.
2704
27052005-03-21  Paolo Carlini  <pcarlini@suse.de>
2706
2707	PR c++/20461
2708	PR c++/20536
2709	* init.c (emit_mem_initializers): Don't crash on undefined
2710	types.
2711
27122005-03-21  Paolo Carlini  <pcarlini@suse.de>
2713
2714	PR c++/20147
2715	* semantics.c (finish_stmt_expr_expr): Return immediately
2716	if error_operand_p (expr).
2717
27182005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
2719
2720	* cp-tree.h (lvalue_or_else, lvalue_p): New.
2721	* typeck.c (lvalue_or_else): New.  Call lvalue_error.
2722
27232005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2724
2725	PR c++/20240
2726	* decl.c (decls_match): Compare context of VAR_DECL.
2727
27282005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2729
2730	PR c++/20333
2731	* parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
2732	Check the return value of cp_parser_nested_name_specifier.
2733
27342005-03-18  Dale Johannesen <dalej@apple.com>
2735
2736	* cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
2737
27382005-03-18  Paolo Carlini  <pcarlini@suse.de>
2739
2740	PR c++/20463
2741	* parser.c (cp_parser_diagnose_invalid_type_name):
2742	Check TYPE_BINFO (current_class_type) before attempting
2743	to emit inform messages.
2744
27452005-03-17  Paolo Carlini  <pcarlini@suse.de>
2746
2747	PR c++/19966
2748	* cp-tree.h (grok_op_properties): Change return type to void.
2749	* decl.c (grok_op_properties): Return early - don't check the
2750	arity - in case of a static member or an operator that cannot
2751	be non-member; tidy a bit.
2752
27532005-03-17  Nathan Sidwell  <nathan@codesourcery.com>
2754
2755	PR c++/20186
2756	* pt.c (contains_dependent_cast_p): Remove.
2757	(fold_non_dependent_expr): Don't use it.
2758	(value_dependent_expression_p): Use a switch statement.
2759	reference_exprs can be dependent.
2760
27612005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2762
2763	PR c++/4403
2764	PR c++/9783, DR433
2765	* name-lookup.c (pushtag): Skip template parameter scope when
2766	scope is ts_global.  Don't push tag into template parameter
2767	scope.
2768	* pt.c (instantiate_class_template): Reorder friend class
2769	template substitution to handle non-dependent friend class
2770	that hasn't been previously declared.
2771
27722005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2773
2774	Friend class name lookup 5/n
2775	PR c++/1016
2776	* cp-tree.h (pushtag): Adjust declaration.
2777	* decl.c (lookup_and_check_tag): Call lookup_type_scope if
2778	lookup_name fails.
2779	(xref_tag): Adjust call to pushtag.  Make hidden class visible.
2780	(start_enum): Adjust call to pushtag.
2781	* name-lookup.c (ambiguous_decl): Ignore hidden names.
2782	(qualify_lookup): Change return type to bool.
2783	(hidden_name_p): New function.
2784	(lookup_namespace_name, unqualified_namespace_lookup,
2785	lookup_name_real): Use it.
2786	(lookup_type_scope): Update comments.
2787	(maybe_process_template_type_declaration): Change parameter name
2788	from globalize to is_friend.
2789	(pushtag): Change globalize parameter of type int to tag_scope.
2790	Hide name if introduced by friend declaration.
2791	* name-lookup.h (hidden_name_p): Add declaration.
2792	* parser.c (cp_parser_lookup_name): Don't deal with hidden name
2793	here.
2794	* pt.c (push_template_decl_real): Make hidden class template
2795	visible.
2796	(lookup_template_class, instantiate_class_template): Adjust call
2797	to pushtag.
2798	* semantics.c (begin_class_definition): Likewise.
2799	* rtti.c (init_rtti_processing, build_dynamic_cast_1,
2800	tinfo_base_init, emit_support_tinfos): Use ts_current instead of
2801	ts_global.
2802
28032005-03-13  Mark Mitchell  <mark@codesourcery.com>
2804
2805	PR c++/20157
2806	* pt.c (determine_specialization): Reject non-specializations.
2807
28082005-03-11  Per Bothner  <per@bothner.com>
2809
2810	* cp-tree.h (struct cp_declarator): New id_loc field.
2811	* cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
2812	location using c_lex_with_flags, instead of input_location.
2813	(cp_parser_direct_declarator): Set declarator's id_loc from
2814	cp_token's id_loc.
2815
28162005-03-10  Jakub Jelinek  <jakub@redhat.com>
2817
2818	PR c++/18384, c++/18327
2819	* decl.c (reshape_init_array): Use UHWI type for max_index_cst
2820	and index.  Convert max_index to size_type_node if it isn't
2821	host_integerp (, 1).
2822
28232005-03-09  Mark Mitchell  <mark@codesourcery.com>
2824
2825	PR c++/20208
2826	* pt.c (tsubst_decl): Apply array-to-pointer and
2827	function-to-pointer conversions to function arguments.
2828	(regenerate_decl_from_template): Likewise.
2829
28302005-03-09  Paolo Carlini  <pcarlini@suse.de>
2831
2832	PR c++/16859
2833	* decl.c (complete_array_type): In pedantic mode, return
2834	3 for an empty initializer list as the initializer for an
2835	array of unknown bound (8.5.1/4).
2836	(maybe_deduce_size_from_array_init): Fix final test to use
2837	the above.
2838
28392005-03-08  Nathan Sidwell  <nathan@codesourcery.com>
2840
2841	PR c++/20186
2842	* pt.c (contains_dependent_cast_p): New.
2843	(fold_non_dependent_expr): Call it.
2844
28452005-03-08  Mark Mitchell  <mark@codesourcery.com>
2846
2847	PR c++/20142
2848	* cp-tree.h (target_type): Remove.
2849	* decl.c (layout_var_decl): Remove #if 0'd code.
2850	(cp_finish_decl): Remove dead code.
2851	* init.c (build_vec_init): When determining whether or not the
2852	element type has an asignment operator, look through all array
2853	dimensions.
2854	* typeck.c (target_type): Remove.
2855
28562005-03-07  Mark Mitchell  <mark@codesourcery.com>
2857
2858	* class.c (finish_struct_1): Do not warn about non-virtual
2859	destructors in Java classes.
2860
28612005-03-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2862
2863	PR c++/19311
2864	* init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
2865	* pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
2866	for OFFSET_TYPE.
2867	* typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
2868	Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
2869	(build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
2870	template.
2871
28722005-03-02  Alexandre Oliva  <aoliva@redhat.com>
2873
2874	* name-lookup.c (push_overloaded_decl): Don't error if the new
2875	decl matches the old one.
2876	* decl.c (redeclaration_error_message): Likewise.
2877
28782005-03-01  Per Bothner  <per@bothner.com>
2879
2880	* decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2881	unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2882
28832005-03-01  Nathan Sidwell  <nathan@codesourcery.com>
2884
2885	PR c++/20232
2886	* class.c (update_vtable_entry_for_fn): Don't crash on invalid
2887	covariancy.
2888
2889	* cp-tree.g (THUNK_TARGET): Expand comment.
2890	* method.c (use_thunk): Make sure we also use the target, if that
2891	is a thunk.
2892
28932005-02-27  Jakub Jelinek  <jakub@redhat.com>
2894
2895	PR c++/20206
2896	* decl.c (cxx_comdat_group): Put thunks for
2897	TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
2898	comdat group as the thunk target.
2899
29002005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2901
2902	* call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
2903	parser.c: Fix comment typo(s).
2904
29052005-02-24  Jakub Jelinek  <jakub@redhat.com>
2906
2907	PR c++/20175
2908	* decl.c (reshape_init): Don't warn about missing braces if STRING_CST
2909	initializes a char/wchar_t array.
2910
29112005-02-23  Mark Mitchell  <mark@codesourcery.com>
2912
2913	PR c++/19878
2914	* decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
2915	with internal linkage.
2916
29172005-02-23  Alexandre Oliva  <aoliva@redhat.com>
2918
2919	* decl.c (grokvardecl): Don't exempt anonymous types from having
2920	linkage for variables that have linkage other than "C".
2921
29222005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
2923
2924	* cp-objcp-common.h, error.c: Update copyright.
2925
29262005-02-22  Mark Mitchell  <mark@codesourcery.com>
2927
2928	PR c++/20073
2929	* decl.c (start_decl_1): Don't clear TREE_READONLY.
2930	(cp_finish_decl): Likewise.
2931	(complete_vars): Call cp_apply_type_quals_to_decl.
2932	* typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
2933	cases where that's not valid.
2934
2935	PR c++/19991
2936	* init.c (integral_constant_value): Iterate if the value of a decl
2937	is itself a constant.
2938
2939	PR c++/20152
2940	* parser.c (cp_parser_class_head): Check for redefintions here.
2941	* semantics.c (begin_class_definition): Not here.
2942
2943	PR c++/20153
2944	* decl2.c (build_anon_union_vars): Add type parameter.
2945	(finish_anon_union): Pass it.
2946
2947	PR c++/20148
2948	* error.c (dump_expr): Do not print the body of a BIND_EXPR.
2949	Handle STATEMENT_LIST.
2950
2951	PR c++/19883
2952	* parser.c (cp_parser_direct_declarator): Always complain about
2953	non-constant array bounds when in a function scope.
2954	* semantics.c (finish_id_expression): Do not mark dependent names
2955	as non-constant.
2956
29572005-02-21  Douglas Gregor  <dgregor@cs.indiana.edu>
2958
2959	PR c++/19076
2960	PR c++/6628
2961	* cp-tree.h (cp_apply_type_quals_to_decl): Declared.
2962	* decl.c (grokdeclarator): Pedwarn about qualifying a function
2963	type.
2964	Add qualifiers when declaring a typedef of a function type.
2965	Member function pointers pick up the qualifiers of the typedef
2966	used to declare them.
2967	Don't complain about creating cv-qualified function types.
2968	Complain about qualified function typedefs that are used to
2969	declare non-static member functions or free functions.
2970	Use cp_apply_type_quals_to_decl.
2971	(start_preparsed_function): Use cp_apply_type_quals_to_decl.
2972	(grokclassfn): Use cp_apply_type_quals_to_decl.
2973	* error.c (dump_type_suffix): Print qualifiers for function
2974	types.
2975	* pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
2976	(tsubst): When substituting a function type into a member
2977	pointer type, pass along the qualifiers.
2978	(unify): Unify member pointers to member function pointers.
2979	* tree.c (cp_build_qualified_type_real): Function types may be
2980	qualified. This includes restrict qualifiers.
2981	* typeck.c (cp_apply_type_quals_to_decl): New function to replace
2982	use of c_apply_type_quals_to_decl. Drops qualifiers that are being
2983	added to function types.
2984
29852005-02-20  Zack Weinberg  <zack@codesourcery.com>
2986
2987	PR 18785
2988	* cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
2989	c_common_to_target_charset.  Delete bogus comment.
2990
29912005-02-18  Richard Henderson  <rth@redhat.com>
2992
2993	PR libstdc++/10606
2994	* except.c (do_get_exception_ptr): New.
2995	(expand_start_catch_block): Use it.
2996
29972005-02-19  Jakub Jelinek  <jakub@redhat.com>
2998
2999	* decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
3000	if type is not error_mark_node.
3001
30022005-01-20  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3003
3004	PR c++/19508
3005	* decl2.c (grokfield): Do not apply attributes to template parameters
3006	as they are ignored by tsubst anyway.
3007
30082005-02-18  Jakub Jelinek  <jakub@redhat.com>
3009
3010	PR c++/19813
3011	* decl.c (start_decl_1): Clear TREE_READONLY flag if
3012	its type has TYPE_NEEDS_CONSTRUCTING.
3013	(complete_vars): Likewise.
3014
30152005-02-17  Alexandre Oliva  <aoliva@redhat.com>
3016
3017	PR c++/20028
3018	* class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
3019	template along with TYPE_SIZE.
3020
3021	PR c++/20022
3022	* semantics.c (perform_deferred_access_checks): Use
3023	get_deferred_access_checks to get the top of the stack.
3024
30252005-02-15  Alexandre Oliva  <aoliva@redhat.com>
3026
3027	PR c++/17788
3028	* class.c (add_implicitly_declared_members, check_field_decl)
3029	(check_field_decls, check_bases): Remove arguments, tests and
3030	assignments of cant_have_default_ctor-related variables.
3031
30322005-02-15  Alexandre Oliva  <aoliva@redhat.com>
3033
3034	* decl2.c (mark_used): Set the source location of the used decl to
3035	the current input location here...
3036	* method.c (synthesize_method): ... not here.  Set input_location
3037	from the decl instead.
3038
30392005-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3040
3041	PR c++/19608
3042	* parser.c (cp_parser_late_parsing_for_member): Use
3043	current_function_decl as scope to push to and from.
3044
3045	PR c++/19884
3046	* pt.c (check_explicit_specialization): Make sure namespace
3047	binding lookup found an overloaded function.
3048	(lookup_template_function): Just assert FNS is an overloaded
3049	function.
3050
3051	PR c++/19895
3052	* decl.c (grokdeclarator): Check for error mark node in ptrmem
3053	construction.
3054
30552005-02-14  Alexandre Oliva  <aoliva@redhat.com>
3056
3057	PR c++/17816
3058	* decl.c (redeclaration_error_message): Report redefinition of
3059	pure virtual function.
3060
30612005-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3062
3063	PR c++/19891
3064	* class.c (build_simple_base_path): Build the component_ref
3065	directly.
3066	(update_vtable_entry_for_fn): Walk the covariant's binfo chain
3067	rather than using lookup_base.
3068	* search.c (dfs_walk_once): Add non-recursive assert check.
3069	* typeck.c (build_class_member_access_expr): It is possible for
3070	the member type to be both const and volatile.
3071
30722005-02-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3073
3074	PR c++/14479
3075	PR c++/19487
3076	* pt.c (maybe_check_template_type): Remove.
3077	* cp-tree.h (maybe_check_template_type): Remove prototype.
3078	* name-lookup.c (maybe_process_template_type_declaration): Don't
3079	use maybe_check_template_type.
3080
30812005-02-11  Richard Henderson  <rth@redhat.com>
3082
3083	PR c++/19632
3084	* pt.c (get_mostly_instantiated_function_type): Save and restore
3085	flag_access_control instead of push/pop_access_scope.
3086
30872005-02-10  Mark Mitchell  <mark@codesourcery.com>
3088
3089	PR c++/19755
3090	* decl.c (reshape_init): Issue warnings about missing braces.
3091
30922005-02-11  Kazu Hirata  <kazu@cs.umass.edu>
3093
3094	* cp-tree.def, except.c, ptree.c: Update copyright.
3095
30962005-02-09  Mark Mitchell  <mark@codesourcery.com>
3097
3098	PR c++/19811
3099	* call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
3100	attempting name lookup.
3101
3102	* parser.c (cp_parser_unqualified_id): Initialize type_decl.
3103
3104	PR c++/19787
3105	* call.c (initialize_reference): Robustify.
3106
3107	PR ++/19732
3108	* decl.c (grokdeclarator): Check for invalid use of destructor
3109	names.
3110
3111	PR c++/19762
3112	* parser.c (cp_parser_unqualified_id): Avoid creating destructor
3113	names with invalid types.
3114
3115	PR c++/19826
3116	* parser.c (cp_parser_direct_declarator): Allow type-dependent
3117	expressions as array bounds.
3118
3119	PR c++/19739
3120	* parser.c (cp_parser_attributes_list): Allow empty lists.
3121
31222005-02-08  Mark Mitchell  <mark@codesourcery.com>
3123
3124	PR c++/19733
3125	* class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
3126	(check_bases): Give warnings about a base class with a
3127	non-virtual destructor, even if it is implicit.
3128	(finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
3129	(maybe_warn_about_overly_private_class): Don't use
3130	TYPE_HAS_DESTRUCTOR.
3131	(finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
3132	(check_for_override): Give it external linkage.
3133	(add_implicitly_declared_members): Generate destructors lazily.
3134	(check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
3135	TYPE_HAS_DESTRUCTOR.
3136	(check_bases_and_members): Call check_methods before
3137	check_field_decls.
3138	(check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
3139	TYPE_HAS_DESTRUCTOR.
3140	(finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
3141	* cp-tree.def (PSEUDO_DTOR_EXPR): Document.
3142	* cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
3143	(lang_type_class): Add lazy_destructor.
3144	(CLASSTYPE_LAZY_DESTRUCTOR): New macro.
3145	(CLASSTYPE_DESTRUCTORS): Robustify.
3146	(TYPE_HAS_DESTRUCTOR): Remove.
3147	(check_for_override): Declare.
3148	(build_vbase_delete): Remove.
3149	* cvt.c (convert_to_void): Issue errors about pseudo-destructor
3150	expressions.
3151	* decl.c (cxx_maybe_build_cleanup): Remove dead code.
3152	* except.c (dtor_nothrow): Lazily create destructors if necessary.
3153	(build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
3154	* init.c (build_delete): Lazily create destructors, if necessary.
3155	(build_vbase_delete): Remove.
3156	* method.c (locate_dtor): Simplify.
3157	(implicitly_declare_fn): Add support for destructors.
3158	* parser.c (cp_parser_lookup_name): Lazily create destructors, if
3159	necessary.
3160	* pt.c (check_explicit_specialization): Don't use
3161	TYPE_HAS_DESTRUCTOR.
3162	(instantiate_class_template): Likewise.
3163	* ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
3164	* rtti.c (emit_support_tinfos): Robustify.
3165	* search.c (lookup_fnfields_1): Lazily create destructors.
3166	* typeck.c (build_class_member_access_expr): Remove
3167	PSEUDO_DTOR_EXPR handling.
3168	(lookup_destructor): Likewise.
3169
31702005-02-08  Kazu Hirata  <kazu@cs.umass.edu>
3171
3172	* cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
3173	copyright.
3174
31752005-02-07  Mark Mitchell  <mark@codesourcery.com>
3176
3177	* parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
3178	on boolean variables.
3179	(cp_lexer_stop_debugging): Likewise.
3180
31812005-02-03  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3182
3183	PR c++/17401
3184	* parser.c (cp_parser_pure_specifier): Emit a specific error
3185	message with an invalid pure specifier.
3186	* decl2.c (grok_function_init): Remove.
3187	(grokfield): An initializer for a method is a always a pure
3188	specifier.
3189
31902005-02-02  Matt Austern  <austern@apple.com>
3191
3192	PR c++/19628
3193	* cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
3194	* parser.c (cp_parser_postfix_expression): Accept function call in
3195	constant expression if builtin_valid_in_constant_expr_p is true
3196	for that function.
3197	* pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
3198	* semantics.c (finish_id_expression): Accept function call in constant
3199	expression if builtin_valid_in_constant_expr_p is true for that
3200	function.
3201	* tree.c (builtin_valid_in_constant_expr_p): New.
3202
32032005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3204
3205	PR c++/17413
3206	* pt.c (check_instantiated_args): Improve error message.
3207	Fix logic when to print its second part.
3208
32092005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3210
3211	* cp-tree.h (complete_type_or_else): Remove macro.
3212	(complete_type_or_diagnostic): Rename to complete_type_or_else
3213	and remove last argument.
3214	* typeck.c (complete_type_or_diagnostic): Rename to
3215	complete_type_or_else and remove last argument.
3216
32172005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3218
3219	* cp-tree.h (commonparms): Remove prototype.
3220	(convert_arguments): Likewise.
3221	(PFN_FROM_PTRMEMFUNC): Remove.
3222	* typeck.c (commonparms): Make static.
3223	(convert_arguments): Add prototype. Make static.
3224	(PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
3225
32262005-01-31  Mark Mitchell  <mark@codesourcery.com>
3227
3228	* parser.c (cp_parser_primary_expression): Don't complain about
3229	floating-point literals in integral constant expressions when
3230	!pedantic.
3231
32322005-02-01  Alexandre Oliva  <aoliva@redhat.com>
3233
3234	* parser.c (cp_parser_template_id): Revert comment patch too.
3235
3236	PR c++/18757
3237	PR c++/19366
3238	PR c++/19499
3239	* parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
3240	Issue an error when creating the template id.
3241	* pt.c (fn_type_unification): Return early if the explicit
3242	template arg list is an error_mark_node.
3243
32442005-01-31  Mark Mitchell  <mark@codesourcery.com>
3245
3246	* decl.c (build_enumerator): Do not issue duplicate error messages
3247	about invalid enumeration constants.
3248	* parser.c (cp_parser_non_integral_constant_expression): Always
3249	set parser->non_integral_constant_expression_p.
3250	(cp_parser_primary_expression): Add cast_p parameter.  Issue
3251	errors about invalid uses of floating-point literals in
3252	cast-expressions.
3253	(cp_parser_postfix_expression): Add cast_p parameter.
3254	(cp_parser_open_square_expression): Pass it.
3255	(cp_parser_parenthesized_expression_list): Add cast_p parameter.
3256	(cp_parser_unary_expression): Likewise.
3257	(cp_parser_new_placement): Pass it.
3258	(cp_parser_direct_new_declarator): Likewise.
3259	(cp_parser_new_initializer): Likewise.
3260	(cp_parser_cast_expression): Add cast_p parameter.
3261	(cp_parser_binary_expression): Likewise.
3262	(cp_parser_question_colon_clause): Likewise.
3263	(cp_parser_assignment_expression): Likewise.
3264	(cp_parser_expression): Likewise.
3265	(cp_parser_constant_expression): If an integral constant
3266	expression is invalid, return error_mark_node.
3267	(cp_parser_expression_statement): Pass cast_p.
3268	(cp_parser_condition): Likewise.
3269	(cp_parser_iteration_statement): Likewise.
3270	(cp_parser_jump_statement): Likewise.
3271	(cp_parser_mem_initializer): Likewise.
3272	(cp_parser_template_argument): Likewise.
3273	(cp_parser_parameter_declaration): Likewise.
3274	(cp_parser_initializer): Likewise.
3275	(cp_parser_throw_expression): Likewise.
3276	(cp_parser_attribute_list): Likewise.
3277	(cp_parser_simple_cast_expression): Likewise.
3278	(cp_parser_functional_cast): Likewise.
3279	(cp_parser_late_parsing_default_args): Likewise.
3280	(cp_parser_sizeof_operand): Save/restore
3281	non_integral_constant_expression_p.
3282
32832005-01-31  Mike Stump  <mrs@apple.com>
3284
3285	* parser.c (cp_lexer_new_main): Get the first token, first, before
3286	doing anything.
3287
32882005-01-31  Mark Mitchell  <mark@codesourcery.com>
3289
3290	* decl.c (start_decl): Add missing parentheses.
3291
32922005-01-30  Mark Mitchell  <mark@codesourcery.com>
3293
3294	PR c++/19555
3295	* cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
3296	* decl.c (duplicate_decls): Do not discard
3297	DECL_IMPLICIT_INSTANTIATION when merging declarations.
3298	(start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
3299	variables that do not have DECL_USE_TEMPLATE.
3300
3301	PR c++/19395
3302	* decl.c (grokdeclarator): Refactor code so that qualified names
3303	are never allowed as the declarator in a typedef.
3304
3305	PR c++/19367
3306	* name-lookup.c (do_nonmember_using_decl): Avoid overloading
3307	builtin declarations.
3308
3309	PR c++/19457
3310	* call.c (convert_like_real): Inline call to
3311	dubious_conversion_warnings here.
3312	* cp-tree.h (dubious_conversion_warnings): Remove.
3313	* semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
3314	setting TREE_NEGATED_INT.
3315	* typeck.c (dubious_conversion_warnings): Remove.
3316
3317	PR c++/19349
3318	* name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
3319	memory.
3320
33212005-01-28  Mark Mitchell  <mark@codesourcery.com>
3322
3323	PR c++/19253
3324	* parser.c (cp_parser_diagnose_invalid_type_name): Commit to
3325	tentative parses.
3326
3327	PR c++/19667
3328	* pt.c (redeclare_class_template): Robustify.
3329
33302005-01-27  Steven Bosscher  <stevenb@suse.de>
3331
3332	* decl.c (finish_case_label): Use SWITCH_STMT accessor macros
3333	instead of SWITCH_EXPR ones.
3334	* pt.c (tsubst_expr): Likewise.
3335	* semantics.c (begin_switch_stmt, finish_switch_cond,
3336	finish_switch_stmt): Likewise.
3337
33382005-01-26  J"orn Rennecke <joern.rennecke@st.com>
3339
3340	PR c++/18370
3341	* parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
3342
33432005-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
3344
3345	* class.c (abort_fndecl_addr): New variable.
3346	(build_vtbl_initializer): If we have a pure virtual function
3347	share the abort function's address.
3348	Include gt-cp-class.h at the end.
3349	* config-lang.in (gtfiles): Add cp/class.c.
3350
33512005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3352
3353	* cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
3354	(pp_cxx_function_definition): Make static.
3355	* cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
3356	(pp_cxx_function_definition): Likewise.
3357
33582005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3359
3360	* name-lookup.c (print_binding_level): Make static.
3361	(constructor_name_full): Make static inline.
3362	(current_decl_namespace): Make static.
3363	* name-lookup.h (constructor_name_full): Remove prototype.
3364	(print_binding_level): Likewise.
3365	(current_decl_namespace): Likewise.
3366
33672005-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3368
3369	* decl.h (debug_bindings_indentation): Remove.
3370
33712005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
3372
3373	* typeck.c: Fix a comment typo.
3374
33752005-01-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3376
3377	PR c++/19208
3378	* pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
3379	at least once.
3380	(tsubst): Use fold_decl_constant_value in place of a bare call to
3381	integral_constant_value.
3382
33832005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3384
3385	* typeck.c (more_qualified_p): Remove.
3386	* cp-tree.h: Remove the corresponding prototype.
3387
33882005-01-19  Matt Austern  <austern@apple.com>
3389
3390	* typeck.c (comptypes): Handle return code from objc_comptypes
3391	correctly.
3392
33932005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
3394
3395	* cp-tree.h, name-lookup.h: Remove unused prototypes.
3396
33972005-01-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3398
3399	PR c++/19375
3400	* semantics.c (finish_id_expression): Disable access checking for
3401	already lookuped FIELD_DECL.
3402
34032005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3404
3405	* decl.c (delete_block): Remove.
3406	* cp-tree.h: Remove the corresponding prototype.
3407
3408	* decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
3409	walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
3410	Remove.
3411	* cp-tree.h: Remove the corresponding prototypes.
3412
3413	* tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
3414	cp_update_decl_after_saving, name_p): Remove.
3415	* cp-tree.h: Remove the corresponding prototypes.
3416
34172005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
3418
3419	PR c/19472
3420	* semantics.c (finish_asm_stmt): Strip nops off
3421	input memory operands.
3422
34232005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3424
3425	* Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
3426	typeck2.c: Update copyright.
3427
34282005-01-16  Kazu Hirata  <kazu@cs.umass.edu>
3429
3430	* class.c (get_enclosing_class): Remove.
3431	* cp-tree.h: Remove the corresponding prototypes.
3432
3433	* cvt.c (convert_lvalue): Remove.
3434	* cp-tree.h: Remove the corresponding prototype.
3435
3436	* pt.c (tinst_for_decl): Remove.
3437	* cp-tree.h: Remove the corresponding prototypes.
3438
3439	* tree.c (hash_chainon): Remove.
3440	* cp-tree.h: Remove the corresponding prototypes.
3441
34422005-01-15  Jakub Jelinek  <jakub@redhat.com>
3443
3444	PR c++/19263
3445	* typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
3446	of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
3447
34482005-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3449
3450	* Make-lang.in (cp-warn): Don't append $(WERROR).
3451
34522005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
3453
3454	* cp-tree.h: Fix a comment typo.
3455
34562005-01-07  Nathan Sidwell  <nathan@codesourcery.com>
3457
3458	PR c++/19298
3459	* pt.c (tsubst_qualified_id): Call convert_from_reference.
3460
34612005-01-06  Mark Mitchell  <mark@codesourcery.com>
3462
3463	PR c++/19244
3464	* class.c (add_implicitly_declared_members): Remove dead code.
3465	* decl.c (grokfndecl): Add sfk parameter.  Use it do set
3466	DECL_CONSTRUCTOR_P.
3467	(grokdeclarator): Adjust calls to grokfndecl.
3468	* method.c (implicitly_declare_fn): Improve documentation.
3469	* parser.c (cp_parser_direct_declarator): Do not consider a
3470	function to be a constructor if the containing class was
3471	originally anonymous.
3472
34732005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3474
3475	PR c++/17154
3476	* search.c (lookup_field_1): Handle using declaration in
3477	class template partial specialization.
3478
34792005-01-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3480
3481	PR c++/19258
3482	* pt.c (push_access_scope): Handle friend defined in class.
3483	(pop_access_scope): Likewise.
3484
34852005-01-06  Nathan Sidwell  <nathan@codesourcery.com>
3486
3487	PR c++/19270
3488	* pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
3489	(tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
3490	array-new handling code.  Use build_x_binary_op.
3491
34922005-01-05  Nathan Sidwell  <nathan@codesourcery.com>
3493
3494	PR c++/19030
3495	* cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
3496	* name-lookup.h (push_scope): Return pushed scope, not flag.
3497	* name-lookup.c (push_scope): Return scope that should be popped,
3498	not a flag.
3499	* decl.c (start_decl): Adjust.
3500	(grokfndecl): Adjust scope push and pop.
3501	* decl2.c (check_classfn): Likewise.
3502	* parser.c (cp_parser_condition, cp_parser_conversion_function_id,
3503	cp_parser_init_declarator, cp_parser_direct_declarator,
3504	cp_parser_class_specifier, cp_parser_class_head,
3505	cp_parser_lookup_name,
3506	cp_parser_constructor_declarator_p): Likewise.
3507	* pt.c (instantiate_class_template,
3508	resolve_typename_type): Likewise.
3509
35102005-01-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3511
3512	PR c++/14136
3513	* parser.c (cp_parser_unqualified_id): Do not issue error message
3514	for typedef-name as destructor declarator when performing an
3515	uncommitted tentative parse.
3516
35172005-01-01  Steven Bosscher  <stevenb@suse.de>
3518
3519	PR middle-end/17544
3520	* decl.c (finish_function): Fix comment.  Annotate the compiler
3521	generated return with the current file name and line 0.
3522
3523
3524Copyright (C) 2005 Free Software Foundation, Inc.
3525
3526Copying and distribution of this file, with or without modification,
3527are permitted in any medium without royalty provided the copyright
3528notice and this notice are preserved.
3529