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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [cp/] [ChangeLog-2005] - Blame information for rev 710

Details | Compare with Previous | View Log

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