1169689Skan2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
2169689Skan
3169689Skan	PR c++/13507
4169689Skan	* decl.c (duplicate_decls): Use build_type_attribute_variant to
5169689Skan	merge attributes.
6169689Skan
7169689Skan	PR c++/13494
8169689Skan	* tree.c (build_cplus_array_type_1): Only build a minimal array
9169689Skan	type for dependent types or domains.
10169689Skan
11169689Skan2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12169689Skan
13169689Skan	PR c++/12774
14169689Skan	* typeck.c (comp_array_types): Fold non-dependent domains for
15169689Skan	ABI-1.
16169689Skan
17169689Skan2003-12-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
18169689Skan
19169689Skan	PR c++/13289
20169689Skan	* semantics.c (finish_id_expression): Only check if the type of
21169689Skan	a template argument is integral or enumeration when it is not
22169689Skan	dependent.
23169689Skan
24169689Skan2003-12-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
25169689Skan
26169689Skan	PR c++/12403
27169689Skan	* parser.c (cp_parser_template_declaration_after_export): Set up
28169689Skan	template specialization scope in case of explicit specialization.
29169689Skan
30169689Skan2003-12-28  Mark Mitchell  <mark@codesourcery.com>
31169689Skan
32169689Skan	PR c++/13081
33169689Skan	* decl.c (duplicate_decls): Preserve inline-ness when redeclaring
34169689Skan	a function template.
35169689Skan
36169689Skan	PR c++/12613
37169689Skan	* decl.c (reshape_init): Reject GNU colon-style designated
38169689Skan	initializers in arrays.
39169689Skan
40169689Skan	PR c++/13009
41169689Skan	* call.c (build_special_member_call): Do not assume that we have a
42169689Skan	pointer to the complete object in an assignment operator.
43169689Skan
44169689Skan2003-12-28  Roger Sayle  <roger@eyesopen.com>
45169689Skan
46169689Skan	PR c++/13070
47169689Skan	* decl.c (duplicate_decls): When setting the type of an anticipated
48169689Skan	declaration, merge the existing type attributes.
49169689Skan
50169689Skan2003-12-25  Andrew Pinski  <pinskia@physics.uc.edu>
51169689Skan
52169689Skan	PR c++/13268, c++/13339
53169689Skan	* class.c (add_method): Return early when method is error_mark_node.
54169689Skan	* pt.c (tsubst_friend_function): Return early when new_friend is
55169689Skan	error_mark_node.
56169689Skan
57169689Skan2003-12-23  Mark Mitchell  <mark@codesourcery.com>
58169689Skan
59169689Skan	* cp-lang.c (cp_expr_size): Return zero for empty classes.
60169689Skan
61169689Skan	* cp-tree.h (warn_if_uknown_interface): Remove unused function.
62169689Skan	* decl2.c (warn_if_unknown_interface): Likewise.
63169689Skan
64169689Skan2003-12-23  Nathan Sidwell  <nathan@codesourcery.com>
65169689Skan
66169689Skan	PR c++/13387
67169689Skan	* cp-lang.c (cxx_get_alias_set): Correct logic for a base type.
68169689Skan
69169689Skan2003-12-22  Mark Mitchell  <mark@codesourcery.com>
70169689Skan
71169689Skan	* decl.c (start_function): Do not check
72169689Skan	flag_alt_external_templates or flag_external_templates.
73169689Skan	* decl2.c (warn_if_unknown_interface): Likewise.
74169689Skan	* lex.c (extract_interface_info): Likewise.
75169689Skan	* pt.c (lookup_template_class): Likewise.
76169689Skan
77169689Skan	PR c++/12862
78169689Skan	* name-lookup.c (pushdecl): Look up all namespace-scope entities
79169689Skan	in their corresponding namespace.
80169689Skan
81169689Skan	PR c++/12397
82169689Skan	* typeck.c (finish_class_member_access_expr): Don't tree
83169689Skan	IDENTIFIER_NODEs as non-dependent expressions.
84169689Skan
85169689Skan2003-12-22  Andrew Pinski  <pinskia@physics.uc.edu>
86169689Skan
87169689Skan	PR c++/5050
88169689Skan	* tree.c (cp_start_inlining): Remove.
89169689Skan	(cp_end_inlining): Remove.
90169689Skan	* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Do not define.
91169689Skan	(LANG_HOOKS_TREE_INLINING_END_INLINING): Do not define.
92169689Skan	* cp-tree.h (cp_start_inlining): Do not declare.
93169689Skan	(cp_end_inlining): Do not declare.
94169689Skan
95169689Skan2003-12-22  Mark Mitchell  <mark@codesourcery.com>
96169689Skan
97169689Skan	PR c++/12479
98169689Skan	* parser.c (cp_parser_declaration_seq_opt): Only issue "extra ;"
99169689Skan	pedwarn when not in a system header.
100169689Skan
101169689Skan2003-12-21  Mark Mitchell  <mark@codesourcery.com>
102169689Skan
103169689Skan	* cp-tree.h (cp_tree_index): Remove CPTI_RECORD_TYPE,
104169689Skan	CPTI_UNION_TYPE, CPTI_ENUM_TYPE.
105169689Skan	(record_type_node): Remove.
106169689Skan	(union_type_node): Likewise.
107169689Skan	(enum_type_node): Likewise.
108169689Skan	* decl.c: Remove mention of above tree nodes in comment.
109169689Skan	* lex.c (cxx_init): Do not assign to record_type_node,
110169689Skan	union_type_node, or enum_type_node.  Simplify handling of
111169689Skan	class_type_node.
112169689Skan
113169689Skan	PR c++/11554
114169689Skan	* init.c (sort_mem_initializers): Add warning.
115169689Skan
116169689Skan2003-12-21  Kazu Hirata  <kazu@cs.umass.edu>
117169689Skan
118169689Skan	* call.c: Fix comment formatting.
119169689Skan	* class.c: Likewise.
120169689Skan	* cp-tree.h: Likewise.
121169689Skan	* cvt.c: Likewise.
122169689Skan	* cxx-pretty-print.c: Likewise.
123169689Skan	* decl.c: Likewise.
124169689Skan	* decl2.c: Likewise.
125169689Skan	* error.c: Likewise.
126169689Skan	* except.c: Likewise.
127169689Skan	* init.c: Likewise.
128169689Skan	* name-lookup.c: Likewise.
129169689Skan	* parser.c: Likewise.
130169689Skan	* pt.c: Likewise.
131169689Skan	* rtti.c: Likewise.
132169689Skan	* semantics.c: Likewise.
133169689Skan	* typeck.c: Likewise.
134169689Skan	* typeck2.c: Likewise.
135169689Skan
136169689Skan2003-12-19  Kazu Hirata  <kazu@cs.umass.edu>
137169689Skan
138169689Skan	* cvt.c: Remove uses of "register" specifier in
139169689Skan	declarations of arguments and local variables.
140169689Skan	* decl.c: Likewise.
141169689Skan	* decl2.c: Likewise.
142169689Skan	* expr.c: Likewise.
143169689Skan	* friend.c: Likewise.
144169689Skan	* lex.c: Likewise.
145169689Skan	* name-lookup.c: Likewise.
146169689Skan	* repo.c: Likewise.
147169689Skan	* search.c: Likewise.
148169689Skan	* tree.c: Likewise.
149169689Skan	* typeck.c: Likewise.
150169689Skan	* typeck2.c: Likewise.
151169689Skan
152169689Skan2003-12-19  Mark Mitchell  <mark@codesourcery.com>
153169689Skan
154169689Skan	PR c++/12795
155169689Skan	* name-lookup.c (pushdecl): Do not treated any functions as being
156169689Skan	"nested" in C++.
157169689Skan
158169689Skan2003-12-19  Jason Merrill  <jason@redhat.com>
159169689Skan
160169689Skan	PR c++/13371
161169689Skan	* typeck.c (build_modify_expr): Stabilize lhs if we're narrowing.
162169689Skan	* cvt.c (convert_to_void): Don't warn about the RHS of a comma
163169689Skan	being useless if TREE_NO_UNUSED_WARNING is set.
164169689Skan
165169689Skan2003-12-18  Richard Henderson  <rth@redhat.com>
166169689Skan
167169689Skan	* cp-tree.h (struct lang_type_header): Remove __extension__.
168169689Skan
169169689Skan2003-12-18  Jason Merrill  <jason@redhat.com>
170169689Skan
171169689Skan	PR c++/12253
172169689Skan	* init.c (build_vec_init): Initialization of an element from
173169689Skan	an initializer list is also a full-expression.
174169689Skan
175169689Skan	* parser.c, pt.c, semantics.c: Rename constant_expression_p
176169689Skan	to integral_constant_expression_p.
177169689Skan
178169689Skan2003-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
179169689Skan
180169689Skan	PR c++/13262
181169689Skan	* pt.c (instantiate_decl): Wrap push_nested_class and
182169689Skan	pop_nested_class around cp_finish_decl call for static member
183169689Skan	variable.
184169689Skan
185169689Skan2003-12-18  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
186169689Skan
187169689Skan	PR c++/9154
188169689Skan	* parser.c (cp_parser_template_argument): A type-id followed by '>>'
189169689Skan	is just an user typo, and should be accepted as last resort if any
190169689Skan	other parsing fails.
191169689Skan	(cp_parser_enclosed_template_argument_list): If the argument list is
192169689Skan	parsed correctly, but the next token is '>>', emit a diagnostic.
193169689Skan	(cp_parser_next_token_ends_template_argument): Accept '>>' as
194169689Skan	delimiter of template argument, it will be later detected as a typo.
195169689Skan
196169689Skan2003-12-17  Kelley Cook  <kcook@gcc.gnu.org>
197169689Skan
198169689Skan	* Make-lang.in: Replace cp/g++.1 with $(docobjdir)/g++.1.
199169689Skan
200169689Skan2003-12-17  Mark Mitchell  <mark@codesourcery.com>
201169689Skan
202169689Skan	PR c++/10603
203169689Skan	PR c++/12827
204169689Skan	* parser.c (cp_parser_error): Help c_parse_error print good
205169689Skan	messages if the next token is a keyword.
206169689Skan	(cp_parser_parameter_declaration_list): When resynchronizing after
207169689Skan	a bad parameter declaration, stop if a comma is found.
208169689Skan	(cp_parser_parameter_declaration): Avoid backtracking.
209169689Skan
210169689Skan2003-12-16  Mark Mitchell  <mark@codesourcery.com>
211169689Skan
212169689Skan	PR c++/12696
213169689Skan	* decl.c (reshape_init): Recover quickly from errors.
214169689Skan
215169689Skan2003-12-16  Nathan Sidwell  <nathan@codesourcery.com>
216169689Skan
217169689Skan	PR c++/9043
218169689Skan	C++ ABI change: Mangling array indices in templates.
219169689Skan	* decl.c (compute_array_index_type): Reorganize for earlier
220169689Skan	template errors. Use value_dependent_expression_p for abi-2.
221169689Skan	* mangle.c (write_array_type): Check broken mangling for
222169689Skan	expression indices on abi-1
223169689Skan
224169689Skan2003-12-16  Mark Mitchell  <mark@codesourcery.com>
225169689Skan
226169689Skan	PR c++/12696
227169689Skan	* decl.c (reshape_init): Recover quickly from errors.
228169689Skan
229169689Skan	PR c++/13275
230169689Skan	* lex.c (reswords): Add "__offsetof" and "__offsetof__".
231169689Skan	* parser.c (cp_parser): Add in_offsetof_p.
232169689Skan	(cp_parser_new): Initialize it.
233169689Skan	(cp_parser_primary_expression): Handle __offsetof__ (...).
234169689Skan	(cp_parser_postfix_expression): Allow casts to pointer type and
235169689Skan	uses of "->" in a constant expression if implementing offsetof.
236169689Skan	(cp_parser_unary_expression): Allow the use of "&" in a constant
237169689Skan	expression if implementing offsetof.
238169689Skan
239169689Skan2003-12-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
240169689Skan
241169689Skan	PR c++/2294
242169689Skan	* name-lookup.c (push_overloaded_decl): always construct an OVERLOAD
243169689Skan	if the declaration comes from an using declaration.
244169689Skan
245169689Skan2003-12-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
246169689Skan
247169689Skan	* semantics.c (finish_id_expression): Refactor the code to handle
248169689Skan	template parameters, and emit a more informative error message
249169689Skan	when they are used within an integral constant expression.
250169689Skan
251169689Skan2003-12-16  Nathan Sidwell  <nathan@codesourcery.com>
252169689Skan
253169689Skan	PR c++/13387
254169689Skan	* class.c (finish_struct_1): Compute mode and alias set for
255169689Skan	CLASSTYPE_AS_BASE.
256169689Skan	* call.c (build_over_call): Use CLASSTYPE_AS_BASE for trivial
257169689Skan	assignment of a class, as necessary.
258169689Skan	* cp-lang.c (cxx_get_alias_set): The alias set as a base is the
259169689Skan	same as for the complete type.
260169689Skan
261169689Skan	PR c++/13242
262169689Skan	C++ ABI change. Mangling template parameters of reference type
263169689Skan	* mangle.c (write_template_args): Remove unreachable code.
264169689Skan	(write_template_arg): Look through an argument of reference type.
265169689Skan
266169689Skan2003-12-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
267169689Skan
268169689Skan	PR c++/2294
269169689Skan	* name-lookup.c (push_overloaded_decl): always construct an OVERLOAD
270169689Skan	if the declaration comes from an using declaration.
271169689Skan
272169689Skan2003-12-15  Mark Mitchell  <mark@codesourcery.com>
273169689Skan
274169689Skan	PR c++/10926
275169689Skan	* decl2.c (grokfield): Robustify.
276169689Skan
277169689Skan	PR c++/11116
278169689Skan	* parser.c (cp_parser_throw_expression): Determine whether or not
279169689Skan	an assignment-expression is present by doing one-token lookahead.
280169689Skan
281169689Skan	PR c++/13269
282169689Skan	* parser.c (cp_parser_function_definition_after_declarator): Stop
283169689Skan	scanning tokens when reaching EOF.
284169689Skan
285169689Skan	PR c++/12989
286169689Skan	* typeck.c (cxx_sizeof_or_alignof_expr): Robustify.
287169689Skan
288169689Skan	PR c++/13310
289169689Skan	* pt.c (dependent_template_p): Handle OVERLOADs.
290169689Skan
291169689Skan2003-12-15  Mark Mitchell  <mark@codesourcery.com>
292169689Skan
293169689Skan	PR c++/13243
294169689Skan	PR c++/12573
295169689Skan	* parser.c (cp_parser_postfix_expression): Tighten handling of
296169689Skan	integral constant expressions.
297169689Skan	(cp_parser_unary_expression): Likewise.
298169689Skan	* pt.c (value_dependent_expression_p): Remove handling for
299169689Skan	COMPONENT_REFs.
300169689Skan
301169689Skan2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
302169689Skan
303169689Skan	* class.c (add_method): Disallow destructor for java classes.
304169689Skan	* decl.c (xref_basetypes): Check java class inheritance.
305169689Skan	* decl2.c (check_java_method): Skip artificial params.
306169689Skan
307169689Skan	PR c++/13241
308169689Skan	C++ ABI change. Mangling of symbols in expressions.
309169689Skan	* mangle.c (write_mangled_name): Add top_level flag. Rework for
310169689Skan	nested and unnested mangling. Deal with abi version 1 and version
311169689Skan	2 differences.
312169689Skan	(write_expression): Adjust write_mangled_name call.
313169689Skan	(mangle_decl_string): Use write_mangled_name for all non-type decls.
314169689Skan
315169689Skan2003-12-14  Mark Mitchell  <mark@codesourcery.com>
316169689Skan
317169689Skan	PR c++/10779
318169689Skan	PR c++/12160
319169689Skan	* parser.c (struct cp_parser): Add in_template_argument_list_p.
320169689Skan	(cp_parser_error): Use c_parse_error.
321169689Skan	(cp_parser_name_lookup_error): New function.
322169689Skan	(cp_parser_new): Initialize it.
323169689Skan	(cp_parser_declarator): Add parenthesized_p parameter.
324169689Skan	(cp_parser_nested_name_specifier_opt): Use
325169689Skan	cp_parser_name_lookup_error.
326169689Skan	(cp_parser_parenthesized_expression_list): Improve comments.
327169689Skan	(cp_parser_condition): Adjust call to cp_parser_declarator.
328169689Skan	(cp_parser_template_parameter): Adjust call to
329169689Skan	cp_parser_parameter_declaration.
330169689Skan	(cp_parser_template_argument_list): Set
331169689Skan	in_template_argument_list_p.
332169689Skan	(cp_parser_explicit_instantiation): Adjust call to
333169689Skan	cp_parser_declarator.
334169689Skan	(cp_parser_simple_type_specifier): Remove unncessary code.
335169689Skan	(cp_parser_using_declaration): Use cp_parser_name_lookup_error.
336169689Skan	(cp_parser_init_declarator): Handle member function definitions.
337169689Skan	(cp_parser_direct_declarator): Adjust call to
338169689Skan	cp_parser_declarator.
339169689Skan	(cp_parser_type_id): Adjust call to cp_parser_declarator.
340169689Skan	(cp_parser_parameter_declaration_list): Avoid backtracking where
341169689Skan	possible.
342169689Skan	(cp_parser_parameter_declaration): Add parenthesized_p parameter.
343169689Skan	(cp_parser_function_definition): Remove.
344169689Skan	(cp_parser_member_declaration): Do not backtrack to look for
345169689Skan	function definitions.
346169689Skan	(cp_parser_exception_declaration): Adjust call to
347169689Skan	cp_parser_declarator.
348169689Skan	(cp_parser_single_declaration): Handle function definitions via
349169689Skan	cp_parser_init_declarator.
350169689Skan	(cp_parser_save_member_function_body): New function.
351169689Skan
352169689Skan2003-12-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
353169689Skan
354169689Skan	PR c++/13106
355169689Skan	* decl.c (finish_function): Check if return type is dependent before
356169689Skan	issuing no return statement warning.
357169689Skan
358169689Skan2003-12-12  Nathan Sidwell  <nathan@codesourcery.com>
359169689Skan
360169689Skan	PR c++/13118
361169689Skan	* cp-tree.h (lang_decl_u): Add thunk_alias member.
362169689Skan	(THUNK_VIRTUAL_OFFSET): Must be a FUNCTION_DECL.
363169689Skan	(THUNK_ALIAS_P): Remove.
364169689Skan	(THUNK_ALIAS): Adjust.
365169689Skan	* class.c (update_vtable_entry_for_fn): Get the vbase within the
366169689Skan	overriding function's return type.
367169689Skan	(dump_thunk): Adjust THUNK_ALIAS printing.
368169689Skan	(build_vtbl_initializer): Adjust THUNK_ALIAS use.
369169689Skan	* method.c (make_thunk): Revert 12881 test change. Clear
370169689Skan	THUNK_ALIAS.
371169689Skan	(finish_thunk): Adjust THUNK_ALIAS setting.
372169689Skan	(use_thunk): Adjust THUNK_ALIAS use.
373169689Skan	* semantics.c (emit_associated_thunks): Likewise.
374169689Skan
375169689Skan	PR c++/13114, c++/13115
376169689Skan	* class.c (layout_empty_base): Propagate the move of an empty base
377169689Skan	to offset zero.
378169689Skan
379169689Skan	PR c++/12881
380169689Skan	* method.c (make_thunk): Deal with thunk aliases when searching
381169689Skan	for a thunk. Robustify assertion.
382169689Skan
383169689Skan2003-12-11  Nathan Sidwell  <nathan@codesourcery.com>
384169689Skan
385169689Skan	* mangle.c (conv_type_names): Holds IDENTIFIER_NODEs only.
386169689Skan	(hash_type): Use TYPE_UID of the identifier's type.
387169689Skan	(compare_type): Adjust.
388169689Skan	(mangle_conv_op_name_for_type): Store identifier nodes only, use
389169689Skan	TYPE_UID has hash value.
390169689Skan
391169689Skan2003-12-10  Mark Mitchell  <mark@codesourcery.com>
392169689Skan
393169689Skan	* cp-tree.h (DECL_CONV_FN_P): Check that DECL_NAME is non-NULL.
394169689Skan
395169689Skan2003-12-08  Matt Austern  <austern@apple.com>
396169689Skan
397169689Skan	PR c/13134
398169689Skan	* decl.c (duplicate_decls): Copy visibility flag when appropriate.
399169689Skan
400169689Skan2003-12-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
401169689Skan
402169689Skan	* init.c (build_new_1): Deal with an OVERLOAD set when
403169689Skan	looking up for _Jv_AllocObject.
404169689Skan	* except.c (build_throw): Likewise for _Jv_Throw.
405169689Skan
406169689Skan2003-12-08  Jason Merrill  <jason@redhat.com>
407169689Skan
408169689Skan	PR c++/11971
409169689Skan	* tree.c (build_local_temp): Split out from build_cplus_new.
410169689Skan	(force_target_expr): New fn.
411169689Skan	* call.c (call_builtin_trap): Call it.  Take a type parm.
412169689Skan	(convert_arg_to_ellipsis): Pass it.
413169689Skan	(build_x_va_arg): Use call_builtin_trap.
414169689Skan
415169689Skan	PR c++/11929
416169689Skan	* call.c (magic_varargs_p): New fn.
417169689Skan	(build_over_call): Do no ellipsis conversions for arguments to
418169689Skan	functions with magic varargs.
419169689Skan
420169689Skan	* name-lookup.c, init.c, except.c: Revert Giovanni's patch from
421169689Skan	yesterday.
422169689Skan
423169689Skan	Give the anonymous namespace a null DECL_NAME.
424169689Skan	* cp-tree.h: Don't declare anonymous_namespace_name.
425169689Skan	* decl.c: Don't define it.
426169689Skan	* dump.c (cp_dump_tree): Don't check for it.
427169689Skan	* cxx-pretty-print.c (pp_cxx_original_namespace_definition): Likewise.
428169689Skan	* error.c (dump_decl): Likewise.
429169689Skan	* name-lookup.c: Define it here.
430169689Skan	(push_namespace): Put it in DECL_ASSEMBLER_NAME instead.
431169689Skan	* mangle.c (write_unqualified_name): Adjust.
432169689Skan
433169689Skan2003-12-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
434169689Skan
435169689Skan	PR c++/2294
436169689Skan	* name-lookup.c (push_overloaded_decl): Always construct an
437169689Skan	OVERLOAD unless the declaration is a built-in.
438169689Skan	(set_namespace_binding): While binding OVERLOADs with only one
439169689Skan	declaration, we still need to call supplement_binding.
440169689Skan	* init.c (build_new_1): Deal with an OVERLOAD set when
441169689Skan	looking up for _Jv_AllocObject.
442169689Skan	* except.c (build_throw): Likewise for _Jv_Throw.
443169689Skan
444169689Skan2003-12-06  Mark Mitchell  <mark@codesourcery.com>
445169689Skan
446169689Skan	PR c++/13323
447169689Skan	* class.c (same_signature_p): Handle conversion operators
448169689Skan	correctly.
449169689Skan	(check_for_override): Likewise.
450169689Skan
451169689Skan2003-12-06  Kelley Cook  <kcook@gcc.gnu.org>
452169689Skan
453169689Skan	* Make-lang.in (GXX_CROSS_NAME, CXX_CROSS_NAME): Delete.
454169689Skan	(c++.install_common, cp/g++.1, c++.install-man): Adjust for above.
455169689Skan	(c++.uninstall): Likewise.
456169689Skan
457169689Skan2003-12-05  Danny Smith <dannysmith@gcc.gnu.org>
458169689Skan	    Mark Mitchell  <mark@codesourcery.com>
459169689Skan
460169689Skan	PR c++/13305
461169689Skan	* parser.c (cp_parser_elaborated_type_specifier): Accept
462169689Skan	attributes.
463169689Skan
464169689Skan2003-12-05  Mark Mitchell  <mark@codesourcery.com>
465169689Skan
466169689Skan	PR c++/13314
467169689Skan	* parser.c (cp_parser_class_specifier): Match push_scope/pop_scope
468169689Skan	calls.
469169689Skan	(cp_parser_class_head): Likewise.
470169689Skan
471169689Skan2003-12-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
472169689Skan
473169689Skan	PR c++/13166
474169689Skan	* parser.c (cp_parser_late_parsing_default_args): Make sure the
475169689Skan	context is a class before calling push_nested_class and
476169689Skan	pop_nested_class.
477169689Skan
478169689Skan2003-12-03  James E Wilson  <wilson@specifixinc.com>
479169689Skan
480169689Skan	* g++spec.c (lang_specific_driver): Delete USE_LIBUNWIND_EXCEPTIONS
481169689Skan	support.
482169689Skan
483169689Skan2003-12-03  Mark Mitchell  <mark@codesourcery.com>
484169689Skan
485169689Skan	PR c++/9127
486169689Skan	* cp-tree.h (at_namespace_scope_p): New function.
487169689Skan	* parser.c (cp_parser_class_head): Handle invalid explicit
488169689Skan	specializations.
489169689Skan	* search.c (at_namespace_scope_p): New function.
490169689Skan
491169689Skan	PR c++/13179
492169689Skan	* semantics.c (finish_handler_parms): Do not call eh_type_info for
493169689Skan	types used in templates.
494169689Skan
495169689Skan	PR c++/10771
496169689Skan	* parser.c (cp_parser_check_for_invalid_template_id): New
497169689Skan	function.
498169689Skan	(cp_parser_simple_type_specifier): Use it.
499169689Skan	(cp_parser_elaborated_type_specifier): Likewise.
500169689Skan	(cp_parser_class_head): Likewise.
501169689Skan
502169689Skan2003-12-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
503169689Skan
504169689Skan	PR c++/10126
505169689Skan	* pt.c (convert_nontype_argument): Handle default conversions
506169689Skan	while converting a pointer to member function.
507169689Skan
508169689Skan2003-12-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
509169689Skan
510169689Skan	PR c++/12573
511169689Skan	* pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
512169689Skan	looking into them recursively.
513169689Skan
514169689Skan2003-12-02  Richard Henderson  <rth@redhat.com>
515169689Skan
516169689Skan	* name-lookup.h (struct cp_binding_level): Use ENUM_BITFIELD.
517169689Skan	* parser.c (struct cp_token): Likewise.
518169689Skan	(struct cp_parser_token_tree_map_node): Likewise.
519169689Skan	* lex.c (struct resword): Move const after ENUM_BITFIELD.
520169689Skan
521169689Skan2003-11-30  Mark Mitchell  <mark@codesourcery.com>
522169689Skan
523169689Skan	PR c++/9849
524169689Skan	* parser.c (cp_lexer_prev_token): New function.
525169689Skan	(cp_parser_skip_to_closing_parenthesis): Add consume_paren
526169689Skan	parameter.
527169689Skan	(cp_parser_nested_name_specifier_opt): Add is_declaration
528169689Skan	parameter.
529169689Skan	(cp_parser_nested_name_specifier): Likewise.
530169689Skan	(cp_parser_class_or_namespace_name): Likewise.
531169689Skan	(cp_parser_class_name): Likewise.
532169689Skan	(cp_parser_template_id): Likewise.
533169689Skan	(cp_parser_template_name): Likewise.
534169689Skan	(cp_parser_id_expression): Adjust calls to
535169689Skan	cp_parser_nested_name_specifier_op, cp_parser_template_id,
536169689Skan	cp_parser_class_name.
537169689Skan	(cp_parser_unqualified_id): Likewise.
538169689Skan	(cp_parser_postfix_expression): Likewise.
539169689Skan	(cp_parser_pseudo_destructor_name): Likewise.
540169689Skan	(cp_parser_cast_expression): Likewise.
541169689Skan	(cp_parser_mem_initializer_id): Likewise.
542169689Skan	(cp_parser_simple_type_specifier): Likewise.
543169689Skan	(cp_parser_type_name): Likewise.
544169689Skan	(cp_parser_elaborated_type_specifier): Likewise.
545169689Skan	(cp_parser_qualified_namespace_specifier): Likewise.
546169689Skan	(cp_parser_using_declaration): Likewise.
547169689Skan	(cp_parser_using_directive): Likewise.
548169689Skan	(cp_parser_ptr_operator): Likewise.
549169689Skan	(cp_parser_declarator_id): Likewise.
550169689Skan	(cp_parser_class_head): Likewise.
551169689Skan	(cp_parser_base_specifier): Likewise.
552169689Skan	(cp_parser_constructor_declarator_p): Likewise.
553169689Skan	(cp_parser_direct_declarator): Fix typo in comment.
554169689Skan	(cp_parser_parenthesized_expression_list): Adjust call to
555169689Skan	cp_parser_skip_to_closing_parenthesis.
556169689Skan	(cp_parser_selection_statement): Likewise.
557169689Skan
558169689Skan2003-11-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
559169689Skan
560169689Skan	PR c++/12924
561169689Skan	* typeck.c (finish_class_member_access_expr): Handle TEMPLATE_ID_EXPR
562169689Skan	with OVERLOAD and DECL nodes as the first operand.
563169689Skan
564169689Skan2003-11-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
565169689Skan
566169689Skan	* pt.c (tsubst) <ARRAY_REF>: Remove erroneous argument to build_nt.
567169689Skan
568169689Skan2003-11-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
569169689Skan
570169689Skan	PR c++/5369
571169689Skan	* friend.c (is_friend): Handle member function of a class
572169689Skan	template as template friend.
573169689Skan	(do_friend): Likewise.
574169689Skan	* decl2.c (check_classfn): Add template_header_p parameter.
575169689Skan	* decl.c (start_decl): Adjust check_classfn call.
576169689Skan	(grokfndecl): Likewise.
577169689Skan	* pt.c (is_specialization_of_friend): New function.
578169689Skan	(uses_template_parms_level): Likewise.
579169689Skan	(push_template_decl_real): Use uses_template_parms_level.
580169689Skan	(tsubst_friend_function): Adjust check_classfn call.
581169689Skan	* cp-tree.h (check_classfn): Adjust declaration.
582169689Skan	(uses_template_parms_level): Add declaration.
583169689Skan	(is_specialization_of_friend): Likewise.
584169689Skan
585169689Skan2003-11-21  Mark Mitchell  <mark@codesourcery.com>
586169689Skan
587169689Skan	PR c++/12515
588169689Skan	* pt.c (build_non_dependent_expr): Handle GNU extension to ?:
589169689Skan	operator.
590169689Skan
591169689Skan2003-11-21  Jan Hubicka  <jh@suse.cz>
592169689Skan
593169689Skan	* parser.c (cp_parser_postfix_expression): Initialize 's' to
594169689Skan	NULL_TREE.
595169689Skan
596169689Skan2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
597169689Skan
598169689Skan	* Make-lang.in (c++.extraclean): Delete.
599169689Skan
600169689Skan2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
601169689Skan
602169689Skan	* Make-lang.in (check-g++, lang_checks): Add.
603169689Skan
604169689Skan2003-11-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
605169689Skan
606169689Skan	PR c++/12932
607169689Skan	* class.c (currently_open_derived_class): Check if
608169689Skan	current_class_type is NULL_TREE.
609169689Skan	* semantics.c (finish_call_expr): Check if
610169689Skan	currently_open_derived_class returns NULL_TREE.
611169689Skan	* cp-tree.h (DERIVED_FROM_P): Add parenthesis around PARENT
612169689Skan	parameter.
613169689Skan
614169689Skan2003-11-17  Jason Merrill  <jason@redhat.com>
615169689Skan
616169689Skan	* init.c (build_new_1): Preevaluate placement args.
617169689Skan	* call.c (build_op_delete_call): Don't expose placement args to
618169689Skan	overload resolution.
619169689Skan
620169689Skan2003-11-16  Jason Merrill  <jason@redhat.com>
621169689Skan
622169689Skan	* Make-lang.in (c++.tags): Create TAGS.sub files in each directory
623169689Skan	and TAGS files that include them for each front end.
624169689Skan
625169689Skan2003-11-15  Bernardo Innocenti  <bernie@develer.com>
626169689Skan
627169689Skan	PR c++/2294
628169689Skan	* name-lookup.c: Revert previous patch for PR c++/2294 to prevent
629169689Skan	build failure on libjava.
630169689Skan
631169689Skan2003-11-14  Giovanni Bajo  <giovannibajo@libero.it>
632169689Skan
633169689Skan	PR c++/2294
634169689Skan	* name-lookup.c (push_overloaded_decl): Always construct an OVERLOAD
635169689Skan	unless the declaration is a built-in.
636169689Skan	(set_namespace_binding): While binding OVERLOADs with only one
637169689Skan	declaration, we still need to call supplement_binding.
638169689Skan
639169689Skan2003-11-14  Mark Mitchell  <mark@codesourcery.com>
640169689Skan
641169689Skan	PR c++/12762
642169689Skan	* parser.c (cp_parser_enclosed_template_argument_list): New
643169689Skan	function.
644169689Skan	(cp_parser_template_id): Use it.
645169689Skan	(cp_parser_simple_type_specifier): Recognize invalid template
646169689Skan	syntax.
647169689Skan
648169689Skan2003-11-14  Giovanni Bajo  <giovannibajo@libero.it>
649169689Skan
650169689Skan	PR c++/2094
651169689Skan	* pt.c (unify): Add support for PTRMEM_CST and
652169689Skan	FIELD_DECL unification.
653169689Skan
654169689Skan2003-11-13  Richard Earnshaw  <rearnsha@arm.com>
655169689Skan
656169689Skan	* decl.c (grokfndecl): Change OK to type tree.
657169689Skan
658169689Skan2003-11-12  Mark Mitchell  <mark@codesourcery.com>
659169689Skan
660169689Skan	* tree.c (build_target_expr_with_type): Treate VA_ARG_EXPR like
661169689Skan	CONSTRUCTOR.
662169689Skan
663169689Skan	* decl.c (cp_make_fname_decl): When creating a top-level
664169689Skan	__FUNCTION__-like symbol, do register it with pushdecl.
665169689Skan
666169689Skan	* decl.c (finish_case_label): Do not check that we are within a
667169689Skan	switch statement here.
668169689Skan	* parser.c (struct cp_parser): Add in_iteration_statement_p and
669169689Skan	in_switch_statement_p.
670169689Skan	(cp_parser_new): Initialize them.
671169689Skan	(cp_parser_labeled_statement): Check validity of case labels
672169689Skan	here.
673169689Skan	(cp_parser_selection_statement): Set in_switch_statement_p.
674169689Skan	(cp_parser_iteration_statement): Set in_iteration_statement_p.
675169689Skan	(cp_parser_jump_statement): Check validity of break/continue
676169689Skan	statements here.
677169689Skan
678169689Skan	PR c++/12735
679169689Skan	* cp-tree.h (duplicate_decls): Return a tree.
680169689Skan	* decl.c (duplicate_decls): Clarify documentation.  Return
681169689Skan	error_mark_node to indicate a failed redeclaration.
682169689Skan	* friend.c (do_friend): Handle that case.
683169689Skan	* name-lookup.c (pushdecl): Likewise.
684169689Skan
685169689Skan2003-11-11  Jason Merrill  <jason@redhat.com>
686169689Skan
687169689Skan	* cp-tree.h (DECL_NAMESPACE_ASSOCIATIONS): New macro.
688169689Skan	* name-lookup.c (parse_using_directive): New fn.
689169689Skan	(is_associated_namespace): New fn.
690169689Skan	(arg_assoc_namespace): Also check associated namespaces.
691169689Skan	* name-lookup.h: Declare new fns.
692169689Skan	* pt.c (maybe_process_partial_specialization): Allow
693169689Skan	specialization in associated namespace.
694169689Skan	* parser.c (cp_parser_using_directive): Accept attributes.  Use
695169689Skan	parse_using_directive.
696169689Skan
697169689Skan2003-11-10  Richard Henderson  <rth@redhat.com>
698169689Skan
699169689Skan	* cvt.c (convert_to_void): Use void_zero_node after overload failure.
700169689Skan
701169689Skan2003-11-10  Gabriel Dos Reis  <gdr@integrable-solutions.net>
702169689Skan
703169689Skan	PR c++/12832
704169689Skan	* name-lookup.c (supplement_binding): Gracefully handle names
705169689Skan	used at non-class scope prior declaration.
706169689Skan
707169689Skan2003-11-06  Matt Austern  <austern@apple.com>
708169689Skan
709169689Skan	* decl.c (duplicate_decls): copy DECL_VISIBILITY field.
710169689Skan	* method.c (use_thunk): give thunk same visibility as function.
711169689Skan	* optimize.c (maybe_clone_body): copy DECL_VISIBILITY field.
712169689Skan
713169689Skan2003-11-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
714169689Skan
715169689Skan	PR c++/11616
716169689Skan	* pt.c (instantiate_pending_templates): Save and restore
717169689Skan	input_location.
718169689Skan
719169689Skan2003-11-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
720169689Skan
721169689Skan	PR c++/2019
722169689Skan	* friend.c (add_friend): Don't display previous declaration in
723169689Skan	case of duplicate friend warning.
724169689Skan
725169689Skan2003-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
726169689Skan
727169689Skan	PR c++/9810
728169689Skan	* call.c (build_over_call): Check access using primary template
729169689Skan	if FN is a member function template.
730169689Skan
731169689Skan2003-11-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
732169689Skan
733169689Skan	PR c++/12796
734169689Skan	* class.c (handle_using_decl): Set input_location before calling
735169689Skan	error_not_base_type.
736169689Skan
737169689Skan2003-10-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
738169689Skan
739169689Skan	PR c++/10371
740169689Skan	* semantics.c (finish_non_static_data_member): Handle when
741169689Skan	both processing_template_decl and qualifying_scope are true.
742169689Skan
743169689Skan2003-10-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
744169689Skan
745169689Skan	PR c++/11076
746169689Skan	* class.c (handle_using_decl): Swap arguments of error_not_base_type.
747169689Skan	* parser.c (cp_parser_direct_declarator): Only resolve typename for
748169689Skan	namespace scope declarations.
749169689Skan
750169689Skan2003-10-24  Nathan Sidwell  <nathan@codesourcery.com>
751169689Skan
752169689Skan	PR c++/12698, c++/12699, c++/12700, c++/12566
753169689Skan	* cp-tree.h (THUNK_ALIAS_P, THUNK_ALIAS): New.
754169689Skan	(debug_class, debug_thunks): New.
755169689Skan	* class.c (dump_class_hierarchy_1): New break out from ...
756169689Skan	(dump_class_hierarchy): ... here.
757169689Skan	(dump_thunk, debug_thunks, debug_class): New.
758169689Skan	(update_vtable_entry_for_fn): Add ssizetype casts. Correct
759169689Skan	continued search for primary binfo via virtual.
760169689Skan	(build_vtbl_initializer): Follow covariant thunk alias.
761169689Skan	* method.c (make_thunk): Clear DECL_THUNKS of the thunk.
762169689Skan	(finish_thunk): Look for an alias of the covariant thunk and point
763169689Skan	to it.
764169689Skan	(use_thunk): We should never use an alias.
765169689Skan	* semantics.c (emit_associated_thunks): Do not emit aliases.
766169689Skan
767169689Skan	PR c++/12566
768169689Skan	* cp-tree.h (cp_fname_init): Add TYPE pointer param.
769169689Skan	* decl.c (cp_fname_init): Add TYPE pointer param. Set it. Don't
770169689Skan	create an ad-hoc ERROR_MARK.
771169689Skan	(cp_make_fname_decl): Adjust.
772169689Skan	* pt.c (tsubst_expr): Adjust.
773169689Skan
774169689Skan2003-10-23  Jason Merrill  <jason@redhat.com>
775169689Skan
776169689Skan	PR c++/12726
777169689Skan	* tree.c (build_target_expr_with_type): Don't call force_rvalue
778169689Skan	for CONSTRUCTORs.
779169689Skan
780169689Skan2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
781169689Skan
782169689Skan	* call.c: Fix comment formatting.
783169689Skan	* class.c: Likewise.
784169689Skan	* cxx-pretty-print.c: Likewise.
785169689Skan	* init.c: Likewise.
786169689Skan	* parser.c: Likewise.
787169689Skan	* pt.c: Likewise.
788169689Skan	* semantics.c: Likewise.
789169689Skan	* tree.c: Likewise.
790169689Skan	* typeck.c: Likewise.
791169689Skan	* typeck2.c: Likewise.
792169689Skan
793169689Skan2003-10-21  Mark Mitchell  <mark@codesourcery.com>
794169689Skan
795169689Skan	PR c++/11962
796169689Skan	* typeck.c (build_x_conditional_expr): Handle missing middle
797169689Skan	operands in templates.
798169689Skan	* mangle.c (write_expression): Issue errors about attempts to
799169689Skan	mangle a non-existant middle operator to the ?: operator.
800169689Skan
801169689Skan2003-10-21  Robert Bowdidge   <bowdidge@apple.com>
802169689Skan
803169689Skan	* decl.c (cp_finish_decl): Remove clause intended for asm directives
804169689Skan	  in struct or class fields: this code is never executed.
805169689Skan
806169689Skan2003-10-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
807169689Skan
808169689Skan	* decl.c (start_decl): Exit if push_template_decl returns
809169689Skan	error_mark_node.
810169689Skan
811169689Skan2003-10-20  Kazu Hirata  <kazu@cs.umass.edu>
812169689Skan
813169689Skan	* ChangeLog: Fix typos.
814169689Skan	* call.c: Fix comment typos.
815169689Skan	* class.c: Likewise.
816169689Skan	* cp-tree.h: Likewise.
817169689Skan	* cvt.c: Likewise.
818169689Skan	* cxx-pretty-print.c: Likewise.
819169689Skan	* decl.c: Likewise.
820169689Skan	* decl2.c: Likewise.
821169689Skan	* init.c: Likewise.
822169689Skan	* mangle.c: Likewise.
823169689Skan	* name-lookup.c: Likewise.
824169689Skan	* parser.c: Likewise.
825169689Skan	* search.c: Likewise.
826169689Skan	* semantics.c: Likewise.
827169689Skan	* tree.c: Likewise.
828169689Skan	* typeck.c: Likewise.
829169689Skan
830169689Skan2003-10-20  Jan Hubicka  <jh@suse.cz>
831169689Skan
832169689Skan	* decl.c (start_cleanup_fn):  Set DECL_DECLARED_INLINE_P to deffer
833169689Skan	the expansion.
834169689Skan
835169689Skan2003-10-20  Mark Mitchell  <mark@codesourcery.com>
836169689Skan
837169689Skan	* Make-lang.in (c++.install-info): Remove.
838169689Skan
839169689Skan2003-10-20  Jason Merrill  <jason@redhat.com>
840169689Skan
841169689Skan	* class.c (layout_class_type): Set DECL_ARTIFICIAL on padding
842169689Skan	field.
843169689Skan
844169689Skan2003-10-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
845169689Skan
846169689Skan	PR c++/9781, c++/10583, c++/11862
847169689Skan	* decl.c (cp_finish_decl): Exit immediately if decl is an
848169689Skan	error_mark_node.
849169689Skan	* pt.c (push_template_decl_real): Return error_mark_node for
850169689Skan	invalid template declaration of variable.
851169689Skan
852169689Skan2003-10-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
853169689Skan
854169689Skan	PR c++/12495
855169689Skan	* pt.c (lookup_template_class): Handle when current_class_type
856169689Skan	is a local class.
857169689Skan
858169689Skan2003-10-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
859169689Skan
860169689Skan	PR c++/2513
861169689Skan	* decl.c (make_typename_type): Use dependent_type_p.
862169689Skan	(make_unbound_class_template): Likewise.
863169689Skan	* pt.c (instantiate_class_template): Increment
864169689Skan	processing_template_decl during substitution of template friend
865169689Skan	function.  Preincrement processing_template_decl rather than
866169689Skan	postincrement.
867169689Skan	(get_mostly_instantiated_function_type): Increment
868169689Skan	processing_template_decl during partial substitution of function
869169689Skan	type.
870169689Skan
871169689Skan2003-10-15  Jan Hubicka  <jh@suse.cz>
872169689Skan
873169689Skan	PR c++/12574
874169689Skan	* decl2.c (cxx_callgraph_analyze_expr): Deal with baselink.
875169689Skan
876169689Skan2003-10-14  Jason Merrill  <jason@redhat.com>
877169689Skan
878169689Skan	PR c++/11878
879169689Skan	* tree.c (build_target_expr_with_type): Call force_rvalue for
880169689Skan	classes with non-trivial copy ctors.
881169689Skan
882169689Skan	PR c++/11063
883169689Skan	* typeck.c (build_modify_expr): Call convert rather than abort.
884169689Skan
885169689Skan2003-10-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
886169689Skan
887169689Skan	Breack out decl.c (3/n)
888169689Skan	* name-lookup.c: Include flags.h
889169689Skan	(lookup_name_current_level): Make static.
890169689Skan	(add_decl_to_level): Likewise.
891169689Skan	(push_local_binding): Likewise.
892169689Skan	(push_overloaded_decl): Likewise.
893169689Skan	(lookup_using_namespace): Likewise.
894169689Skan	(qualified_lookup_using_namespace): Likewise.
895169689Skan	(lookup_type_current_level): Likewise.
896169689Skan	(unqualified_namespace_lookup): Likewise.
897169689Skan	(namespace_ancestor): Likewise.
898169689Skan	(push_using_directive): Likewise.
899169689Skan	* decl.c (pushdecl): Move to name-lookup.c.
900169689Skan	(pushdecl_top_level_1): Likewise.
901169689Skan	(pushdecl_top_level): Likewise.
902169689Skan	(pushdecl_top_level_and_finish): Likewise.
903169689Skan	(maybe_push_decl): Likewise.
904169689Skan	(push_using_decl): Likewise.
905169689Skan	(push_overloaded_decl): Likewise.
906169689Skan	(make_anon_name): Likewise.
907169689Skan	(anon_cnt): Likewise.
908169689Skan	(clear_anon_tags): Likewise.
909169689Skan	(maybe_inject_for_scope_var): Likewise.
910169689Skan	(check_for_out_of_scope_variable): Likewise.
911169689Skan	* Make-lang.in (cp/name-lookup.o): Depend on flags.h.
912169689Skan	* decl.c (warn_extern_redeclared_static): Export.
913169689Skan	* cp-tree.h (warn_extern_redeclared_static): Declare.
914169689Skan
915169689Skan2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
916169689Skan
917169689Skan	* Make-lang.in: Replace uses of $(target_alias) with
918169689Skan	$(target_noncanonical).
919169689Skan
920169689Skan2003-10-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
921169689Skan
922169689Skan	* ChangeLog: Add PR number to patch for PR c++/12370.
923169689Skan
924169689Skan2003-10-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
925169689Skan
926169689Skan	* name-lookup.h (cxx_scope_find_binding_for_name): Don't export.
927169689Skan	(binding_for_name): Likewise.
928169689Skan	(cxx_binding_clear): Move to name-lookup.c.
929169689Skan	* name-lookup.c (cxx_scope_find_binding_for_name): Now static.
930169689Skan	(binding_for_name): Likewise.
931169689Skan	* decl2.c (is_ancestor): Move to name-lookup.c
932169689Skan	(namespace_ancestor): Likewise.
933169689Skan	(add_using_namespace): Likewise.
934169689Skan	(ambiguous_decl): Likewise.
935169689Skan	(lookup_using_namespace): Likewise.
936169689Skan	(qualified_lookup_using_namespace): Likewise.
937169689Skan	(set_decl_namespace): Likewise.
938169689Skan	(decl_namespace): Likewise.
939169689Skan	(current_decl_namespace): Likewise.
940169689Skan	(push_decl_namespace): Likewise.
941169689Skan	(pop_decl_namespace): Likewise.
942169689Skan	(push_scope): Likewise.
943169689Skan	(pop_scope): Likewise.
944169689Skan	(struct arg_lookup): Likewise.
945169689Skan	(arg_assoc): Likewise.
946169689Skan	(arg_assoc_args): Likewise.
947169689Skan	(arg_assoc_type): Likewise.
948169689Skan	(add_function): Likewise.
949169689Skan	(arg_assoc_namespace): Likewise.
950169689Skan	(arg_assoc_class): Likewise.
951169689Skan	(arg_assoc_template_arg): Likewise.
952169689Skan	(do_namespace_alias): Likewise.
953169689Skan	(validate_nonmember_using_decl): Likewise.
954169689Skan	(do_nonmember_using_decl): Likewise.
955169689Skan	(do_toplevel_using_decl): Likewise.
956169689Skan	(do_local_using_decl): Likewise.
957169689Skan	(do_class_using_decl): Likewise.
958169689Skan	(do_using_directive): Likewise.
959169689Skan	(constructor_name_full): Likewise.
960169689Skan	(constructor_name): Likewise.
961169689Skan	(constructor_name_p): Likewise.
962169689Skan
963169689Skan2003-10-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
964169689Skan
965169689Skan	Break out decl.c (2/n)
966169689Skan	* name-lookup.c: Include diagnostic.h
967169689Skan	(cxx_binding_free): Make static.
968169689Skan	(cxx_binding_make): Likewise.
969169689Skan	(binding_table_new): Likewise
970169689Skan	(binding_table_free): Likewise.
971169689Skan	(binding_table_insert): Likewise.
972169689Skan	(binding_table_find_anon_type): Likewise.
973169689Skan	(binding_table_reverse_maybe_remap): Likewise.
974169689Skan	(supplement_binding): Likewise.
975169689Skan	* name-lookup.h (global_scope_name): Declare extern.
976169689Skan	(global_type_node): Likewise.
977169689Skan	(cxx_binding_free): Don't export.
978169689Skan	(cxx_binding_make): Likewise.
979169689Skan	(binding_table_new): Likewise.
980169689Skan	(binding_table_free): Likewise.
981169689Skan	(binding_table_insert): Likewise.
982169689Skan	(binding_table_find_anon_type): Likewise.
983169689Skan	(binding_table_reverse_maybe_remap): Likewise.
984169689Skan	* Make-lang.in (cp/name-lookup.o): Depend on $(DIAGNOSTIC_H)
985169689Skan	* decl.c (lookup_namespace_name): Move to name-lookup.c
986169689Skan	(select_decl): Likewise.
987169689Skan	(unqualified_namespace_lookup): Likewise.
988169689Skan	(lookup_qualified_name): Likewise.
989169689Skan	(lookup_name_real): Likewise.
990169689Skan	(lookup_name_nonclass): Likewise.
991169689Skan	(lookup_function_nonclass): Likewise.
992169689Skan	(lookup_name): Likewise.
993169689Skan	(lookup_name_current_level): Likewise.
994169689Skan	(lookup_type_current_level): Likewise.
995169689Skan	(lookup_flags): Likewise.
996169689Skan	(qualify_lookup): Likewise.
997169689Skan	(lookup_tag): Likewise.
998169689Skan	(lookup_tag_reverse): Likewise.
999169689Skan	(getdecls): Likewise.
1000169689Skan	(storedecls): Remove.
1001169689Skan	(cxx_remember_type_decls): Move to name-lookup.c.
1002169689Skan	(global_bindings_p): Likewise.
1003169689Skan	(innermost_nonclass_level): Likewise.
1004169689Skan	(toplevel_bindings_p): Likewise.
1005169689Skan	(namespace_bindings_p): Likewise.
1006169689Skan	(kept_level_p): Likewise.
1007169689Skan	(innermost_scope_kind): Likewise.
1008169689Skan	(template_parm_scope_p): Likewise.
1009169689Skan	(push_binding): Likewise.
1010169689Skan	(push_local_binding): Likewise.
1011169689Skan	(add_decl_to_level): Likewise.  Make extern.
1012169689Skan	(push_class_binding): Move to name-lookup.c.
1013169689Skan	(resume_level): Likewise.  Rename to resume_scope.
1014169689Skan	(begin_scope): Move to name-lookup.c.
1015169689Skan	(indent): Likewise.
1016169689Skan	(binding_depth): Likewise.
1017169689Skan	(is_class_level): Likewise.
1018169689Skan	(cxx_scope_descriptor): Likewise.
1019169689Skan	(cxx_scope_debug): Likewise.
1020169689Skan	(namespace_scope_ht_size): Likewise.
1021169689Skan	(leave_scope): Likewise.
1022169689Skan	(pushlevel_class): Likewise.
1023169689Skan	(poplevel_class): Likewise.
1024169689Skan	(clear_identifier_class_values): Likewise.
1025169689Skan	(pushdecl_with_scope): Likewise.
1026169689Skan	(pushdecl_namespace_level): Likewise.
1027169689Skan	(pushdecl_class_level): Likewise.
1028169689Skan	(push_class_level_binding): Likewise.
1029169689Skan	(push_using_directive): Likewise.
1030169689Skan	(identifier_global_value): Likewise.
1031169689Skan	(keep_next_level_flag): Likewise.
1032169689Skan	(keep_next_level): Likewise.
1033169689Skan	(free_binding_level): Likewise.
1034169689Skan	(set_class_shadows): Likewise.
1035169689Skan	(maybe_push_cleanup_level): Likewise.
1036169689Skan	(cp_namespace_decls): Likewise.
1037169689Skan	(bt_print_entry): Likewise.
1038169689Skan	(print_binding_level): Likewise.
1039169689Skan	(print_other_binding_stack): Likewise.
1040169689Skan	(print_binding_stack): Likewise.
1041169689Skan	(push_namespace): Likewise.
1042169689Skan	(pop_namespace): Likewise.
1043169689Skan	(push_nested_namespace): Likewise.
1044169689Skan	(pop_nested_namespace): Likewise.
1045169689Skan	(cxx_saved_binding_make): Likewise.
1046169689Skan	(struct cxx_saved_binding_make): Likewise.
1047169689Skan	(store_bindings): Likewise.
1048169689Skan	(maybe_push_to_top_level): Likewise.
1049169689Skan	(push_to_top_level): Likewise.
1050169689Skan	(pop_from_top_level): Likewise.
1051169689Skan	(identifier_type_value): Likewise.
1052169689Skan	(set_identifier_type_value): Likewise.
1053169689Skan	(set_identifier_type_value_with_scope): Likewise.
1054169689Skan	(pop_everything): Likewise.
1055169689Skan	(pushtag): Likewise.
1056169689Skan	(follow_tag_typedef): Likewise.
1057169689Skan	(maybe_process_template_type_declaration): Likewise.
1058169689Skan	(pop_binding): Likewise.
1059169689Skan	* cp-tree.h: Move corresponding declarations to name-lookup.h
1060169689Skan
1061169689Skan2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
1062169689Skan
1063169689Skan	* cvt.c (ocp_convert): Move warning to C common code.
1064169689Skan
1065169689Skan2003-10-09  Jason Merrill  <jason@redhat.com>
1066169689Skan
1067169689Skan	PR c++/6392
1068169689Skan	* tree.c (build_cplus_array_type): Handle all quals the same.
1069169689Skan	(cp_build_qualified_type_real): Look through arrays first.
1070169689Skan
1071169689Skan	* tree.c (build_cplus_new): Use build_decl to create a VAR_DECL.
1072169689Skan	(build_target_expr_with_type): Likewise.
1073169689Skan
1074169689Skan	* pt.c (instantiate_class_template): Sanity check that our
1075169689Skan	enclosing class has been instantiated.
1076169689Skan
1077169689Skan2003-10-08  Giovanni Bajo  <giovannibajo@libero.it>
1078169689Skan
1079169689Skan	* cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS.
1080169689Skan	* error.c (dump_function_decl): Use it to skip the dump of the
1081169689Skan	arguments.
1082169689Skan	(dump_expr): When dumping a declaration found within an
1083169689Skan	expression, always set TFF_NO_FUNCTION_ARGUMENTS
1084169689Skan	in the flags.
1085169689Skan
1086169689Skan2003-10-08  Giovanni Bajo  <giovannibajo@libero.it>
1087169689Skan
1088169689Skan	PR c++/11097
1089169689Skan	* pt.c (tsubst_decl): Substitute also the DECL_NAME node of
1090169689Skan	USING_DECL.
1091169689Skan
1092169689Skan2003-10-06  Mark Mitchell  <mark@codesourcery.com>
1093169689Skan
1094169689Skan	PR c++/10147
1095169689Skan	* call.c (initialize_reference): Tweak error message.
1096169689Skan	* cxx-pretty-print.h (cxx_pretty_printer_flags): Remove
1097169689Skan	pp_cxx_flag_qualified_id and pp_cxx_flag_global_scope.
1098169689Skan	* cxx-pretty-print.c (pp_cxx_id_expression): Always display
1099169689Skan	qualified entities using qualified names.
1100169689Skan
1101169689Skan	PR c++/12337
1102169689Skan	* init.c (build_new_1): Make sure that the expression returned is
1103169689Skan	not an lvalue.
1104169689Skan
1105169689Skan	PR c++/12344, c++/12236, c++/8656
1106169689Skan	* decl.c (start_function): Do not ignore attributes embedded in a
1107169689Skan	function declarator.
1108169689Skan
1109169689Skan2003-10-06  Mark Mitchell  <mark@codesourcery.com>
1110169689Skan
1111169689Skan	* Make-lang.in (c++.info): Remove.
1112169689Skan	(c++.dvi): Remove.
1113169689Skan	(c++.generated-manpages): Replace with ...
1114169689Skan	(generated-manpages): ... this.
1115169689Skan
1116169689Skan2003-10-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1117169689Skan
1118169689Skan	* decl.c (struct cp_binding_level): Move to name-lookup.h
1119169689Skan	(current_binding_level): Likewise.
1120169689Skan	(class_binding_level): Likewise.
1121169689Skan	* cp-tree.h (enum scope_kind): Likewise.
1122169689Skan
1123169689Skan2003-10-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1124169689Skan
1125169689Skan	* name-lookup.c (binding_entry_free): Nullify name and type
1126169689Skan	fields.
1127169689Skan
1128169689Skan2003-10-02  Mark Mitchell  <mark@codesourcery.com>
1129169689Skan
1130169689Skan	PR c++/12486
1131169689Skan	* typeck.c (finish_class_member_access_expr): Issue diagnostic
1132169689Skan	on erroneous use of qualified name.
1133169689Skan
1134169689Skan2003-09-30  Richard Henderson  <rth@redhat.com>
1135169689Skan
1136169689Skan	PR c++/12370
1137169689Skan	* decl.c (duplicate_decls): Copy DECL_SAVED_INSNS too.
1138169689Skan
1139169689Skan2003-09-30  Kelley Cook  <kelleycoook@wideopenwest.com>
1140169689Skan
1141169689Skan	* g++spec.c: Convert to ISO C90 prototypes.
1142169689Skan	* parser.c: Likewise.
1143169689Skan
1144169689Skan2003-09-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1145169689Skan
1146169689Skan	* decl.c (pop_binding): Don't mess with nullifying binding->scope
1147169689Skan	here.
1148169689Skan	* name-lookup.c: Re-format.
1149169689Skan	(cxx_binding_free): Nullify binding->scope.
1150169689Skan
1151169689Skan2003-09-29  Jan Hubicka  <jh@suse.cz>
1152169689Skan
1153169689Skan	PR C++/12047
1154169689Skan	* except.c (build_eh_type_type): Call mark_used on the type.
1155169689Skan
1156169689Skan2003-09-28  Richard Henderson  <rth@redhat.com>
1157169689Skan
1158169689Skan	* typeck.c (c_expand_asm_operands): Take location_t, instead of
1159169689Skan	individual file and line.
1160169689Skan
1161169689Skan2003-09-28  Andreas Jaeger  <aj@suse.de>
1162169689Skan
1163169689Skan	* decl.c (cxx_builtin_type_decls): Convert to ISO C90 function
1164169689Skan	definition.
1165169689Skan	* init.c (push_base_cleanups): Likewise.
1166169689Skan	* decl2.c (finish_file): Likewise.
1167169689Skan	* mangle.c (init_mangle): Likewise.
1168169689Skan	(dump_substitution_candidates): Likewise.
1169169689Skan	* search.c: Likewise.
1170169689Skan
1171169689Skan2003-09-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1172169689Skan
1173169689Skan	* name-lookup.h (get_global_value_if_present): New function.
1174169689Skan	(is_typename_at_global_scope): Likewise.
1175169689Skan	* except.c (do_begin_catch): Use get_global_value_if_present.
1176169689Skan	(do_end_catch): Likewise.
1177169689Skan	(do_allocate_exception): Likewise.
1178169689Skan	(do_free_exception): Likewise.
1179169689Skan	(build_throw): Likewise.
1180169689Skan	* parser.c (cp_parser_member_declaration): Likewise.
1181169689Skan	* rtti.c (throw_bad_cast): Likewise.
1182169689Skan	(throw_bad_typeid): Likewise.
1183169689Skan	* decl.c (check_tag_decl): Use is_typename_at_global_scope.
1184169689Skan	(grokdeclarator): Likewise.
1185169689Skan	* cp-tree.h (global_namespace): Move to name-lookup.h
1186169689Skan	* call.c (call_builtin_trap): Tidy.
1187169689Skan
1188169689Skan2003-09-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1189169689Skan
1190169689Skan	PR c++/11415
1191169689Skan	* parser.c (cp_parser_nested_name_specifier_opt): Issue correct
1192169689Skan	error message when parser->scope is global_namespace.
1193169689Skan
1194169689Skan2003-09-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1195169689Skan
1196169689Skan	* cp-tree.h, name-lookup.h, decl.c, decl2.c: Remove reference to
1197169689Skan	macros BINDING_SCOPE, BINDING_VALUE and BINDING_TYPE.
1198169689Skan
1199169689Skan2003-09-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1200169689Skan
1201169689Skan	* decl.c (pop_binding_level, suspend_binding_level,
1202169689Skan	find_class_binding_level): Merge into leave_scope.  Remove.
1203169689Skan	(leave_scope):  New function.
1204169689Skan	(poplevel): Update.
1205169689Skan	(poplevel_class): Likewise.
1206169689Skan	(pop_namespace): Likewise.
1207169689Skan
1208169689Skan2003-09-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1209169689Skan
1210169689Skan	PR c++/5655
1211169689Skan	* parser.c (cp_parser_check_access_in_redeclaration): New function.
1212169689Skan	(cp_parser_member_declaration): Use it.
1213169689Skan	(cp_parser_template_declaration_after_export): Likewise.
1214169689Skan
1215169689Skan2003-09-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1216169689Skan
1217169689Skan	* cp-tree.h (scope_kind): Add new enumerator.
1218169689Skan	(keep_next_level): Change parameter type to bool.
1219169689Skan	(begin_scope):  Change prototype.
1220169689Skan	(pushlevel): Remove declaration.
1221169689Skan	* decl.c (push_binding_level): Fold in begin_scope.  Remove.
1222169689Skan	(struct cp_binding_level): Remove tag_tranparent field.  Make keep
1223169689Skan	of bitsize one.
1224169689Skan	(keep_next_level_flag): Make a bool.
1225169689Skan	(cxx_scope_descriptor): Update scope names table
1226169689Skan	(make_cxx_scope): Fold in begin_scope.  Remove..
1227169689Skan	(namespace_scope_ht_size): New function.
1228169689Skan	(begin_scope): Change prototype.  Return a scope.  Tidy.
1229169689Skan	(kept_level_p): Update.
1230169689Skan	(pushlevel): Remove.
1231169689Skan	(maybe_push_cleanup_level): Simplify.
1232169689Skan	(poplevel): Update for sk_cleanup and keep change.
1233169689Skan	(print_binding_level): Likewise.
1234169689Skan	(initial_push_namespace_scope): Fold in begin_scope.  Remove.
1235169689Skan	(push_namespace): Update.
1236169689Skan	(pushtag): Likewise.
1237169689Skan	(lookup_tag): Likewise.
1238169689Skan	(lookup_name_current_level): Likewise.
1239169689Skan	(lookup_type_current_level): Likewise.
1240169689Skan	(cxx_init_decl_processing): Likewise.
1241169689Skan	(start_function): Likewise.
1242169689Skan	(begin_function_body): Likewise.
1243169689Skan	(start_method): Likewise.
1244169689Skan	* pt.c (push_inline_template_parms_recursive): Likewise.
1245169689Skan	(begin_template_parm_list): Likewise.
1246169689Skan	(begin_specialization): Likewise.
1247169689Skan	* semantics.c (do_pushlevel): Likewise.
1248169689Skan	(begin_compound_stmt): Likewise.
1249169689Skan	(begin_stmt_expr): Likewise.
1250169689Skan
1251169689Skan2003-09-21  Richard Henderson  <rth@redhat.com>
1252169689Skan
1253169689Skan	* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
1254169689Skan	method.c, optimize.c, pt.c, semantics.c, tree.c: Revert.
1255169689Skan
1256169689Skan2003-09-21  Richard Henderson  <rth@redhat.com>
1257169689Skan
1258169689Skan	* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
1259169689Skan	method.c, optimize.c, pt.c, semantics.c, tree.c: Update for
1260169689Skan	DECL_SOURCE_LOCATION rename and change to const.
1261169689Skan
1262169689Skan2003-09-20  Richard Henderson  <rth@redhat.com>
1263169689Skan
1264169689Skan	* decl.c, decl2.c, pt.c: Use %J in diagnostics.
1265169689Skan
1266169689Skan2003-09-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1267169689Skan
1268169689Skan	PR c++/157
1269169689Skan	* parser.c (cp_parser_direct_declarator): Clear
1270169689Skan	parser->num_template_parameter_lists when parsing function
1271169689Skan	parameters.
1272169689Skan	(cp_parser_constructor_declarator_p): Likewise.
1273169689Skan
1274169689Skan2003-09-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1275169689Skan
1276169689Skan	PR c++/495
1277169689Skan	* pt.c (tsubst_friend_class): Only use innermost template
1278169689Skan	arguments for the injected friend class template.
1279169689Skan
1280169689Skan2003-09-19  Nathan Sidwell  <nathan@codesourcery.com>
1281169689Skan
1282169689Skan	PR c++/12332
1283169689Skan	* pt.c (instantiate_class_template): Increment
1284169689Skan	processing_template_decl around the tsubst of a template member
1285169689Skan	function.
1286169689Skan
1287169689Skan2003-09-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1288169689Skan
1289169689Skan	* decl.c (cxx_scope_descriptor): Fix thinko.
1290169689Skan	(struct cp_binding_level): Adjust type of binding_depth field.
1291169689Skan
1292169689Skan2003-09-18  Danny Smith  <dannysmith@users.sourceforge.net>
1293169689Skan
1294169689Skan	PR c++/12320
1295169689Skan	* call.c (type_passed_as): Check for incomplete type.
1296169689Skan	(convert_for_arg_passing): Likewise.
1297169689Skan
1298169689Skan2003-09-18  Nathan Sidwell  <nathan@codesourcery.com>
1299169689Skan
1300169689Skan	PR c++/9848
1301169689Skan	* optimize.c (maybe_clone_body): Don't set MARK_USED on parameters
1302169689Skan	here.
1303169689Skan	* semantics.c (expand_body): Set it here on the remaining clones.
1304169689Skan
1305169689Skan2003-09-18  Roger Sayle  <roger@eyesopen.com>
1306169689Skan
1307169689Skan	* lex.c (init_operators): Remove operator_name_info for FFS_EXPR.
1308169689Skan	* class.c (instantiate_type): Remove FFS_EXPR case.
1309169689Skan
1310169689Skan2003-09-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1311169689Skan
1312169689Skan	* ChangeLog: Fix recent commit.
1313169689Skan
1314169689Skan2003-09-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1315169689Skan
1316169689Skan	* ChangeLog: Add PR number to patch for PR c++/12316.
1317169689Skan
1318169689Skan2003-09-18  Gabriel Dos Reis <gdr@integrable-solutions.net>
1319169689Skan
1320169689Skan	* error.c (dump_type): Simplify.  Use pp_type_specifier_seq for
1321169689Skan	"C" types.
1322169689Skan	* cxx-pretty-print.c (pp_cxx_type_specifier_seq): Fix thinko.
1323169689Skan
1324169689Skan2003-09-17  Richard Henderson  <rth@redhat.com>
1325169689Skan
1326169689Skan	* semantics.c (expand_body): Don't save/restore input_location.
1327169689Skan
1328169689Skan2003-09-17  Mark Mitchell  <mark@codesourcery.com>
1329169689Skan
1330169689Skan	PR c++/12266
1331169689Skan	* cp-tree.h (tsubst_flags_t): Add tf_conv.
1332169689Skan	* class.c (standard_conversion): Pass tf_conv to
1333169689Skan	instantiate_type.
1334169689Skan	(resolve_address_of_overloaded_function): Do not call mark_used
1335169689Skan	when just checking conversions.
1336169689Skan
1337169689Skan	PR debug/12066
1338169689Skan	* cp-lang.c (LANG_HOOKS_BUILTIN_TYPE_DECLS): Define.
1339169689Skan	* cp-tree.h (cxx_builtin_type_decls): Declare.
1340169689Skan	* decl.c (builtin_type_decls): New variables.
1341169689Skan	(cxx_builtin_type_decls): New function.
1342169689Skan	(record_builtin_type): Add to builtin_type_decls.
1343169689Skan
1344169689Skan2003-09-17  Richard Henderson  <rth@redhat.com>
1345169689Skan
1346169689Skan	PR c++/12316
1347169689Skan	* semantics.c (expand_or_defer_fn): Inc/dec function_depth.
1348169689Skan
1349169689Skan2003-09-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1350169689Skan
1351169689Skan	PR c++/7939
1352169689Skan	* typeck.c (comptypes): Don't ICE when its first argument is
1353169689Skan	error_mark_node.
1354169689Skan	(compparms): Reverse the arguments of same_type_p.
1355169689Skan
1356169689Skan2003-09-15  Nathan Sidwell  <nathan@codesourcery.com>
1357169689Skan
1358169689Skan	PR c++/12184
1359169689Skan	* typeck.c (convert_arguments): Return error_mark_node for an
1360169689Skan	incomplete parameter. Make error message more informative.
1361169689Skan
1362169689Skan2003-09-12  Mark Mitchell  <mark@codesourcery.com>
1363169689Skan
1364169689Skan	PR c++/3907
1365169689Skan	* class.c (maybe_note_name_used_in_class): Refine test for whether
1366169689Skan	or not we are in a class scope.
1367169689Skan
1368169689Skan	* cp-tree.h (language_function): Remove x_expanding_p.
1369169689Skan	(expanding_p): Remove.
1370169689Skan	(doing_semantic_analysis_p): Remove.
1371169689Skan	(scope_kind): Add sk_function_parms, sk_class,
1372169689Skan	sk_namespace.
1373169689Skan	(innermost_scope_kind): New method.
1374169689Skan	* call.c (cxx_type_promotes_to): Use type_decays_to.
1375169689Skan	* cp-lang.c (LANG_HOOKS_PUSHLEVEL): Redefine.
1376169689Skan	(LANG_HOOKS_POPLEVEL): Likewise.
1377169689Skan	* decl.c (cp_binding_level): Remove parm_flag, template_parms_p,
1378169689Skan	template_spec_p, namespace_p, is_for_scope, is_try_scope, and
1379169689Skan	is_catch_scope.  Add kind and explicit_spec_p.
1380169689Skan	(cxx_scope_descriptor): Use a lookup table.
1381169689Skan	(find_class_binding_level): Use "kind" field in binding_level, not
1382169689Skan	the various flags.
1383169689Skan	(pop_binding_level): Likewise.
1384169689Skan	(innermost_nonclass_level): Likewise.
1385169689Skan	(toplevel_bindings_p): Likewise.
1386169689Skan	(namespace_bindings_p): Likewise.
1387169689Skan	(template_parm_scope_p): Likewise.
1388169689Skan	(innermost_scope_kind): New method.
1389169689Skan	(current_tmpl_spec_kind): Use "kind" field in binding_level, not
1390169689Skan	the various flags.
1391169689Skan	(pushlevel): Remove check for doing_semantic_analysis_p.
1392169689Skan	(begin_scope): Simplify.
1393169689Skan	(add_decl_to_level): Use "kind" field in binding_level, not
1394169689Skan	the various flags.
1395169689Skan	(push_local_binding): Likewise.
1396169689Skan	(pop_label): Remove check for doing_semantic_analysis_p.
1397169689Skan	(poplevel): Use "kind" field in binding_level, not
1398169689Skan	the various flags.
1399169689Skan	(set_block): Remove check for doing_semantic_analysis_p.
1400169689Skan	(pushlevel_class): Use "kind" field in binding_level, not
1401169689Skan	the various flags.
1402169689Skan	(poplevel_class): Likewise.
1403169689Skan	(initial_push_namespace_scope): Likewise.
1404169689Skan	(maybe_push_to_top_level): Likewise.
1405169689Skan	(set_identifier_type_value_with_scope): Likewise.
1406169689Skan	(pop_everything): Likewise.
1407169689Skan	(maybe_process_template_type_declaration): Likewise.
1408169689Skan	(pushtag): Likewise.
1409169689Skan	(pushdecl): Likewise.
1410169689Skan	(pushdecl_with_scope): Likewise.
1411169689Skan	(check_previous_goto_1): Likewise.
1412169689Skan	(define_label): Likewise.
1413169689Skan	(finish_case_label): Likewise.
1414169689Skan	(lookup_tag): Likewise.
1415169689Skan	(unqualified_namespace_lookup): Likewise.
1416169689Skan	(lookup_name_real): Likewise.
1417169689Skan	(lookup_name_current_level): Likewise.
1418169689Skan	(lookup_type_current_level): Likewise.
1419169689Skan	(record_builtin_type): Likewise.
1420169689Skan	(cp_make_fname_decl): Likewise.
1421169689Skan	(maybe_inject_for_scope_var): Likewise.
1422169689Skan	(cp_finish_decl): Remove check for doing_semantic_analysis_p.
1423169689Skan	(start_function): Use begin_scope, not pushlevel.
1424169689Skan	(finish_function): Use "kind" field in binding_level, not
1425169689Skan	the various flags.
1426169689Skan	(start_method): Use begin_scope, not pushlevel.
1427169689Skan	(make_label_decl): Do not check expanding_p.
1428169689Skan	(save_function-data): Do not set expanding_p.
1429169689Skan	(cxx_push_function_context): Do not clear expanding_p.
1430169689Skan	* semantics.c (cxx_expand_function_start): Do not set expanding_p.
1431169689Skan
1432169689Skan2003-09-14  Mark Mitchell  <mark@codesourcery.com>
1433169689Skan
1434169689Skan	* class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for
1435169689Skan	an bit-field whose width exceeds that of its type.
1436169689Skan
1437169689Skan2003-09-14  Geoffrey Keating  <geoffk@apple.com>
1438169689Skan
1439169689Skan	* rtti.c (get_tinfo_decl): Set TREE_PUBLIC for typeinfo decls.
1440169689Skan
1441169689Skan2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>
1442169689Skan
1443169689Skan	* ChangeLog: Follow spelling conventions.
1444169689Skan	* parser.c: Likewise.
1445169689Skan
1446169689Skan2003-09-13  Richard Henderson  <rth@redhat.com>
1447169689Skan
1448169689Skan	* decl2.c (finish_file): Check cgraph_assemble_pending_functions
1449169689Skan	during relaxation loop.
1450169689Skan
1451169689Skan2003-09-11  David Edelsohn  <edelsohn@gnu.org>
1452169689Skan
1453169689Skan	* decl2.c (var_finalized_p): Swap arms of conditional.
1454169689Skan
1455169689Skan2003-09-10  Nathan Sidwell  <nathan@codesourcery.com>
1456169689Skan
1457169689Skan	PR c++/11788
1458169689Skan	* typeck.c (build_address): If it is a function, mark it used.
1459169689Skan	(build_unary_op): Do not lose object's side-effects when taking
1460169689Skan	address of static member function.
1461169689Skan	* class.c (resolve_address_of_overloaded_function): Use
1462169689Skan	tsubst_flags_t parameter. Only expect overload sets. Adjust.
1463169689Skan	(instantiate_type): Adjust flags passing. Do not lose object's
1464169689Skan	side-effects when taking address of static member function.
1465169689Skan
1466169689Skan2003-09-11  Richard Henderson  <rth@redhat.com>
1467169689Skan
1468169689Skan	* semantics.c (expand_or_defer_fn): Update for new
1469169689Skan	cgraph_finalize_function argument.
1470169689Skan
1471169689Skan2003-09-10  Richard Henderson  <rth@redhat.com>
1472169689Skan
1473169689Skan	* decl2.c (cxx_callgraph_analyze_expr): Mark argument unused.
1474169689Skan
1475169689Skan2003-09-10  Jan Hubicka  <jh@suse.cz>
1476169689Skan
1477169689Skan	* decl2.c (var_finalized_p): New.
1478169689Skan	(maybe_emit_vtables, write_out_vars, finish_file): Use it.
1479169689Skan
1480169689Skan2003-09-10  Richard Henderson  <rth@redhat.com>
1481169689Skan
1482169689Skan	* decl2.c (cxx_callgraph_analyze_expr): New, from corpse of
1483169689Skan	mark_member_pointers.
1484169689Skan	(lower_function): Remove.
1485169689Skan	* cp-tree.h: Update to match.
1486169689Skan	* cp-lang.c (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): New.
1487169689Skan	(LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Remove.
1488169689Skan
1489169689Skan2003-09-09  Richard Henderson  <rth@redhat.com>
1490169689Skan
1491169689Skan	* semantics.c (expand_or_defer_fn): Update call to
1492169689Skan	cgraph_finalize_function.
1493169689Skan
1494169689Skan	* semantics.c (expand_or_defer_fn): Use cgraph_finalize_function
1495169689Skan	always.
1496169689Skan
1497169689Skan	* decl2.c (finish_file): Avoid out-of-bounds array reference
1498169689Skan	during memmove.
1499169689Skan
1500169689Skan2003-09-09  Richard Henderson  <rth@redhat.com>
1501169689Skan
1502169689Skan	* decl2.c (mark_member_pointers): Rename from
1503169689Skan	mark_member_pointers_and_eh_handlers and don't check eh handlers.
1504169689Skan
1505169689Skan2003-09-09  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
1506169689Skan
1507169689Skan	PR bootstrap/12168
1508169689Skan	* method.c (use_thunk): Clear DECL_RTL of copied nodes.
1509169689Skan
1510169689Skan2003-09-08  Mark Mitchell  <mark@codesourcery.com>
1511169689Skan
1512169689Skan	* cp-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
1513169689Skan	c_register_builtin_type.
1514169689Skan
1515169689Skan	PR c++/11786
1516169689Skan	* decl2.c (add_function): Do not complain about seeing the same
1517169689Skan	non-function twice.
1518169689Skan	* semantics.c (perform_koenig_lookup): Improve documentation.
1519169689Skan
1520169689Skan	PR c++/5296
1521169689Skan	* pt.c (try_one_overload): Add addr_p parameter.
1522169689Skan	(resolve_overloaded_unification): Pass it.
1523169689Skan
1524169689Skan2003-09-08  Richard Henderson  <rth@redhat.com>
1525169689Skan
1526169689Skan	* optimize.c (maybe_clone_body): Inc/dec function_depth.
1527169689Skan
1528169689Skan2003-09-08  Richard Henderson  <rth@redhat.com>
1529169689Skan
1530169689Skan	* decl.c (finish_function): Clear current_function_decl.
1531169689Skan	* decl2.c (mark_used): Don't push/pop gc context.
1532169689Skan	* optimize.c (optimize_function): Likewise.
1533169689Skan	* tree.c (cp_cannot_inline_tree_fn): Likewise.
1534169689Skan	* pt.c (instantiate_decl): Inc/dec function_depth instead.
1535169689Skan	* semantics.c (expand_body): Update for tree_rest_of_compilation
1536169689Skan	nested argument.
1537169689Skan
1538169689Skan2003-09-07  Gabriel Dos Reis  <gcc@integrable-solutions.net>
1539169689Skan
1540169689Skan	PR c++/11762
1541169689Skan	* error.c (dump_decl): Handle namespace-alias-definition.
1542169689Skan	* decl.c (warn_extern_redeclared_static): There is no point in
1543169689Skan	checking changes in storage class specifier for a namespace
1544169689Skan	declaration.
1545169689Skan	(duplicate_decls): Tidy diagnostic message.
1546169689Skan	* cxx-pretty-print.c (pp_cxx_left_brace): New macro.
1547169689Skan	(pp_cxx_right_brace): Likewise.
1548169689Skan	(pp_cxx_original_namespace_definition): New function.
1549169689Skan	(pp_cxx_namespace_alias_definition): Likewise.
1550169689Skan	(pp_cxx_declaration): Use them.  Handle NAMESPACE_DECLs.
1551169689Skan
1552169689Skan2003-09-07  Jan Hubicka  <jh@suse.cz>
1553169689Skan
1554169689Skan	* decl2.c (maybe_emit_vtables, write_out_vars, finish_file):
1555169689Skan	Avoid re-emitting variables in unit-at-a-time mode.
1556169689Skan
1557169689Skan2003-09-06  Mark Mitchell  <mark@codesourcery.com>
1558169689Skan
1559169689Skan	PR c++/11867
1560169689Skan	* call.c (standard_conversion): Improve comments.
1561169689Skan	(perform_direct_initialization): Make sure we return an expression
1562169689Skan	of the correct type.
1563169689Skan	* typeck.c (build_static_cast): Check for ambiguity and
1564169689Skan	accessibility when performing conversions.
1565169689Skan
1566169689Skan2003-09-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1567169689Skan
1568169689Skan	* cp-tree.h (add_binding): Remove declaration.
1569169689Skan	* name-lookup.h (supplement_binding): Declare.
1570169689Skan	* decl.c (add_binding): Move to name-lookup.c.
1571169689Skan	(push_local_binding): Adjust.
1572169689Skan	(push_class_binding): Likewise.
1573169689Skan	(set_identifier_type_value_with_scope): Likewise.
1574169689Skan	* name-lookup.c (supplement_binding): Rename from add_binding.
1575169689Skan	Return a bool.  Improve documentation.
1576169689Skan	(set_namespace_binding): Adjust.
1577169689Skan	* Make-lang.in (cp/name-lookup.o): Depend on toplev.h
1578169689Skan
1579169689Skan2003-09-06  Nathan Sidwell  <nathan@codesourcery.com>
1580169689Skan
1581169689Skan	PR c++/11794
1582169689Skan	* class.c (pushclass): Push dependent using decls for nested
1583169689Skan	classes of templates too.
1584169689Skan
1585169689Skan2003-09-06  Roger Sayle  <roger@eyesopen.com>
1586169689Skan
1587169689Skan	PR c++/11409
1588169689Skan	* class.c (resolve_address_of_overloaded_function): When building
1589169689Skan	list of matching non-template function decls, ignore anticipated
1590169689Skan	declarations of undeclared or shadowed GCC builtins.
1591169689Skan
1592169689Skan2003-09-06  Steven Bosscher  <steven@gcc.gnu.org>
1593169689Skan
1594169689Skan	PR c++/11595
1595169689Skan	* decl.c (define_label): Remove unreachable timevar pop.
1596169689Skan	Always return the decl, even if the definition is invalid.
1597169689Skan
1598169689Skan2003-09-06  Nathan Sidwell  <nathan@codesourcery.com>
1599169689Skan
1600169689Skan	PR c++/12167
1601169689Skan	* parser.c (cp_parser_late_parsing_default_args): Push & pop the
1602169689Skan	unparsed functions queue.
1603169689Skan
1604169689Skan2003-09-05  Mark Mitchell  <mark@codesourcery.com>
1605169689Skan
1606169689Skan	PR c++/12163
1607169689Skan	* call.c (perform_direct_initialization): Correct logic for
1608169689Skan	direct-initialization of a class type.
1609169689Skan
1610169689Skan	PR c++/12146
1611169689Skan	* pt.c (lookup_template_function): Robustify.
1612169689Skan
1613169689Skan2003-09-05  Nathan Sidwell  <nathan@codesourcery.com>
1614169689Skan
1615169689Skan	PR c++/11922
1616169689Skan	* pt.c (tsubst_qualified_id): Make sure we get a non-type.
1617169689Skan	(tsubst_expr, tsubst_copy_and_build): Pass false, not zero, as
1618169689Skan	is_type_p to lookup_qualified_name.
1619169689Skan
1620169689Skan	* semantics.c (finish_call_expr): Refactor some code.
1621169689Skan
1622169689Skan	PR c++/12037
1623169689Skan	* cp-tree.h (COMPOUND_EXPR_OVERLOADED): New.
1624169689Skan	(build_min_non_dep): Declare.
1625169689Skan	* tree.c (build_min): Propagate TREE_SIDE_EFFECTS.
1626169689Skan	(build_min_non_dep): New.
1627169689Skan	* cvt.c (convert_to_void): Don't explicitly copy
1628169689Skan	TREE_SIDE_EFFECTS, TREE_NO_UNUSED_WARNING.
1629169689Skan	* call.c (build_new_method_call): Use build_min_non_dep.
1630169689Skan	* decl2.c (grok_array_decl): Likewise.
1631169689Skan	(build_offset_ref_call_from_tree): Likewise.
1632169689Skan	* typeck.c (finish_class_member_access_expr,
1633169689Skan	build_x_indirect_ref, build_x_binary_op, build_x_unary_op,
1634169689Skan	build_x_conditional_expr, build_x_compound_expr): Likewise.
1635169689Skan	(build_static_cast, build_reinterpret_cast,
1636169689Skan	build_const_cast): Propagate TREE_SIDE_EFFECTS inside a template.
1637169689Skan	* typeck2.c (build_x_arrow): Use build_min_non_dep.
1638169689Skan	(build_functional_cast): Propagate TREE_SIDE_EFFECTS inside a
1639169689Skan	template.
1640169689Skan	* rtti.c (build_dynamic_cast_1): Set DECL_IS_PURE.
1641169689Skan	(build_dynamic_cast): Set TREE_SIDE_EFFECTS.
1642169689Skan	* pt.c (build_non_dependent_expr): Check COMPOUND_EXPR_OVERLOADED.
1643169689Skan
1644169689Skan2003-09-04  Richard Henderson  <rth@redhat.com>
1645169689Skan
1646169689Skan	* decl2.c (mark_member_pointers_and_eh_handlers): Update for
1647169689Skan	change in cgraph_mark_needed_node arguments.
1648169689Skan
1649169689Skan2003-09-02  Geoffrey Keating  <geoffk@apple.com>
1650169689Skan
1651169689Skan	PR 12161
1652169689Skan	* decl2.c (mark_used): Use ggc_push_context/ggc_pop_context.
1653169689Skan	* tree.c (cp_cannot_inline_tree_fn): Likewise.
1654169689Skan
1655169689Skan2003-09-04  Nathan Sidwell  <nathan@codesourcery.com>
1656169689Skan
1657169689Skan	* cp-tree.h (finish_sizeof, finish_alignof): Remove.
1658169689Skan	(expr_sizeof): Replace with ...
1659169689Skan	(cxx_sizeof_or_alignof_expr): ... here.
1660169689Skan	(cxx_sizeof_or_alignof_type): Make complain parameter a bool.
1661169689Skan	* parser.c (cp_parser_unary_expression): Commonize alignof and
1662169689Skan	sizeof handling.
1663169689Skan	* pt.c (tsubst_copy_and_build): Adjust alignof and sizeof
1664169689Skan	substitution.
1665169689Skan	* semantics.c (finish_sizeof, finish_alignof): Remove.
1666169689Skan	* typeck.c (cxx_sizeof_or_alignof_type): Complain parameter
1667169689Skan	becomes bool. Set TREE_READONLY.
1668169689Skan	(expr_sizeof): Replace with ...
1669169689Skan	(cxx_sizeof_or_alignof_expr): ... here. Clear TREE_SIDE_EFFECTS.
1670169689Skan
1671169689Skan2003-09-04  Mark Mitchell  <mark@codesourcery.com>
1672169689Skan
1673169689Skan	Remove cast-as-lvalue extension.
1674169689Skan	* call.c (build_conditional_expr): Correct formatting.
1675169689Skan	(convert_like_real): Use lvalue_p, not non_cast_lvalue_p.
1676169689Skan	(initialize_real): Use real_lvalue_p, not real_non_cast_lvalue_p.
1677169689Skan	* cp-tree.h (non_cast_lvalue_p): Remove.
1678169689Skan	(real_non_cast_lvalue_p): Remove.
1679169689Skan	(non_cast_lvalue_or_else): Remove.
1680169689Skan	* tree.c (lvalue_p_1): Remove allow_cast_as_lvalue parameter.
1681169689Skan	(real_lvalue_p): Adjust call to lvalue_p_1.
1682169689Skan	(non_cast_lvalue_p): Remove.
1683169689Skan	(non_cast_lvalue_or_else): Remove.
1684169689Skan	(lvalue_p): Adjust call to lvalue_p_1.
1685169689Skan	(lvalue_or_else): Simplify.
1686169689Skan	* typeck.c (build_unary_op): Use lvalue_or_else, not
1687169689Skan	non_cast_lvalue_or_else.
1688169689Skan	(build_static_cast): Use real_lvalue_p, not real_non_cast_lvalue_p.
1689169689Skan
1690169689Skan2003-09-03  DJ Delorie  <dj@redhat.com>
1691169689Skan
1692169689Skan	* decl.c (finish_function): Pass fndecl to aggregate_value_p.
1693169689Skan
1694169689Skan2003-09-03  Mark Mitchell  <mark@codesourcery.com>
1695169689Skan
1696169689Skan	PR c++/12053
1697169689Skan	* class.c (include_empty_classes): Correct logic for ABI version 1.
1698169689Skan
1699169689Skan2003-09-03  Richard Henderson  <rth@redhat.com>
1700169689Skan
1701169689Skan	* optimize.c (optimize_function): Push/pop ggc context around
1702169689Skan	the call to optimize_inline_calls.
1703169689Skan
1704169689Skan2003-09-02  Scott Brumbaugh  <scottb.lists@verizon.net>
1705169689Skan
1706169689Skan	PR c++/11553
1707169689Skan	* parser.c (cp_parser_decl_specifier_seq): Add check for a
1708169689Skan	duplicate friend decl-specifier.
1709169689Skan
1710169689Skan2003-09-02  Mark Mitchell  <mark@codesourcery.com>
1711169689Skan
1712169689Skan	PR c++/11847
1713169689Skan	* pt.c (convert_nontype_argument): Correct representation of
1714169689Skan	REFERENCE_TYPE expressions.
1715169689Skan
1716169689Skan	PR c++/11808
1717169689Skan	* cp-tree.h (KOENIG_LOOKUP_P): New macro.
1718169689Skan	(finish_call_expr): Change prototype.
1719169689Skan	* parser.c (cp_parser_postfix_expression): Adjust call to
1720169689Skan	finish_call_expr.
1721169689Skan	* pt.c (tsubst_copy_and_build): Use KOENIG_LOOKUP_P.
1722169689Skan	* semantics.c (finish_call_expr): Add koenig_p parameter.
1723169689Skan
1724169689Skan2003-09-01  Mark Mitchell  <mark@codesourcery.com>
1725169689Skan
1726169689Skan	PR c++/12114
1727169689Skan	* cp-tree.h (initialize_reference): Change prototype.
1728169689Skan	* call.c (initialize_reference): Add cleanup parameter.
1729169689Skan	* decl.c (grok_reference_init): Likewise.
1730169689Skan	(check_initializer): Likewise.
1731169689Skan	(cp_finish_decl): Insert a CLEANUP_STMT if necessary.
1732169689Skan	(duplicate_decls): When replacing an anticipated builtin, do not
1733169689Skan	honor TREE_NOTHROW.
1734169689Skan	* typeck.c (convert_for_initialization): Correct call to
1735169689Skan	initialize_reference.
1736169689Skan
1737169689Skan	PR c++/11972
1738169689Skan	* pt.c (dependent_type_p_r): Pass only the innermost template
1739169689Skan	arguments to any_dependent_template_arguments_p.
1740169689Skan
1741169689Skan2003-09-01  Josef Zlomek  <zlomekj@suse.cz>
1742169689Skan
1743169689Skan	* error.c (dump_expr): Kill BIT_ANDTC_EXPR.
1744169689Skan	* lex.c (init_operators): Kill BIT_ANDTC_EXPR.
1745169689Skan	* pt.c (tsubst_copy): Kill BIT_ANDTC_EXPR.
1746169689Skan	* typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.
1747169689Skan	(tsubst_copy_and_build): Kill BIT_ANDTC_EXPR.
1748169689Skan
1749169689Skan2003-08-29  Mark Mitchell  <mark@codesourcery.com>
1750169689Skan
1751169689Skan	PR c++/12093
1752169689Skan	* pt.c (build_non_dependent_expr): Do not build a
1753169689Skan	NON_DEPENDENT_EXPR for a STRING_CST.
1754169689Skan
1755169689Skan	PR c++/11928
1756169689Skan	* search.c (add_conversions): Avoid adding two conversion
1757169689Skan	operators for the same type.
1758169689Skan
1759169689Skan2003-08-29  Mark Mitchell  <mark@codesourcery.com>
1760169689Skan
1761169689Skan	PR c++/6196
1762169689Skan	* pt.c (tsubst_copy_and_build): Correct handling of
1763169689Skan	address-of-label extension.
1764169689Skan	* semantics.c (finish_goto_stmt): The address of a label must go
1765169689Skan	through the lvalue-to-rvalue conversion.
1766169689Skan
1767169689Skan2003-08-29  Richard Henderson  <rth@redhat.com>
1768169689Skan	    Jason Merrill <jason@redhat.com>
1769169689Skan
1770169689Skan	* cp-lang.c (LANG_HOOKS_RTL_EXPAND_START): New.
1771169689Skan	(LANG_HOOKS_RTL_EXPAND_STMT): New.
1772169689Skan	* cp-tree.h (cxx_expand_function_start): Declare.
1773169689Skan	* decl.c (start_function): Use allocate_struct_function.
1774169689Skan	Move stmts_are_full_exprs_p assertion from expand_body.
1775169689Skan	Do not free_after_parsing or free_after_compilation.
1776169689Skan	(cxx_push_function_context): Move code to set struct function
1777169689Skan	data from genrtl_start_function.
1778169689Skan	* optimize.c (optimize_function): Don't inc/dec function_depth.
1779169689Skan	* semantics.c (expand_body): Use tree_rest_of_compilation.
1780169689Skan	(cxx_expand_function_start): Rename from genrtl_start_function,
1781169689Skan	omit bits done by tree_rest_of_compilation.
1782169689Skan	(genrtl_finish_function): Remove.
1783169689Skan	(clear_decl_rtl): Move to ../tree-optimize.c.
1784169689Skan
1785169689Skan2003-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1786169689Skan
1787169689Skan	PR c++/11811
1788169689Skan	* cxx-pretty-print.c (pp_cxx_canonical_template_parameter): New
1789169689Skan	function.
1790169689Skan	* cxx-pretty-print.h: Declare.
1791169689Skan	* error.c (dump_template_parameter): Use it.
1792169689Skan	(dump_type): Likewise.
1793169689Skan
1794169689Skan2003-08-28  Mark Mitchell  <mark@codesourcery.com>
1795169689Skan
1796169689Skan	* init.c (decl_constant_value): Deal with COND_EXPR specially.
1797169689Skan	* call.c (build_conditional_expr): Revert previous patch.
1798169689Skan
1799169689Skan	PR optimization/5079
1800169689Skan	* call.c (build_conditional_expr): Use decl_constant_value to
1801169689Skan	simplify the arguments.
1802169689Skan
1803169689Skan2003-08-26  Dan Nicolaescu  <dann@ics.uci.edu>
1804169689Skan
1805169689Skan	* parser.c (struct cp_token): Use enum bitfields.
1806169689Skan	(CP_TOKEN_BLOCK_NUM_TOKENS): Make sure cp_token_block fits in a
1807169689Skan	512B allocation unit.
1808169689Skan	(cp_parser_token_tree_map_node): Use enum bitfields.
1809169689Skan
1810169689Skan2003-08-26  Nathan Sidwell  <nathan@codesourcery.com>
1811169689Skan
1812169689Skan	PR c++/11871
1813169689Skan	* decl.c (push_class_level_binding): Correct old_decl value from
1814169689Skan	my 2003-07-29 reorganization.
1815169689Skan
1816169689Skan	* call.c (build_call): Don't set TREE_SIDE_EFFECTS here.
1817169689Skan	(build_new_method_call): Add goto finish.
1818169689Skan	* semantics.c (simplify_aggr_init_exprs_r): Don't set
1819169689Skan	TREE_SIDE_EFFECTS on a call.
1820169689Skan
1821169689Skan2003-08-25  Richard Henderson  <rth@redhat.com>
1822169689Skan
1823169689Skan	* cxx-pretty-print.c (pp_cxx_class_name): Remove unused function.
1824169689Skan
1825169689Skan2003-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1826169689Skan
1827169689Skan	* cxx-pretty-print.h (pp_cxx_flag_default_argument): New flag.
1828169689Skan	(cxx_pretty_printer): Adjust base type.
1829169689Skan	(pp_cxx_function_specifier): Declare.
1830169689Skan	* cxx-pretty-print.c (pp_cxx_whitespace): New macro.
1831169689Skan	(pp_cxx_left_paren): Likewise.
1832169689Skan	(pp_cxx_right_paren): Likewise.
1833169689Skan	(pp_cxx_dot): Likewise.
1834169689Skan	(pp_cxx_arrow): Likewise.
1835169689Skan	(pp_cxx_semicolon): Likewise.
1836169689Skan	(pp_cxx_identifier): Likewise.
1837169689Skan	(pp_cxx_cv_qualifier_seq): Likewise.
1838169689Skan	(pp_cxx_storage_class_specifier): Likewise.
1839169689Skan	(pp_cxx_expression_list): Likewise.
1840169689Skan	(pp_cxx_space_for_pointer_operator): Likewise.
1841169689Skan	(pp_cxx_init_declarator): Likewise.
1842169689Skan	(pp_cxx_call_argument_list): Likewise.
1843169689Skan	(pp_cxx_nonconsecutive_character): Tidy.
1844169689Skan	(pp_cxx_conversion_function_id): New function.
1845169689Skan	(pp_cxx_template_id): Likewise.
1846169689Skan	(pp_cxx_template_keyword_if_needed): Likewise.
1847169689Skan	(pp_cxx_nested_name_specifier): Likewise.
1848169689Skan	(pp_cxx_unqualified_id): Tidy
1849169689Skan	(pp_cxx_qualified_id): Handle more nodes.
1850169689Skan	(pp_cxx_primary_expression): Tidy.
1851169689Skan	(pp_cxx_postfix_expression): Likewise.
1852169689Skan	(pp_cxx_new_expression): Tidy.
1853169689Skan	(pp_cxx_delete_expression): Likewise.
1854169689Skan	(pp_cxx_cast_expression): New function.
1855169689Skan	(pp_cxx_pm_expression): Tidy.
1856169689Skan	(pp_cxx_conditional_expression): Likewise.
1857169689Skan	(pp_cxx_assignment_operator): New function.
1858169689Skan	(pp_cxx_assignment_expression): Tidy.
1859169689Skan	(pp_cxx_expression): New function.
1860169689Skan	(pp_cxx_function_specifier): Likewise.
1861169689Skan	(pp_cxx_decl_specifier_seq): Likewise.
1862169689Skan	(pp_cxx_simple_type_specifier): Tidy.
1863169689Skan	(pp_cxx_type_specifier_seq): Likewise.
1864169689Skan	(pp_cxx_ptr_operator): New function.
1865169689Skan	(pp_cxx_implicit_parameter_type): Likewise.
1866169689Skan	(pp_cxx_parameter_declaration): Tidy.
1867169689Skan	(pp_cxx_parameter_declaration_clause): New function.
1868169689Skan	(pp_cxx_exception_specification): Likewise.
1869169689Skan	(pp_cxx_direct_declarator): Tidy.
1870169689Skan	(pp_cxx_declarator): Likewise.
1871169689Skan	(pp_cxx_ctor_initializer): New function.
1872169689Skan	(pp_cxx_function_definition): Likewise.
1873169689Skan	(pp_cxx_abstract_declarator): Tidy.
1874169689Skan	(pp_cxx_direct_abstract_declarator): Likewise.
1875169689Skan	(pp_cxx_type_id): Likewise.
1876169689Skan	(pp_cxx_exception_declaration): New function.
1877169689Skan	(pp_cxx_statement): Likewise.
1878169689Skan	(pp_cxx_simple_declaration): Likewise.
1879169689Skan	(pp_cxx_template_parameter_list): Likewise.
1880169689Skan	(pp_cxx_template_parameter): Likewise.
1881169689Skan	(pp_cxx_template_declaration): Likewise.
1882169689Skan	(pp_cxx_explicit_specialization): Likewise.
1883169689Skan	(pp_cxx_explicit_instantiation): Likewise.
1884169689Skan	(pp_cxx_declaration): Tidy.
1885169689Skan	(pp_cxx_pretty_printer_init): Initialize more fields.
1886169689Skan
1887169689Skan2003-08-25  Mark Mitchell  <mark@codesourcery.com>
1888169689Skan
1889169689Skan	PR c++/8795
1890169689Skan	* cp-tree.h (build_cplus_method_type): Remove.
1891169689Skan	* call.c (standard_conversion): Use build_method_type_directly
1892169689Skan	instead of build_cplus_method_type.
1893169689Skan	* class.c (build_clone): Likewise.
1894169689Skan	(adjust_clone_args): Likewise.
1895169689Skan	* decl.c (build_ptrmem_type): Likewise.
1896169689Skan	(grokdeclarator): Likewise.
1897169689Skan	(check_function_type): Likewise.
1898169689Skan	* decl2.c (grok_method_quals): Likewise.
1899169689Skan	(maybe_retrofit_in_chrg): Likewise.
1900169689Skan	* pt.c (copy_default_args_to_explicit_spec): Likewise.
1901169689Skan	(tsubst_function_type): Likewise.
1902169689Skan	(tsubst): Likewise.
1903169689Skan	* tree.c (build_cplus_method_type): Remove.
1904169689Skan	* typeck.c (merge_types): Use build_method_type_directly.
1905169689Skan
1906169689Skan2003-08-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1907169689Skan
1908169689Skan	PR c++/3765
1909169689Skan	* search.c (dfs_access_in_type): Fix typo in comment.
1910169689Skan	(dfs_accessible_queue_p): Likewise.
1911169689Skan	(dfs_accessible_p): Only terminate when a friend is found.
1912169689Skan	(accessible_p): Return immediately if access_in_type allows
1913169689Skan	access.
1914169689Skan
1915169689Skan2003-08-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1916169689Skan
1917169689Skan	PR c++/641, c++/11876
1918169689Skan	* friend.c (add_friend): Add complain parameter.
1919169689Skan	(make_friend_class): Likewise.
1920169689Skan	(do_friend): Adjust add_friend call.
1921169689Skan	* decl.c (grokdeclarator): Adjust make_friend_class call.
1922169689Skan	* parser.c (cp_parser_member_declaration): Likewise.
1923169689Skan	(cp_parser_template_declaration_after_export): Likewise.
1924169689Skan	* pt.c (instantiate_class_template): Adjust make_friend_class
1925169689Skan	and add_friend call.
1926169689Skan	* cp-tree.h (make_friend_class): Adjust declaration.
1927169689Skan	(add_friend): Likewise.
1928169689Skan
1929169689Skan2003-08-21  Jason Merrill  <jason@redhat.com>
1930169689Skan
1931169689Skan	PR c++/11283
1932169689Skan	* call.c (build_conditional_expr): Ignore cv-qual differences for
1933169689Skan	non-class types.
1934169689Skan
1935169689Skan2003-08-21  Mark Mitchell  <mark@codesourcery.com>
1936169689Skan
1937169689Skan	PR c++/11551
1938169689Skan	* parser.c (cp_parser_id_expression): Add declarator_p parameter.
1939169689Skan	(cp_parser_primary_expression): Adjust call to
1940169689Skan	cp_parser_id_expression.
1941169689Skan	(cp_parser_unqualified_id): Complain about the use of
1942169689Skan	typedef-names in a destructor declarator.
1943169689Skan	(cp_parser_postfix_expression): Adjust call to
1944169689Skan	cp_parser_id_expression.
1945169689Skan	(cp_parser_type_parameter): Likewise.
1946169689Skan	(cp_parser_template_argument): Likewise.
1947169689Skan	(cp_parser_declarator_id): Likewise.
1948169689Skan
1949169689Skan	PR c++/11919
1950169689Skan	* call.c (standard_conversion): Use same_type_p, not pointer
1951169689Skan	equality, to compare types.
1952169689Skan
1953169689Skan	PR c++/10762
1954169689Skan	* parser.c (cp_parser_using_declaration): Check for invalid uses
1955169689Skan	of template-ids here...
1956169689Skan	* decl2.c (do_class_using_decl): ... rather than here.
1957169689Skan
1958169689Skan2003-08-20  Mark Mitchell  <mark@codesourcery.com>
1959169689Skan
1960169689Skan	PR c++/11834
1961169689Skan	* pt.c (more_specialized): Bump processing_template_decl.
1962169689Skan
1963169689Skan2003-08-21  Jason Merrill  <jason@redhat.com>
1964169689Skan
1965169689Skan	PR c++/11614
1966169689Skan	* decl.c (grokdeclarator): Recognize a flexible array based on the
1967169689Skan	type, not the form of the declarator.
1968169689Skan
1969169689Skan2003-08-20  Jason Merrill  <jason@redhat.com>
1970169689Skan
1971169689Skan	* semantics.c (simplify_aggr_init_expr): Split out from
1972169689Skan	simplify_aggr_init_exprs_r.  Convert slot address to match
1973169689Skan	the return type.
1974169689Skan	* cp-tree.h: Declare it.
1975169689Skan	* tree.c (cp_copy_res_decl_for_inlining): Don't clobber the
1976169689Skan	DECL_NAME of a user variable.
1977169689Skan
1978169689Skan2003-08-20  Nathan Sidwell  <nathan@codesourcery.com>
1979169689Skan
1980169689Skan	PR c++/11945
1981169689Skan	* pt.c (build_non_dependent_expr): Look inside COND_EXPR and
1982169689Skan	COMPOUND_EXPR.
1983169689Skan	* semantics.c (finish_expr_stmt): Always convert to void.
1984169689Skan	* typeck.c (build_x_compound_exp): Always convert to void.
1985169689Skan
1986169689Skan2003-08-19  Mark Mitchell  <mark@codesourcery.com>
1987169689Skan
1988169689Skan	PR c++/11684
1989169689Skan	* cp-tree.h (grok_op_properties): Change prototype.
1990169689Skan	* decl.c (grok_op_properties): Add complain parameter.
1991169689Skan	(grokfndecl): Pass it.
1992169689Skan	* pt.c (tsubst_decl): Adjust accordingly.
1993169689Skan
1994169689Skan	PR c++/10926
1995169689Skan	* decl.c (start_method): Return immediately if push_template_decl
1996169689Skan	does not like the declaration.
1997169689Skan	* pt.c (push_template_decl_real): Disallow member template
1998169689Skan	destructors.
1999169689Skan
2000169689Skan	PR c++/11036
2001169689Skan	* cp-tree.h (add_binding): Add prototype.
2002169689Skan	* class.c (add_method): Set TYPE_HAS_DESTRUCTOR if appropriate.
2003169689Skan	(maybe_warn_about_overly_private_class): Use
2004169689Skan	CLASSTYPE_DESTRUCTORS.
2005169689Skan	(pushclass): Adjust call to set_identifier_type_value.
2006169689Skan	* decl.c (add_binding): Give it external linkage.
2007169689Skan	(push_local_binding): Adjust call to add_binding.
2008169689Skan	(push_class_binding): Likewise.
2009169689Skan	(set_identifier_type_value_with_scope): Change prototype.  Use
2010169689Skan	add_binding for global bindings.
2011169689Skan	(set_identifier_type_value): Adjust accordingly.
2012169689Skan	(pushtag): Likewise.
2013169689Skan	(pushdecl): Use set_identifier_type_value, not
2014169689Skan	set_identifier_type_value_with_scope.
2015169689Skan	(pushdecl_namespace_level): Adjust calls to
2016169689Skan	SET_IDENTIFIER_TYPE_VALUE to pass a DECL.
2017169689Skan	(pushdecl_class_level): Likewise.
2018169689Skan	(lookup_tag): Use select_decl.
2019169689Skan	(select_decl): Improve comment.
2020169689Skan	(record_builtin_type): Do not call pushdecl.
2021169689Skan	(cxx_init_decl_processing): Do not call xref_tag for bad_alloc.
2022169689Skan	(cp_finish_decl): Adjust call to set_identifier_type_value.
2023169689Skan	(check_elaborated_type_specifier): Improve checks for invalid uses
2024169689Skan	of typedefs.
2025169689Skan	(xref_tag): Adjust call to check_elaborated_type_specifier.
2026169689Skan	* decl2.c (grokclassfn): Do not set TYPE_HAS_DESTRUCTOR.
2027169689Skan	* name-lookup.c (set_namespace_binding): Use add_binding.
2028169689Skan	* parser.c (cp_parser_simple_type_specifier): Return a TYPE_DECL,
2029169689Skan	rather than an IDENTIFIER_NODE, to represent built-in types, if
2030169689Skan	requested by the caller.
2031169689Skan	(cp_parser_postfix_expression): Adjust call.
2032169689Skan	(cp_parser_type_specifier): Likewise.
2033169689Skan	(cp_parser_elaborated_type_specifier): Adjust call to
2034169689Skan	check_elaborated_type_specifier.
2035169689Skan	* typeck2.c (build_functional_cast): Do not perform name lookups.
2036169689Skan
2037169689Skan	PR c++/10717
2038169689Skan	* decl.c (expand_static_init): Remove unnecessary code.
2039169689Skan
2040169689Skan2003-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
2041169689Skan
2042169689Skan	PR c++/10538, PR c/5582
2043169689Skan	* cp/cp-lang.c (LANG_HOOKS_DECL_UNINIT): Define.
2044169689Skan
2045169689Skan2003-08-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2046169689Skan
2047169689Skan	PR c++/11174
2048169689Skan	* init.c (build_offset_ref): Perform access checking for
2049169689Skan	pointer to member correctly.
2050169689Skan
2051169689Skan2003-08-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2052169689Skan
2053169689Skan	* cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling.
2054169689Skan
2055169689Skan2003-08-18  Nathan Sidwell  <nathan@codesourcery.com>
2056169689Skan
2057169689Skan	PR c++/11957
2058169689Skan	* cp-tree.h (finish_stmt_expr): Add bool parameter.
2059169689Skan	* init.c (finish_init_stmts): Pass true to finish_stmt_expr. Don't
2060169689Skan	adjust the stmt_expr here.
2061169689Skan	(build_vec_init): Use finish_stmt_expr_expr, convert result to
2062169689Skan	array type.
2063169689Skan	* parser.c (cp_parser_primar_expression): Adjust finish_stmt_expr
2064169689Skan	call.
2065169689Skan	* pt.c (tsubst_copy): Likewise.
2066169689Skan	* semantics.c (finish_stmt_expr): Add parameter.
2067169689Skan
2068169689Skan	* pt.c (instantiate_class_template): Push to class's scope before
2069169689Skan	tsubsting base.
2070169689Skan
2071169689Skan2003-08-17  Jan Hubicka  <jh@suse.cz>
2072169689Skan
2073169689Skan	PR C++/11702
2074169689Skan	* semantics.c (finish_id_expression): Mark all functions as used.
2075169689Skan
2076169689Skan2003-08-16  Nathan Sidwell  <nathan@codesourcery.com>
2077169689Skan
2078169689Skan	PR c++/11512
2079169689Skan	* cvt.c (convert_to_void): Indicate which side of conditional has
2080169689Skan	no effects, and rhs of comma operator. Test for no sideeffect
2081169689Skan	expressions here and always build a convert expr.
2082169689Skan	* init.c (expand_default_init): Convert the init to void.
2083169689Skan	* typeck.c (build_x_compound_expr): Do not check for side effects
2084169689Skan	here.
2085169689Skan	(build_compound_expr): Do not convert lhs when building a
2086169689Skan	template.
2087169689Skan
2088169689Skan2003-08-15  Nathan Sidwell  <nathan@codesourcery.com>
2089169689Skan
2090169689Skan	* cp-tree.def (NON_DEPENDENT_EXPR): Add operand.
2091169689Skan	* decl2.c (build_offset_ref_call_from_tree): Use
2092169689Skan	build_non_dependent_expr.
2093169689Skan	* error.c (dump_expr) <NON_DEPENDENT_EXPR case>: Dump the operand.
2094169689Skan	* pt.c (build_non_dependent_expr): Set operand.
2095169689Skan
2096169689Skan2003-08-14  Jan Hubicka  <jh@suse.cz>
2097169689Skan
2098169689Skan	* decl2.c (mark_member_pointers): Rename to...
2099169689Skan	(mark_member_pointers_and_eh_tinfos): ... this one; deal with eh tinfos
2100169689Skan	(lower_function): Update call.
2101169689Skan	* except.c (eh_type_info): Break out from ...
2102169689Skan	(build_eh_type): ... here; tinfo is already used.
2103169689Skan	(finish_eh_spec_block): Mark tinfos as used.
2104169689Skan	* semantics.c (finish_handler_params): Mark tinfo as used.
2105169689Skan	* cp-tree.h (eh_type_info): Declare.
2106169689Skan
2107169689Skan2003-08-15  Nathan Sidwell  <nathan@codesourcery.com>
2108169689Skan
2109169689Skan	* pt.c (instantiate_class_template): Set location before
2110169689Skan	substuting bases.
2111169689Skan
2112169689Skan	* decl.c (make_typename_type): Use my_friendly_assert.
2113169689Skan	* pt.c (tsubst_aggr_type): Rearrange context substitution.
2114169689Skan
2115169689Skan2003-08-14  Jan Hubicka  <jh@suse.cz>
2116169689Skan
2117169689Skan	* method.c (use_thunk): Expand body directly.
2118169689Skan
2119169689Skan2003-08-12  Mark Mitchell  <mark@codesourcery.com>
2120169689Skan
2121169689Skan	PR c++/11703
2122169689Skan	* call.c (type_passed_as): Use TYPE_SIZE, not TYPE_PRECISION to
2123169689Skan	determine whether or not to promote types.
2124169689Skan	(convert_for_arg_passing): Likewise.
2125169689Skan	* decl2.c (cp_build_parm_decl): Do not set DECL_ARG_TYPE in
2126169689Skan	templates.
2127169689Skan	* pt.c (tsubst_decl): Do not expect it to be set.
2128169689Skan
2129169689Skan	PR c++/9512
2130169689Skan	PR c++/10923
2131169689Skan	* cp-tree.h (check_elaborated_type_specifier): Declare.
2132169689Skan	(handle_class_head): Remove.
2133169689Skan	(note_got_semicolon): Likewise.
2134169689Skan	(note_list_got_semicolon): Likewise.
2135169689Skan	(finish_class_definition): Likewise.
2136169689Skan	* decl.c (check_elaborated_type_specifier): Make it public.
2137169689Skan	Robustify.
2138169689Skan	(handle_class_head): Remove.
2139169689Skan	* parser.c (cp_parser_elaborated_type_specifier): Use
2140169689Skan	check_elaborated_type_specifier.
2141169689Skan	(cp_parser_class_specifier): Do not call finish_class_definition.
2142169689Skan	(cp_parser_class_head): Or handle_class_head.  Check for
2143169689Skan	over-qualified names.
2144169689Skan	* semantics.c (finish_class_definition): Remove.
2145169689Skan
2146169689Skan	* parser.c (cp_parser_check_for_definition_in_return_type): New
2147169689Skan	function.
2148169689Skan	(cp_parser_simple_declaration): Adjust call to
2149169689Skan	cp_parser_init_declarator.
2150169689Skan	(cp_parser_decl_specifier_seq): Change type of
2151169689Skan	declares_class_or_enum parameter.
2152169689Skan	(cp_parser_explicit_instantiation): Adjust accordingly.
2153169689Skan	(cp_parser_type_specifier): Change type of
2154169689Skan	declares_class_or_enum parameter.
2155169689Skan	(cp_parser_init_declarator): Add declares_class_or_enum
2156169689Skan	parameter.
2157169689Skan	(cp_parser_parameter_declaration): Adjust call to
2158169689Skan	cp_parser_decl_specifier_seq.
2159169689Skan	(cp_parser_function_definition): Likewise.
2160169689Skan	(cp_parser_member_declaration): Likewise.
2161169689Skan	(cp_parser_single_declaration): Likewise.
2162169689Skan
2163169689Skan	* cp-tree.h (lang_type_class): Remove has_call_overloaded,
2164169689Skan	has_array_ref_overloaded, has_arrow_overloaded, and got_semicolon.
2165169689Skan	(TYPE_OVERLOADS_CALL_EXPR): Remove.
2166169689Skan	(TYPE_OVERLOADS_ARRAY_REF): Likewise.
2167169689Skan	(TYPE_OVERLOADS_ARROW): Likewise.
2168169689Skan	(CLASSTYPE_GOT_SEMICOLON): Likewise.
2169169689Skan	* class.c (check_bases): Do not set them.
2170169689Skan	(finish_struct_1): Likewise.
2171169689Skan	* decl.c (cp_finish_decl): Do not set CLASSTYPE_GOT_SEMICOLON.
2172169689Skan	(build_ptrmemfunc_type): Likewise.
2173169689Skan	(grok_op_properties): Do not set TYPE_OVERLOADS_*.
2174169689Skan	(start_function): Do not check CLASSTYPE_GOT_SEMICOLON.
2175169689Skan	* decl2.c (grokfield): Do not set CLASSTYPE_GOT_SEMICOLON.
2176169689Skan	* lex.c (note_got_semicolon): Remove.
2177169689Skan	(note_list_got_semicolon): Likewise.
2178169689Skan	* parser.c (cp_parser_simple_declaration): Do not call
2179169689Skan	note_list_got_semicolon.
2180169689Skan	* pt.c (list_eq): Remove.
2181169689Skan	(lookup_template_class): Do not set CLASSTYPE_GOT_SEMICOLON.
2182169689Skan	(instantiate_class_template): Do not set TYPE_OVERLOADS*.
2183169689Skan	(instantiate_class_template): Do not set CLASSTYPE_GOT_SEMICOLON.
2184169689Skan	* ptree.c (cxx_print_type): Do not print them.
2185169689Skan	* semantics.c (finish_member_class_template): Do not call
2186169689Skan	note_list_got_semicolon.
2187169689Skan
2188169689Skan2003-08-11  Aldy Hernandez  <aldyh@redhat.com>
2189169689Skan
2190169689Skan	* call.c (standard_conversion): Opaque pointers interconvert.
2191169689Skan
2192169689Skan	* testsuite/g++.dg/other/opaque-3.C: New.
2193169689Skan
2194169689Skan2003-08-11  Mark Mitchell  <mark@codesourcery.com>
2195169689Skan
2196169689Skan	* typeck.c (merge_types): Handle cv-qualified pointer-to-member
2197169689Skan	types correctly.
2198169689Skan
2199169689Skan2003-08-10  Mark Mitchell  <mark@codesourcery.com>
2200169689Skan
2201169689Skan	PR c++/11789
2202169689Skan	* cp-tree.h (get_vbase): Remove.
2203169689Skan	(get_vbase_types): Remove.
2204169689Skan	* init.c (expand_member_init): Correct logic for looking up base
2205169689Skan	classes.
2206169689Skan
2207169689Skan2003-08-10  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2208169689Skan
2209169689Skan	* error.c (dump_expr): Tidy.
2210169689Skan	* cxx-pretty-print.c (pp_cxx_nonconsecutive_character): New.
2211169689Skan	(pp_cxx_begin_template_argument_list): Likewise.
2212169689Skan	(pp_cxx_end_template_argument_list): Likewise.
2213169689Skan	(is_destructor_name): Likewise.
2214169689Skan	(pp_cxx_unqualified_id): Likewise.
2215169689Skan	(pp_cxx_qualified_id): Likewise.
2216169689Skan	(pp_cxx_id_expression): Likewise.
2217169689Skan	(pp_cxx_new_expression): Likewise.
2218169689Skan	(pp_cxx_delete_expression): Likewise.
2219169689Skan	(pp_cxx_pm_expression): Likewise.
2220169689Skan	(pp_cxx_type_specifier): Rework.
2221169689Skan	(pp_cxx_type_id): Likewise.
2222169689Skan	(pp_cxx_primary_expression): Likewise.
2223169689Skan	(pp_cxx_postfix_expression): Likewise.
2224169689Skan	(pp_cxx_unary_expression): Likewise.
2225169689Skan	(pp_cxx_multiplicative_expression): Likewise.
2226169689Skan	(pp_cxx_conditional_expression): Likewise.
2227169689Skan	(pp_cxx_assignment_expression): Likewise.
2228169689Skan	(pp_cxx_pretty_printer_init): Tidy.
2229169689Skan
2230169689Skan2003-08-10  Nathan Sidwell  <nathan@codesourcery.com>
2231169689Skan
2232169689Skan	* cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): non-NULL
2233169689Skan	NODE is always a TREE_VEC of nonzero size.
2234169689Skan	(NUM_TMPL_ARGS): NODE is always a TREE_VEC.
2235169689Skan	* decl2.c (arg_assoc): Template args will be a vec.
2236169689Skan	* error.c (dump_decl) <TEMPLATE_ID_EXPR case>: Call
2237169689Skan	dump_template_argument_list.
2238169689Skan	(dump_template_parms): Args will be a vec.
2239169689Skan	* parser.c (cp_parser_template_argument_list): Produce a
2240169689Skan	vector, not a list.
2241169689Skan	* pt.c (coerce_template_parms): Args are always vectors.
2242169689Skan	(mangle_class_name_for_template): Likewise.
2243169689Skan	(lookup_template_function): Likewise.
2244169689Skan	(lookup_template_class): Likewise.
2245169689Skan	(tsubst_template_args): Likewise.
2246169689Skan	(tsubst_baselink): Use tsubst_template_args.
2247169689Skan	(tsubst_qualified_id): Likewise.
2248169689Skan	(tsubst_copy) <TEMPLATE_ID_EXPR case>: Likewise.
2249169689Skan	(tsubst_copy_and_build) <TEMPLATE_ID_EXPR case>: Likewise.
2250169689Skan	(any_dependent_template_args_p):  Args are always vectors.
2251169689Skan	* tree.c (cp_tree_equal): Add TEMPLATE_ID_EXPR case.
2252169689Skan
2253169689Skan	PR c++/11670
2254169689Skan	* call.c (convert_like_real): Add rvalue binding error message.
2255169689Skan	* error.c (dump_expr) <NOP_EXPR case>: Detect when the no expr is
2256169689Skan	really a cast.
2257169689Skan
2258169689Skan	PR c++/10530
2259169689Skan	* pt.c (dependent_type_p_r): A dependent template-id is a class
2260169689Skan	type with dependent template arguments, or a bound template
2261169689Skan	template parameter.
2262169689Skan	(type_dependent_expression_p): A template function decl cannot
2263169689Skan	have a dependent context.
2264169689Skan
2265169689Skan2003-08-07  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2266169689Skan
2267169689Skan	PR c++/5767
2268169689Skan	* parser.c (cp_parser_class_name): Return immediately when scope
2269169689Skan	is error_mark_node.
2270169689Skan
2271169689Skan2003-08-07  Aldy Hernandez  <aldyh@redhat.com>
2272169689Skan
2273169689Skan	* cp/Make-lang.in (cp/call.o): Add dependency for target.h.
2274169689Skan
2275169689Skan	* cp/call.c (standard_conversion): Support opaque types.
2276169689Skan	Include target.h.
2277169689Skan	(strip_top_quals): Use cp_build_qualified_type instead of
2278169689Skan	TYPE_MAIN_VARIANT.
2279169689Skan
2280169689Skan	* cp/typeck.c (convert_for_assignment): Support opaque types.
2281169689Skan
2282169689Skan	* testsuite/g++.dg/other/opaque-1.C: New.
2283169689Skan
2284169689Skan	* testsuite/g++.dg/other/opaque-2.C: New.
2285169689Skan
2286169689Skan2003-08-06  Aldy Hernandez  <aldyh@redhat.com>
2287169689Skan
2288169689Skan	* decl.c (grokparms): Use cp_build_qualified_type instead
2289169689Skan	TYPE_MAIN_VARIANT.
2290169689Skan
2291169689Skan2003-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2292169689Skan
2293169689Skan	* cxx-pretty-print.h: New file.
2294169689Skan	* cxx-pretty-print.c: Likewise.
2295169689Skan	* error.c (scratch_pretty_printer): Change type.
2296169689Skan	(init_error): Tidy.
2297169689Skan	(dump_aggr_type): Likewise.
2298169689Skan	(dump_global_iord): Likewise.
2299169689Skan	(dump_expr): Likewise.
2300169689Skan	(dump_char): Remove.
2301169689Skan	* cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define.
2302169689Skan	(cxx_initialize_diagnostics): New function.
2303169689Skan	* Make-lang.in (CXX_OBJS): Add cp/cxx-pretty-print.o
2304169689Skan	(CXX_PRETTY_PRINT_H): New variable.
2305169689Skan	(cp/cxx-pretty-print.o): New rule.
2306169689Skan	(cp/cp-lang.o): Update dependence.
2307169689Skan	(cp/error.o): Likewise.
2308169689Skan
2309169689Skan2003-08-05  Steven Bosscher  <steven@gcc.gnu.org>
2310169689Skan
2311169689Skan	* cp-tree.h (struct lang_decl): Don't include c_lang_decl.
2312169689Skan	(DECL_DECLARED_INLINE_P): Remove.
2313169689Skan	* decl2.c (import_export_decl): Only look at DECL_DECLARED_INLINE_P
2314169689Skan	if decl is a FUNCTION_DECL.  This never made sense, but now it is
2315169689Skan	required to avoid a tree check failure.
2316169689Skan	* decl.c (grokfndecl): Don't touch DID_INLINE_FUNC.
2317169689Skan	* optimize.c (maybe_clone_body): Likewise.
2318169689Skan
2319169689Skan2003-08-04  Roger Sayle  <roger@eyesopen.com>
2320169689Skan
2321169689Skan	* decl.c (cxx_insert_default_attributes): Delete.
2322169689Skan	* cp-tree.h (cxx_insert_default_attributes): Don't prototype.
2323169689Skan	* cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.
2324169689Skan
2325169689Skan2003-08-03  Nathan Sidwell  <nathan@codesourcery.com>
2326169689Skan
2327169689Skan	PR c++/11704
2328169689Skan	* pt.c (type_dependent_expression_p): Cope with COMPONENT_REF with
2329169689Skan	unknown type.
2330169689Skan
2331169689Skan	PR c++/11766
2332169689Skan	* typeck.c (comp_ptr_ttypes_real): Don't loop on pointers to
2333169689Skan	member functions.
2334169689Skan
2335169689Skan2003-08-02  Nathan Sidwell  <nathan@codesourcery.com>
2336169689Skan
2337169689Skan	PR c++/9447
2338169689Skan	* cp-tree.def (USING_DECL): Document its type.
2339169689Skan	* class.c (pushclass): If we're entering a template, push any
2340169689Skan	dependent using decls it has.
2341169689Skan	* decl2.c (do_class_using_decl): Refactor. Type is NULL iff it is
2342169689Skan	a dependent scope.
2343169689Skan	* pt.c (tsubst_decl) <USING_DECL case>: Set type.
2344169689Skan	(tsubst): Remove USING_DECL checks.
2345169689Skan	(type_dependent_expression_p): Remove USING_DECL case.
2346169689Skan	* semantics.c (finish_member_declaration): A USING_DECL's type
2347169689Skan	indicates whether it is dependent.
2348169689Skan
2349169689Skan2003-08-02  Nathan Sidwell  <nathan@codesourcery.com>
2350169689Skan
2351169689Skan	* cp-tree.h (pushclass): Remove unneeded parameter.
2352169689Skan	* class.c (pushclass): Remove unneeded MODIFY parm. Adjust.
2353169689Skan	(push_nested_class): Adjust pushclass call.
2354169689Skan	* pt.c (instantiate_class_template): Likewise.
2355169689Skan	* semantics.c (begin_class_definition): Likewise.
2356169689Skan
2357169689Skan2003-08-01  Nathanael Nerode  <neroden@gcc.gnu.org>
2358169689Skan
2359169689Skan	* typeck2.c (add_exception_specifier): Use 'bool' where appropriate.
2360169689Skan
2361169689Skan2003-08-01  Mark Mitchell  <mark@codesourcery.com>
2362169689Skan
2363169689Skan	PR c++/11697
2364169689Skan	* decl.c (decls_match): Don't ignore the types of template
2365169689Skan	classes.
2366169689Skan
2367169689Skan	PR c++/11744
2368169689Skan	* pt.c (tsubst_copy_and_build): Refine Koenig lookup logic.
2369169689Skan
2370169689Skan2003-08-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2371169689Skan
2372169689Skan	PR c++/8442, c++/8806
2373169689Skan	* decl.c (qualify_lookup): Accept TEMPLATE_DECL if types are
2374169689Skan	preferred.
2375169689Skan	(check_elaborated_type_specifier): Add allow_template_p
2376169689Skan	parameter.  Check tag mismatch and class template.
2377169689Skan	(xref_tag): Add template_header_p parameter.  Add assertion
2378169689Skan	that name is an IDENTIFIER_NODE.  Remove implicit typename
2379169689Skan	warning.  Simplify lookup process if globalize is true.
2380169689Skan	(cxx_init_decl_processing): Adjust call to xref_tag.
2381169689Skan	(xref_tag_from_type): Likewise.
2382169689Skan	* decl2.c (handle_class_head): Likewise.
2383169689Skan	* parser.c (cp_parser_elaborated_type_specifier,
2384169689Skan	cp_parser_class_head): Likewise.
2385169689Skan	* rtti.c (init_rtti_processing, build_dynamic_cast1,
2386169689Skan	tinfo_base_init, emit_support_tinfos): Likewise.
2387169689Skan	* class.c (is_base_of_enclosing_class): Remove.
2388169689Skan	* pt.c (convert_template_argument): Don't accept RECORD_TYPE as
2389169689Skan	template template argument.
2390169689Skan	* cp-tree.h (xref_tag): Adjust declaration.
2391169689Skan	(is_base_of_enclosing_class): Remove.
2392169689Skan	* NEWS: Document template template argument change.
2393169689Skan
2394169689Skan2003-08-01  Nathan Sidwell  <nathan@codesourcery.com>
2395169689Skan
2396169689Skan	* parser.c (cp_parser_init_declarator,
2397169689Skan	cp_paser_member_declaration): Reformat.
2398169689Skan	* pt.c (lookup_template_class, type_unification_real, unify,
2399169689Skan	type_dependent_expression_p): Reformat.
2400169689Skan
2401169689Skan	PR c++/11295
2402169689Skan	* cp-tree.h (tubst_flags_t): Add tf_stmt_expr_cmpd,
2403169689Skan	tf_stmt_expr_body.
2404169689Skan	(finish_stmt_expr_expr): Declare.
2405169689Skan	* parser.c (cp_parser_primary_expression): Tell
2406169689Skan	cp_parser_compount_statement that it is a statement expression.
2407169689Skan	(cp_parser_statement, cp_parser_labeled_statement,
2408169689Skan	cp_parser_compound_statement, cp_parser_statement_seq_opt): Add
2409169689Skan	in_statement_expr_p parameter.
2410169689Skan	(cp_parser_expression_statement): Likewise. Call
2411169689Skan	finish_stmt_expr_expr for final expression of a statement
2412169689Skan	expression.
2413169689Skan	(cp_parser_for_init_statement,
2414169689Skan	cp_parser_implicitly_scoped_statement,
2415169689Skan	cp_parser_already_scoped_statement, cp_parser_function_definition,
2416169689Skan	cp_parser_try_block, cp_parser_handled): Adjust.
2417169689Skan	* pt.c (tsubst_copy) <STMT_EXPR case>: Pass tf_stmt_expr.
2418169689Skan	(tsubst_expr): Process tf_stmt_expr and tf_stmt_exprs flags.
2419169689Skan	(tsubst_expr) <EXPR_STMT case>: Check tf_stmt_exprs flag.
2420169689Skan	* semantics.c (finish_expr_stmt): Do not deal with statement
2421169689Skan	expressions.
2422169689Skan	(begin_stmt_expr): Clear last_expr_type.
2423169689Skan	(finish_stmt_expr_expr): New.
2424169689Skan	(finish_stmt_expr): Process the value expression.
2425169689Skan
2426169689Skan	* typeck.c (build_compound_expr): If RHS is a TARGET_EXPR, put the
2427169689Skan	compound expr inside the target's initializer.
2428169689Skan
2429169689Skan	PR c++/11525
2430169689Skan	* parser.c (cp_parser_primary_expression): Do not set
2431169689Skan	non-constant-p merely because it is a dependent scope.
2432169689Skan
2433169689Skan	PR c++/9447
2434169689Skan	* decl2.c (do_class_using_decl): Set type to NULL_TREE.
2435169689Skan	* semantics.c (finish_expr_stmt): Do not convert to void in a
2436169689Skan	template.
2437169689Skan
2438169689Skan2003-07-31  Nathan Sidwell  <nathan@codesourcery.com>
2439169689Skan
2440169689Skan	* pt.c (coerce_template_parms): Refactor.
2441169689Skan	(fn_type_unification): Increment processing_template_decl when
2442169689Skan	tsubsting an incomplete set of explicit args.
2443169689Skan
2444169689Skan	PR c++/11347
2445169689Skan	* pt.c (instantiate_class_template): Increment
2446169689Skan	processing_template_decl around the tsubst of a template member
2447169689Skan	class.
2448169689Skan	(tsubst_qualified_id): Assert we do not have a dependent scope.
2449169689Skan
2450169689Skan	* pt.c (coerce_template_template_parms, lookup_template_class,
2451169689Skan	can_complete_type_without_circularity, instantiate_class_template,
2452169689Skan	tsubst_decl, unify): Reformat.
2453169689Skan
2454169689Skan2003-07-31  Jan Hubicka  <jh@suse.cz>
2455169689Skan
2456169689Skan	* decl2.c (maybe_make_one_only): Use mark_referenced.
2457169689Skan	* method.c (use_thunk): Likewsie.
2458169689Skan
2459169689Skan2003-07-30  Jan Hubicka  <jh@suse.cz>
2460169689Skan
2461169689Skan	* class.c (build_vtable_entry_ref): Kill.
2462169689Skan	(build_vtbl_ref_1): Do not call build_vtable_entry_ref.
2463169689Skan	(build_vfn_ref): Do not call build_vtable_entry_ref.
2464169689Skan	* cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
2465169689Skan	* cp-tree.h (prepare_assemble_variable): Kill.
2466169689Skan	* cp-decl.c (prepare_assemble_variable): Kill.
2467169689Skan
2468169689Skan2003-07-29  Geoffrey Keating  <geoffk@apple.com>
2469169689Skan
2470169689Skan	* parser.c (cp_lexer_new_main): Use c_common_no_more_pch instead
2471169689Skan	of setting valid_pch by hand.
2472169689Skan
2473169689Skan2003-07-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2474169689Skan
2475169689Skan	* decl.c (finish_enum): Initialize underlying_type.
2476169689Skan
2477169689Skan2003-07-29  Nathan Sidwell  <nathan@codesourcery.com>
2478169689Skan
2479169689Skan	PR c++/9447
2480169689Skan	* decl.c (add_binding): Add bval local variable.
2481169689Skan	(push_class_level_binding): Likewise. Allow a USING_DECL to be
2482169689Skan	pushed.
2483169689Skan	* decl2.c (do_class_using_decl):  The type of a using decl is
2484169689Skan	unknown.
2485169689Skan	* parser.c (cp_parser_postfix_expression): Refactor unqualified-id
2486169689Skan	function call lookup code.
2487169689Skan	* pt.c (tsubst): A USING_DECL will have unknown type.
2488169689Skan	(tsubst_copy_and_build): Allow a using decl.
2489169689Skan	(type_dependent_expression_p): A USING_DECL will make it
2490169689Skan	dependent.
2491169689Skan	* semantics.c (finish_member_declaration): Push a dependent using
2492169689Skan	declaration.
2493169689Skan
2494169689Skan2003-07-28  Mark Mitchell  <mark@codesourcery.com>
2495169689Skan
2496169689Skan	PR c++/11530
2497169689Skan	* parser.c (cp_parser_postfix_expression): Do not call mark_used.
2498169689Skan	* semantics.c (finish_id_expression): Call mark_used for all
2499169689Skan	declarations.
2500169689Skan
2501169689Skan2003-07-28  Mark Mitchell  <mark@codesourcery.com>
2502169689Skan
2503169689Skan	PR c++/11667
2504169689Skan	* call.c (standard_conversion): Allow all integral->enumeral
2505169689Skan	conversions, after marking them as bad.
2506169689Skan	* decl.c (finish_enum): Make sure that all enumerators are
2507169689Skan	properly converted to the underlying type.
2508169689Skan	(build_enumerator): Set DECL_CONTEXT for namespace-scope
2509169689Skan	enumeration types.
2510169689Skan	* pt.c (tsubst_copy): Adjust handling of CONST_DECLs accordingly.
2511169689Skan	(tsubst_enum): Tidy.
2512169689Skan
2513169689Skan	* Make-lang.in (typeck.o): Depend on convert.h.
2514169689Skan	(class.o): Likewise.
2515169689Skan	(rtti.o): Likewise.
2516169689Skan	* call.c: Include convert.h.
2517169689Skan	(convert_arg_to_ellipsis): Use convert_to_real.
2518169689Skan	* class.c: Include convert.h.
2519169689Skan	(build_base_path): Use convert_to_integer.
2520169689Skan	* rtti.c: Include convert.h.
2521169689Skan	(build_headof): Use convert_to_integer.
2522169689Skan	* typeck.c: Include convert.h.
2523169689Skan	(decay_conversion): Use convert_to_integer.
2524169689Skan	(build_unary_op): Use build_nop.
2525169689Skan	(get_delta_difference): Use convert_to_integer.
2526169689Skan	(build_ptrmemfunc): Avoid unnecessary conversions.
2527169689Skan
2528169689Skan2003-07-28  Jan Hubicka  <jh@suse.cz>
2529169689Skan
2530169689Skan	* decl2.c (mark_member_pointers): Verify that member pointer points to
2531169689Skan	the function.
2532169689Skan
2533169689Skan2003-07-28  Nathan Sidwell  <nathan@codesourcery.com>
2534169689Skan
2535169689Skan	* cp-tree.h (begin_compound_stmt): No scope arg is a bool.
2536169689Skan	(finish_compound_stmt): Remove no scope arg.
2537169689Skan	* decl.c (register_dtor_fn): Adjust begin_compound_stmt and
2538169689Skan	end_compound_stmt calls.
2539169689Skan	(expand_static_init, begin_destructor_body, begin_function_body,
2540169689Skan	finish_function_body): Likewise.
2541169689Skan	* decl2.c (start_objects, finish_objects,
2542169689Skan	start_static_storage_duration_function,
2543169689Skan	finish_static_storage_duration_function): Likewise.
2544169689Skan	* init.c (begin_init_stmts, finish_init_stmts,
2545169689Skan	construct_virtual_base, build_vec_init): Likewise.
2546169689Skan	* method.c (do_build_assign_ref, synthesize_method): Likewise.
2547169689Skan	* parser.c (cp_parser_compound_statement,
2548169689Skan	cp_parser_implicitly_scoped_statement,
2549169689Skan	cp_parser_already_scoped_statement): Likewise.
2550169689Skan	* pt.c (tsubst_expr): Likewise.
2551169689Skan	* semantics.c (begin_compound_stmt): No scope arg is a bool.
2552169689Skan	(finish_compound_stmt): Remove no scope arg.
2553169689Skan
2554169689Skan	* error.c (dump_expr) <COMPOUND_EXPR case>: A compound expr is
2555169689Skan	always dyadic.
2556169689Skan
2557169689Skan2003-07-27  Mark Mitchell  <mark@codesourcery.com>
2558169689Skan
2559169689Skan	* call.c (standard_conversion): Tweak handling of
2560169689Skan	pointer-to-member types.
2561169689Skan	* pt.c (tsubst): Correctly qualify pointers-to-data member types.
2562169689Skan	* typeck.c (comp_ptr_ttypes_real): Check qualifiers on
2563169689Skan	pointer-to-data member types.
2564169689Skan
2565169689Skan2003-07-27  Nathan Sidwell  <nathan@codesourcery.com>
2566169689Skan
2567169689Skan	* parser.c (cp_parser_type_parameter): Reformat.
2568169689Skan	(cp_parser_parameter_declaration): Deprecate default args where
2569169689Skan	not allowed.
2570169689Skan
2571169689Skan2003-07-26  Nathan Sidwell  <nathan@codesourcery.com>
2572169689Skan
2573169689Skan	* cfns.h: Rebuilt.
2574169689Skan
2575169689Skan	* cp-tree.h (begin_init_stmts, finish_init_stmts): Remove.
2576169689Skan	(begin_global_stmt_expr, finish_global_stmt_expr): Remove.
2577169689Skan	* init.c (begin_init_stmts): Make static. Return is_global
2578169689Skan	value. Always call begin_stmt_expr.
2579169689Skan	(finish_init_stmts): Make static. Add is_global parm. Always
2580169689Skan	building a stmt tree.
2581169689Skan	(build_aggr_init): Adjust begin_init_stmts, finish_init_stmts calls.
2582169689Skan	(build_vec_init): Likewise. Always building a stmt tree.
2583169689Skan	(expand_default_init): Always building a stmt tree.
2584169689Skan	(get_temp_regvar): Likewise.
2585169689Skan	* semantics.c (begin_global_stmt_expr,
2586169689Skan	finish_global_stmt_expr): Remove.
2587169689Skan
2588169689Skan2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2589169689Skan
2590169689Skan	* cp-tree.h (build_compound_expr): Take LHS & RHS args.
2591169689Skan	(build_x_compound_expr_from_list): Declare.
2592169689Skan	* typeck.c (build_x_compound_expr_from_list): New.
2593169689Skan	(build_x_compound_expr): Adjust.
2594169689Skan	(build_compound_expr): Remove unreachable code. Take two
2595169689Skan	parameters, adjust.
2596169689Skan	* decl.c (grok_reference_init): Use
2597169689Skan	build_x_compound_expr_from_list.
2598169689Skan	(expand_static_init): Adjust build_compound_expr call.
2599169689Skan	(cxx_maybe_build_cleanup): Likewise.
2600169689Skan	* init.c (perform_member_init): Use
2601169689Skan	build_x_compound_expr_from_list.
2602169689Skan	(build_new_1): Likewise.
2603169689Skan	(build_vec_delete): Adjust build_compound_expr calls.
2604169689Skan	(build_vbase_delete): Likewise.
2605169689Skan	* typeck2.c (store_init_value): Use
2606169689Skan	build_x_compound_expr_from_list.
2607169689Skan	(build_functional_cast): Likewise.
2608169689Skan
2609169689Skan2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2610169689Skan
2611169689Skan	* cp-tree.h (enum tsubst_flags_t): Add tf_user.
2612169689Skan	* decl.c (make_typename_type): Pass it.
2613169689Skan	* pt.c (lookup_template_class): Use it.
2614169689Skan	(resolve_typename_type): Pass it.
2615169689Skan	* semantics.c (finish_template_type): Pass it.
2616169689Skan
2617169689Skan2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2618169689Skan
2619169689Skan	PR c++/11617
2620169689Skan	* cp-tree.h (qualified_name_lookup_error): Declare.
2621169689Skan	* pt.c (tsubst_qualified_id): Use qualified_name_lookup_error for
2622169689Skan	errors.
2623169689Skan	(tsubst_expr) <DECL_STMT case>: Likewise.
2624169689Skan	(tsubst_copy_and_build) <COMPONENT_REF case>: Likewise.
2625169689Skan	* semantics.c (qualified_name_lookup_error): New, broken out of ...
2626169689Skan	(finish_id_expression): ... here. Use it.
2627169689Skan
2628169689Skan2003-07-25  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
2629169689Skan
2630169689Skan	* cfns.gperf: Add '%%' delimiter to placate gperf 3.0.
2631169689Skan
2632169689Skan2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2633169689Skan
2634169689Skan	PR c++/11596
2635169689Skan	* pt.c (maybe_fold_nontype_arg, maybe_fold_nontype_args): Remove.
2636169689Skan	(tsubst_template_arg): New.
2637169689Skan	(tsubst_template_arg_vector): Rename to ...
2638169689Skan	(tsubst_template_args): ... this. Accept a TREE_LIST form. Use
2639169689Skan	tsubst_template_arg.
2640169689Skan	(coerce_template_parms): Use tsubst_template_arg for default
2641169689Skan	value.
2642169689Skan	(tsubst_template_parms): Likewise.
2643169689Skan	(tsubst_aggr_type): Adjust.
2644169689Skan	(tsubst_decl): Likewise.
2645169689Skan	(tsubst): Use tsubst_template_arg for a DOMAIN. Adjust.
2646169689Skan	(tsubst_copy) <TEMPLATE_ID_EXPR case>: Use tsubst_template_args.
2647169689Skan
2648169689Skan2003-07-25 Gabriel Dos Reis  <gdr@integrable-solutions.net>
2649169689Skan
2650169689Skan	* Make-lang.in (cp/error.o): Depend on DIAGNOSTIC_H.
2651169689Skan	* error.c: Use the new pretty-printer framework.
2652169689Skan
2653169689Skan2003-07-24  Per Bothner  <pbothner@apple.com>
2654169689Skan
2655169689Skan	* decl.c (pushdecl_class_level): Don't use push_srcloc/pop_srcloc
2656169689Skan	which causes errors messages to incorrectly mention included files.
2657169689Skan
2658169689Skan2003-07-24  Mark Mitchell  <mark@codesourcery.com>
2659169689Skan
2660169689Skan	* cp-tree.h (convert_to_base_statically): Declare.
2661169689Skan	* call.c (build_special_member_call): Convert INSTANCE to the base
2662169689Skan	type.
2663169689Skan	* class.c (convert_to_base_statically): New method.
2664169689Skan	* init.c (construct_virtual_base): Use it.
2665169689Skan	* method.c (do_build_assign_ref): Fix typo in comment.
2666169689Skan
2667169689Skan2003-07-24  Jason Merrill  <jason@redhat.com>
2668169689Skan
2669169689Skan	* decl.c: Just set truthvalue_* to boolean_*.
2670169689Skan
2671169689Skan2003-07-24  Nathan Sidwell  <nathan@codesourcery.com>
2672169689Skan
2673169689Skan	* decl.c (reshape_init): Remove unreachable code.
2674169689Skan
2675169689Skan2003-07-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2676169689Skan
2677169689Skan	PR c++/11513
2678169689Skan	* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope.
2679169689Skan
2680169689Skan2003-07-23  Mark Mitchell  <mark@codesourcery.com>
2681169689Skan
2682169689Skan	PR c++/11645
2683169689Skan	* cp-tree.h (accessible_base_p): Declare.
2684169689Skan	* call.c (build_over_call): Use it.
2685169689Skan	* search.c (accessible_base_p): New function, split out from ...
2686169689Skan	(lookup_base): ... here.
2687169689Skan
2688169689Skan	PR c++/11517
2689169689Skan	* call.c (build_conditional_expr): Use perform_implicit_conversion
2690169689Skan	and error_operand_p.  Robustify.
2691169689Skan	* typeck.c (build_unary_op): Use perform_implicit_conversion.
2692169689Skan
2693169689Skan2003-07-23  Nathan Sidwell  <nathan@codesourcery.com>
2694169689Skan
2695169689Skan	PR c++/10953
2696169689Skan	* parser.c (cp_parser_nested_name_specifier): Reset scope on
2697169689Skan	failure.
2698169689Skan	(cp_parser_elaborated_type_specifier): Likewise.
2699169689Skan
2700169689Skan2003-07-22  Mark Mitchell  <mark@codesourcery.com>
2701169689Skan
2702169689Skan	Eliminate use of POINTER_TYPE for pointers-to-members.
2703169689Skan	* call.c (standard_conversion): Rework pointer-to-member handling.
2704169689Skan	Add comments.
2705169689Skan	(add_builtin_candidate): Likewise.
2706169689Skan	(resolve_scoped_fn_name): Remove.
2707169689Skan	(build_conditional_expr): Rework pointer-to-member handling.
2708169689Skan	(compare_ics): Likewise.
2709169689Skan	* class.c (check_field_decls): Use TYPE_PTR_P.
2710169689Skan	* cp-lang.c (cp_var_mod_type_p): Rework pointer-to-member
2711169689Skan	handling.
2712169689Skan	* cp-tree.h (SCALAR_TYPE_P): Use TYPE_PTR_TO_MEMBER_P.
2713169689Skan	(TYPE_PTRMEM_P): Add comment.
2714169689Skan	(TYPE_PTR_P): Simplify.
2715169689Skan	(TYPE_PTROB_P): Correct definition.
2716169689Skan	(TYPE_PTR_TO_MEMBER_P): New macro.
2717169689Skan	(TYPE_PTRMEM_CLASS_TYPE): Adjust.
2718169689Skan	(TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
2719169689Skan	(resolved_scoped_fn_name): Remove declaration.
2720169689Skan	(build_offset_ref): Change prototype.
2721169689Skan	(resolve_offset_ref): Remove.
2722169689Skan	(comp_target_types): Remove.
2723169689Skan	* cvt.c (cp_convert_to_pointer): Rework pointer-to-member
2724169689Skan	handling.
2725169689Skan	(convert_to_reference): Use can_convert.
2726169689Skan	(ocp_convert): Improve error handling.  Rework pointer-to-member
2727169689Skan	handling.
2728169689Skan	(perform_qualification_conversions): Rework pointer-to-member
2729169689Skan	handling.
2730169689Skan	* decl.c (build_ptrmem_type): Handle functions too.
2731169689Skan	(create_array_type_for_decl): Remove OFFSET_TYPE error message.
2732169689Skan	(grokdeclarator): Use OFFSET_TYPE for pointers to data members.
2733169689Skan	(grokparms): Remove OFFSET_TYPE error message.
2734169689Skan	* dump.c (cp_dump_tree): Rework pointer-to-member handling.
2735169689Skan	* error.c (dump_type_prefix): Likewise.
2736169689Skan	* expr.c (cplus_expand_constant): Use build_nop.
2737169689Skan	* init.c (build_offset_ref): Add address_p parameter.  Fold in
2738169689Skan	necessary bits from resolve_offset_ref.
2739169689Skan	(resolve_offset_ref): Remove.
2740169689Skan	* parser.c (cp_parser_postfix_expression): Remove special case
2741169689Skan	code for OFFSET_TYPE.
2742169689Skan	* pt.c (convert_nontype_argument): Rework pointer-to-member
2743169689Skan	handling.
2744169689Skan	(convert_template_argument): Likewise.
2745169689Skan	(unify): Likewise.
2746169689Skan	(invalid_nontype_parm_type_p): Likewise.
2747169689Skan	(dependent_type_p_r): Likewise.
2748169689Skan	* rtti.c (get_tinfo_decl): Remove OFFSET_TYPE special case.
2749169689Skan	(target_incomplete_p_): Rework pointer-to-member
2750169689Skan	handling.
2751169689Skan	(get_pseudo_ti_init): Likewise.
2752169689Skan	(get_pseudo_ti_desc): Likewise.
2753169689Skan	* semantics.c (finish_qualified_id_expr): Adjust call to
2754169689Skan	build_offset_ref.  Remove use of resolve_offset_ref.
2755169689Skan	* tree.c (pod_type_p): Use TYPE_PTR_TO_MEMBER_P.
2756169689Skan	* typeck.c (target_type): Use TYPE_PTRMEM_P.
2757169689Skan	(type_unknown_p): Remove obsolete code about the time before
2758169689Skan	non-dependent expressions were handled correctly.
2759169689Skan	(qualify_type_recursive): Remove.
2760169689Skan	(composite_pointer_type_r): New function.
2761169689Skan	(composite_pointer_type): Use it.
2762169689Skan	(merge_types): Remove dead comments.
2763169689Skan	(comp_cv_target_types): Remove.
2764169689Skan	(comp_target_types): Likewise.
2765169689Skan	(comp_target_parms): Likewise.
2766169689Skan	(cxx_sizeof_or_alignof_type): Remove OFFSET_TYPE error.
2767169689Skan	(build_indirect_ref): Use TYPE_PTR_TO_MEMBER_P.
2768169689Skan	(build_binary_op): Do not use of comp_target_types.
2769169689Skan	(pointer_diff): Remove OFFSET_TYPE case.
2770169689Skan	(build_unary_op): Adjust pointer-to-member handling.
2771169689Skan	(unary_complex_lvalue): Likewise.
2772169689Skan	(check_for_casting_away_constness): Add description parameter.
2773169689Skan	(build_static_cast): Pass it.
2774169689Skan	(build_reinterpret_cast): Use check_for_casting_away_constness.
2775169689Skan	(build_const_cast): Adjust pointer-to-member handling.
2776169689Skan	(build_c_cast): Likewise.
2777169689Skan	(convert_for_assignment): Remove OFFSET_TYPE error message.
2778169689Skan	(comp_ptr_ttypes_real): Adjust pointer-to-member handling.
2779169689Skan	(comp_ptr_ttypes_reinterpret): Remove.
2780169689Skan	(casts_away_constness_r): Adjust pointer-to-member handling.
2781169689Skan	(casts_away_constness): Liekwise.
2782169689Skan	(strip_all_pointer_quals): Remove.
2783169689Skan	* typeck2.c (digest_init): Adjust pointer-to-member handling.
2784169689Skan	(build_m_component_ref): Likewise.
2785169689Skan
2786169689Skan2003-07-22  Wolfgang Bangerth  <bangerth@dealii.org>
2787169689Skan
2788169689Skan	* lex.c (unqualified_fn_lookup_error): Mention that the error
2789169689Skan	message needs to be kept in synch with the manual.
2790169689Skan
2791169689Skan2003-07-22  Nathan Sidwell  <nathan@codesourcery.com>
2792169689Skan
2793169689Skan	PR c++/11614
2794169689Skan	* decl.c (grokdeclarator): An array member is only a flexible
2795169689Skan	array member if the field itself is the array.
2796169689Skan
2797169689Skan2003-07-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2798169689Skan
2799169689Skan	PR c++/10793
2800169689Skan	* decl.c (xref_basetypes): Handle error_mark_node.
2801169689Skan
2802169689Skan2003-07-22  Nathan Sidwell  <nathan@codesourcery.com>
2803169689Skan
2804169689Skan	* cp-tree.h (enum cp_lvalue_kind): Add clk_packed.
2805169689Skan	* tree.c (lvalue_p_1): Set it.
2806169689Skan	* class.c (check_field): Don't allow non-packed non-POD fields to
2807169689Skan	be packed.
2808169689Skan	* call.c (reference_binding): Need a temporary for all bitfield
2809169689Skan	and packed fields.
2810169689Skan	(convert_like_real): Check it is ok to make a temporary here.
2811169689Skan
2812169689Skan2003-07-21  Nathan Sidwell  <nathan@codesourcery.com>
2813169689Skan
2814169689Skan	* cp-tree.h (hack_identifier): Remove.
2815169689Skan	* method.c (hack_identifier): Remove.
2816169689Skan	* semantics.c (finish_id_expression): Expand hack_identifier
2817169689Skan	here. Simplify.
2818169689Skan
2819169689Skan2003-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2820169689Skan
2821169689Skan	* call.c class.c decl.c decl2.c g++spec.c lex.c parser.c pt.c rtti.c
2822169689Skan	semantics.c typeck.c: Remove unnecessary casts.
2823169689Skan
2824169689Skan2003-07-18  Nathan Sidwell  <nathan@codesourcery.com>
2825169689Skan
2826169689Skan	* cp-tree.h (hack_identifier): Remove.
2827169689Skan	* method.c (hack_identifier): Remove.
2828169689Skan	* semantics.c (finish_id_expression): Expand hack_identifier
2829169689Skan	here. Simplify.
2830169689Skan
2831169689Skan2003-07-18  Nathan Sidwell  <nathan@codesourcery.com>
2832169689Skan
2833169689Skan	* cp-tree.h (finish_non_static_data_member): Add object param.
2834169689Skan	* method.c (hack_identifier): Adjust.
2835169689Skan	* pt.c (tsubst_copy_and_build) <COMPONENT_REF case>: Don't search
2836169689Skan	again for a FIELD_DECL.
2837169689Skan	* semantics.c (finish_non_static_data_member): Add object
2838169689Skan	parameter. Always save the DECL in the COMPONENT_REF.
2839169689Skan	* call.c (resolve_scoped_fn_name): Adjust.
2840169689Skan
2841169689Skan2003-07-17  Zack Weinberg  <zack@codesourcery.com>
2842169689Skan
2843169689Skan	* pt.c (get_bindings): Make definition consistent with
2844169689Skan	forward declaration.
2845169689Skan
2846169689Skan2003-07-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2847169689Skan
2848169689Skan	PR c++/7809
2849169689Skan	* friend.c (add_friend): Check access for member functions
2850169689Skan	and templates.
2851169689Skan
2852169689Skan2003-07-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2853169689Skan
2854169689Skan	PR c++/10668
2855169689Skan	* typeck.c (build_class_member_access_expr): Improve diagnostic.
2856169689Skan
2857169689Skan2003-07-16  Mark Mitchell  <mark@codesourcery.com>
2858169689Skan
2859169689Skan	PR c++/11547
2860169689Skan	* cp-tree.h (DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P): New
2861169689Skan	macro.
2862169689Skan	(DECL_PRETTY_FUNCTION_P): Use VAR_DECL_CHECK.
2863169689Skan	* decl.c (duplicate_decls): Merge
2864169689Skan	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2865169689Skan	* parser.c (cp_parser_postfix_expression): Adjust call to
2866169689Skan	cp_parser_initializer_list and
2867169689Skan	cp_parser_parenthesized_expression_list.
2868169689Skan	(cp_parser_parenthesized_expression_list): Add non_constant_p.
2869169689Skan	(cp_parser_new_placement): Adjust call to
2870169689Skan	cp_parser_parenthesized_expression_list.
2871169689Skan	(cp_parser_direct_new_declarator): Likewise.
2872169689Skan	(cp_parser_conditional_expression): Remove.
2873169689Skan	(cp_parser_constant_expression): Parse an assignment-expression,
2874169689Skan	not a conditional-expression.
2875169689Skan	(cp_parser_simple_declaration): Resolve expression/declaration
2876169689Skan	ambiguity more quickly.
2877169689Skan	(cp_parser_mem_initializer): Adjust call to
2878169689Skan	cp_parser_parenthesized_expression_list.
2879169689Skan	(cp_parser_init_declarator): Keep track of whether or not the
2880169689Skan	initializer is a constant-expression.
2881169689Skan	(cp_parser_initializer): Add non_constant_p parameter.
2882169689Skan	(cp_parser_initializer_clause): Likewise.
2883169689Skan	(cp_parser_initializer_list): Likewise.
2884169689Skan	(cp_parser_attribute_list): Adjust call to
2885169689Skan	cp_parser_parenthesized_expression_list.
2886169689Skan	(cp_parser_functional_cast): Likewise.
2887169689Skan	* pt.c (tsubst_decl): Copy
2888169689Skan	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2889169689Skan	(tsubst_expr): Tweak use of DECL_PRETTY_FUNCTION_P.
2890169689Skan	* semantics.c (finish_id_expression): Use
2891169689Skan	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2892169689Skan
2893169689Skan2003-07-16  Neil Booth  <neil@daikokuya.co.uk>
2894169689Skan
2895169689Skan	* lang-options.h: Remove.
2896169689Skan
2897169689Skan2003-07-16  Andrew Pinski  <pinskia@physics.uc.edu>
2898169689Skan
2899169689Skan	PR c/10962
2900169689Skan	* class.c (field_decl_cmp): Remove.
2901169689Skan	(resort_field_decl_cmp): Remove.
2902169689Skan	(resort_sorted_fields): Remove.
2903169689Skan	(add_fields_to_vec): Rename to ...
2904169689Skan	(add_fields_to_record_type): this.
2905169689Skan	(finish_struct_1): Change to be using
2906169689Skan	sorted_fields_type's fields.
2907169689Skan	* cp-tree.h (lang_decl): In lang_decl_u3
2908169689Skan	change sorted_fields to be a pointer to
2909169689Skan	sorted_fields_type.
2910169689Skan	(resort_sorted_fields): Remove prototype.
2911169689Skan	* search.c (lookup_field_1): Change to be using
2912169689Skan	sorted_fields_type's fields.
2913169689Skan
2914169689Skan2003-07-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2915169689Skan
2916169689Skan	PR c++/5421
2917169689Skan	* decl.c (grokdeclarator): Handle TEMPLATE_ID_EXPR if friend
2918169689Skan	is a member of other class.
2919169689Skan	* friend.c (do_friend): Don't build TEMPLATE_DECL if friend
2920169689Skan	is a specialization of function template.
2921169689Skan
2922169689Skan2003-07-16  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2923169689Skan
2924169689Skan	PR c++/10903
2925169689Skan	* pt.c (convert_nontype_argument): Fix thinko in diagnostic.
2926169689Skan	Improve.
2927169689Skan
2928169689Skan2003-07-15  Mark Mitchell  <mark@codesourcery.com>
2929169689Skan
2930169689Skan	* cp-tree.def (LOOKUP_EXPR): Remove.
2931169689Skan	* cp-tree.h (cp_id_kind): Add CP_ID_KIND_UNQUALIFIED_DEPENDENT.
2932169689Skan	(LOOKUP_EXPR_GLOBAL): Remove.
2933169689Skan	(get_bindings): Remove.
2934169689Skan	(is_aggr_type_2): Remove.
2935169689Skan	* call.c (resolved_scoped_fn_name): Remove support for
2936169689Skan	LOOKUP_EXPR.
2937169689Skan	* decl.c (grokfndecl): Likewise.
2938169689Skan	(grokdeclarator): Likewise.
2939169689Skan	* error.c (dump_decl): Likewise.
2940169689Skan	(dump_expr): Likewise.
2941169689Skan	* friend.c (do_friend): Likewise.
2942169689Skan	* init.c (build_offset_ref): Likewise.
2943169689Skan	* lex.c (unqualified_fn_lookup_error): Use pedwarn.  Do not create
2944169689Skan	LOOKUP_EXPRs
2945169689Skan	* mangle.c (write_expression): Remove support for LOOKUP_EXPR.
2946169689Skan	* parser.c (cp_parser_postfix_expression): Modify Koenig lookup
2947169689Skan	test.
2948169689Skan	* pt.c (get_bindings): Give it internal linkage.
2949169689Skan	(check_explicit_specialization): Remove support for LOOKUP_EXPR.
2950169689Skan	(lookup_template_function): Likewise.
2951169689Skan	(for_each_tempalte_parm_r): Likewise.
2952169689Skan	(tsubst_decl): Likewise.
2953169689Skan	(tsubst_qualified_id): Handle template template parameters.
2954169689Skan	(tsubst_copy): Remove support for LOOKUP_EXPR.
2955169689Skan	(tsubst_copy_and_build): Likewise.
2956169689Skan	(most_general_template): Likewise.
2957169689Skan	(value_dependent_expression_p): Likewise.
2958169689Skan	(type_dependent_expression_p): Note that IDENTIFIER_NODEs are
2959169689Skan	always dependent.
2960169689Skan	* semantics.c (perform_koenig_lookup): Do not create
2961169689Skan	IDENTIFIER_NODEs.
2962169689Skan	(finish_fname): Likewise.
2963169689Skan	(finish_id_expression): Likewise.
2964169689Skan	* tree.c (is_aggr_type_2): Remove.
2965169689Skan
2966169689Skan2003-07-16  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2967169689Skan
2968169689Skan	PR c++/11531
2969169689Skan	* typeck.c (check_return_expr): Fix thinko in diagnostic.
2970169689Skan
2971169689Skan2003-07-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2972169689Skan
2973169689Skan	PR c++/10108
2974169689Skan	* pt.c (tsubst_decl) <TEMPLATE_DECL>: Add a check for
2975169689Skan	error_mark_node.
2976169689Skan
2977169689Skan2003-07-14  Mark Mitchell  <mark@codesourcery.com>
2978169689Skan
2979169689Skan	PR c++/11509
2980169689Skan	* pt.c (dependent_scope_ref_p): New function.
2981169689Skan	(value_dependent_expression_p): Use it.
2982169689Skan	(type_dependent_expression_p): Likewise.
2983169689Skan
2984169689Skan	* pt.c (tsubst_friend_function): Use reregister_specialization.
2985169689Skan
2986169689Skan	PR c++/7019
2987169689Skan	* cp-tree.h (lookup_qualified_name): Adjust prototype.
2988169689Skan	* decl.c (lookup_qualified_name): Add complain parameter.  Adjust
2989169689Skan	call to is_aggr_type.
2990169689Skan	* parser.c (cp_parser_lookup_name): Adjust call to
2991169689Skan	lookup_qualified_name.
2992169689Skan	* pt.c (tsubst_qualified_id): Likewise.
2993169689Skan	(tsubst_copy_and_build): Likewise.
2994169689Skan	* semantics.c (finish_qualified_id_expr): Deal with erroneous
2995169689Skan	expressions.
2996169689Skan
2997169689Skan2003-07-14  Gabriel Dos Reis <gdr@integrable-solutions.net>
2998169689Skan
2999169689Skan	PR c++/11510
3000169689Skan	* call.c (op_error): Properly format  REALPART_EXPR and
3001169689Skan	IMAGPART_EXPR.
3002169689Skan	* error.c (dump_expr): Likewise.
3003169689Skan
3004169689Skan2003-07-14  Gabriel Dos Reis <gdr@integrable-solutions.net>
3005169689Skan
3006169689Skan	* error.c (dump_expr): Handle EMPTY_CLASS_EXPR.
3007169689Skan
3008169689Skan2003-07-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3009169689Skan
3010169689Skan	PR c++/5293
3011169689Skan	* call.c (initialize_reference): Improve diagnostic.
3012169689Skan
3013169689Skan2003-07-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3014169689Skan
3015169689Skan	PR c++/11154
3016169689Skan	* pt.c (more_specialized_class): Add full_args parameter.
3017169689Skan	(most_specialized_class): Adjust calls to more_specialized_class.
3018169689Skan	* cp-tree.h (more_specialized_class): Adjust declaration.
3019169689Skan
3020169689Skan2003-07-14  Dan Nicolaescu  <dann@ics.uci.edu>
3021169689Skan
3022169689Skan	* lex.c (enum tree_node_kind): Delete.
3023169689Skan
3024169689Skan2003-07-13  Mark Mitchell  <mark@codesourcery.com>
3025169689Skan
3026169689Skan	PR c++/11503
3027169689Skan	* cp-tree.h (DECL_SELF_REFERENCE_P): New macro.
3028169689Skan	(SET_DECL_SELF_REFERENCE_P): Likewise.
3029169689Skan	* class.c (build_self_reference): Use SET_DECL_SELF_REFERENCE_P.
3030169689Skan	* pt.c (tsubst_decl): Copy it.
3031169689Skan	* search.c (lookup_base): Use DECL_SELF_REFERENCE_P.
3032169689Skan
3033169689Skan	* pt.c (reregister_specialization): Fix thinko in previous change.
3034169689Skan
3035169689Skan	* cp-tree.h (cp_id_kind): New type.
3036169689Skan	(unqualified_name_lookup_error): Change prototype.
3037169689Skan	(unqualified_fn_lookup_error): New function.
3038169689Skan	(do_identifier): Remove.
3039169689Skan	(do_scoped_id): Likewise.
3040169689Skan	(tsubst_copy_and_build): Change prototype.
3041169689Skan	(reregister_specialization): New function.
3042169689Skan	(perform_koenig_lookup): Likewise.
3043169689Skan	(finish_id_expression): Likewise.
3044169689Skan	* call.c (build_method_call): Adjust call to
3045169689Skan	unqualified_name_lookup_error.
3046169689Skan	* decl.c (duplicate_decls): Use reregister_specialization.
3047169689Skan	* lex.c (is_global): Remove.
3048169689Skan	(unqualified_name_lookup_error): Return a value.
3049169689Skan	(do_identifier): Remove.
3050169689Skan	(do_scoped_id): Likewise.
3051169689Skan	(identifier_typedecl_value): Remove.
3052169689Skan	(unqualified_fn_lookup_error): New function.
3053169689Skan	* parser.c (cp_parser_id_kind): Remove.
3054169689Skan	(cp_parser_non_constant_id_expression): Remove.
3055169689Skan	(cp_parser_primary_expression): Use finish_id_expression.
3056169689Skan	(cp_parser_class_or_namespace_name): Use cp_id_kind, not
3057169689Skan	cp_parser_id_kind.
3058169689Skan	(cp_parser_postfix_expression): Use perform_koenig_lookup.
3059169689Skan	(cp_parser_template_argument): Use cp_id_kind.
3060169689Skan	(cp_parser_fold_non_dependent_expr): Adjust call to
3061169689Skan	tsubst_copy_and_build.
3062169689Skan	* pt.c (unregister_specialization): Rename to ...
3063169689Skan	(reregister_specialization): This.
3064169689Skan	(tsubst_friend_function): Use it.
3065169689Skan	(maybe_fold_nontype_arg): Adjust call to tsubst_copy_and_build.
3066169689Skan	(tsubst_qualified_id): Likewise.
3067169689Skan	(tsubst_expr): Likewise.
3068169689Skan	(tsubst_copy_and_build): Add function_p parameter.  Use
3069169689Skan	finish_id_expression.  Introduce RECUR macro.
3070169689Skan	(tsubst_non_call_postfix_expression): New function.
3071169689Skan	(regenerate_decl_from_template): Use reregister_specialization.
3072169689Skan	* semantics.c (perform_koenig_lookup): New function.
3073169689Skan	(finish_id_expression): Likewise.
3074169689Skan
3075169689Skan2003-07-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3076169689Skan
3077169689Skan	* pt.c (push_access_scope_real): Remove.
3078169689Skan	(push_access_scope): Move code from push_access_scope_real.
3079169689Skan	(pop_access_scope): Don't check for TEMPLATE_DECL.
3080169689Skan	(instantiate_template): Defer access checking during template
3081169689Skan	substitution.
3082169689Skan	(regenerate_decl_from_template): Tidy.
3083169689Skan
3084169689Skan2003-07-11  Nathanael Nerode  <neroden@gcc.gnu.org>
3085169689Skan
3086169689Skan	PR c++/11437
3087169689Skan	* operators.def: Add definitions for __imag__, __real__.
3088169689Skan
3089169689Skan2003-07-11  Nathan Sidwell  <nathan@codesourcery.com>
3090169689Skan
3091169689Skan	PR c++/11050
3092169689Skan	* parser.c (cp_parser_expression_list): Rename to ...
3093169689Skan	(cp_parser_parenthesized_expression_list): ... here. Add attribute
3094169689Skan	parameter, parse the surounding parentheses.
3095169689Skan	(cp_parser_skip_to_closing_parenthesis): Add recover and or_comma
3096169689Skan	parameters. Return int.
3097169689Skan	(cp_parser_skip_to_closing_parenthesis or comma): Remove.
3098169689Skan	(cp_parser_postfix_expression): Adjust function call parsing.
3099169689Skan	(cp_parser_new_placement): Adjust.
3100169689Skan	(cp_parser_new_initializer): Likewise.
3101169689Skan	(cp_parser_cast_expression): Likewise.
3102169689Skan	(cp_parser_selection_statement): Likewise.
3103169689Skan	(cp_parser_mem_initializer): Likewise.
3104169689Skan	(cp_parser_asm_definition): Likewise.
3105169689Skan	(cp_parser_init_declarator): Likewise.
3106169689Skan	(cp_parser_declarator): Make
3107169689Skan	cdtor_or_conv_p an int ptr.
3108169689Skan	(cp_parser_direct_declarator): Likewise. Check for a parameter
3109169689Skan	list on cdtors & conv functions.
3110169689Skan	(cp_parser_initializer): Adjust.
3111169689Skan	(cp_parser_member_declaration): Adjust.
3112169689Skan	(cp_parser_attribute_list): Move code into
3113169689Skan	cp_parser_parens_expression_list.
3114169689Skan	(cp_parser_functional_cast): Adjust.
3115169689Skan	* pt.c (type_dependent_expression_p): Erroneous expressions are
3116169689Skan	non-dependent.
3117169689Skan
3118169689Skan2003-07-11  Geoffrey Keating  <geoffk@apple.com>
3119169689Skan
3120169689Skan	* decl.c (cp_finish_decl): Handle 'used' attribute.
3121169689Skan
3122169689Skan	* cp-lang.c (c_reset_state): New dummy routine.
3123169689Skan	* cp-tree.h (finish_file): Move prototype to c-common.h.
3124169689Skan	* parser.c (c_parse_file): Rename from yyparse; don't call finish_file.
3125169689Skan
3126169689Skan2003-07-11  Mark Mitchell  <mark@codesourcery.com>
3127169689Skan
3128169689Skan	PR c++/8327
3129169689Skan	* pt.c (tsubst_qualified_id): Implement suggested resolution for
3130169689Skan	Core Issue 2.
3131169689Skan	(type_dependent_expression_p): Likewise.
3132169689Skan
3133169689Skan2003-07-10  Mark Mitchell  <mark@codesourcery.com>
3134169689Skan
3135169689Skan	* typeck.c (build_binary_op): Do not warn about signed
3136169689Skan	vs. unsigned comparisons in the bodies of templates.
3137169689Skan
3138169689Skan	PR c++/9411
3139169689Skan	* parser.c (cp_parser_postfix_expression): Check dependency of
3140169689Skan	functions.
3141169689Skan
3142169689Skan2003-07-09  Mark Mitchell  <mark@codesourcery.com>
3143169689Skan
3144169689Skan	PR c++/10032
3145169689Skan	* decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are
3146169689Skan	still errors.
3147169689Skan
3148169689Skan	PR c++/10527
3149169689Skan	* error.c (decl_to_string): Do not print default argument
3150169689Skan	expressions.
3151169689Skan
3152169689Skan	* cp-tree.h (break_out_calls): Remove declaration.
3153169689Skan	* tree.c (break_out_calls): Remove.
3154169689Skan	* typeck.c (build_modify_expr): Avoid invalid sharing of trees.
3155169689Skan
3156169689Skan2003-07-09  Nathan Sidwell  <nathan@codesourcery.com>
3157169689Skan
3158169689Skan	PR c++ 9483
3159169689Skan	* class.c (check_field_decls): Pass DECL_NAME to constructor_name_p.
3160169689Skan	* decl2.c (constructor_name_p): Avoid repeated constructor_name
3161169689Skan	calls.
3162169689Skan	* decl.c (grokdeclarator): Refactor ctor/dtor detection.
3163169689Skan
3164169689Skan2003-07-09  Mark Mitchell  <mark@codesourcery.com>
3165169689Skan
3166169689Skan	* typeck.c (build_x_unary_op): Take note of the fact that
3167169689Skan	PREINCREMENT_EXPR and POSTINCREMENT_EXPR are binary operations on
3168169689Skan	trees.
3169169689Skan
3170169689Skan	* parser.c (cp_parser_primary_expression): Preserve the form of
3171169689Skan	qualified expressions in templates, even if they are not
3172169689Skan	dependent.
3173169689Skan	* pt.c (convert_nontype_argument): Handle non-dependent SCOPE_REFs.
3174169689Skan	(tsubst_qualified_id): Likewise.
3175169689Skan	* search.c (accessible_p): Treat everything in the body of a
3176169689Skan	template as accessible.
3177169689Skan
3178169689Skan2003-07-08  Mark Mitchell  <mark@codesourcery.com>
3179169689Skan
3180169689Skan	* cp-tree.def (NON_DEPENDENT_EXPR): New node.
3181169689Skan	* cp-tree.h (build_call_from_tree): Remove.
3182169689Skan	(build_member_call): Likewise.
3183169689Skan	(dependent_template_arg_p): Remove.
3184169689Skan	(any_dependent_template_arguments_p): New function.
3185169689Skan	(dependent_template_id_p): Likewise.
3186169689Skan	(any_type_dependent_arguments_p): Likewise.
3187169689Skan	(build_non_dependent_expr): Likewise.
3188169689Skan	(build_non_dependent_args): Likewise.
3189169689Skan	(build_x_compound_expr): Adjust prototype.
3190169689Skan	* call.c (build_new_method_call): Handle non-dependent expressions
3191169689Skan	correctly.
3192169689Skan	* decl2.c (grok_array_decl): Likewise.
3193169689Skan	(build_offset_ref_call_from_tree): Likewise.
3194169689Skan	(build_call_from_tree): Remove.
3195169689Skan	* error.c (dump_decl): Handle NON_DEPENDENT_EXPR.
3196169689Skan	(dump_expr): Likewise.
3197169689Skan	* init.c (build_member_call): Remove.
3198169689Skan	* mangle.c (write_expression): Update handling for template-ids.
3199169689Skan	* parser.c (cp_parser_primary_expression): Use
3200169689Skan	any_dependent_template_arguments_p.  Update constant-expression
3201169689Skan	handling.
3202169689Skan	(cp_parser_postfix_expression): Use
3203169689Skan	any_type_dependent_arguments_p.  Simplify call processing.
3204169689Skan	(cp_parser_unary_expression): Simplify.
3205169689Skan	(cp_parser_expression): Adjust for changes to
3206169689Skan	build_x_compound_expr.
3207169689Skan	(cp_parser_template_argument): Implement standard-conforming
3208169689Skan	parsing of non-type template arguments.
3209169689Skan	(cp_parser_direct_declarator): Use
3210169689Skan	cp_parser_fold_non_dependent_expr.
3211169689Skan	(cp_parser_fold_non_dependent_expr): New function.
3212169689Skan	(cp_parser_next_token_ends_template_argument_p): Likewise.
3213169689Skan	* pt.c (convert_template_argument): Do not call
3214169689Skan	maybe_fold_nontype_arg.
3215169689Skan	(tsubst_baselink): Likewise.
3216169689Skan	(tsubst_copy_and_build): Share common code.  Make sizeof/alignof
3217169689Skan	processing work correctly for non-dependent expressions.  Adjust
3218169689Skan	handling of COMPOUND_EXPR.  Simplify call processing.
3219169689Skan	(value_dependent_expression_p): Deal with functional casts and
3220169689Skan	sizeof/alignof correctly.
3221169689Skan	(type_dependent_expression_p): Handle overloaded functions.
3222169689Skan	(any_type_dependent_arguments_p): New function.
3223169689Skan	(any_dependent_template_arguments_p): Likewise.
3224169689Skan	(dependent_template_p): Treat SCOPE_REFs as dependent.
3225169689Skan	(dependent_template_id_p): Simplify.
3226169689Skan	(build_non_dependent_expr): New function.
3227169689Skan	(build_non_dependent_args): Likewise.
3228169689Skan	* semantics.c (finish_stmt_expr): Don't make dependent
3229169689Skan	statement-expresions have void type.
3230169689Skan	(finish_call_expr): Handle non-dependent expressions
3231169689Skan	correctly.
3232169689Skan	* tree.c (lvalue_p_1): Treat NON_DEPENDENT_EXPRs as lvalues.
3233169689Skan	* typeck.c (cxx_sizeof_or_alignof_type): Give the expression
3234169689Skan	type size_t, even in templates.
3235169689Skan	(expr_sizeof): Likewise.
3236169689Skan	(finish_class_member_access_expr): Handle non-dependent expressions
3237169689Skan	correctly.
3238169689Skan	(build_x_indirect_ref): Likewise.
3239169689Skan	(build_x_binary_op): Likewise.
3240169689Skan	(build_x_unary_op): Likewise.
3241169689Skan	(build_x_conditional_expr): Likewise.
3242169689Skan	(build_x_compound_expr): Likewise.
3243169689Skan	* typeck2.c (build_x_arrow): Likewise.
3244169689Skan
3245169689Skan2003-07-09  Jan Hubicka  <jh@suse.cz>
3246169689Skan
3247169689Skan	* cp-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.
3248169689Skan	* decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS.
3249169689Skan	(start_function): Use DECL_ESTIMATED_INSNS.
3250169689Skan	* optimize.c (maybe_clone_body): Use DECL_ESTIMATED_INSNS.
3251169689Skan
3252169689Skan	* decl2.c (maybe_emit_vtables): Fix marking vtables as needed in
3253169689Skan	unit-at-a-time
3254169689Skan
3255169689Skan2003-07-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3256169689Skan
3257169689Skan	PR c++/11030
3258169689Skan	* pt.c (instantiate_class_template): Don't call xref_tag to
3259169689Skan	inject name when the friend class is a specialization.
3260169689Skan
3261169689Skan2003-07-07  Mark Mitchell  <mark@codesourcery.com>
3262169689Skan
3263169689Skan	* cp-tree.h (build_scoped_method_call): Remove.
3264169689Skan	(lookup_qualified_name): Remove parameter.
3265169689Skan	(tsubst_copy_and_build): Declare.
3266169689Skan	(finish_qualified_object_call_expr): Remove.
3267169689Skan	(check_accessibility_of_qualified_id): New function.
3268169689Skan	(finish_qualified_id_expr): Likewise.
3269169689Skan	(non_reference): Likewise.
3270169689Skan	(build_expr_from-tree): Remove.
3271169689Skan	* call.c (non_reference): Remove.
3272169689Skan	(build_scoped_method_call): Likewise.
3273169689Skan	(build_method_call): Use error_operand_p.  Assert that we are not
3274169689Skan	processing a template.
3275169689Skan	(standard_conversion): Use non_reference.
3276169689Skan	* class.c (build_vtbl_entry_ref): Likewise.
3277169689Skan	(build_vtbl_ref_1): Likewise.
3278169689Skan	* cvt.c (build_expr_type_conversion): Use non_reference.
3279169689Skan	* decl.c (lookup_qualified_name): Remove flags parameter.
3280169689Skan	(grok_op_properties): Use non_reference.
3281169689Skan	* decl2.c (grok_array_decl): Likewise.
3282169689Skan	(build_expr_from_tree): Remove.
3283169689Skan	(build_offset_ref_call_from_tree): Update comment.
3284169689Skan	* error.c (parm_to_string): Call reinit_global_formatting_buffer.
3285169689Skan	* except.c (prepare_eh_types): Use non_reference.
3286169689Skan	(can_convert_eh): Likewise.
3287169689Skan	* init.c (build_dtor_call): Avoid using build_method_call.
3288169689Skan	* mangle.c (write_template_param): Remove misleading comment.
3289169689Skan	* method.c (locate_copy): Use non_reference.
3290169689Skan	* parser.c (cp_parser_scope_through_which_access_occurs): Remove.
3291169689Skan	(cp_parser_primary_expression): Do not create SCOPE_REFs is
3292169689Skan	non-dependent contexts.
3293169689Skan	(cp_parser_postfix_expression): Use finish_qualified_id_expr.
3294169689Skan	(cp_parser_direct_declarator): Use tsubst_copy_and_build, not
3295169689Skan	build_expr_from_tree.
3296169689Skan	(cp_parser_lookup_name): Adjust call to lookup_qualified_name.
3297169689Skan	Use check_accessibility_of_qualified_id.
3298169689Skan	* pt.c (maybe_fold_nontype_arg): Use tsubst_copy_and_build, not
3299169689Skan	build_expr_from_tree.
3300169689Skan	(tsubst_baselink): New function.
3301169689Skan	(tsubst_qualified_id): Likewise.
3302169689Skan	(tsubst_copy): Use them.  Remove support for METHOD_CALL_EXPR.
3303169689Skan	(tsubst_expr): Adjust call to lookup_qualified_name.
3304169689Skan	(tsubst_copy_and_build): Handle SCOPE_REFs specially.  Adjust
3305169689Skan	handling of CALL_EXPRs.
3306169689Skan	(value_dependent_expression_p): Use INTEGRAL_OR_ENUMERATION_TYPE_P.
3307169689Skan	* rtti.c (get_tinfo_decl_dynamic): Use non_reference.
3308169689Skan	* search.c (check_final_overrider): Likewise.
3309169689Skan	* semantics.c (check_accessibility_of_qualified_id): New function.
3310169689Skan	(finish_qualified_object_call_expr): Remove.
3311169689Skan	* typeck.c (target_type): Use non_reference.
3312169689Skan	(cxx_sizeof_or_alignof_type): Likewise.
3313169689Skan	(dubious_conversion_warnings): Likewise.
3314169689Skan	(convert_for_initialization): Likewise.
3315169689Skan	(non_reference): New function.
3316169689Skan
3317169689Skan2003-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3318169689Skan
3319169689Skan	* decl.c (print_binding_level, print_other_binding_stack,
3320169689Skan	print_binding_stack): Merge uses of HOST_PTR_PRINTF with adjacent
3321169689Skan	stdio calls.
3322169689Skan	* ptree.c (cxx_print_decl, cxx_print_binding): Likewise.
3323169689Skan
3324169689Skan2003-07-07  Andreas Jaeger  <aj@suse.de>
3325169689Skan
3326169689Skan	* friend.c: Convert to ISO C90 prototypes.
3327169689Skan
3328169689Skan	* Make-lang.in ($(srcdir)/cp/cfns.h): Use ANSI-C as output
3329169689Skan	language.
3330169689Skan	* cfns.h: Regenerate.
3331169689Skan
3332169689Skan	* typeck.c: Convert remaining prototypes to ISO C90.
3333169689Skan	* search.c: Likewise.
3334169689Skan
3335169689Skan	* decl2.c (build_expr_from_tree): Convert prototype to ISO C90.
3336169689Skan	* semantics.c (expand_or_defer_fn): Likewise
3337169689Skan	* mangle.c (discriminator_for_string_literal): Likewise.
3338169689Skan	* g++spec.c (lang_specific_driver): Likewise.
3339169689Skan
3340169689Skan	* search.c (lookup_base_r): Remove unused variable.
3341169689Skan
3342169689Skan2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
3343169689Skan
3344169689Skan	* semantics.c: (genrtl_try_block) Adjust emit_line_note
3345169689Skan	calls.
3346169689Skan
3347169689Skan2003-07-07  Andreas Jaeger  <aj@suse.de>
3348169689Skan
3349169689Skan	* search.c (lookup_base_r): Remove unused variable.
3350169689Skan
3351169689Skan2003-07-06  Michael Chastain  <mec@shout.net>
3352169689Skan
3353169689Skan	PR debug/10055
3354169689Skan	* lex.c (cxx_init): Call push_srcloc and pop_srcloc rather than
3355169689Skan	assigning to input_filename directly.
3356169689Skan
3357169689Skan2003-07-06  Kazu Hirata  <kazu@cs.umass.edu>
3358169689Skan
3359169689Skan	* call.c: Fix comment formatting.
3360169689Skan	* class.c: Likewise.
3361169689Skan	* cp-tree.h: Likewise.
3362169689Skan	* decl.c: Likewise.
3363169689Skan	* decl2.c: Likewise.
3364169689Skan	* error.c: Likewise.
3365169689Skan	* method.c: Likewise.
3366169689Skan	* name-lookup.c: Likewise.
3367169689Skan	* parser.c: Likewise.
3368169689Skan	* pt.c: Likewise.
3369169689Skan	* rtti.c: Likewise.
3370169689Skan	* search.c: Likewise.
3371169689Skan	* typeck.c: Likewise.
3372169689Skan
3373169689Skan2003-07-06  Mark Mitchell  <mark@codesourcery.com>
3374169689Skan
3375169689Skan	PR c++/11345
3376169689Skan	* search.c (lookup_base_r): Remove is_non_public and
3377169689Skan	within_current_scope parameters.  Remove other dead code.
3378169689Skan	(lookup_base): Adjust call to lookup_base_r.
3379169689Skan	(adjust_result_of_qualified_name_lookup): Improve comment.
3380169689Skan	* semantics.c (finish_call_expr): Use maybe_dummy_object.
3381169689Skan
3382169689Skan2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
3383169689Skan
3384169689Skan	* cp-lang.c (LANG_HOOKS_HANDLE_FILENAME,
3385169689Skan	LANG_HOOKS_MISSING_ARGUMENT): Override.
3386169689Skan
3387169689Skan2003-07-05  Mark Mitchell  <mark@codesourcery.com>
3388169689Skan
3389169689Skan	PR c++/11431
3390169689Skan	* typeck.c (build_static_cast): Check for reference conversions
3391169689Skan	earlier.
3392169689Skan
3393169689Skan2003-07-04  Mark Mitchell  <mark@codesourcery.com>
3394169689Skan
3395169689Skan	* cp-tree.h (perform_integral_promotions): Declare.
3396169689Skan	* call.c (build_addr_func): Use decay_conversion.
3397169689Skan	(convert_arg_to_ellipsis): Likewise.  Remove misleading comment.
3398169689Skan	(convert_for_arg_passing): Use perform_integral_promotions.
3399169689Skan	* cvt.c (build_expr_type_conversion): Use decay_conversion.
3400169689Skan	(type_promotes_to): Do not return a cv-qualified type.
3401169689Skan	* decl.c (grok_reference_init): Fix formatting.
3402169689Skan	(get_atexit_node): Use decay_conversion.
3403169689Skan	(build_enumerator): Use perform_integral_promotions.
3404169689Skan	* init.c (build_vec_init): Use decay_conversion.
3405169689Skan	* semantics.c (finish_expr_stmt): Likewise.
3406169689Skan	(finish_switch_cond): Use perform_integral_promotions.
3407169689Skan	* typeck.c (default_conversion): Likewise.
3408169689Skan	(perform_integral_promotions): New function.
3409169689Skan	(build_indirect_ref): Use decay_conversion.
3410169689Skan	(build_array_ref): Use perform_integral_promotions.
3411169689Skan	(convert_arguments): Use decay_conversion.
3412169689Skan	(build_unary_op): Use perform_integral_promotions.
3413169689Skan	(build_c_cast): Use decay_conversion.
3414169689Skan	(build_modify_expr): Likewise.
3415169689Skan	(convert_for_initialization): Likewise.
3416169689Skan	* typeck2.c (build_x_arrow): Likewise.
3417169689Skan
3418169689Skan2003-07-04  Kazu Hirata  <kazu@cs.umass.edu>
3419169689Skan
3420169689Skan	* call.c: Fix comment typos.
3421169689Skan	* class.c: Likewise.
3422169689Skan	* cp-tree.h: Likewise.
3423169689Skan	* cvt.c: Likewise.
3424169689Skan	* decl2.c: Likewise.
3425169689Skan	* decl.c: Likewise.
3426169689Skan	* init.c: Likewise.
3427169689Skan	* mangle.c: Likewise.
3428169689Skan	* parser.c: Likewise.
3429169689Skan	* pt.c: Likewise.
3430169689Skan	* search.c: Likewise.
3431169689Skan	* semantics.c: Likewise.
3432169689Skan	* tree.c: Likewise.
3433169689Skan	* typeck.c: Likewise.
3434169689Skan
3435169689Skan2003-07-04  Zack Weinberg  <zack@codesourcery.com>
3436169689Skan
3437169689Skan	* parser.c (cp_lexer_read_token): No need to handle string
3438169689Skan	constant concatenation.
3439169689Skan
3440169689Skan2003-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3441169689Skan
3442169689Skan	* cp-tree.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_CXXDIAG): Define.
3443169689Skan	(cp_error_at, cp_warning_at, cp_pedwarn_at): Mark with
3444169689Skan	ATTRIBUTE_GCC_CXXDIAG.
3445169689Skan
3446169689Skan2003-07-03  Mark Mitchell  <mark@codesourcery.com>
3447169689Skan
3448169689Skan	* call.c (build_addr_func): Handle bound pointers-to-members.
3449169689Skan	(build_method_call): Do not call resolve_offset_ref.
3450169689Skan	(implicit_conversion): Likewise.
3451169689Skan	(resolve_scoped_fn_name): Use finish_non_static_data_member, not
3452169689Skan	resolve_offset_ref.
3453169689Skan	(resolve_args): Do not call resolve_offset_ref.
3454169689Skan	(build_conditional_expr): Likewise.
3455169689Skan	(build_new_method_call): Likewise.
3456169689Skan	* cp-tree.def (OFFSET_REF): Update documentation.
3457169689Skan	* cvt.c (cp_convert_to_pointer): Update handling of conversions from
3458169689Skan	pointers to members to pointers.
3459169689Skan	(ocp_convert): Do not call resolve_offset_ref.
3460169689Skan	(convert_to_void): Likewise.
3461169689Skan	(build_expr_type_conversion): Likewise.
3462169689Skan	* decl2.c (delete_sanity): Likewise.
3463169689Skan	* init.c (resolve_offset_ref): Simplify greatly.
3464169689Skan	(build_vec_delete): Do not call resolve_offset_ref.
3465169689Skan	* parser.c (cp_parser_postfix_expression): Call resolve_offset_ref
3466169689Skan	if appropriate.
3467169689Skan	(cp_parser_unary_expression): Use
3468169689Skan	cp_parser_simple_cast_expression.
3469169689Skan	(cp_parser_delete_expression): Likewise.
3470169689Skan	(cp_parser_cast_expression): Likewise.
3471169689Skan	(cp_parser_pm_expression): Use cp_parser_binary_op.
3472169689Skan	(cp_parser_simple_cast_expression): New function.
3473169689Skan	* rtti.c (build_dynamic_cast_1): Do not call resolve_offset_ref.
3474169689Skan	* semantics.c (finish_increment_expr): Likewise.
3475169689Skan	(finish_typeof): Likewise.
3476169689Skan	* tree.c (lvalue_p_1): Do not handle OFFSET_REF.
3477169689Skan	* typeck.c (require_complete_type): Do not handle OFFSET_REFs.
3478169689Skan	(decay_conversion): Do not call resolve_offset_ref.
3479169689Skan	(finish_class_member_access_expr): Likewise.
3480169689Skan	(convert_arguments): Likewise.
3481169689Skan	(build_x_binary_op): Handle DOTSTAR_EXPR.
3482169689Skan	(condition_conversion): Do not call resolve_offset_ref.
3483169689Skan	(unary_complex_lvalue): Likewise.
3484169689Skan	(build_static_cast): Likewise.
3485169689Skan	(build_reinterpret_cast): Likewise.
3486169689Skan	(build_const_cast): Likewise.
3487169689Skan	(build_c_cast): Likewise.
3488169689Skan	(build_modify_expr): Likewise.
3489169689Skan	(convert_for_assignment): Likewise.
3490169689Skan	(convert_for_initialization): Likewise.
3491169689Skan	* typeck2.c (build_x_arrow): Likewise.
3492169689Skan	(build_m_component_ref): Simplify.
3493169689Skan
3494169689Skan	* call.c (build_scoped_method_call): Use convert_to_void.
3495169689Skan	(build_method_call): Likewise.
3496169689Skan	* class.c (check_field_decls): Remove dead code.
3497169689Skan	* cvt.c (convert_from_reference): Remove OFFSET_TYPE handling.
3498169689Skan	* decl2.c (grok_array_decl): Remove dead code.
3499169689Skan	(arg_assoc_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE
3500169689Skan	as pointer-to-member representation.
3501169689Skan	* init.c (build_offset_ref): Tidy.
3502169689Skan	(build_vec_delete_1): Use convert_to_void.
3503169689Skan	* mangle.c (write_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE
3504169689Skan	as pointer-to-member representation.
3505169689Skan
3506169689Skan2003-07-03  Nathan Sidwell  <nathan@codesourcery.com>
3507169689Skan
3508169689Skan	PR c++/9162
3509169689Skan	* decl.c (grokdeclarator): Return friend decls, not
3510169689Skan	void_type_node.
3511169689Skan	* decl2.c (grokfield): Alter friend decl check.
3512169689Skan	* parser.c (struct cp_parser): Document default_arg chain on
3513169689Skan	unparsed_functions_queue.
3514169689Skan	(cp_parser_save_default_args): New.
3515169689Skan	(cp_parser_init_declarator, cp_parser_function_definition,
3516169689Skan	cp_parser_member_declaration): Call it.
3517169689Skan	(cp_parser_class_specifier): Remove unused variable. Alter
3518169689Skan	processing of unparsed_functions_queue.
3519169689Skan
3520169689Skan2003-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3521169689Skan
3522169689Skan	* class.c (add_method, check_field_decl): Fix format specifier.
3523169689Skan	* decl.c (duplicate_decls, pushdecl, check_goto,
3524169689Skan	fixup_anonymous_aggr, maybe_commonize_var, grokdeclarator,
3525169689Skan	start_enum): Likewise.
3526169689Skan	* decl2.c (ambiguous_decl): Likewise.
3527169689Skan	* pt.c (redeclare_class_template): Likewise.
3528169689Skan
3529169689Skan2003-07-02  Nathan Sidwell  <nathan@codesourcery.com>
3530169689Skan
3531169689Skan	PR c++/10219
3532169689Skan	* pt.c (type_unification_real): Don't unify exprs of error type.
3533169689Skan	* tree.c (error_type): Don't die on error_type.
3534169689Skan
3535169689Skan	PR c++/9779
3536169689Skan	* decl2.c (arg_assoc_class): Don't die on NULL type.
3537169689Skan	* typeck.c (type_unknown_p): Don't die on untyped expressions.
3538169689Skan
3539169689Skan2003-07-01  Mark Mitchell  <mark@codesourcery.com>
3540169689Skan
3541169689Skan	PR c++/6949
3542169689Skan	* decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local
3543169689Skan	classes.
3544169689Skan
3545169689Skan2003-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3546169689Skan
3547169689Skan	* error.c (locate_error): %P takes an `int', not a `tree'.
3548169689Skan
3549169689Skan2003-07-02  Jan Hubicka  <jh@suse.cz>
3550169689Skan
3551169689Skan	* decl2.c (defer_fn): Set DECL_DEFER_OUTPUT.
3552169689Skan	(finish-file): Do not process function with DECL_DEFER_OUTPUT clear;
3553169689Skan	clear DECL_DEFER_OUTPUT once function is processed; avoid flags
3554169689Skan	massaging.
3555169689Skan
3556169689Skan	* cp-tree.h (DECL_NEEDED_P): Support unit-at-a-time
3557169689Skan	(expand_or_defer_fn): Declare.
3558169689Skan	(lower_function): Declare.
3559169689Skan	* decl.c (start_cleanup_fn): Use expand_or_defer_fn.
3560169689Skan	* decl2.c: Include cgraph.h and varpool.h
3561169689Skan	(maybe_emit_vtables):  Make explicit instantations as needed.
3562169689Skan	(mark_member_pointers, lower_function): New functions.
3563169689Skan	(finish_file): Do unit-at-a-time.
3564169689Skan	* method.c (synthesize_method): Use expand_or_defer_fn.
3565169689Skan	* optimize.c (maybe_clone_body): Use expand_or_defer_fn.
3566169689Skan	* parser.c (cp_parser_function_definition_after_decl): Use
3567169689Skan	expand_or_defer_fn.
3568169689Skan	* pt.c (instantiate_decl): Likewise.
3569169689Skan	* semantics.c: Include cgraph.h
3570169689Skan	(expand_or_defer_fn): Break out from ...
3571169689Skan	(expand_body): ... here; deal with unit-at-a-time.
3572169689Skan	* cp-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
3573169689Skan	LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Define.
3574169689Skan
3575169689Skan2003-07-01  Mark Mitchell  <mark@codesourcery.com>
3576169689Skan
3577169689Skan	* call.c (resolve_scoped_fn_name): Return error_mark_node for
3578169689Skan	erroneous cases.
3579169689Skan
3580169689Skan2003-07-01  Mark Mitchell  <mark@codesourcery.com>
3581169689Skan
3582169689Skan	PR c++/11149
3583169689Skan	* call.c (resolve_scoped_fn_name): Check that the qualifying scope
3584169689Skan	is a class type.
3585169689Skan
3586169689Skan2003-07-01  Giovanni Bajo  <giovannibajo@libero.it>
3587169689Skan
3588169689Skan	PR c++/8046
3589169689Skan	* error.c (dump_decl): Handle BIT_NOT_EXPR as
3590169689Skan	pseudo destructor calls.
3591169689Skan
3592169689Skan2003-07-01  Nathan Sidwell  <nathan@codesourcery.com>
3593169689Skan
3594169689Skan	* cp-tree.h (define_label): Replace filename and lineno
3595169689Skan	arguments with a location_t.
3596169689Skan	* decl.c (pop_label): Adjust define_label call.
3597169689Skan	(define_label): Replace filename and lineno arguments with a
3598169689Skan	location_t.
3599169689Skan	* semantics.c (finish_label): Adjust define_label call.
3600169689Skan
3601169689Skan2003-07-01  Mark Mitchell  <mark@codesourcery.com>
3602169689Skan
3603169689Skan	PR c++/9559
3604169689Skan	* decl2.c (grokfield): Do not build NOP_EXPRs around the
3605169689Skan	error_mark_node.
3606169689Skan
3607169689Skan2003-06-30  Neil Booth  <neil@daikokuya.co.uk>
3608169689Skan
3609169689Skan	* Make-lang.in: Update.
3610169689Skan	* cp-lang.c (c_language): Define.
3611169689Skan	(LANG_HOOKS_INIT_OPTIONS): Use common hook.
3612169689Skan	* cp-tree.h (cxx_init_options): Remove.
3613169689Skan	* lex.c: Don't include diagnostic.h.
3614169689Skan	(cxx_init_options): Remove.
3615169689Skan
3616169689Skan2003-06-30  Giovanni Bajo  <giovannibajo@libero.it>
3617169689Skan
3618169689Skan	PR c++/4933
3619169689Skan	* error.c (dump_expr): Support correctly the COMPOUND_EXPR
3620169689Skan	tree generated within a template. Use dump_expr to dump an
3621169689Skan	expression sizeof.
3622169689Skan
3623169689Skan2003-06-30  Giovanni Bajo  <giovannibajo@libero.it>
3624169689Skan
3625169689Skan	* mangle.c (write_expression): Exit gracefully when trying to
3626169689Skan	mangle a CALL_EXPR.
3627169689Skan
3628169689Skan2003-06-30  Giovanni Bajo  <giovannibajo@libero.it>
3629169689Skan
3630169689Skan	PR c++/10750
3631169689Skan	* parser.c (cp_parser_primary_expression): A VAR_DECL with a
3632169689Skan	(value- or type-) dependent expression as DECL_INITIAL is a
3633169689Skan	valid constant-expression (at parser time).
3634169689Skan
3635169689Skan2003-06-30  Giovanni Bajo  <giovannibajo@libero.it>
3636169689Skan
3637169689Skan	PR c++/11106
3638169689Skan	* error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a
3639169689Skan	USING_DECL, instead of print_tree_identifier.
3640169689Skan
3641169689Skan2003-06-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3642169689Skan
3643169689Skan	* cp-tree.h (language_to_string): Adjust declaration.
3644169689Skan	* dump.c (cp_dump_tree): Adjust usage.
3645169689Skan	* error.c (dump_char): Use output_formatted_scalar. Tidy.
3646169689Skan	(parm_to_string): Lose unused parameter.  Tidy.
3647169689Skan	(expr_to_string): Likewise.
3648169689Skan	(code_to_string): Likewise.
3649169689Skan	(language_to_string): Likewise.
3650169689Skan	(op_to_string): Likewise.
3651169689Skan	(assop_to_string): Likewise.
3652169689Skan	(digit_buffer): Remove.
3653169689Skan	(dump_type): Format builtin vector type as __vector__.
3654169689Skan
3655169689Skan2003-06-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3656169689Skan
3657169689Skan	* error.c (print_integer): Remove.
3658169689Skan	(dump_type_suffix): Adjust.
3659169689Skan	(dump_expr): Likewise.
3660169689Skan
3661169689Skan2003-06-28  Nathan Sidwell  <nathan@codesourcery.com>
3662169689Skan
3663169689Skan	* error.c (print_instantiation_partial_context): Take a
3664169689Skan	location_t.
3665169689Skan	(print_instantiation_full_context): Adjust.
3666169689Skan	(print_instantiation_context): Adjust.
3667169689Skan
3668169689Skan	* cp-tree.h (cp_line_of, cp_file_of): Remove.
3669169689Skan	* error.c (cp_line_of, cp_file_of): Merge into ...
3670169689Skan	(location_of): ... here. Make static, return a location_t.
3671169689Skan	(cp_error_at, cp_warning_at, cp_pedwarn_at): Adjust.
3672169689Skan
3673169689Skan2003-06-28  Nathan Sidwell  <nathan@codesourcery.com>
3674169689Skan
3675169689Skan	PR c++/10784
3676169689Skan	* call.c (joust): Move warn_conversion check outwards.
3677169689Skan
3678169689Skan2003-06-27  Zack Weinberg  <zack@codesourcery.com>
3679169689Skan
3680169689Skan	* decl.c (build_typename_type)
3681169689Skan	* mangle.c (write_template_template_arg)
3682169689Skan	* parser.c (cp_parser_scope_through_which_access_occurs)
3683169689Skan	* pt.c (push_access_scope_real, push_access_scope, pop_access_scope)
3684169689Skan	* repo.c (get_base_filename)
3685169689Skan	* semantics.c (maybe_convert_cond):
3686169689Skan	Mark the definition static, matching the forward declaration.
3687169689Skan
3688169689Skan2003-06-27  Mark Mitchell  <mark@codesourcery.com>
3689169689Skan
3690169689Skan	PR c++/10468
3691169689Skan	* pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly.
3692169689Skan
3693169689Skan2003-06-27  Mark Mitchell  <mark@codesourcery.com>
3694169689Skan
3695169689Skan	PR c++/10796
3696169689Skan	* decl.c (finish_enum): Implement DR377.
3697169689Skan
3698169689Skan	* decl.c (cp_finish_decl): Don't make variables with reference
3699169689Skan	type readonly while they are being initialized.
3700169689Skan
3701169689Skan2003-06-26  Mark Mitchell  <mark@codesourcery.com>
3702169689Skan
3703169689Skan	PR c++/11332
3704169689Skan	* typeck.c (build_static_cast): Avoid returning expressions with
3705169689Skan	reference type.
3706169689Skan
3707169689Skan2003-06-26  Nathan Sidwell  <nathan@codesourcery.com>
3708169689Skan
3709169689Skan	* call.c (build_op_delete_call): Use strip_array_call. Correct
3710169689Skan	error message to say 'delete' or 'delete[]'.
3711169689Skan
3712169689Skan2003-06-26  Giovanni Bajo  <giovannibajo@libero.it>
3713169689Skan
3714169689Skan	PR c++/8266
3715169689Skan	* pt.c (check_explicit_specialization): When looking up a
3716169689Skan	template function from an identifier outside class-scope, bind
3717169689Skan	it to CP_DECL_CONTEXT.
3718169689Skan
3719169689Skan2003-06-25  Mark Mitchell  <mark@codesourcery.com>
3720169689Skan
3721169689Skan	PR c++/10990
3722169689Skan	* search.c (lookup_base_r): Rely on accessible_p, rather than
3723169689Skan	trying to emulate that logic here.
3724169689Skan
3725169689Skan	PR c++/10931
3726169689Skan	* call.c (convert_like): Pass issue_conversion_warnings.
3727169689Skan	(convert_like_with_context): Likewise.
3728169689Skan	(convert_like_real): Add issue_conversion_warnings parameter.
3729169689Skan	(perform_direct_initialization_if_possible): New function.
3730169689Skan	* cp-tree.h (perform_direct_initialization_if_possible): Declare it.
3731169689Skan	* typeck.c (check_for_casting_away_constness): New function.
3732169689Skan	(build_static_cast): Rewrite.
3733169689Skan
3734169689Skan2003-06-24  Nathan Sidwell  <nathan@codesourcery.com>
3735169689Skan
3736169689Skan	* call.c (enforce_access): Assert we get a binfo.
3737169689Skan	(build_op_delete_call): Pass a binfo to
3738169689Skan	perform_or_defer_access_check.
3739169689Skan	* class.c (alter_access): Likewise.
3740169689Skan	* decl.c (make_typename_type): Likewise.
3741169689Skan	(make_unbound_class_template): Likewise.
3742169689Skan	* lex.c (do_identifier): Likewise.
3743169689Skan	* method.c (hack_identifier): Likewise.
3744169689Skan	* parser.c (cp_parser_lookup_name): Likewise.
3745169689Skan	* search.c (lookup_member): Likewise. Move IDENTIFIER_CLASS_VALUE
3746169689Skan	test.
3747169689Skan	* semantics.c (finish_non_static_data_member): Likewise.
3748169689Skan	(perform_or_defer_access_check): Expect a binfo.
3749169689Skan	* typeck.c (comptypes): Expect types.
3750169689Skan
3751169689Skan	* mangle.c (find_substitution): Don't pass a non-type to same_type_p
3752169689Skan	* friend.c (make_friend_class): Likewise.
3753169689Skan	* pt.c (check_default_tmpl_args): Likewise.
3754169689Skan	(lookup_template_class): Likewise.
3755169689Skan
3756169689Skan2003-06-24  Jan Hubicka  <jh@suse.cz>
3757169689Skan
3758169689Skan	* method.c (thunk_labelno): Move outside ifdef block to make garbage
3759169689Skan	collector happy.
3760169689Skan
3761169689Skan2003-06-24  Jan Hubicka  <jh@suse.cz>
3762169689Skan
3763169689Skan	* class.c (build_vtable): Make vtables.
3764169689Skan	* cp-tree.h (DECL_VTABLE_OR_VTT_P): New macro.
3765169689Skan	* decl2.c (output_vtable_inherit): Rename to ...
3766169689Skan	(prepare_assemble_variable): ... this one; change interface.
3767169689Skan	(maybe_emit_vtables): Do not call output_vtable_inherit.
3768169689Skan	* cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Define.
3769169689Skan	* cp-tree.h (prepare_assemble_variable): New.
3770169689Skan
3771169689Skan2003-06-23  Andrew Pinski <pinskia@physics.uc.edu>
3772169689Skan
3773169689Skan	* method.c: add prototype for make_alias_for_thunk.
3774169689Skan	(thunk_labelno, make_alias_for_thunk): only define
3775169689Skan	if ASM_OUTPUT_DEF is defined.
3776169689Skan
3777169689Skan2003-06-23  Jakub Jelinek  <jakub@redhat.com>
3778169689Skan
3779169689Skan	* method.c (thunk_labelno): New variable.
3780169689Skan	(make_alias_for_thunk): New function.
3781169689Skan	(use_thunk): Use it if defined ASM_OUTPUT_DEF.  Put the thunk
3782169689Skan	into the same section as the function it is calling.
3783169689Skan	Include gt-cp-method.h.
3784169689Skan	* Make-lang.in (gt-cp-method.h): Depend on s-gtype.
3785169689Skan	(cp/method.o): Depend on gt-cp-method.h.
3786169689Skan	* config-lang.in (gtfiles): Add $(srcdir)/cp/method.c.
3787169689Skan
3788169689Skan2003-06-23  Jan Hubicka  <jh@suse.cz>
3789169689Skan
3790169689Skan	* decl.c (register_dtor_fn): Mark cleanup as used.
3791169689Skan	* decl2.c (mark_vtable_entries): Skip nops.
3792169689Skan	* rtti.c (get_tinfo_ptr): Mark tinfo as used.
3793169689Skan	(build_dynamic_cast_1): Likewise.
3794169689Skan	(tinfo_base_init): Likewise.
3795169689Skan	(emit_tinfo_decl): Likewise.
3796169689Skan
3797169689Skan2003-06-23  Jakub Jelinek  <jakub@redhat.com>
3798169689Skan
3799169689Skan	* mangle.c (hash_type): Val is the TREE_LIST itself, not a pointer
3800169689Skan	to it.
3801169689Skan
3802169689Skan2003-06-21  Gabriel Dos Reis <gdr@integrable-solutions.net>
3803169689Skan
3804169689Skan	PR c++/10784
3805169689Skan	* call.c (joust): Warn about choosing conversion sequence only if
3806169689Skan	-Wconversion.
3807169689Skan
3808169689Skan2003-06-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3809169689Skan
3810169689Skan	PR c++/10864
3811169689Skan	* call.c (op_error): Tidy.
3812169689Skan	* error.c (dump_expr): Properly format 'T()' when T is an
3813169689Skan	aggregate type.
3814169689Skan
3815169689Skan2003-06-21  Gabriel Dos Reis <gdr@integrable-solutions.net>
3816169689Skan
3817169689Skan	PR c++/10915
3818169689Skan	* decl.c (grok_op_properties): Warn possible confusing conversion
3819169689Skan	only if -Wconversion.
3820169689Skan
3821169689Skan2003-06-20  Mark Mitchell  <mark@codesourcery.com>
3822169689Skan
3823169689Skan	PR c++/10749
3824169689Skan	* parser.c (cp_parser_class_head): See through dependent names
3825169689Skan	when parsing a class-head.
3826169689Skan
3827169689Skan	PR c++/10845
3828169689Skan	* pt.c (try_class_unification): Correct handling of member class
3829169689Skan	templates.
3830169689Skan
3831169689Skan2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
3832169689Skan
3833169689Skan	* semantics.c (genrtl_finish_function): Adjust
3834169689Skan	expand_function_end call.
3835169689Skan
3836169689Skan2003-06-19  Mark Mitchell  <mark@codesourcery.com>
3837169689Skan
3838169689Skan	PR c++/10939
3839169689Skan	* pt.c (tsubst_decl): Do not try to substitute into non-dependent
3840169689Skan	functions.
3841169689Skan	(value_dependent_expression_p): Correct logic for FUNCTION_DECLs.
3842169689Skan
3843169689Skan	PR c++/9649
3844169689Skan	* cp-tree.h (pushdecl_class_level): Change prototype.
3845169689Skan	(push_class_level_binding): Likewise.
3846169689Skan	* decl.c (add_binding): Reject duplicate static data members.
3847169689Skan	(pushdecl_class_level): Return a value indicating whether or not
3848169689Skan	the binding was valid.
3849169689Skan	(push_class_level_binding): Likewise.
3850169689Skan	* semantics.c (finish_member_declaration): Don't keep invalid
3851169689Skan	declarations.
3852169689Skan
3853169689Skan	PR c++/11041
3854169689Skan	* call.c (initialize_reference): Do not use cp_finish_decl to emit
3855169689Skan	temporary variables.
3856169689Skan	* cp-tree.h (static_aggregates): Declare.
3857169689Skan	(pushdecl_top_level_and_finish): Likewise.
3858169689Skan	* decl.c (pushdecl_top_level_1): New function.
3859169689Skan	(pushdecl_top_level): Use it.
3860169689Skan	(pushdecl_top_level_and_finish): New function.
3861169689Skan	(initialize_local_var): Remove redundant code.
3862169689Skan	(cp_finish_decl): Remove support for RESULT_DECLs.  Don't check
3863169689Skan	building_stmt_tree.
3864169689Skan	* decl.h (static_aggregates): Remove.
3865169689Skan	* decl2.c (get_guard): Use pushdecl_top_level_and_finish.
3866169689Skan	* rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish.
3867169689Skan	(tinfo_base_init): Likewise.
3868169689Skan
3869169689Skan2003-06-19  Matt Austern  <austern@apple.com>
3870169689Skan
3871169689Skan	PR c++/11228
3872169689Skan	* init.c (build_zero_init): Assert that number of array elements
3873169689Skan	is an integer constant.
3874169689Skan	(build_default_init) Don't use build_zero_init for arrays with
3875169689Skan	variable number of elements.
3876169689Skan
3877169689Skan2003-06-19  Andreas Jaeger  <aj@suse.de>
3878169689Skan
3879169689Skan	* cp-tree.h: Remove duplicated declarations.
3880169689Skan
3881169689Skan2003-06-18  Nathanael Nerode  <neroden@gcc.gnu.org>
3882169689Skan
3883169689Skan	* pt.c: Convert to ISO C.
3884169689Skan	* semantics.c: Convert to ISO C.
3885169689Skan
3886169689Skan2003-06-18  Nathan Sidwell  <nathan@codesourcery.com>
3887169689Skan
3888169689Skan	* cp-tree.h (comp_except_specs, compparms, cp_has_mutable_p,
3889169689Skan	at_least_as_qualified_p, more_qualified_p): Return bool.
3890169689Skan	* typeck.c: ANSIFY function definitions.
3891169689Skan	(comp_array_types): Take redeclaration bool parameter.
3892169689Skan	(comptypes): Rearrange STRICT handling.
3893169689Skan	(at_least_as_qualified_p, more_qualified_p,
3894169689Skan	comp_cv_qualification): Cache cv quals.
3895169689Skan	(compparms): Rearrange loop.
3896169689Skan
3897169689Skan2003-06-18  Nathan Sidwell  <nathan@codesourcery.com>
3898169689Skan
3899169689Skan	* cp-tree.h (COMPARE_RELAXED): Rename to ...
3900169689Skan	(COMPARE_DERIVED): ... here. Adjust comment.
3901169689Skan	(resolve_typename_type_in_current_instantiation): Remove.
3902169689Skan	(cp_tree_equal, comptypes): Return a bool.
3903169689Skan	* cvt.c (convert_to_reference): Adjust comptypes call.
3904169689Skan	* pt.c (template_args_equal, unify,): Adjust cp_tree_equal call.
3905169689Skan	(resolve_typename_type_in_current_instantiation): Remove.
3906169689Skan	* tree.c (cp_tree_equal): Return bool. Cope with TEMPLATE_DECLs and
3907169689Skan	IDENTIFIER_NODEs. Abort if undeciderable. Adjust recursive
3908169689Skan	calls. Refactor code.
3909169689Skan	* typeck.c (comp_array_types): Return bool. Lose callback.
3910169689Skan	parameter. Adjust cp_tree_equal calls.
3911169689Skan	(comptypes): Return bool. Adjust strict handling. Remove relaxed
3912169689Skan	enumeration and java type handling. Deal with typename types here.
3913169689Skan	Adjust recursive and cp_tree_equals calls. Adjust base and derived
3914169689Skan	checking.
3915169689Skan	(comp_target_types): Remove unreachable code. Adjust
3916169689Skan	same_or_base_type_p calls.
3917169689Skan	(ptr_reasonably_similar): Adjust base and derived check.
3918169689Skan
3919169689Skan	* typeck.c (maybe_warn_about_returning_address_of_local): Remove
3920169689Skan	unused calculation.
3921169689Skan	(check_return_expr): Adjust error messages.
3922169689Skan	* cp-tree.def (SCOPE_REF): Correct comment.
3923169689Skan
3924169689Skan2003-06-17  Mark Mitchell  <mark@codesourcery.com>
3925169689Skan
3926169689Skan	* mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
3927169689Skan	string again.
3928169689Skan
3929169689Skan2003-06-17  Robert Abeles  <rabeles@archaelogic.com>
3930169689Skan
3931169689Skan	* optimize.c (dump_function): Form complete flag name by
3932169689Skan	prefixing 'fdump-' to string returned by dump_flag_name().
3933169689Skan
3934169689Skan2003-06-17  Mark Mitchell  <mark@codesourcery.com>
3935169689Skan
3936169689Skan	* mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
3937169689Skan	string.
3938169689Skan
3939169689Skan2003-06-17  Jason Merrill  <jason@redhat.com>
3940169689Skan
3941169689Skan	PR c++/10929
3942169689Skan	* decl.c (grokfndecl): Don't mark a function inline for
3943169689Skan	-finline-functions if it isn't defined.
3944169689Skan
3945169689Skan2003-06-17  Mark Mitchell  <mark@codesourcery.com>
3946169689Skan
3947169689Skan	PR c++/10712
3948169689Skan	* class.c (handle_using_decl): Robustify.
3949169689Skan
3950169689Skan	PR c++/11105
3951169689Skan	* cp-tree.h (DECL_CONV_FN_TYPE): New method.
3952169689Skan	* mangle.c (struct globals): Remove internal_mangling_p.
3953169689Skan	(write_unqualified_name): Use DECL_CONV_FN_TYPE.
3954169689Skan	(write_template_parm): Don't write out the level number.
3955169689Skan	(conv_type_names): New variable.
3956169689Skan	(hash_type): New function.
3957169689Skan	(compare_type): Likewise.
3958169689Skan	(mangle_conv_op_name_for_type): Don't try to mangle conversion
3959169689Skan	operator names.
3960169689Skan	* search.c (lookup_conversion_operator): New function.
3961169689Skan	(lookup_fnfields_1): Use it.
3962169689Skan
3963169689Skan2003-06-17  Andreas Jaeger  <aj@suse.de>
3964169689Skan
3965169689Skan	* except.c: Remove duplicate declaration of push_eh_cleanup.
3966169689Skan
3967169689Skan	* call.c: Remove extra declaration of inhibit_warnings.
3968169689Skan
3969169689Skan2003-06-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3970169689Skan
3971169689Skan	2003-06-16  Jens-Michael Hoffmann  <jensmh@gmx.de>
3972169689Skan	* mangle.c: Convert to ISO C.
3973169689Skan
3974169689Skan2003-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3975169689Skan
3976169689Skan	* cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR
3977169689Skan	macro.
3978169689Skan
3979169689Skan2003-06-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3980169689Skan
3981169689Skan	* tree.c: Convert to ISO C.
3982169689Skan
3983169689Skan2003-06-16  Kazu Hirata  <kazu@cs.umass.edu>
3984169689Skan
3985169689Skan	* cp-tree.h: Follow spelling conventions.
3986169689Skan	* mangle.c: Likewise.
3987169689Skan	* method.c: Likewise.
3988169689Skan	* parser.c: Likewise.
3989169689Skan
3990169689Skan2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
3991169689Skan
3992169689Skan	* decl.c (start_function): Adjust init_function_start call.
3993169689Skan	* method.c (use_thunk): Likewise.
3994169689Skan	* semantics.c (genrtl_start_function): Likewise.
3995169689Skan
3996169689Skan2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
3997169689Skan
3998169689Skan	* Make-lang.in: Remove c-options.o.
3999169689Skan
4000169689Skan2003-06-13  Nathanael Nerode  <neroden@gcc.gnu.org>
4001169689Skan
4002169689Skan	* lex.c: Convert to ISO C.
4003169689Skan
4004169689Skan	2003-05-19  Jens-Michael Hoffmann  <jensmh@gmx.de>
4005169689Skan	* init.c: removes use of PARAMS macro.  Use ISO style function
4006169689Skan	declarations.  (Not copyright-significant change.)
4007169689Skan
4008169689Skan	* rtti.c: Remove PARAMS.
4009169689Skan
4010169689Skan	* typeck2.c: Convert to ISO C.
4011169689Skan
4012169689Skan2003-06-12  Mark Mitchell  <mark@codesourcery.com>
4013169689Skan
4014169689Skan	PR c++/10635
4015169689Skan	* typeck.c (build_c_cast): Check that the destination type is
4016169689Skan	complete.
4017169689Skan
4018169689Skan2003-06-11  Mark Mitchell  <mark@codesourcery.com>
4019169689Skan
4020169689Skan	PR c++/10432
4021169689Skan	* cp-tree.h (finish_declarator): Remove.
4022169689Skan	* decl.c (cp_finish_decl): Make sure to pop_nested_class even for
4023169689Skan	erroneous declarations.
4024169689Skan	* semantics.c (finish_declarator): Remove.
4025169689Skan
4026169689Skan2003-06-11  Roger Sayle  <roger@eyesopen.com>
4027169689Skan
4028169689Skan	* decl2.c (generate_ctor_or_dtor_function): Avoid expanding a
4029169689Skan	global static constructor/destructor if it will be empty, i.e.
4030169689Skan	either doesn't call any ctors/dtors or only calls pure or const
4031169689Skan	ctors/dtors.
4032169689Skan
4033169689Skan2003-06-11  Mark Mitchell  <mark@codesourcery.com>
4034169689Skan
4035169689Skan	* mangle.c (tm_p.h): Include it.
4036169689Skan	* Make-lang.in (cp/mangle.o): Depend on $(TM_P_H).
4037169689Skan
4038169689Skan	PR c++/11131
4039169689Skan	* tree.c (cp_cannot_inline_fn): Check for "inline" before
4040169689Skan	instantiation.
4041169689Skan
4042169689Skan2003-06-10  Jason Merrill  <jason@redhat.com>
4043169689Skan
4044169689Skan	PR c++/10968
4045169689Skan	* pt.c (mark_decl_instantiated): Clear DECL_COMDAT.
4046169689Skan
4047169689Skan2003-06-10  Andrew Pinski  <pinskia@physics.uc.edu>
4048169689Skan
4049169689Skan	* decl.c (start_cleanup_fn): Move static 'counter' out, mark with GTY.
4050169689Skan	(start_cleanup_cnt): New.
4051169689Skan
4052169689Skan2003-06-10  Mark Mitchell  <mark@codesourcery.com>
4053169689Skan
4054169689Skan	PR c++/11131
4055169689Skan	* cp-tree.h (template_for_substitution): Declare.
4056169689Skan	* decl2.c (mark_used): Use it when figuring out whether or not a
4057169689Skan	function is inline.
4058169689Skan	* pt.c (template_for_substitution): Give it external linkage.
4059169689Skan	* tree.c (cp_cannot_inline_tree_fn): Instantiate as early as
4060169689Skan	possible.
4061169689Skan
4062169689Skan2003-06-09  Zack Weinberg  <zack@codesourcery.com>
4063169689Skan
4064169689Skan	PR 8861
4065169689Skan	* mangle.c (write_real_cst): New function.  Implement
4066169689Skan	ABI-compliant mangling of floating-point literals when
4067169689Skan	-fabi-version>=2; provide backward compatibility with 3.3 when
4068169689Skan	-fabi-version=1 (with warning).  Clarify commentary.
4069169689Skan	(write_template_arg_literal): Use write_real_cst.
4070169689Skan
4071169689Skan2003-06-07  Andreas Jaeger  <aj@suse.de>
4072169689Skan
4073169689Skan	* cp/decl.c (xref_tag): Remove undefined macro NONNESTED_CLASSES.
4074169689Skan
4075169689Skan2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
4076169689Skan
4077169689Skan	* cp-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.
4078169689Skan	(LANG_HOOKS_HANDLE_OPTION): Override.
4079169689Skan	* cp-tree.h (cxx_init_options): Update.
4080169689Skan	* lex.c (cxx_init_options): Update.
4081169689Skan
4082169689Skan2003-06-05  Jan Hubicka  <jh@suse.cz>
4083169689Skan
4084169689Skan	* Make-lang.in:  Add support for stageprofile and stagefeedback
4085169689Skan
4086169689Skan2003-06-04  J"orn Rennecke <joern.rennecke@superh.com>
4087169689Skan
4088169689Skan	* decl.c (grokdeclarator): Error_mark_node in, error_mark_node out.
4089169689Skan
4090169689Skan2003-06-04  Andreas Jaeger  <aj@suse.de>
4091169689Skan
4092169689Skan	* g++spec.c (lang_specific_driver): Remove ALT_LIBM usage.
4093169689Skan
4094169689Skan2003-06-03  Jason Merrill  <jason@redhat.com>
4095169689Skan
4096169689Skan	* cp/cp-tree.h (CP_AGGREGATE_TYPE_P): Accept vectors.
4097169689Skan
4098169689Skan	* cp/decl.c (reshape_init): Handle vectors.
4099169689Skan
4100169689Skan	* testsuite/g++.dg/init/array10.C: New.
4101169689Skan
4102169689Skan2003-06-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4103169689Skan
4104169689Skan	PR c++/10940
4105169689Skan	* pt.c (check_explicit_specialization): Check for 'static'
4106169689Skan	earlier.
4107169689Skan
4108169689Skan2003-05-31  Diego Novillo  <dnovillo@redhat.com>
4109169689Skan
4110169689Skan	* class.c (dump_array): Call CONSTRUCTOR_ELTS to access
4111169689Skan	the operand of a CONSTRUCTOR node.
4112169689Skan
4113169689Skan2003-05-31  Gabriel Dos Reis <gdr@integrable-solutions.net>
4114169689Skan
4115169689Skan	* decl.c (cp_binding_level::this_entity): Rename from this_class.
4116169689Skan	(cxx_scope_descriptor): New function.
4117169689Skan	(cxx_scope_debug): Likewise.
4118169689Skan	(push_binding_level): Use it.
4119169689Skan	(pop_binding_level): Likewise.
4120169689Skan	(suspend_binding_level): Likewise.
4121169689Skan	(resume_binding_level): Likewise.
4122169689Skan	(pushlevel_class): Adjust use of this_class.
4123169689Skan	(pushtag): Likewise.
4124169689Skan	(lookup_name_real): Likewise.
4125169689Skan	(global_scope_name): New variable.
4126169689Skan	(initialize_predefined_identifiers): Initialize it.
4127169689Skan	(push_namespace): Use it.
4128169689Skan	(make_cxx_scope): New function.
4129169689Skan	(pushlevel): Use it.
4130169689Skan	(pushlevel_class): Likewise.
4131169689Skan	(push_binding_level): Simplify.  Loose the last two arguments.
4132169689Skan	(make_binding_level): Remove.
4133169689Skan	(initial_push__namespace_scope): New function.
4134169689Skan	(push_namespace): Use it.  Simplify.
4135169689Skan	(cxx_init_decl_processing): Likewise.
4136169689Skan	(declare_namespace_level): Remove.
4137169689Skan
4138169689Skan2003-05-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4139169689Skan
4140169689Skan	PR c++/10956
4141169689Skan	* pt.c (instantiate_decl): Don't use full template arguments if
4142169689Skan	we are dealing with specializations.
4143169689Skan
4144169689Skan2003-05-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4145169689Skan
4146169689Skan	* decl.c (ENABLE_SCOPE_CHECKING): Rename from DEBUG_BINDING_LEVELS.
4147169689Skan	(binding_depth): Unconditionally define.
4148169689Skan	(is_class_level): Likewise.
4149169689Skan	(indent): Likewise.  Take an indenting parameter.
4150169689Skan	(push_binding_level): Remove conditional definittion.
4151169689Skan	(pop_binding_level): Likewise.
4152169689Skan	(suspend_binding_level): Likewise.
4153169689Skan	(resume_binding_level): Likewise.
4154169689Skan	(pushlevel): Likewise.
4155169689Skan	(pushlevel_class): Likewise.
4156169689Skan	(poplevel_class): Likewise.
4157169689Skan	(pop_everything): Likewise.
4158169689Skan
4159169689Skan2003-05-27  Gabriel Dos Reis <gdr@integrable-solutions.net>
4160169689Skan
4161169689Skan	* name-lookup.h (global_scope_p): New macro.
4162169689Skan	* decl.c (pop_binding_level): Use it.  Don't refer directly to
4163169689Skan	global_binding_level.
4164169689Skan	(suspend_binding_level): Likewise.
4165169689Skan	(global_bindings_p): Likewise.
4166169689Skan	(print_other_binding_stack): Likewise.
4167169689Skan	(print_binding_stack): Likewise.
4168169689Skan	(maybe_push_to_top_level): Likewise.
4169169689Skan	(pushdecl_namespace_level): Likewise.
4170169689Skan	(cxx_init_decl_processing): Likewise.
4171169689Skan	(start_decl): Likewise.
4172169689Skan	(cp_finish_decl): Likewise.
4173169689Skan	(start_function): Likewise.
4174169689Skan	(global_binding_level): Remove.
4175169689Skan
4176169689Skan2003-05-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4177169689Skan
4178169689Skan	* parser.c (cp_parser_explicit_instantiation): Restore old
4179169689Skan	access before template instantiation.
4180169689Skan
4181169689Skan2003-05-23  Geoffrey Keating  <geoffk@apple.com>
4182169689Skan
4183169689Skan	* lang-specs.h: Use -o to specify preprocessor's output file.
4184169689Skan	Make -no-integrated-cpp work when building PCH files.
4185169689Skan
4186169689Skan2003-05-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4187169689Skan
4188169689Skan	PR c++/10682
4189169689Skan	* pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to
4190169689Skan	check for implicitly created typedef to an enum.
4191169689Skan
4192169689Skan2003-05-21  Jason Merrill  <jason@redhat.com>
4193169689Skan
4194169689Skan	* init.c (build_vec_delete): Copy the address into a temporary
4195169689Skan	variable before calling build_vec_delete_1.
4196169689Skan	* decl2.c (delete_sanity): Don't call stabilize_reference.
4197169689Skan
4198169689Skan2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
4199169689Skan
4200169689Skan	* pt.c (register_specialization): Update the decl's location,
4201169689Skan	if necessary.
4202169689Skan	(check_explicit_specialization): Likewise.
4203169689Skan
4204169689Skan2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4205169689Skan
4206169689Skan	* error.c (dump_expr): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX.
4207169689Skan
4208169689Skan2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
4209169689Skan
4210169689Skan	PR c++/9738
4211169689Skan	* decl.c (duplicate_decls): Re-invoke make_decl_rtl
4212169689Skan	if the old decl had instantiated DECL_RTL.
4213169689Skan	(Base on Richard Henderson 2003-05-13 patch to c-decl.c).
4214169689Skan
4215169689Skan2003-05-19  Matt Austern  <austern@apple.com>
4216169689Skan
4217169689Skan	* lang-options.h: Document -Wno-invalid-offsetof
4218169689Skan	* typeck.c (build_class_member_access_expr): Don't complain about
4219169689Skan	(Foo *)p->x for non-POD Foo if warn_invalid_offset is zero.
4220169689Skan
4221169689Skan2003-05-18 Andrew Pinski <pinskia@physics.uc.edu>
4222169689Skan
4223169689Skan	* name-lookup.c (free_binding_entry): fix where the GTY markers are.
4224169689Skan	(binding_entry_make): Make entry->chain NULL after getting an entry.
4225169689Skan	fix the spelling of chain in a comment.
4226169689Skan	(binding_table_free): speed up by having temporary variable.
4227169689Skan	(binding_table_new): set table->chain to be NULL after allocating
4228169689Skan	a table.
4229169689Skan	(cxx_binding_make): use gcc_alloc instead of ggc_alloc_cleared and set
4230169689Skan	binding->previous to NULL after getting an binding for speed.
4231169689Skan
4232169689Skan2003-05-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4233169689Skan
4234169689Skan	* cp-tree.h (struct lang_type_class): Replace data member tags
4235169689Skan	with hash-table nested_udts.
4236169689Skan	(CLASSTYPE_NESTED_UTDS): Rename from CLASSTYPE_TAGS.
4237169689Skan	* class.c (unreverse_member_declarations): Don't touch
4238169689Skan	CLASSTYPE_TAGS.
4239169689Skan	(pushclass): Use cxx_remember_type_decls.
4240169689Skan	* decl.c (struct cp_binding_level): Replace data member tags with
4241169689Skan	hash-table type_decls.
4242169689Skan	(pop_binding_level): Handle level->type_decls.
4243169689Skan	(kept_level_p): Adjust.
4244169689Skan	(poplevel): Remove unused local variable.
4245169689Skan	(bt_print_entry): New function.
4246169689Skan	(print_binding_level): Use it.
4247169689Skan	(push_namespace): Build current_binding_level->type_decls.
4248169689Skan	(maybe_process_template_type_declaration): Adjust.
4249169689Skan	(pushtag): Likewise.
4250169689Skan	(clear_anon_tags): Use binding_table_remove_anonymous_types.
4251169689Skan	(gettags): Remove.
4252169689Skan	(cxx_remember_type_decls):  Rename from storetags.  Adjust.
4253169689Skan	(lookup_tag): Use binding_table_find_anon_type.  Tidy.
4254169689Skan	(lookup_tag_reverse): Use binding_table_reverse_maybe_remap.
4255169689Skan	(cxx_init_decl_processing): Build global_binding_level->type_decls.
4256169689Skan	(store_parm_decls): Remove pointless code.
4257169689Skan	* name-lookup.c (free_binding_entry): New variable.
4258169689Skan	(ENTRY_INDEX): New macro.
4259169689Skan	(struct binding_table_s): New datatype.
4260169689Skan	(binding_entry_make): New function.
4261169689Skan	(binding_entry_free): Likewise.
4262169689Skan	(binding_table_construct): Likewise.
4263169689Skan	(binding_table_free): Likewise.
4264169689Skan	(binding_table_new): Likewise.
4265169689Skan	(binding_table_expand): Likewise.
4266169689Skan	(binding_table_insert): Likewise.
4267169689Skan	(binding_table_find): Likewise.
4268169689Skan	(binding_table_find_anon_type): Likewise.
4269169689Skan	(binding_table_reverse_maybe_remap): Likewise.
4270169689Skan	(binding_table_remove_anonymous_types): Likewise.
4271169689Skan	(binding_table_foreach): Likewise.
4272169689Skan	* name-lookup.h (binding_table): New type.
4273169689Skan	(binding_entry): Likewise.
4274169689Skan	(bt_foreach_proc): Likewise.
4275169689Skan	(struct binding_entry_s): New datatype.
4276169689Skan	(SCOPE_DEFAULT_HT_SIZE): New macro.
4277169689Skan	(CLASS_SCOPE_HT_SIZE): Likewise.
4278169689Skan	(NAMESPACE_ORDINARY_HT_SIZE): Likewise.
4279169689Skan	(NAMESPACE_STD_HT_SIZE): Likewise.
4280169689Skan	(GLOBAL_SCOPE_HT_SIZE): Likewise.
4281169689Skan	(binding_table_new): Declare.
4282169689Skan	(binding_table_free): Likewise.
4283169689Skan	(binding_table_insert): Likewise.
4284169689Skan	(binding_table_find_anon_type): Likewise.
4285169689Skan	(binding_table_reverse_maybe_remap): Likewise.
4286169689Skan	(binding_table_remove_anonymous_types): Likewise.
4287169689Skan	(binding_table_foreach): Likewise.
4288169689Skan	(binding_table_find): Likewise.
4289169689Skan	(cxx_remember_type_decls): Likewise.
4290169689Skan	* pt.c (bt_instantiate_type_proc): New function.
4291169689Skan	(do_type_instantiation): Use it.
4292169689Skan	* search.c (lookup_field_r): Use binding_table_find.
4293169689Skan
4294169689Skan2003-05-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4295169689Skan
4296169689Skan	* semantics.c (perform_deferred_access_checks): Don't discard
4297169689Skan	checked access.
4298169689Skan
4299169689Skan2003-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4300169689Skan
4301169689Skan	* error.c (cp_error_at, cp_warning_at, cp_pedwarn_at): Eliminate
4302169689Skan	libiberty VA_ macros, always use stdarg.
4303169689Skan	* rtti.c (create_pseudo_type_info): Likewise.
4304169689Skan	* tree.c (build_min_nt, build_min): Likewise.
4305169689Skan
4306169689Skan2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4307169689Skan
4308169689Skan	* ptree.c (cxx_print_type, cxx_print_xnode): Use string
4309169689Skan	concatentation on HOST_WIDE_INT_PRINT_* format specifier to
4310169689Skan	collapse multiple function calls into one.
4311169689Skan	* tree.c (debug_binfo): Likewise.
4312169689Skan
4313169689Skan2003-05-15  Jason Merrill  <jason@redhat.com>
4314169689Skan
4315169689Skan	PR c++/5388
4316169689Skan	* call.c (conditional_conversion): Don't consider implicit
4317169689Skan	conversions if T2 is a base of T1.
4318169689Skan	* cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean.
4319169689Skan	(ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
4320169689Skan
4321169689Skan	* parser.c (cp_parser_primary_expression): Convert a static data
4322169689Skan	member from reference.
4323169689Skan
4324169689Skan2003-05-15  Mark Mitchell  <mark@codesourcery.com>
4325169689Skan
4326169689Skan	* call.c (build_op_delete_call): Avoid creating unnecessary types.
4327169689Skan	* class.c (instantiate_type): Remove tests for tf_no_attributes.
4328169689Skan	* cp-tree.h (tsubst_flags_t): Remove tf_no_attributes.
4329169689Skan	(COMPARE_NO_ATTRIBUTES): Remove.
4330169689Skan	* typeck.c (comptypes): Do not check COMPARE_NO_ATTRIBUTES.
4331169689Skan
4332169689Skan	PR c++/8385
4333169689Skan	* semantics.c (finish_typeof): Refine type-dependency check.
4334169689Skan
4335169689Skan2003-05-13  Jason Merrill  <jason@redhat.com>
4336169689Skan
4337169689Skan	* typeck.c (build_modify_expr): Don't always stabilize the lhs and
4338169689Skan	rhs.  Do stabilize the lhs of a MODIFY_EXPR used on the lhs.
4339169689Skan
4340169689Skan2003-05-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4341169689Skan
4342169689Skan	* method.c (synthesize_method): Call push/pop_deferring_access_checks.
4343169689Skan
4344169689Skan2003-05-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4345169689Skan
4346169689Skan	PR c++/10230, c++/10481
4347169689Skan	* semantics.c (finish_non_static_data_member): Handle when the
4348169689Skan	non-static member is not from a base of the current class type.
4349169689Skan
4350169689Skan2003-05-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4351169689Skan
4352169689Skan	PR c++/10552
4353169689Skan	* pt.c (tsubst_copy): Handle TEMPLATE_DECL that is a member class
4354169689Skan	template and has dependent context.
4355169689Skan
4356169689Skan2003-05-10  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4357169689Skan
4358169689Skan	* pt.c (instantiate_decl): Call push/pop_deferring_access_checks.
4359169689Skan
4360169689Skan2003-05-10  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4361169689Skan
4362169689Skan	PR c++/9252
4363169689Skan	* cp-tree.h (saved_scope): Remove check_access field.
4364169689Skan	(tsubst_flags_t): Remove tf_parsing.
4365169689Skan	* decl.c (maybe_push_to_top_level): Don't initialize
4366169689Skan	scope_chain->check_access.
4367169689Skan	(make_typename_type, make_unbound_class_template): Don't use
4368169689Skan	tf_parsing.
4369169689Skan	(register_dtor_fn): Use push/pop_deferring_access_checks
4370169689Skan	instead of scope_chain->check_access.
4371169689Skan	* method.c (use_thunk): Likewise.
4372169689Skan	* parser.c (cp_parser_explicit_instantiation
4373169689Skan	(cp_parser_constructor_declarator_p): Don't call
4374169689Skan	push/pop_deferring_access_checks here.
4375169689Skan	(cp_parser_template_argument, cp_parser_class_name): Don't use
4376169689Skan	tf_parsing.
4377169689Skan	(yyparse): Check flag_access_control.
4378169689Skan	* pt.c (instantiate_class_template): Call
4379169689Skan	push/pop_deferring_access_checks.
4380169689Skan	* semantics.c (push_deferring_access_checks): Propagate
4381169689Skan	dk_no_check.
4382169689Skan	(perform_or_defer_access_check): Make sure basetype_path is
4383169689Skan	a type before comparison.
4384169689Skan	* call.c (build_op_delete_call, build_over_call): Use
4385169689Skan	perform_or_defer_access_check.
4386169689Skan	* class.c (alter_access): Likewise.
4387169689Skan	* init.c (build_offset_ref): Likewise.
4388169689Skan	* lex.c (do_identifier): Likewise.
4389169689Skan	* method.c (hack_identifier): Likewise.
4390169689Skan	* search.c (lookup_member): Likewise.
4391169689Skan	* semantics.c (finish_non_static_data_member): Likewise.
4392169689Skan	(simplify_aggr_init_exprs_r): Use push/pop_deferring_access_checks
4393169689Skan	instead of flag_access_control.
4394169689Skan
4395169689Skan2003-05-10  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4396169689Skan
4397169689Skan	PR c++/9554
4398169689Skan	* parser.c (cp_parser_class_name): Remove check_access parameter.
4399169689Skan	All caller adjusted.  Update declaration.
4400169689Skan	(cp_parser_lookup_name): Likewise.
4401169689Skan	* semantics.c (push_deferring_access_checks): Change parameter type
4402169689Skan	to enum deferring_kind.  All caller adjusted.
4403169689Skan	(resume_deferring_access_checks): Adjust to use new enum.
4404169689Skan	(stop_deferring_access_checks): Likewise.
4405169689Skan	(perform_or_defer_access_check): Likewise.
4406169689Skan	* cp-tree.h (deferring_kind): New enum.
4407169689Skan	(deferred_access): Adjust field type.
4408169689Skan	(push_deferring_access_checks): Update declaration.
4409169689Skan
4410169689Skan2003-05-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4411169689Skan
4412169689Skan	PR c++/10555, c++/10576
4413169689Skan	* pt.c (lookup_template_class): Handle class template with
4414169689Skan	multiple levels of parameters when one of the levels contain
4415169689Skan	errors.
4416169689Skan
4417169689Skan2003-05-08  Jason Merrill  <jason@redhat.com>
4418169689Skan
4419169689Skan	* init.c (build_new_1): Don't reuse a TARGET_EXPR in an
4420169689Skan	expression.  Undo some of the recent reorg.
4421169689Skan
4422169689Skan2003-05-07  Richard Henderson  <rth@redhat.com>
4423169689Skan
4424169689Skan	PR c++/10570
4425169689Skan	* cfns.gperf: Comment out POSIX thread cancellation points,
4426169689Skan	plus abort and raise.
4427169689Skan	* cfns.h: Regenerate.
4428169689Skan
4429169689Skan2003-05-07  Jason Merrill  <jason@redhat.com>
4430169689Skan
4431169689Skan	* call.c (build_conditional_expr): Don't assume that the folded
4432169689Skan	expression has result_type.
4433169689Skan
4434169689Skan2003-05-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4435169689Skan
4436169689Skan	* typeck.c (build_unary_op): Deal with const qualifier in
4437169689Skan	invalid pointer-to-member earlier.
4438169689Skan
4439169689Skan2003-05-05  Jason Merrill  <jason@redhat.com>
4440169689Skan
4441169689Skan	PR c++/9537
4442169689Skan	* call.c (conditional_conversion): Build an RVALUE_CONV if
4443169689Skan	we're just changing the cv-quals.
4444169689Skan	(build_conditional_expr): Don't call convert to change
4445169689Skan	cv-quals.
4446169689Skan
4447169689Skan2003-05-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4448169689Skan
4449169689Skan	PR c++/10496
4450169689Skan	* typeck.c (build_unary_op): Don't output const qualifier when
4451169689Skan	output invalid pointer-to-member diagnostics.
4452169689Skan
4453169689Skan2003-05-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4454169689Skan
4455169689Skan	* decl.c: Fix typos.
4456169689Skan
4457169689Skan2003-05-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4458169689Skan
4459169689Skan	PR c++/4494
4460169689Skan	* decl.c (start_function): Use same_type_p to check return type
4461169689Skan	of main.
4462169689Skan
4463169689Skan2003-05-03  Zack Weinberg  <zack@codesourcery.com>
4464169689Skan
4465169689Skan	PR c/10604
4466169689Skan	* cp/typeck.c (build_x_compound_expr): No need to check
4467169689Skan	extra_warnings as well as warn_unused_value.
4468169689Skan
4469169689Skan2003-05-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4470169689Skan
4471169689Skan	PR c++/9364, c++/10553, c++/10586
4472169689Skan	* decl.c (make_typename_type): Don't crash on illegal code.
4473169689Skan
4474169689Skan2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
4475169689Skan
4476169689Skan	* class.c (finish_struct): Use location_t and input_location
4477169689Skan	directly.
4478169689Skan	* decl.c (make_label_decl): Likewise.
4479169689Skan	(use_label): Likewise.
4480169689Skan	* decl2.c (warn_if_unknown_interface): Likewise.
4481169689Skan	(start_static_initialization_or_destruction): Likewise.
4482169689Skan	(generate_ctor_or_dtor_function): Likewise.
4483169689Skan	(finish_file): Likewise.
4484169689Skan	* error.c (print_instantiation_full_context): Likewise.
4485169689Skan	* init.c (create_temporary_var): Likewise.
4486169689Skan	* method.c (synthesize_method): Likewise.
4487169689Skan	* parser.c (cp_token): Likewise.
4488169689Skan	(cp_lexer_set_source_position_from_token): Likewise.
4489169689Skan	(cp_lexer_get_preprocessor_token): Likewise.
4490169689Skan	(cp_parser_statement): Likewise.
4491169689Skan	* pt.c (tsubst_friend_function): Likewise.
4492169689Skan	(instantiate_class_template): Likewise.
4493169689Skan	(tsubst_decl): Likewise.
4494169689Skan	(tsubst): Likewise.
4495169689Skan	(instantiate_decl): Likewise.
4496169689Skan	* semantics.c (begin_class_definition): Likewise.
4497169689Skan	(expand_body): Likewise.
4498169689Skan
4499169689Skan2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
4500169689Skan
4501169689Skan	* class.c (finish_struct): Rename lineno to input_line.
4502169689Skan	* decl.c (push_binding_level, pop_binding_level,
4503169689Skan	suspend_binding_level, resume_binding_level, make_label_decl,
4504169689Skan	use_label, start_function): Likewise.
4505169689Skan	* decl2.c (warn_if_unknown_interface,
4506169689Skan	start_static_initialization_or_destruction,
4507169689Skan	generate_ctor_or_dtor_function, finish_file): Likewise.
4508169689Skan	* error.c (cp_line_of, print_instantiation_full_context,
4509169689Skan	print_instantiation_context): Likewise.
4510169689Skan	* except.c (check_handlers_1, check_handlers): Likewise.
4511169689Skan	* init.c (create_temporary_var): Likewise.
4512169689Skan	* method.c (use_thunk, synthesize_method): Likewise.
4513169689Skan	* parser.c (cp_lexer_set_source_position_from_token,
4514169689Skan	cp_lexer_get_preprocessor_token): Likewise.
4515169689Skan	* pt.c (push_tinst_level, pop_tinst_level,
4516169689Skan	tsubst_friend_function, instantiate_class_template, tsubst_decl,
4517169689Skan	tsubst, tsubst_expr, instantiate_decl): Likewise.
4518169689Skan	* semantics.c (genrtl_try_block, finish_label_stmt,
4519169689Skan	begin_class_definition, expand_body,
4520169689Skan	genrtl_finish_function): Likewise.
4521169689Skan	* tree.c (build_min_nt, build_min): Likewise.
4522169689Skan
4523169689Skan2003-05-01  Mark Mitchell  <mark@codesourcery.com>
4524169689Skan
4525169689Skan	* decl2.c (comdat_linkage): Don't externalize explicit
4526169689Skan	instantiations.
4527169689Skan
4528169689Skan2003-05-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4529169689Skan
4530169689Skan	PR c++/10554
4531169689Skan	* decl2.c (do_class_using_decl): Check if operand 0 of SCOPE_REF
4532169689Skan	is not NULL.
4533169689Skan
4534169689Skan2003-05-01  Steven Bosscher  <steven@gcc.gnu.org>
4535169689Skan
4536169689Skan	* cp-tree.h (struct lang_id2): Remove.  Move fields from here...
4537169689Skan	(struct lang_identifier): ... to here.
4538169689Skan	(LANG_ID_FIELD): Remove.
4539169689Skan	(SET_LANG_ID): Remove.
4540169689Skan	(IDENTIFIER_LABEL_VALUE): Adjust for new lang_identifier.
4541169689Skan	(SET_IDENTIFIER_LABEL_VALUE): Likewise.
4542169689Skan	(IDENTIFIER_IMPLICIT_DECL): Likewise.
4543169689Skan	(SET_IDENTIFIERL_IMPLICIT_DECL): Likewise.
4544169689Skan	(IDENTIFIER_ERROR_LOCUS): Likewise.
4545169689Skan	(SET_IDENTIFIER_ERROR_LOCUS): Likewise.
4546169689Skan
4547169689Skan2003-05-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4548169689Skan
4549169689Skan	PR c++/8772
4550169689Skan	* pt.c (convert_template_argument): Correct diagnostic.
4551169689Skan
4552169689Skan2003-04-30  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4553169689Skan
4554169689Skan	PR c++/9432, c++/9528
4555169689Skan	* decl2.c (validate_nonmember_using_decl): Handle SCOPE_REF.
4556169689Skan
4557169689Skan2003-04-30  Garbiel Dos Reis  <gcc@integrable-solutions.net>
4558169689Skan
4559169689Skan	* decl.c (check_previous_goto_1): Adjust prototype.
4560169689Skan	(check_previous_goto): Adjust use.
4561169689Skan	(check_switch_goto): Likewise.
4562169689Skan	(use_label): Adjust.
4563169689Skan	(check_previous_goto_1): Don't use pedwarn_with_file_and_line.
4564169689Skan	(struct named_label_use_list): Use location_t datatype.
4565169689Skan
4566169689Skan2003-04-29  Mark Mitchell  <mark@codesourcery.com>
4567169689Skan
4568169689Skan	PR c++/10551
4569169689Skan	* pt.c (mark_decl_instantiated): Defer all explicit instantiations
4570169689Skan	that have not yet been written out.
4571169689Skan
4572169689Skan2003-04-29  Mark Mitchell  <mark@codesourcery.com>
4573169689Skan
4574169689Skan	PR c++/10549
4575169689Skan	* class.c (layout_class_type): Mark overlong bitfields as having
4576169689Skan	the maximum size permitted by their type, after layout.
4577169689Skan
4578169689Skan	PR c++/10527
4579169689Skan	* error.c (dump_expr): Correctly handling of NEW_EXPR.4
4580169689Skan
4581169689Skan2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4582169689Skan
4583169689Skan	* call.c (build_operator_new_call): Fix typo.
4584169689Skan	* lang-options.h: Likewise.
4585169689Skan
4586169689Skan2003-04-29  Mark Mitchell  <mark@codesourcery.com>
4587169689Skan
4588169689Skan	PR c++/10515
4589169689Skan	* cp-tree.h (lookup_field_1): Declare it.
4590169689Skan	* search.c (lookup_field_1): Make it public.
4591169689Skan	* decl.c (reshape_init): Handle designated initializers.
4592169689Skan
4593169689Skan	* decl.c (maybe_commonize_var): Further tweak support for systems
4594169689Skan	without weak symbols.
4595169689Skan
4596169689Skan2003-04-27  Mark Mitchell  <mark@codesourcery.com>
4597169689Skan
4598169689Skan	* decl.c (maybe_commonize_var): Fix thinko in last patch.
4599169689Skan
4600169689Skan2003-04-27  Mark Mitchell  <mark@codesourcery.com>
4601169689Skan
4602169689Skan	PR c++/10506
4603169689Skan	* method.c (use_thunk): Decrement immediate_size_expand.
4604169689Skan
4605169689Skan	PR c++/10503
4606169689Skan	* cp-tree.h (DECL_VAR_MARKED_P): New macro.
4607169689Skan	(DECL_MAYBE_TEMPLATE): Remove.
4608169689Skan	* class.c (fixed_type_or_null): Avoid infinite recursion.
4609169689Skan
4610169689Skan	* decl.c (maybe_commonize_var): Make the code match the comments.
4611169689Skan	* pt.c (instantiate_decl): Move call to import_export_decl.
4612169689Skan
4613169689Skan2003-04-26  Mark Mitchell  <mark@codesourcery.com>
4614169689Skan
4615169689Skan	* decl2.c (finish_file): Fix merge botch.
4616169689Skan
4617169689Skan2003-04-25  Mark Mitchell  <mark@codesourcery.com>
4618169689Skan
4619169689Skan	* decl2.c (finish_file): Don't call import_export_decl for
4620169689Skan	functions that are not defined.
4621169689Skan	(handle_class_head): Robustify.
4622169689Skan	* pt.c (instantiate_decl): Do not call cp_finish_decl for
4623169689Skan	variables that are not defined.
4624169689Skan
4625169689Skan2003-04-24  Sylvain Pion  <Sylvain.Pion@mpi-sb.mpg.de>
4626169689Skan
4627169689Skan	* call.c (print_z_candidates): Fix off by one error.
4628169689Skan
4629169689Skan2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
4630169689Skan
4631169689Skan	PR c++/10337
4632169689Skan	* call.c (joust): Don't warn about conversion ops that are exact
4633169689Skan	or cv-conversions. Rearrange to avoid multiple type comparisons.
4634169689Skan
4635169689Skan2003-04-23  Mark Mitchell  <mark@codesourcery.com>
4636169689Skan
4637169689Skan	PR c++/10471
4638169689Skan	* call.c (build_cxx_call): Robustify.
4639169689Skan
4640169689Skan2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
4641169689Skan
4642169689Skan	* Make-lang.in (lex.o): Remove mbchar.h.
4643169689Skan	* lex.c (MULTIBYTE_CHARS): Lose.
4644169689Skan	* parser.c (cp_lexer_get_preprocessor_token): CPP_OTHER handled
4645169689Skan	in c-lex.c.
4646169689Skan
4647169689Skan2003-04-23  Mark Mitchell  <mark@codesourcery.com>
4648169689Skan
4649169689Skan	PR c++/9847
4650169689Skan	* cp-tree.h (duplicate_tag_error): Remove.
4651169689Skan	* class.c (duplicate_tag_error): Remove.
4652169689Skan	* semantics.c (begin_class_definition): Return immediately for a
4653169689Skan	duplicate class definition.
4654169689Skan
4655169689Skan	PR c++/10451
4656169689Skan	* decl.c (grokdeclarator): Correct logic for "mutable" errors.
4657169689Skan
4658169689Skan2003-04-22  Mark Mitchell  <mark@codesourcery.com>
4659169689Skan
4660169689Skan	PR c++/10446
4661169689Skan	* search.c (lookup_fnfields_1): Handle empty slots in the method
4662169689Skan	vector.
4663169689Skan
4664169689Skan	PR c++/10428
4665169689Skan	* decl.c (check_elaborated_type_specifier): New function, split
4666169689Skan	out from ...
4667169689Skan	(xref_tag): ... here.  Use the new function in more places.
4668169689Skan
4669169689Skan	* rtti.c (throw_bad_typeid): Use build_cxx_call.
4670169689Skan
4671169689Skan2003-04-21  Mark Mitchell  <mark@codesourcery.com>
4672169689Skan
4673169689Skan	* call.c (build_over_call): Use build_cxx_call.
4674169689Skan	(build_cxx_call): New method, split out of build_over_call.
4675169689Skan	* cp-tree.h (language_function): Add can_throw.
4676169689Skan	(build_cxx_call): Declare it.
4677169689Skan	* decl.c (finish_function): If a function does not contain any
4678169689Skan	calls to functions that can throw an exception, indicate that
4679169689Skan	fact.
4680169689Skan	* decl2.c (mark_used): Do not defer the instantiation of
4681169689Skan	functions, if the current function does not throw.
4682169689Skan	* optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
4683169689Skan	* pt.c (instantiate_decl): Make sure import_export_decl is called
4684169689Skan	before emitting things.
4685169689Skan	* rtti.c (throw_bad_cast): Use build_cxx_call.
4686169689Skan	(build_dynamic_cast_1): Likewise.
4687169689Skan	* typeck.c (build_function_call): Likewise.
4688169689Skan
4689169689Skan2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
4690169689Skan
4691169689Skan	PR c++/9881
4692169689Skan	* typeck.c (build_unary_op): Fold all COMPONENT_REF addr
4693169689Skan	expressions. Reverts my 2002-08-08 patch.
4694169689Skan
4695169689Skan	* typeck.c (comp_ptr_ttypes_real): Swap final && operands for
4696169689Skan	cheaper early exit.
4697169689Skan
4698169689Skan2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
4699169689Skan
4700169689Skan	* cp/decl2.c (start_static_storage_duration_function): Take count
4701169689Skan	arg, don't check if it wraps round.
4702169689Skan	(generate_ctor_or_dtor_function): Add locus arg, use it.
4703169689Skan	(generate_ctor_and_dtor_functions_for_priority): Data arg is a
4704169689Skan	locus.
4705169689Skan	(finish_file): Set line numbers to past EOF for synthesized
4706169689Skan	functions.
4707169689Skan
4708169689Skan2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
4709169689Skan
4710169689Skan	PR c++/10405
4711169689Skan	* search.c (lookup_field_1): Final scan goes backwards for
4712169689Skan	types, forwards for non-types.
4713169689Skan
4714169689Skan2003-04-17  Roger Sayle  <roger@eyesopen.com>
4715169689Skan
4716169689Skan	PR c/10375
4717169689Skan	* decl.c (duplicate_decls): Preserve "const", "noreturn" and
4718169689Skan	"nothrow" function attributes.
4719169689Skan
4720169689Skan2003-04-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4721169689Skan
4722169689Skan	PR c++/10347
4723169689Skan	* pt.c (type_dependent_expression_p): Handle array new.
4724169689Skan
4725169689Skan2003-04-15  Mark Mitchell  <mark@codesourcery.com>
4726169689Skan
4727169689Skan	PR c++/10381
4728169689Skan	* parser.c (cp_parser_primary_expression): Reorganize logic for
4729169689Skan	dealing with name lookup failures.
4730169689Skan
4731169689Skan2003-04-15  Jason Merrill  <jason@redhat.com>
4732169689Skan
4733169689Skan	* decl2.c (mark_used): Don't instantiate anything if
4734169689Skan	skip_evaluation.
4735169689Skan
4736169689Skan2003-04-14  Ziemowit Laski  <zlaski@apple.com>
4737169689Skan
4738169689Skan	* tree.c (build_cplus_array_type_1): Do not call
4739169689Skan	uses_template_parms() on a NULL index_type.
4740169689Skan
4741169689Skan2003-04-13  Roger Sayle  <roger@eyesopen.com>
4742169689Skan
4743169689Skan	* decl.c (duplicate_decls): Preserve pure and malloc attributes.
4744169689Skan
4745169689Skan2003-04-12  Mark Mitchell  <mark@codesourcery.com>
4746169689Skan
4747169689Skan	PR c++/10300
4748169689Skan	* init.c (build_new_1): Reorganize.
4749169689Skan
4750169689Skan2003-04-12  Zack Weinberg  <zack@codesourcery.com>
4751169689Skan
4752169689Skan	* class.c (initialize_array)
4753169689Skan	* decl.c (reshape_init)
4754169689Skan	* decl2.c (build_expr_from_tree)
4755169689Skan	* init.c (build_zero_init)
4756169689Skan	* pt.c (tsubst_copy, tsubst_copy_and_build)
4757169689Skan	* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer)
4758169689Skan	(ptm_initializer, class_initializer, get_pseudo_ti_init)
4759169689Skan	* semantics.c (finish_compound_literal)
4760169689Skan	* typeck.c (build_ptrmemfunc1)
4761169689Skan	* typeck2.c (store_init_value, process_init_constructor)
4762169689Skan	(build_functional_cast): Use build_constructor.
4763169689Skan
4764169689Skan2003-04-12  Zack Weinberg  <zack@codesourcery.com>
4765169689Skan
4766169689Skan	* call.c (print_z_candidates): Use gcc_gettext_width, not
4767169689Skan	strlen, to determine how much padding to use.
4768169689Skan
4769169689Skan2003-04-10  Zack Weinberg  <zack@codesourcery.com>
4770169689Skan
4771169689Skan	* decl.c: Update all calls to shadow_warning.
4772169689Skan
4773169689Skan2003-04-10  Mark Mitchell  <mark@codesourcery.com>
4774169689Skan
4775169689Skan	* class.c (layout_class_type): Correct handling for overlong
4776169689Skan	bit-fields whose width is the same as an integer type.
4777169689Skan
4778169689Skan2003-04-06  Zack Weinberg   <zack@codesourcery.com>
4779169689Skan
4780169689Skan	* cp-tree.def: Make fourth element for all 'c' and 'x' nodes zero.
4781169689Skan	* cp-lang.c (cp_tree_size): New function.
4782169689Skan	(LANG_HOOKS_TREE_SIZE): Override.
4783169689Skan
4784169689Skan	* cp-tree.h (SOURCE_LOCUS, SRCLOC_FILE, SRCLOC_LINE, struct
4785169689Skan	tree_srcloc, TS_CP_COMMON, TS_CP_SRCLOC): Kill.
4786169689Skan	(union lang_tree_node): Remove common and srcloc members.
4787169689Skan	(build_srcloc_here): Don't prototype.
4788169689Skan	* decl.c (cp_tree_node_structure): Kill SRCLOC case.
4789169689Skan	* pt.c (pending_templates): Correct comment.
4790169689Skan	* tree.c (build_srcloc, build_srcloc_here): Kill.
4791169689Skan
4792169689Skan2003-04-06  Zack Weinberg   <zack@codesourcery.com>
4793169689Skan
4794169689Skan	* call.c: Include intl.h.
4795169689Skan	(print_z_candidate): Always use inform; get rid of errfn
4796169689Skan	argument. Reorganize so that all the strings get picked up
4797169689Skan	by xgettext.  Note obligation of caller to pass first argument
4798169689Skan	through gettext.
4799169689Skan	(print_z_candidates): Update to match.  Indent second and
4800169689Skan	successive candidates by strlen() of translated message.
4801169689Skan	(joust): Restructure ambiguous-conversion pedwarn so that
4802169689Skan	translators see a complete sentence.  Update calls to
4803169689Skan	print_z_candidate.
4804169689Skan
4805169689Skan	* Make-lang.in (cp/call.o): Update dependencies.
4806169689Skan
4807169689Skan2003-04-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4808169689Skan
4809169689Skan	* decl.c (set_current_binding_level): Delete, revert last change.
4810169689Skan	(current_binding_level): Modify to allow it as as lvalue.
4811169689Skan
4812169689Skan2003-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4813169689Skan
4814169689Skan	* name-lookup.c (find_binding): Pass appropriate pointer type to
4815169689Skan	POP_TIMEVAR_AND_RETURN.
4816169689Skan
4817169689Skan2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4818169689Skan
4819169689Skan	* Make-lang.in (cp-warn): Add $(STRICT_WARN).
4820169689Skan	* cp-tree.h: Don't insist on having GNUC.
4821169689Skan
4822169689Skan2003-04-03  Jason Merrill  <jason@redhat.com>
4823169689Skan
4824169689Skan	* cvt.c (ocp_convert): Only abort if we try to convert an object
4825169689Skan	of TREE_ADDRESSABLE type.
4826169689Skan
4827169689Skan	* class.c (build_vtable): Set DECL_ALIGN here.
4828169689Skan	(get_vtable_decl): Not here.
4829169689Skan	(layout_vtable_decl): Or here.
4830169689Skan	(create_vtable_ptr): Or here.
4831169689Skan	(layout_class_type): Or here.
4832169689Skan	(check_bitfield_decl): Don't mess with field alignment.
4833169689Skan
4834169689Skan2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4835169689Skan
4836169689Skan	* operators.def (DEF_SIMPLE_OPERATOR, DEF_ASSN_OPERATOR,
4837169689Skan	DEF_ASSN_OPERATOR): Delete spurious semi-colon.
4838169689Skan	* rtti.c (dfs_class_hint_mark): Likewise.
4839169689Skan
4840169689Skan	* decl.c (push_local_name, push_class_level_binding,
4841169689Skan	maybe_inject_for_scope_var): Don't use POP_TIMEVAR_AND_RETURN in
4842169689Skan	functions returning void.
4843169689Skan	* decl2.c (add_using_namespace): Likewise.
4844169689Skan
4845169689Skan	* decl.c (print_binding_level, print_other_binding_stack,
4846169689Skan	print_binding_stack): Cast argument of %p specifier to void*.
4847169689Skan	* ptree.c (cxx_print_decl): Likewise.
4848169689Skan
4849169689Skan	* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
4850169689Skan	VAR_FUNCTION_OR_PARM_DECL_CHECK,
4851169689Skan	VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
4852169689Skan	BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK, LANG_TYPE_CLASS_CHECK,
4853169689Skan	LANG_TYPE_PTRMEM_CHECK, LANG_DECL_U2_CHECK): Add __extension__.
4854169689Skan
4855169689Skan	* decl.c (set_current_binding_level): New macro.  Use throughout
4856169689Skan	when setting the current binding level.
4857169689Skan
4858169689Skan	* cp-tree.h (cp_lvalue_kind, base_access): Delete trailing comma
4859169689Skan	in enum.
4860169689Skan	* method.c (mangling_flags): Likewise.
4861169689Skan
4862169689Skan	* cp-tree.h (lang_type_header): Add __extension__ and use
4863169689Skan	CHAR_BITFIELD for members.
4864169689Skan
4865169689Skan2003-04-02  Geoffrey Keating  <geoffk@apple.com>
4866169689Skan
4867169689Skan	PR other/9274
4868169689Skan	* mangle.c: Include gt-cp-mangle.h.
4869169689Skan	(subst_identifiers): Mark with GTY.
4870169689Skan	* config-lang.in (gtfiles): Add cp/mangle.c.
4871169689Skan	* Make-lang.in: (gt-cp-mangle.h): New rule.
4872169689Skan	(cp/mangle.o): Depends on gt-cp-mangle.h.
4873169689Skan
4874169689Skan2003-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
4875169689Skan
4876169689Skan	* config-lang.in (gtfiles): Add \$(srcdir)/cp/name-lookup.c
4877169689Skan	after \$(srcdir)/cp/name-lookup.h.
4878169689Skan	* name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinstead
4879169689Skan	of ggc_alloc.  Include gt-cp-name-lookup.h at the end of the file.
4880169689Skan	* Make-lang.in: (gt-cp-name-lookup.h): Is generated by gengtype.
4881169689Skan	(cp/name-lookup.o): Depends on gt-cp-name-lookup.h.
4882169689Skan
4883169689Skan2003-03-31  Jason Merrill  <jason@redhat.com>
4884169689Skan
4885169689Skan	PR java/10145
4886169689Skan	* class.c (check_field_decl): Don't set DECL_ALIGN.
4887169689Skan
4888169689Skan2003-03-30  Mark Mitchell  <mark@codesourcery.com>
4889169689Skan
4890169689Skan	PR c++/7647
4891169689Skan	* decl.c (grokdeclarator): Tidy, slightly.
4892169689Skan	* search.c (lookup_field_1): Add want_type parameter.
4893169689Skan	(lookup_field_r): Adjust call to lookup_field_1.
4894169689Skan
4895169689Skan2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4896169689Skan
4897169689Skan	* Make-lang.in (cp/name-lookup.o): Add more dependencies.
4898169689Skan
4899169689Skan2003-03-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
4900169689Skan
4901169689Skan	* cp-tree.h (binding_for_name: Move to name-lookup.h  Adjust
4902169689Skan	prototype.
4903169689Skan	(cxx_scope_find_binding_for_name): Likewise.
4904169689Skan	* decl.c (find_binding: Move to name-lookup.c.
4905169689Skan	(binding_for_name): Likewise.
4906169689Skan	(cxx_scope_find_binding_for_name): Likewise.
4907169689Skan	(BINDING_LEVEL):  Remove.
4908169689Skan	(push_binding): Tidy.
4909169689Skan	(push_class_binding): Likewise.
4910169689Skan	(pop_binding): Likewise.
4911169689Skan	(poplevel): Likewise.
4912169689Skan	(poplevel_class): Likewise.
4913169689Skan	(set_identifier_type_value_with_scope): Likewise.
4914169689Skan	(push_overloaded_decl): Likewise.
4915169689Skan	(lookup_tag): Likewise.
4916169689Skan	(unqualified_namespace_lookup): Likewise.
4917169689Skan	(lookup_name_current_level): Likewise.
4918169689Skan	(maybe_inject_for_scope_var): Likewise.
4919169689Skan	(namespace_binding): Move to name-lookup.c.
4920169689Skan	(set_namespace_binding): Likewise.
4921169689Skan	* decl2.c (lookup_using_namespace): Tidy.
4922169689Skan	(qualified_lookup_using_namespace): Likewise.
4923169689Skan	(do_toplevel_using_decl): Likewise.
4924169689Skan	* name-lookup.c: Include "timevar.h"
4925169689Skan	* name-lookup.h (cxx_scope):  Declare.
4926169689Skan	(struct cxx_binding): Lose member "has_level".  Adjust "scope"
4927169689Skan	member declaration.
4928169689Skan	(BINDING_SCOPE): Adjust definition.
4929169689Skan	(BINDING_HAS_LEVEL_P): Remove.
4930169689Skan
4931169689Skan2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4932169689Skan
4933169689Skan	* name-lookup.c: New file.
4934169689Skan	* name-lookup.h: Likewise..
4935169689Skan	* decl.c (push_binding): Adjust use cxx_binding_make.
4936169689Skan	(free_bindings): Move to name-lookup.c
4937169689Skan	(pop_binding): Use cxx_binding_free.
4938169689Skan	(binding_for_name): Tidy.
4939169689Skan	* cp-tree.h: Include "name-lookup.h"
4940169689Skan	(cxx_binding_make): Move to name-lookup.h
4941169689Skan	(cxx_binding_clear): Likewise.
4942169689Skan	(struct cxx_binding): Likewise.
4943169689Skan	(LOCAL_BINDING_P): Likewise.
4944169689Skan	(INHERITED_VALUE_BINDING_P): Likewise.
4945169689Skan	(BINDING_SCOPE): Likewise.
4946169689Skan	(BINDING_HAS_LEVEL_P): Likewise.
4947169689Skan	(BINDING_VALUE): Likewise.
4948169689Skan	(BINDING_TYPE): Likewise.
4949169689Skan	* config-lang.in (gtfiles): Add cp/name-lookup.h
4950169689Skan	* Make-lang.in (cp/name-lookup.o): New rule.
4951169689Skan	(CXX_OBJS): Add cp/name-lookup.o
4952169689Skan	(CXX_TREE_H): Add cp/name-lookup.h
4953169689Skan
4954169689Skan2003-03-28  Jason Merrill  <jason@redhat.com>
4955169689Skan
4956169689Skan	PR c++/10245
4957169689Skan	* cvt.c (force_rvalue): New fn.
4958169689Skan	* call.c (build_conditional_expr): Use it.
4959169689Skan	* cp-tree.h: Declare it.
4960169689Skan
4961169689Skan2003-03-28  Mike Stump  <mrs@apple.com>
4962169689Skan
4963169689Skan	* error.c (dump_expr): Add 0x to printed hex numbers to make
4964169689Skan	output match source code better.
4965169689Skan
4966169689Skan2003-03-28  Mark Mitchell  <mark@codesourcery.com>
4967169689Skan
4968169689Skan	PR c++/10218
4969169689Skan	* decl.c (grokfndecl): Return NULL_TREE for bogus out-of-class
4970169689Skan	definitions.
4971169689Skan
4972169689Skan	* decl2.c (generate_ctor_or_dtor_function): Tolerate a
4973169689Skan	non-existant ssdf_decls array.
4974169689Skan	(finish_file): Call generator_ctor_or_dtor_function when there are
4975169689Skan	static constructors or destructors and no other static
4976169689Skan	initializations.
4977169689Skan
4978169689Skan2003-03-28  Nathan Sidwell  <nathan@codesourcery.com>
4979169689Skan
4980169689Skan	PR c++/10047
4981169689Skan	* decl2.c (finish_file): Don't warn about explicitly instantiated
4982169689Skan	inline decls.
4983169689Skan
4984169689Skan2003-03-27  Nathan Sidwell  <nathan@codesourcery.com>
4985169689Skan
4986169689Skan	PR c++/10224
4987169689Skan	* pt.c (lookup_template_class): Only check instantiated args if
4988169689Skan	they do not contain template parameters.
4989169689Skan
4990169689Skan2003-03-27  Nathan Sidwell  <nathan@codesourcery.com>
4991169689Skan
4992169689Skan	PR c++/10158
4993169689Skan	* parser.c (cp_parser_function_definition): Set
4994169689Skan	DECL_INITIALIZED_IN_CLASS for members.
4995169689Skan	* pt.c (instantiate_decl): Only reduce the template args for
4996169689Skan	friends that are not defined in class.
4997169689Skan
4998169689Skan2003-03-25  Jason Merrill  <jason@redhat.com>
4999169689Skan
5000169689Skan	* call.c (print_z_candidate): Change name of first arg to msgid.
5001169689Skan	(joust): Add comment for translators.
5002169689Skan
5003169689Skan2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>
5004169689Skan
5005169689Skan	PR c++/9898, PR c++/383, DR 322
5006169689Skan	* pt.c (maybe_adjust_types_for_deduction) <DEDUCE_CONV>: Look
5007169689Skan	through reference types on both PARM and ARG.
5008169689Skan
5009169689Skan2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>
5010169689Skan
5011169689Skan	PR c++/10119
5012169689Skan	* error.c (dump_expr) <BASELINK>: Use dump_expr.
5013169689Skan	* pt.c (maybe_fold_nontype_args): New function.
5014169689Skan	(tsubst_copy) <SCOPE_REF>: Subst any template_id args.
5015169689Skan	<TEMPLATE_ID_EXPR>: Break out folding code, call it.
5016169689Skan	(tsubst_copy_and_build) <TEMPLATE_ID_EXPR>: Call
5017169689Skan	maybe_fold_nontype_args.
5018169689Skan
5019169689Skan2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>
5020169689Skan
5021169689Skan	PR c++/10026
5022169689Skan	* decl2.c (arg_assoc_type) <ERROR_MARK>: Don't die.
5023169689Skan
5024169689Skan2003-03-23  Mark Mitchell  <mark@codesourcery.com>
5025169689Skan
5026169689Skan	PR c++/7086
5027169689Skan	* typeck.c (cxx_mark_addressable):  Adjust call to
5028169689Skan	gen_mem_addressof or put_var_into_stack.
5029169689Skan
5030169689Skan2003-03-22  Nathan Sidwell  <nathan@codesourcery.com>
5031169689Skan
5032169689Skan	PR c++/9978, c++/9708
5033169689Skan	* cp-tree.h (instantiate_template): Add tsubst_flags parameter.
5034169689Skan	* call.c (add_template_candidate_real): Adjust
5035169689Skan	instantiate_template call.
5036169689Skan	* class.c (resolve_address_of_overloaded_function): Likewise.
5037169689Skan	* decl.c (build_enumerator): Set TREE_CONSTANT.
5038169689Skan	* pt.c (check_instantiated_args): New.
5039169689Skan	(push_inline_template_parms_recursive): Set TREE_CONSTANT,
5040169689Skan	TREE_READONLY.
5041169689Skan	(build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY.
5042169689Skan	(reduce_template_parm_level): Likewise.
5043169689Skan	(process_template_parm): Likewise.
5044169689Skan	(check_explicit_specialization): Adjust instantiate_template call.
5045169689Skan	(convert_template_argument): Don't check non-type argument here.
5046169689Skan	(lookup_template_class): Check them here.
5047169689Skan	(tsubst_friend_function): Adjust instantiate_template call.
5048169689Skan	(instantiate_template): Add tsubst_flags parameter, use it. Check
5049169689Skan	instantiated args.
5050169689Skan
5051169689Skan2003-03-21  Zack Weinberg  <zack@codesourcery.com>
5052169689Skan
5053169689Skan	* decl.c: Update calls to shadow_warning.
5054169689Skan
5055169689Skan2003-03-21  Nathan Sidwell  <nathan@codesourcery.com>
5056169689Skan
5057169689Skan	PR c++/9898
5058169689Skan	* error.c (dump_decl) [CONST_DECL]: Print '<enumerator>'.
5059169689Skan	(dump_expr) [CONSTRUCTOR]: Print default ctor as a function call.
5060169689Skan
5061169689Skan2003-03-20  Mark Mitchell  <mark@codesourcery.com>
5062169689Skan
5063169689Skan	* cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
5064169689Skan	friends.
5065169689Skan	* cp/pt.c (instantiate_class_template): Fix formatting.
5066169689Skan
5067169689Skan2003-03-14  Matt Austern  <austern@apple.com>
5068169689Skan
5069169689Skan	* cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray.
5070169689Skan	(unemitted_tinfo_decl_p): Remove.
5071169689Skan	(emit_tinfo_decl): Change declaration to remove unused parameter.
5072169689Skan	* decl2.c (finish_file): Change tinfo emission to loop through
5073169689Skan	unemitted_tinfo_decls array instead of looping through all decls.
5074169689Skan	* rtti.c (unemitted_tinfo_decl_p): Declare as static, remove
5075169689Skan	unused second parameter.
5076169689Skan	(init_rtti_processing): initialize unemitted_tinfo_decls varray.
5077169689Skan	(get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls.
5078169689Skan	(emit_tinfo_decl): remove unused second parameter, add assertion
5079169689Skan	that decl hasn't already been emitted.
5080169689Skan
5081169689Skan2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
5082169689Skan
5083169689Skan	* dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return
5084169689Skan	type from 'int' to 'bool'. Replace 0 and 1 with true and false in
5085169689Skan	return statements.
5086169689Skan
5087169689Skan2003-03-19  Jason Merrill  <jason@redhat.com>
5088169689Skan
5089169689Skan	PR c++/8316, c++/9315, c++/10136
5090169689Skan	* call.c (print_z_candidate): Split out from...
5091169689Skan	(print_z_candidiates): ...here.
5092169689Skan	(joust): Use it.
5093169689Skan
5094169689Skan2003-03-17  Roger Sayle  <roger@eyesopen.com>
5095169689Skan
5096169689Skan	PR c++/10031
5097169689Skan	* decl.c (duplicate_decls): Use the new type when prototyping
5098169689Skan	anticipated decls, even when the types match.  This defines the
5099169689Skan	exception list for the built-in function.
5100169689Skan
5101169689Skan2003-03-17  Jason Merrill  <jason@redhat.com>
5102169689Skan
5103169689Skan	PR c++/10091
5104169689Skan	* typeck.c (build_class_member_access_expr): Compare
5105169689Skan	TYPE_MAIN_VARIANTs.
5106169689Skan
5107169689Skan2003-03-17  Mark Mitchell  <mark@codesourcery.com>
5108169689Skan
5109169689Skan	PR c++/9639
5110169689Skan	* parser.c (cp_parser_declarator_id): Clear parser->scope.
5111169689Skan
5112169689Skan2003-03-16  Jason Merrill  <jason@redhat.com>
5113169689Skan
5114169689Skan	PR c++/9993
5115169689Skan	* decl.c (finish_function): Only allow the NRVO to use variables
5116169689Skan	declared at function scope.
5117169689Skan
5118169689Skan2003-03-17  Andreas Jaeger  <aj@suse.de>
5119169689Skan
5120169689Skan	* Make-lang.in (cp/TAGS): Remove.
5121169689Skan
5122169689Skan2003-03-16  Nathan Sidwell  <nathan@codesourcery.com>
5123169689Skan
5124169689Skan	PR c++/9629
5125169689Skan	* cp-tree.h (struct language_function): Add in_base_initializer.
5126169689Skan	(in_base_initializer): define it.
5127169689Skan	(expand_member_init): Remove INIT param.
5128169689Skan	* init.c (expand_member_init): Remove INIT param, return the member.
5129169689Skan	(emit_mem_initializers): Set in_base_initializer.
5130169689Skan	* class.c (build_base_path): Check in_base_initializer.
5131169689Skan	* parser.c (cp_parser_mem_initializer): Set in_base_initializer.
5132169689Skan	* pt.c (tsubst_initializer_list): Likewise.
5133169689Skan
5134169689Skan2003-03-16   Gabriel Dos Reis <gdr@integrable-solutions.net>
5135169689Skan
5136169689Skan	* decl.c (binding_for_name): Fix initialization thinko.
5137169689Skan
5138169689Skan2003-03-15  Gabriel Dos Reis <gdr@integrable-solutions.net>
5139169689Skan
5140169689Skan	Compile-time improvement: 2/n.
5141169689Skan	* cp-tree.h (struct cxx_binding): New datatype;
5142169689Skan	(struct lang_identifier): Use it.
5143169689Skan	(LOCAL_BINDING_P): Adjust definition.
5144169689Skan	(INHERITED_VALUE_BINDING_P): Likewise.
5145169689Skan	(BINDING_SCOPE): Likewise.
5146169689Skan	(BINDING_HAS_LEVEL_P): Likewise.
5147169689Skan	(BINDING_VALUE): Likewise.
5148169689Skan	(BINDING_TYPE): Likewise.
5149169689Skan	(IDENTIFIER_VALUE): Likewise.
5150169689Skan	(struct tree_binding): Remove.
5151169689Skan	(TS_CP_BINDING): Likewise.
5152169689Skan	((union lang_tree_node): Remove field "binding".
5153169689Skan	(cxx_binding_clear): New macro.
5154169689Skan	(binding_for_name): Adjust return type.
5155169689Skan	(qualified_lookup_using_namespace): Adjust prototype.
5156169689Skan	(lookup_using_namespace): Adjust prototype.
5157169689Skan	(cxx_scope_find_binding_for_name): Declare.
5158169689Skan	* cp-tree.def: Remove CPLUS_BINDING definition.
5159169689Skan	* decl.c (push_binding): Adjust local variable type.
5160169689Skan	(add_binding): Likewise.
5161169689Skan	(push_class_binding): Likewise.
5162169689Skan	(pop_binding): Likewise.
5163169689Skan	(poplevel): Likewise.
5164169689Skan	(poplevel_class): Likewise.
5165169689Skan	(free_bindings):  Adjust type.
5166169689Skan	(find_binding): Adjust return type, add a third parameter. Remove
5167169689Skan	non-useful assertion now that we use static typing.
5168169689Skan	(cxx_scope_find_binding_for_name): New function.
5169169689Skan	(binding_for_name): Use it.  Adjust local variable type. Simplify.
5170169689Skan	(namespace_binding):  Simplify.
5171169689Skan	(set_namespace_binding): Likewise.
5172169689Skan	(set_identifier_type_value_with_scope): Adjust local variable type.
5173169689Skan	(lookup_tag): Don't type-abuse of local variable 'old'.
5174169689Skan	(lookup_namespace_name): Likewise.  Allocate binding on stack.
5175169689Skan	(select_decl): Adjust prototype.
5176169689Skan	(unqualified_namespace_lookup):  Allocate binding on stack.
5177169689Skan	Don't type-abuse of local variable 'val'.
5178169689Skan	(lookup_name_real): Likewise.
5179169689Skan	(maybe_inject_for_scope_var): Adjust local variable type.
5180169689Skan	(cp_tree_node_structure): Remove CPLUS_BINDING case label.
5181169689Skan	(namespace_binding): Adjust logic, simplify.
5182169689Skan	(BINDING_LEVEL): Adjust definition.
5183169689Skan	(push_class_level_binding): Adjust local variable type.
5184169689Skan	(struct cxx_saved_binding): Adjust field 'binding' type.
5185169689Skan	* decl2.c (ambiguous_decl): Adjust prototype.
5186169689Skan	(lookup_using_namespace): Adjust local variable type.
5187169689Skan	(qualified_lookup_using_namespace): Catch type error and correct
5188169689Skan	ensueing logic error.
5189169689Skan	(do_nonmember_using_decl): Adjust local variable type.  Allocate
5190169689Skan	temporary cxx_binding on stack.
5191169689Skan	(do_toplevel_using_decl): Adjust local variable type.
5192169689Skan	* ptree.c (cxx_print_cxx_binding): New function.
5193169689Skan	(cxx_print_identifier): Use it.
5194169689Skan	(cxx_print_xnode): Delete CPLUS_BINDING case label.
5195169689Skan
5196169689Skan2003-03-15  Roger Sayle  <roger@eyesopen.com>
5197169689Skan
5198169689Skan	* tree.c (count_functions): Fix whitespace.
5199169689Skan
5200169689Skan2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5201169689Skan
5202169689Skan	* Make-lang.in: Update.
5203169689Skan
5204169689Skan2003-03-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5205169689Skan
5206169689Skan	PR c++/6440
5207169689Skan	* pt.c (maybe_process_partial_specialization): Handle
5208169689Skan	member class template when enclosing class template is
5209169689Skan	explicit specialized.
5210169689Skan	(most_general_template): Stop looking when DECL is already
5211169689Skan	specialized.
5212169689Skan
5213169689Skan2003-03-13  Jason Merrill  <jason@redhat.com>
5214169689Skan
5215169689Skan	PR c++/9420
5216169689Skan	* search.c (lookup_conversions): Call complete_type here.
5217169689Skan	* call.c (implicit_conversion): Not here.
5218169689Skan
5219169689Skan2003-03-13  Mark Mitchell  <mark@codesourcery.com>
5220169689Skan
5221169689Skan	* decl2.c (do_nonmember_using_decl): Correct handling of
5222169689Skan	simultaneous type/non-type bindings.
5223169689Skan
5224169689Skan	* call.c (initialize_reference): Remove bogus assertion.
5225169689Skan	* decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.
5226169689Skan
5227169689Skan2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
5228169689Skan
5229169689Skan	PR c++/7050
5230169689Skan	* expr.c (cxx_expand_expr): Return const0_rtx for throw
5231169689Skan	expressions.
5232169689Skan
5233169689Skan2003-03-11  Mark Mitchell  <mark@codesourcery.com>
5234169689Skan
5235169689Skan	PR c++/9474
5236169689Skan	* decl2.c (do_nonmember_using_decl): Do not call duplicate decls
5237169689Skan	to merge old and new declarations.
5238169689Skan
5239169689Skan2003-03-12  Alexandre Oliva  <aoliva@redhat.com>
5240169689Skan
5241169689Skan	* g++.1: Remove.
5242169689Skan	* Make-lang.in (c++.generated-manpages): Build cp/g++.1.
5243169689Skan	(cp/g++.1): Build it from scratch in the build tree.
5244169689Skan	(c++.install-man): Depend on it.  Install it from the build tree.
5245169689Skan	(c++.mostlyclean): Clean it.
5246169689Skan
5247169689Skan2003-03-11  Mark Mitchell  <mark@codesourcery.com>
5248169689Skan
5249169689Skan	PR c++/9474
5250169689Skan	* decl2.c (do_nonmember_using_decl): Do not call duplicate decls
5251169689Skan	to merge old and new declarations.
5252169689Skan
5253169689Skan	PR c++/9924
5254169689Skan	* decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
5255169689Skan
5256169689Skan2003-03-11  Jason Merrill  <jason@redhat.com>
5257169689Skan
5258169689Skan	PR c++/9820
5259169689Skan	* search.c (lookup_member): Fix handling of functions in a class
5260169689Skan	being defined.
5261169689Skan
5262169689Skan2003-03-11  Mark Mitchell  <mark@codesourcery.com>
5263169689Skan
5264169689Skan	PR c++/8700
5265169689Skan	* call.c (convert_class_to_reference): Adjust usage of
5266169689Skan	splice_viable.
5267169689Skan	(any_viable): Remove.
5268169689Skan	(splice_viable): Combine with any_viable.
5269169689Skan	(print_z_candidates): Avoid printing duplicates.
5270169689Skan	(build_user_type_conversion_1): Adjust usage of splice_viable.
5271169689Skan	(build_new_function_call): Likewise.
5272169689Skan	(build_operator_new_call): Likewise.
5273169689Skan	(build_object_call): Likewise.
5274169689Skan	(build_conditional_expr): Likewise.
5275169689Skan	(build_new_op): Likewise.
5276169689Skan	(build_new_method_call): Likewise.
5277169689Skan	(joust): Remove spurious comment.
5278169689Skan	* cp-tree.h (DECL_FRIENDLIST): Correct documentation.
5279169689Skan	* decl2.c (arg_assoc_class): Simplify.
5280169689Skan	* friend.c (add_friend): Likewise.
5281169689Skan
5282169689Skan2003-03-11  Jason Merrill  <jason@redhat.com>
5283169689Skan
5284169689Skan	PR c++/8660
5285169689Skan	* decl2.c (check_classfn): A member template only matches a
5286169689Skan	member template.
5287169689Skan
5288169689Skan2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
5289169689Skan
5290169689Skan	* Make-lang.in (CXX_C_OBJS): Update.
5291169689Skan	* lang-specs.h: Don't define __GNUG__ here.
5292169689Skan
5293169689Skan2003-03-10  Mark Mitchell  <mark@codesourcery.com>
5294169689Skan
5295169689Skan	* call.c (perform_overload_resolution): New function.
5296169689Skan	(build_new_function_call): Use it.
5297169689Skan	(build_operator_new_call): Likewise.
5298169689Skan	(add_candidates): Add explicit_targs and template_only parameters.
5299169689Skan	(build_new_op): Adjust accordingly.
5300169689Skan	* cp-tree.h (build_operator_new_call): New function.
5301169689Skan	(build_function_call_real): Remove.
5302169689Skan	(build_function_call_maybe): Likewise.
5303169689Skan	* init.c (build_new_1): Use build_operator_new_call.
5304169689Skan	* typeck.c (build_function_call_real): Rename to ...
5305169689Skan	(build_function_call): ... this.
5306169689Skan
5307169689Skan2003-03-10  Devang Patel  <dpatel@apple.com>
5308169689Skan
5309169689Skan	PR c++/9394
5310169689Skan	* g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWTCH_TAKES_ARG.
5311169689Skan
5312169689Skan2003-03-10  Jason Merrill  <jason@redhat.com>
5313169689Skan
5314169689Skan	PR c++/9798
5315169689Skan	* decl.c (push_using_directive): Push before recursing.
5316169689Skan
5317169689Skan	PR c++/9868, c++/9524
5318169689Skan	* call.c (resolve_scoped_fn_name): Handle the case of a function
5319169689Skan	pointer member.
5320169689Skan
5321169689Skan	* decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
5322169689Skan	argument in the pointer-to-member case.
5323169689Skan
5324169689Skan2003-03-09  Mark Mitchell  <mark@codesourcery.com>
5325169689Skan
5326169689Skan	PR c++/9373
5327169689Skan	* cp-lang.c (cxx_get_alias_set): Use alias set zero for
5328169689Skan	pointers to member functions.
5329169689Skan
5330169689Skan	PR c++/8534
5331169689Skan	* decl.c (build_ptrmemfunc_type): Do not allow default arguments
5332169689Skan	in pointer-to-member-function types.
5333169689Skan
5334169689Skan2003-03-10  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5335169689Skan
5336169689Skan	* expr.c (cplus_expand_constant): Use C90 prototype style.
5337169689Skan	(cxx_expand_expr): Likewise.
5338169689Skan
5339169689Skan2003-03-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5340169689Skan
5341169689Skan	PR c++/9970
5342169689Skan	* decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
5343169689Skan	functions.
5344169689Skan
5345169689Skan2003-03-08  Geoffrey Keating  <geoffk@apple.com>
5346169689Skan
5347169689Skan	* lang-specs.h (c++-header): Change .pch to .gch.
5348169689Skan
5349169689Skan2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
5350169689Skan
5351169689Skan	* cp-tree.h (cxx_init): Update prototype.
5352169689Skan	* lex.c (cxx_init): Similarly.
5353169689Skan
5354169689Skan2003-03-08  Mark Mitchell  <mark@codesourcery.com>
5355169689Skan
5356169689Skan	PR c++/9823
5357169689Skan	* cp-tree.h (begin_mem_initializers): Remove.
5358169689Skan	* parser.c (cp_parser_mem_initializer_list): Inline it here.
5359169689Skan	Do not call finish_mem_initializers if not in a constructor.
5360169689Skan	(cp_parser_class_head): Fix typo in error message.
5361169689Skan	* semantics.c (begin_mem_initializers): Remove.
5362169689Skan	* testsuite/g++.dg/parser/constructor1.C: New test.
5363169689Skan
5364169689Skan	PR c++/9809
5365169689Skan	* call.c (add_function_candidate): Skip builtin fuctions that have
5366169689Skan	not yet been declared.
5367169689Skan
5368169689Skan	PR c++/9982
5369169689Skan	* init.c (build_new_1): Correct logic for determining whether or
5370169689Skan	not to use an array cookie.
5371169689Skan
5372169689Skan	PR c++/9524
5373169689Skan	* parser.c (cp_parser_postfix_expression): Call
5374169689Skan	finish_non_static_data_member, even when processing_template_decl.
5375169689Skan
5376169689Skan	PR c++/9912
5377169689Skan	* cp-tree.h (is_ancestor): New function.
5378169689Skan	(handle_class_head): Change prototype.
5379169689Skan	* decl2.c (is_namespace_ancestor): Rename to ...
5380169689Skan	(namespace_anecestor): ... this.
5381169689Skan	(set_decl_namespace): Adjust accordingly.
5382169689Skan	(handle_class_head): Remove unnecessary parameters.
5383169689Skan	* parser.c (cp_parser_class_head): Check that
5384169689Skan	nested-name-specifiers are used appropriately.
5385169689Skan
5386169689Skan2003-03-07  Mark Mitchell  <mark@codesourcery.com>
5387169689Skan
5388169689Skan	* call.c (reference_binding): Remove REF_IS_VAR parameter.
5389169689Skan	(implicit_conversion): Adjust call to reference_binding.
5390169689Skan	(make_temporary_var_for_ref_to_type): Add TYPE parameter.
5391169689Skan	(initialize_reference): Adjust handling for references bound to
5392169689Skan	rvalues.
5393169689Skan	* cp-tree.h (make_temporary_var_for_ref_to_temp): Change
5394169689Skan	prototype.
5395169689Skan	(real_non_cast_lvalue_p): New method.
5396169689Skan	* cvt.c (build_up_reference): Adjust use of
5397169689Skan	make_temporary_var_for_ref_to_temp.
5398169689Skan	* tree.c (real_non_cast_lvalue_p): New method.
5399169689Skan
5400169689Skan2003-03-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5401169689Skan
5402169689Skan	* except.c (init_exception_processing): Use C90 prototype style.
5403169689Skan	(cp_protect_cleanup_actions): Likewise.
5404169689Skan	(prepare_eh_type): Likewise.
5405169689Skan	(build_eh_type_type): Likewise.
5406169689Skan	(build_exc_ptr): Likewise.
5407169689Skan	(do_begin_catch): Likewise.
5408169689Skan	(dtor_nothrow): Likewise.
5409169689Skan	(do_end_catch): Likewise.
5410169689Skan	(push_eh_cleanup): Likewise.
5411169689Skan	(decl_is_java_type): Likewise.
5412169689Skan	(choose_personality_routine): Likewise.
5413169689Skan	(initialize_handler_parm): Likewise.
5414169689Skan	(expand_start_catch_block): Likewise.
5415169689Skan	(expand_end_catch_block): Likewise.
5416169689Skan	(begin_eh_spec_block): Likewise.
5417169689Skan	(finish_eh_spec_block): Likewise.
5418169689Skan	(do_allocate_exception): Likewise.
5419169689Skan	(do_free_exception): Likewise.
5420169689Skan	(wrap_cleanups_r): Likewise.
5421169689Skan	(stabilize_throw_expr): Likewise.
5422169689Skan	(build_throw): Likewise.
5423169689Skan	(complete_ptr_ref_or_void_ptr_p): Likewise.
5424169689Skan	(is_admissible_throw_operand): Likewise.
5425169689Skan	(nothrow_libfn_p): Likewise.
5426169689Skan	(can_convert_eh): Likewise.
5427169689Skan	(check_handlers_1): Likewise.
5428169689Skan	(check_handlers): Likewise.
5429169689Skan
5430169689Skan2003-03-06  Mark Mitchell  <mark@codesourcery.com>
5431169689Skan
5432169689Skan	* call.c (merge_conversion_sequences): New function.
5433169689Skan	(build_conv): Set ICS_USER_FLAG for USER_CONVs.
5434169689Skan	(convert_class_to_reference): Correct handling of second
5435169689Skan	standard conversion sequence in a user-defined conversion
5436169689Skan	sequence.
5437169689Skan	(build_user_type_conversion_1): Use merge_conversion_sequences.
5438169689Skan	* cp-tree.def: Add comments for CONV nodes.
5439169689Skan	* rtti.c (get_tinfo_decl): Use build_address/build_nop.
5440169689Skan
5441169689Skan2003-03-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5442169689Skan
5443169689Skan	* error.c (init_error): Use C90 prototype style.
5444169689Skan	(dump_scope): Likewise.
5445169689Skan	(dump_qualifiers): Likewise.
5446169689Skan	(dump_template_argument): Likewise.
5447169689Skan	(dump_template_argument_list): Likewise.
5448169689Skan	(dump_template_parameter): Likewise.
5449169689Skan	(dump_template_bindings): Likewise.
5450169689Skan	(dump_type): Likewise.
5451169689Skan	(dump_typename): Likewise.
5452169689Skan	(class_key_or_enum): Likewise.
5453169689Skan	(dump_aggr_type): Likewise.
5454169689Skan	(dump_type_prefix): Likewise.
5455169689Skan	(dump_type_suffix): Likewise.
5456169689Skan	(dump_global_iord): Likewise.
5457169689Skan	(dump_simple_decl): Likewise.
5458169689Skan	(dump_decl): Likewise.
5459169689Skan	(dump_template_decl): Likewise.
5460169689Skan	(dump_function_decl): Likewise.
5461169689Skan	(dump_parameters): Likewise.
5462169689Skan	(dump_exception_spec): Likewise.
5463169689Skan	(dump_function_name): Likewise.
5464169689Skan	(dump_template_parms): Likewise.
5465169689Skan	(dump_char): Likewise.
5466169689Skan	(dump_expr_list): Likewise.
5467169689Skan	(dump_expr): Likewise.
5468169689Skan	(dump_binary_op): Likewise.
5469169689Skan	(dump_unary_op): Likewise.
5470169689Skan	(type_as_string): Likewise.
5471169689Skan	(expr_as_string): Likewise.
5472169689Skan	(decl_as_string): Likewise.
5473169689Skan	(context_as_string): Likewise.
5474169689Skan	(lang_decl_name): Likewise.
5475169689Skan	(cp_file_of): Likewise.
5476169689Skan	(cp_line_of): Likewise.
5477169689Skan	(decl_to_string): Likewise.
5478169689Skan	(expr_to_string): Likewise.
5479169689Skan	(fndecl_to_string): Likewise.
5480169689Skan	(code_to_string): Likewise.
5481169689Skan	(language_to_string): Likewise.
5482169689Skan	(parm_to_string): Likewise.
5483169689Skan	(op_to_string): Likewise.
5484169689Skan	(type_to_string): Likewise.
5485169689Skan	(assop_to_string): Likewise.
5486169689Skan	(args_to_string): Likewise.
5487169689Skan	(cv_to_string): Likewise.
5488169689Skan	(cxx_print_error_function): Likewise.
5489169689Skan	(cp_diagnostic_starter): Likewise.
5490169689Skan	(cp_diagnostic_finalizer): Likewise.
5491169689Skan	(cp_print_error_function): Likewise.
5492169689Skan	(function_category): Likewise.
5493169689Skan	(print_instantiation_full_context): Likewise.
5494169689Skan	(print_instantiation_partial_context): Likewise.
5495169689Skan	(maybe_print_instantiation_context): Likewise.
5496169689Skan	(print_instantiation_context): Likewise.
5497169689Skan	(cp_printer): Likewise.
5498169689Skan	(print_integer): Likewise.
5499169689Skan	(print_non_consecutive_character): Likewise.
5500169689Skan	(locate_error): Likewise.
5501169689Skan
5502169689Skan2003-03-06  Mark Mitchell  <mark@codesourcery.com>
5503169689Skan
5504169689Skan	PR c++/9965
5505169689Skan	* call.c (reference_binding): Add ref_is_var parameter.
5506169689Skan	(implicit_conversion): Adjust call to reference_binding.
5507169689Skan	(initialize_reference): Likewise.
5508169689Skan
5509169689Skan	PR c++/9400
5510169689Skan	* decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
5511169689Skan	PARM_DECLs.
5512169689Skan
5513169689Skan	PR c++/9791
5514169689Skan	* class.c (get_basefndecls): Use lookup_fnfields_1.
5515169689Skan
5516169689Skan2003-03-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5517169689Skan
5518169689Skan	PR c++/9188
5519169689Skan	* parser.c (cp_parser_type_parameter): Remove redundant `expect'
5520169689Skan	in error message.
5521169689Skan	(cp_parser_single_declaration): Likewise.
5522169689Skan
5523169689Skan2003-03-05  Jason Merrill  <jason@redhat.com>
5524169689Skan
5525169689Skan	PR c++/9440
5526169689Skan	* call.c (build_conditional_expr): Use convert rather than an
5527169689Skan	explicit NOP_EXPR.
5528169689Skan
5529169689Skan2003-03-02  Matt Austern  <austern@apple.com>
5530169689Skan
5531169689Skan	* decl.c (cp_binding_level): Add static_decls varray member.
5532169689Skan	(add_decl_to_level): Add static/inline namespace scope
5533169689Skan	declarations to static_decls array.
5534169689Skan	(wrapup_global_for_namespace): Pass static_decls only, instead of
5535169689Skan	all decls, to wrapup_global_declarations/check_global_declarations.
5536169689Skan	(push_namespace): Initialize static_decls for ordinary namespaces.
5537169689Skan	(cxx_init_decl_processing): Initialize static_decls for global
5538169689Skan	namespace.
5539169689Skan
5540169689Skan2003-03-05  Mark Mitchell  <mark@codesourcery.com>
5541169689Skan
5542169689Skan	* class.c (end_of_class): Correct thinko.
5543169689Skan
5544169689Skan2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
5545169689Skan
5546169689Skan	* config-lang.in: Replace ${libstdcxx_version} by its value.
5547169689Skan
5548169689Skan2003-03-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
5549169689Skan
5550169689Skan	* cp-tree.h (cxx_saved_binding): Declare.
5551169689Skan	(struct saved_scope): Adjust type of field 'old_binding'.
5552169689Skan	* decl.c (cxx_saved_binding_make): New macro.
5553169689Skan	(struct cxx_saved_binding): Define.
5554169689Skan	(store_bindings): Adjust prototype.  Use cxx_saved_binding to save
5555169689Skan	C++ bindings.
5556169689Skan	(maybe_push_to_top_level): Adjust local variable type.
5557169689Skan	(pop_from_top_level): Likewise.
5558169689Skan
5559169689Skan2003-03-04  Tom Tromey  <tromey@redhat.com>
5560169689Skan
5561169689Skan	* Make-lang.in (c++.tags): New target.
5562169689Skan
5563169689Skan2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
5564169689Skan
5565169689Skan	* Make-lang.in: Update.
5566169689Skan
5567169689Skan2003-03-03  Jason Merrill  <jason@redhat.com>
5568169689Skan
5569169689Skan	* decl.c (finish_enum): Do set the type in a template. Simplify.
5570169689Skan	* pt.c (tsubst_enum, tsubst_copy): Revert last patch.
5571169689Skan
5572169689Skan2003-03-03  Mark Mitchell  <mark@codesourcery.com>
5573169689Skan
5574169689Skan	PR c++/9878
5575169689Skan	* call.c (convert_class_to_reference): Correct conversion
5576169689Skan	sequences.
5577169689Skan	(reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
5578169689Skan	(implicit_conversion): Adjust call to reference_binding.
5579169689Skan	(add_candidate): Change type of candidates parameter.
5580169689Skan	(add_function_candidate): Likewise.
5581169689Skan	(add_conv_candidate): Likewise.
5582169689Skan	(build_builtin_candidate): Likewise.
5583169689Skan	(add_builtin_candidate): Likewise.
5584169689Skan	(add_builtin_candidates): Likewise.
5585169689Skan	(add_template_candidate_real): Likewise.
5586169689Skan	(add_template_candidate): Likewise.
5587169689Skan	(add_template_conv_candidate): Likewise.
5588169689Skan	(build_user_type_conversion_1): Adjust accordingly.
5589169689Skan	(build_object_call): Likewise.
5590169689Skan	(build_conditional_expr): Likewise.
5591169689Skan	(add_candidates): Likewise.
5592169689Skan	(build_new_op): Likewise.
5593169689Skan	(convert_like_real): Use USER_CONV_CAND.  Use build_nop.
5594169689Skan	(build_new_method_call): Adjust calls to add_function_candidate.
5595169689Skan	(make_temporary_var_for_ref_to_temp): New function.
5596169689Skan	(initialize_reference): Add decl parameter.
5597169689Skan	* class.c (build_rtti_vtbl_entries): Use build_address and
5598169689Skan	build_nop.
5599169689Skan	* cp-tree.h (initialize_reference): Change prototype.
5600169689Skan	(make_temporary_var_for_ref_to_temp): New function.
5601169689Skan	(build_type_conversion): Change prototype.
5602169689Skan	(build_address): New function.
5603169689Skan	(build_nop): Likewise.
5604169689Skan	* cvt.c (cp_convert_to_pointer): Adjust call to
5605169689Skan	build_type_conversion.  Avoid indicating redundant NOP_EXPRs.
5606169689Skan	Use build_nop.
5607169689Skan	(convert_to_pointer_force): Use build_nop.
5608169689Skan	(build_up_reference): Use make_temporary_var_for_ref_to_temp.
5609169689Skan	(convert_to_reference): Adjust call to build_type_conversion.
5610169689Skan	(ocp_convert): Likewise.
5611169689Skan	(build_type_conversion): Remove for_sure parameter.
5612169689Skan	* decl.c (grok_reference_init): Use initialize_reference.
5613169689Skan	* typeck.c (build_address): New function.
5614169689Skan	(build_nop): Likewise.
5615169689Skan	(build_unary_op): Use them.
5616169689Skan	(build_ptrmemfunc): Tidy slightly.
5617169689Skan	(convert_for_initialization): Adjust call to
5618169689Skan	initialize_reference.
5619169689Skan	* typeck2.c (store_init_value): Remove #if 0'd code.
5620169689Skan
5621169689Skan2003-03-03  Jason Merrill  <jason@redhat.com>
5622169689Skan
5623169689Skan	* decl.c (start_function): Clear DECL_NUM_STMTS.
5624169689Skan
5625169689Skan	* class.c (get_vtable_decl): Use vtbl_type_node.
5626169689Skan	(build_primary_vtable): Check for it.
5627169689Skan
5628169689Skan2003-03-02  Aldy Hernandez  <aldyh@redhat.com>
5629169689Skan
5630169689Skan	* decl.c (check_initializer): Check for vector_opaque_p.
5631169689Skan
5632169689Skan2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
5633169689Skan
5634169689Skan	* lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
5635169689Skan	  invoke an external cpp during compilation.
5636169689Skan
5637169689Skan2003-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5638169689Skan
5639169689Skan	* decl.c (duplicate_decls): Convert use of warning_with_decl() to
5640169689Skan	that of warning().
5641169689Skan	(start_decl): Likewise.
5642169689Skan	(start_function): Likewise.
5643169689Skan
5644169689Skan2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
5645169689Skan
5646169689Skan	* Make-lang.in (CXX_C_OBJS): Update.
5647169689Skan
5648169689Skan2003-02-28  Mark Mitchell  <mark@codesourcery.com>
5649169689Skan
5650169689Skan	PR c++/9892
5651169689Skan	* pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
5652169689Skan	instantiating it.
5653169689Skan
5654169689Skan2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
5655169689Skan
5656169689Skan	* parser.c (cp_parser_init_declarator): Revert opaque
5657169689Skan	vector_opaque_p change.
5658169689Skan	Do not include target.h.
5659169689Skan
5660169689Skan2003-02-28  Mark Mitchell  <mark@codesourcery.com>
5661169689Skan
5662169689Skan	PR c++/9879
5663169689Skan	* cp-tree.h (build_zero_init): Add parameter.
5664169689Skan	* decl.c (cp_finish_decl): Adjust call.
5665169689Skan	* init.c (build_zero_init): Add nelts parameter.  Adjust recursive
5666169689Skan	calls.
5667169689Skan	(build_default_init): Add nelts parameter.  Adjust calls to
5668169689Skan	build_zero_init.
5669169689Skan	(build_new_1): Adjust call to build_default_init.
5670169689Skan	* typeck2.c (process_init_constructor): Adjust call to build_zero_init.
5671169689Skan
5672169689Skan2003-02-26  Devang Patel  <dpatel@apple.com>
5673169689Skan
5674169689Skan	* decl.c (finish_enum): Merge two 'for' loops. Copy value node if
5675169689Skan	required.  Postpone enum setting for template decls.
5676169689Skan	(build_enumerator): Delay copying value node until finish_enum
5677169689Skan	(). Remove #if 0'ed code.
5678169689Skan	* pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
5679169689Skan	(tsubst_copy): Add check for enum type.
5680169689Skan
5681169689Skan2003-02-25  Mark Mitchell  <mark@codesourcery.com>
5682169689Skan
5683169689Skan	PR c++/9683
5684169689Skan	* decl2.c (prune_vars_needing_no_initialization): Do not throw
5685169689Skan	away initializations for DECL_EXTERNAL VAR_DECLs.
5686169689Skan	(finish_file): Adjust accordingly.
5687169689Skan	* pt.c (instantiate_decl): Do not defer VAR_DECLs.
5688169689Skan
5689169689Skan2003-02-24 Gabriel Dos Reis  <gdr@integrable-solutions.net>
5690169689Skan
5691169689Skan	* decl.c (add_binding): Time TV_NAME_LOOKUP.
5692169689Skan	(push_class_binding): Likewise.
5693169689Skan	(set_namespace_binding): Likewise.
5694169689Skan
5695169689Skan2003-02-24  Mark Mitchell  <mark@codesourcery.com>
5696169689Skan
5697169689Skan	PR c++/9836
5698169689Skan	* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from
5699169689Skan	specializations back to the main template.
5700169689Skan	* parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.
5701169689Skan	* pt.c (resolve_typename_type): Likewise.
5702169689Skan
5703169689Skan2003-02-24  Jeffrey D. Oldham  <oldham@codesourcery.com>
5704169689Skan
5705169689Skan	PR c++/9778
5706169689Skan	* pt.c (tsubst_copy_and_build): For a templated function inside a
5707169689Skan	scope, process template arguments.
5708169689Skan
5709169689Skan2003-02-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5710169689Skan
5711169689Skan	PR c++/9602
5712169689Skan	* typeck2.c (abstract_virtuals_error): Don't check when
5713169689Skan	TYPE is still template parameter dependent.
5714169689Skan
5715169689Skan2003-02-23  Mark Mitchell  <mark@codesourcery.com>
5716169689Skan
5717169689Skan	PR c++/5333
5718169689Skan	* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro.
5719169689Skan	* parser.c (cp_parser_diagnose_invalid_type_name): Use it.
5720169689Skan	* pt.c (instantiate_class_template): Don't try to instantiate
5721169689Skan	dependent types.
5722169689Skan	(resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE.
5723169689Skan
5724169689Skan2003-02-21  Mark Mitchell  <mark@codesourcery.com>
5725169689Skan
5726169689Skan	PR c++/9749
5727169689Skan	* decl.c (grokdeclarator): Do not allow parameters with variably
5728169689Skan	modified types.
5729169689Skan
5730169689Skan2003-02-21  Nathan Sidwell  <nathan@codesourcery.com>
5731169689Skan
5732169689Skan	* search.c (grow_bfs_bases): Remove. Fold into ...
5733169689Skan	(bfs_walk): ... here, fix fencepost error. Fix merge lossage
5734169689Skan	in previous patch.
5735169689Skan
5736169689Skan2003-02-20  Mark Mitchell  <mark@codesourcery.com>
5737169689Skan
5738169689Skan	PR c++/9729
5739169689Skan	* mangle.c (mangle_conv_op_name_for_type): Issue an error message
5740169689Skan	when the G++ 3.2 ABI prevents correct compilation.
5741169689Skan
5742169689Skan2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
5743169689Skan
5744169689Skan	Change base class access representation. Share virtual base
5745169689Skan	binfos.
5746169689Skan	* cp/call.c (build_special_member_call): Remove binfo_for_vbase
5747169689Skan	call.
5748169689Skan	* cp/class.c (build_base_path): Likewise.
5749169689Skan	(build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
5750169689Skan	(build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
5751169689Skan	(make_new_vtable): Adjust.
5752169689Skan	(force_canonical_binfo_r): Delete.
5753169689Skan	(force_canonical_binfo): Delete.
5754169689Skan	(mark_primary_virtual_base): Delete.
5755169689Skan	(dfs_unshared_virtual_bases): Delete.
5756169689Skan	(mark_primary_bases): Adjust.
5757169689Skan	(maybe_warn_about_overly_private_class): Adjust.
5758169689Skan	(dfs_base_derived_from): Delete.
5759169689Skan	(base_derived_from): Follow the inheritance chain.
5760169689Skan	(struct find_final_overrider_data): Add vpath member.
5761169689Skan	(dfs_find_final_overrider): Adjust.
5762169689Skan	(dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
5763169689Skan	(find_final_overrider): Adjust.
5764169689Skan	(update_vtable_entry_for_fn): Adjust.
5765169689Skan	(modify_all_vtables): Adjust.
5766169689Skan	(walk_subobject_offsets): Adjust.
5767169689Skan	(layout_nonempty_base_or_field): Adjust.
5768169689Skan	(layout_empty_base): Remove last parameter. Adjust.
5769169689Skan	(build_base_field): Adjust.
5770169689Skan	(build_base_fields): Adjust.
5771169689Skan	(propagate_binfo_offsets): Remove last parameter. Adjust.
5772169689Skan	(dfs_set_offset_for_unshared_vbases): Delete.
5773169689Skan	(layout_virtual_bases): Adjust.
5774169689Skan	(finish_struct_1): Adjust.
5775169689Skan	(init_class_processing): Don't init access nodes.
5776169689Skan	(dfs_get_primary_binfo): Delete.
5777169689Skan	(get_primary_binfo): Adjust.
5778169689Skan	(dump_class_hierarchy_r): Remove most derived arg, add IGO
5779169689Skan	parameter. Adjust.
5780169689Skan	(dump_class_hierarchy): Adjust.
5781169689Skan	(finish_vtbls): Adjust.
5782169689Skan	(get_original_base): Delete.
5783169689Skan	(build_vtt_inits): Adjust.
5784169689Skan	(dfs_build_secondary_vptr_vtt_inits): Adjust.
5785169689Skan	(dfs_ctor_vtable_bases_queue_p): Adjust.
5786169689Skan	(build_ctor_vtbl_group): Adjust.
5787169689Skan	(dfs_accumulate_vtbl_inits): Adjust.
5788169689Skan	(build_vtbl_initializer): Adjust.
5789169689Skan	(build_vbase_offset_vtbl_entries): Adjust.
5790169689Skan	(add_vcall_offset_vtbl_entries_1): Adjust.
5791169689Skan	* cp/cp-tree.h (CPTI_ACCESS_*): Remove.
5792169689Skan	(access_*_node): Remove.
5793169689Skan	(CANONICAL_BINFO): Delete.
5794169689Skan	(BINFO_UNSHARED_MARKED): Remove.
5795169689Skan	(BINFO_MARKED): Set LANG_FLAG_0 directly.
5796169689Skan	(SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
5797169689Skan	(BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
5798169689Skan	(SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
5799169689Skan	Delete.
5800169689Skan	(BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
5801169689Skan	(SET_BINFO_NEW_VTABLE_MARKED): Adjust.
5802169689Skan	(SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
5803169689Skan	Delete.
5804169689Skan	(BINFO_DEPENDENT_BASE_P): New.
5805169689Skan	(dfs_walk, dfs_walk_real): Queue function takes derived binfo and
5806169689Skan	index.
5807169689Skan	(markedp, unmarkedp): Adjust.
5808169689Skan	(dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
5809169689Skan	dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
5810169689Skan	find_vbase_instance, binfo_for_vbase): Delete.
5811169689Skan	(copied_binfo, original_binfo): Declare.
5812169689Skan	(finish_base_specifier): Add virtual_p arg.
5813169689Skan	(unshare_base_binfos): Delete.
5814169689Skan	(copy_base_binfos): Declare.
5815169689Skan	(reverse_path): Delete.
5816169689Skan	* cp/decl.c (xref_basetypes): Access and virtuality passed
5817169689Skan	differently. Don't copy direct base binfos here. Call
5818169689Skan	copy_base_binfos.
5819169689Skan	* cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
5820169689Skan	(initialize_vtbl_ptrs): Adjust.
5821169689Skan	(expand_member_init): Adjust.
5822169689Skan	* cp/parser.c (cp_parser_base_specifier): Adjust.
5823169689Skan	* cp/pt.c (instantiate_class_template): Adjust.
5824169689Skan	(get_template_base_recursive): Adjust.
5825169689Skan	* cp/rtti.c (get_pseudo_ti_init): Adjust.
5826169689Skan	(get_pseudo_ti_desc): Adjust.
5827169689Skan	* cp/tree.c (unshare_base_binfos): Rename to ...
5828169689Skan	(copy_base_binfos): ... here, reimplement.
5829169689Skan	(make_binfo): Set BINFO_DEPENDENT_BASE_P.
5830169689Skan	(reverse_path): Remove.
5831169689Skan	* cp/typeck.c (get_delta_difference): Adjust error messages.
5832169689Skan	* cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
5833169689Skan	* cp/search.c (lookup_base_r): Adjust.
5834169689Skan	(dynamic_cast_base_recurse): Adjust.
5835169689Skan	(canonical_binfo): Remove.
5836169689Skan	(dfs_canonical_queue): Remove.
5837169689Skan	(dfs_assert_unmarked_p): Remove.
5838169689Skan	(assert_canonical_unmarked): Remove.
5839169689Skan	(shared_marked_p, shared_unmarked_p): Remove.
5840169689Skan	(BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
5841169689Skan	(dfs_access_in_type): Adjust.
5842169689Skan	(access_in_type): Adjust.
5843169689Skan	(dfs_accessible_queue_p): Adjust.
5844169689Skan	(dfs_accessible_p): Adjust.
5845169689Skan	(is_subobject_of_p_1, is_subobject_of_p): Remove.
5846169689Skan	(struct lookup_field_info): Remove from_dep_base_p field.
5847169689Skan	(lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
5848169689Skan	(lookup_field_r): Remove dependent base code.
5849169689Skan	(lookup_member): Likewise.
5850169689Skan	(dfs_walk, dfs_walk_real): Add access arg to queue fn.
5851169689Skan	(dfs_unmarked_real_bases_queue_p): Remove.
5852169689Skan	(dfs_marked_real_bases_queue_p): Remove.
5853169689Skan	(dfs_skip_vbases): Remove.
5854169689Skan	(dfs_get_pure_virtuals): Adjust.
5855169689Skan	(markedp, unmarkedp): Adjust.
5856169689Skan	(marked_vtable_pathp, unmarked_vtable_pathp): Remove.
5857169689Skan	(marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
5858169689Skan	(dfs_unmark): Adjust.
5859169689Skan	(dfs_get_vbase_types):Remove.
5860169689Skan	(dfs_build_inheritance_graph_order): Remove.
5861169689Skan	(get_vbase_types): Remove
5862169689Skan	(dfs_find_vbase_instance): Remove.
5863169689Skan	(find_vbase_instance): Remove.
5864169689Skan	(dfs_debug_unmarkedp): Adjust.
5865169689Skan	(dependent_base_p): Remove.
5866169689Skan	(dfs_push_type_decls): Adjust.
5867169689Skan	(dfs_push_decls): Adjust.
5868169689Skan	(dfs_no_overlap_yet): Adjust.
5869169689Skan	(copied_binfo): New function.
5870169689Skan	(original_binfo): New function.
5871169689Skan	(binfo_for_vbase): Remove.
5872169689Skan
5873169689Skan2003-02-18  Zack Weinberg  <zack@codesourcery.com>
5874169689Skan
5875169689Skan	* cp/search.c (grow_bfs_bases): New subroutine of bfs_walk.
5876169689Skan	(bfs_walk): Rewritten using circular queue of BINFO_BASETYPES
5877169689Skan	vectors, for speed.
5878169689Skan
5879169689Skan2003-02-18  Mark Mitchell  <mark@codesourcery.com>
5880169689Skan
5881169689Skan	PR c++/9704
5882169689Skan	* class.c (layout_class_type): In the 3.2 ABI, take into account
5883169689Skan	trailing bit fields when computing CLASSTYPE_SIZE_UNIT.
5884169689Skan
5885169689Skan2003-02-18  Matt Austern <austern@apple.com>
5886169689Skan
5887169689Skan	* cp/cp-lang.c: Change lang hooks so that final_write_globals does
5888169689Skan	nothing for C++.
5889169689Skan	* cp/decl.c (wrapup_globals_for_namespace): Remove special
5890169689Skan	handling of global namespace.
5891169689Skan
5892169689Skan2003-02-18  Geoffrey Keating  <geoffk@apple.com>
5893169689Skan
5894169689Skan	* cp-tree.h (rid_to_yy): Delete.
5895169689Skan	(C_RID_YYCODE): Delete.
5896169689Skan	(finish_file): Delete redundant declaration.
5897169689Skan
5898169689Skan2003-02-18  Jason Merrill  <jason@redhat.com>
5899169689Skan
5900169689Skan	PR c++/9623
5901169689Skan	* decl.c (reshape_init): Don't mess with initializer labels.
5902169689Skan
5903169689Skan	PR c++/9485
5904169689Skan	* parser.c (cp_parser_postfix_expression): Set idk properly for
5905169689Skan	object->scope::member.
5906169689Skan
5907169689Skan2003-02-18  Ben Elliston  <bje@redhat.com>
5908169689Skan
5909169689Skan	PR other/7350
5910169689Skan	* decl.c (duplicate_decls): Fix typo in comment.
5911169689Skan
5912169689Skan2003-02-17  Michael Elizabeth Chastain <mec@shout.net>
5913169689Skan
5914169689Skan	PR debug/9717
5915169689Skan	* class.c (build_base_field): Mark fields for base classes with
5916169689Skan	DECL_IGNORED_P.
5917169689Skan
5918169689Skan2003-02-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5919169689Skan
5920169689Skan	PR c++/9457
5921169689Skan	* pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Substitute
5922169689Skan	CONSTRUCTOR_ELTS only once.
5923169689Skan
5924169689Skan2003-02-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5925169689Skan
5926169689Skan	PR c++/9459
5927169689Skan	* error.c (dump_type_prefix): Handle TYPEOF_TYPE.
5928169689Skan	(dump_type_suffix): Likewise.
5929169689Skan
5930169689Skan2003-02-14  Nathan Sidwell  <nathan@codesourcery.com>
5931169689Skan
5932169689Skan	* search.c: ANSIfy function declarations and definitions.
5933169689Skan	* cp-tree.h (lookup_field, lookup_member): Last parameter is a bool.
5934169689Skan	* call.c (build_method_call, resolve_scoped_fn_name,
5935169689Skan	build_java_interface_fn_ref): Adjust lookup_field, lookup_member
5936169689Skan	calls.
5937169689Skan	* class.c (handle_using_decl): Likewise.
5938169689Skan	* decl.c (make_typename_type, make_unmound_class_template,
5939169689Skan	start_decl, compute_array_index_type): Likewise.
5940169689Skan	* decl2.c (build_expr_from_tree, build_call_from_tree): Likewise.
5941169689Skan	* init.c (expand_member_init, build_member_call): Likewise.
5942169689Skan	* pt.c (tsubst_copy, tsubst_copy_and_build, do_decl_instantiation,
5943169689Skan	resolve_typename_type): Likewise.
5944169689Skan	* typeck.c (lookup_destructor, finish_class_member_access_exprm
5945169689Skan	build_prememfunc_access_expr): Likewise.
5946169689Skan
5947169689Skan2003-02-13  Gabriel Dos Reis <gdr@integrable-solutions.net>
5948169689Skan
5949169689Skan	* decl2.c: Include "timevar.h".
5950169689Skan	(namespace_ancestor): Time name lookup.
5951169689Skan	(add_using_namespace): Likewise.
5952169689Skan	(lookup_using_namespace): Likewise.
5953169689Skan	(qualified_lookup_using_namespace): Likewise.
5954169689Skan	(decl_namespace): Likewise.
5955169689Skan	(lookup_arg_dependent): Likewise.
5956169689Skan	* lex.c (do_identifier): Likewise.
5957169689Skan	(do_scoped_id): Likewise.
5958169689Skan	* pt.c (lookup_template_class): Likewise.
5959169689Skan
5960169689Skan2003-02-14   Andrew Pinski <pinskia@physics.uc.edu>
5961169689Skan
5962169689Skan	* decl.c: (define_label): Fix warning for return 0 instead of NULL.
5963169689Skan
5964169689Skan2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5965169689Skan
5966169689Skan	* decl.c: Include "timevar.h".
5967169689Skan	(poplevel): Time name lookup.
5968169689Skan	(find_binding): Likewise.
5969169689Skan	(push_namespace): Likewise.
5970169689Skan	(pop_nested_namespace): Likewise.
5971169689Skan	(store_bindings): Likewise.
5972169689Skan	(maybe_push_to_top_level): Likewise.
5973169689Skan	(pop_from_top_level): Likewise.
5974169689Skan	(push_local_name): Likewise.
5975169689Skan	(pushtag): Likewise.
5976169689Skan	(pushdecl): Likewise.
5977169689Skan	(pushdecl_with_scope): Likewise.
5978169689Skan	(pushdecl_namespace_level): Likewise.
5979169689Skan	(pushdecl_top_level): Likewise.
5980169689Skan	(pushdecl_class_level): Likewise.
5981169689Skan	(push_class_level_binding): Likewise.
5982169689Skan	(push_using_decl): Likewise.
5983169689Skan	(push_using_directive): Likewise.
5984169689Skan	(push_overloaded_decl): Likewise.
5985169689Skan	(lookup_label): Likewise.
5986169689Skan	(define_label): Likewise.
5987169689Skan	(lookup_tag): Likewise.
5988169689Skan	(lookup_tag_reverse): Likewise.
5989169689Skan	(lookup_namespace_name): Likewise.
5990169689Skan	(select_decl): Likewise.
5991169689Skan	(unqualified_namespace_lookup): Likewise.
5992169689Skan	(lookup_name_real): Likewise.
5993169689Skan	(lookup_name_current_level): Likewise.
5994169689Skan	(lookup_type_current_level): Likewise.
5995169689Skan	(maybe_inject_for_scope_var): Likewise.
5996169689Skan	(xref_tag): Likewise.
5997169689Skan
5998169689Skan	* Make-lang.in (cp/decl.o): Add dependency on timevar.h
5999169689Skan
6000169689Skan2003-02-12  Phil Edwards  <pme@gcc.gnu.org>
6001169689Skan
6002169689Skan	* decl.c (build_enumerator):  Remove unneeded test.
6003169689Skan
6004169689Skan2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
6005169689Skan
6006169689Skan	* cp-tree.h (struct lang_type_header): Make all fields unsigned
6007169689Skan	char.
6008169689Skan
6009169689Skan2003-02-03  Mark Mitchell  <mark@codesourcery.com>
6010169689Skan
6011169689Skan	PR c++/7129
6012169689Skan	* call.c (z_candidate): Add args.
6013169689Skan	(convert_class_to_reference): Set it.
6014169689Skan	(implicit_conversion): Tidy.
6015169689Skan	(add_candidate): Add args parameter.
6016169689Skan	(add_function_candidate): Adjust call to add_candidate.
6017169689Skan	(add_conv_candidate): Likewise.
6018169689Skan	(build_builtin_candidate): Likewise.
6019169689Skan	(build_user_type_conversion_1): Eliminate wasteful tree_cons
6020169689Skan	usage.
6021169689Skan	(build_new_function_call): Likewise.
6022169689Skan	(build_object_call): Likewise.
6023169689Skan	(add_candidates): New function.
6024169689Skan	(build_new_op): Use it.
6025169689Skan	(covert_like_real): Adjust call to build_over_call.
6026169689Skan	(build_over_call): Remove args parameter.
6027169689Skan	* operators.def: Add <?= and >?=.
6028169689Skan
6029169689Skan2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
6030169689Skan
6031169689Skan	* typeck.c (build_indirect_ref): Don't check flag_volatile.
6032169689Skan
6033169689Skan2003-01-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6034169689Skan
6035169689Skan	PR c++/8849
6036169689Skan	* pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.
6037169689Skan
6038169689Skan2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
6039169689Skan
6040169689Skan	* cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
6041169689Skan	BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
6042169689Skan	(BINFO_LANG_ELTS): New #define.
6043169689Skan	* tree.c (make_binfo): Use BINFO_LANG_ELTS.
6044169689Skan
6045169689Skan2003-01-30  Geoffrey Keating  <geoffk@apple.com>
6046169689Skan
6047169689Skan	* cp/Make-lang.in: Remove -Wno-error from cp/decl.o.
6048169689Skan
6049169689Skan2003-01-30  Mark Mitchell  <mark@codesourcery.com>
6050169689Skan
6051169689Skan	* class.c (check_field_decls): Only check C_TYPE_FIELDS_READONLY
6052169689Skan	for class types.
6053169689Skan	* cp-tree.h (C_TYPE_FIELDS_READONLY): Use a lang-specific bit
6054169689Skan	rather than TYPE_LANG_FLAG_0.
6055169689Skan	(TYPE_BUILT_IN): Remove.
6056169689Skan	(TYPE_DEPENDENT_P): New macro.
6057169689Skan	(TYPE_DEPENDENT_P_VALID): Likewise.
6058169689Skan	(lang_type_class): Add fields_readonly.
6059169689Skan	* decl.c (record_builtin_type): Don't set TYPE_BUILT_IN.
6060169689Skan	* pt.c (dependent_type_p_r): New function, split out from ...
6061169689Skan	(dependent_type_p): ... here.  Memoize results.
6062169689Skan	* search.c (dependent_base_p): Use dependent_type_p, not
6063169689Skan	uses_template_parms.
6064169689Skan	* typeck.c (build_modify_expr): Only check C_TYPE_FIELDS_READONLY
6065169689Skan	for class types.
6066169689Skan
6067169689Skan2003-01-29  Mark Mitchell  <mark@codesourcery.com>
6068169689Skan
6069169689Skan	* call.c (build_field_call): Use build_new_op, not build_opfncall.
6070169689Skan	(prep_operand): New function.
6071169689Skan	(build_new_op): Use it.  Remove dead code.
6072169689Skan	* class.c (pushclass): Change "modify" parameter type from int to
6073169689Skan	bool.
6074169689Skan	(currently_open_class): Use same_type_p, not pointer equality.
6075169689Skan	(push_nested_class): Adjust calls to pushclass, remove modify
6076169689Skan	parameter.
6077169689Skan	* cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro.
6078169689Skan	(pushclass): Change prototype.
6079169689Skan	(push_nested_class): Likewise.
6080169689Skan	(grokoptypename): Remove.
6081169689Skan	(build_opfncall): Remove.
6082169689Skan	(value_dependent_expression_p): Declare.
6083169689Skan	(resolve_typename_type): Likewise.
6084169689Skan	(resolve_typename_type_in_current_instantiation): Likewise.
6085169689Skan	(enter_scope_of): Remove.
6086169689Skan	(tsubst): Remove.
6087169689Skan	(tsubst_expr): Likewise.
6088169689Skan	(tsubst_copy): Likewise.
6089169689Skan	(tsubst_copy_and_build): Likewise.
6090169689Skan	* decl.c (warn_about_implicit_typename_lookup): Remove.
6091169689Skan	(finish_case_label): Return error_mark_node for erroneous labels.
6092169689Skan	(start_decl): Adjust calls to push_nested_class.
6093169689Skan	(grokfndecl): Call push_scope/pop_scope around call to
6094169689Skan	duplicate_decls.
6095169689Skan	(grokdeclarator): Do not call tsubst.
6096169689Skan	(start_function): Adjust calls to push_nested_class.
6097169689Skan	* decl2.c (grok_array_decl): Use build_new_op, not build_opfncall.
6098169689Skan	(check_classfn): Use push_scope/pop_scope around type comparisions.
6099169689Skan	(grokoptypename): Remove.
6100169689Skan	(push_sscope): Adjust call to push_nested_class.
6101169689Skan	* error.c (dump_type): Show cv-qualification of typename types.
6102169689Skan	* init.c (build_member_call): Use build_new_op, not
6103169689Skan	build_opfncall.
6104169689Skan	* method.c (build_opfncall): Remove.
6105169689Skan	* parser.c (cp_parser): Add allow_non_constant_expression_p and
6106169689Skan	non_constant_expression_p.
6107169689Skan	(cp_parser_constant_expression): Adjust prototype.
6108169689Skan	(cp_parser_resolve_typename_type): Remove.
6109169689Skan	(cp_parser_non_constant_expression): New function.
6110169689Skan	(cp_parser_non_constant_id_expression): Likewise.
6111169689Skan	(cp_parser_new): Set allow_non_constant_expression_p and
6112169689Skan	non_constant_expression_p.
6113169689Skan	(cp_parser_primary_expression): Reject `this' and `va_arg' in
6114169689Skan	constant-expressions.  Note that dependent names aren't really
6115169689Skan	constant.
6116169689Skan	(cp_parser_postfix_expression): Reject conversions to non-integral
6117169689Skan	types in constant-expressions.  Neither are increments or
6118169689Skan	decrements.
6119169689Skan	(cp_parser_unary_expression): Reject increments and decrements in
6120169689Skan	constant-expressions.
6121169689Skan	(cp_parser_direct_new_declarator): Adjust call to
6122169689Skan	cp_parser_constant_expression.
6123169689Skan	(cp_parser_cast_expression): Reject conversions to non-integral
6124169689Skan	types in constant-expressions.
6125169689Skan	(cp_parser_assignment_expression): Rejects assignments in
6126169689Skan	constant-expressions.
6127169689Skan	(cp_parser_expression): Reject commas in constant-expressions.
6128169689Skan	(cp_parser_labeled_statement): Adjust call to
6129169689Skan	cp_parser_constant_expression.
6130169689Skan	(cp_parser_direct_declarator): Simplify array bounds, even in
6131169689Skan	templates, when they are non-dependent.  Use
6132169689Skan	resolve_typename_type, not cp_parser_resolve_typename_type.
6133169689Skan	(cp_parser_class_head): Use resolve_typename_type, not
6134169689Skan	cp_parser_resolve_typename_type.
6135169689Skan	(cp_parser_member_declaration): Adjust call to
6136169689Skan	cp_parser_constant_expression.
6137169689Skan	(cp_parser_constant_initializer): Likewise.
6138169689Skan	(cp_parser_constructor_declarator): Use resolve_typename_type, not
6139169689Skan	cp_parser_resolve_typename_type.
6140169689Skan	(cp_parser_late_parsing_default_args): Adjust call to
6141169689Skan	push_nested_class.
6142169689Skan	* pt.c (tsubst): Give it internal linkage.
6143169689Skan	(tsubst_expr): Likewise.
6144169689Skan	(tsubst_copy): Likewise.
6145169689Skan	(tsubst_copy_and_build): Likewise.
6146169689Skan	(push_access_scope_real): Likewise.
6147169689Skan	(tsubst_friend_class): Likewise.
6148169689Skan	(instantiate_class_template): Adjust call to pushclass.
6149169689Skan	(value_dependent_expression_p): Give it external linkage.
6150169689Skan	Robustify.
6151169689Skan	(resolve_typename_type): New function.
6152169689Skan	* semantics.c (finish_call_expr): Use build_new_op, not
6153169689Skan	build_opfncall.
6154169689Skan	(begin_constructor_declarator): Remove.
6155169689Skan	(begin_class_definition): Adjust call to pushclass.
6156169689Skan	(enter_scope_of): Remove.
6157169689Skan	* typeck.c (comptypes): Resolve typename types as appropriate.
6158169689Skan	(build_x_indirect_ref): Use build_new_op, not build_opfncall.
6159169689Skan	(build_x_compound_expr): Likewise.
6160169689Skan	(build_modify_expr): Likewise.
6161169689Skan	(build_x_modify_expr): Likewise.
6162169689Skan	* typeck2.c (build_x_arrow): Likewise.
6163169689Skan
6164169689Skan2003-01-29  Fariborz Jahanian  <fjahanian@apple.com>
6165169689Skan
6166169689Skan	* pt.c (last_pending_template) Declare GTY().
6167169689Skan
6168169689Skan2003-01-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6169169689Skan
6170169689Skan	PR c++/8591
6171169689Skan	* parser.c (cp_parser_elaborated_type_specifier): Convert
6172169689Skan	TEMPLATE_DECL to TYPE_DECL only when processing template friends.
6173169689Skan	(cp_parser_maybe_treat_template_as_class): Remove redundant tests.
6174169689Skan
6175169689Skan2003-01-28  Nathan Sidwell  <nathan@codesourcery.com>
6176169689Skan
6177169689Skan	PR c++/9437
6178169689Skan	* pt.c (unify): Don't unify '*T' with 'U C::*'.
6179169689Skan
6180169689Skan	PR c++/3902
6181169689Skan	* parser.c (cp_parser_decl_specifier_seq): Cannot have constructor
6182169689Skan	inside a declarator.
6183169689Skan
6184169689Skan2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>
6185169689Skan
6186169689Skan	* class.c (update_vtable_entry_for_fn): Add index parameter.
6187169689Skan	Generate vcall thunk for covariant overriding from a virtual
6188169689Skan	primary base.
6189169689Skan	(dfs_modify_vtables): Adjust.
6190169689Skan
6191169689Skan2003-01-25  Nathan Sidwell  <nathan@codesourcery.com>
6192169689Skan
6193169689Skan	PR c++/9403
6194169689Skan	* parser.c (cp_parser_class_or_namespace_name): Reject duplicate
6195169689Skan	template keyword.
6196169689Skan	(cp_parser_base_specifier): Look for and consume a
6197169689Skan	TEMPLATE keyword. Replace switch with array index.
6198169689Skan
6199169689Skan	PR c++/795
6200169689Skan	* semantics.c (finish_non_static_data_member): Remember the
6201169689Skan	field's type even in a template.
6202169689Skan
6203169689Skan	PR c++/9415
6204169689Skan	* pt.c (tsubst_copy_and_build, CALL_EXPR): BASELINK exprs are
6205169689Skan	already scoped.
6206169689Skan
6207169689Skan	PR c++/8545
6208169689Skan	* parser.c (cp_parser_cast_expression): Be more tentative.
6209169689Skan
6210169689Skan2003-01-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6211169689Skan
6212169689Skan	* cp-tree.h (flagged_type_tree_s): Remove.
6213169689Skan	(check_for_new_type): Likewise.
6214169689Skan	* typeck2.c (check_for_new_type): Likewise.
6215169689Skan
6216169689Skan2003-01-23  Nathanael Nerode  <neroden@gcc.gnu.org>
6217169689Skan
6218169689Skan	* dump.c: ANSIfy function declarations and definitions.
6219169689Skan
6220169689Skan	* cp-tree.h, decl.h: Get rid of PARAMS.  Again.
6221169689Skan
6222169689Skan2003-01-22  Mark Mitchell  <mark@codesourcery.com>
6223169689Skan
6224169689Skan	PR c++/9354
6225169689Skan	* init.c (build_new): Set the type of the new-expression, even
6226169689Skan	when processing_templte_decl.
6227169689Skan
6228169689Skan	PR c++/9216
6229169689Skan	* parser.c (cp_parser_primary_expression): Improve error message
6230169689Skan	for templates used in an expression context.
6231169689Skan
6232169689Skan	PR c++/8696
6233169689Skan	* parser.c (cp_parser_decl_specifier_seq): Commit to tentative
6234169689Skan	parse when encountering "typedef".
6235169689Skan
6236169689Skan2003-01-22  Nathanael Nerode  <neroden@gcc.gnu.org>
6237169689Skan
6238169689Skan	* class.c, parser.c: ANSIfy function definitions and declarations.
6239169689Skan
6240169689Skan2003-01-22  Mark Mitchell  <mark@codesourcery.com>
6241169689Skan
6242169689Skan	PR c++/9328
6243169689Skan	* error.c (dump_decl): For an OVERLOAD, just print the name of the
6244169689Skan	function; it doesn't make sense to try to print its type.
6245169689Skan	* semantics.c (finish_typeof): Issue errors about invalid uses.
6246169689Skan
6247169689Skan	PR c++/9298
6248169689Skan	* parser.c (cp_parser_consume_semicolon_at_end_of_statement): New
6249169689Skan	function.
6250169689Skan	(cp_parser_expression_statement): Use it.
6251169689Skan	(cp_parser_explicit_instantiation): Likewise.
6252169689Skan	* pt.c (do_decl_instantiation): Improve error handling logic.
6253169689Skan
6254169689Skan2003-01-22  Mark Mitchell  <mark@codesourcery.com>
6255169689Skan
6256169689Skan	PR c++/9384
6257169689Skan	* parser.c (cp_parser_using_declaration): Issue error messages
6258169689Skan	about name resolution failures here.
6259169689Skan
6260169689Skan	PR c++/9388
6261169689Skan	* class.c (currently_open_derived_class): Use dependent_type_p.
6262169689Skan	* cp-tree.h (dependent_type_p): New function.
6263169689Skan	(dependent_template_arg_p): Likewise.
6264169689Skan	(dependent_template_p): Likewise.
6265169689Skan	(type_dependent_expression_p): Likewise.
6266169689Skan	* parser.c (cp_parser_dependent_type_p): Remove.
6267169689Skan	(cp_parser_value_dependent_type_p): Likewise.
6268169689Skan	(cp_parser_type_dependent_expression_p): Likewise.
6269169689Skan	(cp_parser_dependent_template_arg_p): Likewise.
6270169689Skan	(cp_parser_dependent_template_id_p): Likewise.
6271169689Skan	(cp_parser_dependent_template_p): Likewise.
6272169689Skan	(cp_parser_diagnose_invalid_type_name): Replace
6273169689Skan	cp_parser_dependent_type_p with dependent_type_p, etc.
6274169689Skan	(cp_parser_primary_expresion): Likewise.
6275169689Skan	(cp_parser_nested_name_specifier_opt): Likewise.
6276169689Skan	(cp_parser_postfix_expression): Likewise.
6277169689Skan	(cp_parser_unary_expression): Likewise.
6278169689Skan	(cp_parser_template_name): Likewise.
6279169689Skan	(cp_parser_class_name): Likewise.
6280169689Skan	(cp_parser_lookup_name): Likewise.
6281169689Skan	* pt.c (dependent_type_p): New function.
6282169689Skan	(value_dependent_expression_p): Likewise.
6283169689Skan	(type_dependent_expression_p): Likewise.
6284169689Skan	(dependent_template_arg_p): Likewise.
6285169689Skan	(dependent_template_id_p): Likewise.
6286169689Skan	(dependent_template_p): Likewise.
6287169689Skan
6288169689Skan	PR c++/9285
6289169689Skan	PR c++/9294
6290169689Skan	* parser.c (cp_parser_simple_declaration): Return quickly when
6291169689Skan	encountering errors.
6292169689Skan
6293169689Skan2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6294169689Skan
6295169689Skan	Make-lang.in (cp/decl.o-warn): Add -Wno-error.
6296169689Skan
6297169689Skan2003-01-17  Jason Merrill  <jason@redhat.com>
6298169689Skan
6299169689Skan	PR c++/9167, c++/9358
6300169689Skan	* decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.
6301169689Skan
6302169689Skan2003-01-17  Jason Merrill  <jason@redhat.com>
6303169689Skan
6304169689Skan	PR c++/9342
6305169689Skan	* call.c (build_conditional_expr): Always do lvalue-rvalue
6306169689Skan	conversion.
6307169689Skan
6308169689Skan2003-01-17  Mark Mitchell  <mark@codesourcery.com>
6309169689Skan
6310169689Skan	PR c++/9294
6311169689Skan	* cp-tree.def (BASELINK): Make it class 'x', not class 'e'.
6312169689Skan	* cp-tree.h (BASELINK_BINFO): Adjust.
6313169689Skan	(BASELINK_FUNCTIONS): Likewise.
6314169689Skan	(BASELINK_ACCESS_BINFO): Likewise.
6315169689Skan	(tree_baselink): New structure.
6316169689Skan	(cp_tree_node_structure_enum): Add TS_CP_BASELINK.
6317169689Skan	(lang_tree_node): Add baselink.
6318169689Skan	* decl.c (cp_tree_node_structure): Add BASELINK case.
6319169689Skan	* search.c (build_baselink): Adjust.
6320169689Skan	* tree.c (cp_walk_subtrees): Add BASELINK case.  Remove BASELINK_P
6321169689Skan	test from TREE_LIST case.
6322169689Skan
6323169689Skan	PR c++/9272
6324169689Skan	* parser.c (cp_parser_constructor_declarator_p): Do not assume
6325169689Skan	that a constructor cannot be declared outside of its own class.
6326169689Skan
6327169689Skan	* parser.c (cp_parser_resolve_typename_type): If the scope cannot
6328169689Skan	be resolved, neither can the qualified name.
6329169689Skan
6330169689Skan	* rtti.c (get_pseudo_ti_desc): Fix thinko.
6331169689Skan
6332169689Skan2003-01-16  Jason Merrill  <jason@redhat.com>
6333169689Skan
6334169689Skan	PR c++/8564
6335169689Skan	* init.c (build_vec_init): Re-add maxindex parm.
6336169689Skan	(perform_member_init, build_aggr_init): Pass it.
6337169689Skan	(build_new_1): Pass it. Use an incomplete array type for full_type.
6338169689Skan	* typeck.c (build_modify_expr): Pass it.
6339169689Skan	* cp-tree.h: Adjust.
6340169689Skan
6341169689Skan2003-01-16  Jeffrey D. Oldham  <oldham@codesourcery.com>
6342169689Skan
6343169689Skan	* cp-tree.h (tsubst_copy_and_build): New declaration.
6344169689Skan	* pt.c (tsubst_copy): Remove 'build_expr_from_tree' from comment.
6345169689Skan	(tsubst_expr): Use 'tsubst_copy_and_build'.  Update initial comment.
6346169689Skan	(tsubst_copy_and_build): New function.
6347169689Skan
6348169689Skan2003-01-16  Mark Mitchell  <mark@codesourcery.com>
6349169689Skan
6350169689Skan	* cp-tree.h (lang_type_class): Remove is_partial_instantiation.
6351169689Skan	(PARTIAL_INSTANTIATION_P): Remove.
6352169689Skan	(IMPLICIT_TYPENAME_P): Likewise.
6353169689Skan	(IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise.
6354169689Skan	(build_typename_type): Remove declaration.
6355169689Skan	(parmlist_is_exprlist): Likewise.
6356169689Skan	* decl.c (build_typename_type): Make it static, remove third
6357169689Skan	parameter.
6358169689Skan	(push_class_binding): Don't do implicit typename stuff.
6359169689Skan	(make_typename_type): Likewise.
6360169689Skan	(lookup_name_real): Likewise.
6361169689Skan	(grokdeclarator): Don't try to convert declarations into
6362169689Skan	initializations.  Don't do implicit typename stuff.
6363169689Skan	(parmlist_is_exprlist): Remove.
6364169689Skan	(xref_basetypes): Simplify.
6365169689Skan	* decl2.c (grokfield): Don't try to convert declarations into
6366169689Skan	initializations.
6367169689Skan	(build_anon_union_vars): Do this while processing templates, too.
6368169689Skan	(finish_anon_union): Likewise.
6369169689Skan	* error.c (dump_type): Remove implicit typename handling.
6370169689Skan	* parser.c (cp_parser_diagnose_invalid_type_name): New method.
6371169689Skan	(cp_parser_primary_expression): Correct handling of names not
6372169689Skan	found by unqualified name lookup in templates.
6373169689Skan	(cp_parser_nested_name_specifier_opt): Avoid checking dependency
6374169689Skan	of types when possible.
6375169689Skan	(cp_parser_simple_declaration): Complain intelligently about some
6376169689Skan	invalid declarations.
6377169689Skan	(cp_parser_member_declaration): Likewise.
6378169689Skan	(cp_parser_constructor_declarator_p): Don't check when we're in a
6379169689Skan	function scope.
6380169689Skan	* pt.c (instantiate_class_template): Remove
6381169689Skan	PARTIAL_INSTANTIATION_P gunk.
6382169689Skan	* search.c (lookup_field_r): Don't build implicit typenames.
6383169689Skan	(marked_pushdecls_p): Don't enter dependent base types.
6384169689Skan	(unmarked_pushdecls_p): Likewise.
6385169689Skan	* semantics.c (begin_class_definition): Remove implicit typename
6386169689Skan	stuff.
6387169689Skan
6388169689Skan2003-01-16  Nathan Sidwell  <nathan@codesourcery.com>
6389169689Skan
6390169689Skan	PR c++/9212
6391169689Skan	* parser.c (cp_parser_direct_declarator): If accepting either
6392169689Skan	abstract or named, the name must be an unqualified-id.
6393169689Skan
6394169689Skan2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6395169689Skan
6396169689Skan	* class.c (layout_virtual_bases): Avoid signed/unsigned warning.
6397169689Skan
6398169689Skan2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6399169689Skan
6400169689Skan	* decl2.c (check_classfn): Fix uninitialized warning.
6401169689Skan	(build_anon_union_vars): Likewise.
6402169689Skan	* pt.c (tsubst_copy): Likewise.
6403169689Skan
6404169689Skan2003-01-14  Jeffrey D. Oldham  <oldham@codesourcery.com>
6405169689Skan
6406169689Skan	Further conform g++'s __vmi_class_type_info to the C++ ABI
6407169689Skan	specification.
6408169689Skan	* rtti.c (dfs_class_hint_mark): Do not set hints not specified by
6409169689Skan	the specification.
6410169689Skan	(class_hint_flags): Likewise.
6411169689Skan
6412169689Skan2003-01-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6413169689Skan
6414169689Skan	* config-lang.in: Add semantics.c to gtfiles.
6415169689Skan	* cp-tree.h (flagged_type_tree_s): Remove lookups field.
6416169689Skan	(saved_scope): Likewise.
6417169689Skan	(type_lookups): Remove.
6418169689Skan	(deferred_access): New structure.
6419169689Skan	(type_access_control): Remove.
6420169689Skan	(save_type_access_control): Likewise.
6421169689Skan	(reset_type_access_control): Likewise.
6422169689Skan	(decl_type_access_control): Likewise.
6423169689Skan	(push_deferring_access_checks): Declare.
6424169689Skan	(resume_deferring_access_checks): Likewise.
6425169689Skan	(stop_deferring_access_checks): Likewise.
6426169689Skan	(pop_deferring_access_checks): Likewise.
6427169689Skan	(get_deferred_access_checks): Likewise.
6428169689Skan	(pop_to_parent_deferring_access_checks): Likewise.
6429169689Skan	(perform_deferred_access_checks): Likewise.
6430169689Skan	(perform_or_defer_access_check): Likewise.
6431169689Skan	* decl.c (make_typename_type): Use perform_or_defer_access_check.
6432169689Skan	(make_unbound_class_template): Likewise.
6433169689Skan	(grokdeclarator): Don't call decl_type_access_control.
6434169689Skan	* parser.c (cp_parser_context): Remove deferred_access_checks
6435169689Skan	and deferring_access_checks_p fields.
6436169689Skan	(cp_parser_context_new): Adjust.
6437169689Skan	(cp_parser): Remove access_checks_lists.
6438169689Skan	(cp_parser_defer_access_check): Remove.
6439169689Skan	(cp_parser_start_deferring_access_checks): Remove.
6440169689Skan	(cp_parser_stop_deferring_access_checks): Remove.
6441169689Skan	(cp_parser_perform_deferred_access_checks): Remove.
6442169689Skan	(cp_parser_nested_name_specifier_opt): Use new deferred access
6443169689Skan	functions.
6444169689Skan	(cp_parser_simple_declaration): Likewise.
6445169689Skan	(cp_parser_template_id): Likewise.
6446169689Skan	(cp_parser_function_definition): Likewise.
6447169689Skan	(cp_parser_class_specifier): Likewise.
6448169689Skan	(cp_parser_lookup_name): Likewise.
6449169689Skan	(cp_parser_single_declaration): Likewise.
6450169689Skan	(cp_parser_pre_parsed_nested_name_specifier): Likewise.
6451169689Skan	(cp_parser_parse_tentatively): Likewise.
6452169689Skan	(cp_parser_parse_definitely): Likewise.
6453169689Skan	(yyparse): Likewise.
6454169689Skan	(cp_parser_init_declarator): Remove access_checks parameter.
6455169689Skan	Use new deferred access functions.
6456169689Skan	(cp_parser_function_definition_from_specifiers_and_declarator):
6457169689Skan	Likewise.
6458169689Skan	(cp_parser_class_head): Remove deferring_access_checks_p and
6459169689Skan	saved_access_checks parameters.  Use new deferred access functions.
6460169689Skan	(cp_parser_member_specification_opt): Don't call
6461169689Skan	reset_type_access_control.
6462169689Skan	* search.c (type_access_control): Remove.
6463169689Skan	* semantics.c: Include "gt-cp-semantics.h".
6464169689Skan	(deferred_type_access_control): Remove.
6465169689Skan	(deferred_access_stack): New variable.
6466169689Skan	(deferred_access_free_list): Likewise.
6467169689Skan	(push_deferring_access_checks): New function.
6468169689Skan	(resume_deferring_access_checks): Likewise.
6469169689Skan	(stop_deferring_access_checks): Likewise.
6470169689Skan	(pop_deferring_access_checks): Likewise.
6471169689Skan	(get_deferred_access_checks): Likewise.
6472169689Skan	(pop_to_parent_deferring_access_checks): Likewise.
6473169689Skan	(perform_deferred_access_checks): New function, adapted from
6474169689Skan	cp_parser_perform_deferred_access_checks.
6475169689Skan	(perform_or_defer_access_check): New function, adapted from
6476169689Skan	cp_parser_defer_access_check.
6477169689Skan	(current_type_lookups): Remove.
6478169689Skan	(deferred_type_access_control): Likewise.
6479169689Skan	(decl_type_access_control): Likewise.
6480169689Skan	(save_type_access_control): Likewise.
6481169689Skan	(reset_type_access_control): Likewise.
6482169689Skan	(begin_function_definition): Adjust.
6483169689Skan	(begin_class_definiton): Likewise.
6484169689Skan
6485169689Skan2003-01-13  Jason Merrill  <jason@redhat.com>
6486169689Skan
6487169689Skan	PR c++/8748
6488169689Skan	* class.c (build_base_path): Take the address before calling save_expr.
6489169689Skan
6490169689Skan	* call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if
6491169689Skan	all the ambiguous conversions are bad.
6492169689Skan
6493169689Skan	* class.c (maybe_warn_about_overly_private_class): Don't stop
6494169689Skan	searching when we find a nonprivate method.
6495169689Skan
6496169689Skan	* typeck.c (build_class_member_access_expr): Use unary_complex_lvalue.
6497169689Skan
6498169689Skan2003-01-12  Mark Mitchell  <mark@codesourcery.com>
6499169689Skan
6500169689Skan	* cp-tree.h (get_arglist_len_in_bytes): Remove.
6501169689Skan
6502169689Skan	PR c++/9264
6503169689Skan	* parser.c (cp_parser_elaborated_type_specifier): Handle erroneous
6504169689Skan	typeame types more robustly.
6505169689Skan
6506169689Skan2003-01-11  Phil Edwards  <pme@gcc.gnu.org>
6507169689Skan
6508169689Skan	* parser.c:  Fix comment typos.
6509169689Skan
6510169689Skan2003-01-10  Mark Mitchell  <mark@codesourcery.com>
6511169689Skan
6512169689Skan	PR c++/9099
6513169689Skan	* parser.c (cp_parser_scope_through_which_access_occurs): Handle
6514169689Skan	an object_type which is not a class type.
6515169689Skan
6516169689Skan2003-01-10  Geoffrey Keating  <geoffk@apple.com>
6517169689Skan
6518169689Skan	* parser.c (cp_parser_late_parsing_for_member): Don't cast to void.
6519169689Skan	(cp_parser_late_parsing_default_args): Likewise.
6520169689Skan
6521169689Skan2003-01-10  Nathanael Nerode  <neroden@gcc.gnu.org>
6522169689Skan
6523169689Skan	* cfns.gperf: ANSIfy function declarations.
6524169689Skan	* cfns.h: Regenerate.
6525169689Skan	* cp-tree.h: ANSIfy function declarations.
6526169689Skan
6527169689Skan2003-01-10  Mark Mitchell  <mark@codesourcery.com>
6528169689Skan
6529169689Skan	* cp-tree.h (reparse_absdcl_as_expr): Remove.
6530169689Skan	(reparse_absdcl_as_casts): Likewise.
6531169689Skan	(reparse_decl_as_expr): Likewise.
6532169689Skan	(finish_decl_parsing): Likewise.
6533169689Skan	* decl2.c (reparse_absdcl_as_expr): Remove.
6534169689Skan	(reparse_absdcl_as_casts): Likewise.
6535169689Skan	(repase_decl_as_expr): Likewise.
6536169689Skan	(finish_decl_parsing): Likewise.
6537169689Skan
6538169689Skan	PR c++/9128
6539169689Skan	PR c++/9153
6540169689Skan	PR c++/9171
6541169689Skan	* parser.c (cp_parser_pre_parsed_nested_name_specifier): New
6542169689Skan	function.
6543169689Skan	(cp_parser_nested_name_specifier_opt): Correct the
6544169689Skan	check_dependency_p false.
6545169689Skan	(cp_parser_postfix_expression): Fix formatting.
6546169689Skan	(cp_parser_decl_specifier_seq): Avoid looking for constructor
6547169689Skan	declarators when possible.
6548169689Skan	(cp_parser_template_id): Avoid performing name-lookup when
6549169689Skan	possible.
6550169689Skan	(cp_parser_class_head): Do not count specializations when counting
6551169689Skan	levels of templates.
6552169689Skan	(cp_parser_constructor_declarator_p): Return immediately if
6553169689Skan	there's no chance that the tokens form a constructor declarator.
6554169689Skan	* rtti.c (throw_bad_typeid): Add comment.  Do not return an
6555169689Skan	expression with reference type.
6556169689Skan	(get_tinfo_decl_dynamic): Do not return an expression with
6557169689Skan	reference type.
6558169689Skan	(build_typeid): Add comment.  Do not return an expression with
6559169689Skan	reference type.
6560169689Skan	* typeck.c (build_class_member_access_expr): Improve handling of
6561169689Skan	conditionals and comma-expressions as objects.
6562169689Skan
6563169689Skan2003-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
6564169689Skan
6565169689Skan	* cfns.gperf: ANSIfy function declarations.
6566169689Skan	* cfns.h: Regenerate.
6567169689Skan	* cp-tree.h: ANSIfy function declarations.
6568169689Skan	* parser.c: ANSIfy function declarations & definitions.
6569169689Skan
6570169689Skan	* decl.c (bad_specifiers): Fix parameter order error I introduced.
6571169689Skan
6572169689Skan2003-01-09  Geoffrey Keating  <geoffk@apple.com>
6573169689Skan
6574169689Skan	Merge from pch-branch:
6575169689Skan
6576169689Skan	2003-01-09  Geoffrey Keating  <geoffk@apple.com>
6577169689Skan
6578169689Skan	Merge to tag pch-merge-20030102:
6579169689Skan
6580169689Skan	* semantics.c (finish_translation_unit): Don't call finish_file.
6581169689Skan	* parser.c: Don't include ggc.h.
6582169689Skan	(cp_lexer_new_main): Rename from cp_lexer_new, only create main lexer,
6583169689Skan	read first token here.  Don't allow PCH files after the first
6584169689Skan	token is read.
6585169689Skan	(cp_lexer_new_from_tokens): Duplicate functionality from cp_lexer_new.
6586169689Skan	(cp_lexer_get_preprocessor_token): Allow LEXER to be NULL.
6587169689Skan	(cp_parser_new): Call cp_lexer_new_main before allocating GCed memory.
6588169689Skan	(cp_parser_late_parsing_for_member): Don't duplicate call to
6589169689Skan	cp_lexer_set_source_position_from_token.
6590169689Skan	(cp_parser_late_parsing_default_args): Likewise.
6591169689Skan	(yyparse): Call finish_file after clearing the_parser.
6592169689Skan
6593169689Skan	2002-12-11  Geoffrey Keating  <geoffk@apple.com>
6594169689Skan
6595169689Skan	* Make-lang.in: Remove $(GGC_H) from all dependencies.
6596169689Skan	(CXX_TREE_H): Add $(GGC_H).
6597169689Skan	* class.c: Don't include ggc.h.
6598169689Skan	(field_decl_cmp): Make parameters be 'const void *' to match qsort.
6599169689Skan	(method_name_cmp): Likewise.
6600169689Skan	(resort_data): New variable.
6601169689Skan	(resort_field_decl_cmp): New.
6602169689Skan	(resort_method_name_cmp): New.
6603169689Skan	(resort_sorted_fields): New.
6604169689Skan	(resort_type_method_vec): New.
6605169689Skan	(finish_struct_methods): Delete cast.
6606169689Skan	(finish_struct_1): Delete cast.
6607169689Skan	* cp-tree.h: Include ggc.h.
6608169689Skan	(struct lang_type_class): Add reorder attribute to field `methods'.
6609169689Skan	(union lang_decl_u3): Add reorder attribute to field `sorted_fields'.
6610169689Skan	(resort_sorted_fields): New prototype.
6611169689Skan	(resort_type_method_vec): New prototype.
6612169689Skan	* call.c: Don't include ggc.h.
6613169689Skan	* decl.c: Likewise.
6614169689Skan	* decl2.c: Likewise.
6615169689Skan	* init.c: Likewise.
6616169689Skan	* lex.c: Likewise.
6617169689Skan	* method.c: Likewise.
6618169689Skan	* optimize.c: Likewise.
6619169689Skan	* parse.y: Likewise.
6620169689Skan	* pt.c: Likewise.
6621169689Skan	* repo.c: Likewise.
6622169689Skan	* search.c: Likewise.
6623169689Skan	* semantics.c: Likewise.
6624169689Skan	* spew.c: Likewise.
6625169689Skan	* tree.c: Likewise.
6626169689Skan
6627169689Skan	* lang-specs.h: Remove comment.
6628169689Skan
6629169689Skan	2002-12-03  Geoffrey Keating  <geoffk@apple.com>
6630169689Skan
6631169689Skan	* cp-tree.h (struct operator_name_info_t): Mark for GTY machinery.
6632169689Skan	(operator_name_info): Mark to be saved for PCH, specify size.
6633169689Skan	(assignment_operator_name_info): Likewise.
6634169689Skan
6635169689Skan	2002-11-19  Geoffrey Keating  <geoffk@apple.com>
6636169689Skan
6637169689Skan	* decl.c (anon_cnt): Mark to be saved for PCH.
6638169689Skan
6639169689Skan	2002-10-25  Geoffrey Keating  <geoffk@apple.com>
6640169689Skan
6641169689Skan	* lex.c  (init_reswords): Delete now-untrue comment.
6642169689Skan	Allocate ridpointers using GGC.
6643169689Skan
6644169689Skan	2002-10-04  Geoffrey Keating  <geoffk@apple.com>
6645169689Skan
6646169689Skan	* cp-tree.h (union lang_decl_u2): Add tags to all fields.
6647169689Skan
6648169689Skan	* g++spec.c (lang_specific_driver): Don't include standard
6649169689Skan	libraries in `added'.
6650169689Skan
6651169689Skan	2002-08-27  Geoffrey Keating  <geoffk@redhat.com>
6652169689Skan
6653169689Skan	* decl2.c (finish_file): Call c_common_write_pch.
6654169689Skan	* Make-lang.in (CXX_C_OBJS): Add c-pch.o.
6655169689Skan
6656169689Skan	2002-08-17  Geoffrey Keating  <geoffk@redhat.com>
6657169689Skan
6658169689Skan	* g++spec.c (lang_specific_driver): Treat .h files as C++ header
6659169689Skan	files when using g++.
6660169689Skan	* lang-specs.h: Handle compiling C++ header files.
6661169689Skan
6662169689Skan2003-01-09  Jakub Jelinek  <jakub@redhat.com>
6663169689Skan
6664169689Skan	* decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.
6665169689Skan
6666169689Skan2003-01-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6667169689Skan
6668169689Skan	* pt.c (push_access_scope_real): Call push_to_top_level for
6669169689Skan	function in namespace scope.
6670169689Skan	(pop_access_scope): Call pop_from_top_level for function in
6671169689Skan	namespace scope.
6672169689Skan
6673169689Skan2003-01-09  Jakub Jelinek  <jakub@redhat.com>
6674169689Skan
6675169689Skan	* decl.c (start_decl): Don't set DECL_COMMON for __thread variables.
6676169689Skan
6677169689Skan2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
6678169689Skan
6679169689Skan	* Make-lang.in (c++.install-common, c++.install-man,
6680169689Skan	c++.uninstall): Prepend $(DESTDIR) to destination paths in
6681169689Skan	all (un)installation commands.
6682169689Skan	(c++.install-common): Rewrite $(LN) commands to support
6683169689Skan	DESTDIR with "ln" as well as with "ln -s".
6684169689Skan
6685169689Skan2003-01-08  Jason Merrill  <jason@redhat.com>
6686169689Skan
6687169689Skan	* parser.c (cp_parser_primary_expression): See through explicitly
6688169689Skan	scoped ALIAS_DECLs, too.
6689169689Skan
6690169689Skan2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
6691169689Skan
6692169689Skan	* decl.c: Remove some #if 0 code.
6693169689Skan
6694169689Skan	* decl.c: ANSIfy function declarations.
6695169689Skan
6696169689Skan2003-01-07  Mark Mitchell  <mark@codesourcery.com>
6697169689Skan
6698169689Skan	* parser.c (cp_parser_asm_definition): Correct handling of omitted
6699169689Skan	operands.
6700169689Skan
6701169689Skan2003-01-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6702169689Skan
6703169689Skan	PR c++/9030
6704169689Skan	* decl.c (make_typename_type): Check access only when tf_error.
6705169689Skan	(make_unbound_class_template): Likewise.
6706169689Skan	* pt.c (saved_access_scope): New variable.
6707169689Skan	(push_access_scope_real): New function.
6708169689Skan	(push_access_scope): Likewise.
6709169689Skan	(pop_access_scope): Likewise.
6710169689Skan	(tsubst_default_argument): Use them.
6711169689Skan	(instantiate_template): Likewise.
6712169689Skan	(regenerate_decl_from_template): Likewise.
6713169689Skan	(instantiate_decl): Likewise.
6714169689Skan	(get_mostly_instantiated_function_type): Likewise.
6715169689Skan
6716169689Skan2003-01-07  Nathanael Nerode <neroden@gcc.gnu.org>
6717169689Skan
6718169689Skan	* tree.c: Delete bogus #if 0 code.
6719169689Skan
6720169689Skan2003-01-07  Andreas Schwab  <schwab@suse.de>
6721169689Skan
6722169689Skan	* class.c (layout_class_type): Don't use
6723169689Skan	PCC_BITFIELD_TYPE_MATTERS if not defined.
6724169689Skan
6725169689Skan2003-01-06  Mark Mitchell  <mark@codesourcery.com>
6726169689Skan
6727169689Skan	PR c++/9165
6728169689Skan	* decl2.c (build_cleanup): Mark the object as used.
6729169689Skan
6730169689Skan	* pt.c (retrieve_local_specialization): Revert 2003-01-05 change.
6731169689Skan	(hash_local_specialization): New function.
6732169689Skan	(register_local_specialization): Revert 2003-01-05 change.
6733169689Skan	(instantiate_decl): Use hash_local_specialization when creating
6734169689Skan	the local_specializations table.
6735169689Skan
6736169689Skan	* decl2.c (mark_used): Do not synthesize thunks.
6737169689Skan
6738169689Skan	* class.c (layout_class_type): Correct handling of unnamed
6739169689Skan	bitfields wider than their types.
6740169689Skan
6741169689Skan	PR c++/9189
6742169689Skan	* parser.c (cp_parser): Remove default_arg_types.  Update
6743169689Skan	documentation for unparsed_functions_queues.
6744169689Skan	(cp_parser_late_parsing_default_args): Take a FUNCTION_DECL as the
6745169689Skan	parameter.
6746169689Skan	(cp_parser_new): Don't set parser->default_arg_types.
6747169689Skan	(cp_parser_function_definition): Adjust usage of
6748169689Skan	unparsed_funtions_queues.
6749169689Skan	(cp_parser_class_specifier): Don't mess with
6750169689Skan	parser->default_arg_types.  Handle default argument processing in
6751169689Skan	a separate phase from function body processing.
6752169689Skan	(cp_parser_template_declaration_after_export): Adjust usage of
6753169689Skan	unparsed_functions_queues.
6754169689Skan	(cp_parser_late_parsing_for_member): Do not handle default
6755169689Skan	arguments.
6756169689Skan
6757169689Skan2003-01-06  Nathan Sidwell  <nathan@codesourcery.com>
6758169689Skan
6759169689Skan	PR c++/9109
6760169689Skan	* parser.c (cp_parser_declarator_kind): New enum.
6761169689Skan	(cp_parser_declarator): Adjust.
6762169689Skan	(cp_parser_direct_declarator): Adjust. Allow for either named or
6763169689Skan	abstract declarator. Prefer abstract, if possible. Allow
6764169689Skan	parenthesized function name.
6765169689Skan	(cp_parser_condition): Adjust cp_parser_declarator call.
6766169689Skan	(cp_parser_explicit_instantiation): Likewise.
6767169689Skan	(cp_parser_init_declarator): Likewise.
6768169689Skan	(cp_parser_type_id): Likewise.
6769169689Skan	(cp_parser_function_definition): Likewise.
6770169689Skan	(cp_parser_member_declaration): Likewise.
6771169689Skan	(cp_parser_parameter_declaration): Use cp_parser_declarator to do
6772169689Skan	the tentative parsing.
6773169689Skan	(cp_parser_exception_declaration): Likewise.
6774169689Skan
6775169689Skan2003-01-05  Mark Mitchell  <mark@codesourcery.com>
6776169689Skan
6777169689Skan	* parser.c (cp_parser_template_parameter): Adjust call to
6778169689Skan	cp_parser_parameter_declaration.
6779169689Skan	(cp_parser_parameter_declaration_list): Likewise.
6780169689Skan	(cp_parser_parameter_declaration): Replace
6781169689Skan	greater_than_is_operator_p with template_parm_p parameter.  Do not
6782169689Skan	cache tokens for template default arguments.
6783169689Skan
6784169689Skan	* pt.c (retrieve_local_specialization): Use htab_find, not
6785169689Skan	htab_find_with_hash.
6786169689Skan	(register_local_specialization): Use htab_find_slot, not
6787169689Skan	htab_find_slot_with_hash.
6788169689Skan	(instantiate_decl): Pass a hash function to htab_create.
6789169689Skan
6790169689Skan2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6791169689Skan
6792169689Skan	* parser.c (cp_parser_binary_expression,
6793169689Skan	cp_parser_multiplicative_expression,
6794169689Skan	cp_parser_additive_expression, cp_parser_shift_expression,
6795169689Skan	cp_parser_relational_expression, cp_parser_equality_expression,
6796169689Skan	cp_parser_and_expression, cp_parser_exclusive_or_expression,
6797169689Skan	cp_parser_inclusive_or_expression,
6798169689Skan	cp_parser_logical_and_expression, cp_parser_logical_or_expression,
6799169689Skan	cp_parser_binary_expression): Const-ify.
6800169689Skan
6801169689Skan2003-01-04  Mark Mitchell  <mark@codesourcery.com>
6802169689Skan
6803169689Skan	* method.c (use_thunk): Disable access control while building the
6804169689Skan	body of the thunk.
6805169689Skan
6806169689Skan2003-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
6807169689Skan
6808169689Skan	* cvt.c, decl.c, decl2.c: This is the C++ front end, not the C
6809169689Skan	front end.
6810169689Skan
6811169689Skan2003-01-03  Matt Austern  <austern@apple.com>
6812169689Skan
6813169689Skan	* cp-tree.h (struct lang_type_class): add field for key method
6814169689Skan	(cp_global_trees): rename dynamic_classes to keyed_classes
6815169689Skan	(key_method): add definition
6816169689Skan	* class.c (finish_struct_1): compute class's key method, and add
6817169689Skan	the class to keyed_classes list if there is no key method.
6818169689Skan	* decl.c (finish_function): add class to keyed_classes list if we
6819169689Skan	see a definition of the class's key method.
6820169689Skan	* pt.c (instantiate_class_template): add template specialization
6821169689Skan	of a dynamic class to keyed_classes list.
6822169689Skan	* decl2.c (key_method): remove
6823169689Skan	(finish_file): iterate only through keyed_classes list when
6824169689Skan	deciding whether to emit vtables, remove class from its list after
6825169689Skan	we do the emission.
6826169689Skan
6827169689Skan2003-01-02  Jason Merrill  <jason@redhat.com>
6828169689Skan
6829169689Skan	* call.c (build_conditional_expr): Stabilize lvalues properly.
6830169689Skan	* cvt.c (ocp_convert): Don't build NOP_EXPRs of class type.
6831169689Skan	* tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues.
6832169689Skan	Don't allow CALL_EXPR or VA_ARG_EXPR, either.
6833169689Skan
6834169689Skan	* call.c (convert_like_real): Call decl_constant_value for an
6835169689Skan	IDENTITY_CONV even if there are no more conversions.
6836169689Skan
6837169689Skan	* cvt.c (build_up_reference): Don't push unnamed temps.
6838169689Skan
6839169689Skan	* decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL.
6840169689Skan
6841169689Skan	* dump.c (cp_dump_tree): Don't try to dump class-specific fields
6842169689Skan	for a backend struct.
6843169689Skan
6844169689Skan	* except.c (wrap_cleanups_r, build_throw): Make
6845169689Skan	MUST_NOT_THROW_EXPRs void.
6846169689Skan	* init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR.
6847169689Skan
6848169689Skan	* init.c (build_vec_delete_1): Pre-evaluate the base address.
6849169689Skan
6850169689Skan	* init.c (get_temp_regvar): Simplify logic.
6851169689Skan
6852169689Skan	* tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks if
6853169689Skan	our replacement is a decl.
6854169689Skan
6855169689Skan	* decl.c (cp_make_fname_decl): Push the decls inside the
6856169689Skan	outermost scope.
6857169689Skan
6858169689Skan2003-01-03  Nathan Sidwell  <nathan@codesourcery.com>
6859169689Skan
6860169689Skan	PR c++/45, c++/3784
6861169689Skan	* tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
6862169689Skan	the same too.
6863169689Skan
6864169689Skan2003-01-03  Graham Stott  <graham.stott@btinternet.com>
6865169689Skan
6866169689Skan	* parser.c (struct cp_parser): Add access_checks_lists field
6867169689Skan	(cp_parser_simple_declaration): Use.
6868169689Skan	(cp_parser_init_declarator): Likewise.
6869169689Skan
6870169689Skan2003-01-02  Mark Mitchell  <mark@codesourcery.com>
6871169689Skan
6872169689Skan	* parser.c (cp_parser_declaration): Accept the __extension__
6873169689Skan	keyword before the declaration.
6874169689Skan
6875169689Skan	PR c++/2843
6876169689Skan	* parser.c (cp_parser_parameter_declaration): Allow attributes to
6877169689Skan	appear after the declarator.
6878169689Skan
6879169689Skan	* call.c (build_new_method_call): Fix typo in message format
6880169689Skan	string.
6881169689Skan
6882169689Skan2003-01-02  Mark Mitchell  <mark@codesourcery.com>
6883169689Skan
6884169689Skan	* parser.c (cp_lexer_next_token_is): Declare it inline.
6885169689Skan	(cp_lexer_set_source_position_from_token): Likewise.
6886169689Skan	(cp_lexer_debugging_p): Likewise.
6887169689Skan	(cp_parser_parsing_tentatively): Likewise.
6888169689Skan	(cp_parser_nested_name_specifier_opt): Reduce the number of calls
6889169689Skan	to the cp_lexer_peek_token.
6890169689Skan
6891169689Skan	* parser.c (cp_parser_sizeof_operand): Do not evaluate the
6892169689Skan	expression.
6893169689Skan
6894169689Skan2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
6895169689Skan
6896169689Skan	* cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c,
6897169689Skan	cp/lang-options.h, cp/lang-specs.h, cp/lex.h, cp/ptree.c,
6898169689Skan	cp/repo.c: Fix copyright years.
6899169689Skan
6900169689Skan2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
6901169689Skan
6902169689Skan	* lex.c: Remove superfluous include of cpplib.h.
6903169689Skan	(CONSTRAINT): Define without conditions.
6904169689Skan	(init_cp_pragma): Use c_register_pragma.
6905169689Skan
6906