]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
cp-tree.h (ansi_null_node): New variable.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
898600d5
MM
11998-08-19 Mark Mitchell <mark@markmitchell.com>
2
3 * cp-tree.h (ansi_null_node): New variable.
4 * decl.c (ansi_null_node): New variable.
5 (init_decl_processing): Initialize its type.
6 * lex.c (init_parse): Initialize its value. Use ansi_null_node
7 for null_node in non-ANSI mode.
8 * typeck.c (build_binary_op_nodefault): Use ansi_null_node in
9 place of null_node to avoid spurious errors.
10
648f19f6
MM
111998-08-17 Mark Mitchell <mark@markmitchell.com>
12
13 * cp-tree.h (enter_scope_of): New function.
14 * parse.y (complex_direct_notype_declarator): Use it.
15 * semantics.c (enter_scope_of): New function.
16
287662c5
JM
171998-08-17 Jason Merrill <jason@yorick.cygnus.com>
18
482b883f
JM
19 * decl.c (grokparms): No, here.
20
2d914461
JM
21 * decl.c (grokdeclarator): Catch parm with pointer to array of
22 unknown bound here...
23 * method.c (process_overload_item): ...not here.
24
8cd4c175
JM
25 * gxxint.texi: Remove obsolete documentation of overloading code.
26
27 * decl.c (finish_enum): Also set TYPE_SIZE_UNIT.
509087ae 28 * class.c (finish_struct_bits): Likewise.
8cd4c175
JM
29
30 * tree.c (lvalue_type): Fix for arrays.
31 * typeck.c (build_unary_op): Use lvalue_type.
32 * call.c (add_function_candidate): Likewise.
33 * cvt.c (convert_to_reference): Likewise.
34
35 * decl2.c (lang_decode_option): Ignore -traditional.
36
287662c5
JM
37 * init.c (build_offset_ref): Don't mess with error_mark_node.
38 * lex.c (do_scoped_id): Use cp_error.
39
40 * rtti.c (get_tinfo_fn): Don't mess with the context for now.
41
0d2a8b1b
BK
421998-08-17 Benjamin Kosnik <bkoz@loony.cygnus.com>
43
44 * decl.c (grokdeclarator): Allow anonymous types to be cv-qualified.
45
69789cfc
JL
46Mon Aug 17 10:40:18 1998 Jeffrey A Law (law@cygnus.com)
47
48 * cp-tree.h (set_identifier_local_value): Provide prototype.
49
50 * decl2.c (do_namespace_alias): Remove unused variables `binding'
51 and `old'.
52
b2fdd68c
NC
53Fri Aug 14 16:42:27 1998 Nick Clifton <nickc@cygnus.com>
54
55 * Makefile.in: Rename BBISON to BISON so that it can be properly
56 inherited from the parent makefile.
57
2ce3c6c6
JM
581998-08-13 Jason Merrill <jason@yorick.cygnus.com>
59
60 * lang-options.h: Add -finit-priority.
61 * decl2.c: Likewise. Check flag_init_priority instead of
62 USE_INIT_PRIORITY.
63
64 * decl2.c (setup_initp): New fn.
65 (start_objects, finish_objects, do_ctors): Handle init_priority.
66 (do_dtors, finish_file): Likewise.
67
db04386f
JM
681998-08-13 Jason Merrill <jason@yorick.cygnus.com>
69
70 * pt.c (tsubst_copy): Hush warning.
71
72 * rtti.c (get_tinfo_fn): Also set DECL_IGNORED_P.
73
05008fb9
MM
741998-08-12 Mark Mitchell <mark@markmitchell.com>
75
49e04385
MM
76 * pt.c (print_template_context): Don't abort when instantiating a
77 synthesized method.
78
05008fb9
MM
79 * decl.c (grokdeclarator): Issue errors on namespace qualified
80 declarators in parameter lists or in class scope.
81
8ec2ac34
MM
821998-08-09 Mark Mitchell <mark@markmitchell.com>
83
84 * pt.c (check_explicit_specialization): Don't abort on bogus
85 explicit instantiations.
86
52363387
MM
871998-08-07 Mark Mitchell <mark@markmitchell.com>
88
ae58fa02
MM
89 * typeck.c (require_complete_type): Use complete_type_or_else.
90 (complete_type_or_else): Always return NULL_TREE on failure, as
91 documented.
92
93 * pt.c (tsubst_aggr_type): Prototype.
94 (tsubst_decl): New function, split out from tsubst. Set
95 input_filename and lineno as appropriate.
96 (pop_tinst_level): Restore the file and line number saved in
97 push_tinst_level.
98 (instantiate_class_template): Set input_filename and lineno as
99 appropriate.
100 (tsubst): Move _DECL processing to tsubst_decl. Make sure the
101 context for a TYPENAME_TYPE is complete.
102
103 * decl2.c (grokbitfield): Issue errors on bitfields declared with
104 function type.
105 (do_dtors): As in do_ctors, pretend to be a member of the same
106 class as a static data member while generating a call to its
107 destructor.
108
109 * cvt.c (cp_convert_to_pointer): Handle NULL pointer
52363387
MM
110 conversions, even in complex virtual base class hierarchies.
111
ed44da02
MM
1121998-08-06 Mark Mitchell <mark@markmitchell.com>
113
114 * cp-tree.h (ENUM_TEMPLATE_INFO): New macro.
115 (TYPE_TEMPLATE_INFO): Likewise.
116 (SET_TYPE_TEMPLATE_INFO): Likewise.
117 (ENUM_TI_TEMPLATE): Likewise.
118 (ENUM_TI_ARGS): Likewise.
119 (lookup_nested_type_by_name): Remove.
120 * decl.c (maybe_process_template_type_declaration): Handle enums.
121 (start_enum): Don't check for primary-template enum declarations
122 here.
123 (finish_enum): Clean up, document. Make sure template enum
124 constants get the correct type.
125 (build_enumerator): Copy initializers for template enumerations,
126 too.
127 (grok_enum_decls): Document.
128 * lex.c (do_identifier): Document use of LOOKUP_EXPR a bit
129 better. Build LOOKUP_EXPRs for local variables, even if they are
130 TREE_PERMANENT.
131 * pt.c (tsubst_enum): Remove field_chain parameter.
132 (template_class_depth): Include the depth of surrounding function
133 contexts.
134 (push_template_decl): Check for primary-template enum declarations
135 here. Deal with enumeration templates.
136 (lookup_template_class): Likewise.
137 (for_each_template_parm): Likewise.
138 (instantiate_class_template): Don't call tsubst_enum directly,
139 call tsubst instead, to instantiate enums. Deal with all
140 field_chain issues here, not in tsubst_enum.
141 (lookup_nested_type_by_name): Remove.
142 (tsubst_aggr_type): Revise handling of enumeration types.
143 (tsubst): Likewise.
144 (tsubst_copy): Likewise.
145 (tsubst_expr): Call tsubst, not tsubst_enum for TAG_DEFNs.
146
e4a84209
MM
1471998-08-04 Mark Mitchell <mark@markmitchell.com>
148
149 * decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it
150 uses template parameters.
151 * method.c (build_template_parm_names): Use the full set of
152 template arguments for tsubst'ing.
153 (build_overload_identifier): Pass the full set of template
154 arguments to build_template_parm_names, not just the
155 innermost_args.
156 * pt.c (TMPL_ARGS_DEPTH): Define using
157 TMPL_ARGS_HAVE_MULTIPLE_LEVELS, for clarity.
158 (NUM_TMPL_ARGS): New macro.
159 (add_outermost_template_args): Deal with the case where the outer
160 args will be completely discarded.
161 (coerce_template_parms): Use the full set of template arguments
162 for tsubst'ing. Simplify. Add some asserts. Improve
163 error messages.
164 (lookup_template_class): Pass the full set of template arguments
165 to coerce_template_parms.
166 (tsubst): Add assertion.
167 (do_type_instantiation): Don't instantiate member template
168 classes.
169
170 * init.c (build_offset_ref): Deal with a TEMPLATE_ID_EXPR whose
171 name is a LOOKUP_EXPR, rather than an IDENTIFIER_NODE.
172
c1def683
JM
1731998-08-03 Jason Merrill <jason@yorick.cygnus.com>
174
175 * method.c (set_mangled_name_for_decl): Change return type to void.
176
177 * decl.c (lookup_name_real): A namespace-level decl takes priority
178 over implicit typename. Avoid doing the same lookup twice.
179
180 * search.c (dependent_base_p): New fn.
181 (dfs_pushdecls, dfs_compress_decls): Use it.
182
183 * typeck.c (get_member_function_from_ptrfunc): Don't try to handle
184 virtual functions if the type doesn't have any.
185
93b7fd0a
MM
1861998-08-03 Mark Mitchell <mark@markmitchell.com>
187
188 * decl2.c (grokfield): Don't mangle the name of a TYPE_DECL if it
189 uses template parameters.
190
672476cb
MM
1911998-08-02 Mark Mitchell <mark@markmitchell.com>
192
193 * cp-tree.def (LOOKUP_EXPR): Document. Remove second argument.
194 * cp-tree.h (DECL_TI_TEMPLATE): Improve documentation.
195 * lex.c (do_identifier): Don't use a second argument, or a type,
196 when building LOOKUP_EXPRs.
197 (do_identifier): Likewise.
198 (do_scoped_id): Likewise.
199 * method.c (hack_identifier): Improve error message.
200 * pt.c (lookup_template_function): Don't needlessly call
201 copy_to_permanent or build_min.
202 (tsubst_copy): Remove #if 0'd code. Tsubst into LOOKUP_EXPRs if
203 necessary.
204 (do_decl_instantiation): Improve error message.
205 * tree.c (mapcar, case LOOKUP_EXPR): Don't be sorry; make a copy.
206 (build_min): Copy the type to the permanent obstack, too.
207
c787dd82
JM
2081998-08-01 Jason Merrill <jason@yorick.cygnus.com>
209
210 * init.c (init_init_processing): Remove BI* handling.
211 (build_builtin_call): Remove.
212 (build_builtin_delete_call): New fn.
213 (build_delete): Use it.
214
39c01e4c
MM
2151998-07-31 Mark Mitchell <mark@markmitchell.com>
216
217 * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro.
218 (maybe_check_template_type): New function.
219 * decl.c (maybe_process_template_type_declaration): New function,
220 split out from pushtag Call maybe_check_template_type.
221 (pushtag): Use it. Use PROCESSING_REAL_TEMPLATE_DECL_P.
222 (xref_tag): Use PROCESSING_REAL_TEMPLATE_DECL_P.
223 * friend.c (do_friend): Use PROCESSING_REAL_TEMPLATE_DECL_P.
224 * pt.c (template_class_depth_real): Generalization of ...
225 (template_class_depth): Use it.
226 (register_specialization): Use duplicate_decls for duplicate
227 declarations of specializations.
228 (maybe_check_template_type): New function.
229 (push_template_decl_real): Fix comment.
230 (convert_nontype_argument): Likewise.
231 (lookup_template_class): Likewise. Avoid an infinite loop on
232 erroneous code.
233 (tsubst_friend_function): Fix comment.
234 (tsubst, case FUNCTION_DECL): Deal with a DECL_TI_TEMPLATE that is
235 an IDENTIFIER_NODE.
236 * semantics.c (begin_function_definition): Use
237 reset_specialization to note that template headers don't apply
238 directly to declarations after the opening curly for a function.
239
53fdbb3b
JM
2401998-07-29 Jason Merrill <jason@yorick.cygnus.com>
241
19f1bd34
JM
242 * decl.c (push_overloaded_decl): Use current_namespace instead of
243 DECL_CONTEXT (decl) to determine where we go.
244
53fdbb3b
JM
245 * decl.c (lookup_name_real): Fix typo.
246
8fb08bdd
MM
2471998-07-28 Mark Mitchell <mark@markmitchell.com>
248
249 * friend.c (is_friend): Be lenient with member functions to deal
250 with nested friends.
251
282a221c
JM
2521998-07-28 Jason Merrill <jason@yorick.cygnus.com>
253
254 * class.c (finish_struct_1): Convert integer_zero_node to
255 ssizetype before passing it to set_rtti_entry.
256 * typeck2.c (initializer_constant_valid_p): Allow conversion of 0
257 of any size to a pointer.
258
36a117a5
MM
2591998-07-27 Mark Mitchell <mark@markmitchell.com>
260
261 * cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove.
262 (build_template_decl_overload): Remove.
263 (set_mangled_name_for_decl): New function.
264 (innermost_args): Remove is_spec parameter.
265 (most_specialized, most_specialized_class): Remove declarations.
266 (lookup_template_class): Add entering_scope parameter.
267 (maybe_process_partial_specialization): New function.
268 (finish_template_decl): Likewise.
269 (finish_template_type): Likewise.
270 * class.c (finish_struct): Clean up processing of member template
271 specializations.
272 * decl.c (pushtag): Fix formatting.
273 (lookup_tag): Improve handling of pseudo-global levels.
274 (make_typename_type): Adjust call to lookup_template_class.
275 (shadow_tag): Use maybe_process_partial_specialization.
276 (xref_tag): Improve handling of member friends.
277 (start_function): Call push_nested_class before
278 push_template_decl. Don't call push_template_decl for
279 specializations.
280 * decl2.c (grok_x_components): Don't call xref_tag for
281 template instantiations. Handle UNION_TYPEs like RECORD_TYPEs.
282 (grokclassfn): Use set_mangled_name_for_decl.
283 (arg_assoc_class): Adjust call to innermost_args.
284 (mark_used): Don't call instantiate_decl for a TEMPLATE_DECL.
285 * error.c (dump_function_name): Improve printing of template
286 function names.
287 * friend.c (is_friend): Don't compare types of decls to determine
288 friendship, unless flag_guiding_decls.
289 (make_friend_class): Partial specializations cannot be friends.
290 (do_friend): Use set_mangled_name_for_decl. Call
291 push_template_decl_real instead of push_template_decl.
292 * method.c (build_decl_overload_real): Remove prototype. Give it
293 external linkage.
294 (build_overload_identififer): Adjust call to innermost_args.
295 (build_template_decl_overload): Remove.
296 (set_mangled_name_for_decl): New function.
297 * parse.y (.finish_template_type): New non-terminal.
298 (template_def): Use finish_template_decl. Use template_extdef
299 instead of extdef.
300 (template_extdef, template_datadef): New non-terminals, containing
301 only those rules for things which can be templates.
302 (datadef): Tidy.
303 (template_type, self_template_type): Use .finish_template_type.
304 (named_class_head): Use maybe_process_partial_specialization.
305 * pt.c (mangle_class_name_for_template): Remove context parameter.
306 (get_class_bindings): Remove outer_args parameter.
307 (complete_template_args): Remove.
308 (add_outermost_template_args): New function.
309 (register_specialization): Return the specialization.
310 (unregister_specialization): New function.
311 (tsubst_template_parms): Likewise.
312 (most_specialized, most_specialized_class): Prototype here as
313 static.
314 (original_template): Rename to most_general_template.
315 (tsubst_template_parms): New function.
316 (set_mangled_name_for_template_decl): Likewise.
317 (TMPL_ARGS_DEPTH): New macro.
318 (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Adjust.
319 (TMPL_ARGS_LEVEL): New macro.
320 (SET_TMPL_ARGS_LEVEL): Likewise.
321 (TMPL_ARG): Likewise.
322 (SET_TMPL_ARG): Likewise.
323 (TMPL_ARGS_DEPTH): Likewise.
324 (finish_member_template_decl): Use finish_template_decl.
325 (maybe_process_partial_specialization): New function, split out
326 from tsubst.
327 (inline_needs_template_parms): Use TMPL_PARMS_DEPTH.
328 (maybe_begin_member_template_processing): Use new macros.
329 (is_member_template): Likewise.
330 (is_member_template_class): Likewise.
331 (add_to_template_args): Likewise. Deal with multiple levels of
332 args.
333 (maybe_process_partial_specialization): New function.
334 (retrieve_specialization): Add consistency check.
335 (determine_specialization): Return full argument list.
336 (check_explicit_specialization): Tweak friend handling. Use full
337 argument lists. Simplify.
338 (current_template_args): Use new macros.
339 (push_template_decl_real): Change ill-named mainargs to specargs.
340 Check that a partial specialization actually specializes at least
341 one parameter. Improve friend handling. Modify for full
342 template arguments.
343 (classtype_mangled_name): Don't mangle the names of
344 specializations.
345 (lookup_template_class): Add entering_scope parameter. Use it to
346 avoid finding a template type when an instantiation is required.
347 Simplify. Use full template arguments.
348 (tsubst_friend_function): Use unregister_specialization. Use new
349 macros. Use full template arguments.
350 (tsubst_friend_class): Substitute, using tsubst_template_parms,
351 into the template parameters before passing them to
352 redeclare_class_template.
353 (instantiate_class_template): Simplify. Use full template
354 arguments. Adjust calls to get_class_bindings. Use
355 SET_IDENTIFIER_TYPE_VALUE where needed. Improve friend handling.
356 (innermost_args): Use new macros.
357 (tsubst_aggr_type): New function, split out from tsubst.
358 (tsubst): Use tsubst_aggr_type, tsubst_template_parms, new calling
359 conventions for lookup_tmeplate_class. Refine handling of partial
360 instantiations. Remove calls to complete_template_args.
361 Simplify. Add consistency checks. Use set_mangled_name_for_decl
362 and set_mangled_name_for_template_decl.
363 (tsubst_copy): Use tsubst_aggr_type.
364 (instantiate_template): Use full template arguments.
365 (more_specialized): Improve formatting.
366 (more_specialized_class): Adjust calls to get_class_bindings.
367 (get_bindings_real): Don't call complete_template_args.
368 (most_specialized): Don't overwrite input; create a new list.
369 (most_specialized_class): Use most_general_template.
370 (regenerate_decl_from_template): Use unregister_specialization.
371 Use full template arguments.
372 (instantiate_decl): Use full template arguments.
373 (set_mangled_name_for_template_decl): New function.
374 * semantics.c (begin_class_definition): Use
375 maybe_process_partial_specialization.
376 (finish_member_class_template): New function.
377 (finish_template_decl): Likewise.
378 (finish_template_type): Likewise.
379 (typeck.c): Don't crash after issuing a compiler_error.
380 * Makefile.in (CONFLICTS): Adjust; we removed a s/r conflict.
381
92ac31f1
JM
3821998-07-27 Jason Merrill <jason@yorick.cygnus.com>
383
3551c177
JM
384 * typeck2.c (build_functional_cast): Handle default-initialization.
385
66c2127e
JM
386 * call.c (build_over_call): Pass 1 to popclass.
387
92ac31f1
JM
388 * parse.y (direct_notype_declarator): Add precedence declaration
389 to notype_unqualified_id case.
3551c177 390 * Makefile.in (EXPECT): Adjust.
92ac31f1
JM
391
392 * tree.c (ovl_member): Fix for single function in OVL.
393
ea6c1142
DB
3941998-07-27 Dave Brolley <brolley@cygnus.com>
395
396 * c-lex.c (yylex): Fix boundary conditions in character literal and
397 string literal loops.
398
c6160f8f
JM
3991998-07-24 Jason Merrill <jason@yorick.cygnus.com>
400
b8b1a3c1
JM
401 * decl.c (lookup_name_real): OK, do return the from_obj value
402 unless got_object depends on template parms.
403
bc22fa98
JM
404 * parse.y (nested_name_specifier_1): Pull out the TYPE_MAIN_VARIANT.
405
d1fec180
JM
406 * pt.c (coerce_template_parms): Also complain about local enums.
407
c6160f8f
JM
408 * cp-tree.h: Add prototype for set_identifier_local_value.
409 * decl.c (set_identifier_local_value_with_scope): Make static,
410 prototype.
411 * search.c (covariant_return_p): Likewise.
412 * except.c (build_terminate_handler, alloc_eh_object): Likewise.
413
414 * call.c (build_method_call): Only pull out the type of a destructor
415 if it's a template type parm.
416 * decl.c (lookup_name_real): Never return the from_obj value.
417
25eb19ff
JM
4181998-07-23 Jason Merrill <jason@yorick.cygnus.com>
419
420 * except.c (process_start_catch_block_old): Call start_decl_1 for
421 catch parm.
422 * decl.c (start_decl_1): Avoid duplicate error.
423
424 * init.c (expand_default_init): Only perform the initialization if
425 it will do something.
426
4271998-07-23 H.J. Lu (hjl@gnu.org)
428
429 * parse.y (base_class): Check for invalid base class.
430
67f7c391
JM
4311998-07-23 Jason Merrill <jason@yorick.cygnus.com>
432
7e776093
JM
433 * decl2.c (import_export_template): Fold in...
434 (import_export_class): ...to here. Handle dllimport/export.
435
67f7c391
JM
436 * class.c (build_vtable): Pass at_eof to import_export_vtable.
437 (prepare_fresh_vtable): Likewise.
438 * decl2.c (import_export_class): Split out...
439 (finish_prevtable_vardecl): From here.
440 * class.c (finish_struct_1): Call import_export_class if at_eof.
441
442 * decl.c (start_function): #if 0 mysterious code I wrote and have
443 forgotten why.
444 * rtti.c (get_tinfo_fn): If this is for a class type, set
445 DECL_CONTEXT.
446
268ae1b0
JM
4471998-07-22 Jason Merrill <jason@yorick.cygnus.com>
448
449 * inc/exception: Change terminate and unexpected to ().
450
451 * parse.y (named_class_head_sans_basetype_defn): A
452 named_class_head_sans_basetype followed by '{' or ':' is a defn.
453
53929c47
JM
4541998-07-21 Jason Merrill <jason@yorick.cygnus.com>
455
456 * tree.c (canonical_type_variant): New fn to handle arrays.
457 * cp-tree.h (CANONICAL_TYPE_VARIANT): Remove.
458 * pt.c (unify, default case): Also fold arg. Fix array bounds case.
459 * method.c (process_overload_item): Use build_overload_value for
460 arrays.
461
0d3ba739
DB
4621998-07-20 Dave Brolley <brolley@cygnus.com>
463
464 * lex.c (mbchar.h): #include it.
465 (GET_ENVIRONMENT): New macro.
466 (init_parse): Set character set based on LANG environment variable.
467 (real_yylex): Handle multibyte characters in character literals.
468 (real_yylex): Handle multibyte characters in string literals.
469
e13a4123
JM
4701998-07-19 Jason Merrill <jason@yorick.cygnus.com>
471
472 * lex.c (do_identifier): Look for class value even if we don't
473 have a global value. Do implicit declaration if parsing is 2.
474 * semantics.c (finish_call_expr): Pass 2 if we're doing Koenig
475 lookup.
476
8014a339
MM
4771998-07-19 Mark Mitchell <mark@markmitchell.com>
478
077e7015
MM
479 * decl.c (pushtag): Revert previous change.
480 * pt.c (lookup_template_class): Don't put out debugging
481 information for types that use template parameters.
482
d92e4d8c
MM
483 * decl.c (pushtag): Don't put out debugging information for
484 compiler-generated typedefs.
485
3df095e2
MM
486 * error.c (dump_type_real): Don't crash when presented with
487 intQI_type_node or the like.
488
8014a339
MM
489 * semantics.c (finish_translation_unit): Fix spelling error in
490 comment.
491
03d82991
JM
4921998-07-17 Jason Merrill <jason@yorick.cygnus.com>
493
0c64a9ca
JM
494 * decl.c (lookup_name_real): Pull out single function here.
495 (select_decl): Not here.
496 (unqualified_namespace_lookup): Use CP_DECL_CONTEXT.
497
6b945830
JM
498 * decl.c (qualify_lookup): Tweak again.
499
c3baf4b5
JM
500 * pt.c (lookup_template_class): Don't mess with the context of the
501 instantiation.
502 * decl2.c (current_decl_namespace): Remove special handling for
503 templates.
504
c5a6fc45
JM
505 * pt.c (tsubst, case FUNCTION_DECL): Fix getting complete args for
506 a member template specialization.
507
508 * tree.c (ovl_member): Use decls_match to compare functions.
509 * decl.c (decls_match): Check the context of a function.
510
03d82991
JM
511 * parse.y (primary): Use notype_unqualified_id instead of IDENTIFIER
512 in Koenig lookup support rules.
513 * semantics.c (finish_call_expr): Handle the new cases.
514
515 * typeck.c (build_x_function_call): Handle overloaded methods.
516
517 * decl.c (grokvardecl): Don't call build_static_name for extern "C".
518
c68c56f7
MM
5191998-07-16 Mark Mitchell <mark@markmitchell.com>
520
521 * semantics.c (finish_object_call_expr): Revert previous change.
522 * call.c (build_new_method_call): Likewise. Instead, convert
523 TYPE_DECLs to IDENTIFIERs here, in the presence of templates.
524
52c11ef6
JM
5251998-07-16 Jason Merrill <jason@yorick.cygnus.com>
526
9ed182dc
JM
527 * decl.c (qualify_lookup): Handle templates.
528
529 * decl2.c (do_using_directive): Don't pass ancestor.
530 * decl.c (push_using_directive): Calculate ancestor.
531
532 * decl2.c (do_nonmember_using_decl): Allow for type shadowing.
533 * decl.c (pushdecl): Move type shadowing handling from here...
534 (duplicate_decls): ...to here.
535 * decl.c (set_identifier_local_value_with_scope): New fn.
536 (pushdecl): Use it.
537 (set_identifier_local_value, lookup_type_current_level): New fns.
538 * decl2.c (do_local_using_decl): Handle types and binding level
539 stuff properly.
540
1c35f5b6
JM
541 * init.c (build_offset_ref): Don't call mark_used on an OVERLOAD.
542 * decl.c (select_decl): Extract a lone function from an OVERLOAD.
543 (lookup_namespace_name): Likewise.
544 * typeck.c (build_unary_op): Not here anymore.
545
546 * decl2.c (do_class_using_decl): Make sure we get an identifier.
547 * class.c (handle_using_decl): Ignore TYPE_DECLs.
548
52c11ef6
JM
549 * decl.c (qualify_lookup): New fn.
550 (lookup_name_real): Use it.
551
5521998-07-16 Martin v. Loewis <loewis@informatik.hu-berlin.de>
553
554 * decl2.c (add_using_namespace): When directly using a namespace
555 that was indirect before, promote it.
556
557 * cp-tree.h (LOOKUP_PREFER_TYPES, LOOKUP_PREFER_NAMESPACES,
558 LOOKUP_PREFER_BOTH, LOOKUP_NAMESPACES_ONLY, LOOKUP_TYPES_ONLY,
559 LOOKUP_QUALIFIERS_ONLY, LOOKUP_TEMPLATES_EXPECTED): New macros.
560 * decl.c (select_decl): Replace two flag parameters by one.
561 (unqualified_namespace_lookup): Likewise, pass flag.
562 (lookup_flags): New function.
563 (lookup_name_real): Compute flags, pass them.
564 (lookup_namespace_name): Call with zero-flag.
565 * decl2.c (ambiguous_decl): Add flag parameter, complain only
566 according to flags.
567 (lookup_using_namespace, qualified_lookup_using_namespace):
568 Add flag parameter, pass them through.
569 * lex.c (do_scoped_id): Call with zero-flag.
570
a942e89c
JM
5711998-07-16 Jason Merrill <jason@yorick.cygnus.com>
572
573 * typeck.c (convert_for_assignment): Use comptypes.
574
52889bc8
MM
5751998-07-16 Mark Mitchell <mark@markmitchell.com>
576
577 * semantics.c (finish_object_call_expr): Move test for the
578 function called being a TYPE_DECL to ...
579 * call.c (build_new_method_call): Here.
580
00dc6358
JM
5811998-07-15 Jason Merrill <jason@yorick.cygnus.com>
582
583 * decl2.c (arg_assoc_class): Also look at template arguments, if any.
584 (arg_assoc): Handle error_mark_node and multiple levels of TREE_LIST.
585
586 * lex.c (looking_for_typename): Don't initialize.
587
588 * decl2.c (ambiguous_decl): Clarify error message.
589
590 * decl.c (push_using_directive): Iterate over namespaces used
591 indirectly.
592
85c6cbaf
ML
593