OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [cp/] [ChangeLog-2003] - Blame information for rev 299

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 283 jeremybenn
2003-12-30  Nathan Sidwell  
2
 
3
        PR c++/13507
4
        * decl.c (duplicate_decls): Use build_type_attribute_variant to
5
        merge attributes.
6
 
7
        PR c++/13494
8
        * tree.c (build_cplus_array_type_1): Only build a minimal array
9
        type for dependent types or domains.
10
 
11
2003-12-29  Nathan Sidwell  
12
 
13
        PR c++/12774
14
        * typeck.c (comp_array_types): Fold non-dependent domains for
15
        ABI-1.
16
 
17
2003-12-29  Kriang Lerdsuwanakij  
18
 
19
        PR c++/13289
20
        * semantics.c (finish_id_expression): Only check if the type of
21
        a template argument is integral or enumeration when it is not
22
        dependent.
23
 
24
2003-12-29  Kriang Lerdsuwanakij  
25
 
26
        PR c++/12403
27
        * parser.c (cp_parser_template_declaration_after_export): Set up
28
        template specialization scope in case of explicit specialization.
29
 
30
2003-12-28  Mark Mitchell  
31
 
32
        PR c++/13081
33
        * decl.c (duplicate_decls): Preserve inline-ness when redeclaring
34
        a function template.
35
 
36
        PR c++/12613
37
        * decl.c (reshape_init): Reject GNU colon-style designated
38
        initializers in arrays.
39
 
40
        PR c++/13009
41
        * call.c (build_special_member_call): Do not assume that we have a
42
        pointer to the complete object in an assignment operator.
43
 
44
2003-12-28  Roger Sayle  
45
 
46
        PR c++/13070
47
        * decl.c (duplicate_decls): When setting the type of an anticipated
48
        declaration, merge the existing type attributes.
49
 
50
2003-12-25  Andrew Pinski  
51
 
52
        PR c++/13268, c++/13339
53
        * class.c (add_method): Return early when method is error_mark_node.
54
        * pt.c (tsubst_friend_function): Return early when new_friend is
55
        error_mark_node.
56
 
57
2003-12-23  Mark Mitchell  
58
 
59
        * cp-lang.c (cp_expr_size): Return zero for empty classes.
60
 
61
        * cp-tree.h (warn_if_uknown_interface): Remove unused function.
62
        * decl2.c (warn_if_unknown_interface): Likewise.
63
 
64
2003-12-23  Nathan Sidwell  
65
 
66
        PR c++/13387
67
        * cp-lang.c (cxx_get_alias_set): Correct logic for a base type.
68
 
69
2003-12-22  Mark Mitchell  
70
 
71
        * decl.c (start_function): Do not check
72
        flag_alt_external_templates or flag_external_templates.
73
        * decl2.c (warn_if_unknown_interface): Likewise.
74
        * lex.c (extract_interface_info): Likewise.
75
        * pt.c (lookup_template_class): Likewise.
76
 
77
        PR c++/12862
78
        * name-lookup.c (pushdecl): Look up all namespace-scope entities
79
        in their corresponding namespace.
80
 
81
        PR c++/12397
82
        * typeck.c (finish_class_member_access_expr): Don't tree
83
        IDENTIFIER_NODEs as non-dependent expressions.
84
 
85
2003-12-22  Andrew Pinski  
86
 
87
        PR c++/5050
88
        * tree.c (cp_start_inlining): Remove.
89
        (cp_end_inlining): Remove.
90
        * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Do not define.
91
        (LANG_HOOKS_TREE_INLINING_END_INLINING): Do not define.
92
        * cp-tree.h (cp_start_inlining): Do not declare.
93
        (cp_end_inlining): Do not declare.
94
 
95
2003-12-22  Mark Mitchell  
96
 
97
        PR c++/12479
98
        * parser.c (cp_parser_declaration_seq_opt): Only issue "extra ;"
99
        pedwarn when not in a system header.
100
 
101
2003-12-21  Mark Mitchell  
102
 
103
        * cp-tree.h (cp_tree_index): Remove CPTI_RECORD_TYPE,
104
        CPTI_UNION_TYPE, CPTI_ENUM_TYPE.
105
        (record_type_node): Remove.
106
        (union_type_node): Likewise.
107
        (enum_type_node): Likewise.
108
        * decl.c: Remove mention of above tree nodes in comment.
109
        * lex.c (cxx_init): Do not assign to record_type_node,
110
        union_type_node, or enum_type_node.  Simplify handling of
111
        class_type_node.
112
 
113
        PR c++/11554
114
        * init.c (sort_mem_initializers): Add warning.
115
 
116
2003-12-21  Kazu Hirata  
117
 
118
        * call.c: Fix comment formatting.
119
        * class.c: Likewise.
120
        * cp-tree.h: Likewise.
121
        * cvt.c: Likewise.
122
        * cxx-pretty-print.c: Likewise.
123
        * decl.c: Likewise.
124
        * decl2.c: Likewise.
125
        * error.c: Likewise.
126
        * except.c: Likewise.
127
        * init.c: Likewise.
128
        * name-lookup.c: Likewise.
129
        * parser.c: Likewise.
130
        * pt.c: Likewise.
131
        * rtti.c: Likewise.
132
        * semantics.c: Likewise.
133
        * typeck.c: Likewise.
134
        * typeck2.c: Likewise.
135
 
136
2003-12-19  Kazu Hirata  
137
 
138
        * cvt.c: Remove uses of "register" specifier in
139
        declarations of arguments and local variables.
140
        * decl.c: Likewise.
141
        * decl2.c: Likewise.
142
        * expr.c: Likewise.
143
        * friend.c: Likewise.
144
        * lex.c: Likewise.
145
        * name-lookup.c: Likewise.
146
        * repo.c: Likewise.
147
        * search.c: Likewise.
148
        * tree.c: Likewise.
149
        * typeck.c: Likewise.
150
        * typeck2.c: Likewise.
151
 
152
2003-12-19  Mark Mitchell  
153
 
154
        PR c++/12795
155
        * name-lookup.c (pushdecl): Do not treated any functions as being
156
        "nested" in C++.
157
 
158
2003-12-19  Jason Merrill  
159
 
160
        PR c++/13371
161
        * typeck.c (build_modify_expr): Stabilize lhs if we're narrowing.
162
        * cvt.c (convert_to_void): Don't warn about the RHS of a comma
163
        being useless if TREE_NO_UNUSED_WARNING is set.
164
 
165
2003-12-18  Richard Henderson  
166
 
167
        * cp-tree.h (struct lang_type_header): Remove __extension__.
168
 
169
2003-12-18  Jason Merrill  
170
 
171
        PR c++/12253
172
        * init.c (build_vec_init): Initialization of an element from
173
        an initializer list is also a full-expression.
174
 
175
        * parser.c, pt.c, semantics.c: Rename constant_expression_p
176
        to integral_constant_expression_p.
177
 
178
2003-12-18  Kriang Lerdsuwanakij  
179
 
180
        PR c++/13262
181
        * pt.c (instantiate_decl): Wrap push_nested_class and
182
        pop_nested_class around cp_finish_decl call for static member
183
        variable.
184
 
185
2003-12-18  Giovanni Bajo  
186
 
187
        PR c++/9154
188
        * parser.c (cp_parser_template_argument): A type-id followed by '>>'
189
        is just an user typo, and should be accepted as last resort if any
190
        other parsing fails.
191
        (cp_parser_enclosed_template_argument_list): If the argument list is
192
        parsed correctly, but the next token is '>>', emit a diagnostic.
193
        (cp_parser_next_token_ends_template_argument): Accept '>>' as
194
        delimiter of template argument, it will be later detected as a typo.
195
 
196
2003-12-17  Kelley Cook  
197
 
198
        * Make-lang.in: Replace cp/g++.1 with $(docobjdir)/g++.1.
199
 
200
2003-12-17  Mark Mitchell  
201
 
202
        PR c++/10603
203
        PR c++/12827
204
        * parser.c (cp_parser_error): Help c_parse_error print good
205
        messages if the next token is a keyword.
206
        (cp_parser_parameter_declaration_list): When resynchronizing after
207
        a bad parameter declaration, stop if a comma is found.
208
        (cp_parser_parameter_declaration): Avoid backtracking.
209
 
210
2003-12-16  Mark Mitchell  
211
 
212
        PR c++/12696
213
        * decl.c (reshape_init): Recover quickly from errors.
214
 
215
2003-12-16  Nathan Sidwell  
216
 
217
        PR c++/9043
218
        C++ ABI change: Mangling array indices in templates.
219
        * decl.c (compute_array_index_type): Reorganize for earlier
220
        template errors. Use value_dependent_expression_p for abi-2.
221
        * mangle.c (write_array_type): Check broken mangling for
222
        expression indices on abi-1
223
 
224
2003-12-16  Mark Mitchell  
225
 
226
        PR c++/12696
227
        * decl.c (reshape_init): Recover quickly from errors.
228
 
229
        PR c++/13275
230
        * lex.c (reswords): Add "__offsetof" and "__offsetof__".
231
        * parser.c (cp_parser): Add in_offsetof_p.
232
        (cp_parser_new): Initialize it.
233
        (cp_parser_primary_expression): Handle __offsetof__ (...).
234
        (cp_parser_postfix_expression): Allow casts to pointer type and
235
        uses of "->" in a constant expression if implementing offsetof.
236
        (cp_parser_unary_expression): Allow the use of "&" in a constant
237
        expression if implementing offsetof.
238
 
239
2003-12-16  Giovanni Bajo  
240
 
241
        PR c++/2294
242
        * name-lookup.c (push_overloaded_decl): always construct an OVERLOAD
243
        if the declaration comes from an using declaration.
244
 
245
2003-12-16  Giovanni Bajo  
246
 
247
        * semantics.c (finish_id_expression): Refactor the code to handle
248
        template parameters, and emit a more informative error message
249
        when they are used within an integral constant expression.
250
 
251
2003-12-16  Nathan Sidwell  
252
 
253
        PR c++/13387
254
        * class.c (finish_struct_1): Compute mode and alias set for
255
        CLASSTYPE_AS_BASE.
256
        * call.c (build_over_call): Use CLASSTYPE_AS_BASE for trivial
257
        assignment of a class, as necessary.
258
        * cp-lang.c (cxx_get_alias_set): The alias set as a base is the
259
        same as for the complete type.
260
 
261
        PR c++/13242
262
        C++ ABI change. Mangling template parameters of reference type
263
        * mangle.c (write_template_args): Remove unreachable code.
264
        (write_template_arg): Look through an argument of reference type.
265
 
266
2003-12-16  Giovanni Bajo  
267
 
268
        PR c++/2294
269
        * name-lookup.c (push_overloaded_decl): always construct an OVERLOAD
270
        if the declaration comes from an using declaration.
271
 
272
2003-12-15  Mark Mitchell  
273
 
274
        PR c++/10926
275
        * decl2.c (grokfield): Robustify.
276
 
277
        PR c++/11116
278
        * parser.c (cp_parser_throw_expression): Determine whether or not
279
        an assignment-expression is present by doing one-token lookahead.
280
 
281
        PR c++/13269
282
        * parser.c (cp_parser_function_definition_after_declarator): Stop
283
        scanning tokens when reaching EOF.
284
 
285
        PR c++/12989
286
        * typeck.c (cxx_sizeof_or_alignof_expr): Robustify.
287
 
288
        PR c++/13310
289
        * pt.c (dependent_template_p): Handle OVERLOADs.
290
 
291
2003-12-15  Mark Mitchell  
292
 
293
        PR c++/13243
294
        PR c++/12573
295
        * parser.c (cp_parser_postfix_expression): Tighten handling of
296
        integral constant expressions.
297
        (cp_parser_unary_expression): Likewise.
298
        * pt.c (value_dependent_expression_p): Remove handling for
299
        COMPONENT_REFs.
300
 
301
2003-12-15  Nathan Sidwell  
302
 
303
        * class.c (add_method): Disallow destructor for java classes.
304
        * decl.c (xref_basetypes): Check java class inheritance.
305
        * decl2.c (check_java_method): Skip artificial params.
306
 
307
        PR c++/13241
308
        C++ ABI change. Mangling of symbols in expressions.
309
        * mangle.c (write_mangled_name): Add top_level flag. Rework for
310
        nested and unnested mangling. Deal with abi version 1 and version
311
        2 differences.
312
        (write_expression): Adjust write_mangled_name call.
313
        (mangle_decl_string): Use write_mangled_name for all non-type decls.
314
 
315
2003-12-14  Mark Mitchell  
316
 
317
        PR c++/10779
318
        PR c++/12160
319
        * parser.c (struct cp_parser): Add in_template_argument_list_p.
320
        (cp_parser_error): Use c_parse_error.
321
        (cp_parser_name_lookup_error): New function.
322
        (cp_parser_new): Initialize it.
323
        (cp_parser_declarator): Add parenthesized_p parameter.
324
        (cp_parser_nested_name_specifier_opt): Use
325
        cp_parser_name_lookup_error.
326
        (cp_parser_parenthesized_expression_list): Improve comments.
327
        (cp_parser_condition): Adjust call to cp_parser_declarator.
328
        (cp_parser_template_parameter): Adjust call to
329
        cp_parser_parameter_declaration.
330
        (cp_parser_template_argument_list): Set
331
        in_template_argument_list_p.
332
        (cp_parser_explicit_instantiation): Adjust call to
333
        cp_parser_declarator.
334
        (cp_parser_simple_type_specifier): Remove unncessary code.
335
        (cp_parser_using_declaration): Use cp_parser_name_lookup_error.
336
        (cp_parser_init_declarator): Handle member function definitions.
337
        (cp_parser_direct_declarator): Adjust call to
338
        cp_parser_declarator.
339
        (cp_parser_type_id): Adjust call to cp_parser_declarator.
340
        (cp_parser_parameter_declaration_list): Avoid backtracking where
341
        possible.
342
        (cp_parser_parameter_declaration): Add parenthesized_p parameter.
343
        (cp_parser_function_definition): Remove.
344
        (cp_parser_member_declaration): Do not backtrack to look for
345
        function definitions.
346
        (cp_parser_exception_declaration): Adjust call to
347
        cp_parser_declarator.
348
        (cp_parser_single_declaration): Handle function definitions via
349
        cp_parser_init_declarator.
350
        (cp_parser_save_member_function_body): New function.
351
 
352
2003-12-14  Kriang Lerdsuwanakij  
353
 
354
        PR c++/13106
355
        * decl.c (finish_function): Check if return type is dependent before
356
        issuing no return statement warning.
357
 
358
2003-12-12  Nathan Sidwell  
359
 
360
        PR c++/13118
361
        * cp-tree.h (lang_decl_u): Add thunk_alias member.
362
        (THUNK_VIRTUAL_OFFSET): Must be a FUNCTION_DECL.
363
        (THUNK_ALIAS_P): Remove.
364
        (THUNK_ALIAS): Adjust.
365
        * class.c (update_vtable_entry_for_fn): Get the vbase within the
366
        overriding function's return type.
367
        (dump_thunk): Adjust THUNK_ALIAS printing.
368
        (build_vtbl_initializer): Adjust THUNK_ALIAS use.
369
        * method.c (make_thunk): Revert 12881 test change. Clear
370
        THUNK_ALIAS.
371
        (finish_thunk): Adjust THUNK_ALIAS setting.
372
        (use_thunk): Adjust THUNK_ALIAS use.
373
        * semantics.c (emit_associated_thunks): Likewise.
374
 
375
        PR c++/13114, c++/13115
376
        * class.c (layout_empty_base): Propagate the move of an empty base
377
        to offset zero.
378
 
379
        PR c++/12881
380
        * method.c (make_thunk): Deal with thunk aliases when searching
381
        for a thunk. Robustify assertion.
382
 
383
2003-12-11  Nathan Sidwell  
384
 
385
        * mangle.c (conv_type_names): Holds IDENTIFIER_NODEs only.
386
        (hash_type): Use TYPE_UID of the identifier's type.
387
        (compare_type): Adjust.
388
        (mangle_conv_op_name_for_type): Store identifier nodes only, use
389
        TYPE_UID has hash value.
390
 
391
2003-12-10  Mark Mitchell  
392
 
393
        * cp-tree.h (DECL_CONV_FN_P): Check that DECL_NAME is non-NULL.
394
 
395
2003-12-08  Matt Austern  
396
 
397
        PR c/13134
398
        * decl.c (duplicate_decls): Copy visibility flag when appropriate.
399
 
400
2003-12-09  Giovanni Bajo  
401
 
402
        * init.c (build_new_1): Deal with an OVERLOAD set when
403
        looking up for _Jv_AllocObject.
404
        * except.c (build_throw): Likewise for _Jv_Throw.
405
 
406
2003-12-08  Jason Merrill  
407
 
408
        PR c++/11971
409
        * tree.c (build_local_temp): Split out from build_cplus_new.
410
        (force_target_expr): New fn.
411
        * call.c (call_builtin_trap): Call it.  Take a type parm.
412
        (convert_arg_to_ellipsis): Pass it.
413
        (build_x_va_arg): Use call_builtin_trap.
414
 
415
        PR c++/11929
416
        * call.c (magic_varargs_p): New fn.
417
        (build_over_call): Do no ellipsis conversions for arguments to
418
        functions with magic varargs.
419
 
420
        * name-lookup.c, init.c, except.c: Revert Giovanni's patch from
421
        yesterday.
422
 
423
        Give the anonymous namespace a null DECL_NAME.
424
        * cp-tree.h: Don't declare anonymous_namespace_name.
425
        * decl.c: Don't define it.
426
        * dump.c (cp_dump_tree): Don't check for it.
427
        * cxx-pretty-print.c (pp_cxx_original_namespace_definition): Likewise.
428
        * error.c (dump_decl): Likewise.
429
        * name-lookup.c: Define it here.
430
        (push_namespace): Put it in DECL_ASSEMBLER_NAME instead.
431
        * mangle.c (write_unqualified_name): Adjust.
432
 
433
2003-12-07  Giovanni Bajo  
434
 
435
        PR c++/2294
436
        * name-lookup.c (push_overloaded_decl): Always construct an
437
        OVERLOAD unless the declaration is a built-in.
438
        (set_namespace_binding): While binding OVERLOADs with only one
439
        declaration, we still need to call supplement_binding.
440
        * init.c (build_new_1): Deal with an OVERLOAD set when
441
        looking up for _Jv_AllocObject.
442
        * except.c (build_throw): Likewise for _Jv_Throw.
443
 
444
2003-12-06  Mark Mitchell  
445
 
446
        PR c++/13323
447
        * class.c (same_signature_p): Handle conversion operators
448
        correctly.
449
        (check_for_override): Likewise.
450
 
451
2003-12-06  Kelley Cook  
452
 
453
        * Make-lang.in (GXX_CROSS_NAME, CXX_CROSS_NAME): Delete.
454
        (c++.install_common, cp/g++.1, c++.install-man): Adjust for above.
455
        (c++.uninstall): Likewise.
456
 
457
2003-12-05  Danny Smith 
458
            Mark Mitchell  
459
 
460
        PR c++/13305
461
        * parser.c (cp_parser_elaborated_type_specifier): Accept
462
        attributes.
463
 
464
2003-12-05  Mark Mitchell  
465
 
466
        PR c++/13314
467
        * parser.c (cp_parser_class_specifier): Match push_scope/pop_scope
468
        calls.
469
        (cp_parser_class_head): Likewise.
470
 
471
2003-12-05  Kriang Lerdsuwanakij  
472
 
473
        PR c++/13166
474
        * parser.c (cp_parser_late_parsing_default_args): Make sure the
475
        context is a class before calling push_nested_class and
476
        pop_nested_class.
477
 
478
2003-12-03  James E Wilson  
479
 
480
        * g++spec.c (lang_specific_driver): Delete USE_LIBUNWIND_EXCEPTIONS
481
        support.
482
 
483
2003-12-03  Mark Mitchell  
484
 
485
        PR c++/9127
486
        * cp-tree.h (at_namespace_scope_p): New function.
487
        * parser.c (cp_parser_class_head): Handle invalid explicit
488
        specializations.
489
        * search.c (at_namespace_scope_p): New function.
490
 
491
        PR c++/13179
492
        * semantics.c (finish_handler_parms): Do not call eh_type_info for
493
        types used in templates.
494
 
495
        PR c++/10771
496
        * parser.c (cp_parser_check_for_invalid_template_id): New
497
        function.
498
        (cp_parser_simple_type_specifier): Use it.
499
        (cp_parser_elaborated_type_specifier): Likewise.
500
        (cp_parser_class_head): Likewise.
501
 
502
2003-12-02  Giovanni Bajo  
503
 
504
        PR c++/10126
505
        * pt.c (convert_nontype_argument): Handle default conversions
506
        while converting a pointer to member function.
507
 
508
2003-12-02  Giovanni Bajo  
509
 
510
        PR c++/12573
511
        * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
512
        looking into them recursively.
513
 
514
2003-12-02  Richard Henderson  
515
 
516
        * name-lookup.h (struct cp_binding_level): Use ENUM_BITFIELD.
517
        * parser.c (struct cp_token): Likewise.
518
        (struct cp_parser_token_tree_map_node): Likewise.
519
        * lex.c (struct resword): Move const after ENUM_BITFIELD.
520
 
521
2003-11-30  Mark Mitchell  
522
 
523
        PR c++/9849
524
        * parser.c (cp_lexer_prev_token): New function.
525
        (cp_parser_skip_to_closing_parenthesis): Add consume_paren
526
        parameter.
527
        (cp_parser_nested_name_specifier_opt): Add is_declaration
528
        parameter.
529
        (cp_parser_nested_name_specifier): Likewise.
530
        (cp_parser_class_or_namespace_name): Likewise.
531
        (cp_parser_class_name): Likewise.
532
        (cp_parser_template_id): Likewise.
533
        (cp_parser_template_name): Likewise.
534
        (cp_parser_id_expression): Adjust calls to
535
        cp_parser_nested_name_specifier_op, cp_parser_template_id,
536
        cp_parser_class_name.
537
        (cp_parser_unqualified_id): Likewise.
538
        (cp_parser_postfix_expression): Likewise.
539
        (cp_parser_pseudo_destructor_name): Likewise.
540
        (cp_parser_cast_expression): Likewise.
541
        (cp_parser_mem_initializer_id): Likewise.
542
        (cp_parser_simple_type_specifier): Likewise.
543
        (cp_parser_type_name): Likewise.
544
        (cp_parser_elaborated_type_specifier): Likewise.
545
        (cp_parser_qualified_namespace_specifier): Likewise.
546
        (cp_parser_using_declaration): Likewise.
547
        (cp_parser_using_directive): Likewise.
548
        (cp_parser_ptr_operator): Likewise.
549
        (cp_parser_declarator_id): Likewise.
550
        (cp_parser_class_head): Likewise.
551
        (cp_parser_base_specifier): Likewise.
552
        (cp_parser_constructor_declarator_p): Likewise.
553
        (cp_parser_direct_declarator): Fix typo in comment.
554
        (cp_parser_parenthesized_expression_list): Adjust call to
555
        cp_parser_skip_to_closing_parenthesis.
556
        (cp_parser_selection_statement): Likewise.
557
 
558
2003-11-23  Kriang Lerdsuwanakij  
559
 
560
        PR c++/12924
561
        * typeck.c (finish_class_member_access_expr): Handle TEMPLATE_ID_EXPR
562
        with OVERLOAD and DECL nodes as the first operand.
563
 
564
2003-11-22  Kriang Lerdsuwanakij  
565
 
566
        * pt.c (tsubst) : Remove erroneous argument to build_nt.
567
 
568
2003-11-22  Kriang Lerdsuwanakij  
569
 
570
        PR c++/5369
571
        * friend.c (is_friend): Handle member function of a class
572
        template as template friend.
573
        (do_friend): Likewise.
574
        * decl2.c (check_classfn): Add template_header_p parameter.
575
        * decl.c (start_decl): Adjust check_classfn call.
576
        (grokfndecl): Likewise.
577
        * pt.c (is_specialization_of_friend): New function.
578
        (uses_template_parms_level): Likewise.
579
        (push_template_decl_real): Use uses_template_parms_level.
580
        (tsubst_friend_function): Adjust check_classfn call.
581
        * cp-tree.h (check_classfn): Adjust declaration.
582
        (uses_template_parms_level): Add declaration.
583
        (is_specialization_of_friend): Likewise.
584
 
585
2003-11-21  Mark Mitchell  
586
 
587
        PR c++/12515
588
        * pt.c (build_non_dependent_expr): Handle GNU extension to ?:
589
        operator.
590
 
591
2003-11-21  Jan Hubicka  
592
 
593
        * parser.c (cp_parser_postfix_expression): Initialize 's' to
594
        NULL_TREE.
595
 
596
2003-11-20  Joseph S. Myers  
597
 
598
        * Make-lang.in (c++.extraclean): Delete.
599
 
600
2003-11-20  Joseph S. Myers  
601
 
602
        * Make-lang.in (check-g++, lang_checks): Add.
603
 
604
2003-11-18  Kriang Lerdsuwanakij  
605
 
606
        PR c++/12932
607
        * class.c (currently_open_derived_class): Check if
608
        current_class_type is NULL_TREE.
609
        * semantics.c (finish_call_expr): Check if
610
        currently_open_derived_class returns NULL_TREE.
611
        * cp-tree.h (DERIVED_FROM_P): Add parenthesis around PARENT
612
        parameter.
613
 
614
2003-11-17  Jason Merrill  
615
 
616
        * init.c (build_new_1): Preevaluate placement args.
617
        * call.c (build_op_delete_call): Don't expose placement args to
618
        overload resolution.
619
 
620
2003-11-16  Jason Merrill  
621
 
622
        * Make-lang.in (c++.tags): Create TAGS.sub files in each directory
623
        and TAGS files that include them for each front end.
624
 
625
2003-11-15  Bernardo Innocenti  
626
 
627
        PR c++/2294
628
        * name-lookup.c: Revert previous patch for PR c++/2294 to prevent
629
        build failure on libjava.
630
 
631
2003-11-14  Giovanni Bajo  
632
 
633
        PR c++/2294
634
        * name-lookup.c (push_overloaded_decl): Always construct an OVERLOAD
635
        unless the declaration is a built-in.
636
        (set_namespace_binding): While binding OVERLOADs with only one
637
        declaration, we still need to call supplement_binding.
638
 
639
2003-11-14  Mark Mitchell  
640
 
641
        PR c++/12762
642
        * parser.c (cp_parser_enclosed_template_argument_list): New
643
        function.
644
        (cp_parser_template_id): Use it.
645
        (cp_parser_simple_type_specifier): Recognize invalid template
646
        syntax.
647
 
648
2003-11-14  Giovanni Bajo  
649
 
650
        PR c++/2094
651
        * pt.c (unify): Add support for PTRMEM_CST and
652
        FIELD_DECL unification.
653
 
654
2003-11-13  Richard Earnshaw  
655
 
656
        * decl.c (grokfndecl): Change OK to type tree.
657
 
658
2003-11-12  Mark Mitchell  
659
 
660
        * tree.c (build_target_expr_with_type): Treate VA_ARG_EXPR like
661
        CONSTRUCTOR.
662
 
663
        * decl.c (cp_make_fname_decl): When creating a top-level
664
        __FUNCTION__-like symbol, do register it with pushdecl.
665
 
666
        * decl.c (finish_case_label): Do not check that we are within a
667
        switch statement here.
668
        * parser.c (struct cp_parser): Add in_iteration_statement_p and
669
        in_switch_statement_p.
670
        (cp_parser_new): Initialize them.
671
        (cp_parser_labeled_statement): Check validity of case labels
672
        here.
673
        (cp_parser_selection_statement): Set in_switch_statement_p.
674
        (cp_parser_iteration_statement): Set in_iteration_statement_p.
675
        (cp_parser_jump_statement): Check validity of break/continue
676
        statements here.
677
 
678
        PR c++/12735
679
        * cp-tree.h (duplicate_decls): Return a tree.
680
        * decl.c (duplicate_decls): Clarify documentation.  Return
681
        error_mark_node to indicate a failed redeclaration.
682
        * friend.c (do_friend): Handle that case.
683
        * name-lookup.c (pushdecl): Likewise.
684
 
685
2003-11-11  Jason Merrill  
686
 
687
        * cp-tree.h (DECL_NAMESPACE_ASSOCIATIONS): New macro.
688
        * name-lookup.c (parse_using_directive): New fn.
689
        (is_associated_namespace): New fn.
690
        (arg_assoc_namespace): Also check associated namespaces.
691
        * name-lookup.h: Declare new fns.
692
        * pt.c (maybe_process_partial_specialization): Allow
693
        specialization in associated namespace.
694
        * parser.c (cp_parser_using_directive): Accept attributes.  Use
695
        parse_using_directive.
696
 
697
2003-11-10  Richard Henderson  
698
 
699
        * cvt.c (convert_to_void): Use void_zero_node after overload failure.
700
 
701
2003-11-10  Gabriel Dos Reis  
702
 
703
        PR c++/12832
704
        * name-lookup.c (supplement_binding): Gracefully handle names
705
        used at non-class scope prior declaration.
706
 
707
2003-11-06  Matt Austern  
708
 
709
        * decl.c (duplicate_decls): copy DECL_VISIBILITY field.
710
        * method.c (use_thunk): give thunk same visibility as function.
711
        * optimize.c (maybe_clone_body): copy DECL_VISIBILITY field.
712
 
713
2003-11-05  Kriang Lerdsuwanakij  
714
 
715
        PR c++/11616
716
        * pt.c (instantiate_pending_templates): Save and restore
717
        input_location.
718
 
719
2003-11-05  Kriang Lerdsuwanakij  
720
 
721
        PR c++/2019
722
        * friend.c (add_friend): Don't display previous declaration in
723
        case of duplicate friend warning.
724
 
725
2003-11-02  Kriang Lerdsuwanakij  
726
 
727
        PR c++/9810
728
        * call.c (build_over_call): Check access using primary template
729
        if FN is a member function template.
730
 
731
2003-11-01  Kriang Lerdsuwanakij  
732
 
733
        PR c++/12796
734
        * class.c (handle_using_decl): Set input_location before calling
735
        error_not_base_type.
736
 
737
2003-10-26  Kriang Lerdsuwanakij  
738
 
739
        PR c++/10371
740
        * semantics.c (finish_non_static_data_member): Handle when
741
        both processing_template_decl and qualifying_scope are true.
742
 
743
2003-10-24  Kriang Lerdsuwanakij  
744
 
745
        PR c++/11076
746
        * class.c (handle_using_decl): Swap arguments of error_not_base_type.
747
        * parser.c (cp_parser_direct_declarator): Only resolve typename for
748
        namespace scope declarations.
749
 
750
2003-10-24  Nathan Sidwell  
751
 
752
        PR c++/12698, c++/12699, c++/12700, c++/12566
753
        * cp-tree.h (THUNK_ALIAS_P, THUNK_ALIAS): New.
754
        (debug_class, debug_thunks): New.
755
        * class.c (dump_class_hierarchy_1): New break out from ...
756
        (dump_class_hierarchy): ... here.
757
        (dump_thunk, debug_thunks, debug_class): New.
758
        (update_vtable_entry_for_fn): Add ssizetype casts. Correct
759
        continued search for primary binfo via virtual.
760
        (build_vtbl_initializer): Follow covariant thunk alias.
761
        * method.c (make_thunk): Clear DECL_THUNKS of the thunk.
762
        (finish_thunk): Look for an alias of the covariant thunk and point
763
        to it.
764
        (use_thunk): We should never use an alias.
765
        * semantics.c (emit_associated_thunks): Do not emit aliases.
766
 
767
        PR c++/12566
768
        * cp-tree.h (cp_fname_init): Add TYPE pointer param.
769
        * decl.c (cp_fname_init): Add TYPE pointer param. Set it. Don't
770
        create an ad-hoc ERROR_MARK.
771
        (cp_make_fname_decl): Adjust.
772
        * pt.c (tsubst_expr): Adjust.
773
 
774
2003-10-23  Jason Merrill  
775
 
776
        PR c++/12726
777
        * tree.c (build_target_expr_with_type): Don't call force_rvalue
778
        for CONSTRUCTORs.
779
 
780
2003-10-22  Kazu Hirata  
781
 
782
        * call.c: Fix comment formatting.
783
        * class.c: Likewise.
784
        * cxx-pretty-print.c: Likewise.
785
        * init.c: Likewise.
786
        * parser.c: Likewise.
787
        * pt.c: Likewise.
788
        * semantics.c: Likewise.
789
        * tree.c: Likewise.
790
        * typeck.c: Likewise.
791
        * typeck2.c: Likewise.
792
 
793
2003-10-21  Mark Mitchell  
794
 
795
        PR c++/11962
796
        * typeck.c (build_x_conditional_expr): Handle missing middle
797
        operands in templates.
798
        * mangle.c (write_expression): Issue errors about attempts to
799
        mangle a non-existant middle operator to the ?: operator.
800
 
801
2003-10-21  Robert Bowdidge   
802
 
803
        * decl.c (cp_finish_decl): Remove clause intended for asm directives
804
          in struct or class fields: this code is never executed.
805
 
806
2003-10-22  Kriang Lerdsuwanakij  
807
 
808
        * decl.c (start_decl): Exit if push_template_decl returns
809
        error_mark_node.
810
 
811
2003-10-20  Kazu Hirata  
812
 
813
        * ChangeLog: Fix typos.
814
        * call.c: Fix comment typos.
815
        * class.c: Likewise.
816
        * cp-tree.h: Likewise.
817
        * cvt.c: Likewise.
818
        * cxx-pretty-print.c: Likewise.
819
        * decl.c: Likewise.
820
        * decl2.c: Likewise.
821
        * init.c: Likewise.
822
        * mangle.c: Likewise.
823
        * name-lookup.c: Likewise.
824
        * parser.c: Likewise.
825
        * search.c: Likewise.
826
        * semantics.c: Likewise.
827
        * tree.c: Likewise.
828
        * typeck.c: Likewise.
829
 
830
2003-10-20  Jan Hubicka  
831
 
832
        * decl.c (start_cleanup_fn):  Set DECL_DECLARED_INLINE_P to deffer
833
        the expansion.
834
 
835
2003-10-20  Mark Mitchell  
836
 
837
        * Make-lang.in (c++.install-info): Remove.
838
 
839
2003-10-20  Jason Merrill  
840
 
841
        * class.c (layout_class_type): Set DECL_ARTIFICIAL on padding
842
        field.
843
 
844
2003-10-20  Kriang Lerdsuwanakij  
845
 
846
        PR c++/9781, c++/10583, c++/11862
847
        * decl.c (cp_finish_decl): Exit immediately if decl is an
848
        error_mark_node.
849
        * pt.c (push_template_decl_real): Return error_mark_node for
850
        invalid template declaration of variable.
851
 
852
2003-10-18  Kriang Lerdsuwanakij  
853
 
854
        PR c++/12495
855
        * pt.c (lookup_template_class): Handle when current_class_type
856
        is a local class.
857
 
858
2003-10-17  Kriang Lerdsuwanakij  
859
 
860
        PR c++/2513
861
        * decl.c (make_typename_type): Use dependent_type_p.
862
        (make_unbound_class_template): Likewise.
863
        * pt.c (instantiate_class_template): Increment
864
        processing_template_decl during substitution of template friend
865
        function.  Preincrement processing_template_decl rather than
866
        postincrement.
867
        (get_mostly_instantiated_function_type): Increment
868
        processing_template_decl during partial substitution of function
869
        type.
870
 
871
2003-10-15  Jan Hubicka  
872
 
873
        PR c++/12574
874
        * decl2.c (cxx_callgraph_analyze_expr): Deal with baselink.
875
 
876
2003-10-14  Jason Merrill  
877
 
878
        PR c++/11878
879
        * tree.c (build_target_expr_with_type): Call force_rvalue for
880
        classes with non-trivial copy ctors.
881
 
882
        PR c++/11063
883
        * typeck.c (build_modify_expr): Call convert rather than abort.
884
 
885
2003-10-14  Gabriel Dos Reis  
886
 
887
        Breack out decl.c (3/n)
888
        * name-lookup.c: Include flags.h
889
        (lookup_name_current_level): Make static.
890
        (add_decl_to_level): Likewise.
891
        (push_local_binding): Likewise.
892
        (push_overloaded_decl): Likewise.
893
        (lookup_using_namespace): Likewise.
894
        (qualified_lookup_using_namespace): Likewise.
895
        (lookup_type_current_level): Likewise.
896
        (unqualified_namespace_lookup): Likewise.
897
        (namespace_ancestor): Likewise.
898
        (push_using_directive): Likewise.
899
        * decl.c (pushdecl): Move to name-lookup.c.
900
        (pushdecl_top_level_1): Likewise.
901
        (pushdecl_top_level): Likewise.
902
        (pushdecl_top_level_and_finish): Likewise.
903
        (maybe_push_decl): Likewise.
904
        (push_using_decl): Likewise.
905
        (push_overloaded_decl): Likewise.
906
        (make_anon_name): Likewise.
907
        (anon_cnt): Likewise.
908
        (clear_anon_tags): Likewise.
909
        (maybe_inject_for_scope_var): Likewise.
910
        (check_for_out_of_scope_variable): Likewise.
911
        * Make-lang.in (cp/name-lookup.o): Depend on flags.h.
912
        * decl.c (warn_extern_redeclared_static): Export.
913
        * cp-tree.h (warn_extern_redeclared_static): Declare.
914
 
915
2003-10-14  Nathanael Nerode  
916
 
917
        * Make-lang.in: Replace uses of $(target_alias) with
918
        $(target_noncanonical).
919
 
920
2003-10-13  Volker Reichelt  
921
 
922
        * ChangeLog: Add PR number to patch for PR c++/12370.
923
 
924
2003-10-13  Gabriel Dos Reis  
925
 
926
        * name-lookup.h (cxx_scope_find_binding_for_name): Don't export.
927
        (binding_for_name): Likewise.
928
        (cxx_binding_clear): Move to name-lookup.c.
929
        * name-lookup.c (cxx_scope_find_binding_for_name): Now static.
930
        (binding_for_name): Likewise.
931
        * decl2.c (is_ancestor): Move to name-lookup.c
932
        (namespace_ancestor): Likewise.
933
        (add_using_namespace): Likewise.
934
        (ambiguous_decl): Likewise.
935
        (lookup_using_namespace): Likewise.
936
        (qualified_lookup_using_namespace): Likewise.
937
        (set_decl_namespace): Likewise.
938
        (decl_namespace): Likewise.
939
        (current_decl_namespace): Likewise.
940
        (push_decl_namespace): Likewise.
941
        (pop_decl_namespace): Likewise.
942
        (push_scope): Likewise.
943
        (pop_scope): Likewise.
944
        (struct arg_lookup): Likewise.
945
        (arg_assoc): Likewise.
946
        (arg_assoc_args): Likewise.
947
        (arg_assoc_type): Likewise.
948
        (add_function): Likewise.
949
        (arg_assoc_namespace): Likewise.
950
        (arg_assoc_class): Likewise.
951
        (arg_assoc_template_arg): Likewise.
952
        (do_namespace_alias): Likewise.
953
        (validate_nonmember_using_decl): Likewise.
954
        (do_nonmember_using_decl): Likewise.
955
        (do_toplevel_using_decl): Likewise.
956
        (do_local_using_decl): Likewise.
957
        (do_class_using_decl): Likewise.
958
        (do_using_directive): Likewise.
959
        (constructor_name_full): Likewise.
960
        (constructor_name): Likewise.
961
        (constructor_name_p): Likewise.
962
 
963
2003-10-13  Gabriel Dos Reis  
964
 
965
        Break out decl.c (2/n)
966
        * name-lookup.c: Include diagnostic.h
967
        (cxx_binding_free): Make static.
968
        (cxx_binding_make): Likewise.
969
        (binding_table_new): Likewise
970
        (binding_table_free): Likewise.
971
        (binding_table_insert): Likewise.
972
        (binding_table_find_anon_type): Likewise.
973
        (binding_table_reverse_maybe_remap): Likewise.
974
        (supplement_binding): Likewise.
975
        * name-lookup.h (global_scope_name): Declare extern.
976
        (global_type_node): Likewise.
977
        (cxx_binding_free): Don't export.
978
        (cxx_binding_make): Likewise.
979
        (binding_table_new): Likewise.
980
        (binding_table_free): Likewise.
981
        (binding_table_insert): Likewise.
982
        (binding_table_find_anon_type): Likewise.
983
        (binding_table_reverse_maybe_remap): Likewise.
984
        * Make-lang.in (cp/name-lookup.o): Depend on $(DIAGNOSTIC_H)
985
        * decl.c (lookup_namespace_name): Move to name-lookup.c
986
        (select_decl): Likewise.
987
        (unqualified_namespace_lookup): Likewise.
988
        (lookup_qualified_name): Likewise.
989
        (lookup_name_real): Likewise.
990
        (lookup_name_nonclass): Likewise.
991
        (lookup_function_nonclass): Likewise.
992
        (lookup_name): Likewise.
993
        (lookup_name_current_level): Likewise.
994
        (lookup_type_current_level): Likewise.
995
        (lookup_flags): Likewise.
996
        (qualify_lookup): Likewise.
997
        (lookup_tag): Likewise.
998
        (lookup_tag_reverse): Likewise.
999
        (getdecls): Likewise.
1000
        (storedecls): Remove.
1001
        (cxx_remember_type_decls): Move to name-lookup.c.
1002
        (global_bindings_p): Likewise.
1003
        (innermost_nonclass_level): Likewise.
1004
        (toplevel_bindings_p): Likewise.
1005
        (namespace_bindings_p): Likewise.
1006
        (kept_level_p): Likewise.
1007
        (innermost_scope_kind): Likewise.
1008
        (template_parm_scope_p): Likewise.
1009
        (push_binding): Likewise.
1010
        (push_local_binding): Likewise.
1011
        (add_decl_to_level): Likewise.  Make extern.
1012
        (push_class_binding): Move to name-lookup.c.
1013
        (resume_level): Likewise.  Rename to resume_scope.
1014
        (begin_scope): Move to name-lookup.c.
1015
        (indent): Likewise.
1016
        (binding_depth): Likewise.
1017
        (is_class_level): Likewise.
1018
        (cxx_scope_descriptor): Likewise.
1019
        (cxx_scope_debug): Likewise.
1020
        (namespace_scope_ht_size): Likewise.
1021
        (leave_scope): Likewise.
1022
        (pushlevel_class): Likewise.
1023
        (poplevel_class): Likewise.
1024
        (clear_identifier_class_values): Likewise.
1025
        (pushdecl_with_scope): Likewise.
1026
        (pushdecl_namespace_level): Likewise.
1027
        (pushdecl_class_level): Likewise.
1028
        (push_class_level_binding): Likewise.
1029
        (push_using_directive): Likewise.
1030
        (identifier_global_value): Likewise.
1031
        (keep_next_level_flag): Likewise.
1032
        (keep_next_level): Likewise.
1033
        (free_binding_level): Likewise.
1034
        (set_class_shadows): Likewise.
1035
        (maybe_push_cleanup_level): Likewise.
1036
        (cp_namespace_decls): Likewise.
1037
        (bt_print_entry): Likewise.
1038
        (print_binding_level): Likewise.
1039
        (print_other_binding_stack): Likewise.
1040
        (print_binding_stack): Likewise.
1041
        (push_namespace): Likewise.
1042
        (pop_namespace): Likewise.
1043
        (push_nested_namespace): Likewise.
1044
        (pop_nested_namespace): Likewise.
1045
        (cxx_saved_binding_make): Likewise.
1046
        (struct cxx_saved_binding_make): Likewise.
1047
        (store_bindings): Likewise.
1048
        (maybe_push_to_top_level): Likewise.
1049
        (push_to_top_level): Likewise.
1050
        (pop_from_top_level): Likewise.
1051
        (identifier_type_value): Likewise.
1052
        (set_identifier_type_value): Likewise.
1053
        (set_identifier_type_value_with_scope): Likewise.
1054
        (pop_everything): Likewise.
1055
        (pushtag): Likewise.
1056
        (follow_tag_typedef): Likewise.
1057
        (maybe_process_template_type_declaration): Likewise.
1058
        (pop_binding): Likewise.
1059
        * cp-tree.h: Move corresponding declarations to name-lookup.h
1060
 
1061
2003-10-12  Steven Bosscher  
1062
 
1063
        * cvt.c (ocp_convert): Move warning to C common code.
1064
 
1065
2003-10-09  Jason Merrill  
1066
 
1067
        PR c++/6392
1068
        * tree.c (build_cplus_array_type): Handle all quals the same.
1069
        (cp_build_qualified_type_real): Look through arrays first.
1070
 
1071
        * tree.c (build_cplus_new): Use build_decl to create a VAR_DECL.
1072
        (build_target_expr_with_type): Likewise.
1073
 
1074
        * pt.c (instantiate_class_template): Sanity check that our
1075
        enclosing class has been instantiated.
1076
 
1077
2003-10-08  Giovanni Bajo  
1078
 
1079
        * cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS.
1080
        * error.c (dump_function_decl): Use it to skip the dump of the
1081
        arguments.
1082
        (dump_expr): When dumping a declaration found within an
1083
        expression, always set TFF_NO_FUNCTION_ARGUMENTS
1084
        in the flags.
1085
 
1086
2003-10-08  Giovanni Bajo  
1087
 
1088
        PR c++/11097
1089
        * pt.c (tsubst_decl): Substitute also the DECL_NAME node of
1090
        USING_DECL.
1091
 
1092
2003-10-06  Mark Mitchell  
1093
 
1094
        PR c++/10147
1095
        * call.c (initialize_reference): Tweak error message.
1096
        * cxx-pretty-print.h (cxx_pretty_printer_flags): Remove
1097
        pp_cxx_flag_qualified_id and pp_cxx_flag_global_scope.
1098
        * cxx-pretty-print.c (pp_cxx_id_expression): Always display
1099
        qualified entities using qualified names.
1100
 
1101
        PR c++/12337
1102
        * init.c (build_new_1): Make sure that the expression returned is
1103
        not an lvalue.
1104
 
1105
        PR c++/12344, c++/12236, c++/8656
1106
        * decl.c (start_function): Do not ignore attributes embedded in a
1107
        function declarator.
1108
 
1109
2003-10-06  Mark Mitchell  
1110
 
1111
        * Make-lang.in (c++.info): Remove.
1112
        (c++.dvi): Remove.
1113
        (c++.generated-manpages): Replace with ...
1114
        (generated-manpages): ... this.
1115
 
1116
2003-10-03  Gabriel Dos Reis  
1117
 
1118
        * decl.c (struct cp_binding_level): Move to name-lookup.h
1119
        (current_binding_level): Likewise.
1120
        (class_binding_level): Likewise.
1121
        * cp-tree.h (enum scope_kind): Likewise.
1122
 
1123
2003-10-03  Gabriel Dos Reis  
1124
 
1125
        * name-lookup.c (binding_entry_free): Nullify name and type
1126
        fields.
1127
 
1128
2003-10-02  Mark Mitchell  
1129
 
1130
        PR c++/12486
1131
        * typeck.c (finish_class_member_access_expr): Issue diagnostic
1132
        on erroneous use of qualified name.
1133
 
1134
2003-09-30  Richard Henderson  
1135
 
1136
        PR c++/12370
1137
        * decl.c (duplicate_decls): Copy DECL_SAVED_INSNS too.
1138
 
1139
2003-09-30  Kelley Cook  
1140
 
1141
        * g++spec.c: Convert to ISO C90 prototypes.
1142
        * parser.c: Likewise.
1143
 
1144
2003-09-30  Gabriel Dos Reis  
1145
 
1146
        * decl.c (pop_binding): Don't mess with nullifying binding->scope
1147
        here.
1148
        * name-lookup.c: Re-format.
1149
        (cxx_binding_free): Nullify binding->scope.
1150
 
1151
2003-09-29  Jan Hubicka  
1152
 
1153
        PR C++/12047
1154
        * except.c (build_eh_type_type): Call mark_used on the type.
1155
 
1156
2003-09-28  Richard Henderson  
1157
 
1158
        * typeck.c (c_expand_asm_operands): Take location_t, instead of
1159
        individual file and line.
1160
 
1161
2003-09-28  Andreas Jaeger  
1162
 
1163
        * decl.c (cxx_builtin_type_decls): Convert to ISO C90 function
1164
        definition.
1165
        * init.c (push_base_cleanups): Likewise.
1166
        * decl2.c (finish_file): Likewise.
1167
        * mangle.c (init_mangle): Likewise.
1168
        (dump_substitution_candidates): Likewise.
1169
        * search.c: Likewise.
1170
 
1171
2003-09-27  Gabriel Dos Reis  
1172
 
1173
        * name-lookup.h (get_global_value_if_present): New function.
1174
        (is_typename_at_global_scope): Likewise.
1175
        * except.c (do_begin_catch): Use get_global_value_if_present.
1176
        (do_end_catch): Likewise.
1177
        (do_allocate_exception): Likewise.
1178
        (do_free_exception): Likewise.
1179
        (build_throw): Likewise.
1180
        * parser.c (cp_parser_member_declaration): Likewise.
1181
        * rtti.c (throw_bad_cast): Likewise.
1182
        (throw_bad_typeid): Likewise.
1183
        * decl.c (check_tag_decl): Use is_typename_at_global_scope.
1184
        (grokdeclarator): Likewise.
1185
        * cp-tree.h (global_namespace): Move to name-lookup.h
1186
        * call.c (call_builtin_trap): Tidy.
1187
 
1188
2003-09-27  Kriang Lerdsuwanakij  
1189
 
1190
        PR c++/11415
1191
        * parser.c (cp_parser_nested_name_specifier_opt): Issue correct
1192
        error message when parser->scope is global_namespace.
1193
 
1194
2003-09-27  Gabriel Dos Reis  
1195
 
1196
        * cp-tree.h, name-lookup.h, decl.c, decl2.c: Remove reference to
1197
        macros BINDING_SCOPE, BINDING_VALUE and BINDING_TYPE.
1198
 
1199
2003-09-26  Gabriel Dos Reis  
1200
 
1201
        * decl.c (pop_binding_level, suspend_binding_level,
1202
        find_class_binding_level): Merge into leave_scope.  Remove.
1203
        (leave_scope):  New function.
1204
        (poplevel): Update.
1205
        (poplevel_class): Likewise.
1206
        (pop_namespace): Likewise.
1207
 
1208
2003-09-25  Kriang Lerdsuwanakij  
1209
 
1210
        PR c++/5655
1211
        * parser.c (cp_parser_check_access_in_redeclaration): New function.
1212
        (cp_parser_member_declaration): Use it.
1213
        (cp_parser_template_declaration_after_export): Likewise.
1214
 
1215
2003-09-22  Gabriel Dos Reis  
1216
 
1217
        * cp-tree.h (scope_kind): Add new enumerator.
1218
        (keep_next_level): Change parameter type to bool.
1219
        (begin_scope):  Change prototype.
1220
        (pushlevel): Remove declaration.
1221
        * decl.c (push_binding_level): Fold in begin_scope.  Remove.
1222
        (struct cp_binding_level): Remove tag_tranparent field.  Make keep
1223
        of bitsize one.
1224
        (keep_next_level_flag): Make a bool.
1225
        (cxx_scope_descriptor): Update scope names table
1226
        (make_cxx_scope): Fold in begin_scope.  Remove..
1227
        (namespace_scope_ht_size): New function.
1228
        (begin_scope): Change prototype.  Return a scope.  Tidy.
1229
        (kept_level_p): Update.
1230
        (pushlevel): Remove.
1231
        (maybe_push_cleanup_level): Simplify.
1232
        (poplevel): Update for sk_cleanup and keep change.
1233
        (print_binding_level): Likewise.
1234
        (initial_push_namespace_scope): Fold in begin_scope.  Remove.
1235
        (push_namespace): Update.
1236
        (pushtag): Likewise.
1237
        (lookup_tag): Likewise.
1238
        (lookup_name_current_level): Likewise.
1239
        (lookup_type_current_level): Likewise.
1240
        (cxx_init_decl_processing): Likewise.
1241
        (start_function): Likewise.
1242
        (begin_function_body): Likewise.
1243
        (start_method): Likewise.
1244
        * pt.c (push_inline_template_parms_recursive): Likewise.
1245
        (begin_template_parm_list): Likewise.
1246
        (begin_specialization): Likewise.
1247
        * semantics.c (do_pushlevel): Likewise.
1248
        (begin_compound_stmt): Likewise.
1249
        (begin_stmt_expr): Likewise.
1250
 
1251
2003-09-21  Richard Henderson  
1252
 
1253
        * class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
1254
        method.c, optimize.c, pt.c, semantics.c, tree.c: Revert.
1255
 
1256
2003-09-21  Richard Henderson  
1257
 
1258
        * class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
1259
        method.c, optimize.c, pt.c, semantics.c, tree.c: Update for
1260
        DECL_SOURCE_LOCATION rename and change to const.
1261
 
1262
2003-09-20  Richard Henderson  
1263
 
1264
        * decl.c, decl2.c, pt.c: Use %J in diagnostics.
1265
 
1266
2003-09-20  Kriang Lerdsuwanakij  
1267
 
1268
        PR c++/157
1269
        * parser.c (cp_parser_direct_declarator): Clear
1270
        parser->num_template_parameter_lists when parsing function
1271
        parameters.
1272
        (cp_parser_constructor_declarator_p): Likewise.
1273
 
1274
2003-09-19  Kriang Lerdsuwanakij  
1275
 
1276
        PR c++/495
1277
        * pt.c (tsubst_friend_class): Only use innermost template
1278
        arguments for the injected friend class template.
1279
 
1280
2003-09-19  Nathan Sidwell  
1281
 
1282
        PR c++/12332
1283
        * pt.c (instantiate_class_template): Increment
1284
        processing_template_decl around the tsubst of a template member
1285
        function.
1286
 
1287
2003-09-19  Gabriel Dos Reis  
1288
 
1289
        * decl.c (cxx_scope_descriptor): Fix thinko.
1290
        (struct cp_binding_level): Adjust type of binding_depth field.
1291
 
1292
2003-09-18  Danny Smith  
1293
 
1294
        PR c++/12320
1295
        * call.c (type_passed_as): Check for incomplete type.
1296
        (convert_for_arg_passing): Likewise.
1297
 
1298
2003-09-18  Nathan Sidwell  
1299
 
1300
        PR c++/9848
1301
        * optimize.c (maybe_clone_body): Don't set MARK_USED on parameters
1302
        here.
1303
        * semantics.c (expand_body): Set it here on the remaining clones.
1304
 
1305
2003-09-18  Roger Sayle  
1306
 
1307
        * lex.c (init_operators): Remove operator_name_info for FFS_EXPR.
1308
        * class.c (instantiate_type): Remove FFS_EXPR case.
1309
 
1310
2003-09-18  Volker Reichelt  
1311
 
1312
        * ChangeLog: Fix recent commit.
1313
 
1314
2003-09-18  Volker Reichelt  
1315
 
1316
        * ChangeLog: Add PR number to patch for PR c++/12316.
1317
 
1318
2003-09-18  Gabriel Dos Reis 
1319
 
1320
        * error.c (dump_type): Simplify.  Use pp_type_specifier_seq for
1321
        "C" types.
1322
        * cxx-pretty-print.c (pp_cxx_type_specifier_seq): Fix thinko.
1323
 
1324
2003-09-17  Richard Henderson  
1325
 
1326
        * semantics.c (expand_body): Don't save/restore input_location.
1327
 
1328
2003-09-17  Mark Mitchell  
1329
 
1330
        PR c++/12266
1331
        * cp-tree.h (tsubst_flags_t): Add tf_conv.
1332
        * class.c (standard_conversion): Pass tf_conv to
1333
        instantiate_type.
1334
        (resolve_address_of_overloaded_function): Do not call mark_used
1335
        when just checking conversions.
1336
 
1337
        PR debug/12066
1338
        * cp-lang.c (LANG_HOOKS_BUILTIN_TYPE_DECLS): Define.
1339
        * cp-tree.h (cxx_builtin_type_decls): Declare.
1340
        * decl.c (builtin_type_decls): New variables.
1341
        (cxx_builtin_type_decls): New function.
1342
        (record_builtin_type): Add to builtin_type_decls.
1343
 
1344
2003-09-17  Richard Henderson  
1345
 
1346
        PR c++/12316
1347
        * semantics.c (expand_or_defer_fn): Inc/dec function_depth.
1348
 
1349
2003-09-16  Kriang Lerdsuwanakij  
1350
 
1351
        PR c++/7939
1352
        * typeck.c (comptypes): Don't ICE when its first argument is
1353
        error_mark_node.
1354
        (compparms): Reverse the arguments of same_type_p.
1355
 
1356
2003-09-15  Nathan Sidwell  
1357
 
1358
        PR c++/12184
1359
        * typeck.c (convert_arguments): Return error_mark_node for an
1360
        incomplete parameter. Make error message more informative.
1361
 
1362
2003-09-12  Mark Mitchell  
1363
 
1364
        PR c++/3907
1365
        * class.c (maybe_note_name_used_in_class): Refine test for whether
1366
        or not we are in a class scope.
1367
 
1368
        * cp-tree.h (language_function): Remove x_expanding_p.
1369
        (expanding_p): Remove.
1370
        (doing_semantic_analysis_p): Remove.
1371
        (scope_kind): Add sk_function_parms, sk_class,
1372
        sk_namespace.
1373
        (innermost_scope_kind): New method.
1374
        * call.c (cxx_type_promotes_to): Use type_decays_to.
1375
        * cp-lang.c (LANG_HOOKS_PUSHLEVEL): Redefine.
1376
        (LANG_HOOKS_POPLEVEL): Likewise.
1377
        * decl.c (cp_binding_level): Remove parm_flag, template_parms_p,
1378
        template_spec_p, namespace_p, is_for_scope, is_try_scope, and
1379
        is_catch_scope.  Add kind and explicit_spec_p.
1380
        (cxx_scope_descriptor): Use a lookup table.
1381
        (find_class_binding_level): Use "kind" field in binding_level, not
1382
        the various flags.
1383
        (pop_binding_level): Likewise.
1384
        (innermost_nonclass_level): Likewise.
1385
        (toplevel_bindings_p): Likewise.
1386
        (namespace_bindings_p): Likewise.
1387
        (template_parm_scope_p): Likewise.
1388
        (innermost_scope_kind): New method.
1389
        (current_tmpl_spec_kind): Use "kind" field in binding_level, not
1390
        the various flags.
1391
        (pushlevel): Remove check for doing_semantic_analysis_p.
1392
        (begin_scope): Simplify.
1393
        (add_decl_to_level): Use "kind" field in binding_level, not
1394
        the various flags.
1395
        (push_local_binding): Likewise.
1396
        (pop_label): Remove check for doing_semantic_analysis_p.
1397
        (poplevel): Use "kind" field in binding_level, not
1398
        the various flags.
1399
        (set_block): Remove check for doing_semantic_analysis_p.
1400
        (pushlevel_class): Use "kind" field in binding_level, not
1401
        the various flags.
1402
        (poplevel_class): Likewise.
1403
        (initial_push_namespace_scope): Likewise.
1404
        (maybe_push_to_top_level): Likewise.
1405
        (set_identifier_type_value_with_scope): Likewise.
1406
        (pop_everything): Likewise.
1407
        (maybe_process_template_type_declaration): Likewise.
1408
        (pushtag): Likewise.
1409
        (pushdecl): Likewise.
1410
        (pushdecl_with_scope): Likewise.
1411
        (check_previous_goto_1): Likewise.
1412
        (define_label): Likewise.
1413
        (finish_case_label): Likewise.
1414
        (lookup_tag): Likewise.
1415
        (unqualified_namespace_lookup): Likewise.
1416
        (lookup_name_real): Likewise.
1417
        (lookup_name_current_level): Likewise.
1418
        (lookup_type_current_level): Likewise.
1419
        (record_builtin_type): Likewise.
1420
        (cp_make_fname_decl): Likewise.
1421
        (maybe_inject_for_scope_var): Likewise.
1422
        (cp_finish_decl): Remove check for doing_semantic_analysis_p.
1423
        (start_function): Use begin_scope, not pushlevel.
1424
        (finish_function): Use "kind" field in binding_level, not
1425
        the various flags.
1426
        (start_method): Use begin_scope, not pushlevel.
1427
        (make_label_decl): Do not check expanding_p.
1428
        (save_function-data): Do not set expanding_p.
1429
        (cxx_push_function_context): Do not clear expanding_p.
1430
        * semantics.c (cxx_expand_function_start): Do not set expanding_p.
1431
 
1432
2003-09-14  Mark Mitchell  
1433
 
1434
        * class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for
1435
        an bit-field whose width exceeds that of its type.
1436
 
1437
2003-09-14  Geoffrey Keating  
1438
 
1439
        * rtti.c (get_tinfo_decl): Set TREE_PUBLIC for typeinfo decls.
1440
 
1441
2003-09-14  Kazu Hirata  
1442
 
1443
        * ChangeLog: Follow spelling conventions.
1444
        * parser.c: Likewise.
1445
 
1446
2003-09-13  Richard Henderson  
1447
 
1448
        * decl2.c (finish_file): Check cgraph_assemble_pending_functions
1449
        during relaxation loop.
1450
 
1451
2003-09-11  David Edelsohn  
1452
 
1453
        * decl2.c (var_finalized_p): Swap arms of conditional.
1454
 
1455
2003-09-10  Nathan Sidwell  
1456
 
1457
        PR c++/11788
1458
        * typeck.c (build_address): If it is a function, mark it used.
1459
        (build_unary_op): Do not lose object's side-effects when taking
1460
        address of static member function.
1461
        * class.c (resolve_address_of_overloaded_function): Use
1462
        tsubst_flags_t parameter. Only expect overload sets. Adjust.
1463
        (instantiate_type): Adjust flags passing. Do not lose object's
1464
        side-effects when taking address of static member function.
1465
 
1466
2003-09-11  Richard Henderson  
1467
 
1468
        * semantics.c (expand_or_defer_fn): Update for new
1469
        cgraph_finalize_function argument.
1470
 
1471
2003-09-10  Richard Henderson  
1472
 
1473
        * decl2.c (cxx_callgraph_analyze_expr): Mark argument unused.
1474
 
1475
2003-09-10  Jan Hubicka  
1476
 
1477
        * decl2.c (var_finalized_p): New.
1478
        (maybe_emit_vtables, write_out_vars, finish_file): Use it.
1479
 
1480
2003-09-10  Richard Henderson  
1481
 
1482
        * decl2.c (cxx_callgraph_analyze_expr): New, from corpse of
1483
        mark_member_pointers.
1484
        (lower_function): Remove.
1485
        * cp-tree.h: Update to match.
1486
        * cp-lang.c (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): New.
1487
        (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Remove.
1488
 
1489
2003-09-09  Richard Henderson  
1490
 
1491
        * semantics.c (expand_or_defer_fn): Update call to
1492
        cgraph_finalize_function.
1493
 
1494
        * semantics.c (expand_or_defer_fn): Use cgraph_finalize_function
1495
        always.
1496
 
1497
        * decl2.c (finish_file): Avoid out-of-bounds array reference
1498
        during memmove.
1499
 
1500
2003-09-09  Richard Henderson  
1501
 
1502
        * decl2.c (mark_member_pointers): Rename from
1503
        mark_member_pointers_and_eh_handlers and don't check eh handlers.
1504
 
1505
2003-09-09  Christian Ehrhardt  
1506
 
1507
        PR bootstrap/12168
1508
        * method.c (use_thunk): Clear DECL_RTL of copied nodes.
1509
 
1510
2003-09-08  Mark Mitchell  
1511
 
1512
        * cp-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
1513
        c_register_builtin_type.
1514
 
1515
        PR c++/11786
1516
        * decl2.c (add_function): Do not complain about seeing the same
1517
        non-function twice.
1518
        * semantics.c (perform_koenig_lookup): Improve documentation.
1519
 
1520
        PR c++/5296
1521
        * pt.c (try_one_overload): Add addr_p parameter.
1522
        (resolve_overloaded_unification): Pass it.
1523
 
1524
2003-09-08  Richard Henderson  
1525
 
1526
        * optimize.c (maybe_clone_body): Inc/dec function_depth.
1527
 
1528
2003-09-08  Richard Henderson  
1529
 
1530
        * decl.c (finish_function): Clear current_function_decl.
1531
        * decl2.c (mark_used): Don't push/pop gc context.
1532
        * optimize.c (optimize_function): Likewise.
1533
        * tree.c (cp_cannot_inline_tree_fn): Likewise.
1534
        * pt.c (instantiate_decl): Inc/dec function_depth instead.
1535
        * semantics.c (expand_body): Update for tree_rest_of_compilation
1536
        nested argument.
1537
 
1538
2003-09-07  Gabriel Dos Reis  
1539
 
1540
        PR c++/11762
1541
        * error.c (dump_decl): Handle namespace-alias-definition.
1542
        * decl.c (warn_extern_redeclared_static): There is no point in
1543
        checking changes in storage class specifier for a namespace
1544
        declaration.
1545
        (duplicate_decls): Tidy diagnostic message.
1546
        * cxx-pretty-print.c (pp_cxx_left_brace): New macro.
1547
        (pp_cxx_right_brace): Likewise.
1548
        (pp_cxx_original_namespace_definition): New function.
1549
        (pp_cxx_namespace_alias_definition): Likewise.
1550
        (pp_cxx_declaration): Use them.  Handle NAMESPACE_DECLs.
1551
 
1552
2003-09-07  Jan Hubicka  
1553
 
1554
        * decl2.c (maybe_emit_vtables, write_out_vars, finish_file):
1555
        Avoid re-emitting variables in unit-at-a-time mode.
1556
 
1557
2003-09-06  Mark Mitchell  
1558
 
1559
        PR c++/11867
1560
        * call.c (standard_conversion): Improve comments.
1561
        (perform_direct_initialization): Make sure we return an expression
1562
        of the correct type.
1563
        * typeck.c (build_static_cast): Check for ambiguity and
1564
        accessibility when performing conversions.
1565
 
1566
2003-09-06  Gabriel Dos Reis  
1567
 
1568
        * cp-tree.h (add_binding): Remove declaration.
1569
        * name-lookup.h (supplement_binding): Declare.
1570
        * decl.c (add_binding): Move to name-lookup.c.
1571
        (push_local_binding): Adjust.
1572
        (push_class_binding): Likewise.
1573
        (set_identifier_type_value_with_scope): Likewise.
1574
        * name-lookup.c (supplement_binding): Rename from add_binding.
1575
        Return a bool.  Improve documentation.
1576
        (set_namespace_binding): Adjust.
1577
        * Make-lang.in (cp/name-lookup.o): Depend on toplev.h
1578
 
1579
2003-09-06  Nathan Sidwell  
1580
 
1581
        PR c++/11794
1582
        * class.c (pushclass): Push dependent using decls for nested
1583
        classes of templates too.
1584
 
1585
2003-09-06  Roger Sayle  
1586
 
1587
        PR c++/11409
1588
        * class.c (resolve_address_of_overloaded_function): When building
1589
        list of matching non-template function decls, ignore anticipated
1590
        declarations of undeclared or shadowed GCC builtins.
1591
 
1592
2003-09-06  Steven Bosscher  
1593
 
1594
        PR c++/11595
1595
        * decl.c (define_label): Remove unreachable timevar pop.
1596
        Always return the decl, even if the definition is invalid.
1597
 
1598
2003-09-06  Nathan Sidwell  
1599
 
1600
        PR c++/12167
1601
        * parser.c (cp_parser_late_parsing_default_args): Push & pop the
1602
        unparsed functions queue.
1603
 
1604
2003-09-05  Mark Mitchell  
1605
 
1606
        PR c++/12163
1607
        * call.c (perform_direct_initialization): Correct logic for
1608
        direct-initialization of a class type.
1609
 
1610
        PR c++/12146
1611
        * pt.c (lookup_template_function): Robustify.
1612
 
1613
2003-09-05  Nathan Sidwell  
1614
 
1615
        PR c++/11922
1616
        * pt.c (tsubst_qualified_id): Make sure we get a non-type.
1617
        (tsubst_expr, tsubst_copy_and_build): Pass false, not zero, as
1618
        is_type_p to lookup_qualified_name.
1619
 
1620
        * semantics.c (finish_call_expr): Refactor some code.
1621
 
1622
        PR c++/12037
1623
        * cp-tree.h (COMPOUND_EXPR_OVERLOADED): New.
1624
        (build_min_non_dep): Declare.
1625
        * tree.c (build_min): Propagate TREE_SIDE_EFFECTS.
1626
        (build_min_non_dep): New.
1627
        * cvt.c (convert_to_void): Don't explicitly copy
1628
        TREE_SIDE_EFFECTS, TREE_NO_UNUSED_WARNING.
1629
        * call.c (build_new_method_call): Use build_min_non_dep.
1630
        * decl2.c (grok_array_decl): Likewise.
1631
        (build_offset_ref_call_from_tree): Likewise.
1632
        * typeck.c (finish_class_member_access_expr,
1633
        build_x_indirect_ref, build_x_binary_op, build_x_unary_op,
1634
        build_x_conditional_expr, build_x_compound_expr): Likewise.
1635
        (build_static_cast, build_reinterpret_cast,
1636
        build_const_cast): Propagate TREE_SIDE_EFFECTS inside a template.
1637
        * typeck2.c (build_x_arrow): Use build_min_non_dep.
1638
        (build_functional_cast): Propagate TREE_SIDE_EFFECTS inside a
1639
        template.
1640
        * rtti.c (build_dynamic_cast_1): Set DECL_IS_PURE.
1641
        (build_dynamic_cast): Set TREE_SIDE_EFFECTS.
1642
        * pt.c (build_non_dependent_expr): Check COMPOUND_EXPR_OVERLOADED.
1643
 
1644
2003-09-04  Richard Henderson  
1645
 
1646
        * decl2.c (mark_member_pointers_and_eh_handlers): Update for
1647
        change in cgraph_mark_needed_node arguments.
1648
 
1649
2003-09-02  Geoffrey Keating  
1650
 
1651
        PR 12161
1652
        * decl2.c (mark_used): Use ggc_push_context/ggc_pop_context.
1653
        * tree.c (cp_cannot_inline_tree_fn): Likewise.
1654
 
1655
2003-09-04  Nathan Sidwell  
1656
 
1657
        * cp-tree.h (finish_sizeof, finish_alignof): Remove.
1658
        (expr_sizeof): Replace with ...
1659
        (cxx_sizeof_or_alignof_expr): ... here.
1660
        (cxx_sizeof_or_alignof_type): Make complain parameter a bool.
1661
        * parser.c (cp_parser_unary_expression): Commonize alignof and
1662
        sizeof handling.
1663
        * pt.c (tsubst_copy_and_build): Adjust alignof and sizeof
1664
        substitution.
1665
        * semantics.c (finish_sizeof, finish_alignof): Remove.
1666
        * typeck.c (cxx_sizeof_or_alignof_type): Complain parameter
1667
        becomes bool. Set TREE_READONLY.
1668
        (expr_sizeof): Replace with ...
1669
        (cxx_sizeof_or_alignof_expr): ... here. Clear TREE_SIDE_EFFECTS.
1670
 
1671
2003-09-04  Mark Mitchell  
1672
 
1673
        Remove cast-as-lvalue extension.
1674
        * call.c (build_conditional_expr): Correct formatting.
1675
        (convert_like_real): Use lvalue_p, not non_cast_lvalue_p.
1676
        (initialize_real): Use real_lvalue_p, not real_non_cast_lvalue_p.
1677
        * cp-tree.h (non_cast_lvalue_p): Remove.
1678
        (real_non_cast_lvalue_p): Remove.
1679
        (non_cast_lvalue_or_else): Remove.
1680
        * tree.c (lvalue_p_1): Remove allow_cast_as_lvalue parameter.
1681
        (real_lvalue_p): Adjust call to lvalue_p_1.
1682
        (non_cast_lvalue_p): Remove.
1683
        (non_cast_lvalue_or_else): Remove.
1684
        (lvalue_p): Adjust call to lvalue_p_1.
1685
        (lvalue_or_else): Simplify.
1686
        * typeck.c (build_unary_op): Use lvalue_or_else, not
1687
        non_cast_lvalue_or_else.
1688
        (build_static_cast): Use real_lvalue_p, not real_non_cast_lvalue_p.
1689
 
1690
2003-09-03  DJ Delorie  
1691
 
1692
        * decl.c (finish_function): Pass fndecl to aggregate_value_p.
1693
 
1694
2003-09-03  Mark Mitchell  
1695
 
1696
        PR c++/12053
1697
        * class.c (include_empty_classes): Correct logic for ABI version 1.
1698
 
1699
2003-09-03  Richard Henderson  
1700
 
1701
        * optimize.c (optimize_function): Push/pop ggc context around
1702
        the call to optimize_inline_calls.
1703
 
1704
2003-09-02  Scott Brumbaugh  
1705
 
1706
        PR c++/11553
1707
        * parser.c (cp_parser_decl_specifier_seq): Add check for a
1708
        duplicate friend decl-specifier.
1709
 
1710
2003-09-02  Mark Mitchell  
1711
 
1712
        PR c++/11847
1713
        * pt.c (convert_nontype_argument): Correct representation of
1714
        REFERENCE_TYPE expressions.
1715
 
1716
        PR c++/11808
1717
        * cp-tree.h (KOENIG_LOOKUP_P): New macro.
1718
        (finish_call_expr): Change prototype.
1719
        * parser.c (cp_parser_postfix_expression): Adjust call to
1720
        finish_call_expr.
1721
        * pt.c (tsubst_copy_and_build): Use KOENIG_LOOKUP_P.
1722
        * semantics.c (finish_call_expr): Add koenig_p parameter.
1723
 
1724
2003-09-01  Mark Mitchell  
1725
 
1726
        PR c++/12114
1727
        * cp-tree.h (initialize_reference): Change prototype.
1728
        * call.c (initialize_reference): Add cleanup parameter.
1729
        * decl.c (grok_reference_init): Likewise.
1730
        (check_initializer): Likewise.
1731
        (cp_finish_decl): Insert a CLEANUP_STMT if necessary.
1732
        (duplicate_decls): When replacing an anticipated builtin, do not
1733
        honor TREE_NOTHROW.
1734
        * typeck.c (convert_for_initialization): Correct call to
1735
        initialize_reference.
1736
 
1737
        PR c++/11972
1738
        * pt.c (dependent_type_p_r): Pass only the innermost template
1739
        arguments to any_dependent_template_arguments_p.
1740
 
1741
2003-09-01  Josef Zlomek  
1742
 
1743
        * error.c (dump_expr): Kill BIT_ANDTC_EXPR.
1744
        * lex.c (init_operators): Kill BIT_ANDTC_EXPR.
1745
        * pt.c (tsubst_copy): Kill BIT_ANDTC_EXPR.
1746
        * typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.
1747
        (tsubst_copy_and_build): Kill BIT_ANDTC_EXPR.
1748
 
1749
2003-08-29  Mark Mitchell  
1750
 
1751
        PR c++/12093
1752
        * pt.c (build_non_dependent_expr): Do not build a
1753
        NON_DEPENDENT_EXPR for a STRING_CST.
1754
 
1755
        PR c++/11928
1756
        * search.c (add_conversions): Avoid adding two conversion
1757
        operators for the same type.
1758
 
1759
2003-08-29  Mark Mitchell  
1760
 
1761
        PR c++/6196
1762
        * pt.c (tsubst_copy_and_build): Correct handling of
1763
        address-of-label extension.
1764
        * semantics.c (finish_goto_stmt): The address of a label must go
1765
        through the lvalue-to-rvalue conversion.
1766
 
1767
2003-08-29  Richard Henderson  
1768
            Jason Merrill 
1769
 
1770
        * cp-lang.c (LANG_HOOKS_RTL_EXPAND_START): New.
1771
        (LANG_HOOKS_RTL_EXPAND_STMT): New.
1772
        * cp-tree.h (cxx_expand_function_start): Declare.
1773
        * decl.c (start_function): Use allocate_struct_function.
1774
        Move stmts_are_full_exprs_p assertion from expand_body.
1775
        Do not free_after_parsing or free_after_compilation.
1776
        (cxx_push_function_context): Move code to set struct function
1777
        data from genrtl_start_function.
1778
        * optimize.c (optimize_function): Don't inc/dec function_depth.
1779
        * semantics.c (expand_body): Use tree_rest_of_compilation.
1780
        (cxx_expand_function_start): Rename from genrtl_start_function,
1781
        omit bits done by tree_rest_of_compilation.
1782
        (genrtl_finish_function): Remove.
1783
        (clear_decl_rtl): Move to ../tree-optimize.c.
1784
 
1785
2003-08-29  Gabriel Dos Reis  
1786
 
1787
        PR c++/11811
1788
        * cxx-pretty-print.c (pp_cxx_canonical_template_parameter): New
1789
        function.
1790
        * cxx-pretty-print.h: Declare.
1791
        * error.c (dump_template_parameter): Use it.
1792
        (dump_type): Likewise.
1793
 
1794
2003-08-28  Mark Mitchell  
1795
 
1796
        * init.c (decl_constant_value): Deal with COND_EXPR specially.
1797
        * call.c (build_conditional_expr): Revert previous patch.
1798
 
1799
        PR optimization/5079
1800
        * call.c (build_conditional_expr): Use decl_constant_value to
1801
        simplify the arguments.
1802
 
1803
2003-08-26  Dan Nicolaescu  
1804
 
1805
        * parser.c (struct cp_token): Use enum bitfields.
1806
        (CP_TOKEN_BLOCK_NUM_TOKENS): Make sure cp_token_block fits in a
1807
        512B allocation unit.
1808
        (cp_parser_token_tree_map_node): Use enum bitfields.
1809
 
1810
2003-08-26  Nathan Sidwell  
1811
 
1812
        PR c++/11871
1813
        * decl.c (push_class_level_binding): Correct old_decl value from
1814
        my 2003-07-29 reorganization.
1815
 
1816
        * call.c (build_call): Don't set TREE_SIDE_EFFECTS here.
1817
        (build_new_method_call): Add goto finish.
1818
        * semantics.c (simplify_aggr_init_exprs_r): Don't set
1819
        TREE_SIDE_EFFECTS on a call.
1820
 
1821
2003-08-25  Richard Henderson  
1822
 
1823
        * cxx-pretty-print.c (pp_cxx_class_name): Remove unused function.
1824
 
1825
2003-08-25  Gabriel Dos Reis  
1826
 
1827
        * cxx-pretty-print.h (pp_cxx_flag_default_argument): New flag.
1828
        (cxx_pretty_printer): Adjust base type.
1829
        (pp_cxx_function_specifier): Declare.
1830
        * cxx-pretty-print.c (pp_cxx_whitespace): New macro.
1831
        (pp_cxx_left_paren): Likewise.
1832
        (pp_cxx_right_paren): Likewise.
1833
        (pp_cxx_dot): Likewise.
1834
        (pp_cxx_arrow): Likewise.
1835
        (pp_cxx_semicolon): Likewise.
1836
        (pp_cxx_identifier): Likewise.
1837
        (pp_cxx_cv_qualifier_seq): Likewise.
1838
        (pp_cxx_storage_class_specifier): Likewise.
1839
        (pp_cxx_expression_list): Likewise.
1840
        (pp_cxx_space_for_pointer_operator): Likewise.
1841
        (pp_cxx_init_declarator): Likewise.
1842
        (pp_cxx_call_argument_list): Likewise.
1843
        (pp_cxx_nonconsecutive_character): Tidy.
1844
        (pp_cxx_conversion_function_id): New function.
1845
        (pp_cxx_template_id): Likewise.
1846
        (pp_cxx_template_keyword_if_needed): Likewise.
1847
        (pp_cxx_nested_name_specifier): Likewise.
1848
        (pp_cxx_unqualified_id): Tidy
1849
        (pp_cxx_qualified_id): Handle more nodes.
1850
        (pp_cxx_primary_expression): Tidy.
1851
        (pp_cxx_postfix_expression): Likewise.
1852
        (pp_cxx_new_expression): Tidy.
1853
        (pp_cxx_delete_expression): Likewise.
1854
        (pp_cxx_cast_expression): New function.
1855
        (pp_cxx_pm_expression): Tidy.
1856
        (pp_cxx_conditional_expression): Likewise.
1857
        (pp_cxx_assignment_operator): New function.
1858
        (pp_cxx_assignment_expression): Tidy.
1859
        (pp_cxx_expression): New function.
1860
        (pp_cxx_function_specifier): Likewise.
1861
        (pp_cxx_decl_specifier_seq): Likewise.
1862
        (pp_cxx_simple_type_specifier): Tidy.
1863
        (pp_cxx_type_specifier_seq): Likewise.
1864
        (pp_cxx_ptr_operator): New function.
1865
        (pp_cxx_implicit_parameter_type): Likewise.
1866
        (pp_cxx_parameter_declaration): Tidy.
1867
        (pp_cxx_parameter_declaration_clause): New function.
1868
        (pp_cxx_exception_specification): Likewise.
1869
        (pp_cxx_direct_declarator): Tidy.
1870
        (pp_cxx_declarator): Likewise.
1871
        (pp_cxx_ctor_initializer): New function.
1872
        (pp_cxx_function_definition): Likewise.
1873
        (pp_cxx_abstract_declarator): Tidy.
1874
        (pp_cxx_direct_abstract_declarator): Likewise.
1875
        (pp_cxx_type_id): Likewise.
1876
        (pp_cxx_exception_declaration): New function.
1877
        (pp_cxx_statement): Likewise.
1878
        (pp_cxx_simple_declaration): Likewise.
1879
        (pp_cxx_template_parameter_list): Likewise.
1880
        (pp_cxx_template_parameter): Likewise.
1881
        (pp_cxx_template_declaration): Likewise.
1882
        (pp_cxx_explicit_specialization): Likewise.
1883
        (pp_cxx_explicit_instantiation): Likewise.
1884
        (pp_cxx_declaration): Tidy.
1885
        (pp_cxx_pretty_printer_init): Initialize more fields.
1886
 
1887
2003-08-25  Mark Mitchell  
1888
 
1889
        PR c++/8795
1890
        * cp-tree.h (build_cplus_method_type): Remove.
1891
        * call.c (standard_conversion): Use build_method_type_directly
1892
        instead of build_cplus_method_type.
1893
        * class.c (build_clone): Likewise.
1894
        (adjust_clone_args): Likewise.
1895
        * decl.c (build_ptrmem_type): Likewise.
1896
        (grokdeclarator): Likewise.
1897
        (check_function_type): Likewise.
1898
        * decl2.c (grok_method_quals): Likewise.
1899
        (maybe_retrofit_in_chrg): Likewise.
1900
        * pt.c (copy_default_args_to_explicit_spec): Likewise.
1901
        (tsubst_function_type): Likewise.
1902
        (tsubst): Likewise.
1903
        * tree.c (build_cplus_method_type): Remove.
1904
        * typeck.c (merge_types): Use build_method_type_directly.
1905
 
1906
2003-08-23  Kriang Lerdsuwanakij  
1907
 
1908
        PR c++/3765
1909
        * search.c (dfs_access_in_type): Fix typo in comment.
1910
        (dfs_accessible_queue_p): Likewise.
1911
        (dfs_accessible_p): Only terminate when a friend is found.
1912
        (accessible_p): Return immediately if access_in_type allows
1913
        access.
1914
 
1915
2003-08-23  Kriang Lerdsuwanakij  
1916
 
1917
        PR c++/641, c++/11876
1918
        * friend.c (add_friend): Add complain parameter.
1919
        (make_friend_class): Likewise.
1920
        (do_friend): Adjust add_friend call.
1921
        * decl.c (grokdeclarator): Adjust make_friend_class call.
1922
        * parser.c (cp_parser_member_declaration): Likewise.
1923
        (cp_parser_template_declaration_after_export): Likewise.
1924
        * pt.c (instantiate_class_template): Adjust make_friend_class
1925
        and add_friend call.
1926
        * cp-tree.h (make_friend_class): Adjust declaration.
1927
        (add_friend): Likewise.
1928
 
1929
2003-08-21  Jason Merrill  
1930
 
1931
        PR c++/11283
1932
        * call.c (build_conditional_expr): Ignore cv-qual differences for
1933
        non-class types.
1934
 
1935
2003-08-21  Mark Mitchell  
1936
 
1937
        PR c++/11551
1938
        * parser.c (cp_parser_id_expression): Add declarator_p parameter.
1939
        (cp_parser_primary_expression): Adjust call to
1940
        cp_parser_id_expression.
1941
        (cp_parser_unqualified_id): Complain about the use of
1942
        typedef-names in a destructor declarator.
1943
        (cp_parser_postfix_expression): Adjust call to
1944
        cp_parser_id_expression.
1945
        (cp_parser_type_parameter): Likewise.
1946
        (cp_parser_template_argument): Likewise.
1947
        (cp_parser_declarator_id): Likewise.
1948
 
1949
        PR c++/11919
1950
        * call.c (standard_conversion): Use same_type_p, not pointer
1951
        equality, to compare types.
1952
 
1953
        PR c++/10762
1954
        * parser.c (cp_parser_using_declaration): Check for invalid uses
1955
        of template-ids here...
1956
        * decl2.c (do_class_using_decl): ... rather than here.
1957
 
1958
2003-08-20  Mark Mitchell  
1959
 
1960
        PR c++/11834
1961
        * pt.c (more_specialized): Bump processing_template_decl.
1962
 
1963
2003-08-21  Jason Merrill  
1964
 
1965
        PR c++/11614
1966
        * decl.c (grokdeclarator): Recognize a flexible array based on the
1967
        type, not the form of the declarator.
1968
 
1969
2003-08-20  Jason Merrill  
1970
 
1971
        * semantics.c (simplify_aggr_init_expr): Split out from
1972
        simplify_aggr_init_exprs_r.  Convert slot address to match
1973
        the return type.
1974
        * cp-tree.h: Declare it.
1975
        * tree.c (cp_copy_res_decl_for_inlining): Don't clobber the
1976
        DECL_NAME of a user variable.
1977
 
1978
2003-08-20  Nathan Sidwell  
1979
 
1980
        PR c++/11945
1981
        * pt.c (build_non_dependent_expr): Look inside COND_EXPR and
1982
        COMPOUND_EXPR.
1983
        * semantics.c (finish_expr_stmt): Always convert to void.
1984
        * typeck.c (build_x_compound_exp): Always convert to void.
1985
 
1986
2003-08-19  Mark Mitchell  
1987
 
1988
        PR c++/11684
1989
        * cp-tree.h (grok_op_properties): Change prototype.
1990
        * decl.c (grok_op_properties): Add complain parameter.
1991
        (grokfndecl): Pass it.
1992
        * pt.c (tsubst_decl): Adjust accordingly.
1993
 
1994
        PR c++/10926
1995
        * decl.c (start_method): Return immediately if push_template_decl
1996
        does not like the declaration.
1997
        * pt.c (push_template_decl_real): Disallow member template
1998
        destructors.
1999
 
2000
        PR c++/11036
2001
        * cp-tree.h (add_binding): Add prototype.
2002
        * class.c (add_method): Set TYPE_HAS_DESTRUCTOR if appropriate.
2003
        (maybe_warn_about_overly_private_class): Use
2004
        CLASSTYPE_DESTRUCTORS.
2005
        (pushclass): Adjust call to set_identifier_type_value.
2006
        * decl.c (add_binding): Give it external linkage.
2007
        (push_local_binding): Adjust call to add_binding.
2008
        (push_class_binding): Likewise.
2009
        (set_identifier_type_value_with_scope): Change prototype.  Use
2010
        add_binding for global bindings.
2011
        (set_identifier_type_value): Adjust accordingly.
2012
        (pushtag): Likewise.
2013
        (pushdecl): Use set_identifier_type_value, not
2014
        set_identifier_type_value_with_scope.
2015
        (pushdecl_namespace_level): Adjust calls to
2016
        SET_IDENTIFIER_TYPE_VALUE to pass a DECL.
2017
        (pushdecl_class_level): Likewise.
2018
        (lookup_tag): Use select_decl.
2019
        (select_decl): Improve comment.
2020
        (record_builtin_type): Do not call pushdecl.
2021
        (cxx_init_decl_processing): Do not call xref_tag for bad_alloc.
2022
        (cp_finish_decl): Adjust call to set_identifier_type_value.
2023
        (check_elaborated_type_specifier): Improve checks for invalid uses
2024
        of typedefs.
2025
        (xref_tag): Adjust call to check_elaborated_type_specifier.
2026
        * decl2.c (grokclassfn): Do not set TYPE_HAS_DESTRUCTOR.
2027
        * name-lookup.c (set_namespace_binding): Use add_binding.
2028
        * parser.c (cp_parser_simple_type_specifier): Return a TYPE_DECL,
2029
        rather than an IDENTIFIER_NODE, to represent built-in types, if
2030
        requested by the caller.
2031
        (cp_parser_postfix_expression): Adjust call.
2032
        (cp_parser_type_specifier): Likewise.
2033
        (cp_parser_elaborated_type_specifier): Adjust call to
2034
        check_elaborated_type_specifier.
2035
        * typeck2.c (build_functional_cast): Do not perform name lookups.
2036
 
2037
        PR c++/10717
2038
        * decl.c (expand_static_init): Remove unnecessary code.
2039
 
2040
2003-08-19  Andrew Pinski  
2041
 
2042
        PR c++/10538, PR c/5582
2043
        * cp/cp-lang.c (LANG_HOOKS_DECL_UNINIT): Define.
2044
 
2045
2003-08-19  Kriang Lerdsuwanakij  
2046
 
2047
        PR c++/11174
2048
        * init.c (build_offset_ref): Perform access checking for
2049
        pointer to member correctly.
2050
 
2051
2003-08-19  Gabriel Dos Reis  
2052
 
2053
        * cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling.
2054
 
2055
2003-08-18  Nathan Sidwell  
2056
 
2057
        PR c++/11957
2058
        * cp-tree.h (finish_stmt_expr): Add bool parameter.
2059
        * init.c (finish_init_stmts): Pass true to finish_stmt_expr. Don't
2060
        adjust the stmt_expr here.
2061
        (build_vec_init): Use finish_stmt_expr_expr, convert result to
2062
        array type.
2063
        * parser.c (cp_parser_primar_expression): Adjust finish_stmt_expr
2064
        call.
2065
        * pt.c (tsubst_copy): Likewise.
2066
        * semantics.c (finish_stmt_expr): Add parameter.
2067
 
2068
        * pt.c (instantiate_class_template): Push to class's scope before
2069
        tsubsting base.
2070
 
2071
2003-08-17  Jan Hubicka  
2072
 
2073
        PR C++/11702
2074
        * semantics.c (finish_id_expression): Mark all functions as used.
2075
 
2076
2003-08-16  Nathan Sidwell  
2077
 
2078
        PR c++/11512
2079
        * cvt.c (convert_to_void): Indicate which side of conditional has
2080
        no effects, and rhs of comma operator. Test for no sideeffect
2081
        expressions here and always build a convert expr.
2082
        * init.c (expand_default_init): Convert the init to void.
2083
        * typeck.c (build_x_compound_expr): Do not check for side effects
2084
        here.
2085
        (build_compound_expr): Do not convert lhs when building a
2086
        template.
2087
 
2088
2003-08-15  Nathan Sidwell  
2089
 
2090
        * cp-tree.def (NON_DEPENDENT_EXPR): Add operand.
2091
        * decl2.c (build_offset_ref_call_from_tree): Use
2092
        build_non_dependent_expr.
2093
        * error.c (dump_expr) : Dump the operand.
2094
        * pt.c (build_non_dependent_expr): Set operand.
2095
 
2096
2003-08-14  Jan Hubicka  
2097
 
2098
        * decl2.c (mark_member_pointers): Rename to...
2099
        (mark_member_pointers_and_eh_tinfos): ... this one; deal with eh tinfos
2100
        (lower_function): Update call.
2101
        * except.c (eh_type_info): Break out from ...
2102
        (build_eh_type): ... here; tinfo is already used.
2103
        (finish_eh_spec_block): Mark tinfos as used.
2104
        * semantics.c (finish_handler_params): Mark tinfo as used.
2105
        * cp-tree.h (eh_type_info): Declare.
2106
 
2107
2003-08-15  Nathan Sidwell  
2108
 
2109
        * pt.c (instantiate_class_template): Set location before
2110
        substuting bases.
2111
 
2112
        * decl.c (make_typename_type): Use my_friendly_assert.
2113
        * pt.c (tsubst_aggr_type): Rearrange context substitution.
2114
 
2115
2003-08-14  Jan Hubicka  
2116
 
2117
        * method.c (use_thunk): Expand body directly.
2118
 
2119
2003-08-12  Mark Mitchell  
2120
 
2121
        PR c++/11703
2122
        * call.c (type_passed_as): Use TYPE_SIZE, not TYPE_PRECISION to
2123
        determine whether or not to promote types.
2124
        (convert_for_arg_passing): Likewise.
2125
        * decl2.c (cp_build_parm_decl): Do not set DECL_ARG_TYPE in
2126
        templates.
2127
        * pt.c (tsubst_decl): Do not expect it to be set.
2128
 
2129
        PR c++/9512
2130
        PR c++/10923
2131
        * cp-tree.h (check_elaborated_type_specifier): Declare.
2132
        (handle_class_head): Remove.
2133
        (note_got_semicolon): Likewise.
2134
        (note_list_got_semicolon): Likewise.
2135
        (finish_class_definition): Likewise.
2136
        * decl.c (check_elaborated_type_specifier): Make it public.
2137
        Robustify.
2138
        (handle_class_head): Remove.
2139
        * parser.c (cp_parser_elaborated_type_specifier): Use
2140
        check_elaborated_type_specifier.
2141
        (cp_parser_class_specifier): Do not call finish_class_definition.
2142
        (cp_parser_class_head): Or handle_class_head.  Check for
2143
        over-qualified names.
2144
        * semantics.c (finish_class_definition): Remove.
2145
 
2146
        * parser.c (cp_parser_check_for_definition_in_return_type): New
2147
        function.
2148
        (cp_parser_simple_declaration): Adjust call to
2149
        cp_parser_init_declarator.
2150
        (cp_parser_decl_specifier_seq): Change type of
2151
        declares_class_or_enum parameter.
2152
        (cp_parser_explicit_instantiation): Adjust accordingly.
2153
        (cp_parser_type_specifier): Change type of
2154
        declares_class_or_enum parameter.
2155
        (cp_parser_init_declarator): Add declares_class_or_enum
2156
        parameter.
2157
        (cp_parser_parameter_declaration): Adjust call to
2158
        cp_parser_decl_specifier_seq.
2159
        (cp_parser_function_definition): Likewise.
2160
        (cp_parser_member_declaration): Likewise.
2161
        (cp_parser_single_declaration): Likewise.
2162
 
2163
        * cp-tree.h (lang_type_class): Remove has_call_overloaded,
2164
        has_array_ref_overloaded, has_arrow_overloaded, and got_semicolon.
2165
        (TYPE_OVERLOADS_CALL_EXPR): Remove.
2166
        (TYPE_OVERLOADS_ARRAY_REF): Likewise.
2167
        (TYPE_OVERLOADS_ARROW): Likewise.
2168
        (CLASSTYPE_GOT_SEMICOLON): Likewise.
2169
        * class.c (check_bases): Do not set them.
2170
        (finish_struct_1): Likewise.
2171
        * decl.c (cp_finish_decl): Do not set CLASSTYPE_GOT_SEMICOLON.
2172
        (build_ptrmemfunc_type): Likewise.
2173
        (grok_op_properties): Do not set TYPE_OVERLOADS_*.
2174
        (start_function): Do not check CLASSTYPE_GOT_SEMICOLON.
2175
        * decl2.c (grokfield): Do not set CLASSTYPE_GOT_SEMICOLON.
2176
        * lex.c (note_got_semicolon): Remove.
2177
        (note_list_got_semicolon): Likewise.
2178
        * parser.c (cp_parser_simple_declaration): Do not call
2179
        note_list_got_semicolon.
2180
        * pt.c (list_eq): Remove.
2181
        (lookup_template_class): Do not set CLASSTYPE_GOT_SEMICOLON.
2182
        (instantiate_class_template): Do not set TYPE_OVERLOADS*.
2183
        (instantiate_class_template): Do not set CLASSTYPE_GOT_SEMICOLON.
2184
        * ptree.c (cxx_print_type): Do not print them.
2185
        * semantics.c (finish_member_class_template): Do not call
2186
        note_list_got_semicolon.
2187
 
2188
2003-08-11  Aldy Hernandez  
2189
 
2190
        * call.c (standard_conversion): Opaque pointers interconvert.
2191
 
2192
        * testsuite/g++.dg/other/opaque-3.C: New.
2193
 
2194
2003-08-11  Mark Mitchell  
2195
 
2196
        * typeck.c (merge_types): Handle cv-qualified pointer-to-member
2197
        types correctly.
2198
 
2199
2003-08-10  Mark Mitchell  
2200
 
2201
        PR c++/11789
2202
        * cp-tree.h (get_vbase): Remove.
2203
        (get_vbase_types): Remove.
2204
        * init.c (expand_member_init): Correct logic for looking up base
2205
        classes.
2206
 
2207
2003-08-10  Gabriel Dos Reis  
2208
 
2209
        * error.c (dump_expr): Tidy.
2210
        * cxx-pretty-print.c (pp_cxx_nonconsecutive_character): New.
2211
        (pp_cxx_begin_template_argument_list): Likewise.
2212
        (pp_cxx_end_template_argument_list): Likewise.
2213
        (is_destructor_name): Likewise.
2214
        (pp_cxx_unqualified_id): Likewise.
2215
        (pp_cxx_qualified_id): Likewise.
2216
        (pp_cxx_id_expression): Likewise.
2217
        (pp_cxx_new_expression): Likewise.
2218
        (pp_cxx_delete_expression): Likewise.
2219
        (pp_cxx_pm_expression): Likewise.
2220
        (pp_cxx_type_specifier): Rework.
2221
        (pp_cxx_type_id): Likewise.
2222
        (pp_cxx_primary_expression): Likewise.
2223
        (pp_cxx_postfix_expression): Likewise.
2224
        (pp_cxx_unary_expression): Likewise.
2225
        (pp_cxx_multiplicative_expression): Likewise.
2226
        (pp_cxx_conditional_expression): Likewise.
2227
        (pp_cxx_assignment_expression): Likewise.
2228
        (pp_cxx_pretty_printer_init): Tidy.
2229
 
2230
2003-08-10  Nathan Sidwell  
2231
 
2232
        * cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): non-NULL
2233
        NODE is always a TREE_VEC of nonzero size.
2234
        (NUM_TMPL_ARGS): NODE is always a TREE_VEC.
2235
        * decl2.c (arg_assoc): Template args will be a vec.
2236
        * error.c (dump_decl) : Call
2237
        dump_template_argument_list.
2238
        (dump_template_parms): Args will be a vec.
2239
        * parser.c (cp_parser_template_argument_list): Produce a
2240
        vector, not a list.
2241
        * pt.c (coerce_template_parms): Args are always vectors.
2242
        (mangle_class_name_for_template): Likewise.
2243
        (lookup_template_function): Likewise.
2244
        (lookup_template_class): Likewise.
2245
        (tsubst_template_args): Likewise.
2246
        (tsubst_baselink): Use tsubst_template_args.
2247
        (tsubst_qualified_id): Likewise.
2248
        (tsubst_copy) : Likewise.
2249
        (tsubst_copy_and_build) : Likewise.
2250
        (any_dependent_template_args_p):  Args are always vectors.
2251
        * tree.c (cp_tree_equal): Add TEMPLATE_ID_EXPR case.
2252
 
2253
        PR c++/11670
2254
        * call.c (convert_like_real): Add rvalue binding error message.
2255
        * error.c (dump_expr) : Detect when the no expr is
2256
        really a cast.
2257
 
2258
        PR c++/10530
2259
        * pt.c (dependent_type_p_r): A dependent template-id is a class
2260
        type with dependent template arguments, or a bound template
2261
        template parameter.
2262
        (type_dependent_expression_p): A template function decl cannot
2263
        have a dependent context.
2264
 
2265
2003-08-07  Kriang Lerdsuwanakij  
2266
 
2267
        PR c++/5767
2268
        * parser.c (cp_parser_class_name): Return immediately when scope
2269
        is error_mark_node.
2270
 
2271
2003-08-07  Aldy Hernandez  
2272
 
2273
        * cp/Make-lang.in (cp/call.o): Add dependency for target.h.
2274
 
2275
        * cp/call.c (standard_conversion): Support opaque types.
2276
        Include target.h.
2277
        (strip_top_quals): Use cp_build_qualified_type instead of
2278
        TYPE_MAIN_VARIANT.
2279
 
2280
        * cp/typeck.c (convert_for_assignment): Support opaque types.
2281
 
2282
        * testsuite/g++.dg/other/opaque-1.C: New.
2283
 
2284
        * testsuite/g++.dg/other/opaque-2.C: New.
2285
 
2286
2003-08-06  Aldy Hernandez  
2287
 
2288
        * decl.c (grokparms): Use cp_build_qualified_type instead
2289
        TYPE_MAIN_VARIANT.
2290
 
2291
2003-08-05  Gabriel Dos Reis  
2292
 
2293
        * cxx-pretty-print.h: New file.
2294
        * cxx-pretty-print.c: Likewise.
2295
        * error.c (scratch_pretty_printer): Change type.
2296
        (init_error): Tidy.
2297
        (dump_aggr_type): Likewise.
2298
        (dump_global_iord): Likewise.
2299
        (dump_expr): Likewise.
2300
        (dump_char): Remove.
2301
        * cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define.
2302
        (cxx_initialize_diagnostics): New function.
2303
        * Make-lang.in (CXX_OBJS): Add cp/cxx-pretty-print.o
2304
        (CXX_PRETTY_PRINT_H): New variable.
2305
        (cp/cxx-pretty-print.o): New rule.
2306
        (cp/cp-lang.o): Update dependence.
2307
        (cp/error.o): Likewise.
2308
 
2309
2003-08-05  Steven Bosscher  
2310
 
2311
        * cp-tree.h (struct lang_decl): Don't include c_lang_decl.
2312
        (DECL_DECLARED_INLINE_P): Remove.
2313
        * decl2.c (import_export_decl): Only look at DECL_DECLARED_INLINE_P
2314
        if decl is a FUNCTION_DECL.  This never made sense, but now it is
2315
        required to avoid a tree check failure.
2316
        * decl.c (grokfndecl): Don't touch DID_INLINE_FUNC.
2317
        * optimize.c (maybe_clone_body): Likewise.
2318
 
2319
2003-08-04  Roger Sayle  
2320
 
2321
        * decl.c (cxx_insert_default_attributes): Delete.
2322
        * cp-tree.h (cxx_insert_default_attributes): Don't prototype.
2323
        * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.
2324
 
2325
2003-08-03  Nathan Sidwell  
2326
 
2327
        PR c++/11704
2328
        * pt.c (type_dependent_expression_p): Cope with COMPONENT_REF with
2329
        unknown type.
2330
 
2331
        PR c++/11766
2332
        * typeck.c (comp_ptr_ttypes_real): Don't loop on pointers to
2333
        member functions.
2334
 
2335
2003-08-02  Nathan Sidwell  
2336
 
2337
        PR c++/9447
2338
        * cp-tree.def (USING_DECL): Document its type.
2339
        * class.c (pushclass): If we're entering a template, push any
2340
        dependent using decls it has.
2341
        * decl2.c (do_class_using_decl): Refactor. Type is NULL iff it is
2342
        a dependent scope.
2343
        * pt.c (tsubst_decl) : Set type.
2344
        (tsubst): Remove USING_DECL checks.
2345
        (type_dependent_expression_p): Remove USING_DECL case.
2346
        * semantics.c (finish_member_declaration): A USING_DECL's type
2347
        indicates whether it is dependent.
2348
 
2349
2003-08-02  Nathan Sidwell  
2350
 
2351
        * cp-tree.h (pushclass): Remove unneeded parameter.
2352
        * class.c (pushclass): Remove unneeded MODIFY parm. Adjust.
2353
        (push_nested_class): Adjust pushclass call.
2354
        * pt.c (instantiate_class_template): Likewise.
2355
        * semantics.c (begin_class_definition): Likewise.
2356
 
2357
2003-08-01  Nathanael Nerode  
2358
 
2359
        * typeck2.c (add_exception_specifier): Use 'bool' where appropriate.
2360
 
2361
2003-08-01  Mark Mitchell  
2362
 
2363
        PR c++/11697
2364
        * decl.c (decls_match): Don't ignore the types of template
2365
        classes.
2366
 
2367
        PR c++/11744
2368
        * pt.c (tsubst_copy_and_build): Refine Koenig lookup logic.
2369
 
2370
2003-08-01  Kriang Lerdsuwanakij  
2371
 
2372
        PR c++/8442, c++/8806
2373
        * decl.c (qualify_lookup): Accept TEMPLATE_DECL if types are
2374
        preferred.
2375
        (check_elaborated_type_specifier): Add allow_template_p
2376
        parameter.  Check tag mismatch and class template.
2377
        (xref_tag): Add template_header_p parameter.  Add assertion
2378
        that name is an IDENTIFIER_NODE.  Remove implicit typename
2379
        warning.  Simplify lookup process if globalize is true.
2380
        (cxx_init_decl_processing): Adjust call to xref_tag.
2381
        (xref_tag_from_type): Likewise.
2382
        * decl2.c (handle_class_head): Likewise.
2383
        * parser.c (cp_parser_elaborated_type_specifier,
2384
        cp_parser_class_head): Likewise.
2385
        * rtti.c (init_rtti_processing, build_dynamic_cast1,
2386
        tinfo_base_init, emit_support_tinfos): Likewise.
2387
        * class.c (is_base_of_enclosing_class): Remove.
2388
        * pt.c (convert_template_argument): Don't accept RECORD_TYPE as
2389
        template template argument.
2390
        * cp-tree.h (xref_tag): Adjust declaration.
2391
        (is_base_of_enclosing_class): Remove.
2392
        * NEWS: Document template template argument change.
2393
 
2394
2003-08-01  Nathan Sidwell  
2395
 
2396
        * parser.c (cp_parser_init_declarator,
2397
        cp_paser_member_declaration): Reformat.
2398
        * pt.c (lookup_template_class, type_unification_real, unify,
2399
        type_dependent_expression_p): Reformat.
2400
 
2401
        PR c++/11295
2402
        * cp-tree.h (tubst_flags_t): Add tf_stmt_expr_cmpd,
2403
        tf_stmt_expr_body.
2404
        (finish_stmt_expr_expr): Declare.
2405
        * parser.c (cp_parser_primary_expression): Tell
2406
        cp_parser_compount_statement that it is a statement expression.
2407
        (cp_parser_statement, cp_parser_labeled_statement,
2408
        cp_parser_compound_statement, cp_parser_statement_seq_opt): Add
2409
        in_statement_expr_p parameter.
2410
        (cp_parser_expression_statement): Likewise. Call
2411
        finish_stmt_expr_expr for final expression of a statement
2412
        expression.
2413
        (cp_parser_for_init_statement,
2414
        cp_parser_implicitly_scoped_statement,
2415
        cp_parser_already_scoped_statement, cp_parser_function_definition,
2416
        cp_parser_try_block, cp_parser_handled): Adjust.
2417
        * pt.c (tsubst_copy) : Pass tf_stmt_expr.
2418
        (tsubst_expr): Process tf_stmt_expr and tf_stmt_exprs flags.
2419
        (tsubst_expr) : Check tf_stmt_exprs flag.
2420
        * semantics.c (finish_expr_stmt): Do not deal with statement
2421
        expressions.
2422
        (begin_stmt_expr): Clear last_expr_type.
2423
        (finish_stmt_expr_expr): New.
2424
        (finish_stmt_expr): Process the value expression.
2425
 
2426
        * typeck.c (build_compound_expr): If RHS is a TARGET_EXPR, put the
2427
        compound expr inside the target's initializer.
2428
 
2429
        PR c++/11525
2430
        * parser.c (cp_parser_primary_expression): Do not set
2431
        non-constant-p merely because it is a dependent scope.
2432
 
2433
        PR c++/9447
2434
        * decl2.c (do_class_using_decl): Set type to NULL_TREE.
2435
        * semantics.c (finish_expr_stmt): Do not convert to void in a
2436
        template.
2437
 
2438
2003-07-31  Nathan Sidwell  
2439
 
2440
        * pt.c (coerce_template_parms): Refactor.
2441
        (fn_type_unification): Increment processing_template_decl when
2442
        tsubsting an incomplete set of explicit args.
2443
 
2444
        PR c++/11347
2445
        * pt.c (instantiate_class_template): Increment
2446
        processing_template_decl around the tsubst of a template member
2447
        class.
2448
        (tsubst_qualified_id): Assert we do not have a dependent scope.
2449
 
2450
        * pt.c (coerce_template_template_parms, lookup_template_class,
2451
        can_complete_type_without_circularity, instantiate_class_template,
2452
        tsubst_decl, unify): Reformat.
2453
 
2454
2003-07-31  Jan Hubicka  
2455
 
2456
        * decl2.c (maybe_make_one_only): Use mark_referenced.
2457
        * method.c (use_thunk): Likewsie.
2458
 
2459
2003-07-30  Jan Hubicka  
2460
 
2461
        * class.c (build_vtable_entry_ref): Kill.
2462
        (build_vtbl_ref_1): Do not call build_vtable_entry_ref.
2463
        (build_vfn_ref): Do not call build_vtable_entry_ref.
2464
        * cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
2465
        * cp-tree.h (prepare_assemble_variable): Kill.
2466
        * cp-decl.c (prepare_assemble_variable): Kill.
2467
 
2468
2003-07-29  Geoffrey Keating  
2469
 
2470
        * parser.c (cp_lexer_new_main): Use c_common_no_more_pch instead
2471
        of setting valid_pch by hand.
2472
 
2473
2003-07-29  Rainer Orth  
2474
 
2475
        * decl.c (finish_enum): Initialize underlying_type.
2476
 
2477
2003-07-29  Nathan Sidwell  
2478
 
2479
        PR c++/9447
2480
        * decl.c (add_binding): Add bval local variable.
2481
        (push_class_level_binding): Likewise. Allow a USING_DECL to be
2482
        pushed.
2483
        * decl2.c (do_class_using_decl):  The type of a using decl is
2484
        unknown.
2485
        * parser.c (cp_parser_postfix_expression): Refactor unqualified-id
2486
        function call lookup code.
2487
        * pt.c (tsubst): A USING_DECL will have unknown type.
2488
        (tsubst_copy_and_build): Allow a using decl.
2489
        (type_dependent_expression_p): A USING_DECL will make it
2490
        dependent.
2491
        * semantics.c (finish_member_declaration): Push a dependent using
2492
        declaration.
2493
 
2494
2003-07-28  Mark Mitchell  
2495
 
2496
        PR c++/11530
2497
        * parser.c (cp_parser_postfix_expression): Do not call mark_used.
2498
        * semantics.c (finish_id_expression): Call mark_used for all
2499
        declarations.
2500
 
2501
2003-07-28  Mark Mitchell  
2502
 
2503
        PR c++/11667
2504
        * call.c (standard_conversion): Allow all integral->enumeral
2505
        conversions, after marking them as bad.
2506
        * decl.c (finish_enum): Make sure that all enumerators are
2507
        properly converted to the underlying type.
2508
        (build_enumerator): Set DECL_CONTEXT for namespace-scope
2509
        enumeration types.
2510
        * pt.c (tsubst_copy): Adjust handling of CONST_DECLs accordingly.
2511
        (tsubst_enum): Tidy.
2512
 
2513
        * Make-lang.in (typeck.o): Depend on convert.h.
2514
        (class.o): Likewise.
2515
        (rtti.o): Likewise.
2516
        * call.c: Include convert.h.
2517
        (convert_arg_to_ellipsis): Use convert_to_real.
2518
        * class.c: Include convert.h.
2519
        (build_base_path): Use convert_to_integer.
2520
        * rtti.c: Include convert.h.
2521
        (build_headof): Use convert_to_integer.
2522
        * typeck.c: Include convert.h.
2523
        (decay_conversion): Use convert_to_integer.
2524
        (build_unary_op): Use build_nop.
2525
        (get_delta_difference): Use convert_to_integer.
2526
        (build_ptrmemfunc): Avoid unnecessary conversions.
2527
 
2528
2003-07-28  Jan Hubicka  
2529
 
2530
        * decl2.c (mark_member_pointers): Verify that member pointer points to
2531
        the function.
2532
 
2533
2003-07-28  Nathan Sidwell  
2534
 
2535
        * cp-tree.h (begin_compound_stmt): No scope arg is a bool.
2536
        (finish_compound_stmt): Remove no scope arg.
2537
        * decl.c (register_dtor_fn): Adjust begin_compound_stmt and
2538
        end_compound_stmt calls.
2539
        (expand_static_init, begin_destructor_body, begin_function_body,
2540
        finish_function_body): Likewise.
2541
        * decl2.c (start_objects, finish_objects,
2542
        start_static_storage_duration_function,
2543
        finish_static_storage_duration_function): Likewise.
2544
        * init.c (begin_init_stmts, finish_init_stmts,
2545
        construct_virtual_base, build_vec_init): Likewise.
2546
        * method.c (do_build_assign_ref, synthesize_method): Likewise.
2547
        * parser.c (cp_parser_compound_statement,
2548
        cp_parser_implicitly_scoped_statement,
2549
        cp_parser_already_scoped_statement): Likewise.
2550
        * pt.c (tsubst_expr): Likewise.
2551
        * semantics.c (begin_compound_stmt): No scope arg is a bool.
2552
        (finish_compound_stmt): Remove no scope arg.
2553
 
2554
        * error.c (dump_expr) : A compound expr is
2555
        always dyadic.
2556
 
2557
2003-07-27  Mark Mitchell  
2558
 
2559
        * call.c (standard_conversion): Tweak handling of
2560
        pointer-to-member types.
2561
        * pt.c (tsubst): Correctly qualify pointers-to-data member types.
2562
        * typeck.c (comp_ptr_ttypes_real): Check qualifiers on
2563
        pointer-to-data member types.
2564
 
2565
2003-07-27  Nathan Sidwell  
2566
 
2567
        * parser.c (cp_parser_type_parameter): Reformat.
2568
        (cp_parser_parameter_declaration): Deprecate default args where
2569
        not allowed.
2570
 
2571
2003-07-26  Nathan Sidwell  
2572
 
2573
        * cfns.h: Rebuilt.
2574
 
2575
        * cp-tree.h (begin_init_stmts, finish_init_stmts): Remove.
2576
        (begin_global_stmt_expr, finish_global_stmt_expr): Remove.
2577
        * init.c (begin_init_stmts): Make static. Return is_global
2578
        value. Always call begin_stmt_expr.
2579
        (finish_init_stmts): Make static. Add is_global parm. Always
2580
        building a stmt tree.
2581
        (build_aggr_init): Adjust begin_init_stmts, finish_init_stmts calls.
2582
        (build_vec_init): Likewise. Always building a stmt tree.
2583
        (expand_default_init): Always building a stmt tree.
2584
        (get_temp_regvar): Likewise.
2585
        * semantics.c (begin_global_stmt_expr,
2586
        finish_global_stmt_expr): Remove.
2587
 
2588
2003-07-25  Nathan Sidwell  
2589
 
2590
        * cp-tree.h (build_compound_expr): Take LHS & RHS args.
2591
        (build_x_compound_expr_from_list): Declare.
2592
        * typeck.c (build_x_compound_expr_from_list): New.
2593
        (build_x_compound_expr): Adjust.
2594
        (build_compound_expr): Remove unreachable code. Take two
2595
        parameters, adjust.
2596
        * decl.c (grok_reference_init): Use
2597
        build_x_compound_expr_from_list.
2598
        (expand_static_init): Adjust build_compound_expr call.
2599
        (cxx_maybe_build_cleanup): Likewise.
2600
        * init.c (perform_member_init): Use
2601
        build_x_compound_expr_from_list.
2602
        (build_new_1): Likewise.
2603
        (build_vec_delete): Adjust build_compound_expr calls.
2604
        (build_vbase_delete): Likewise.
2605
        * typeck2.c (store_init_value): Use
2606
        build_x_compound_expr_from_list.
2607
        (build_functional_cast): Likewise.
2608
 
2609
2003-07-25  Nathan Sidwell  
2610
 
2611
        * cp-tree.h (enum tsubst_flags_t): Add tf_user.
2612
        * decl.c (make_typename_type): Pass it.
2613
        * pt.c (lookup_template_class): Use it.
2614
        (resolve_typename_type): Pass it.
2615
        * semantics.c (finish_template_type): Pass it.
2616
 
2617
2003-07-25  Nathan Sidwell  
2618
 
2619
        PR c++/11617
2620
        * cp-tree.h (qualified_name_lookup_error): Declare.
2621
        * pt.c (tsubst_qualified_id): Use qualified_name_lookup_error for
2622
        errors.
2623
        (tsubst_expr) : Likewise.
2624
        (tsubst_copy_and_build) : Likewise.
2625
        * semantics.c (qualified_name_lookup_error): New, broken out of ...
2626
        (finish_id_expression): ... here. Use it.
2627
 
2628
2003-07-25  Falk Hueffner  
2629
 
2630
        * cfns.gperf: Add '%%' delimiter to placate gperf 3.0.
2631
 
2632
2003-07-25  Nathan Sidwell  
2633
 
2634
        PR c++/11596
2635
        * pt.c (maybe_fold_nontype_arg, maybe_fold_nontype_args): Remove.
2636
        (tsubst_template_arg): New.
2637
        (tsubst_template_arg_vector): Rename to ...
2638
        (tsubst_template_args): ... this. Accept a TREE_LIST form. Use
2639
        tsubst_template_arg.
2640
        (coerce_template_parms): Use tsubst_template_arg for default
2641
        value.
2642
        (tsubst_template_parms): Likewise.
2643
        (tsubst_aggr_type): Adjust.
2644
        (tsubst_decl): Likewise.
2645
        (tsubst): Use tsubst_template_arg for a DOMAIN. Adjust.
2646
        (tsubst_copy) : Use tsubst_template_args.
2647
 
2648
2003-07-25 Gabriel Dos Reis  
2649
 
2650
        * Make-lang.in (cp/error.o): Depend on DIAGNOSTIC_H.
2651
        * error.c: Use the new pretty-printer framework.
2652
 
2653
2003-07-24  Per Bothner  
2654
 
2655
        * decl.c (pushdecl_class_level): Don't use push_srcloc/pop_srcloc
2656
        which causes errors messages to incorrectly mention included files.
2657
 
2658
2003-07-24  Mark Mitchell  
2659
 
2660
        * cp-tree.h (convert_to_base_statically): Declare.
2661
        * call.c (build_special_member_call): Convert INSTANCE to the base
2662
        type.
2663
        * class.c (convert_to_base_statically): New method.
2664
        * init.c (construct_virtual_base): Use it.
2665
        * method.c (do_build_assign_ref): Fix typo in comment.
2666
 
2667
2003-07-24  Jason Merrill  
2668
 
2669
        * decl.c: Just set truthvalue_* to boolean_*.
2670
 
2671
2003-07-24  Nathan Sidwell  
2672
 
2673
        * decl.c (reshape_init): Remove unreachable code.
2674
 
2675
2003-07-24  Kriang Lerdsuwanakij  
2676
 
2677
        PR c++/11513
2678
        * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope.
2679
 
2680
2003-07-23  Mark Mitchell  
2681
 
2682
        PR c++/11645
2683
        * cp-tree.h (accessible_base_p): Declare.
2684
        * call.c (build_over_call): Use it.
2685
        * search.c (accessible_base_p): New function, split out from ...
2686
        (lookup_base): ... here.
2687
 
2688
        PR c++/11517
2689
        * call.c (build_conditional_expr): Use perform_implicit_conversion
2690
        and error_operand_p.  Robustify.
2691
        * typeck.c (build_unary_op): Use perform_implicit_conversion.
2692
 
2693
2003-07-23  Nathan Sidwell  
2694
 
2695
        PR c++/10953
2696
        * parser.c (cp_parser_nested_name_specifier): Reset scope on
2697
        failure.
2698
        (cp_parser_elaborated_type_specifier): Likewise.
2699
 
2700
2003-07-22  Mark Mitchell  
2701
 
2702
        Eliminate use of POINTER_TYPE for pointers-to-members.
2703
        * call.c (standard_conversion): Rework pointer-to-member handling.
2704
        Add comments.
2705
        (add_builtin_candidate): Likewise.
2706
        (resolve_scoped_fn_name): Remove.
2707
        (build_conditional_expr): Rework pointer-to-member handling.
2708
        (compare_ics): Likewise.
2709
        * class.c (check_field_decls): Use TYPE_PTR_P.
2710
        * cp-lang.c (cp_var_mod_type_p): Rework pointer-to-member
2711
        handling.
2712
        * cp-tree.h (SCALAR_TYPE_P): Use TYPE_PTR_TO_MEMBER_P.
2713
        (TYPE_PTRMEM_P): Add comment.
2714
        (TYPE_PTR_P): Simplify.
2715
        (TYPE_PTROB_P): Correct definition.
2716
        (TYPE_PTR_TO_MEMBER_P): New macro.
2717
        (TYPE_PTRMEM_CLASS_TYPE): Adjust.
2718
        (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
2719
        (resolved_scoped_fn_name): Remove declaration.
2720
        (build_offset_ref): Change prototype.
2721
        (resolve_offset_ref): Remove.
2722
        (comp_target_types): Remove.
2723
        * cvt.c (cp_convert_to_pointer): Rework pointer-to-member
2724
        handling.
2725
        (convert_to_reference): Use can_convert.
2726
        (ocp_convert): Improve error handling.  Rework pointer-to-member
2727
        handling.
2728
        (perform_qualification_conversions): Rework pointer-to-member
2729
        handling.
2730
        * decl.c (build_ptrmem_type): Handle functions too.
2731
        (create_array_type_for_decl): Remove OFFSET_TYPE error message.
2732
        (grokdeclarator): Use OFFSET_TYPE for pointers to data members.
2733
        (grokparms): Remove OFFSET_TYPE error message.
2734
        * dump.c (cp_dump_tree): Rework pointer-to-member handling.
2735
        * error.c (dump_type_prefix): Likewise.
2736
        * expr.c (cplus_expand_constant): Use build_nop.
2737
        * init.c (build_offset_ref): Add address_p parameter.  Fold in
2738
        necessary bits from resolve_offset_ref.
2739
        (resolve_offset_ref): Remove.
2740
        * parser.c (cp_parser_postfix_expression): Remove special case
2741
        code for OFFSET_TYPE.
2742
        * pt.c (convert_nontype_argument): Rework pointer-to-member
2743
        handling.
2744
        (convert_template_argument): Likewise.
2745
        (unify): Likewise.
2746
        (invalid_nontype_parm_type_p): Likewise.
2747
        (dependent_type_p_r): Likewise.
2748
        * rtti.c (get_tinfo_decl): Remove OFFSET_TYPE special case.
2749
        (target_incomplete_p_): Rework pointer-to-member
2750
        handling.
2751
        (get_pseudo_ti_init): Likewise.
2752
        (get_pseudo_ti_desc): Likewise.
2753
        * semantics.c (finish_qualified_id_expr): Adjust call to
2754
        build_offset_ref.  Remove use of resolve_offset_ref.
2755
        * tree.c (pod_type_p): Use TYPE_PTR_TO_MEMBER_P.
2756
        * typeck.c (target_type): Use TYPE_PTRMEM_P.
2757
        (type_unknown_p): Remove obsolete code about the time before
2758
        non-dependent expressions were handled correctly.
2759
        (qualify_type_recursive): Remove.
2760
        (composite_pointer_type_r): New function.
2761
        (composite_pointer_type): Use it.
2762
        (merge_types): Remove dead comments.
2763
        (comp_cv_target_types): Remove.
2764
        (comp_target_types): Likewise.
2765
        (comp_target_parms): Likewise.
2766
        (cxx_sizeof_or_alignof_type): Remove OFFSET_TYPE error.
2767
        (build_indirect_ref): Use TYPE_PTR_TO_MEMBER_P.
2768
        (build_binary_op): Do not use of comp_target_types.
2769
        (pointer_diff): Remove OFFSET_TYPE case.
2770
        (build_unary_op): Adjust pointer-to-member handling.
2771
        (unary_complex_lvalue): Likewise.
2772
        (check_for_casting_away_constness): Add description parameter.
2773
        (build_static_cast): Pass it.
2774
        (build_reinterpret_cast): Use check_for_casting_away_constness.
2775
        (build_const_cast): Adjust pointer-to-member handling.
2776
        (build_c_cast): Likewise.
2777
        (convert_for_assignment): Remove OFFSET_TYPE error message.
2778
        (comp_ptr_ttypes_real): Adjust pointer-to-member handling.
2779
        (comp_ptr_ttypes_reinterpret): Remove.
2780
        (casts_away_constness_r): Adjust pointer-to-member handling.
2781
        (casts_away_constness): Liekwise.
2782
        (strip_all_pointer_quals): Remove.
2783
        * typeck2.c (digest_init): Adjust pointer-to-member handling.
2784
        (build_m_component_ref): Likewise.
2785
 
2786
2003-07-22  Wolfgang Bangerth  
2787
 
2788
        * lex.c (unqualified_fn_lookup_error): Mention that the error
2789
        message needs to be kept in synch with the manual.
2790
 
2791
2003-07-22  Nathan Sidwell  
2792
 
2793
        PR c++/11614
2794
        * decl.c (grokdeclarator): An array member is only a flexible
2795
        array member if the field itself is the array.
2796
 
2797
2003-07-22  Kriang Lerdsuwanakij  
2798
 
2799
        PR c++/10793
2800
        * decl.c (xref_basetypes): Handle error_mark_node.
2801
 
2802
2003-07-22  Nathan Sidwell  
2803
 
2804
        * cp-tree.h (enum cp_lvalue_kind): Add clk_packed.
2805
        * tree.c (lvalue_p_1): Set it.
2806
        * class.c (check_field): Don't allow non-packed non-POD fields to
2807
        be packed.
2808
        * call.c (reference_binding): Need a temporary for all bitfield
2809
        and packed fields.
2810
        (convert_like_real): Check it is ok to make a temporary here.
2811
 
2812
2003-07-21  Nathan Sidwell  
2813
 
2814
        * cp-tree.h (hack_identifier): Remove.
2815
        * method.c (hack_identifier): Remove.
2816
        * semantics.c (finish_id_expression): Expand hack_identifier
2817
        here. Simplify.
2818
 
2819
2003-07-19  Kaveh R. Ghazi  
2820
 
2821
        * call.c class.c decl.c decl2.c g++spec.c lex.c parser.c pt.c rtti.c
2822
        semantics.c typeck.c: Remove unnecessary casts.
2823
 
2824
2003-07-18  Nathan Sidwell  
2825
 
2826
        * cp-tree.h (hack_identifier): Remove.
2827
        * method.c (hack_identifier): Remove.
2828
        * semantics.c (finish_id_expression): Expand hack_identifier
2829
        here. Simplify.
2830
 
2831
2003-07-18  Nathan Sidwell  
2832
 
2833
        * cp-tree.h (finish_non_static_data_member): Add object param.
2834
        * method.c (hack_identifier): Adjust.
2835
        * pt.c (tsubst_copy_and_build) : Don't search
2836
        again for a FIELD_DECL.
2837
        * semantics.c (finish_non_static_data_member): Add object
2838
        parameter. Always save the DECL in the COMPONENT_REF.
2839
        * call.c (resolve_scoped_fn_name): Adjust.
2840
 
2841
2003-07-17  Zack Weinberg  
2842
 
2843
        * pt.c (get_bindings): Make definition consistent with
2844
        forward declaration.
2845
 
2846
2003-07-17  Kriang Lerdsuwanakij  
2847
 
2848
        PR c++/7809
2849
        * friend.c (add_friend): Check access for member functions
2850
        and templates.
2851
 
2852
2003-07-17  Gabriel Dos Reis  
2853
 
2854
        PR c++/10668
2855
        * typeck.c (build_class_member_access_expr): Improve diagnostic.
2856
 
2857
2003-07-16  Mark Mitchell  
2858
 
2859
        PR c++/11547
2860
        * cp-tree.h (DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P): New
2861
        macro.
2862
        (DECL_PRETTY_FUNCTION_P): Use VAR_DECL_CHECK.
2863
        * decl.c (duplicate_decls): Merge
2864
        DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2865
        * parser.c (cp_parser_postfix_expression): Adjust call to
2866
        cp_parser_initializer_list and
2867
        cp_parser_parenthesized_expression_list.
2868
        (cp_parser_parenthesized_expression_list): Add non_constant_p.
2869
        (cp_parser_new_placement): Adjust call to
2870
        cp_parser_parenthesized_expression_list.
2871
        (cp_parser_direct_new_declarator): Likewise.
2872
        (cp_parser_conditional_expression): Remove.
2873
        (cp_parser_constant_expression): Parse an assignment-expression,
2874
        not a conditional-expression.
2875
        (cp_parser_simple_declaration): Resolve expression/declaration
2876
        ambiguity more quickly.
2877
        (cp_parser_mem_initializer): Adjust call to
2878
        cp_parser_parenthesized_expression_list.
2879
        (cp_parser_init_declarator): Keep track of whether or not the
2880
        initializer is a constant-expression.
2881
        (cp_parser_initializer): Add non_constant_p parameter.
2882
        (cp_parser_initializer_clause): Likewise.
2883
        (cp_parser_initializer_list): Likewise.
2884
        (cp_parser_attribute_list): Adjust call to
2885
        cp_parser_parenthesized_expression_list.
2886
        (cp_parser_functional_cast): Likewise.
2887
        * pt.c (tsubst_decl): Copy
2888
        DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2889
        (tsubst_expr): Tweak use of DECL_PRETTY_FUNCTION_P.
2890
        * semantics.c (finish_id_expression): Use
2891
        DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2892
 
2893
2003-07-16  Neil Booth  
2894
 
2895
        * lang-options.h: Remove.
2896
 
2897
2003-07-16  Andrew Pinski  
2898
 
2899
        PR c/10962
2900
        * class.c (field_decl_cmp): Remove.
2901
        (resort_field_decl_cmp): Remove.
2902
        (resort_sorted_fields): Remove.
2903
        (add_fields_to_vec): Rename to ...
2904
        (add_fields_to_record_type): this.
2905
        (finish_struct_1): Change to be using
2906
        sorted_fields_type's fields.
2907
        * cp-tree.h (lang_decl): In lang_decl_u3
2908
        change sorted_fields to be a pointer to
2909
        sorted_fields_type.
2910
        (resort_sorted_fields): Remove prototype.
2911
        * search.c (lookup_field_1): Change to be using
2912
        sorted_fields_type's fields.
2913
 
2914
2003-07-16  Kriang Lerdsuwanakij  
2915
 
2916
        PR c++/5421
2917
        * decl.c (grokdeclarator): Handle TEMPLATE_ID_EXPR if friend
2918
        is a member of other class.
2919
        * friend.c (do_friend): Don't build TEMPLATE_DECL if friend
2920
        is a specialization of function template.
2921
 
2922
2003-07-16  Gabriel Dos Reis  
2923
 
2924
        PR c++/10903
2925
        * pt.c (convert_nontype_argument): Fix thinko in diagnostic.
2926
        Improve.
2927
 
2928
2003-07-15  Mark Mitchell  
2929
 
2930
        * cp-tree.def (LOOKUP_EXPR): Remove.
2931
        * cp-tree.h (cp_id_kind): Add CP_ID_KIND_UNQUALIFIED_DEPENDENT.
2932
        (LOOKUP_EXPR_GLOBAL): Remove.
2933
        (get_bindings): Remove.
2934
        (is_aggr_type_2): Remove.
2935
        * call.c (resolved_scoped_fn_name): Remove support for
2936
        LOOKUP_EXPR.
2937
        * decl.c (grokfndecl): Likewise.
2938
        (grokdeclarator): Likewise.
2939
        * error.c (dump_decl): Likewise.
2940
        (dump_expr): Likewise.
2941
        * friend.c (do_friend): Likewise.
2942
        * init.c (build_offset_ref): Likewise.
2943
        * lex.c (unqualified_fn_lookup_error): Use pedwarn.  Do not create
2944
        LOOKUP_EXPRs
2945
        * mangle.c (write_expression): Remove support for LOOKUP_EXPR.
2946
        * parser.c (cp_parser_postfix_expression): Modify Koenig lookup
2947
        test.
2948
        * pt.c (get_bindings): Give it internal linkage.
2949
        (check_explicit_specialization): Remove support for LOOKUP_EXPR.
2950
        (lookup_template_function): Likewise.
2951
        (for_each_tempalte_parm_r): Likewise.
2952
        (tsubst_decl): Likewise.
2953
        (tsubst_qualified_id): Handle template template parameters.
2954
        (tsubst_copy): Remove support for LOOKUP_EXPR.
2955
        (tsubst_copy_and_build): Likewise.
2956
        (most_general_template): Likewise.
2957
        (value_dependent_expression_p): Likewise.
2958
        (type_dependent_expression_p): Note that IDENTIFIER_NODEs are
2959
        always dependent.
2960
        * semantics.c (perform_koenig_lookup): Do not create
2961
        IDENTIFIER_NODEs.
2962
        (finish_fname): Likewise.
2963
        (finish_id_expression): Likewise.
2964
        * tree.c (is_aggr_type_2): Remove.
2965
 
2966
2003-07-16  Gabriel Dos Reis  
2967
 
2968
        PR c++/11531
2969
        * typeck.c (check_return_expr): Fix thinko in diagnostic.
2970
 
2971
2003-07-15  Kriang Lerdsuwanakij  
2972
 
2973
        PR c++/10108
2974
        * pt.c (tsubst_decl) : Add a check for
2975
        error_mark_node.
2976
 
2977
2003-07-14  Mark Mitchell  
2978
 
2979
        PR c++/11509
2980
        * pt.c (dependent_scope_ref_p): New function.
2981
        (value_dependent_expression_p): Use it.
2982
        (type_dependent_expression_p): Likewise.
2983
 
2984
        * pt.c (tsubst_friend_function): Use reregister_specialization.
2985
 
2986
        PR c++/7019
2987
        * cp-tree.h (lookup_qualified_name): Adjust prototype.
2988
        * decl.c (lookup_qualified_name): Add complain parameter.  Adjust
2989
        call to is_aggr_type.
2990
        * parser.c (cp_parser_lookup_name): Adjust call to
2991
        lookup_qualified_name.
2992
        * pt.c (tsubst_qualified_id): Likewise.
2993
        (tsubst_copy_and_build): Likewise.
2994
        * semantics.c (finish_qualified_id_expr): Deal with erroneous
2995
        expressions.
2996
 
2997
2003-07-14  Gabriel Dos Reis 
2998
 
2999
        PR c++/11510
3000
        * call.c (op_error): Properly format  REALPART_EXPR and
3001
        IMAGPART_EXPR.
3002
        * error.c (dump_expr): Likewise.
3003
 
3004
2003-07-14  Gabriel Dos Reis 
3005
 
3006
        * error.c (dump_expr): Handle EMPTY_CLASS_EXPR.
3007
 
3008
2003-07-14  Gabriel Dos Reis  
3009
 
3010
        PR c++/5293
3011
        * call.c (initialize_reference): Improve diagnostic.
3012
 
3013
2003-07-14  Kriang Lerdsuwanakij  
3014
 
3015
        PR c++/11154
3016
        * pt.c (more_specialized_class): Add full_args parameter.
3017
        (most_specialized_class): Adjust calls to more_specialized_class.
3018
        * cp-tree.h (more_specialized_class): Adjust declaration.
3019
 
3020
2003-07-14  Dan Nicolaescu  
3021
 
3022
        * lex.c (enum tree_node_kind): Delete.
3023
 
3024
2003-07-13  Mark Mitchell  
3025
 
3026
        PR c++/11503
3027
        * cp-tree.h (DECL_SELF_REFERENCE_P): New macro.
3028
        (SET_DECL_SELF_REFERENCE_P): Likewise.
3029
        * class.c (build_self_reference): Use SET_DECL_SELF_REFERENCE_P.
3030
        * pt.c (tsubst_decl): Copy it.
3031
        * search.c (lookup_base): Use DECL_SELF_REFERENCE_P.
3032
 
3033
        * pt.c (reregister_specialization): Fix thinko in previous change.
3034
 
3035
        * cp-tree.h (cp_id_kind): New type.
3036
        (unqualified_name_lookup_error): Change prototype.
3037
        (unqualified_fn_lookup_error): New function.
3038
        (do_identifier): Remove.
3039
        (do_scoped_id): Likewise.
3040
        (tsubst_copy_and_build): Change prototype.
3041
        (reregister_specialization): New function.
3042
        (perform_koenig_lookup): Likewise.
3043
        (finish_id_expression): Likewise.
3044
        * call.c (build_method_call): Adjust call to
3045
        unqualified_name_lookup_error.
3046
        * decl.c (duplicate_decls): Use reregister_specialization.
3047
        * lex.c (is_global): Remove.
3048
        (unqualified_name_lookup_error): Return a value.
3049
        (do_identifier): Remove.
3050
        (do_scoped_id): Likewise.
3051
        (identifier_typedecl_value): Remove.
3052
        (unqualified_fn_lookup_error): New function.
3053
        * parser.c (cp_parser_id_kind): Remove.
3054
        (cp_parser_non_constant_id_expression): Remove.
3055
        (cp_parser_primary_expression): Use finish_id_expression.
3056
        (cp_parser_class_or_namespace_name): Use cp_id_kind, not
3057
        cp_parser_id_kind.
3058
        (cp_parser_postfix_expression): Use perform_koenig_lookup.
3059
        (cp_parser_template_argument): Use cp_id_kind.
3060
        (cp_parser_fold_non_dependent_expr): Adjust call to
3061
        tsubst_copy_and_build.
3062
        * pt.c (unregister_specialization): Rename to ...
3063
        (reregister_specialization): This.
3064
        (tsubst_friend_function): Use it.
3065
        (maybe_fold_nontype_arg): Adjust call to tsubst_copy_and_build.
3066
        (tsubst_qualified_id): Likewise.
3067
        (tsubst_expr): Likewise.
3068
        (tsubst_copy_and_build): Add function_p parameter.  Use
3069
        finish_id_expression.  Introduce RECUR macro.
3070
        (tsubst_non_call_postfix_expression): New function.
3071
        (regenerate_decl_from_template): Use reregister_specialization.
3072
        * semantics.c (perform_koenig_lookup): New function.
3073
        (finish_id_expression): Likewise.
3074
 
3075
2003-07-13  Kriang Lerdsuwanakij  
3076
 
3077
        * pt.c (push_access_scope_real): Remove.
3078
        (push_access_scope): Move code from push_access_scope_real.
3079
        (pop_access_scope): Don't check for TEMPLATE_DECL.
3080
        (instantiate_template): Defer access checking during template
3081
        substitution.
3082
        (regenerate_decl_from_template): Tidy.
3083
 
3084
2003-07-11  Nathanael Nerode  
3085
 
3086
        PR c++/11437
3087
        * operators.def: Add definitions for __imag__, __real__.
3088
 
3089
2003-07-11  Nathan Sidwell  
3090
 
3091
        PR c++/11050
3092
        * parser.c (cp_parser_expression_list): Rename to ...
3093
        (cp_parser_parenthesized_expression_list): ... here. Add attribute
3094
        parameter, parse the surounding parentheses.
3095
        (cp_parser_skip_to_closing_parenthesis): Add recover and or_comma
3096
        parameters. Return int.
3097
        (cp_parser_skip_to_closing_parenthesis or comma): Remove.
3098
        (cp_parser_postfix_expression): Adjust function call parsing.
3099
        (cp_parser_new_placement): Adjust.
3100
        (cp_parser_new_initializer): Likewise.
3101
        (cp_parser_cast_expression): Likewise.
3102
        (cp_parser_selection_statement): Likewise.
3103
        (cp_parser_mem_initializer): Likewise.
3104
        (cp_parser_asm_definition): Likewise.
3105
        (cp_parser_init_declarator): Likewise.
3106
        (cp_parser_declarator): Make
3107
        cdtor_or_conv_p an int ptr.
3108
        (cp_parser_direct_declarator): Likewise. Check for a parameter
3109
        list on cdtors & conv functions.
3110
        (cp_parser_initializer): Adjust.
3111
        (cp_parser_member_declaration): Adjust.
3112
        (cp_parser_attribute_list): Move code into
3113
        cp_parser_parens_expression_list.
3114
        (cp_parser_functional_cast): Adjust.
3115
        * pt.c (type_dependent_expression_p): Erroneous expressions are
3116
        non-dependent.
3117
 
3118
2003-07-11  Geoffrey Keating  
3119
 
3120
        * decl.c (cp_finish_decl): Handle 'used' attribute.
3121
 
3122
        * cp-lang.c (c_reset_state): New dummy routine.
3123
        * cp-tree.h (finish_file): Move prototype to c-common.h.
3124
        * parser.c (c_parse_file): Rename from yyparse; don't call finish_file.
3125
 
3126
2003-07-11  Mark Mitchell  
3127
 
3128
        PR c++/8327
3129
        * pt.c (tsubst_qualified_id): Implement suggested resolution for
3130
        Core Issue 2.
3131
        (type_dependent_expression_p): Likewise.
3132
 
3133
2003-07-10  Mark Mitchell  
3134
 
3135
        * typeck.c (build_binary_op): Do not warn about signed
3136
        vs. unsigned comparisons in the bodies of templates.
3137
 
3138
        PR c++/9411
3139
        * parser.c (cp_parser_postfix_expression): Check dependency of
3140
        functions.
3141
 
3142
2003-07-09  Mark Mitchell  
3143
 
3144
        PR c++/10032
3145
        * decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are
3146
        still errors.
3147
 
3148
        PR c++/10527
3149
        * error.c (decl_to_string): Do not print default argument
3150
        expressions.
3151
 
3152
        * cp-tree.h (break_out_calls): Remove declaration.
3153
        * tree.c (break_out_calls): Remove.
3154
        * typeck.c (build_modify_expr): Avoid invalid sharing of trees.
3155
 
3156
2003-07-09  Nathan Sidwell  
3157
 
3158
        PR c++ 9483
3159
        * class.c (check_field_decls): Pass DECL_NAME to constructor_name_p.
3160
        * decl2.c (constructor_name_p): Avoid repeated constructor_name
3161
        calls.
3162
        * decl.c (grokdeclarator): Refactor ctor/dtor detection.
3163
 
3164
2003-07-09  Mark Mitchell  
3165
 
3166
        * typeck.c (build_x_unary_op): Take note of the fact that
3167
        PREINCREMENT_EXPR and POSTINCREMENT_EXPR are binary operations on
3168
        trees.
3169
 
3170
        * parser.c (cp_parser_primary_expression): Preserve the form of
3171
        qualified expressions in templates, even if they are not
3172
        dependent.
3173
        * pt.c (convert_nontype_argument): Handle non-dependent SCOPE_REFs.
3174
        (tsubst_qualified_id): Likewise.
3175
        * search.c (accessible_p): Treat everything in the body of a
3176
        template as accessible.
3177
 
3178
2003-07-08  Mark Mitchell  
3179
 
3180
        * cp-tree.def (NON_DEPENDENT_EXPR): New node.
3181
        * cp-tree.h (build_call_from_tree): Remove.
3182
        (build_member_call): Likewise.
3183
        (dependent_template_arg_p): Remove.
3184
        (any_dependent_template_arguments_p): New function.
3185
        (dependent_template_id_p): Likewise.
3186
        (any_type_dependent_arguments_p): Likewise.
3187
        (build_non_dependent_expr): Likewise.
3188
        (build_non_dependent_args): Likewise.
3189
        (build_x_compound_expr): Adjust prototype.
3190
        * call.c (build_new_method_call): Handle non-dependent expressions
3191
        correctly.
3192
        * decl2.c (grok_array_decl): Likewise.
3193
        (build_offset_ref_call_from_tree): Likewise.
3194
        (build_call_from_tree): Remove.
3195
        * error.c (dump_decl): Handle NON_DEPENDENT_EXPR.
3196
        (dump_expr): Likewise.
3197
        * init.c (build_member_call): Remove.
3198
        * mangle.c (write_expression): Update handling for template-ids.
3199
        * parser.c (cp_parser_primary_expression): Use
3200
        any_dependent_template_arguments_p.  Update constant-expression
3201
        handling.
3202
        (cp_parser_postfix_expression): Use
3203
        any_type_dependent_arguments_p.  Simplify call processing.
3204
        (cp_parser_unary_expression): Simplify.
3205
        (cp_parser_expression): Adjust for changes to
3206
        build_x_compound_expr.
3207
        (cp_parser_template_argument): Implement standard-conforming
3208
        parsing of non-type template arguments.
3209
        (cp_parser_direct_declarator): Use
3210
        cp_parser_fold_non_dependent_expr.
3211
        (cp_parser_fold_non_dependent_expr): New function.
3212
        (cp_parser_next_token_ends_template_argument_p): Likewise.
3213
        * pt.c (convert_template_argument): Do not call
3214
        maybe_fold_nontype_arg.
3215
        (tsubst_baselink): Likewise.
3216
        (tsubst_copy_and_build): Share common code.  Make sizeof/alignof
3217
        processing work correctly for non-dependent expressions.  Adjust
3218
        handling of COMPOUND_EXPR.  Simplify call processing.
3219
        (value_dependent_expression_p): Deal with functional casts and
3220
        sizeof/alignof correctly.
3221
        (type_dependent_expression_p): Handle overloaded functions.
3222
        (any_type_dependent_arguments_p): New function.
3223
        (any_dependent_template_arguments_p): Likewise.
3224
        (dependent_template_p): Treat SCOPE_REFs as dependent.
3225
        (dependent_template_id_p): Simplify.
3226
        (build_non_dependent_expr): New function.
3227
        (build_non_dependent_args): Likewise.
3228
        * semantics.c (finish_stmt_expr): Don't make dependent
3229
        statement-expresions have void type.
3230
        (finish_call_expr): Handle non-dependent expressions
3231
        correctly.
3232
        * tree.c (lvalue_p_1): Treat NON_DEPENDENT_EXPRs as lvalues.
3233
        * typeck.c (cxx_sizeof_or_alignof_type): Give the expression
3234
        type size_t, even in templates.
3235
        (expr_sizeof): Likewise.
3236
        (finish_class_member_access_expr): Handle non-dependent expressions
3237
        correctly.
3238
        (build_x_indirect_ref): Likewise.
3239
        (build_x_binary_op): Likewise.
3240
        (build_x_unary_op): Likewise.
3241
        (build_x_conditional_expr): Likewise.
3242
        (build_x_compound_expr): Likewise.
3243
        * typeck2.c (build_x_arrow): Likewise.
3244
 
3245
2003-07-09  Jan Hubicka  
3246
 
3247
        * cp-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.
3248
        * decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS.
3249
        (start_function): Use DECL_ESTIMATED_INSNS.
3250
        * optimize.c (maybe_clone_body): Use DECL_ESTIMATED_INSNS.
3251
 
3252
        * decl2.c (maybe_emit_vtables): Fix marking vtables as needed in
3253
        unit-at-a-time
3254
 
3255
2003-07-08  Kriang Lerdsuwanakij  
3256
 
3257
        PR c++/11030
3258
        * pt.c (instantiate_class_template): Don't call xref_tag to
3259
        inject name when the friend class is a specialization.
3260
 
3261
2003-07-07  Mark Mitchell  
3262
 
3263
        * cp-tree.h (build_scoped_method_call): Remove.
3264
        (lookup_qualified_name): Remove parameter.
3265
        (tsubst_copy_and_build): Declare.
3266
        (finish_qualified_object_call_expr): Remove.
3267
        (check_accessibility_of_qualified_id): New function.
3268
        (finish_qualified_id_expr): Likewise.
3269
        (non_reference): Likewise.
3270
        (build_expr_from-tree): Remove.
3271
        * call.c (non_reference): Remove.
3272
        (build_scoped_method_call): Likewise.
3273
        (build_method_call): Use error_operand_p.  Assert that we are not
3274
        processing a template.
3275
        (standard_conversion): Use non_reference.
3276
        * class.c (build_vtbl_entry_ref): Likewise.
3277
        (build_vtbl_ref_1): Likewise.
3278
        * cvt.c (build_expr_type_conversion): Use non_reference.
3279
        * decl.c (lookup_qualified_name): Remove flags parameter.
3280
        (grok_op_properties): Use non_reference.
3281
        * decl2.c (grok_array_decl): Likewise.
3282
        (build_expr_from_tree): Remove.
3283
        (build_offset_ref_call_from_tree): Update comment.
3284
        * error.c (parm_to_string): Call reinit_global_formatting_buffer.
3285
        * except.c (prepare_eh_types): Use non_reference.
3286
        (can_convert_eh): Likewise.
3287
        * init.c (build_dtor_call): Avoid using build_method_call.
3288
        * mangle.c (write_template_param): Remove misleading comment.
3289
        * method.c (locate_copy): Use non_reference.
3290
        * parser.c (cp_parser_scope_through_which_access_occurs): Remove.
3291
        (cp_parser_primary_expression): Do not create SCOPE_REFs is
3292
        non-dependent contexts.
3293
        (cp_parser_postfix_expression): Use finish_qualified_id_expr.
3294
        (cp_parser_direct_declarator): Use tsubst_copy_and_build, not
3295
        build_expr_from_tree.
3296
        (cp_parser_lookup_name): Adjust call to lookup_qualified_name.
3297
        Use check_accessibility_of_qualified_id.
3298
        * pt.c (maybe_fold_nontype_arg): Use tsubst_copy_and_build, not
3299
        build_expr_from_tree.
3300
        (tsubst_baselink): New function.
3301
        (tsubst_qualified_id): Likewise.
3302
        (tsubst_copy): Use them.  Remove support for METHOD_CALL_EXPR.
3303
        (tsubst_expr): Adjust call to lookup_qualified_name.
3304
        (tsubst_copy_and_build): Handle SCOPE_REFs specially.  Adjust
3305
        handling of CALL_EXPRs.
3306
        (value_dependent_expression_p): Use INTEGRAL_OR_ENUMERATION_TYPE_P.
3307
        * rtti.c (get_tinfo_decl_dynamic): Use non_reference.
3308
        * search.c (check_final_overrider): Likewise.
3309
        * semantics.c (check_accessibility_of_qualified_id): New function.
3310
        (finish_qualified_object_call_expr): Remove.
3311
        * typeck.c (target_type): Use non_reference.
3312
        (cxx_sizeof_or_alignof_type): Likewise.
3313
        (dubious_conversion_warnings): Likewise.
3314
        (convert_for_initialization): Likewise.
3315
        (non_reference): New function.
3316
 
3317
2003-07-07  Kaveh R. Ghazi  
3318
 
3319
        * decl.c (print_binding_level, print_other_binding_stack,
3320
        print_binding_stack): Merge uses of HOST_PTR_PRINTF with adjacent
3321
        stdio calls.
3322
        * ptree.c (cxx_print_decl, cxx_print_binding): Likewise.
3323
 
3324
2003-07-07  Andreas Jaeger  
3325
 
3326
        * friend.c: Convert to ISO C90 prototypes.
3327
 
3328
        * Make-lang.in ($(srcdir)/cp/cfns.h): Use ANSI-C as output
3329
        language.
3330
        * cfns.h: Regenerate.
3331
 
3332
        * typeck.c: Convert remaining prototypes to ISO C90.
3333
        * search.c: Likewise.
3334
 
3335
        * decl2.c (build_expr_from_tree): Convert prototype to ISO C90.
3336
        * semantics.c (expand_or_defer_fn): Likewise
3337
        * mangle.c (discriminator_for_string_literal): Likewise.
3338
        * g++spec.c (lang_specific_driver): Likewise.
3339
 
3340
        * search.c (lookup_base_r): Remove unused variable.
3341
 
3342
2003-07-07  Nathan Sidwell  
3343
 
3344
        * semantics.c: (genrtl_try_block) Adjust emit_line_note
3345
        calls.
3346
 
3347
2003-07-07  Andreas Jaeger  
3348
 
3349
        * search.c (lookup_base_r): Remove unused variable.
3350
 
3351
2003-07-06  Michael Chastain  
3352
 
3353
        PR debug/10055
3354
        * lex.c (cxx_init): Call push_srcloc and pop_srcloc rather than
3355
        assigning to input_filename directly.
3356
 
3357
2003-07-06  Kazu Hirata  
3358
 
3359
        * call.c: Fix comment formatting.
3360
        * class.c: Likewise.
3361
        * cp-tree.h: Likewise.
3362
        * decl.c: Likewise.
3363
        * decl2.c: Likewise.
3364
        * error.c: Likewise.
3365
        * method.c: Likewise.
3366
        * name-lookup.c: Likewise.
3367
        * parser.c: Likewise.
3368
        * pt.c: Likewise.
3369
        * rtti.c: Likewise.
3370
        * search.c: Likewise.
3371
        * typeck.c: Likewise.
3372
 
3373
2003-07-06  Mark Mitchell  
3374
 
3375
        PR c++/11345
3376
        * search.c (lookup_base_r): Remove is_non_public and
3377
        within_current_scope parameters.  Remove other dead code.
3378
        (lookup_base): Adjust call to lookup_base_r.
3379
        (adjust_result_of_qualified_name_lookup): Improve comment.
3380
        * semantics.c (finish_call_expr): Use maybe_dummy_object.
3381
 
3382
2003-07-06  Neil Booth  
3383
 
3384
        * cp-lang.c (LANG_HOOKS_HANDLE_FILENAME,
3385
        LANG_HOOKS_MISSING_ARGUMENT): Override.
3386
 
3387
2003-07-05  Mark Mitchell  
3388
 
3389
        PR c++/11431
3390
        * typeck.c (build_static_cast): Check for reference conversions
3391
        earlier.
3392
 
3393
2003-07-04  Mark Mitchell  
3394
 
3395
        * cp-tree.h (perform_integral_promotions): Declare.
3396
        * call.c (build_addr_func): Use decay_conversion.
3397
        (convert_arg_to_ellipsis): Likewise.  Remove misleading comment.
3398
        (convert_for_arg_passing): Use perform_integral_promotions.
3399
        * cvt.c (build_expr_type_conversion): Use decay_conversion.
3400
        (type_promotes_to): Do not return a cv-qualified type.
3401
        * decl.c (grok_reference_init): Fix formatting.
3402
        (get_atexit_node): Use decay_conversion.
3403
        (build_enumerator): Use perform_integral_promotions.
3404
        * init.c (build_vec_init): Use decay_conversion.
3405
        * semantics.c (finish_expr_stmt): Likewise.
3406
        (finish_switch_cond): Use perform_integral_promotions.
3407
        * typeck.c (default_conversion): Likewise.
3408
        (perform_integral_promotions): New function.
3409
        (build_indirect_ref): Use decay_conversion.
3410
        (build_array_ref): Use perform_integral_promotions.
3411
        (convert_arguments): Use decay_conversion.
3412
        (build_unary_op): Use perform_integral_promotions.
3413
        (build_c_cast): Use decay_conversion.
3414
        (build_modify_expr): Likewise.
3415
        (convert_for_initialization): Likewise.
3416
        * typeck2.c (build_x_arrow): Likewise.
3417
 
3418
2003-07-04  Kazu Hirata  
3419
 
3420
        * call.c: Fix comment typos.
3421
        * class.c: Likewise.
3422
        * cp-tree.h: Likewise.
3423
        * cvt.c: Likewise.
3424
        * decl2.c: Likewise.
3425
        * decl.c: Likewise.
3426
        * init.c: Likewise.
3427
        * mangle.c: Likewise.
3428
        * parser.c: Likewise.
3429
        * pt.c: Likewise.
3430
        * search.c: Likewise.
3431
        * semantics.c: Likewise.
3432
        * tree.c: Likewise.
3433
        * typeck.c: Likewise.
3434
 
3435
2003-07-04  Zack Weinberg  
3436
 
3437
        * parser.c (cp_lexer_read_token): No need to handle string
3438
        constant concatenation.
3439
 
3440
2003-07-03  Kaveh R. Ghazi  
3441
 
3442
        * cp-tree.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_CXXDIAG): Define.
3443
        (cp_error_at, cp_warning_at, cp_pedwarn_at): Mark with
3444
        ATTRIBUTE_GCC_CXXDIAG.
3445
 
3446
2003-07-03  Mark Mitchell  
3447
 
3448
        * call.c (build_addr_func): Handle bound pointers-to-members.
3449
        (build_method_call): Do not call resolve_offset_ref.
3450
        (implicit_conversion): Likewise.
3451
        (resolve_scoped_fn_name): Use finish_non_static_data_member, not
3452
        resolve_offset_ref.
3453
        (resolve_args): Do not call resolve_offset_ref.
3454
        (build_conditional_expr): Likewise.
3455
        (build_new_method_call): Likewise.
3456
        * cp-tree.def (OFFSET_REF): Update documentation.
3457
        * cvt.c (cp_convert_to_pointer): Update handling of conversions from
3458
        pointers to members to pointers.
3459
        (ocp_convert): Do not call resolve_offset_ref.
3460
        (convert_to_void): Likewise.
3461
        (build_expr_type_conversion): Likewise.
3462
        * decl2.c (delete_sanity): Likewise.
3463
        * init.c (resolve_offset_ref): Simplify greatly.
3464
        (build_vec_delete): Do not call resolve_offset_ref.
3465
        * parser.c (cp_parser_postfix_expression): Call resolve_offset_ref
3466
        if appropriate.
3467
        (cp_parser_unary_expression): Use
3468
        cp_parser_simple_cast_expression.
3469
        (cp_parser_delete_expression): Likewise.
3470
        (cp_parser_cast_expression): Likewise.
3471
        (cp_parser_pm_expression): Use cp_parser_binary_op.
3472
        (cp_parser_simple_cast_expression): New function.
3473
        * rtti.c (build_dynamic_cast_1): Do not call resolve_offset_ref.
3474
        * semantics.c (finish_increment_expr): Likewise.
3475
        (finish_typeof): Likewise.
3476
        * tree.c (lvalue_p_1): Do not handle OFFSET_REF.
3477
        * typeck.c (require_complete_type): Do not handle OFFSET_REFs.
3478
        (decay_conversion): Do not call resolve_offset_ref.
3479
        (finish_class_member_access_expr): Likewise.
3480
        (convert_arguments): Likewise.
3481
        (build_x_binary_op): Handle DOTSTAR_EXPR.
3482
        (condition_conversion): Do not call resolve_offset_ref.
3483
        (unary_complex_lvalue): Likewise.
3484
        (build_static_cast): Likewise.
3485
        (build_reinterpret_cast): Likewise.
3486
        (build_const_cast): Likewise.
3487
        (build_c_cast): Likewise.
3488
        (build_modify_expr): Likewise.
3489
        (convert_for_assignment): Likewise.
3490
        (convert_for_initialization): Likewise.
3491
        * typeck2.c (build_x_arrow): Likewise.
3492
        (build_m_component_ref): Simplify.
3493
 
3494
        * call.c (build_scoped_method_call): Use convert_to_void.
3495
        (build_method_call): Likewise.
3496
        * class.c (check_field_decls): Remove dead code.
3497
        * cvt.c (convert_from_reference): Remove OFFSET_TYPE handling.
3498
        * decl2.c (grok_array_decl): Remove dead code.
3499
        (arg_assoc_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE
3500
        as pointer-to-member representation.
3501
        * init.c (build_offset_ref): Tidy.
3502
        (build_vec_delete_1): Use convert_to_void.
3503
        * mangle.c (write_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE
3504
        as pointer-to-member representation.
3505
 
3506
2003-07-03  Nathan Sidwell  
3507
 
3508
        PR c++/9162
3509
        * decl.c (grokdeclarator): Return friend decls, not
3510
        void_type_node.
3511
        * decl2.c (grokfield): Alter friend decl check.
3512
        * parser.c (struct cp_parser): Document default_arg chain on
3513
        unparsed_functions_queue.
3514
        (cp_parser_save_default_args): New.
3515
        (cp_parser_init_declarator, cp_parser_function_definition,
3516
        cp_parser_member_declaration): Call it.
3517
        (cp_parser_class_specifier): Remove unused variable. Alter
3518
        processing of unparsed_functions_queue.
3519
 
3520
2003-07-03  Kaveh R. Ghazi  
3521
 
3522
        * class.c (add_method, check_field_decl): Fix format specifier.
3523
        * decl.c (duplicate_decls, pushdecl, check_goto,
3524
        fixup_anonymous_aggr, maybe_commonize_var, grokdeclarator,
3525
        start_enum): Likewise.
3526
        * decl2.c (ambiguous_decl): Likewise.
3527
        * pt.c (redeclare_class_template): Likewise.
3528
 
3529
2003-07-02  Nathan Sidwell  
3530
 
3531
        PR c++/10219
3532
        * pt.c (type_unification_real): Don't unify exprs of error type.
3533
        * tree.c (error_type): Don't die on error_type.
3534
 
3535
        PR c++/9779
3536
        * decl2.c (arg_assoc_class): Don't die on NULL type.
3537
        * typeck.c (type_unknown_p): Don't die on untyped expressions.
3538
 
3539
2003-07-01  Mark Mitchell  
3540
 
3541
        PR c++/6949
3542
        * decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local
3543
        classes.
3544
 
3545
2003-07-01  Kaveh R. Ghazi  
3546
 
3547
        * error.c (locate_error): %P takes an `int', not a `tree'.
3548
 
3549
2003-07-02  Jan Hubicka  
3550
 
3551
        * decl2.c (defer_fn): Set DECL_DEFER_OUTPUT.
3552
        (finish-file): Do not process function with DECL_DEFER_OUTPUT clear;
3553
        clear DECL_DEFER_OUTPUT once function is processed; avoid flags
3554
        massaging.
3555
 
3556
        * cp-tree.h (DECL_NEEDED_P): Support unit-at-a-time
3557
        (expand_or_defer_fn): Declare.
3558
        (lower_function): Declare.
3559
        * decl.c (start_cleanup_fn): Use expand_or_defer_fn.
3560
        * decl2.c: Include cgraph.h and varpool.h
3561
        (maybe_emit_vtables):  Make explicit instantations as needed.
3562
        (mark_member_pointers, lower_function): New functions.
3563
        (finish_file): Do unit-at-a-time.
3564
        * method.c (synthesize_method): Use expand_or_defer_fn.
3565
        * optimize.c (maybe_clone_body): Use expand_or_defer_fn.
3566
        * parser.c (cp_parser_function_definition_after_decl): Use
3567
        expand_or_defer_fn.
3568
        * pt.c (instantiate_decl): Likewise.
3569
        * semantics.c: Include cgraph.h
3570
        (expand_or_defer_fn): Break out from ...
3571
        (expand_body): ... here; deal with unit-at-a-time.
3572
        * cp-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
3573
        LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Define.
3574
 
3575
2003-07-01  Mark Mitchell  
3576
 
3577
        * call.c (resolve_scoped_fn_name): Return error_mark_node for
3578
        erroneous cases.
3579
 
3580
2003-07-01  Mark Mitchell  
3581
 
3582
        PR c++/11149
3583
        * call.c (resolve_scoped_fn_name): Check that the qualifying scope
3584
        is a class type.
3585
 
3586
2003-07-01  Giovanni Bajo  
3587
 
3588
        PR c++/8046
3589
        * error.c (dump_decl): Handle BIT_NOT_EXPR as
3590
        pseudo destructor calls.
3591
 
3592
2003-07-01  Nathan Sidwell  
3593
 
3594
        * cp-tree.h (define_label): Replace filename and lineno
3595
        arguments with a location_t.
3596
        * decl.c (pop_label): Adjust define_label call.
3597
        (define_label): Replace filename and lineno arguments with a
3598
        location_t.
3599
        * semantics.c (finish_label): Adjust define_label call.
3600
 
3601
2003-07-01  Mark Mitchell  
3602
 
3603
        PR c++/9559
3604
        * decl2.c (grokfield): Do not build NOP_EXPRs around the
3605
        error_mark_node.
3606
 
3607
2003-06-30  Neil Booth  
3608
 
3609
        * Make-lang.in: Update.
3610
        * cp-lang.c (c_language): Define.
3611
        (LANG_HOOKS_INIT_OPTIONS): Use common hook.
3612
        * cp-tree.h (cxx_init_options): Remove.
3613
        * lex.c: Don't include diagnostic.h.
3614
        (cxx_init_options): Remove.
3615
 
3616
2003-06-30  Giovanni Bajo  
3617
 
3618
        PR c++/4933
3619
        * error.c (dump_expr): Support correctly the COMPOUND_EXPR
3620
        tree generated within a template. Use dump_expr to dump an
3621
        expression sizeof.
3622
 
3623
2003-06-30  Giovanni Bajo  
3624
 
3625
        * mangle.c (write_expression): Exit gracefully when trying to
3626
        mangle a CALL_EXPR.
3627
 
3628
2003-06-30  Giovanni Bajo  
3629
 
3630
        PR c++/10750
3631
        * parser.c (cp_parser_primary_expression): A VAR_DECL with a
3632
        (value- or type-) dependent expression as DECL_INITIAL is a
3633
        valid constant-expression (at parser time).
3634
 
3635
2003-06-30  Giovanni Bajo  
3636
 
3637
        PR c++/11106
3638
        * error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a
3639
        USING_DECL, instead of print_tree_identifier.
3640
 
3641
2003-06-29  Gabriel Dos Reis  
3642
 
3643
        * cp-tree.h (language_to_string): Adjust declaration.
3644
        * dump.c (cp_dump_tree): Adjust usage.
3645
        * error.c (dump_char): Use output_formatted_scalar. Tidy.
3646
        (parm_to_string): Lose unused parameter.  Tidy.
3647
        (expr_to_string): Likewise.
3648
        (code_to_string): Likewise.
3649
        (language_to_string): Likewise.
3650
        (op_to_string): Likewise.
3651
        (assop_to_string): Likewise.
3652
        (digit_buffer): Remove.
3653
        (dump_type): Format builtin vector type as __vector__.
3654
 
3655
2003-06-29  Gabriel Dos Reis  
3656
 
3657
        * error.c (print_integer): Remove.
3658
        (dump_type_suffix): Adjust.
3659
        (dump_expr): Likewise.
3660
 
3661
2003-06-28  Nathan Sidwell  
3662
 
3663
        * error.c (print_instantiation_partial_context): Take a
3664
        location_t.
3665
        (print_instantiation_full_context): Adjust.
3666
        (print_instantiation_context): Adjust.
3667
 
3668
        * cp-tree.h (cp_line_of, cp_file_of): Remove.
3669
        * error.c (cp_line_of, cp_file_of): Merge into ...
3670
        (location_of): ... here. Make static, return a location_t.
3671
        (cp_error_at, cp_warning_at, cp_pedwarn_at): Adjust.
3672
 
3673
2003-06-28  Nathan Sidwell  
3674
 
3675
        PR c++/10784
3676
        * call.c (joust): Move warn_conversion check outwards.
3677
 
3678
2003-06-27  Zack Weinberg  
3679
 
3680
        * decl.c (build_typename_type)
3681
        * mangle.c (write_template_template_arg)
3682
        * parser.c (cp_parser_scope_through_which_access_occurs)
3683
        * pt.c (push_access_scope_real, push_access_scope, pop_access_scope)
3684
        * repo.c (get_base_filename)
3685
        * semantics.c (maybe_convert_cond):
3686
        Mark the definition static, matching the forward declaration.
3687
 
3688
2003-06-27  Mark Mitchell  
3689
 
3690
        PR c++/10468
3691
        * pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly.
3692
 
3693
2003-06-27  Mark Mitchell  
3694
 
3695
        PR c++/10796
3696
        * decl.c (finish_enum): Implement DR377.
3697
 
3698
        * decl.c (cp_finish_decl): Don't make variables with reference
3699
        type readonly while they are being initialized.
3700
 
3701
2003-06-26  Mark Mitchell  
3702
 
3703
        PR c++/11332
3704
        * typeck.c (build_static_cast): Avoid returning expressions with
3705
        reference type.
3706
 
3707
2003-06-26  Nathan Sidwell  
3708
 
3709
        * call.c (build_op_delete_call): Use strip_array_call. Correct
3710
        error message to say 'delete' or 'delete[]'.
3711
 
3712
2003-06-26  Giovanni Bajo  
3713
 
3714
        PR c++/8266
3715
        * pt.c (check_explicit_specialization): When looking up a
3716
        template function from an identifier outside class-scope, bind
3717
        it to CP_DECL_CONTEXT.
3718
 
3719
2003-06-25  Mark Mitchell  
3720
 
3721
        PR c++/10990
3722
        * search.c (lookup_base_r): Rely on accessible_p, rather than
3723
        trying to emulate that logic here.
3724
 
3725
        PR c++/10931
3726
        * call.c (convert_like): Pass issue_conversion_warnings.
3727
        (convert_like_with_context): Likewise.
3728
        (convert_like_real): Add issue_conversion_warnings parameter.
3729
        (perform_direct_initialization_if_possible): New function.
3730
        * cp-tree.h (perform_direct_initialization_if_possible): Declare it.
3731
        * typeck.c (check_for_casting_away_constness): New function.
3732
        (build_static_cast): Rewrite.
3733
 
3734
2003-06-24  Nathan Sidwell  
3735
 
3736
        * call.c (enforce_access): Assert we get a binfo.
3737
        (build_op_delete_call): Pass a binfo to
3738
        perform_or_defer_access_check.
3739
        * class.c (alter_access): Likewise.
3740
        * decl.c (make_typename_type): Likewise.
3741
        (make_unbound_class_template): Likewise.
3742
        * lex.c (do_identifier): Likewise.
3743
        * method.c (hack_identifier): Likewise.
3744
        * parser.c (cp_parser_lookup_name): Likewise.
3745
        * search.c (lookup_member): Likewise. Move IDENTIFIER_CLASS_VALUE
3746
        test.
3747
        * semantics.c (finish_non_static_data_member): Likewise.
3748
        (perform_or_defer_access_check): Expect a binfo.
3749
        * typeck.c (comptypes): Expect types.
3750
 
3751
        * mangle.c (find_substitution): Don't pass a non-type to same_type_p
3752
        * friend.c (make_friend_class): Likewise.
3753
        * pt.c (check_default_tmpl_args): Likewise.
3754
        (lookup_template_class): Likewise.
3755
 
3756
2003-06-24  Jan Hubicka  
3757
 
3758
        * method.c (thunk_labelno): Move outside ifdef block to make garbage
3759
        collector happy.
3760
 
3761
2003-06-24  Jan Hubicka  
3762
 
3763
        * class.c (build_vtable): Make vtables.
3764
        * cp-tree.h (DECL_VTABLE_OR_VTT_P): New macro.
3765
        * decl2.c (output_vtable_inherit): Rename to ...
3766
        (prepare_assemble_variable): ... this one; change interface.
3767
        (maybe_emit_vtables): Do not call output_vtable_inherit.
3768
        * cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Define.
3769
        * cp-tree.h (prepare_assemble_variable): New.
3770
 
3771
2003-06-23  Andrew Pinski 
3772
 
3773
        * method.c: add prototype for make_alias_for_thunk.
3774
        (thunk_labelno, make_alias_for_thunk): only define
3775
        if ASM_OUTPUT_DEF is defined.
3776
 
3777
2003-06-23  Jakub Jelinek  
3778
 
3779
        * method.c (thunk_labelno): New variable.
3780
        (make_alias_for_thunk): New function.
3781
        (use_thunk): Use it if defined ASM_OUTPUT_DEF.  Put the thunk
3782
        into the same section as the function it is calling.
3783
        Include gt-cp-method.h.
3784
        * Make-lang.in (gt-cp-method.h): Depend on s-gtype.
3785
        (cp/method.o): Depend on gt-cp-method.h.
3786
        * config-lang.in (gtfiles): Add $(srcdir)/cp/method.c.
3787
 
3788
2003-06-23  Jan Hubicka  
3789
 
3790
        * decl.c (register_dtor_fn): Mark cleanup as used.
3791
        * decl2.c (mark_vtable_entries): Skip nops.
3792
        * rtti.c (get_tinfo_ptr): Mark tinfo as used.
3793
        (build_dynamic_cast_1): Likewise.
3794
        (tinfo_base_init): Likewise.
3795
        (emit_tinfo_decl): Likewise.
3796
 
3797
2003-06-23  Jakub Jelinek  
3798
 
3799
        * mangle.c (hash_type): Val is the TREE_LIST itself, not a pointer
3800
        to it.
3801
 
3802
2003-06-21  Gabriel Dos Reis 
3803
 
3804
        PR c++/10784
3805
        * call.c (joust): Warn about choosing conversion sequence only if
3806
        -Wconversion.
3807
 
3808
2003-06-21  Gabriel Dos Reis  
3809
 
3810
        PR c++/10864
3811
        * call.c (op_error): Tidy.
3812
        * error.c (dump_expr): Properly format 'T()' when T is an
3813
        aggregate type.
3814
 
3815
2003-06-21  Gabriel Dos Reis 
3816
 
3817
        PR c++/10915
3818
        * decl.c (grok_op_properties): Warn possible confusing conversion
3819
        only if -Wconversion.
3820
 
3821
2003-06-20  Mark Mitchell  
3822
 
3823
        PR c++/10749
3824
        * parser.c (cp_parser_class_head): See through dependent names
3825
        when parsing a class-head.
3826
 
3827
        PR c++/10845
3828
        * pt.c (try_class_unification): Correct handling of member class
3829
        templates.
3830
 
3831
2003-06-20  Nathan Sidwell  
3832
 
3833
        * semantics.c (genrtl_finish_function): Adjust
3834
        expand_function_end call.
3835
 
3836
2003-06-19  Mark Mitchell  
3837
 
3838
        PR c++/10939
3839
        * pt.c (tsubst_decl): Do not try to substitute into non-dependent
3840
        functions.
3841
        (value_dependent_expression_p): Correct logic for FUNCTION_DECLs.
3842
 
3843
        PR c++/9649
3844
        * cp-tree.h (pushdecl_class_level): Change prototype.
3845
        (push_class_level_binding): Likewise.
3846
        * decl.c (add_binding): Reject duplicate static data members.
3847
        (pushdecl_class_level): Return a value indicating whether or not
3848
        the binding was valid.
3849
        (push_class_level_binding): Likewise.
3850
        * semantics.c (finish_member_declaration): Don't keep invalid
3851
        declarations.
3852
 
3853
        PR c++/11041
3854
        * call.c (initialize_reference): Do not use cp_finish_decl to emit
3855
        temporary variables.
3856
        * cp-tree.h (static_aggregates): Declare.
3857
        (pushdecl_top_level_and_finish): Likewise.
3858
        * decl.c (pushdecl_top_level_1): New function.
3859
        (pushdecl_top_level): Use it.
3860
        (pushdecl_top_level_and_finish): New function.
3861
        (initialize_local_var): Remove redundant code.
3862
        (cp_finish_decl): Remove support for RESULT_DECLs.  Don't check
3863
        building_stmt_tree.
3864
        * decl.h (static_aggregates): Remove.
3865
        * decl2.c (get_guard): Use pushdecl_top_level_and_finish.
3866
        * rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish.
3867
        (tinfo_base_init): Likewise.
3868
 
3869
2003-06-19  Matt Austern  
3870
 
3871
        PR c++/11228
3872
        * init.c (build_zero_init): Assert that number of array elements
3873
        is an integer constant.
3874
        (build_default_init) Don't use build_zero_init for arrays with
3875
        variable number of elements.
3876
 
3877
2003-06-19  Andreas Jaeger  
3878
 
3879
        * cp-tree.h: Remove duplicated declarations.
3880
 
3881
2003-06-18  Nathanael Nerode  
3882
 
3883
        * pt.c: Convert to ISO C.
3884
        * semantics.c: Convert to ISO C.
3885
 
3886
2003-06-18  Nathan Sidwell  
3887
 
3888
        * cp-tree.h (comp_except_specs, compparms, cp_has_mutable_p,
3889
        at_least_as_qualified_p, more_qualified_p): Return bool.
3890
        * typeck.c: ANSIFY function definitions.
3891
        (comp_array_types): Take redeclaration bool parameter.
3892
        (comptypes): Rearrange STRICT handling.
3893
        (at_least_as_qualified_p, more_qualified_p,
3894
        comp_cv_qualification): Cache cv quals.
3895
        (compparms): Rearrange loop.
3896
 
3897
2003-06-18  Nathan Sidwell  
3898
 
3899
        * cp-tree.h (COMPARE_RELAXED): Rename to ...
3900
        (COMPARE_DERIVED): ... here. Adjust comment.
3901
        (resolve_typename_type_in_current_instantiation): Remove.
3902
        (cp_tree_equal, comptypes): Return a bool.
3903
        * cvt.c (convert_to_reference): Adjust comptypes call.
3904
        * pt.c (template_args_equal, unify,): Adjust cp_tree_equal call.
3905
        (resolve_typename_type_in_current_instantiation): Remove.
3906
        * tree.c (cp_tree_equal): Return bool. Cope with TEMPLATE_DECLs and
3907
        IDENTIFIER_NODEs. Abort if undeciderable. Adjust recursive
3908
        calls. Refactor code.
3909
        * typeck.c (comp_array_types): Return bool. Lose callback.
3910
        parameter. Adjust cp_tree_equal calls.
3911
        (comptypes): Return bool. Adjust strict handling. Remove relaxed
3912
        enumeration and java type handling. Deal with typename types here.
3913
        Adjust recursive and cp_tree_equals calls. Adjust base and derived
3914
        checking.
3915
        (comp_target_types): Remove unreachable code. Adjust
3916
        same_or_base_type_p calls.
3917
        (ptr_reasonably_similar): Adjust base and derived check.
3918
 
3919
        * typeck.c (maybe_warn_about_returning_address_of_local): Remove
3920
        unused calculation.
3921
        (check_return_expr): Adjust error messages.
3922
        * cp-tree.def (SCOPE_REF): Correct comment.
3923
 
3924
2003-06-17  Mark Mitchell  
3925
 
3926
        * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
3927
        string again.
3928
 
3929
2003-06-17  Robert Abeles  
3930
 
3931
        * optimize.c (dump_function): Form complete flag name by
3932
        prefixing 'fdump-' to string returned by dump_flag_name().
3933
 
3934
2003-06-17  Mark Mitchell  
3935
 
3936
        * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
3937
        string.
3938
 
3939
2003-06-17  Jason Merrill  
3940
 
3941
        PR c++/10929
3942
        * decl.c (grokfndecl): Don't mark a function inline for
3943
        -finline-functions if it isn't defined.
3944
 
3945
2003-06-17  Mark Mitchell  
3946
 
3947
        PR c++/10712
3948
        * class.c (handle_using_decl): Robustify.
3949
 
3950
        PR c++/11105
3951
        * cp-tree.h (DECL_CONV_FN_TYPE): New method.
3952
        * mangle.c (struct globals): Remove internal_mangling_p.
3953
        (write_unqualified_name): Use DECL_CONV_FN_TYPE.
3954
        (write_template_parm): Don't write out the level number.
3955
        (conv_type_names): New variable.
3956
        (hash_type): New function.
3957
        (compare_type): Likewise.
3958
        (mangle_conv_op_name_for_type): Don't try to mangle conversion
3959
        operator names.
3960
        * search.c (lookup_conversion_operator): New function.
3961
        (lookup_fnfields_1): Use it.
3962
 
3963
2003-06-17  Andreas Jaeger  
3964
 
3965
        * except.c: Remove duplicate declaration of push_eh_cleanup.
3966
 
3967
        * call.c: Remove extra declaration of inhibit_warnings.
3968
 
3969
2003-06-16  Nathanael Nerode  
3970
 
3971
        2003-06-16  Jens-Michael Hoffmann  
3972
        * mangle.c: Convert to ISO C.
3973
 
3974
2003-06-16  Kaveh R. Ghazi  
3975
 
3976
        * cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR
3977
        macro.
3978
 
3979
2003-06-16  Nathanael Nerode  
3980
 
3981
        * tree.c: Convert to ISO C.
3982
 
3983
2003-06-16  Kazu Hirata  
3984
 
3985
        * cp-tree.h: Follow spelling conventions.
3986
        * mangle.c: Likewise.
3987
        * method.c: Likewise.
3988
        * parser.c: Likewise.
3989
 
3990
2003-06-14  Nathan Sidwell  
3991
 
3992
        * decl.c (start_function): Adjust init_function_start call.
3993
        * method.c (use_thunk): Likewise.
3994
        * semantics.c (genrtl_start_function): Likewise.
3995
 
3996
2003-06-14  Neil Booth  
3997
 
3998
        * Make-lang.in: Remove c-options.o.
3999
 
4000
2003-06-13  Nathanael Nerode  
4001
 
4002
        * lex.c: Convert to ISO C.
4003
 
4004
        2003-05-19  Jens-Michael Hoffmann  
4005
        * init.c: removes use of PARAMS macro.  Use ISO style function
4006
        declarations.  (Not copyright-significant change.)
4007
 
4008
        * rtti.c: Remove PARAMS.
4009
 
4010
        * typeck2.c: Convert to ISO C.
4011
 
4012
2003-06-12  Mark Mitchell  
4013
 
4014
        PR c++/10635
4015
        * typeck.c (build_c_cast): Check that the destination type is
4016
        complete.
4017
 
4018
2003-06-11  Mark Mitchell  
4019
 
4020
        PR c++/10432
4021
        * cp-tree.h (finish_declarator): Remove.
4022
        * decl.c (cp_finish_decl): Make sure to pop_nested_class even for
4023
        erroneous declarations.
4024
        * semantics.c (finish_declarator): Remove.
4025
 
4026
2003-06-11  Roger Sayle  
4027
 
4028
        * decl2.c (generate_ctor_or_dtor_function): Avoid expanding a
4029
        global static constructor/destructor if it will be empty, i.e.
4030
        either doesn't call any ctors/dtors or only calls pure or const
4031
        ctors/dtors.
4032
 
4033
2003-06-11  Mark Mitchell  
4034
 
4035
        * mangle.c (tm_p.h): Include it.
4036
        * Make-lang.in (cp/mangle.o): Depend on $(TM_P_H).
4037
 
4038
        PR c++/11131
4039
        * tree.c (cp_cannot_inline_fn): Check for "inline" before
4040
        instantiation.
4041
 
4042
2003-06-10  Jason Merrill  
4043
 
4044
        PR c++/10968
4045
        * pt.c (mark_decl_instantiated): Clear DECL_COMDAT.
4046
 
4047
2003-06-10  Andrew Pinski  
4048
 
4049
        * decl.c (start_cleanup_fn): Move static 'counter' out, mark with GTY.
4050
        (start_cleanup_cnt): New.
4051
 
4052
2003-06-10  Mark Mitchell  
4053
 
4054
        PR c++/11131
4055
        * cp-tree.h (template_for_substitution): Declare.
4056
        * decl2.c (mark_used): Use it when figuring out whether or not a
4057
        function is inline.
4058
        * pt.c (template_for_substitution): Give it external linkage.
4059
        * tree.c (cp_cannot_inline_tree_fn): Instantiate as early as
4060
        possible.
4061
 
4062
2003-06-09  Zack Weinberg  
4063
 
4064
        PR 8861
4065
        * mangle.c (write_real_cst): New function.  Implement
4066
        ABI-compliant mangling of floating-point literals when
4067
        -fabi-version>=2; provide backward compatibility with 3.3 when
4068
        -fabi-version=1 (with warning).  Clarify commentary.
4069
        (write_template_arg_literal): Use write_real_cst.
4070
 
4071
2003-06-07  Andreas Jaeger  
4072
 
4073
        * cp/decl.c (xref_tag): Remove undefined macro NONNESTED_CLASSES.
4074
 
4075
2003-06-07  Neil Booth  
4076
 
4077
        * cp-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.
4078
        (LANG_HOOKS_HANDLE_OPTION): Override.
4079
        * cp-tree.h (cxx_init_options): Update.
4080
        * lex.c (cxx_init_options): Update.
4081
 
4082
2003-06-05  Jan Hubicka  
4083
 
4084
        * Make-lang.in:  Add support for stageprofile and stagefeedback
4085
 
4086
2003-06-04  J"orn Rennecke 
4087
 
4088
        * decl.c (grokdeclarator): Error_mark_node in, error_mark_node out.
4089
 
4090
2003-06-04  Andreas Jaeger  
4091
 
4092
        * g++spec.c (lang_specific_driver): Remove ALT_LIBM usage.
4093
 
4094
2003-06-03  Jason Merrill  
4095
 
4096
        * cp/cp-tree.h (CP_AGGREGATE_TYPE_P): Accept vectors.
4097
 
4098
        * cp/decl.c (reshape_init): Handle vectors.
4099
 
4100
        * testsuite/g++.dg/init/array10.C: New.
4101
 
4102
2003-06-03  Kriang Lerdsuwanakij  
4103
 
4104
        PR c++/10940
4105
        * pt.c (check_explicit_specialization): Check for 'static'
4106
        earlier.
4107
 
4108
2003-05-31  Diego Novillo  
4109
 
4110
        * class.c (dump_array): Call CONSTRUCTOR_ELTS to access
4111
        the operand of a CONSTRUCTOR node.
4112
 
4113
2003-05-31  Gabriel Dos Reis 
4114
 
4115
        * decl.c (cp_binding_level::this_entity): Rename from this_class.
4116
        (cxx_scope_descriptor): New function.
4117
        (cxx_scope_debug): Likewise.
4118
        (push_binding_level): Use it.
4119
        (pop_binding_level): Likewise.
4120
        (suspend_binding_level): Likewise.
4121
        (resume_binding_level): Likewise.
4122
        (pushlevel_class): Adjust use of this_class.
4123
        (pushtag): Likewise.
4124
        (lookup_name_real): Likewise.
4125
        (global_scope_name): New variable.
4126
        (initialize_predefined_identifiers): Initialize it.
4127
        (push_namespace): Use it.
4128
        (make_cxx_scope): New function.
4129
        (pushlevel): Use it.
4130
        (pushlevel_class): Likewise.
4131
        (push_binding_level): Simplify.  Loose the last two arguments.
4132
        (make_binding_level): Remove.
4133
        (initial_push__namespace_scope): New function.
4134
        (push_namespace): Use it.  Simplify.
4135
        (cxx_init_decl_processing): Likewise.
4136
        (declare_namespace_level): Remove.
4137
 
4138
2003-05-31  Kriang Lerdsuwanakij  
4139
 
4140
        PR c++/10956
4141
        * pt.c (instantiate_decl): Don't use full template arguments if
4142
        we are dealing with specializations.
4143
 
4144
2003-05-29  Gabriel Dos Reis  
4145
 
4146
        * decl.c (ENABLE_SCOPE_CHECKING): Rename from DEBUG_BINDING_LEVELS.
4147
        (binding_depth): Unconditionally define.
4148
        (is_class_level): Likewise.
4149
        (indent): Likewise.  Take an indenting parameter.
4150
        (push_binding_level): Remove conditional definittion.
4151
        (pop_binding_level): Likewise.
4152
        (suspend_binding_level): Likewise.
4153
        (resume_binding_level): Likewise.
4154
        (pushlevel): Likewise.
4155
        (pushlevel_class): Likewise.
4156
        (poplevel_class): Likewise.
4157
        (pop_everything): Likewise.
4158
 
4159
2003-05-27  Gabriel Dos Reis 
4160
 
4161
        * name-lookup.h (global_scope_p): New macro.
4162
        * decl.c (pop_binding_level): Use it.  Don't refer directly to
4163
        global_binding_level.
4164
        (suspend_binding_level): Likewise.
4165
        (global_bindings_p): Likewise.
4166
        (print_other_binding_stack): Likewise.
4167
        (print_binding_stack): Likewise.
4168
        (maybe_push_to_top_level): Likewise.
4169
        (pushdecl_namespace_level): Likewise.
4170
        (cxx_init_decl_processing): Likewise.
4171
        (start_decl): Likewise.
4172
        (cp_finish_decl): Likewise.
4173
        (start_function): Likewise.
4174
        (global_binding_level): Remove.
4175
 
4176
2003-05-25  Kriang Lerdsuwanakij  
4177
 
4178
        * parser.c (cp_parser_explicit_instantiation): Restore old
4179
        access before template instantiation.
4180
 
4181
2003-05-23  Geoffrey Keating  
4182
 
4183
        * lang-specs.h: Use -o to specify preprocessor's output file.
4184
        Make -no-integrated-cpp work when building PCH files.
4185
 
4186
2003-05-23  Kriang Lerdsuwanakij  
4187
 
4188
        PR c++/10682
4189
        * pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to
4190
        check for implicitly created typedef to an enum.
4191
 
4192
2003-05-21  Jason Merrill  
4193
 
4194
        * init.c (build_vec_delete): Copy the address into a temporary
4195
        variable before calling build_vec_delete_1.
4196
        * decl2.c (delete_sanity): Don't call stabilize_reference.
4197
 
4198
2003-05-21  Nathan Sidwell  
4199
 
4200
        * pt.c (register_specialization): Update the decl's location,
4201
        if necessary.
4202
        (check_explicit_specialization): Likewise.
4203
 
4204
2003-05-20  Kaveh R. Ghazi  
4205
 
4206
        * error.c (dump_expr): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX.
4207
 
4208
2003-05-21  Danny Smith  
4209
 
4210
        PR c++/9738
4211
        * decl.c (duplicate_decls): Re-invoke make_decl_rtl
4212
        if the old decl had instantiated DECL_RTL.
4213
        (Base on Richard Henderson 2003-05-13 patch to c-decl.c).
4214
 
4215
2003-05-19  Matt Austern  
4216
 
4217
        * lang-options.h: Document -Wno-invalid-offsetof
4218
        * typeck.c (build_class_member_access_expr): Don't complain about
4219
        (Foo *)p->x for non-POD Foo if warn_invalid_offset is zero.
4220
 
4221
2003-05-18 Andrew Pinski 
4222
 
4223
        * name-lookup.c (free_binding_entry): fix where the GTY markers are.
4224
        (binding_entry_make): Make entry->chain NULL after getting an entry.
4225
        fix the spelling of chain in a comment.
4226
        (binding_table_free): speed up by having temporary variable.
4227
        (binding_table_new): set table->chain to be NULL after allocating
4228
        a table.
4229
        (cxx_binding_make): use gcc_alloc instead of ggc_alloc_cleared and set
4230
        binding->previous to NULL after getting an binding for speed.
4231
 
4232
2003-05-18  Gabriel Dos Reis  
4233
 
4234
        * cp-tree.h (struct lang_type_class): Replace data member tags
4235
        with hash-table nested_udts.
4236
        (CLASSTYPE_NESTED_UTDS): Rename from CLASSTYPE_TAGS.
4237
        * class.c (unreverse_member_declarations): Don't touch
4238
        CLASSTYPE_TAGS.
4239
        (pushclass): Use cxx_remember_type_decls.
4240
        * decl.c (struct cp_binding_level): Replace data member tags with
4241
        hash-table type_decls.
4242
        (pop_binding_level): Handle level->type_decls.
4243
        (kept_level_p): Adjust.
4244
        (poplevel): Remove unused local variable.
4245
        (bt_print_entry): New function.
4246
        (print_binding_level): Use it.
4247
        (push_namespace): Build current_binding_level->type_decls.
4248
        (maybe_process_template_type_declaration): Adjust.
4249
        (pushtag): Likewise.
4250
        (clear_anon_tags): Use binding_table_remove_anonymous_types.
4251
        (gettags): Remove.
4252
        (cxx_remember_type_decls):  Rename from storetags.  Adjust.
4253
        (lookup_tag): Use binding_table_find_anon_type.  Tidy.
4254
        (lookup_tag_reverse): Use binding_table_reverse_maybe_remap.
4255
        (cxx_init_decl_processing): Build global_binding_level->type_decls.
4256
        (store_parm_decls): Remove pointless code.
4257
        * name-lookup.c (free_binding_entry): New variable.
4258
        (ENTRY_INDEX): New macro.
4259
        (struct binding_table_s): New datatype.
4260
        (binding_entry_make): New function.
4261
        (binding_entry_free): Likewise.
4262
        (binding_table_construct): Likewise.
4263
        (binding_table_free): Likewise.
4264
        (binding_table_new): Likewise.
4265
        (binding_table_expand): Likewise.
4266
        (binding_table_insert): Likewise.
4267
        (binding_table_find): Likewise.
4268
        (binding_table_find_anon_type): Likewise.
4269
        (binding_table_reverse_maybe_remap): Likewise.
4270
        (binding_table_remove_anonymous_types): Likewise.
4271
        (binding_table_foreach): Likewise.
4272
        * name-lookup.h (binding_table): New type.
4273
        (binding_entry): Likewise.
4274
        (bt_foreach_proc): Likewise.
4275
        (struct binding_entry_s): New datatype.
4276
        (SCOPE_DEFAULT_HT_SIZE): New macro.
4277
        (CLASS_SCOPE_HT_SIZE): Likewise.
4278
        (NAMESPACE_ORDINARY_HT_SIZE): Likewise.
4279
        (NAMESPACE_STD_HT_SIZE): Likewise.
4280
        (GLOBAL_SCOPE_HT_SIZE): Likewise.
4281
        (binding_table_new): Declare.
4282
        (binding_table_free): Likewise.
4283
        (binding_table_insert): Likewise.
4284
        (binding_table_find_anon_type): Likewise.
4285
        (binding_table_reverse_maybe_remap): Likewise.
4286
        (binding_table_remove_anonymous_types): Likewise.
4287
        (binding_table_foreach): Likewise.
4288
        (binding_table_find): Likewise.
4289
        (cxx_remember_type_decls): Likewise.
4290
        * pt.c (bt_instantiate_type_proc): New function.
4291
        (do_type_instantiation): Use it.
4292
        * search.c (lookup_field_r): Use binding_table_find.
4293
 
4294
2003-05-18  Kriang Lerdsuwanakij  
4295
 
4296
        * semantics.c (perform_deferred_access_checks): Don't discard
4297
        checked access.
4298
 
4299
2003-05-17  Kaveh R. Ghazi  
4300
 
4301
        * error.c (cp_error_at, cp_warning_at, cp_pedwarn_at): Eliminate
4302
        libiberty VA_ macros, always use stdarg.
4303
        * rtti.c (create_pseudo_type_info): Likewise.
4304
        * tree.c (build_min_nt, build_min): Likewise.
4305
 
4306
2003-05-16  Kaveh R. Ghazi  
4307
 
4308
        * ptree.c (cxx_print_type, cxx_print_xnode): Use string
4309
        concatentation on HOST_WIDE_INT_PRINT_* format specifier to
4310
        collapse multiple function calls into one.
4311
        * tree.c (debug_binfo): Likewise.
4312
 
4313
2003-05-15  Jason Merrill  
4314
 
4315
        PR c++/5388
4316
        * call.c (conditional_conversion): Don't consider implicit
4317
        conversions if T2 is a base of T1.
4318
        * cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean.
4319
        (ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
4320
 
4321
        * parser.c (cp_parser_primary_expression): Convert a static data
4322
        member from reference.
4323
 
4324
2003-05-15  Mark Mitchell  
4325
 
4326
        * call.c (build_op_delete_call): Avoid creating unnecessary types.
4327
        * class.c (instantiate_type): Remove tests for tf_no_attributes.
4328
        * cp-tree.h (tsubst_flags_t): Remove tf_no_attributes.
4329
        (COMPARE_NO_ATTRIBUTES): Remove.
4330
        * typeck.c (comptypes): Do not check COMPARE_NO_ATTRIBUTES.
4331
 
4332
        PR c++/8385
4333
        * semantics.c (finish_typeof): Refine type-dependency check.
4334
 
4335
2003-05-13  Jason Merrill  
4336
 
4337
        * typeck.c (build_modify_expr): Don't always stabilize the lhs and
4338
        rhs.  Do stabilize the lhs of a MODIFY_EXPR used on the lhs.
4339
 
4340
2003-05-11  Kriang Lerdsuwanakij  
4341
 
4342
        * method.c (synthesize_method): Call push/pop_deferring_access_checks.
4343
 
4344
2003-05-11  Kriang Lerdsuwanakij  
4345
 
4346
        PR c++/10230, c++/10481
4347
        * semantics.c (finish_non_static_data_member): Handle when the
4348
        non-static member is not from a base of the current class type.
4349
 
4350
2003-05-11  Kriang Lerdsuwanakij  
4351
 
4352
        PR c++/10552
4353
        * pt.c (tsubst_copy): Handle TEMPLATE_DECL that is a member class
4354
        template and has dependent context.
4355
 
4356
2003-05-10  Kriang Lerdsuwanakij  
4357
 
4358
        * pt.c (instantiate_decl): Call push/pop_deferring_access_checks.
4359
 
4360
2003-05-10  Kriang Lerdsuwanakij  
4361
 
4362
        PR c++/9252
4363
        * cp-tree.h (saved_scope): Remove check_access field.
4364
        (tsubst_flags_t): Remove tf_parsing.
4365
        * decl.c (maybe_push_to_top_level): Don't initialize
4366
        scope_chain->check_access.
4367
        (make_typename_type, make_unbound_class_template): Don't use
4368
        tf_parsing.
4369
        (register_dtor_fn): Use push/pop_deferring_access_checks
4370
        instead of scope_chain->check_access.
4371
        * method.c (use_thunk): Likewise.
4372
        * parser.c (cp_parser_explicit_instantiation
4373
        (cp_parser_constructor_declarator_p): Don't call
4374
        push/pop_deferring_access_checks here.
4375
        (cp_parser_template_argument, cp_parser_class_name): Don't use
4376
        tf_parsing.
4377
        (yyparse): Check flag_access_control.
4378
        * pt.c (instantiate_class_template): Call
4379
        push/pop_deferring_access_checks.
4380
        * semantics.c (push_deferring_access_checks): Propagate
4381
        dk_no_check.
4382
        (perform_or_defer_access_check): Make sure basetype_path is
4383
        a type before comparison.
4384
        * call.c (build_op_delete_call, build_over_call): Use
4385
        perform_or_defer_access_check.
4386
        * class.c (alter_access): Likewise.
4387
        * init.c (build_offset_ref): Likewise.
4388
        * lex.c (do_identifier): Likewise.
4389
        * method.c (hack_identifier): Likewise.
4390
        * search.c (lookup_member): Likewise.
4391
        * semantics.c (finish_non_static_data_member): Likewise.
4392
        (simplify_aggr_init_exprs_r): Use push/pop_deferring_access_checks
4393
        instead of flag_access_control.
4394
 
4395
2003-05-10  Kriang Lerdsuwanakij  
4396
 
4397
        PR c++/9554
4398
        * parser.c (cp_parser_class_name): Remove check_access parameter.
4399
        All caller adjusted.  Update declaration.
4400
        (cp_parser_lookup_name): Likewise.
4401
        * semantics.c (push_deferring_access_checks): Change parameter type
4402
        to enum deferring_kind.  All caller adjusted.
4403
        (resume_deferring_access_checks): Adjust to use new enum.
4404
        (stop_deferring_access_checks): Likewise.
4405
        (perform_or_defer_access_check): Likewise.
4406
        * cp-tree.h (deferring_kind): New enum.
4407
        (deferred_access): Adjust field type.
4408
        (push_deferring_access_checks): Update declaration.
4409
 
4410
2003-05-09  Kriang Lerdsuwanakij  
4411
 
4412
        PR c++/10555, c++/10576
4413
        * pt.c (lookup_template_class): Handle class template with
4414
        multiple levels of parameters when one of the levels contain
4415
        errors.
4416
 
4417
2003-05-08  Jason Merrill  
4418
 
4419
        * init.c (build_new_1): Don't reuse a TARGET_EXPR in an
4420
        expression.  Undo some of the recent reorg.
4421
 
4422
2003-05-07  Richard Henderson  
4423
 
4424
        PR c++/10570
4425
        * cfns.gperf: Comment out POSIX thread cancellation points,
4426
        plus abort and raise.
4427
        * cfns.h: Regenerate.
4428
 
4429
2003-05-07  Jason Merrill  
4430
 
4431
        * call.c (build_conditional_expr): Don't assume that the folded
4432
        expression has result_type.
4433
 
4434
2003-05-06  Kriang Lerdsuwanakij  
4435
 
4436
        * typeck.c (build_unary_op): Deal with const qualifier in
4437
        invalid pointer-to-member earlier.
4438
 
4439
2003-05-05  Jason Merrill  
4440
 
4441
        PR c++/9537
4442
        * call.c (conditional_conversion): Build an RVALUE_CONV if
4443
        we're just changing the cv-quals.
4444
        (build_conditional_expr): Don't call convert to change
4445
        cv-quals.
4446
 
4447
2003-05-05  Kriang Lerdsuwanakij  
4448
 
4449
        PR c++/10496
4450
        * typeck.c (build_unary_op): Don't output const qualifier when
4451
        output invalid pointer-to-member diagnostics.
4452
 
4453
2003-05-05  Kriang Lerdsuwanakij  
4454
 
4455
        * decl.c: Fix typos.
4456
 
4457
2003-05-05  Kriang Lerdsuwanakij  
4458
 
4459
        PR c++/4494
4460
        * decl.c (start_function): Use same_type_p to check return type
4461
        of main.
4462
 
4463
2003-05-03  Zack Weinberg  
4464
 
4465
        PR c/10604
4466
        * cp/typeck.c (build_x_compound_expr): No need to check
4467
        extra_warnings as well as warn_unused_value.
4468
 
4469
2003-05-03  Kriang Lerdsuwanakij  
4470
 
4471
        PR c++/9364, c++/10553, c++/10586
4472
        * decl.c (make_typename_type): Don't crash on illegal code.
4473
 
4474
2003-05-03  Nathan Sidwell  
4475
 
4476
        * class.c (finish_struct): Use location_t and input_location
4477
        directly.
4478
        * decl.c (make_label_decl): Likewise.
4479
        (use_label): Likewise.
4480
        * decl2.c (warn_if_unknown_interface): Likewise.
4481
        (start_static_initialization_or_destruction): Likewise.
4482
        (generate_ctor_or_dtor_function): Likewise.
4483
        (finish_file): Likewise.
4484
        * error.c (print_instantiation_full_context): Likewise.
4485
        * init.c (create_temporary_var): Likewise.
4486
        * method.c (synthesize_method): Likewise.
4487
        * parser.c (cp_token): Likewise.
4488
        (cp_lexer_set_source_position_from_token): Likewise.
4489
        (cp_lexer_get_preprocessor_token): Likewise.
4490
        (cp_parser_statement): Likewise.
4491
        * pt.c (tsubst_friend_function): Likewise.
4492
        (instantiate_class_template): Likewise.
4493
        (tsubst_decl): Likewise.
4494
        (tsubst): Likewise.
4495
        (instantiate_decl): Likewise.
4496
        * semantics.c (begin_class_definition): Likewise.
4497
        (expand_body): Likewise.
4498
 
4499
2003-05-01  Nathan Sidwell  
4500
 
4501
        * class.c (finish_struct): Rename lineno to input_line.
4502
        * decl.c (push_binding_level, pop_binding_level,
4503
        suspend_binding_level, resume_binding_level, make_label_decl,
4504
        use_label, start_function): Likewise.
4505
        * decl2.c (warn_if_unknown_interface,
4506
        start_static_initialization_or_destruction,
4507
        generate_ctor_or_dtor_function, finish_file): Likewise.
4508
        * error.c (cp_line_of, print_instantiation_full_context,
4509
        print_instantiation_context): Likewise.
4510
        * except.c (check_handlers_1, check_handlers): Likewise.
4511
        * init.c (create_temporary_var): Likewise.
4512
        * method.c (use_thunk, synthesize_method): Likewise.
4513
        * parser.c (cp_lexer_set_source_position_from_token,
4514
        cp_lexer_get_preprocessor_token): Likewise.
4515
        * pt.c (push_tinst_level, pop_tinst_level,
4516
        tsubst_friend_function, instantiate_class_template, tsubst_decl,
4517
        tsubst, tsubst_expr, instantiate_decl): Likewise.
4518
        * semantics.c (genrtl_try_block, finish_label_stmt,
4519
        begin_class_definition, expand_body,
4520
        genrtl_finish_function): Likewise.
4521
        * tree.c (build_min_nt, build_min): Likewise.
4522
 
4523
2003-05-01  Mark Mitchell  
4524
 
4525
        * decl2.c (comdat_linkage): Don't externalize explicit
4526
        instantiations.
4527
 
4528
2003-05-01  Kriang Lerdsuwanakij  
4529
 
4530
        PR c++/10554
4531
        * decl2.c (do_class_using_decl): Check if operand 0 of SCOPE_REF
4532
        is not NULL.
4533
 
4534
2003-05-01  Steven Bosscher  
4535
 
4536
        * cp-tree.h (struct lang_id2): Remove.  Move fields from here...
4537
        (struct lang_identifier): ... to here.
4538
        (LANG_ID_FIELD): Remove.
4539
        (SET_LANG_ID): Remove.
4540
        (IDENTIFIER_LABEL_VALUE): Adjust for new lang_identifier.
4541
        (SET_IDENTIFIER_LABEL_VALUE): Likewise.
4542
        (IDENTIFIER_IMPLICIT_DECL): Likewise.
4543
        (SET_IDENTIFIERL_IMPLICIT_DECL): Likewise.
4544
        (IDENTIFIER_ERROR_LOCUS): Likewise.
4545
        (SET_IDENTIFIER_ERROR_LOCUS): Likewise.
4546
 
4547
2003-05-01  Kriang Lerdsuwanakij  
4548
 
4549
        PR c++/8772
4550
        * pt.c (convert_template_argument): Correct diagnostic.
4551
 
4552
2003-04-30  Kriang Lerdsuwanakij  
4553
 
4554
        PR c++/9432, c++/9528
4555
        * decl2.c (validate_nonmember_using_decl): Handle SCOPE_REF.
4556
 
4557
2003-04-30  Garbiel Dos Reis  
4558
 
4559
        * decl.c (check_previous_goto_1): Adjust prototype.
4560
        (check_previous_goto): Adjust use.
4561
        (check_switch_goto): Likewise.
4562
        (use_label): Adjust.
4563
        (check_previous_goto_1): Don't use pedwarn_with_file_and_line.
4564
        (struct named_label_use_list): Use location_t datatype.
4565
 
4566
2003-04-29  Mark Mitchell  
4567
 
4568
        PR c++/10551
4569
        * pt.c (mark_decl_instantiated): Defer all explicit instantiations
4570
        that have not yet been written out.
4571
 
4572
2003-04-29  Mark Mitchell  
4573
 
4574
        PR c++/10549
4575
        * class.c (layout_class_type): Mark overlong bitfields as having
4576
        the maximum size permitted by their type, after layout.
4577
 
4578
        PR c++/10527
4579
        * error.c (dump_expr): Correctly handling of NEW_EXPR.4
4580
 
4581
2003-04-29  Kriang Lerdsuwanakij  
4582
 
4583
        * call.c (build_operator_new_call): Fix typo.
4584
        * lang-options.h: Likewise.
4585
 
4586
2003-04-29  Mark Mitchell  
4587
 
4588
        PR c++/10515
4589
        * cp-tree.h (lookup_field_1): Declare it.
4590
        * search.c (lookup_field_1): Make it public.
4591
        * decl.c (reshape_init): Handle designated initializers.
4592
 
4593
        * decl.c (maybe_commonize_var): Further tweak support for systems
4594
        without weak symbols.
4595
 
4596
2003-04-27  Mark Mitchell  
4597
 
4598
        * decl.c (maybe_commonize_var): Fix thinko in last patch.
4599
 
4600
2003-04-27  Mark Mitchell  
4601
 
4602
        PR c++/10506
4603
        * method.c (use_thunk): Decrement immediate_size_expand.
4604
 
4605
        PR c++/10503
4606
        * cp-tree.h (DECL_VAR_MARKED_P): New macro.
4607
        (DECL_MAYBE_TEMPLATE): Remove.
4608
        * class.c (fixed_type_or_null): Avoid infinite recursion.
4609
 
4610
        * decl.c (maybe_commonize_var): Make the code match the comments.
4611
        * pt.c (instantiate_decl): Move call to import_export_decl.
4612
 
4613
2003-04-26  Mark Mitchell  
4614
 
4615
        * decl2.c (finish_file): Fix merge botch.
4616
 
4617
2003-04-25  Mark Mitchell  
4618
 
4619
        * decl2.c (finish_file): Don't call import_export_decl for
4620
        functions that are not defined.
4621
        (handle_class_head): Robustify.
4622
        * pt.c (instantiate_decl): Do not call cp_finish_decl for
4623
        variables that are not defined.
4624
 
4625
2003-04-24  Sylvain Pion  
4626
 
4627
        * call.c (print_z_candidates): Fix off by one error.
4628
 
4629
2003-04-24  Nathan Sidwell  
4630
 
4631
        PR c++/10337
4632
        * call.c (joust): Don't warn about conversion ops that are exact
4633
        or cv-conversions. Rearrange to avoid multiple type comparisons.
4634
 
4635
2003-04-23  Mark Mitchell  
4636
 
4637
        PR c++/10471
4638
        * call.c (build_cxx_call): Robustify.
4639
 
4640
2003-04-23  Neil Booth  
4641
 
4642
        * Make-lang.in (lex.o): Remove mbchar.h.
4643
        * lex.c (MULTIBYTE_CHARS): Lose.
4644
        * parser.c (cp_lexer_get_preprocessor_token): CPP_OTHER handled
4645
        in c-lex.c.
4646
 
4647
2003-04-23  Mark Mitchell  
4648
 
4649
        PR c++/9847
4650
        * cp-tree.h (duplicate_tag_error): Remove.
4651
        * class.c (duplicate_tag_error): Remove.
4652
        * semantics.c (begin_class_definition): Return immediately for a
4653
        duplicate class definition.
4654
 
4655
        PR c++/10451
4656
        * decl.c (grokdeclarator): Correct logic for "mutable" errors.
4657
 
4658
2003-04-22  Mark Mitchell  
4659
 
4660
        PR c++/10446
4661
        * search.c (lookup_fnfields_1): Handle empty slots in the method
4662
        vector.
4663
 
4664
        PR c++/10428
4665
        * decl.c (check_elaborated_type_specifier): New function, split
4666
        out from ...
4667
        (xref_tag): ... here.  Use the new function in more places.
4668
 
4669
        * rtti.c (throw_bad_typeid): Use build_cxx_call.
4670
 
4671
2003-04-21  Mark Mitchell  
4672
 
4673
        * call.c (build_over_call): Use build_cxx_call.
4674
        (build_cxx_call): New method, split out of build_over_call.
4675
        * cp-tree.h (language_function): Add can_throw.
4676
        (build_cxx_call): Declare it.
4677
        * decl.c (finish_function): If a function does not contain any
4678
        calls to functions that can throw an exception, indicate that
4679
        fact.
4680
        * decl2.c (mark_used): Do not defer the instantiation of
4681
        functions, if the current function does not throw.
4682
        * optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
4683
        * pt.c (instantiate_decl): Make sure import_export_decl is called
4684
        before emitting things.
4685
        * rtti.c (throw_bad_cast): Use build_cxx_call.
4686
        (build_dynamic_cast_1): Likewise.
4687
        * typeck.c (build_function_call): Likewise.
4688
 
4689
2003-04-21  Nathan Sidwell  
4690
 
4691
        PR c++/9881
4692
        * typeck.c (build_unary_op): Fold all COMPONENT_REF addr
4693
        expressions. Reverts my 2002-08-08 patch.
4694
 
4695
        * typeck.c (comp_ptr_ttypes_real): Swap final && operands for
4696
        cheaper early exit.
4697
 
4698
2003-04-20  Nathan Sidwell  
4699
 
4700
        * cp/decl2.c (start_static_storage_duration_function): Take count
4701
        arg, don't check if it wraps round.
4702
        (generate_ctor_or_dtor_function): Add locus arg, use it.
4703
        (generate_ctor_and_dtor_functions_for_priority): Data arg is a
4704
        locus.
4705
        (finish_file): Set line numbers to past EOF for synthesized
4706
        functions.
4707
 
4708
2003-04-20  Nathan Sidwell  
4709
 
4710
        PR c++/10405
4711
        * search.c (lookup_field_1): Final scan goes backwards for
4712
        types, forwards for non-types.
4713
 
4714
2003-04-17  Roger Sayle  
4715
 
4716
        PR c/10375
4717
        * decl.c (duplicate_decls): Preserve "const", "noreturn" and
4718
        "nothrow" function attributes.
4719
 
4720
2003-04-17  Kriang Lerdsuwanakij  
4721
 
4722
        PR c++/10347
4723
        * pt.c (type_dependent_expression_p): Handle array new.
4724
 
4725
2003-04-15  Mark Mitchell  
4726
 
4727
        PR c++/10381
4728
        * parser.c (cp_parser_primary_expression): Reorganize logic for
4729
        dealing with name lookup failures.
4730
 
4731
2003-04-15  Jason Merrill  
4732
 
4733
        * decl2.c (mark_used): Don't instantiate anything if
4734
        skip_evaluation.
4735
 
4736
2003-04-14  Ziemowit Laski  
4737
 
4738
        * tree.c (build_cplus_array_type_1): Do not call
4739
        uses_template_parms() on a NULL index_type.
4740
 
4741
2003-04-13  Roger Sayle  
4742
 
4743
        * decl.c (duplicate_decls): Preserve pure and malloc attributes.
4744
 
4745
2003-04-12  Mark Mitchell  
4746
 
4747
        PR c++/10300
4748
        * init.c (build_new_1): Reorganize.
4749
 
4750
2003-04-12  Zack Weinberg  
4751
 
4752
        * class.c (initialize_array)
4753
        * decl.c (reshape_init)
4754
        * decl2.c (build_expr_from_tree)
4755
        * init.c (build_zero_init)
4756
        * pt.c (tsubst_copy, tsubst_copy_and_build)
4757
        * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer)
4758
        (ptm_initializer, class_initializer, get_pseudo_ti_init)
4759
        * semantics.c (finish_compound_literal)
4760
        * typeck.c (build_ptrmemfunc1)
4761
        * typeck2.c (store_init_value, process_init_constructor)
4762
        (build_functional_cast): Use build_constructor.
4763
 
4764
2003-04-12  Zack Weinberg  
4765
 
4766
        * call.c (print_z_candidates): Use gcc_gettext_width, not
4767
        strlen, to determine how much padding to use.
4768
 
4769
2003-04-10  Zack Weinberg  
4770
 
4771
        * decl.c: Update all calls to shadow_warning.
4772
 
4773
2003-04-10  Mark Mitchell  
4774
 
4775
        * class.c (layout_class_type): Correct handling for overlong
4776
        bit-fields whose width is the same as an integer type.
4777
 
4778
2003-04-06  Zack Weinberg   
4779
 
4780
        * cp-tree.def: Make fourth element for all 'c' and 'x' nodes zero.
4781
        * cp-lang.c (cp_tree_size): New function.
4782
        (LANG_HOOKS_TREE_SIZE): Override.
4783
 
4784
        * cp-tree.h (SOURCE_LOCUS, SRCLOC_FILE, SRCLOC_LINE, struct
4785
        tree_srcloc, TS_CP_COMMON, TS_CP_SRCLOC): Kill.
4786
        (union lang_tree_node): Remove common and srcloc members.
4787
        (build_srcloc_here): Don't prototype.
4788
        * decl.c (cp_tree_node_structure): Kill SRCLOC case.
4789
        * pt.c (pending_templates): Correct comment.
4790
        * tree.c (build_srcloc, build_srcloc_here): Kill.
4791
 
4792
2003-04-06  Zack Weinberg   
4793
 
4794
        * call.c: Include intl.h.
4795
        (print_z_candidate): Always use inform; get rid of errfn
4796
        argument. Reorganize so that all the strings get picked up
4797
        by xgettext.  Note obligation of caller to pass first argument
4798
        through gettext.
4799
        (print_z_candidates): Update to match.  Indent second and
4800
        successive candidates by strlen() of translated message.
4801
        (joust): Restructure ambiguous-conversion pedwarn so that
4802
        translators see a complete sentence.  Update calls to
4803
        print_z_candidate.
4804
 
4805
        * Make-lang.in (cp/call.o): Update dependencies.
4806
 
4807
2003-04-05  Kaveh R. Ghazi  
4808
 
4809
        * decl.c (set_current_binding_level): Delete, revert last change.
4810
        (current_binding_level): Modify to allow it as as lvalue.
4811
 
4812
2003-04-04  Kaveh R. Ghazi  
4813
 
4814
        * name-lookup.c (find_binding): Pass appropriate pointer type to
4815
        POP_TIMEVAR_AND_RETURN.
4816
 
4817
2003-04-03  Kaveh R. Ghazi  
4818
 
4819
        * Make-lang.in (cp-warn): Add $(STRICT_WARN).
4820
        * cp-tree.h: Don't insist on having GNUC.
4821
 
4822
2003-04-03  Jason Merrill  
4823
 
4824
        * cvt.c (ocp_convert): Only abort if we try to convert an object
4825
        of TREE_ADDRESSABLE type.
4826
 
4827
        * class.c (build_vtable): Set DECL_ALIGN here.
4828
        (get_vtable_decl): Not here.
4829
        (layout_vtable_decl): Or here.
4830
        (create_vtable_ptr): Or here.
4831
        (layout_class_type): Or here.
4832
        (check_bitfield_decl): Don't mess with field alignment.
4833
 
4834
2003-04-03  Kaveh R. Ghazi  
4835
 
4836
        * operators.def (DEF_SIMPLE_OPERATOR, DEF_ASSN_OPERATOR,
4837
        DEF_ASSN_OPERATOR): Delete spurious semi-colon.
4838
        * rtti.c (dfs_class_hint_mark): Likewise.
4839
 
4840
        * decl.c (push_local_name, push_class_level_binding,
4841
        maybe_inject_for_scope_var): Don't use POP_TIMEVAR_AND_RETURN in
4842
        functions returning void.
4843
        * decl2.c (add_using_namespace): Likewise.
4844
 
4845
        * decl.c (print_binding_level, print_other_binding_stack,
4846
        print_binding_stack): Cast argument of %p specifier to void*.
4847
        * ptree.c (cxx_print_decl): Likewise.
4848
 
4849
        * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
4850
        VAR_FUNCTION_OR_PARM_DECL_CHECK,
4851
        VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
4852
        BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK, LANG_TYPE_CLASS_CHECK,
4853
        LANG_TYPE_PTRMEM_CHECK, LANG_DECL_U2_CHECK): Add __extension__.
4854
 
4855
        * decl.c (set_current_binding_level): New macro.  Use throughout
4856
        when setting the current binding level.
4857
 
4858
        * cp-tree.h (cp_lvalue_kind, base_access): Delete trailing comma
4859
        in enum.
4860
        * method.c (mangling_flags): Likewise.
4861
 
4862
        * cp-tree.h (lang_type_header): Add __extension__ and use
4863
        CHAR_BITFIELD for members.
4864
 
4865
2003-04-02  Geoffrey Keating  
4866
 
4867
        PR other/9274
4868
        * mangle.c: Include gt-cp-mangle.h.
4869
        (subst_identifiers): Mark with GTY.
4870
        * config-lang.in (gtfiles): Add cp/mangle.c.
4871
        * Make-lang.in: (gt-cp-mangle.h): New rule.
4872
        (cp/mangle.o): Depends on gt-cp-mangle.h.
4873
 
4874
2003-04-01  Andrew Pinski  
4875
 
4876
        * config-lang.in (gtfiles): Add \$(srcdir)/cp/name-lookup.c
4877
        after \$(srcdir)/cp/name-lookup.h.
4878
        * name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinstead
4879
        of ggc_alloc.  Include gt-cp-name-lookup.h at the end of the file.
4880
        * Make-lang.in: (gt-cp-name-lookup.h): Is generated by gengtype.
4881
        (cp/name-lookup.o): Depends on gt-cp-name-lookup.h.
4882
 
4883
2003-03-31  Jason Merrill  
4884
 
4885
        PR java/10145
4886
        * class.c (check_field_decl): Don't set DECL_ALIGN.
4887
 
4888
2003-03-30  Mark Mitchell  
4889
 
4890
        PR c++/7647
4891
        * decl.c (grokdeclarator): Tidy, slightly.
4892
        * search.c (lookup_field_1): Add want_type parameter.
4893
        (lookup_field_r): Adjust call to lookup_field_1.
4894
 
4895
2003-03-30  Gabriel Dos Reis  
4896
 
4897
        * Make-lang.in (cp/name-lookup.o): Add more dependencies.
4898
 
4899
2003-03-30  Gabriel Dos Reis 
4900
 
4901
        * cp-tree.h (binding_for_name: Move to name-lookup.h  Adjust
4902
        prototype.
4903
        (cxx_scope_find_binding_for_name): Likewise.
4904
        * decl.c (find_binding: Move to name-lookup.c.
4905
        (binding_for_name): Likewise.
4906
        (cxx_scope_find_binding_for_name): Likewise.
4907
        (BINDING_LEVEL):  Remove.
4908
        (push_binding): Tidy.
4909
        (push_class_binding): Likewise.
4910
        (pop_binding): Likewise.
4911
        (poplevel): Likewise.
4912
        (poplevel_class): Likewise.
4913
        (set_identifier_type_value_with_scope): Likewise.
4914
        (push_overloaded_decl): Likewise.
4915
        (lookup_tag): Likewise.
4916
        (unqualified_namespace_lookup): Likewise.
4917
        (lookup_name_current_level): Likewise.
4918
        (maybe_inject_for_scope_var): Likewise.
4919
        (namespace_binding): Move to name-lookup.c.
4920
        (set_namespace_binding): Likewise.
4921
        * decl2.c (lookup_using_namespace): Tidy.
4922
        (qualified_lookup_using_namespace): Likewise.
4923
        (do_toplevel_using_decl): Likewise.
4924
        * name-lookup.c: Include "timevar.h"
4925
        * name-lookup.h (cxx_scope):  Declare.
4926
        (struct cxx_binding): Lose member "has_level".  Adjust "scope"
4927
        member declaration.
4928
        (BINDING_SCOPE): Adjust definition.
4929
        (BINDING_HAS_LEVEL_P): Remove.
4930
 
4931
2003-03-30  Gabriel Dos Reis  
4932
 
4933
        * name-lookup.c: New file.
4934
        * name-lookup.h: Likewise..
4935
        * decl.c (push_binding): Adjust use cxx_binding_make.
4936
        (free_bindings): Move to name-lookup.c
4937
        (pop_binding): Use cxx_binding_free.
4938
        (binding_for_name): Tidy.
4939
        * cp-tree.h: Include "name-lookup.h"
4940
        (cxx_binding_make): Move to name-lookup.h
4941
        (cxx_binding_clear): Likewise.
4942
        (struct cxx_binding): Likewise.
4943
        (LOCAL_BINDING_P): Likewise.
4944
        (INHERITED_VALUE_BINDING_P): Likewise.
4945
        (BINDING_SCOPE): Likewise.
4946
        (BINDING_HAS_LEVEL_P): Likewise.
4947
        (BINDING_VALUE): Likewise.
4948
        (BINDING_TYPE): Likewise.
4949
        * config-lang.in (gtfiles): Add cp/name-lookup.h
4950
        * Make-lang.in (cp/name-lookup.o): New rule.
4951
        (CXX_OBJS): Add cp/name-lookup.o
4952
        (CXX_TREE_H): Add cp/name-lookup.h
4953
 
4954
2003-03-28  Jason Merrill  
4955
 
4956
        PR c++/10245
4957
        * cvt.c (force_rvalue): New fn.
4958
        * call.c (build_conditional_expr): Use it.
4959
        * cp-tree.h: Declare it.
4960
 
4961
2003-03-28  Mike Stump  
4962
 
4963
        * error.c (dump_expr): Add 0x to printed hex numbers to make
4964
        output match source code better.
4965
 
4966
2003-03-28  Mark Mitchell  
4967
 
4968
        PR c++/10218
4969
        * decl.c (grokfndecl): Return NULL_TREE for bogus out-of-class
4970
        definitions.
4971
 
4972
        * decl2.c (generate_ctor_or_dtor_function): Tolerate a
4973
        non-existant ssdf_decls array.
4974
        (finish_file): Call generator_ctor_or_dtor_function when there are
4975
        static constructors or destructors and no other static
4976
        initializations.
4977
 
4978
2003-03-28  Nathan Sidwell  
4979
 
4980
        PR c++/10047
4981
        * decl2.c (finish_file): Don't warn about explicitly instantiated
4982
        inline decls.
4983
 
4984
2003-03-27  Nathan Sidwell  
4985
 
4986
        PR c++/10224
4987
        * pt.c (lookup_template_class): Only check instantiated args if
4988
        they do not contain template parameters.
4989
 
4990
2003-03-27  Nathan Sidwell  
4991
 
4992
        PR c++/10158
4993
        * parser.c (cp_parser_function_definition): Set
4994
        DECL_INITIALIZED_IN_CLASS for members.
4995
        * pt.c (instantiate_decl): Only reduce the template args for
4996
        friends that are not defined in class.
4997
 
4998
2003-03-25  Jason Merrill  
4999
 
5000
        * call.c (print_z_candidate): Change name of first arg to msgid.
5001
        (joust): Add comment for translators.
5002
 
5003
2003-03-24  Nathan Sidwell  
5004
 
5005
        PR c++/9898, PR c++/383, DR 322
5006
        * pt.c (maybe_adjust_types_for_deduction) : Look
5007
        through reference types on both PARM and ARG.
5008
 
5009
2003-03-24  Nathan Sidwell  
5010
 
5011
        PR c++/10119
5012
        * error.c (dump_expr) : Use dump_expr.
5013
        * pt.c (maybe_fold_nontype_args): New function.
5014
        (tsubst_copy) : Subst any template_id args.
5015
        : Break out folding code, call it.
5016
        (tsubst_copy_and_build) : Call
5017
        maybe_fold_nontype_args.
5018
 
5019
2003-03-24  Nathan Sidwell  
5020
 
5021
        PR c++/10026
5022
        * decl2.c (arg_assoc_type) : Don't die.
5023
 
5024
2003-03-23  Mark Mitchell  
5025
 
5026
        PR c++/7086
5027
        * typeck.c (cxx_mark_addressable):  Adjust call to
5028
        gen_mem_addressof or put_var_into_stack.
5029
 
5030
2003-03-22  Nathan Sidwell  
5031
 
5032
        PR c++/9978, c++/9708
5033
        * cp-tree.h (instantiate_template): Add tsubst_flags parameter.
5034
        * call.c (add_template_candidate_real): Adjust
5035
        instantiate_template call.
5036
        * class.c (resolve_address_of_overloaded_function): Likewise.
5037
        * decl.c (build_enumerator): Set TREE_CONSTANT.
5038
        * pt.c (check_instantiated_args): New.
5039
        (push_inline_template_parms_recursive): Set TREE_CONSTANT,
5040
        TREE_READONLY.
5041
        (build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY.
5042
        (reduce_template_parm_level): Likewise.
5043
        (process_template_parm): Likewise.
5044
        (check_explicit_specialization): Adjust instantiate_template call.
5045
        (convert_template_argument): Don't check non-type argument here.
5046
        (lookup_template_class): Check them here.
5047
        (tsubst_friend_function): Adjust instantiate_template call.
5048
        (instantiate_template): Add tsubst_flags parameter, use it. Check
5049
        instantiated args.
5050
 
5051
2003-03-21  Zack Weinberg  
5052
 
5053
        * decl.c: Update calls to shadow_warning.
5054
 
5055
2003-03-21  Nathan Sidwell  
5056
 
5057
        PR c++/9898
5058
        * error.c (dump_decl) [CONST_DECL]: Print ''.
5059
        (dump_expr) [CONSTRUCTOR]: Print default ctor as a function call.
5060
 
5061
2003-03-20  Mark Mitchell  
5062
 
5063
        * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
5064
        friends.
5065
        * cp/pt.c (instantiate_class_template): Fix formatting.
5066
 
5067
2003-03-14  Matt Austern  
5068
 
5069
        * cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray.
5070
        (unemitted_tinfo_decl_p): Remove.
5071
        (emit_tinfo_decl): Change declaration to remove unused parameter.
5072
        * decl2.c (finish_file): Change tinfo emission to loop through
5073
        unemitted_tinfo_decls array instead of looping through all decls.
5074
        * rtti.c (unemitted_tinfo_decl_p): Declare as static, remove
5075
        unused second parameter.
5076
        (init_rtti_processing): initialize unemitted_tinfo_decls varray.
5077
        (get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls.
5078
        (emit_tinfo_decl): remove unused second parameter, add assertion
5079
        that decl hasn't already been emitted.
5080
 
5081
2003-03-19  Nathanael Nerode  
5082
 
5083
        * dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return
5084
        type from 'int' to 'bool'. Replace 0 and 1 with true and false in
5085
        return statements.
5086
 
5087
2003-03-19  Jason Merrill  
5088
 
5089
        PR c++/8316, c++/9315, c++/10136
5090
        * call.c (print_z_candidate): Split out from...
5091
        (print_z_candidiates): ...here.
5092
        (joust): Use it.
5093
 
5094
2003-03-17  Roger Sayle  
5095
 
5096
        PR c++/10031
5097
        * decl.c (duplicate_decls): Use the new type when prototyping
5098
        anticipated decls, even when the types match.  This defines the
5099
        exception list for the built-in function.
5100
 
5101
2003-03-17  Jason Merrill  
5102
 
5103
        PR c++/10091
5104
        * typeck.c (build_class_member_access_expr): Compare
5105
        TYPE_MAIN_VARIANTs.
5106
 
5107
2003-03-17  Mark Mitchell  
5108
 
5109
        PR c++/9639
5110
        * parser.c (cp_parser_declarator_id): Clear parser->scope.
5111
 
5112
2003-03-16  Jason Merrill  
5113
 
5114
        PR c++/9993
5115
        * decl.c (finish_function): Only allow the NRVO to use variables
5116
        declared at function scope.
5117
 
5118
2003-03-17  Andreas Jaeger  
5119
 
5120
        * Make-lang.in (cp/TAGS): Remove.
5121
 
5122
2003-03-16  Nathan Sidwell  
5123
 
5124
        PR c++/9629
5125
        * cp-tree.h (struct language_function): Add in_base_initializer.
5126
        (in_base_initializer): define it.
5127
        (expand_member_init): Remove INIT param.
5128
        * init.c (expand_member_init): Remove INIT param, return the member.
5129
        (emit_mem_initializers): Set in_base_initializer.
5130
        * class.c (build_base_path): Check in_base_initializer.
5131
        * parser.c (cp_parser_mem_initializer): Set in_base_initializer.
5132
        * pt.c (tsubst_initializer_list): Likewise.
5133
 
5134
2003-03-16   Gabriel Dos Reis 
5135
 
5136
        * decl.c (binding_for_name): Fix initialization thinko.
5137
 
5138
2003-03-15  Gabriel Dos Reis 
5139
 
5140
        Compile-time improvement: 2/n.
5141
        * cp-tree.h (struct cxx_binding): New datatype;
5142
        (struct lang_identifier): Use it.
5143
        (LOCAL_BINDING_P): Adjust definition.
5144
        (INHERITED_VALUE_BINDING_P): Likewise.
5145
        (BINDING_SCOPE): Likewise.
5146
        (BINDING_HAS_LEVEL_P): Likewise.
5147
        (BINDING_VALUE): Likewise.
5148
        (BINDING_TYPE): Likewise.
5149
        (IDENTIFIER_VALUE): Likewise.
5150
        (struct tree_binding): Remove.
5151
        (TS_CP_BINDING): Likewise.
5152
        ((union lang_tree_node): Remove field "binding".
5153
        (cxx_binding_clear): New macro.
5154
        (binding_for_name): Adjust return type.
5155
        (qualified_lookup_using_namespace): Adjust prototype.
5156
        (lookup_using_namespace): Adjust prototype.
5157
        (cxx_scope_find_binding_for_name): Declare.
5158
        * cp-tree.def: Remove CPLUS_BINDING definition.
5159
        * decl.c (push_binding): Adjust local variable type.
5160
        (add_binding): Likewise.
5161
        (push_class_binding): Likewise.
5162
        (pop_binding): Likewise.
5163
        (poplevel): Likewise.
5164
        (poplevel_class): Likewise.
5165
        (free_bindings):  Adjust type.
5166
        (find_binding): Adjust return type, add a third parameter. Remove
5167
        non-useful assertion now that we use static typing.
5168
        (cxx_scope_find_binding_for_name): New function.
5169
        (binding_for_name): Use it.  Adjust local variable type. Simplify.
5170
        (namespace_binding):  Simplify.
5171
        (set_namespace_binding): Likewise.
5172
        (set_identifier_type_value_with_scope): Adjust local variable type.
5173
        (lookup_tag): Don't type-abuse of local variable 'old'.
5174
        (lookup_namespace_name): Likewise.  Allocate binding on stack.
5175
        (select_decl): Adjust prototype.
5176
        (unqualified_namespace_lookup):  Allocate binding on stack.
5177
        Don't type-abuse of local variable 'val'.
5178
        (lookup_name_real): Likewise.
5179
        (maybe_inject_for_scope_var): Adjust local variable type.
5180
        (cp_tree_node_structure): Remove CPLUS_BINDING case label.
5181
        (namespace_binding): Adjust logic, simplify.
5182
        (BINDING_LEVEL): Adjust definition.
5183
        (push_class_level_binding): Adjust local variable type.
5184
        (struct cxx_saved_binding): Adjust field 'binding' type.
5185
        * decl2.c (ambiguous_decl): Adjust prototype.
5186
        (lookup_using_namespace): Adjust local variable type.
5187
        (qualified_lookup_using_namespace): Catch type error and correct
5188
        ensueing logic error.
5189
        (do_nonmember_using_decl): Adjust local variable type.  Allocate
5190
        temporary cxx_binding on stack.
5191
        (do_toplevel_using_decl): Adjust local variable type.
5192
        * ptree.c (cxx_print_cxx_binding): New function.
5193
        (cxx_print_identifier): Use it.
5194
        (cxx_print_xnode): Delete CPLUS_BINDING case label.
5195
 
5196
2003-03-15  Roger Sayle  
5197
 
5198
        * tree.c (count_functions): Fix whitespace.
5199
 
5200
2003-03-15  Neil Booth  
5201
 
5202
        * Make-lang.in: Update.
5203
 
5204
2003-03-15  Kriang Lerdsuwanakij  
5205
 
5206
        PR c++/6440
5207
        * pt.c (maybe_process_partial_specialization): Handle
5208
        member class template when enclosing class template is
5209
        explicit specialized.
5210
        (most_general_template): Stop looking when DECL is already
5211
        specialized.
5212
 
5213
2003-03-13  Jason Merrill  
5214
 
5215
        PR c++/9420
5216
        * search.c (lookup_conversions): Call complete_type here.
5217
        * call.c (implicit_conversion): Not here.
5218
 
5219
2003-03-13  Mark Mitchell  
5220
 
5221
        * decl2.c (do_nonmember_using_decl): Correct handling of
5222
        simultaneous type/non-type bindings.
5223
 
5224
        * call.c (initialize_reference): Remove bogus assertion.
5225
        * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.
5226
 
5227
2003-03-12  Andrew Lewycky  
5228
 
5229
        PR c++/7050
5230
        * expr.c (cxx_expand_expr): Return const0_rtx for throw
5231
        expressions.
5232
 
5233
2003-03-11  Mark Mitchell  
5234
 
5235
        PR c++/9474
5236
        * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
5237
        to merge old and new declarations.
5238
 
5239
2003-03-12  Alexandre Oliva  
5240
 
5241
        * g++.1: Remove.
5242
        * Make-lang.in (c++.generated-manpages): Build cp/g++.1.
5243
        (cp/g++.1): Build it from scratch in the build tree.
5244
        (c++.install-man): Depend on it.  Install it from the build tree.
5245
        (c++.mostlyclean): Clean it.
5246
 
5247
2003-03-11  Mark Mitchell  
5248
 
5249
        PR c++/9474
5250
        * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
5251
        to merge old and new declarations.
5252
 
5253
        PR c++/9924
5254
        * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
5255
 
5256
2003-03-11  Jason Merrill  
5257
 
5258
        PR c++/9820
5259
        * search.c (lookup_member): Fix handling of functions in a class
5260
        being defined.
5261
 
5262
2003-03-11  Mark Mitchell  
5263
 
5264
        PR c++/8700
5265
        * call.c (convert_class_to_reference): Adjust usage of
5266
        splice_viable.
5267
        (any_viable): Remove.
5268
        (splice_viable): Combine with any_viable.
5269
        (print_z_candidates): Avoid printing duplicates.
5270
        (build_user_type_conversion_1): Adjust usage of splice_viable.
5271
        (build_new_function_call): Likewise.
5272
        (build_operator_new_call): Likewise.
5273
        (build_object_call): Likewise.
5274
        (build_conditional_expr): Likewise.
5275
        (build_new_op): Likewise.
5276
        (build_new_method_call): Likewise.
5277
        (joust): Remove spurious comment.
5278
        * cp-tree.h (DECL_FRIENDLIST): Correct documentation.
5279
        * decl2.c (arg_assoc_class): Simplify.
5280
        * friend.c (add_friend): Likewise.
5281
 
5282
2003-03-11  Jason Merrill  
5283
 
5284
        PR c++/8660
5285
        * decl2.c (check_classfn): A member template only matches a
5286
        member template.
5287
 
5288
2003-03-11  Neil Booth  
5289
 
5290
        * Make-lang.in (CXX_C_OBJS): Update.
5291
        * lang-specs.h: Don't define __GNUG__ here.
5292
 
5293
2003-03-10  Mark Mitchell  
5294
 
5295
        * call.c (perform_overload_resolution): New function.
5296
        (build_new_function_call): Use it.
5297
        (build_operator_new_call): Likewise.
5298
        (add_candidates): Add explicit_targs and template_only parameters.
5299
        (build_new_op): Adjust accordingly.
5300
        * cp-tree.h (build_operator_new_call): New function.
5301
        (build_function_call_real): Remove.
5302
        (build_function_call_maybe): Likewise.
5303
        * init.c (build_new_1): Use build_operator_new_call.
5304
        * typeck.c (build_function_call_real): Rename to ...
5305
        (build_function_call): ... this.
5306
 
5307
2003-03-10  Devang Patel  
5308
 
5309
        PR c++/9394
5310
        * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWTCH_TAKES_ARG.
5311
 
5312
2003-03-10  Jason Merrill  
5313
 
5314
        PR c++/9798
5315
        * decl.c (push_using_directive): Push before recursing.
5316
 
5317
        PR c++/9868, c++/9524
5318
        * call.c (resolve_scoped_fn_name): Handle the case of a function
5319
        pointer member.
5320
 
5321
        * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
5322
        argument in the pointer-to-member case.
5323
 
5324
2003-03-09  Mark Mitchell  
5325
 
5326
        PR c++/9373
5327
        * cp-lang.c (cxx_get_alias_set): Use alias set zero for
5328
        pointers to member functions.
5329
 
5330
        PR c++/8534
5331
        * decl.c (build_ptrmemfunc_type): Do not allow default arguments
5332
        in pointer-to-member-function types.
5333
 
5334
2003-03-10  Gabriel Dos Reis  
5335
 
5336
        * expr.c (cplus_expand_constant): Use C90 prototype style.
5337
        (cxx_expand_expr): Likewise.
5338
 
5339
2003-03-09  Kriang Lerdsuwanakij  
5340
 
5341
        PR c++/9970
5342
        * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
5343
        functions.
5344
 
5345
2003-03-08  Geoffrey Keating  
5346
 
5347
        * lang-specs.h (c++-header): Change .pch to .gch.
5348
 
5349
2003-03-08  Neil Booth  
5350
 
5351
        * cp-tree.h (cxx_init): Update prototype.
5352
        * lex.c (cxx_init): Similarly.
5353
 
5354
2003-03-08  Mark Mitchell  
5355
 
5356
        PR c++/9823
5357
        * cp-tree.h (begin_mem_initializers): Remove.
5358
        * parser.c (cp_parser_mem_initializer_list): Inline it here.
5359
        Do not call finish_mem_initializers if not in a constructor.
5360
        (cp_parser_class_head): Fix typo in error message.
5361
        * semantics.c (begin_mem_initializers): Remove.
5362
        * testsuite/g++.dg/parser/constructor1.C: New test.
5363
 
5364
        PR c++/9809
5365
        * call.c (add_function_candidate): Skip builtin fuctions that have
5366
        not yet been declared.
5367
 
5368
        PR c++/9982
5369
        * init.c (build_new_1): Correct logic for determining whether or
5370
        not to use an array cookie.
5371
 
5372
        PR c++/9524
5373
        * parser.c (cp_parser_postfix_expression): Call
5374
        finish_non_static_data_member, even when processing_template_decl.
5375
 
5376
        PR c++/9912
5377
        * cp-tree.h (is_ancestor): New function.
5378
        (handle_class_head): Change prototype.
5379
        * decl2.c (is_namespace_ancestor): Rename to ...
5380
        (namespace_anecestor): ... this.
5381
        (set_decl_namespace): Adjust accordingly.
5382
        (handle_class_head): Remove unnecessary parameters.
5383
        * parser.c (cp_parser_class_head): Check that
5384
        nested-name-specifiers are used appropriately.
5385
 
5386
2003-03-07  Mark Mitchell  
5387
 
5388
        * call.c (reference_binding): Remove REF_IS_VAR parameter.
5389
        (implicit_conversion): Adjust call to reference_binding.
5390
        (make_temporary_var_for_ref_to_type): Add TYPE parameter.
5391
        (initialize_reference): Adjust handling for references bound to
5392
        rvalues.
5393
        * cp-tree.h (make_temporary_var_for_ref_to_temp): Change
5394
        prototype.
5395
        (real_non_cast_lvalue_p): New method.
5396
        * cvt.c (build_up_reference): Adjust use of
5397
        make_temporary_var_for_ref_to_temp.
5398
        * tree.c (real_non_cast_lvalue_p): New method.
5399
 
5400
2003-03-07  Gabriel Dos Reis  
5401
 
5402
        * except.c (init_exception_processing): Use C90 prototype style.
5403
        (cp_protect_cleanup_actions): Likewise.
5404
        (prepare_eh_type): Likewise.
5405
        (build_eh_type_type): Likewise.
5406
        (build_exc_ptr): Likewise.
5407
        (do_begin_catch): Likewise.
5408
        (dtor_nothrow): Likewise.
5409
        (do_end_catch): Likewise.
5410
        (push_eh_cleanup): Likewise.
5411
        (decl_is_java_type): Likewise.
5412
        (choose_personality_routine): Likewise.
5413
        (initialize_handler_parm): Likewise.
5414
        (expand_start_catch_block): Likewise.
5415
        (expand_end_catch_block): Likewise.
5416
        (begin_eh_spec_block): Likewise.
5417
        (finish_eh_spec_block): Likewise.
5418
        (do_allocate_exception): Likewise.
5419
        (do_free_exception): Likewise.
5420
        (wrap_cleanups_r): Likewise.
5421
        (stabilize_throw_expr): Likewise.
5422
        (build_throw): Likewise.
5423
        (complete_ptr_ref_or_void_ptr_p): Likewise.
5424
        (is_admissible_throw_operand): Likewise.
5425
        (nothrow_libfn_p): Likewise.
5426
        (can_convert_eh): Likewise.
5427
        (check_handlers_1): Likewise.
5428
        (check_handlers): Likewise.
5429
 
5430
2003-03-06  Mark Mitchell  
5431
 
5432
        * call.c (merge_conversion_sequences): New function.
5433
        (build_conv): Set ICS_USER_FLAG for USER_CONVs.
5434
        (convert_class_to_reference): Correct handling of second
5435
        standard conversion sequence in a user-defined conversion
5436
        sequence.
5437
        (build_user_type_conversion_1): Use merge_conversion_sequences.
5438
        * cp-tree.def: Add comments for CONV nodes.
5439
        * rtti.c (get_tinfo_decl): Use build_address/build_nop.
5440
 
5441
2003-03-07  Gabriel Dos Reis  
5442
 
5443
        * error.c (init_error): Use C90 prototype style.
5444
        (dump_scope): Likewise.
5445
        (dump_qualifiers): Likewise.
5446
        (dump_template_argument): Likewise.
5447
        (dump_template_argument_list): Likewise.
5448
        (dump_template_parameter): Likewise.
5449
        (dump_template_bindings): Likewise.
5450
        (dump_type): Likewise.
5451
        (dump_typename): Likewise.
5452
        (class_key_or_enum): Likewise.
5453
        (dump_aggr_type): Likewise.
5454
        (dump_type_prefix): Likewise.
5455
        (dump_type_suffix): Likewise.
5456
        (dump_global_iord): Likewise.
5457
        (dump_simple_decl): Likewise.
5458
        (dump_decl): Likewise.
5459
        (dump_template_decl): Likewise.
5460
        (dump_function_decl): Likewise.
5461
        (dump_parameters): Likewise.
5462
        (dump_exception_spec): Likewise.
5463
        (dump_function_name): Likewise.
5464
        (dump_template_parms): Likewise.
5465
        (dump_char): Likewise.
5466
        (dump_expr_list): Likewise.
5467
        (dump_expr): Likewise.
5468
        (dump_binary_op): Likewise.
5469
        (dump_unary_op): Likewise.
5470
        (type_as_string): Likewise.
5471
        (expr_as_string): Likewise.
5472
        (decl_as_string): Likewise.
5473
        (context_as_string): Likewise.
5474
        (lang_decl_name): Likewise.
5475
        (cp_file_of): Likewise.
5476
        (cp_line_of): Likewise.
5477
        (decl_to_string): Likewise.
5478
        (expr_to_string): Likewise.
5479
        (fndecl_to_string): Likewise.
5480
        (code_to_string): Likewise.
5481
        (language_to_string): Likewise.
5482
        (parm_to_string): Likewise.
5483
        (op_to_string): Likewise.
5484
        (type_to_string): Likewise.
5485
        (assop_to_string): Likewise.
5486
        (args_to_string): Likewise.
5487
        (cv_to_string): Likewise.
5488
        (cxx_print_error_function): Likewise.
5489
        (cp_diagnostic_starter): Likewise.
5490
        (cp_diagnostic_finalizer): Likewise.
5491
        (cp_print_error_function): Likewise.
5492
        (function_category): Likewise.
5493
        (print_instantiation_full_context): Likewise.
5494
        (print_instantiation_partial_context): Likewise.
5495
        (maybe_print_instantiation_context): Likewise.
5496
        (print_instantiation_context): Likewise.
5497
        (cp_printer): Likewise.
5498
        (print_integer): Likewise.
5499
        (print_non_consecutive_character): Likewise.
5500
        (locate_error): Likewise.
5501
 
5502
2003-03-06  Mark Mitchell  
5503
 
5504
        PR c++/9965
5505
        * call.c (reference_binding): Add ref_is_var parameter.
5506
        (implicit_conversion): Adjust call to reference_binding.
5507
        (initialize_reference): Likewise.
5508
 
5509
        PR c++/9400
5510
        * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
5511
        PARM_DECLs.
5512
 
5513
        PR c++/9791
5514
        * class.c (get_basefndecls): Use lookup_fnfields_1.
5515
 
5516
2003-03-06  Kriang Lerdsuwanakij  
5517
 
5518
        PR c++/9188
5519
        * parser.c (cp_parser_type_parameter): Remove redundant `expect'
5520
        in error message.
5521
        (cp_parser_single_declaration): Likewise.
5522
 
5523
2003-03-05  Jason Merrill  
5524
 
5525
        PR c++/9440
5526
        * call.c (build_conditional_expr): Use convert rather than an
5527
        explicit NOP_EXPR.
5528
 
5529
2003-03-02  Matt Austern  
5530
 
5531
        * decl.c (cp_binding_level): Add static_decls varray member.
5532
        (add_decl_to_level): Add static/inline namespace scope
5533
        declarations to static_decls array.
5534
        (wrapup_global_for_namespace): Pass static_decls only, instead of
5535
        all decls, to wrapup_global_declarations/check_global_declarations.
5536
        (push_namespace): Initialize static_decls for ordinary namespaces.
5537
        (cxx_init_decl_processing): Initialize static_decls for global
5538
        namespace.
5539
 
5540
2003-03-05  Mark Mitchell  
5541
 
5542
        * class.c (end_of_class): Correct thinko.
5543
 
5544
2003-03-04  Nathanael Nerode  
5545
 
5546
        * config-lang.in: Replace ${libstdcxx_version} by its value.
5547
 
5548
2003-03-04  Gabriel Dos Reis 
5549
 
5550
        * cp-tree.h (cxx_saved_binding): Declare.
5551
        (struct saved_scope): Adjust type of field 'old_binding'.
5552
        * decl.c (cxx_saved_binding_make): New macro.
5553
        (struct cxx_saved_binding): Define.
5554
        (store_bindings): Adjust prototype.  Use cxx_saved_binding to save
5555
        C++ bindings.
5556
        (maybe_push_to_top_level): Adjust local variable type.
5557
        (pop_from_top_level): Likewise.
5558
 
5559
2003-03-04  Tom Tromey  
5560
 
5561
        * Make-lang.in (c++.tags): New target.
5562
 
5563
2003-03-04  Neil Booth  
5564
 
5565
        * Make-lang.in: Update.
5566
 
5567
2003-03-03  Jason Merrill  
5568
 
5569
        * decl.c (finish_enum): Do set the type in a template. Simplify.
5570
        * pt.c (tsubst_enum, tsubst_copy): Revert last patch.
5571
 
5572
2003-03-03  Mark Mitchell  
5573
 
5574
        PR c++/9878
5575
        * call.c (convert_class_to_reference): Correct conversion
5576
        sequences.
5577
        (reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
5578
        (implicit_conversion): Adjust call to reference_binding.
5579
        (add_candidate): Change type of candidates parameter.
5580
        (add_function_candidate): Likewise.
5581
        (add_conv_candidate): Likewise.
5582
        (build_builtin_candidate): Likewise.
5583
        (add_builtin_candidate): Likewise.
5584
        (add_builtin_candidates): Likewise.
5585
        (add_template_candidate_real): Likewise.
5586
        (add_template_candidate): Likewise.
5587
        (add_template_conv_candidate): Likewise.
5588
        (build_user_type_conversion_1): Adjust accordingly.
5589
        (build_object_call): Likewise.
5590
        (build_conditional_expr): Likewise.
5591
        (add_candidates): Likewise.
5592
        (build_new_op): Likewise.
5593
        (convert_like_real): Use USER_CONV_CAND.  Use build_nop.
5594
        (build_new_method_call): Adjust calls to add_function_candidate.
5595
        (make_temporary_var_for_ref_to_temp): New function.
5596
        (initialize_reference): Add decl parameter.
5597
        * class.c (build_rtti_vtbl_entries): Use build_address and
5598
        build_nop.
5599
        * cp-tree.h (initialize_reference): Change prototype.
5600
        (make_temporary_var_for_ref_to_temp): New function.
5601
        (build_type_conversion): Change prototype.
5602
        (build_address): New function.
5603
        (build_nop): Likewise.
5604
        * cvt.c (cp_convert_to_pointer): Adjust call to
5605
        build_type_conversion.  Avoid indicating redundant NOP_EXPRs.
5606
        Use build_nop.
5607
        (convert_to_pointer_force): Use build_nop.
5608
        (build_up_reference): Use make_temporary_var_for_ref_to_temp.
5609
        (convert_to_reference): Adjust call to build_type_conversion.
5610
        (ocp_convert): Likewise.
5611
        (build_type_conversion): Remove for_sure parameter.
5612
        * decl.c (grok_reference_init): Use initialize_reference.
5613
        * typeck.c (build_address): New function.
5614
        (build_nop): Likewise.
5615
        (build_unary_op): Use them.
5616
        (build_ptrmemfunc): Tidy slightly.
5617
        (convert_for_initialization): Adjust call to
5618
        initialize_reference.
5619
        * typeck2.c (store_init_value): Remove #if 0'd code.
5620
 
5621
2003-03-03  Jason Merrill  
5622
 
5623
        * decl.c (start_function): Clear DECL_NUM_STMTS.
5624
 
5625
        * class.c (get_vtable_decl): Use vtbl_type_node.
5626
        (build_primary_vtable): Check for it.
5627
 
5628
2003-03-02  Aldy Hernandez  
5629
 
5630
        * decl.c (check_initializer): Check for vector_opaque_p.
5631
 
5632
2003-03-02  Ashif Harji  
5633
 
5634
        * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
5635
          invoke an external cpp during compilation.
5636
 
5637
2003-03-01  Gabriel Dos Reis  
5638
 
5639
        * decl.c (duplicate_decls): Convert use of warning_with_decl() to
5640
        that of warning().
5641
        (start_decl): Likewise.
5642
        (start_function): Likewise.
5643
 
5644
2003-03-01  Neil Booth  
5645
 
5646
        * Make-lang.in (CXX_C_OBJS): Update.
5647
 
5648
2003-02-28  Mark Mitchell  
5649
 
5650
        PR c++/9892
5651
        * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
5652
        instantiating it.
5653
 
5654
2003-02-28  Aldy Hernandez  
5655
 
5656
        * parser.c (cp_parser_init_declarator): Revert opaque
5657
        vector_opaque_p change.
5658
        Do not include target.h.
5659
 
5660
2003-02-28  Mark Mitchell  
5661
 
5662
        PR c++/9879
5663
        * cp-tree.h (build_zero_init): Add parameter.
5664
        * decl.c (cp_finish_decl): Adjust call.
5665
        * init.c (build_zero_init): Add nelts parameter.  Adjust recursive
5666
        calls.
5667
        (build_default_init): Add nelts parameter.  Adjust calls to
5668
        build_zero_init.
5669
        (build_new_1): Adjust call to build_default_init.
5670
        * typeck2.c (process_init_constructor): Adjust call to build_zero_init.
5671
 
5672
2003-02-26  Devang Patel  
5673
 
5674
        * decl.c (finish_enum): Merge two 'for' loops. Copy value node if
5675
        required.  Postpone enum setting for template decls.
5676
        (build_enumerator): Delay copying value node until finish_enum
5677
        (). Remove #if 0'ed code.
5678
        * pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
5679
        (tsubst_copy): Add check for enum type.
5680
 
5681
2003-02-25  Mark Mitchell  
5682
 
5683
        PR c++/9683
5684
        * decl2.c (prune_vars_needing_no_initialization): Do not throw
5685
        away initializations for DECL_EXTERNAL VAR_DECLs.
5686
        (finish_file): Adjust accordingly.
5687
        * pt.c (instantiate_decl): Do not defer VAR_DECLs.
5688
 
5689
2003-02-24 Gabriel Dos Reis  
5690
 
5691
        * decl.c (add_binding): Time TV_NAME_LOOKUP.
5692
        (push_class_binding): Likewise.
5693
        (set_namespace_binding): Likewise.
5694
 
5695
2003-02-24  Mark Mitchell  
5696
 
5697
        PR c++/9836
5698
        * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from
5699
        specializations back to the main template.
5700
        * parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.
5701
        * pt.c (resolve_typename_type): Likewise.
5702
 
5703
2003-02-24  Jeffrey D. Oldham  
5704
 
5705
        PR c++/9778
5706
        * pt.c (tsubst_copy_and_build): For a templated function inside a
5707
        scope, process template arguments.
5708
 
5709
2003-02-24  Kriang Lerdsuwanakij  
5710
 
5711
        PR c++/9602
5712
        * typeck2.c (abstract_virtuals_error): Don't check when
5713
        TYPE is still template parameter dependent.
5714
 
5715
2003-02-23  Mark Mitchell  
5716
 
5717
        PR c++/5333
5718
        * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro.
5719
        * parser.c (cp_parser_diagnose_invalid_type_name): Use it.
5720
        * pt.c (instantiate_class_template): Don't try to instantiate
5721
        dependent types.
5722
        (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE.
5723
 
5724
2003-02-21  Mark Mitchell  
5725
 
5726
        PR c++/9749
5727
        * decl.c (grokdeclarator): Do not allow parameters with variably
5728
        modified types.
5729
 
5730
2003-02-21  Nathan Sidwell  
5731
 
5732
        * search.c (grow_bfs_bases): Remove. Fold into ...
5733
        (bfs_walk): ... here, fix fencepost error. Fix merge lossage
5734
        in previous patch.
5735
 
5736
2003-02-20  Mark Mitchell  
5737
 
5738
        PR c++/9729
5739
        * mangle.c (mangle_conv_op_name_for_type): Issue an error message
5740
        when the G++ 3.2 ABI prevents correct compilation.
5741
 
5742
2003-02-20  Nathan Sidwell  
5743
 
5744
        Change base class access representation. Share virtual base
5745
        binfos.
5746
        * cp/call.c (build_special_member_call): Remove binfo_for_vbase
5747
        call.
5748
        * cp/class.c (build_base_path): Likewise.
5749
        (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
5750
        (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
5751
        (make_new_vtable): Adjust.
5752
        (force_canonical_binfo_r): Delete.
5753
        (force_canonical_binfo): Delete.
5754
        (mark_primary_virtual_base): Delete.
5755
        (dfs_unshared_virtual_bases): Delete.
5756
        (mark_primary_bases): Adjust.
5757
        (maybe_warn_about_overly_private_class): Adjust.
5758
        (dfs_base_derived_from): Delete.
5759
        (base_derived_from): Follow the inheritance chain.
5760
        (struct find_final_overrider_data): Add vpath member.
5761
        (dfs_find_final_overrider): Adjust.
5762
        (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
5763
        (find_final_overrider): Adjust.
5764
        (update_vtable_entry_for_fn): Adjust.
5765
        (modify_all_vtables): Adjust.
5766
        (walk_subobject_offsets): Adjust.
5767
        (layout_nonempty_base_or_field): Adjust.
5768
        (layout_empty_base): Remove last parameter. Adjust.
5769
        (build_base_field): Adjust.
5770
        (build_base_fields): Adjust.
5771
        (propagate_binfo_offsets): Remove last parameter. Adjust.
5772
        (dfs_set_offset_for_unshared_vbases): Delete.
5773
        (layout_virtual_bases): Adjust.
5774
        (finish_struct_1): Adjust.
5775
        (init_class_processing): Don't init access nodes.
5776
        (dfs_get_primary_binfo): Delete.
5777
        (get_primary_binfo): Adjust.
5778
        (dump_class_hierarchy_r): Remove most derived arg, add IGO
5779
        parameter. Adjust.
5780
        (dump_class_hierarchy): Adjust.
5781
        (finish_vtbls): Adjust.
5782
        (get_original_base): Delete.
5783
        (build_vtt_inits): Adjust.
5784
        (dfs_build_secondary_vptr_vtt_inits): Adjust.
5785
        (dfs_ctor_vtable_bases_queue_p): Adjust.
5786
        (build_ctor_vtbl_group): Adjust.
5787
        (dfs_accumulate_vtbl_inits): Adjust.
5788
        (build_vtbl_initializer): Adjust.
5789
        (build_vbase_offset_vtbl_entries): Adjust.
5790
        (add_vcall_offset_vtbl_entries_1): Adjust.
5791
        * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
5792
        (access_*_node): Remove.
5793
        (CANONICAL_BINFO): Delete.
5794
        (BINFO_UNSHARED_MARKED): Remove.
5795
        (BINFO_MARKED): Set LANG_FLAG_0 directly.
5796
        (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
5797
        (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
5798
        (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
5799
        Delete.
5800
        (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
5801
        (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
5802
        (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
5803
        Delete.
5804
        (BINFO_DEPENDENT_BASE_P): New.
5805
        (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
5806
        index.
5807
        (markedp, unmarkedp): Adjust.
5808
        (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
5809
        dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
5810
        find_vbase_instance, binfo_for_vbase): Delete.
5811
        (copied_binfo, original_binfo): Declare.
5812
        (finish_base_specifier): Add virtual_p arg.
5813
        (unshare_base_binfos): Delete.
5814
        (copy_base_binfos): Declare.
5815
        (reverse_path): Delete.
5816
        * cp/decl.c (xref_basetypes): Access and virtuality passed
5817
        differently. Don't copy direct base binfos here. Call
5818
        copy_base_binfos.
5819
        * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
5820
        (initialize_vtbl_ptrs): Adjust.
5821
        (expand_member_init): Adjust.
5822
        * cp/parser.c (cp_parser_base_specifier): Adjust.
5823
        * cp/pt.c (instantiate_class_template): Adjust.
5824
        (get_template_base_recursive): Adjust.
5825
        * cp/rtti.c (get_pseudo_ti_init): Adjust.
5826
        (get_pseudo_ti_desc): Adjust.
5827
        * cp/tree.c (unshare_base_binfos): Rename to ...
5828
        (copy_base_binfos): ... here, reimplement.
5829
        (make_binfo): Set BINFO_DEPENDENT_BASE_P.
5830
        (reverse_path): Remove.
5831
        * cp/typeck.c (get_delta_difference): Adjust error messages.
5832
        * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
5833
        * cp/search.c (lookup_base_r): Adjust.
5834
        (dynamic_cast_base_recurse): Adjust.
5835
        (canonical_binfo): Remove.
5836
        (dfs_canonical_queue): Remove.
5837
        (dfs_assert_unmarked_p): Remove.
5838
        (assert_canonical_unmarked): Remove.
5839
        (shared_marked_p, shared_unmarked_p): Remove.
5840
        (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
5841
        (dfs_access_in_type): Adjust.
5842
        (access_in_type): Adjust.
5843
        (dfs_accessible_queue_p): Adjust.
5844
        (dfs_accessible_p): Adjust.
5845
        (is_subobject_of_p_1, is_subobject_of_p): Remove.
5846
        (struct lookup_field_info): Remove from_dep_base_p field.
5847
        (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
5848
        (lookup_field_r): Remove dependent base code.
5849
        (lookup_member): Likewise.
5850
        (dfs_walk, dfs_walk_real): Add access arg to queue fn.
5851
        (dfs_unmarked_real_bases_queue_p): Remove.
5852
        (dfs_marked_real_bases_queue_p): Remove.
5853
        (dfs_skip_vbases): Remove.
5854
        (dfs_get_pure_virtuals): Adjust.
5855
        (markedp, unmarkedp): Adjust.
5856
        (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
5857
        (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
5858
        (dfs_unmark): Adjust.
5859
        (dfs_get_vbase_types):Remove.
5860
        (dfs_build_inheritance_graph_order): Remove.
5861
        (get_vbase_types): Remove
5862
        (dfs_find_vbase_instance): Remove.
5863
        (find_vbase_instance): Remove.
5864
        (dfs_debug_unmarkedp): Adjust.
5865
        (dependent_base_p): Remove.
5866
        (dfs_push_type_decls): Adjust.
5867
        (dfs_push_decls): Adjust.
5868
        (dfs_no_overlap_yet): Adjust.
5869
        (copied_binfo): New function.
5870
        (original_binfo): New function.
5871
        (binfo_for_vbase): Remove.
5872
 
5873
2003-02-18  Zack Weinberg  
5874
 
5875
        * cp/search.c (grow_bfs_bases): New subroutine of bfs_walk.
5876
        (bfs_walk): Rewritten using circular queue of BINFO_BASETYPES
5877
        vectors, for speed.
5878
 
5879
2003-02-18  Mark Mitchell  
5880
 
5881
        PR c++/9704
5882
        * class.c (layout_class_type): In the 3.2 ABI, take into account
5883
        trailing bit fields when computing CLASSTYPE_SIZE_UNIT.
5884
 
5885
2003-02-18  Matt Austern 
5886
 
5887
        * cp/cp-lang.c: Change lang hooks so that final_write_globals does
5888
        nothing for C++.
5889
        * cp/decl.c (wrapup_globals_for_namespace): Remove special
5890
        handling of global namespace.
5891
 
5892
2003-02-18  Geoffrey Keating  
5893
 
5894
        * cp-tree.h (rid_to_yy): Delete.
5895
        (C_RID_YYCODE): Delete.
5896
        (finish_file): Delete redundant declaration.
5897
 
5898
2003-02-18  Jason Merrill  
5899
 
5900
        PR c++/9623
5901
        * decl.c (reshape_init): Don't mess with initializer labels.
5902
 
5903
        PR c++/9485
5904
        * parser.c (cp_parser_postfix_expression): Set idk properly for
5905
        object->scope::member.
5906
 
5907
2003-02-18  Ben Elliston  
5908
 
5909
        PR other/7350
5910
        * decl.c (duplicate_decls): Fix typo in comment.
5911
 
5912
2003-02-17  Michael Elizabeth Chastain 
5913
 
5914
        PR debug/9717
5915
        * class.c (build_base_field): Mark fields for base classes with
5916
        DECL_IGNORED_P.
5917
 
5918
2003-02-17  Kriang Lerdsuwanakij  
5919
 
5920
        PR c++/9457
5921
        * pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Substitute
5922
        CONSTRUCTOR_ELTS only once.
5923
 
5924
2003-02-16  Kriang Lerdsuwanakij  
5925
 
5926
        PR c++/9459
5927
        * error.c (dump_type_prefix): Handle TYPEOF_TYPE.
5928
        (dump_type_suffix): Likewise.
5929
 
5930
2003-02-14  Nathan Sidwell  
5931
 
5932
        * search.c: ANSIfy function declarations and definitions.
5933
        * cp-tree.h (lookup_field, lookup_member): Last parameter is a bool.
5934
        * call.c (build_method_call, resolve_scoped_fn_name,
5935
        build_java_interface_fn_ref): Adjust lookup_field, lookup_member
5936
        calls.
5937
        * class.c (handle_using_decl): Likewise.
5938
        * decl.c (make_typename_type, make_unmound_class_template,
5939
        start_decl, compute_array_index_type): Likewise.
5940
        * decl2.c (build_expr_from_tree, build_call_from_tree): Likewise.
5941
        * init.c (expand_member_init, build_member_call): Likewise.
5942
        * pt.c (tsubst_copy, tsubst_copy_and_build, do_decl_instantiation,
5943
        resolve_typename_type): Likewise.
5944
        * typeck.c (lookup_destructor, finish_class_member_access_exprm
5945
        build_prememfunc_access_expr): Likewise.
5946
 
5947
2003-02-13  Gabriel Dos Reis 
5948
 
5949
        * decl2.c: Include "timevar.h".
5950
        (namespace_ancestor): Time name lookup.
5951
        (add_using_namespace): Likewise.
5952
        (lookup_using_namespace): Likewise.
5953
        (qualified_lookup_using_namespace): Likewise.
5954
        (decl_namespace): Likewise.
5955
        (lookup_arg_dependent): Likewise.
5956
        * lex.c (do_identifier): Likewise.
5957
        (do_scoped_id): Likewise.
5958
        * pt.c (lookup_template_class): Likewise.
5959
 
5960
2003-02-14   Andrew Pinski 
5961
 
5962
        * decl.c: (define_label): Fix warning for return 0 instead of NULL.
5963
 
5964
2003-02-13  Gabriel Dos Reis  
5965
 
5966
        * decl.c: Include "timevar.h".
5967
        (poplevel): Time name lookup.
5968
        (find_binding): Likewise.
5969
        (push_namespace): Likewise.
5970
        (pop_nested_namespace): Likewise.
5971
        (store_bindings): Likewise.
5972
        (maybe_push_to_top_level): Likewise.
5973
        (pop_from_top_level): Likewise.
5974
        (push_local_name): Likewise.
5975
        (pushtag): Likewise.
5976
        (pushdecl): Likewise.
5977
        (pushdecl_with_scope): Likewise.
5978
        (pushdecl_namespace_level): Likewise.
5979
        (pushdecl_top_level): Likewise.
5980
        (pushdecl_class_level): Likewise.
5981
        (push_class_level_binding): Likewise.
5982
        (push_using_decl): Likewise.
5983
        (push_using_directive): Likewise.
5984
        (push_overloaded_decl): Likewise.
5985
        (lookup_label): Likewise.
5986
        (define_label): Likewise.
5987
        (lookup_tag): Likewise.
5988
        (lookup_tag_reverse): Likewise.
5989
        (lookup_namespace_name): Likewise.
5990
        (select_decl): Likewise.
5991
        (unqualified_namespace_lookup): Likewise.
5992
        (lookup_name_real): Likewise.
5993
        (lookup_name_current_level): Likewise.
5994
        (lookup_type_current_level): Likewise.
5995
        (maybe_inject_for_scope_var): Likewise.
5996
        (xref_tag): Likewise.
5997
 
5998
        * Make-lang.in (cp/decl.o): Add dependency on timevar.h
5999
 
6000
2003-02-12  Phil Edwards  
6001
 
6002
        * decl.c (build_enumerator):  Remove unneeded test.
6003
 
6004
2003-02-09  Dan Nicolaescu  
6005
 
6006
        * cp-tree.h (struct lang_type_header): Make all fields unsigned
6007
        char.
6008
 
6009
2003-02-03  Mark Mitchell  
6010
 
6011
        PR c++/7129
6012
        * call.c (z_candidate): Add args.
6013
        (convert_class_to_reference): Set it.
6014
        (implicit_conversion): Tidy.
6015
        (add_candidate): Add args parameter.
6016
        (add_function_candidate): Adjust call to add_candidate.
6017
        (add_conv_candidate): Likewise.
6018
        (build_builtin_candidate): Likewise.
6019
        (build_user_type_conversion_1): Eliminate wasteful tree_cons
6020
        usage.
6021
        (build_new_function_call): Likewise.
6022
        (build_object_call): Likewise.
6023
        (add_candidates): New function.
6024
        (build_new_op): Use it.
6025
        (covert_like_real): Adjust call to build_over_call.
6026
        (build_over_call): Remove args parameter.
6027
        * operators.def: Add ?=.
6028
 
6029
2003-02-01  Richard Sandiford  
6030
 
6031
        * typeck.c (build_indirect_ref): Don't check flag_volatile.
6032
 
6033
2003-01-31  Kriang Lerdsuwanakij  
6034
 
6035
        PR c++/8849
6036
        * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.
6037
 
6038
2003-01-31  Nathan Sidwell  
6039
 
6040
        * cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
6041
        BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
6042
        (BINFO_LANG_ELTS): New #define.
6043
        * tree.c (make_binfo): Use BINFO_LANG_ELTS.
6044
 
6045
2003-01-30  Geoffrey Keating  
6046
 
6047
        * cp/Make-lang.in: Remove -Wno-error from cp/decl.o.
6048
 
6049
2003-01-30  Mark Mitchell  
6050
 
6051
        * class.c (check_field_decls): Only check C_TYPE_FIELDS_READONLY
6052
        for class types.
6053
        * cp-tree.h (C_TYPE_FIELDS_READONLY): Use a lang-specific bit
6054
        rather than TYPE_LANG_FLAG_0.
6055
        (TYPE_BUILT_IN): Remove.
6056
        (TYPE_DEPENDENT_P): New macro.
6057
        (TYPE_DEPENDENT_P_VALID): Likewise.
6058
        (lang_type_class): Add fields_readonly.
6059
        * decl.c (record_builtin_type): Don't set TYPE_BUILT_IN.
6060
        * pt.c (dependent_type_p_r): New function, split out from ...
6061
        (dependent_type_p): ... here.  Memoize results.
6062
        * search.c (dependent_base_p): Use dependent_type_p, not
6063
        uses_template_parms.
6064
        * typeck.c (build_modify_expr): Only check C_TYPE_FIELDS_READONLY
6065
        for class types.
6066
 
6067
2003-01-29  Mark Mitchell  
6068
 
6069
        * call.c (build_field_call): Use build_new_op, not build_opfncall.
6070
        (prep_operand): New function.
6071
        (build_new_op): Use it.  Remove dead code.
6072
        * class.c (pushclass): Change "modify" parameter type from int to
6073
        bool.
6074
        (currently_open_class): Use same_type_p, not pointer equality.
6075
        (push_nested_class): Adjust calls to pushclass, remove modify
6076
        parameter.
6077
        * cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro.
6078
        (pushclass): Change prototype.
6079
        (push_nested_class): Likewise.
6080
        (grokoptypename): Remove.
6081
        (build_opfncall): Remove.
6082
        (value_dependent_expression_p): Declare.
6083
        (resolve_typename_type): Likewise.
6084
        (resolve_typename_type_in_current_instantiation): Likewise.
6085
        (enter_scope_of): Remove.
6086
        (tsubst): Remove.
6087
        (tsubst_expr): Likewise.
6088
        (tsubst_copy): Likewise.
6089
        (tsubst_copy_and_build): Likewise.
6090
        * decl.c (warn_about_implicit_typename_lookup): Remove.
6091
        (finish_case_label): Return error_mark_node for erroneous labels.
6092
        (start_decl): Adjust calls to push_nested_class.
6093
        (grokfndecl): Call push_scope/pop_scope around call to
6094
        duplicate_decls.
6095
        (grokdeclarator): Do not call tsubst.
6096
        (start_function): Adjust calls to push_nested_class.
6097
        * decl2.c (grok_array_decl): Use build_new_op, not build_opfncall.
6098
        (check_classfn): Use push_scope/pop_scope around type comparisions.
6099
        (grokoptypename): Remove.
6100
        (push_sscope): Adjust call to push_nested_class.
6101
        * error.c (dump_type): Show cv-qualification of typename types.
6102
        * init.c (build_member_call): Use build_new_op, not
6103
        build_opfncall.
6104
        * method.c (build_opfncall): Remove.
6105
        * parser.c (cp_parser): Add allow_non_constant_expression_p and
6106
        non_constant_expression_p.
6107
        (cp_parser_constant_expression): Adjust prototype.
6108
        (cp_parser_resolve_typename_type): Remove.
6109
        (cp_parser_non_constant_expression): New function.
6110
        (cp_parser_non_constant_id_expression): Likewise.
6111
        (cp_parser_new): Set allow_non_constant_expression_p and
6112
        non_constant_expression_p.
6113
        (cp_parser_primary_expression): Reject `this' and `va_arg' in
6114
        constant-expressions.  Note that dependent names aren't really
6115
        constant.
6116
        (cp_parser_postfix_expression): Reject conversions to non-integral
6117
        types in constant-expressions.  Neither are increments or
6118
        decrements.
6119
        (cp_parser_unary_expression): Reject increments and decrements in
6120
        constant-expressions.
6121
        (cp_parser_direct_new_declarator): Adjust call to
6122
        cp_parser_constant_expression.
6123
        (cp_parser_cast_expression): Reject conversions to non-integral
6124
        types in constant-expressions.
6125
        (cp_parser_assignment_expression): Rejects assignments in
6126
        constant-expressions.
6127
        (cp_parser_expression): Reject commas in constant-expressions.
6128
        (cp_parser_labeled_statement): Adjust call to
6129
        cp_parser_constant_expression.
6130
        (cp_parser_direct_declarator): Simplify array bounds, even in
6131
        templates, when they are non-dependent.  Use
6132
        resolve_typename_type, not cp_parser_resolve_typename_type.
6133
        (cp_parser_class_head): Use resolve_typename_type, not
6134
        cp_parser_resolve_typename_type.
6135
        (cp_parser_member_declaration): Adjust call to
6136
        cp_parser_constant_expression.
6137
        (cp_parser_constant_initializer): Likewise.
6138
        (cp_parser_constructor_declarator): Use resolve_typename_type, not
6139
        cp_parser_resolve_typename_type.
6140
        (cp_parser_late_parsing_default_args): Adjust call to
6141
        push_nested_class.
6142
        * pt.c (tsubst): Give it internal linkage.
6143
        (tsubst_expr): Likewise.
6144
        (tsubst_copy): Likewise.
6145
        (tsubst_copy_and_build): Likewise.
6146
        (push_access_scope_real): Likewise.
6147
        (tsubst_friend_class): Likewise.
6148
        (instantiate_class_template): Adjust call to pushclass.
6149
        (value_dependent_expression_p): Give it external linkage.
6150
        Robustify.
6151
        (resolve_typename_type): New function.
6152
        * semantics.c (finish_call_expr): Use build_new_op, not
6153
        build_opfncall.
6154
        (begin_constructor_declarator): Remove.
6155
        (begin_class_definition): Adjust call to pushclass.
6156
        (enter_scope_of): Remove.
6157
        * typeck.c (comptypes): Resolve typename types as appropriate.
6158
        (build_x_indirect_ref): Use build_new_op, not build_opfncall.
6159
        (build_x_compound_expr): Likewise.
6160
        (build_modify_expr): Likewise.
6161
        (build_x_modify_expr): Likewise.
6162
        * typeck2.c (build_x_arrow): Likewise.
6163
 
6164
2003-01-29  Fariborz Jahanian  
6165
 
6166
        * pt.c (last_pending_template) Declare GTY().
6167
 
6168
2003-01-29  Kriang Lerdsuwanakij  
6169
 
6170
        PR c++/8591
6171
        * parser.c (cp_parser_elaborated_type_specifier): Convert
6172
        TEMPLATE_DECL to TYPE_DECL only when processing template friends.
6173
        (cp_parser_maybe_treat_template_as_class): Remove redundant tests.
6174
 
6175
2003-01-28  Nathan Sidwell  
6176
 
6177
        PR c++/9437
6178
        * pt.c (unify): Don't unify '*T' with 'U C::*'.
6179
 
6180
        PR c++/3902
6181
        * parser.c (cp_parser_decl_specifier_seq): Cannot have constructor
6182
        inside a declarator.
6183
 
6184
2003-01-27  Nathan Sidwell  
6185
 
6186
        * class.c (update_vtable_entry_for_fn): Add index parameter.
6187
        Generate vcall thunk for covariant overriding from a virtual
6188
        primary base.
6189
        (dfs_modify_vtables): Adjust.
6190
 
6191
2003-01-25  Nathan Sidwell  
6192
 
6193
        PR c++/9403
6194
        * parser.c (cp_parser_class_or_namespace_name): Reject duplicate
6195
        template keyword.
6196
        (cp_parser_base_specifier): Look for and consume a
6197
        TEMPLATE keyword. Replace switch with array index.
6198
 
6199
        PR c++/795
6200
        * semantics.c (finish_non_static_data_member): Remember the
6201
        field's type even in a template.
6202
 
6203
        PR c++/9415
6204
        * pt.c (tsubst_copy_and_build, CALL_EXPR): BASELINK exprs are
6205
        already scoped.
6206
 
6207
        PR c++/8545
6208
        * parser.c (cp_parser_cast_expression): Be more tentative.
6209
 
6210
2003-01-25  Kriang Lerdsuwanakij  
6211
 
6212
        * cp-tree.h (flagged_type_tree_s): Remove.
6213
        (check_for_new_type): Likewise.
6214
        * typeck2.c (check_for_new_type): Likewise.
6215
 
6216
2003-01-23  Nathanael Nerode  
6217
 
6218
        * dump.c: ANSIfy function declarations and definitions.
6219
 
6220
        * cp-tree.h, decl.h: Get rid of PARAMS.  Again.
6221
 
6222
2003-01-22  Mark Mitchell  
6223
 
6224
        PR c++/9354
6225
        * init.c (build_new): Set the type of the new-expression, even
6226
        when processing_templte_decl.
6227
 
6228
        PR c++/9216
6229
        * parser.c (cp_parser_primary_expression): Improve error message
6230
        for templates used in an expression context.
6231
 
6232
        PR c++/8696
6233
        * parser.c (cp_parser_decl_specifier_seq): Commit to tentative
6234
        parse when encountering "typedef".
6235
 
6236
2003-01-22  Nathanael Nerode  
6237
 
6238
        * class.c, parser.c: ANSIfy function definitions and declarations.
6239
 
6240
2003-01-22  Mark Mitchell  
6241
 
6242
        PR c++/9328
6243
        * error.c (dump_decl): For an OVERLOAD, just print the name of the
6244
        function; it doesn't make sense to try to print its type.
6245
        * semantics.c (finish_typeof): Issue errors about invalid uses.
6246
 
6247
        PR c++/9298
6248
        * parser.c (cp_parser_consume_semicolon_at_end_of_statement): New
6249
        function.
6250
        (cp_parser_expression_statement): Use it.
6251
        (cp_parser_explicit_instantiation): Likewise.
6252
        * pt.c (do_decl_instantiation): Improve error handling logic.
6253
 
6254
2003-01-22  Mark Mitchell  
6255
 
6256
        PR c++/9384
6257
        * parser.c (cp_parser_using_declaration): Issue error messages
6258
        about name resolution failures here.
6259
 
6260
        PR c++/9388
6261
        * class.c (currently_open_derived_class): Use dependent_type_p.
6262
        * cp-tree.h (dependent_type_p): New function.
6263
        (dependent_template_arg_p): Likewise.
6264
        (dependent_template_p): Likewise.
6265
        (type_dependent_expression_p): Likewise.
6266
        * parser.c (cp_parser_dependent_type_p): Remove.
6267
        (cp_parser_value_dependent_type_p): Likewise.
6268
        (cp_parser_type_dependent_expression_p): Likewise.
6269
        (cp_parser_dependent_template_arg_p): Likewise.
6270
        (cp_parser_dependent_template_id_p): Likewise.
6271
        (cp_parser_dependent_template_p): Likewise.
6272
        (cp_parser_diagnose_invalid_type_name): Replace
6273
        cp_parser_dependent_type_p with dependent_type_p, etc.
6274
        (cp_parser_primary_expresion): Likewise.
6275
        (cp_parser_nested_name_specifier_opt): Likewise.
6276
        (cp_parser_postfix_expression): Likewise.
6277
        (cp_parser_unary_expression): Likewise.
6278
        (cp_parser_template_name): Likewise.
6279
        (cp_parser_class_name): Likewise.
6280
        (cp_parser_lookup_name): Likewise.
6281
        * pt.c (dependent_type_p): New function.
6282
        (value_dependent_expression_p): Likewise.
6283
        (type_dependent_expression_p): Likewise.
6284
        (dependent_template_arg_p): Likewise.
6285
        (dependent_template_id_p): Likewise.
6286
        (dependent_template_p): Likewise.
6287
 
6288
        PR c++/9285
6289
        PR c++/9294
6290
        * parser.c (cp_parser_simple_declaration): Return quickly when
6291
        encountering errors.
6292
 
6293
2003-01-21  Kaveh R. Ghazi  
6294
 
6295
        Make-lang.in (cp/decl.o-warn): Add -Wno-error.
6296
 
6297
2003-01-17  Jason Merrill  
6298
 
6299
        PR c++/9167, c++/9358
6300
        * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.
6301
 
6302
2003-01-17  Jason Merrill  
6303
 
6304
        PR c++/9342
6305
        * call.c (build_conditional_expr): Always do lvalue-rvalue
6306
        conversion.
6307
 
6308
2003-01-17  Mark Mitchell  
6309
 
6310
        PR c++/9294
6311
        * cp-tree.def (BASELINK): Make it class 'x', not class 'e'.
6312
        * cp-tree.h (BASELINK_BINFO): Adjust.
6313
        (BASELINK_FUNCTIONS): Likewise.
6314
        (BASELINK_ACCESS_BINFO): Likewise.
6315
        (tree_baselink): New structure.
6316
        (cp_tree_node_structure_enum): Add TS_CP_BASELINK.
6317
        (lang_tree_node): Add baselink.
6318
        * decl.c (cp_tree_node_structure): Add BASELINK case.
6319
        * search.c (build_baselink): Adjust.
6320
        * tree.c (cp_walk_subtrees): Add BASELINK case.  Remove BASELINK_P
6321
        test from TREE_LIST case.
6322
 
6323
        PR c++/9272
6324
        * parser.c (cp_parser_constructor_declarator_p): Do not assume
6325
        that a constructor cannot be declared outside of its own class.
6326
 
6327
        * parser.c (cp_parser_resolve_typename_type): If the scope cannot
6328
        be resolved, neither can the qualified name.
6329
 
6330
        * rtti.c (get_pseudo_ti_desc): Fix thinko.
6331
 
6332
2003-01-16  Jason Merrill  
6333
 
6334
        PR c++/8564
6335
        * init.c (build_vec_init): Re-add maxindex parm.
6336
        (perform_member_init, build_aggr_init): Pass it.
6337
        (build_new_1): Pass it. Use an incomplete array type for full_type.
6338
        * typeck.c (build_modify_expr): Pass it.
6339
        * cp-tree.h: Adjust.
6340
 
6341
2003-01-16  Jeffrey D. Oldham  
6342
 
6343
        * cp-tree.h (tsubst_copy_and_build): New declaration.
6344
        * pt.c (tsubst_copy): Remove 'build_expr_from_tree' from comment.
6345
        (tsubst_expr): Use 'tsubst_copy_and_build'.  Update initial comment.
6346
        (tsubst_copy_and_build): New function.
6347
 
6348
2003-01-16  Mark Mitchell  
6349
 
6350
        * cp-tree.h (lang_type_class): Remove is_partial_instantiation.
6351
        (PARTIAL_INSTANTIATION_P): Remove.
6352
        (IMPLICIT_TYPENAME_P): Likewise.
6353
        (IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise.
6354
        (build_typename_type): Remove declaration.
6355
        (parmlist_is_exprlist): Likewise.
6356
        * decl.c (build_typename_type): Make it static, remove third
6357
        parameter.
6358
        (push_class_binding): Don't do implicit typename stuff.
6359
        (make_typename_type): Likewise.
6360
        (lookup_name_real): Likewise.
6361
        (grokdeclarator): Don't try to convert declarations into
6362
        initializations.  Don't do implicit typename stuff.
6363
        (parmlist_is_exprlist): Remove.
6364
        (xref_basetypes): Simplify.
6365
        * decl2.c (grokfield): Don't try to convert declarations into
6366
        initializations.
6367
        (build_anon_union_vars): Do this while processing templates, too.
6368
        (finish_anon_union): Likewise.
6369
        * error.c (dump_type): Remove implicit typename handling.
6370
        * parser.c (cp_parser_diagnose_invalid_type_name): New method.
6371
        (cp_parser_primary_expression): Correct handling of names not
6372
        found by unqualified name lookup in templates.
6373
        (cp_parser_nested_name_specifier_opt): Avoid checking dependency
6374
        of types when possible.
6375
        (cp_parser_simple_declaration): Complain intelligently about some
6376
        invalid declarations.
6377
        (cp_parser_member_declaration): Likewise.
6378
        (cp_parser_constructor_declarator_p): Don't check when we're in a
6379
        function scope.
6380
        * pt.c (instantiate_class_template): Remove
6381
        PARTIAL_INSTANTIATION_P gunk.
6382
        * search.c (lookup_field_r): Don't build implicit typenames.
6383
        (marked_pushdecls_p): Don't enter dependent base types.
6384
        (unmarked_pushdecls_p): Likewise.
6385
        * semantics.c (begin_class_definition): Remove implicit typename
6386
        stuff.
6387
 
6388
2003-01-16  Nathan Sidwell  
6389
 
6390
        PR c++/9212
6391
        * parser.c (cp_parser_direct_declarator): If accepting either
6392
        abstract or named, the name must be an unqualified-id.
6393
 
6394
2003-01-16  Kaveh R. Ghazi  
6395
 
6396
        * class.c (layout_virtual_bases): Avoid signed/unsigned warning.
6397
 
6398
2003-01-14  Kaveh R. Ghazi  
6399
 
6400
        * decl2.c (check_classfn): Fix uninitialized warning.
6401
        (build_anon_union_vars): Likewise.
6402
        * pt.c (tsubst_copy): Likewise.
6403
 
6404
2003-01-14  Jeffrey D. Oldham  
6405
 
6406
        Further conform g++'s __vmi_class_type_info to the C++ ABI
6407
        specification.
6408
        * rtti.c (dfs_class_hint_mark): Do not set hints not specified by
6409
        the specification.
6410
        (class_hint_flags): Likewise.
6411
 
6412
2003-01-14  Kriang Lerdsuwanakij  
6413
 
6414
        * config-lang.in: Add semantics.c to gtfiles.
6415
        * cp-tree.h (flagged_type_tree_s): Remove lookups field.
6416
        (saved_scope): Likewise.
6417
        (type_lookups): Remove.
6418
        (deferred_access): New structure.
6419
        (type_access_control): Remove.
6420
        (save_type_access_control): Likewise.
6421
        (reset_type_access_control): Likewise.
6422
        (decl_type_access_control): Likewise.
6423
        (push_deferring_access_checks): Declare.
6424
        (resume_deferring_access_checks): Likewise.
6425
        (stop_deferring_access_checks): Likewise.
6426
        (pop_deferring_access_checks): Likewise.
6427
        (get_deferred_access_checks): Likewise.
6428
        (pop_to_parent_deferring_access_checks): Likewise.
6429
        (perform_deferred_access_checks): Likewise.
6430
        (perform_or_defer_access_check): Likewise.
6431
        * decl.c (make_typename_type): Use perform_or_defer_access_check.
6432
        (make_unbound_class_template): Likewise.
6433
        (grokdeclarator): Don't call decl_type_access_control.
6434
        * parser.c (cp_parser_context): Remove deferred_access_checks
6435
        and deferring_access_checks_p fields.
6436
        (cp_parser_context_new): Adjust.
6437
        (cp_parser): Remove access_checks_lists.
6438
        (cp_parser_defer_access_check): Remove.
6439
        (cp_parser_start_deferring_access_checks): Remove.
6440
        (cp_parser_stop_deferring_access_checks): Remove.
6441
        (cp_parser_perform_deferred_access_checks): Remove.
6442
        (cp_parser_nested_name_specifier_opt): Use new deferred access
6443
        functions.
6444
        (cp_parser_simple_declaration): Likewise.
6445
        (cp_parser_template_id): Likewise.
6446
        (cp_parser_function_definition): Likewise.
6447
        (cp_parser_class_specifier): Likewise.
6448
        (cp_parser_lookup_name): Likewise.
6449
        (cp_parser_single_declaration): Likewise.
6450
        (cp_parser_pre_parsed_nested_name_specifier): Likewise.
6451
        (cp_parser_parse_tentatively): Likewise.
6452
        (cp_parser_parse_definitely): Likewise.
6453
        (yyparse): Likewise.
6454
        (cp_parser_init_declarator): Remove access_checks parameter.
6455
        Use new deferred access functions.
6456
        (cp_parser_function_definition_from_specifiers_and_declarator):
6457
        Likewise.
6458
        (cp_parser_class_head): Remove deferring_access_checks_p and
6459
        saved_access_checks parameters.  Use new deferred access functions.
6460
        (cp_parser_member_specification_opt): Don't call
6461
        reset_type_access_control.
6462
        * search.c (type_access_control): Remove.
6463
        * semantics.c: Include "gt-cp-semantics.h".
6464
        (deferred_type_access_control): Remove.
6465
        (deferred_access_stack): New variable.
6466
        (deferred_access_free_list): Likewise.
6467
        (push_deferring_access_checks): New function.
6468
        (resume_deferring_access_checks): Likewise.
6469
        (stop_deferring_access_checks): Likewise.
6470
        (pop_deferring_access_checks): Likewise.
6471
        (get_deferred_access_checks): Likewise.
6472
        (pop_to_parent_deferring_access_checks): Likewise.
6473
        (perform_deferred_access_checks): New function, adapted from
6474
        cp_parser_perform_deferred_access_checks.
6475
        (perform_or_defer_access_check): New function, adapted from
6476
        cp_parser_defer_access_check.
6477
        (current_type_lookups): Remove.
6478
        (deferred_type_access_control): Likewise.
6479
        (decl_type_access_control): Likewise.
6480
        (save_type_access_control): Likewise.
6481
        (reset_type_access_control): Likewise.
6482
        (begin_function_definition): Adjust.
6483
        (begin_class_definiton): Likewise.
6484
 
6485
2003-01-13  Jason Merrill  
6486
 
6487
        PR c++/8748
6488
        * class.c (build_base_path): Take the address before calling save_expr.
6489
 
6490
        * call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if
6491
        all the ambiguous conversions are bad.
6492
 
6493
        * class.c (maybe_warn_about_overly_private_class): Don't stop
6494
        searching when we find a nonprivate method.
6495
 
6496
        * typeck.c (build_class_member_access_expr): Use unary_complex_lvalue.
6497
 
6498
2003-01-12  Mark Mitchell  
6499
 
6500
        * cp-tree.h (get_arglist_len_in_bytes): Remove.
6501
 
6502
        PR c++/9264
6503
        * parser.c (cp_parser_elaborated_type_specifier): Handle erroneous
6504
        typeame types more robustly.
6505
 
6506
2003-01-11  Phil Edwards  
6507
 
6508
        * parser.c:  Fix comment typos.
6509
 
6510
2003-01-10  Mark Mitchell  
6511
 
6512
        PR c++/9099
6513
        * parser.c (cp_parser_scope_through_which_access_occurs): Handle
6514
        an object_type which is not a class type.
6515
 
6516
2003-01-10  Geoffrey Keating  
6517
 
6518
        * parser.c (cp_parser_late_parsing_for_member): Don't cast to void.
6519
        (cp_parser_late_parsing_default_args): Likewise.
6520
 
6521
2003-01-10  Nathanael Nerode  
6522
 
6523
        * cfns.gperf: ANSIfy function declarations.
6524
        * cfns.h: Regenerate.
6525
        * cp-tree.h: ANSIfy function declarations.
6526
 
6527
2003-01-10  Mark Mitchell  
6528
 
6529
        * cp-tree.h (reparse_absdcl_as_expr): Remove.
6530
        (reparse_absdcl_as_casts): Likewise.
6531
        (reparse_decl_as_expr): Likewise.
6532
        (finish_decl_parsing): Likewise.
6533
        * decl2.c (reparse_absdcl_as_expr): Remove.
6534
        (reparse_absdcl_as_casts): Likewise.
6535
        (repase_decl_as_expr): Likewise.
6536
        (finish_decl_parsing): Likewise.
6537
 
6538
        PR c++/9128
6539
        PR c++/9153
6540
        PR c++/9171
6541
        * parser.c (cp_parser_pre_parsed_nested_name_specifier): New
6542
        function.
6543
        (cp_parser_nested_name_specifier_opt): Correct the
6544
        check_dependency_p false.
6545
        (cp_parser_postfix_expression): Fix formatting.
6546
        (cp_parser_decl_specifier_seq): Avoid looking for constructor
6547
        declarators when possible.
6548
        (cp_parser_template_id): Avoid performing name-lookup when
6549
        possible.
6550
        (cp_parser_class_head): Do not count specializations when counting
6551
        levels of templates.
6552
        (cp_parser_constructor_declarator_p): Return immediately if
6553
        there's no chance that the tokens form a constructor declarator.
6554
        * rtti.c (throw_bad_typeid): Add comment.  Do not return an
6555
        expression with reference type.
6556
        (get_tinfo_decl_dynamic): Do not return an expression with
6557
        reference type.
6558
        (build_typeid): Add comment.  Do not return an expression with
6559
        reference type.
6560
        * typeck.c (build_class_member_access_expr): Improve handling of
6561
        conditionals and comma-expressions as objects.
6562
 
6563
2003-01-09  Nathanael Nerode  
6564
 
6565
        * cfns.gperf: ANSIfy function declarations.
6566
        * cfns.h: Regenerate.
6567
        * cp-tree.h: ANSIfy function declarations.
6568
        * parser.c: ANSIfy function declarations & definitions.
6569
 
6570
        * decl.c (bad_specifiers): Fix parameter order error I introduced.
6571
 
6572
2003-01-09  Geoffrey Keating  
6573
 
6574
        Merge from pch-branch:
6575
 
6576
        2003-01-09  Geoffrey Keating  
6577
 
6578
        Merge to tag pch-merge-20030102:
6579
 
6580
        * semantics.c (finish_translation_unit): Don't call finish_file.
6581
        * parser.c: Don't include ggc.h.
6582
        (cp_lexer_new_main): Rename from cp_lexer_new, only create main lexer,
6583
        read first token here.  Don't allow PCH files after the first
6584
        token is read.
6585
        (cp_lexer_new_from_tokens): Duplicate functionality from cp_lexer_new.
6586
        (cp_lexer_get_preprocessor_token): Allow LEXER to be NULL.
6587
        (cp_parser_new): Call cp_lexer_new_main before allocating GCed memory.
6588
        (cp_parser_late_parsing_for_member): Don't duplicate call to
6589
        cp_lexer_set_source_position_from_token.
6590
        (cp_parser_late_parsing_default_args): Likewise.
6591
        (yyparse): Call finish_file after clearing the_parser.
6592
 
6593
        2002-12-11  Geoffrey Keating  
6594
 
6595
        * Make-lang.in: Remove $(GGC_H) from all dependencies.
6596
        (CXX_TREE_H): Add $(GGC_H).
6597
        * class.c: Don't include ggc.h.
6598
        (field_decl_cmp): Make parameters be 'const void *' to match qsort.
6599
        (method_name_cmp): Likewise.
6600
        (resort_data): New variable.
6601
        (resort_field_decl_cmp): New.
6602
        (resort_method_name_cmp): New.
6603
        (resort_sorted_fields): New.
6604
        (resort_type_method_vec): New.
6605
        (finish_struct_methods): Delete cast.
6606
        (finish_struct_1): Delete cast.
6607
        * cp-tree.h: Include ggc.h.
6608
        (struct lang_type_class): Add reorder attribute to field `methods'.
6609
        (union lang_decl_u3): Add reorder attribute to field `sorted_fields'.
6610
        (resort_sorted_fields): New prototype.
6611
        (resort_type_method_vec): New prototype.
6612
        * call.c: Don't include ggc.h.
6613
        * decl.c: Likewise.
6614
        * decl2.c: Likewise.
6615
        * init.c: Likewise.
6616
        * lex.c: Likewise.
6617
        * method.c: Likewise.
6618
        * optimize.c: Likewise.
6619
        * parse.y: Likewise.
6620
        * pt.c: Likewise.
6621
        * repo.c: Likewise.
6622
        * search.c: Likewise.
6623
        * semantics.c: Likewise.
6624
        * spew.c: Likewise.
6625
        * tree.c: Likewise.
6626
 
6627
        * lang-specs.h: Remove comment.
6628
 
6629
        2002-12-03  Geoffrey Keating  
6630
 
6631
        * cp-tree.h (struct operator_name_info_t): Mark for GTY machinery.
6632
        (operator_name_info): Mark to be saved for PCH, specify size.
6633
        (assignment_operator_name_info): Likewise.
6634
 
6635
        2002-11-19  Geoffrey Keating  
6636
 
6637
        * decl.c (anon_cnt): Mark to be saved for PCH.
6638
 
6639
        2002-10-25  Geoffrey Keating  
6640
 
6641
        * lex.c  (init_reswords): Delete now-untrue comment.
6642
        Allocate ridpointers using GGC.
6643
 
6644
        2002-10-04  Geoffrey Keating  
6645
 
6646
        * cp-tree.h (union lang_decl_u2): Add tags to all fields.
6647
 
6648
        * g++spec.c (lang_specific_driver): Don't include standard
6649
        libraries in `added'.
6650
 
6651
        2002-08-27  Geoffrey Keating  
6652
 
6653
        * decl2.c (finish_file): Call c_common_write_pch.
6654
        * Make-lang.in (CXX_C_OBJS): Add c-pch.o.
6655
 
6656
        2002-08-17  Geoffrey Keating  
6657
 
6658
        * g++spec.c (lang_specific_driver): Treat .h files as C++ header
6659
        files when using g++.
6660
        * lang-specs.h: Handle compiling C++ header files.
6661
 
6662
2003-01-09  Jakub Jelinek  
6663
 
6664
        * decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.
6665
 
6666
2003-01-09  Kriang Lerdsuwanakij  
6667
 
6668
        * pt.c (push_access_scope_real): Call push_to_top_level for
6669
        function in namespace scope.
6670
        (pop_access_scope): Call pop_from_top_level for function in
6671
        namespace scope.
6672
 
6673
2003-01-09  Jakub Jelinek  
6674
 
6675
        * decl.c (start_decl): Don't set DECL_COMMON for __thread variables.
6676
 
6677
2003-01-09  Christian Cornelssen  
6678
 
6679
        * Make-lang.in (c++.install-common, c++.install-man,
6680
        c++.uninstall): Prepend $(DESTDIR) to destination paths in
6681
        all (un)installation commands.
6682
        (c++.install-common): Rewrite $(LN) commands to support
6683
        DESTDIR with "ln" as well as with "ln -s".
6684
 
6685
2003-01-08  Jason Merrill  
6686
 
6687
        * parser.c (cp_parser_primary_expression): See through explicitly
6688
        scoped ALIAS_DECLs, too.
6689
 
6690
2003-01-08  Nathanael Nerode  
6691
 
6692
        * decl.c: Remove some #if 0 code.
6693
 
6694
        * decl.c: ANSIfy function declarations.
6695
 
6696
2003-01-07  Mark Mitchell  
6697
 
6698
        * parser.c (cp_parser_asm_definition): Correct handling of omitted
6699
        operands.
6700
 
6701
2003-01-08  Kriang Lerdsuwanakij  
6702
 
6703
        PR c++/9030
6704
        * decl.c (make_typename_type): Check access only when tf_error.
6705
        (make_unbound_class_template): Likewise.
6706
        * pt.c (saved_access_scope): New variable.
6707
        (push_access_scope_real): New function.
6708
        (push_access_scope): Likewise.
6709
        (pop_access_scope): Likewise.
6710
        (tsubst_default_argument): Use them.
6711
        (instantiate_template): Likewise.
6712
        (regenerate_decl_from_template): Likewise.
6713
        (instantiate_decl): Likewise.
6714
        (get_mostly_instantiated_function_type): Likewise.
6715
 
6716
2003-01-07  Nathanael Nerode 
6717
 
6718
        * tree.c: Delete bogus #if 0 code.
6719
 
6720
2003-01-07  Andreas Schwab  
6721
 
6722
        * class.c (layout_class_type): Don't use
6723
        PCC_BITFIELD_TYPE_MATTERS if not defined.
6724
 
6725
2003-01-06  Mark Mitchell  
6726
 
6727
        PR c++/9165
6728
        * decl2.c (build_cleanup): Mark the object as used.
6729
 
6730
        * pt.c (retrieve_local_specialization): Revert 2003-01-05 change.
6731
        (hash_local_specialization): New function.
6732
        (register_local_specialization): Revert 2003-01-05 change.
6733
        (instantiate_decl): Use hash_local_specialization when creating
6734
        the local_specializations table.
6735
 
6736
        * decl2.c (mark_used): Do not synthesize thunks.
6737
 
6738
        * class.c (layout_class_type): Correct handling of unnamed
6739
        bitfields wider than their types.
6740
 
6741
        PR c++/9189
6742
        * parser.c (cp_parser): Remove default_arg_types.  Update
6743
        documentation for unparsed_functions_queues.
6744
        (cp_parser_late_parsing_default_args): Take a FUNCTION_DECL as the
6745
        parameter.
6746
        (cp_parser_new): Don't set parser->default_arg_types.
6747
        (cp_parser_function_definition): Adjust usage of
6748
        unparsed_funtions_queues.
6749
        (cp_parser_class_specifier): Don't mess with
6750
        parser->default_arg_types.  Handle default argument processing in
6751
        a separate phase from function body processing.
6752
        (cp_parser_template_declaration_after_export): Adjust usage of
6753
        unparsed_functions_queues.
6754
        (cp_parser_late_parsing_for_member): Do not handle default
6755
        arguments.
6756
 
6757
2003-01-06  Nathan Sidwell  
6758
 
6759
        PR c++/9109
6760
        * parser.c (cp_parser_declarator_kind): New enum.
6761
        (cp_parser_declarator): Adjust.
6762
        (cp_parser_direct_declarator): Adjust. Allow for either named or
6763
        abstract declarator. Prefer abstract, if possible. Allow
6764
        parenthesized function name.
6765
        (cp_parser_condition): Adjust cp_parser_declarator call.
6766
        (cp_parser_explicit_instantiation): Likewise.
6767
        (cp_parser_init_declarator): Likewise.
6768
        (cp_parser_type_id): Likewise.
6769
        (cp_parser_function_definition): Likewise.
6770
        (cp_parser_member_declaration): Likewise.
6771
        (cp_parser_parameter_declaration): Use cp_parser_declarator to do
6772
        the tentative parsing.
6773
        (cp_parser_exception_declaration): Likewise.
6774
 
6775
2003-01-05  Mark Mitchell  
6776
 
6777
        * parser.c (cp_parser_template_parameter): Adjust call to
6778
        cp_parser_parameter_declaration.
6779
        (cp_parser_parameter_declaration_list): Likewise.
6780
        (cp_parser_parameter_declaration): Replace
6781
        greater_than_is_operator_p with template_parm_p parameter.  Do not
6782
        cache tokens for template default arguments.
6783
 
6784
        * pt.c (retrieve_local_specialization): Use htab_find, not
6785
        htab_find_with_hash.
6786
        (register_local_specialization): Use htab_find_slot, not
6787
        htab_find_slot_with_hash.
6788
        (instantiate_decl): Pass a hash function to htab_create.
6789
 
6790
2003-01-04  Kaveh R. Ghazi  
6791
 
6792
        * parser.c (cp_parser_binary_expression,
6793
        cp_parser_multiplicative_expression,
6794
        cp_parser_additive_expression, cp_parser_shift_expression,
6795
        cp_parser_relational_expression, cp_parser_equality_expression,
6796
        cp_parser_and_expression, cp_parser_exclusive_or_expression,
6797
        cp_parser_inclusive_or_expression,
6798
        cp_parser_logical_and_expression, cp_parser_logical_or_expression,
6799
        cp_parser_binary_expression): Const-ify.
6800
 
6801
2003-01-04  Mark Mitchell  
6802
 
6803
        * method.c (use_thunk): Disable access control while building the
6804
        body of the thunk.
6805
 
6806
2003-01-03  Nathanael Nerode  
6807
 
6808
        * cvt.c, decl.c, decl2.c: This is the C++ front end, not the C
6809
        front end.
6810
 
6811
2003-01-03  Matt Austern  
6812
 
6813
        * cp-tree.h (struct lang_type_class): add field for key method
6814
        (cp_global_trees): rename dynamic_classes to keyed_classes
6815
        (key_method): add definition
6816
        * class.c (finish_struct_1): compute class's key method, and add
6817
        the class to keyed_classes list if there is no key method.
6818
        * decl.c (finish_function): add class to keyed_classes list if we
6819
        see a definition of the class's key method.
6820
        * pt.c (instantiate_class_template): add template specialization
6821
        of a dynamic class to keyed_classes list.
6822
        * decl2.c (key_method): remove
6823
        (finish_file): iterate only through keyed_classes list when
6824
        deciding whether to emit vtables, remove class from its list after
6825
        we do the emission.
6826
 
6827
2003-01-02  Jason Merrill  
6828
 
6829
        * call.c (build_conditional_expr): Stabilize lvalues properly.
6830
        * cvt.c (ocp_convert): Don't build NOP_EXPRs of class type.
6831
        * tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues.
6832
        Don't allow CALL_EXPR or VA_ARG_EXPR, either.
6833
 
6834
        * call.c (convert_like_real): Call decl_constant_value for an
6835
        IDENTITY_CONV even if there are no more conversions.
6836
 
6837
        * cvt.c (build_up_reference): Don't push unnamed temps.
6838
 
6839
        * decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL.
6840
 
6841
        * dump.c (cp_dump_tree): Don't try to dump class-specific fields
6842
        for a backend struct.
6843
 
6844
        * except.c (wrap_cleanups_r, build_throw): Make
6845
        MUST_NOT_THROW_EXPRs void.
6846
        * init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR.
6847
 
6848
        * init.c (build_vec_delete_1): Pre-evaluate the base address.
6849
 
6850
        * init.c (get_temp_regvar): Simplify logic.
6851
 
6852
        * tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks if
6853
        our replacement is a decl.
6854
 
6855
        * decl.c (cp_make_fname_decl): Push the decls inside the
6856
        outermost scope.
6857
 
6858
2003-01-03  Nathan Sidwell  
6859
 
6860
        PR c++/45, c++/3784
6861
        * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
6862
        the same too.
6863
 
6864
2003-01-03  Graham Stott  
6865
 
6866
        * parser.c (struct cp_parser): Add access_checks_lists field
6867
        (cp_parser_simple_declaration): Use.
6868
        (cp_parser_init_declarator): Likewise.
6869
 
6870
2003-01-02  Mark Mitchell  
6871
 
6872
        * parser.c (cp_parser_declaration): Accept the __extension__
6873
        keyword before the declaration.
6874
 
6875
        PR c++/2843
6876
        * parser.c (cp_parser_parameter_declaration): Allow attributes to
6877
        appear after the declarator.
6878
 
6879
        * call.c (build_new_method_call): Fix typo in message format
6880
        string.
6881
 
6882
2003-01-02  Mark Mitchell  
6883
 
6884
        * parser.c (cp_lexer_next_token_is): Declare it inline.
6885
        (cp_lexer_set_source_position_from_token): Likewise.
6886
        (cp_lexer_debugging_p): Likewise.
6887
        (cp_parser_parsing_tentatively): Likewise.
6888
        (cp_parser_nested_name_specifier_opt): Reduce the number of calls
6889
        to the cp_lexer_peek_token.
6890
 
6891
        * parser.c (cp_parser_sizeof_operand): Do not evaluate the
6892
        expression.
6893
 
6894
2003-01-02  Steven Bosscher 
6895
 
6896
        * cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c,
6897
        cp/lang-options.h, cp/lang-specs.h, cp/lex.h, cp/ptree.c,
6898
        cp/repo.c: Fix copyright years.
6899
 
6900
2003-01-01  Neil Booth  
6901
 
6902
        * lex.c: Remove superfluous include of cpplib.h.
6903
        (CONSTRAINT): Define without conditions.
6904
        (init_cp_pragma): Use c_register_pragma.
6905
 
6906
 
6907
 
6908
Copyright (C) 2003 Free Software Foundation, Inc.
6909
 
6910
Copying and distribution of this file, with or without modification,
6911
are permitted in any medium without royalty provided the copyright
6912
notice and this notice are preserved.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.