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

Subversion Repositories openrisc_me

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 283 jeremybenn
2006-12-31  Simon Martin  
2
 
3
        PR c++/29731
4
        * parser.c (cp_parser_primary_expression): Return error_mark_node when
5
        a statement-expression is found outside of a function body.
6
 
7
2006-12-28  Kazu Hirata  
8
 
9
        * cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
10
        Remove.
11
 
12
        * decl2.c: Fix a comment typo.
13
 
14
2006-12-21  Andrew Pinski  
15
 
16
        PR C++/30225
17
        * decl.c (cxx_builtin_function): Only copy the decl if adding
18
        it to the std namespace.
19
 
20
2006-12-21  Andrew Pinski  
21
 
22
        PR C++/30168
23
        * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
24
 
25
2006-12-22  Kazu Hirata  
26
 
27
        * decl.c: Fix a coment typo.
28
 
29
2006-12-18  Ian Lance Taylor  
30
 
31
        * decl.c (start_preparsed_function): Add support for
32
        -Wmissing-declarations.
33
 
34
2006-12-16  Simon Martin  
35
 
36
        PR c++/29475
37
        * cp-tree.h (struct deferred_access_check): New structure to represent a
38
        deferred access check. It replaces the previous representation as a tree.
39
        (get_deferred_access_checks): Return a vector of struct
40
        deferred_access_check instead of a tree list.
41
        (perform_access_checks): Take a vector of struct deferred_access_check
42
        instead of a tree list.
43
        * semantics.c (struct deferred_access): Store the deferred access checks
44
        as a vector of struct deferred_access_check instead of a tree list.
45
        (push_deferring_access_checks): Handle the change in struct
46
        deferred_access.
47
        (get_deferred_access_checks): Likewise.
48
        (pop_to_parent_deferring_access_checks): Likewise.
49
        (perform_or_defer_access_check): Likewise.
50
        (perform_access_checks): Take a vector of struct deferred_access_check
51
        instead of a tree list.
52
        * parser.c (struct tree_check): New structure to store various data
53
        associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
54
        (struct cp_token): Changed the value field to be a union with a pointer to
55
        a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
56
        tokens and a tree field for all other tokens.
57
        (eof_token): Adjusted due to the change in struct cp_token.
58
        (cp_lexer_get_preprocessor_token): Likewise.
59
        (cp_lexer_purge_token): Likewise.
60
        (cp_lexer_purge_tokens_after): Likewise.
61
        (cp_lexer_print_token): Likewise.
62
        (cp_parser_error): Likewise.
63
        (cp_parser_identifier): Likewise.
64
        (cp_parser_string_literal): Likewise.
65
        (cp_parser_primary_expression): Likewise.
66
        (cp_parser_unqualified_id): Likewise.
67
        (cp_parser_parenthesized_expression_list): Likewise.
68
        (cp_parser_storage_class_specifier_opt): Likewise.
69
        (cp_parser_function_specifier_opt): Likewise.
70
        (cp_parser_type_specifier): Likewise.
71
        (cp_parser_simple_type_specifier): Likewise.
72
        (cp_parser_initializer_list): Likewise.
73
        (cp_parser_member_specification_opt): Likewise.
74
        (cp_parser_attribute_list): Likewise.
75
        (cp_parser_objc_expression): Likewise.
76
        (cp_parser_objc_protocol_qualifiers): Likewise.
77
        (cp_parser_objc_selector): Likewise.
78
        (cp_parser_objc_declaration): Likewise.
79
        (cp_parser_objc_statement): Likewise.
80
        (cp_parser_omp_clause_name): Likewise.
81
        (cp_parser_omp_clause_default): Likewise.
82
        (cp_parser_omp_clause_schedule): Likewise.
83
        (cp_parser_omp_parallel): Likewise.
84
        (cp_parser_initial_pragma): Likewise.
85
        (pragma_lex): Likewise.
86
        (cp_parser_pre_parsed_nested_name_specifier): Likewise.
87
        (cp_parser_nested_name_specifier_opt): Likewise.
88
        Use cp_token::u::tree_check_value to save the token's value, the
89
        associated deferred checks and its qualifying scope.
90
        (cp_parser_template_id): Likewise.
91
        (cp_parser_template_declaration_after_export): Adjusted the call to
92
        get_deferred_access_checks.
93
        (cp_parser_init_declarator): Take the access checks as a vector of struct
94
        deferred_access_check instead of a tree list.
95
        (cp_parser_single_declaration): Likewise.
96
        (cp_parser_perform_template_parameter_access_checks): Likewise.
97
        (cp_parser_simple_declaration): Adjusted the call to
98
        cp_parser_init_declarator.
99
        (cp_parser_explicit_specialization): Adjusted the call to
100
        cp_parser_single_declaration.
101
 
102
2006-12-13  Ian Lance Taylor  
103
 
104
        PR c++/19564
105
        PR c++/19756
106
        * parser.c (cp_parser_expression_stack_entry): Add field
107
        lhs_type.
108
        (cp_parser_binary_expression): Track tree code of left hand side
109
        of expression.  Use it when calling build_x_binary_op.
110
        (cp_parser_selection_statement): Add if_p parameter.  Change all
111
        callers.  Warn about ambiguous else.
112
        (cp_parser_statement): Add if_p parameter.  Change all callers.
113
        (cp_parser_implicitly_scoped_statement): Likewise.
114
        * typeck.c (build_x_binary_op): Add parameters arg1_code and
115
        arg2_code.  Change all callers.  Call warn_about_parentheses.
116
        * cp-tree.h (build_x_binary_op): Update declaration.
117
 
118
2006-12-12  Manuel Lopez-Ibanez  
119
 
120
        * decl.c (build_enumerator): Update error message to match C
121
        front-end.
122
 
123
2006-12-11  Jan Hubicka  
124
 
125
        * decl2.c (var_finalized_p): Update for renamed varpool functions.
126
 
127
2006-12-09  Zack Weinberg  
128
 
129
        * parser.c (yydebug, enum pragma_omp_clause): Delete.
130
 
131
2006-12-07  Mark Mitchell  
132
 
133
        PR c++/29732
134
        * cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
135
        (explicit_class_specialization_p): Declare.
136
        * pt.c (explicit_class_specialization_p): New function.
137
        * parser.c (cp_parser_init_declarator): Check correct number of
138
        template parameters for in-class function definitions.
139
        (cp_parser_check_declrator_template_parameters): Stop looking for
140
        template classes when we find an explicit specialization.
141
 
142
2006-12-07  Lee Millward  
143
 
144
        PR c++/29980
145
        * cp_parser_elaborated_type_specifier: Check
146
        the return value of check_elaborated_type_specifier.
147
 
148
2006-12-06  Mark Mitchell  
149
 
150
        PR c++/29730
151
        * parser.c (cp_parser_init_declarator): Reject initialization of
152
        functions.
153
 
154
2006-12-05  Mark Mitchell  
155
 
156
        PR c++/29729
157
        * decl2.c (check_member_template): Move check for member
158
        templates in local classes to ...
159
        * parser.c (cp_parser_template_declaration_after_export):
160
        ... here.
161
 
162
        PR c++/29728
163
        * decl.c (check_array_designated_initializer): New function.
164
        (maybe_deduce_size_from_array_init): Use it.
165
        (reshape_init_array): Likewise.
166
 
167
2006-12-05  Aldy Hernandez  
168
 
169
        Merge from gimple-tuples-branch.
170
 
171
        2006-10-05  Aldy Hernandez  
172
 
173
        * cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
174
        (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
175
        (cxx_omp_clause_copy_ctor): Same.
176
        (cxx_omp_clause_assign_op): Same.
177
 
178
        2006-09-28  Aldy Hernandez  
179
 
180
        * cp-tree.h (union lang_tree_node): Gimple statements do not
181
        have a TREE_CHAIN.
182
        (TREE_INDIRECT_USING): Look in base.
183
 
184
2006-12-04  Jan Hubicka  
185
 
186
        * cp-objcp-common.c (cp_expr_size): Return NULL in the case
187
        size is undefined.
188
 
189
2006-12-04  Mark Mitchell  
190
 
191
        PR c++/29733
192
        * pt.c (tsubst_decl): Disallow variables of function type.
193
 
194
        PR c++/29632
195
        * call.c (add_builtin_candidate): Do not permit NULL pointer
196
        constants to be compared with template parameters.
197
 
198
2006-12-04  Eric Botcazou  
199
 
200
        * pt.c (for_each_template_parm_r) : New case.
201
        Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
202
 
203
2006-12-03  Richard Henderson  
204
            Andrew Pinski  
205
 
206
        PR C++/14329
207
        * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
208
 
209
2006-12-02  Andrew Pinski  
210
 
211
        PR C++/30033
212
        * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
213
 
214
2006-12-02  Kazu Hirata  
215
 
216
        * name-lookup.c: Follow spelling conventions.
217
 
218
2006-12-01  Geoffrey Keating  
219
 
220
        * decl.c (poplevel): Check DECL_INITIAL invariant.
221
        (duplicate_decls): Preserve DECL_INITIAL when eliminating
222
        a new definition in favour of an old declaration.
223
        (start_preparsed_function): Define and document value of
224
        DECL_INITIAL before and after routine.
225
        (finish_function): Check DECL_INITIAL invariant.
226
        * parser.c
227
        (cp_parser_function_definition_from_specifiers_and_declarator):
228
        Skip duplicate function definitions.
229
 
230
2006-12-01  Volker Reichelt  
231
 
232
        PR c++/30022
233
        * typeck.c (type_after_usual_arithmetic_conversions):
234
        Fix assertion for vector types.
235
        (build_binary_op): Use temporary for inner type of vector types.
236
 
237
2006-12-01  Ryan Mansfield  
238
 
239
        PR c++/29066
240
        * typeck.c (build_binary_op):  Fix pointer to member function
241
        comparison for ptrmemfunc_vbit_in_delta targets.
242
 
243
2006-12-01  Dirk Mueller  
244
 
245
        PR c++/18313
246
        * decl.c (grokdeclarator): Warn for type qualifiers on return
247
        type for non-dependent types.
248
        * pt.c (tsubst_function_type): Warn for type qualifiers on
249
        return type for dependent types.
250
 
251
2006-11-30  Geoffrey Keating  
252
 
253
        * rtti.c (get_tinfo_decl): Handle return value from
254
        pushdecl_top_level_and_finish.
255
 
256
2006-11-29  Lee Millward  
257
 
258
        PR c++/29022
259
        * parser.c (cp_parser_class_head): Move processing
260
        of any base classes to...
261
        (cp_parser_class_specifier) ...here. Take an extra
262
        tree* parameter for any base classes. Only process
263
        them if the opening brace was found.
264
 
265
2006-11-28  Jakub Jelinek  
266
 
267
        PR c++/29735
268
        * decl.c (grokfndecl): Check main's type after applying
269
        attributes, not before.
270
 
271
2006-11-27  Mark Mitchell  
272
 
273
        * class.c (build_vcall_offset_vtbl_entries): Do not add vcall
274
        entries for a primary construction virtual table.
275
 
276
2006-11-26  Mark Mitchell  
277
 
278
        PR c++/29886
279
        * parser.c (cp_parser): Add in_function_body.
280
        (cp_parser_new): Initialize it.
281
        (cp_parser_primary_expression): Use parser->in_function_body
282
        instead of at_function_scope_p.
283
        (cp_parser_asm_definition): Likewise.
284
        (cp_parser_direct_declarator): Likewise.
285
        (cp_parser_class_specifier): Clear parser->in_function_body.
286
        (cp_parser_constructor_declarator_p): Use parser->in_function_body
287
        instead of at_function_scope_p.
288
        (cp_parser_function_body_after_declarator): Set
289
        parser->in_function_body.
290
 
291
2006-11-21      Douglas Gregor 
292
 
293
        * cp-tree.def (STATIC_ASSERT): New.
294
        * cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
295
        * error.c (dump_decl): Handle STATIC_ASSERT.
296
        * cp-tree.h (STATIC_ASSERT_CONDITION): New.
297
        (STATIC_ASSERT_MESSAGE): New.
298
        (STATIC_ASSERT_SOURCE_LOCATION): New.
299
        (struct tree_static_assert): New.
300
        (enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
301
        (union lang_tree_node): Add static_assertion.
302
        (finish_static_assert): Declare.
303
        * cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
304
        (pp_cxx_declaration): Handle STATIC_ASSERT.
305
        * pt.c (instantiate_class_template): Handle
306
        STATIC_ASSERT members.
307
        (tsubst_expr): Handle STATIC_ASSERT statements.
308
        * semantics.c (finish_static_assert): New.
309
        * lex.c (D_CPP0X): New.
310
        (reswords): Add static_assert keyword.
311
        (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
312
        * parser.c (cp_parser_block_declaration): Parse static
313
        assertions.
314
        (cp_parser_static_assert): New.
315
        (cp_parser_member_declaration): Parse static assertions.
316
 
317
2006-11-21  Jakub Jelinek  
318
 
319
        PR c++/29570
320
        * decl.c (cp_finish_decl): Check for value dependent brace enclosed
321
        scalar initializer.
322
 
323
        PR c++/29734
324
        * cp-tree.h (WANT_VECTOR): Define.
325
        (WANT_ARITH): Add WANT_VECTOR.
326
        * cvt.c (build_expr_type_conversion): Handle vector types.
327
        * typeck.c (build_unary_op): Add WANT_VECTOR to
328
        build_expr_type_conversion flags.
329
 
330
2006-11-20  Simon Martin  
331
 
332
        PR c++/29475
333
        * cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
334
        extra argument that represents the declaration to use to print
335
        potential error messages.
336
        * init.c (build_offset_ref): Adjusted the call to
337
        perform_or_defer_access_check.
338
        * class.c (alter_access, resolve_address_of_overloaded_function):
339
        Likewise.
340
        * decl.c (make_typename_type, make_unbound_class_template): Likewise.
341
        * search.c (lookup_member): Likewise.
342
        * friend.c (add_friend): Likewise.
343
        * parser.c (cp_parser_template_id,
344
        cp_parser_pre_parsed_nested_name_specifier): Likewise.
345
        * semantics.c (finish_non_static_data_member,
346
        check_accessibility_of_qualified_id, finish_id_expression): Likewise.
347
        (pop_to_parent_deferring_access_checks, perform_access_checks,
348
        perform_or_defer_access_check): Adjusted the call to enforce_access.
349
        * call.c (enforce_access): Use the new extra argument to build the
350
        error message.
351
        (build_op_delete_call): Adjusted the call to
352
        perform_or_defer_access_check.
353
        (build_over_call): Likewise.
354
 
355
2006-11-16  Dirk Mueller  
356
 
357
        * name-lookup.c (begin_scope): Use GGC_CNEW instead of
358
        GGC_NEW and memset.
359
 
360
2006-11-13  Roger Sayle  
361
 
362
        * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
363
        base type info initializer has the correct type.
364
 
365
2006-11-13  Mark Mitchell  
366
 
367
        PR c++/29518
368
        * pt.c (coerce_template_parms): Do not skip_evaluation while
369
        substituting template arguments.
370
 
371
2006-11-11  Richard Guenther  
372
 
373
        * typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
374
        FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
375
 
376
2006-11-03  Roger Sayle  
377
 
378
        * call.c (build_op_delete_call): Test user-visible type against
379
        size_type_node, instead of against the internal type, sizetype.
380
        * class.c (type_requires_array_cookie): Likewise.
381
        * mangle.c (write_builtin_type) : Remove special
382
        handling of TYPE_IS_SIZETYPE.
383
        * typeck.c (type_after_usual_arithmetic_conversions): Remove
384
        special case handling of TYPE_IS_SIZETYPE.
385
        (comptypes): Likewise.
386
 
387
2006-11-01  Danny Smith  
388
 
389
        * decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
390
        if targetm.cxx.use_atexit_for cxa_atexit.
391
        (start_cleanup_fn): Likewise.
392
        (register_dtor_fn): Likewise.
393
 
394
2006-09-25  Geoffrey Keating  
395
 
396
        * decl2.c (cp_write_global_declarations): Rename from
397
        cp_finish_file.
398
        * cp-lang.c (finish_file): Don't call cp_finish_file.
399
        * cp-tree.h (cp_write_global_declarations): Rename from
400
        cp_finish_file.
401
        * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
402
        cp_write_global_declarations.
403
 
404
2006-10-31  Geoffrey Keating  
405
 
406
        * name-lookup.c (get_anonymous_namespace_name): New.
407
        (push_namespace_with_attribs): Use get_anonymous_namespace_name.
408
        * decl2.c (start_objects): Update for rename of
409
        get_file_function_name_long.
410
 
411
2006-10-30  Dirk Mueller  
412
 
413
        PR c++/28704
414
        * decl.c (grokdeclarator): Duplicate diagnostic message
415
        for easier translation.
416
        * decl.c (grokdeclarator): Fix line-wrapping.
417
 
418
2006-10-30  Dirk Mueller  
419
 
420
        PR c++/6321
421
        * decl.c (grokfndecl): Use check_main_parameter_types.
422
 
423
2006-10-30  Dirk Mueller  
424
 
425
        PR c++/28669
426
        * decl.c (grokfndecl): Duplicate warning message for
427
        easier translation.
428
 
429
2006-10-30  Dirk Mueller  
430
 
431
        * typeck.c (build_unary_op): Fix indenting. Use G_().
432
 
433
2006-10-29  Dirk Mueller  
434
 
435
        PR c++/29089
436
        * typeck.c (build_unary_op): Duplicate warning message
437
        for easier translation.
438
 
439
2006-10-29  Dirk Mueller  
440
 
441
        PR c++/16307
442
        * typeck.c (build_array_ref): Warn for char subscriptions
443
        on pointers.
444
 
445
2006-10-29  Kazu Hirata  
446
 
447
        * decl.c: Fix a comment typo.
448
 
449
2006-10-28  Andrew Pinski  
450
 
451
        PR C++/29295
452
        * typeck.c (build_unary_op): Use same_type_p when comparing to
453
        boolean type.
454
 
455
2006-10-29  Dirk Mueller  
456
 
457
        PR c++/29033
458
        * typeck.c (build_binary_op): Duplicate warning message
459
        for better translation.
460
 
461
2006-10-23  Rafael Ávila de Espíndola  
462
 
463
        * decl.c (builtin_function_1): Move common code to
464
        add_builtin_function.
465
        (builtin_function): Rename to cxx_builtin_function.
466
        Change the signature.
467
        * call.c: Include langhooks.h.
468
        (build_java_interface_fn_ref):  Replace calls to
469
        builtin_function with add_builtin_function.
470
        * Make-lang.in (cp/call.o): Depend on langhooks.h.
471
        * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
472
        cxx_builtin_function.
473
        * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
474
        Change the signature.
475
 
476
2006-10-22  Nathan Sidwell  
477
 
478
        PR c++/20647
479
        * rtti.c (tinfo_base_init): The type info string is always global.
480
 
481
2006-10-20  Lee Millward  
482
            Mark Mitchell 
483
 
484
        PR c++/28053
485
        * decl2.c (grokbitfield): Detect invalid non-integral
486
        types earlier when possible.
487
 
488
2006-10-18  Mark Shinwell  
489
 
490
        PR c++/26884
491
        * typeck2.c (digest_init): Raise error upon attempts to
492
        initialize arrays with variables.
493
 
494
2006-10-17  Lee Millward  
495
 
496
        PR c++/27952
497
        * cp-tree.h (xref_basetypes): Return bool instead of void.
498
        * decl.c (xref_basetypes): Adjust definition. Return false
499
        if the class bases are invalid.
500
        * parser.c (cp_parser_class_head): Check the return value
501
        from xref_basetypes.
502
 
503
2006-10-17  Mark Mitchell  
504
 
505
        PR c++/28261
506
        * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
507
        comment.
508
 
509
        PR c++/28261
510
        * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
511
        function.
512
        (cp_parser_constructor_declarator_p): Use it.
513
        (cp_parser_check_type_definition): Return a value indicating
514
        whether or not the definition is valid.
515
        (cp_parser_enum_specifier): Skip invalid enum definitions.
516
 
517
2006-10-17  Mark Mitchell  
518
 
519
        PR c++/29039
520
        * typeck2.c (build_functional_cast): Don't zero-initialize
521
        non-PODs; instead, call their constructors.
522
        * method.c (synthesize_method): Always build mem-initializers, if
523
        we're synthesizing the default constructor.
524
 
525
2006-10-17  Mark Mitchell  
526
 
527
        PR c++/27270
528
        * decl.c (reshape_init_class): Move check for designated
529
        to ...
530
        * parser.c (cp_parser_initializer_list): ... here.
531
        * pt.c (tsubst_copy_and_build): Use finish_compound_literal.
532
 
533
2006-10-16  Mark Mitchell  
534
 
535
        PR c++/27270
536
        * typeck2.c (process_init_constructor_array): Reword comment.
537
        * pt.c (tsubst_copy_and_built): Call reshape_init before calling
538
        digest_init.
539
 
540
        PR c++/29408
541
        * parser.c (cp_parser_using_declaration): Stop parsing when
542
        something goes wrong with an access declaration.
543
 
544
        PR c++/29435
545
        * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
546
        types when their sizes are required.  Refine test for VLAs.
547
 
548
        PR c++/28211
549
        * parser.c (cp_parser_template_argument): Don't consider "&var" a
550
        possible constant-expression.
551
        * pt.c (convert_nontype_argument): Refine handling of arguments of
552
        pointer type.
553
 
554
2006-10-13  Mark Mitchell  
555
 
556
        PR c++/28506
557
        * parser.c (function_declarator_p): New function.
558
        (cp_parser_init_declarator): Use it.
559
        (cp_parser_member_declaration): Likewise.
560
 
561
2006-10-12  Mark Mitchell  
562
 
563
        PR c++/29318
564
        * rtti.c (get_tinfo_decl): Refuse to create type info objects for
565
        variably modified types.
566
 
567
2006-10-12 Lee Millward 
568
 
569
       PR c++/27961
570
       * decl.c (start_decl): Return error_mark_node if a
571
       function is initialized like a variable.
572
       (check_var_type): If a variable of field is declared void,
573
       set the type to error_mark_node.
574
       (grokdeclarator): Check the return type of check_var_type.
575
       * class.c (finish_struct_1): Robustify.
576
 
577
2006-10-11  Mark Mitchell  
578
 
579
        PR c++/29175
580
        * decl.c (check_initializer): Issue errors about trying to
581
        initialize arrays whose elements have variable size.
582
 
583
2006-10-11  Lee Millward  
584
 
585
        PR c++/29024
586
        * cp-tree (struct cp_decl_specifier_seq): Rename to
587
        conflicting_specifiers_p
588
        * parser.c (cp_parser_set_storage_class): Set
589
        conflicting_specifiers_p for the input decl specifier
590
        if a typedef specifier is present. Rename uses of
591
        multiple_specifiers_p to conflicting_specifiers_p.
592
        (cp_parser_decl_specifier_seq) : If a storage
593
        class specifier has already been set for this declaration,
594
        set conflicting_specifiers_p to true on the decl_specs.
595
        * decl.c (grokdeclarator): Rename uses of
596
        multiple_specifiers_p to conflicting_specifiers_p.
597
 
598
2006-10-10  Brooks Moses  
599
 
600
        * Make-lang.in: Added "c++.pdf" target support.
601
 
602
2006-10-10  Richard Guenther  
603
 
604
        PR rtl-optimization/29323
605
        * decl.c (finish_function): Set TREE_NOTHROW only for
606
        functions that bind local.
607
 
608
2006-10-09  Richard Henderson  
609
 
610
        Revert emutls patch.
611
 
612
2006-10-04  Richard Henderson  
613
            Jakub Jelinek  
614
 
615
        * decl.c (grokvardecl): Don't error if !have_tls.
616
        (grokdeclarator): Likewise.
617
        * parser.c (cp_parser_omp_threadprivate): Likewise.
618
 
619
2006-10-03  Mark Mitchell  
620
 
621
        PR c++/29020
622
        * friend.c (do_friend): Improve comments; add assertion.
623
        * parser.c (cp_parser_nested_name_specifier_opt): Resolve
624
        typenames for qualified names used in declarations, even when
625
        caching qualified name lookup.
626
 
627
        PR c++/29138
628
        * decl2.c (grokfield): Don't handle access declarations here.
629
        * parser.c (cp_parser_using_declaration): Handle access
630
        declarations too.
631
        (cp_parser_block_declaration): Adjust calls to
632
        cp_parser_using_declaration.
633
        (cp_parser_member_declaration): Likewise.  Use
634
        cp_parser_using_declaration to look for access_declarations.
635
 
636
2006-10-03  Volker Reichelt  
637
 
638
        PR c++/29291
639
        * init.c (build_new): Check for invalid init.
640
 
641
2006-10-02  Mark Mitchell  
642
 
643
        PR c++/29226
644
        * typeck.c (cxx_sizeof_or_alignof_type): Tidy.  In templates, do
645
        not try to actually evaluate sizeof for a VLA type.
646
 
647
2006-10-01  Mark Mitchell  
648
 
649
        PR c++/29105
650
        * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
651
        * semantics.c (baselink_for_fns): Build a baselink, even when
652
        processing a template.
653
 
654
        PR c++/29080
655
        * parser.c (cp_parser_postfix_dot_deref_expression): Use
656
        BASELINK_ACCESS_BINFO as the qualifying scope when calling
657
        adjust_result_of_qualified_name_lookup.
658
 
659
2006-09-25  Lee Millward  
660
 
661
        PR c++/27329
662
        PR c++/26938
663
        * cp-tree.h (redeclare_class_template): Adjust declaration
664
        to return bool instead of void.
665
        * pt.c (redeclare_class_template): Update definition.
666
        Return false on error.
667
        * decl.c (xref_tag): Return error_mark_node if
668
        redeclare_class_template returned false.
669
 
670
        PR c++/27667
671
        * cp-tree.h (begin_specialization): Return bool
672
        instead of void.
673
        * pt.c (check_specialization_scope): Likwise.
674
        Adjust comment. Return false if a specialization
675
        isn't permitted in the current scope.
676
        (begin_specialization): Use the return value of
677
        check_specialization_scope.
678
        * parser.c (cp_parser_explicit_specialization): If
679
        begin_specialization returned false, skip the rest
680
        of the specialization.
681
 
682
2006-09-21  Mark Mitchell  
683
 
684
        PR c++/29016
685
        * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
686
        BASELINK.
687
 
688
2006-09-21  Lee Millward  
689
 
690
        PR c++/28861
691
        * decl.c (shadow_tag): Return error_mark_node
692
        if maybe_process_partial_specialization failed.
693
 
694
        PR c++/28303
695
        * decl.c (grokdeclarator): Return error_mark_node on
696
        declaration with two or more data types.
697
 
698
2006-09-20  Danny Smith  
699
 
700
        PR target/27650
701
        * class.c (check_for_override): Remove dllimport from virtual
702
        methods.
703
 
704
2006-09-18  Steven Bosscher  
705
 
706
        PR c++/29087
707
        * parser.c (cp_parser_labeled_statement): Return nothing.  Do
708
        not take in_statement_expr and in_compound as arguments.  Rename
709
        to cp_parser_label_for_labeled_statement.  Parse only the label,
710
        not the statement.
711
        (cp_parser_statement): Parse the statement of a labeled-statement
712
        from here, using tail recursion.
713
 
714
2006-09-14  Andrew Pinski  
715
 
716
        PR C++/29002
717
        * init.c (build_zero_init): If we have an error mark node for
718
        the array size, return.
719
 
720
2006-09-10  Mark Mitchell  
721
 
722
        PR c++/28991
723
        * cp-objcp-common.c (cxx_staticp): New function.
724
        * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
725
        * cp-tree.h (cxx_staticp): New function.
726
 
727
2006-09-09  Jason Merrill  
728
 
729
        PR c++/28996
730
        * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
731
 
732
2006-09-08  Volker Reichelt  
733
 
734
        PR c++/28858
735
        * parser.c (cp_parser_skip_until_found): Rename to
736
        cp_parser_skip_to_end_of_template_parameter_list.  Remove last two
737
        parameters.  Track levels of '< ... >'.  Stop at '{', '}', or ';'.
738
        Reorganize.  Adjust comment.
739
        (cp_parser_template_declaration_after_export): Adjust call.
740
        (cp_parser_enclosed_template_argument_list): Likewise.
741
 
742
2006-09-07  Andrew Pinski  
743
 
744
        PR C++/28906
745
        * init.c (build_new_1): Build a distinct type copy
746
        for the array type that was returned from
747
        build_cplus_array_type.
748
 
749
2006-09-07  Jason Merrill  
750
 
751
        PR c++/27371
752
        * cvt.c (convert_to_void): Enable previous change.
753
 
754
        PR c++/26957
755
        * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
756
        parms.
757
 
758
2006-09-07  Simon Martin  
759
 
760
        PR c++/28284
761
        * pt.c (fold_non_dependent_expr): Make sure expr is not
762
        dereferenced if it is NULL.
763
 
764
2006-09-06  Zak Kipling  
765
 
766
        PR c++/26195
767
        * decl.c (make_rtl_for_nonlocal_decl),
768
        (start_preparsed_function): Don't use lbasename on
769
        input_filename when calling get_fileinfo.
770
        * semantics.c (begin_class_definition): Likewise.
771
        * lex.c (cxx_make_type): Likewise.
772
        (handle_pragma_interface): Call get_fileinfo on input_filename,
773
        not on the parameter to the directive.
774
 
775
2006-09-06  Mark Mitchell  
776
 
777
        PR c++/28903
778
        * pt.c (tsubst): Use fold_non_dependent_expr to fold array
779
        dimensions.
780
 
781
        PR c++/28886
782
        * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
783
        dimensions.
784
 
785
2006-09-06  Jason Merrill  
786
 
787
        PR c++/27371
788
        * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
789
        * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
790
        * tree.c (build_cplus_new): Set it.
791
 
792
        PR c++/26696
793
        * cvt.c (convert_to_void): Replace a subexpression with no side
794
        effects with void_zero_node.
795
        * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
796
        (get_first_fn): Ditto.
797
        * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
798
 
799
2006-09-05  Jason Merrill  
800
 
801
        PR c++/26571
802
        * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
803
        where the name is a type used incorrectly.
804
 
805
        PR c++/26671
806
        * typeck.c (maybe_warn_about_returning_address_of_local): Look
807
        through COMPONENT_REF and ARRAY_REF.
808
 
809
        PR c++/26102
810
        * name-lookup.c (do_class_using_decl): Try to find the base even
811
        if bases_dependent_p.
812
        * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
813
 
814
        PR c++/19809
815
        * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
816
 
817
2006-09-04  Nathan Sidwell  
818
 
819
        PR 23287 Revert my 2006-09-01 patch.
820
        * parser.c: Reverted.
821
        * pt.c: Reverted.
822
 
823
2006-09-02  Lee Millward  
824
 
825
        PR c++/27670
826
        PR c++/27493
827
        PR c++/27494
828
        PR c++/27397
829
        * parser.c (cp_parser_template_parameter_list): Add
830
        invalid template parameters to the parameter list as
831
        error_mark_node.
832
 
833
2006-09-02  Jakub Jelinek  
834
 
835
        PR c++/28878
836
        * except.c (build_throw): Only set current_function_returns_abnormally
837
        if cfun is not NULL.
838
 
839
        PR c++/26917
840
        * repo.c (repo_file): Remove.
841
        (open_repo_file, reopen_repo_file_for_write): Return fopened
842
        FILE * instead of setting global repo_file variable.
843
        (init_repo): Adjust caller.
844
        (finish_repo): Likewise.  Return instead of goto out before
845
        reopen_repo_file_for_write has been called.
846
 
847
2006-09-01  Nathan Sidwell  
848
 
849
        PR c++/28705
850
        * semantics.c (finish_call_expr): Add assert.
851
        * name-lookup.c (lookup_arg_dependent): Check we found an overload
852
        or an object.
853
 
854
        PR c++/23287
855
        * parser.c (cp_parser_id_expression): Add member_p
856
        argument. Update all callers.
857
        (cp_parser_unqualified_id): Likewise.  Lookup a destructor name in
858
        the object's scope, if valid.
859
        (cp_parser_global_scope_opt): Add object_scope_valid_p.  Update
860
        callers.
861
        (cp_parser_postfix_dot_deref_expression): Set object_scope.
862
        * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
863
 
864
2006-08-30  Jason Merrill  
865
 
866
        PR c++/26670
867
        * class.c (check_field_decls): Don't unset TYPE_PACKED until all
868
        the fields have been processed.
869
 
870
2006-08-29  Andrew Pinski  
871
 
872
        PR C++/28349
873
        * call.c (build_x_va_arg): Remove the reference type
874
        from the type before creating the pointer type.
875
 
876
2006-08-29  J"orn Rennecke  
877
 
878
        PR c++/28139
879
        * except.c (expand_start_catch_block): Use correct types for bitwise
880
        copy.
881
 
882
2006-08-28  Jason Merrill  
883
 
884
        PR c++/26670
885
        * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
886
        fields can't be packed.
887
 
888
        PR c++/26577
889
        * cvt.c (convert_to_void): Don't automatically load from volatiles
890
        of TREE_ADDRESSABLE type.
891
 
892
2006-08-28  Volker Reichelt  
893
 
894
        PR c++/28860
895
        * cp-tree.h (maybe_process_partial_specialization): Return
896
        tree instead of void.
897
        * parser.c (cp_parser_class_head): Use return value of
898
        maybe_process_partial_specialization.
899
        * pt.c (maybe_process_partial_specialization): Return error_mark_node
900
        for broken specializations, TYPE otherwise.  Check for template
901
        template parameters.
902
 
903
2006-08-27  Mark Mitchell  
904
 
905
        PR c++/28058
906
        * pt.c (register_specialization): Return error_mark_node for
907
        specialization-after-instantiation.
908
        * decl2.c (mark_used): Mark the main function used when one of its
909
        clones is used.
910
 
911
2006-08-27  Lee Millward  
912
 
913
        PR c++/26573
914
        * class.c (check_field_decls): Don't issue error about
915
        local classes containing static data members.
916
 
917
2006-08-26  Joseph S. Myers  
918
 
919
        PR c++/24009
920
        * parser.c (struct cp_token): Add input_file_stack_index.
921
        (eof_token): Update.
922
        (cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
923
        (cp_lexer_set_source_position_from_token): Restore input file
924
        stack.
925
 
926
2006-08-26  Lee Millward  
927
 
928
        PR c++/28736
929
        PR c++/28737
930
        PR c++/28738
931
        * pt.c (process_template_parm): Store invalid template
932
        parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
933
        (push_inline_template_parms_recursive): Check for template
934
        parameters having a TREE_VALUE of error_mark_node rather than
935
        check the parameter itself.
936
        (mangle_class_name_for_template): Likewise.
937
        (comp_template_parms): When comparing the individual template
938
        parameters, return 1 if either is error_mark_node.
939
        (current_template_args): Robustify.
940
        (redeclare_class_template): Likewise.
941
 
942
2006-08-26  Mark Mitchell  
943
 
944
        PR c++/28588
945
        * class.c (resolve_address_of_overloaded_function): Add
946
        access_path parameter.  Perform access checks.
947
        (instantiate_type): Adjust call to
948
        resolve_address_of_overloaded_function.  Remove unnecessary code.
949
        * tree.c (is_overloaded_fn): Document.  Return 2 when there are
950
        acutally multiple functions.
951
        (really_overloaded_fn): Use is_overloaded_fn.
952
        * mangle.c (write_expression): Handle BASELINKs.
953
        * cp-tree.h (really_overloaded_fn): Return bool.
954
        (baselink_for_fns): Declare.
955
        * search.c (lookup_member): Check access for single static
956
        functions here.
957
        * pt.c (convert_nontype_argument_function): Handle BASELINKs.
958
        (tsubst_copy_and_build): Generate BASELINKs for template-ids.
959
        * semantics.c (finish_call_expr): Use baselink_for_fns.
960
        (baselink_for_fns): New function.
961
        (finish_id_expression): Use it.
962
        * parser.c (cp_parser_template_argument): Don't strip BASELINKs.
963
 
964
        PR c++/28595
965
        * pt.c (tsubst): Issue errors about attempts to create VLAs at
966
        template-instantiation time.
967
 
968
2006-08-25  Volker Reichelt  
969
 
970
        PR c++/28853
971
        * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
972
        template parameters.  Improve error message for template type
973
        parameters.
974
 
975
        PR c++/28852
976
        * cp-tree.h (grok_op_properties): Return bool instead of void.
977
        * decl.c (grokfndecl): Discard invalid operator declarations.
978
        (copy_fn_p): Revert change for PR 27547.
979
        (grok_op_properties): Return error status (true on success).
980
        * pt.c (tsubst_decl): Discard invalid operator declarations.
981
 
982
2006-08-25  Mark Mitchell  
983
 
984
        PR c++/28056
985
        * decl.c (grokdeclarator): Disallow declarations with qualified
986
        names in local scopes.
987
 
988
2006-08-25  Nathan Sidwell  
989
 
990
        PR c++/27787
991
        * decl.c (make_typename_type): Only try and resolve it when
992
        context is not dependent.  Refactor.
993
        * decl2.c (check_classfn): Push to class scope before looking for
994
        the function.
995
 
996
2006-08-24  Danny Smith   
997
 
998
        PR driver/28528
999
        * g++spec.c (lang_specific_driver): Always check if we need to
1000
        swallow a space-separated  arg to '-x'.
1001
        * lang-specs.h: Don't create ouput files for '-xc++-header'
1002
        if -fsyntax-only.
1003
 
1004
2006-08-23  Jason Merrill  
1005
 
1006
        PR c++/27714
1007
        * pt.c (push_template_decl_real): A friend template with class
1008
        scope isn't primary.
1009
 
1010
2006-08-23  Benjamin Smedberg 
1011
 
1012
        PR c++/28687
1013
        * rtti.c (build_dynamic_cast, build_dynamic_cast_1):
1014
        Move -fno-rtti check to be more specific.
1015
 
1016
2006-08-22  Jason Merrill  
1017
 
1018
        PR c++/23372
1019
        * call.c (build_over_call): Don't make a copy here if build_call
1020
        will make one too.
1021
 
1022
2006-08-22  Andrew Pinski  
1023
 
1024
        PR C++/28450
1025
        * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
1026
        COMPLEX_TYPEs.
1027
 
1028
2006-08-22  Simon Martin  
1029
 
1030
        PR c++/28420
1031
        * parser.c (cp_parser_postfix_expression): Make sure that the
1032
        saved value for parser->type_definition_forbidden_message is
1033
        restored before returning to avoid an invalid free().
1034
 
1035
2006-08-22  Jason Merrill  
1036
 
1037
        PR c++/28659
1038
        * typeck.c (merge_types): If either of the types have the right
1039
        attributes, return that one.
1040
 
1041
        * tree.c (cp_build_type_attribute_variant): Make sure we aren't
1042
        doing this to class types.
1043
        * typeck.c (original_type): Deal with type quals properly.
1044
 
1045
2006-08-21  Jason Merrill  
1046
 
1047
        PR c++/27115
1048
        * semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
1049
        just leave the expression as it is.
1050
        (finish_stmt_expr): If the statement-expression has class type,
1051
        wrap it in a TARGET_EXPR.
1052
        * cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
1053
        CLEANUP_POINT_EXPR.
1054
        * except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
1055
 
1056
2006-08-21  Lee Millward  
1057
 
1058
        PR c++/26269
1059
        * decl.c (duplicate_decls): Return early if either
1060
        newdecl or olddecl is error_mark_node.
1061
 
1062
         PR c++/28505
1063
        * decl.c (grokdeclarator): Return early after
1064
        issuing diagnostic about an incomplete type.
1065
 
1066
        PR c++/28741
1067
        * tree.c (decl_anon_ns_mem_p): Robustify.
1068
        * decl2.c (determine_visibility): Likewise.
1069
 
1070
2006-08-20  Mark Mitchell  
1071
 
1072
        PR c++/28341
1073
        * tree.c (cast_valid_in_integral_constant_expression_p): New
1074
        function.
1075
        * cp-tree.h (tsubst_copy_and_build): Adjust prototype.
1076
        * pt.c (tsubst_expr): Add integral_constant_expression_p
1077
        parameter.
1078
        (fold_non_dependent_expr): Adjust callers of
1079
        tsubst_{expr,copy_and_build}.
1080
        (tsubst_friend_function): Likewise.
1081
        (tsubst_template_arg): Likewise.
1082
        (tsubst_default_argument): Likewise.
1083
        (tsubst_decl): Likewise.
1084
        (tsubst): Likewise.
1085
        (tsubst_omp_clasuses): Likewise.
1086
        (regenerate_decl_fromp_template): Likewise.
1087
        (instantiate_decl): Likewise.
1088
        (tsubst_initializer_list): Likewise.
1089
        (tsubst_enum): Likewise.
1090
        (tsubst_expr): Use RECUR throughout.
1091
        (tsubst_copy_and_build): Change definition of RECUR.  Do not allow
1092
        invalid casts in integral constant expressions.
1093
        * parser.c (cp_parser_postfix_expression): Use
1094
        cast_valid_in_integral_constant_expression_p.
1095
        (cp_parser_cast_expression): Likewise.
1096
        (cp_parser_functional_cast): Likewise.
1097
 
1098
        PR c++/28346
1099
        * pt.c (tsubst_qualified_id): Do not strip references from
1100
        OFFSET_REFs.
1101
 
1102
2006-08-17  Volker Reichelt  
1103
 
1104
        PR c++/28606
1105
        * parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
1106
        Fix formatting.
1107
        (cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
1108
        for valid type-names.
1109
        (cp_parser_unqualified_id): Fix error handling for destructors.
1110
 
1111
        PR c++/28710
1112
        * decl.c (xref_tag): Improve error message.  Return early on error.
1113
 
1114
        PR c++/28711
1115
        * pt.c (tsubst_copy_and_build) : Robustify.
1116
 
1117
2006-08-17  Paolo Bonzini  
1118
 
1119
        PR c++/28573
1120
        * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
1121
 
1122
2006-08-16  Andrew Pinski  
1123
 
1124
        PR c++/28302
1125
        * typeck.c (build_unary_op ): Don't call
1126
        perform_integral_promotions for non integral type.
1127
 
1128
2006-08-16  Jason Merrill  
1129
 
1130
        PR c++/28385
1131
        * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
1132
        if arg is a function.
1133
 
1134
2006-08-16  Volker Reichelt  
1135
 
1136
        PR c++/28593
1137
        * init.c (build_new): Return early on invalid placement.
1138
 
1139
2006-08-15  Lee Millward  
1140
 
1141
        PR c++/28594
1142
        * pt.c (process_template_parm): Robustify.
1143
 
1144
2006-08-14  Steve Ellcey  
1145
 
1146
        PR c++/28288
1147
        PR c++/14556
1148
        * operators.def: Remove , ?= operators.
1149
        * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
1150
        (cp_parser_warn_min_max): Remove.
1151
 
1152
2006-08-11  Jason Merrill  
1153
 
1154
        PR c++/28559
1155
        * parser.c (cp_parser_elaborated_type_specifier): Also ignore
1156
        attributes applied to a TYPENAME_TYPE.
1157
 
1158
2006-08-09  Lee Millward  
1159
 
1160
        PR c++/28637
1161
        * pt.c (coerce_template_parms): Copy across the
1162
        invalid template arguments to the new template inner arguments.
1163
        (retrieve_specialization): Robustify.
1164
 
1165
        PR c++/28638
1166
        * pt.c (coerce_template_template_parms): Robustify.
1167
 
1168
        PR c++/28639
1169
        * error.c (dump_template_parms): Robustify.
1170
 
1171
        PR c++/28640
1172
        * pt.c (redeclare_class_template): Robustify.
1173
 
1174
        PR c++/28641
1175
        * pt.c (type_unification_real): Robustify.
1176
 
1177
2006-08-03  Lee Millward  
1178
 
1179
        PR c++/28347
1180
        * decl.c (start_decl): Return error_mark_node if a
1181
        diagnostic was issed for an invalid typedef initialization.
1182
 
1183
2006-08-03  Volker Reichelt  
1184
 
1185
        PR c++/27508
1186
        * parser.c (cp_parser_unqualified_id): Check for invalid scopes
1187
        when parsing destructor names.
1188
 
1189
        PR c++/28274
1190
        * decl.c (duplicate_decls): Call check_default_args here.
1191
        (start_preparsed_function): Do not call check_default_args.
1192
        * name-lookup.c (pushdecl_maybe_friend): Only call
1193
        check_default_args if duplicate_decls got bypassed.
1194
 
1195
2006-08-02  Richard Guenther  
1196
 
1197
        PR c++/28479
1198
        Revert
1199
        2006-07-05  Richard Guenther  
1200
        Andrew Pinski  
1201
 
1202
        PR c++/27084
1203
        * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1204
        top level qualifiers for pointer type comparisons.
1205
 
1206
2006-08-02  Mark Mitchell  
1207
 
1208
        PR c++/28557
1209
        * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
1210
 
1211
2006-07-31  Mark Mitchell  
1212
 
1213
        PR c++/28523
1214
        * tree.c (stabilize_expr): Tweak documentation.  Add assertion.
1215
        (stabilize_call): Tweak documentation.
1216
        (stabilize_init): Only call stabilize_call for calls.
1217
 
1218
2006-08-01  Steve Ellcey  
1219
 
1220
        PR c++/28432
1221
        * decl2.c (check_classfn): Remove early return.
1222
        * search.c (lookup_member): Return NULL with bad type.
1223
 
1224
2006-08-01  Steve Ellcey  
1225
 
1226
        PR c++/28256
1227
        * decl.c (check_initializer): Check for 1 initializer on scalar types.
1228
 
1229
2006-08-01  Daniel Jacobowitz  
1230
 
1231
        PR debug/23336
1232
        * pt.c (tsubst_copy_and_build): Mark used enum types.
1233
        * semantics.c (finish_id_expression): Likewise.
1234
 
1235
2006-07-31  Volker Reichelt  
1236
 
1237
        PR c++/6634
1238
        * decl.c (grokdeclarator): Check whether "long" or "short" was
1239
        specified for non-integral types.
1240
 
1241
2006-07-28  Volker Reichelt  
1242
 
1243
        * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1244
 
1245
2006-07-28  Lee Millward  
1246
 
1247
        PR c++/27668
1248
        PR c++/27962
1249
        * pt.c (process_template_parm) Store invalid template
1250
        parameters as error_mark_node in the paramater list.
1251
        (push_inline_template_parms_recursive): Handle invalid
1252
        template parameters.
1253
        (comp_template_parms): Likewise.
1254
        (check_default_tmpl_arg): Likewise.
1255
        (coerce_template_template_parms): Likewise.
1256
        (mangle_class_name_for_template): Likewise.
1257
        (tsubst_template_parms): Likewise.
1258
        * error.c (dump_template_argument_list): Likewise.
1259
 
1260
2006-07-28  Kazu Hirata  
1261
 
1262
        * cp-tree.h: Fix a comment typo.
1263
 
1264
2006-07-24  Volker Reichelt  
1265
 
1266
        PR c++/27572
1267
        * decl.c (grokdeclarator): Return error_mark_node after invalid
1268
        typedef.
1269
 
1270
2006-07-23  Daniel Jacobowitz  
1271
 
1272
        PR c++/28460
1273
        * decl.c (grokvardecl): Use FROB_CONTEXT.
1274
        * pt.c (register_specialization): Likewise.
1275
 
1276
2006-07-23  Mark Mitchell  
1277
 
1278
        PR c++/28025
1279
        * cp-tree.h (LOOKUP_HIDDEN): New macro.  Reformat comments.
1280
        * name-lookup.c (unqualified_namespace_lookup): There is no way to
1281
        have a hidden name in non-namespace scopes.
1282
        * pt.c (tsubst_friend_class): Look for hidden names.
1283
        * decl.c (lookup_and_check_tag): Fix typo in comment.
1284
 
1285
        * semantics.c (finish_compound_literal): Fix typo in comment.
1286
 
1287
2006-07-21  Jason Merrill  
1288
 
1289
        * decl2.c (determine_visibility): Don't propagate visibility from
1290
        type to decl.
1291
        (constrain_class_visibility): Don't warn in system headers.
1292
        Don't warn about pointer fields.
1293
 
1294
2006-07-20  Mike Stump  
1295
 
1296
        * decl2.c (determine_visibility_from_class): Don't use hidden
1297
        visibility for explicit instantiations.
1298
 
1299
2006-07-21  Volker Reichelt  
1300
 
1301
        PR c++/28250
1302
        * pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
1303
        valid decls.  Cleanup.
1304
 
1305
        PR c++/28363
1306
        * semantics.c (check_template_template_default_arg): Simplify
1307
        error handling.
1308
 
1309
2006-07-20  Jason Merrill  
1310
 
1311
        PR c++/28407
1312
        * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
1313
        const variables with implicit internal linkage.
1314
        * tree.c (decl_linkage): Only return lk_external if it's set.
1315
 
1316
        PR c++/28409
1317
        * decl2.c (constrain_visibility): Ignore the anonymous namespace
1318
        for extern "C" decls.
1319
        (VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
1320
 
1321
        * decl2.c (constrain_visibility): Remove specified and reason
1322
        parameters.  Don't touch decls that already have explicit visibility.
1323
        (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
1324
        template.
1325
        (determine_visibility_from_class): Reverse sense of
1326
        DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
1327
        (constrain_class_visibility): Only complain about member visibility
1328
        if the member type is another class.  Don't change visibility of the
1329
        current class.
1330
 
1331
2006-07-19  Mark Mitchell  
1332
 
1333
        PR c++/28338
1334
        * decl.c (layout_var_decl): Don't call push_local_name here.
1335
        (initialize_artificial_var): Assert artificiality.
1336
        (cp_finish_decl): Call push_local_name here.
1337
 
1338
2006-07-18  Mark Mitchell  
1339
 
1340
        PR c++/28337
1341
        * typeck.c (build_binary_op): Short-circuit pointer arithmetic in
1342
        templates.
1343
 
1344
2006-07-18  Mark Mitchell  
1345
 
1346
        PR c++/28048
1347
        * semantics.c (check_accessibility_of_qualified_id): Robustify.
1348
 
1349
        PR c++/28235
1350
        * pt.c (tsubst_decl): Handling substitutions into a static data
1351
        member from within the scope of the tempalte itself.
1352
 
1353
2006-07-18  Lee Millward  
1354
 
1355
        PR c++/28258
1356
        * method.c (locate_copy): Check for non_reference
1357
        returning error_mark_node.
1358
 
1359
        PR c++/28260
1360
        * decl.c (duplicate_decls): Return error_mark_node
1361
        on ambiguous declaration.
1362
 
1363
2006-07-18  Steve Ellcey  
1364
 
1365
        PR c++/27495
1366
        * search.c (adjust_result_of_qualified_name_lookup): Change
1367
        assert to part of if statement.
1368
 
1369
2006-07-17  Steve Ellcey  
1370
 
1371
        PR c++/28291
1372
        * decl.c (reshape_init_class): Return error_mark_node on error.
1373
 
1374
2006-07-17  Steve Ellcey  
1375
 
1376
        PR c++/28304
1377
        * decl2.c (check_classfn): Return NULL_TREE on error.
1378
 
1379
2006-07-17  Volker Reichelt  
1380
 
1381
        PR c++/28250
1382
        * name-lookup.c (pushdecl_maybe_friend): Return early on
1383
        error_mark_node.
1384
        * except.c (expand_start_catch_block): Use error_mark_node instead
1385
        of NULL_TREE for invalid decls.
1386
        * parser.c (cp_parser_exception_declaration): Return error_mark_node
1387
        on invalid catch parameter. Simplify.
1388
 
1389
2006-07-16  Jakub Jelinek  
1390
 
1391
        PR c++/28370
1392
        * decl2.c (note_vague_linkage_var): Removed.
1393
        (finish_static_data_member_decl): Add decl to pending_statics vector
1394
        directly.  Do it even for non-public decls.
1395
 
1396
2006-07-15  Lee Millward  
1397
 
1398
        PR c++/28292
1399
        * decl2.c (acceptable_java_type): Robustify. Use
1400
        proper Boolean return type instead of return 1.
1401
        (check_java_method): Don't issue error about
1402
        type not being an acceptable Java parameter if
1403
        it's error_mark_node.
1404
 
1405
        PR c++/28269
1406
        * parser.c (cp_parser_elaborated_type_specifier):
1407
        Return early if an invalid type was detected.
1408
 
1409
2006-07-15  Volker Reichelt  
1410
 
1411
        PR c++/28249
1412
        * parser.c (cp_parser_check_decl_spec): New function.
1413
        (cp_parser_decl_specifier_seq): Factor out check for repeated
1414
        decl-specifiers into cp_parser_check_decl_spec. Use it.
1415
        (cp_parser_type_specifier_seq): Use it.
1416
 
1417
        PR c++/28294
1418
        * semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
1419
        only.
1420
 
1421
        PR c++/28387
1422
        * decl2.c (cplus_decl_attributes): Check for invalid decls.
1423
 
1424
2006-07-14  Volker Reichelt  
1425
 
1426
        PR c++/28343
1427
        * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
1428
        * decl2.c (grokfield): Likewise.
1429
 
1430
2006-07-12  Geoffrey Keating  
1431
 
1432
        * decl2.c (determine_visibility): Don't change visibility of
1433
        function locals because of -fvisibility-inlines-hidden.
1434
 
1435
2006-07-12  Jason Merrill  
1436
 
1437
        PR c++/28217
1438
        * semantics.c (note_decl_for_pch): Don't premangle templates.
1439
 
1440
2006-07-12  Martin Michlmayr  
1441
 
1442
        * typeck.c (string_conv_p): Remove spurious quotation mark in
1443
        warning.
1444
 
1445
2006-07-07  Lee Millward  
1446
            Andrew Pinski  
1447
 
1448
        PR c++/27820
1449
        * decl.c (define_label): Return error_mark_node on error.
1450
        * semantics.c (finish_label_stmt): Don't call
1451
        add_stmt for invalid labels.
1452
 
1453
2006-07-06  Jason Merrill  
1454
 
1455
        PR c++/28279
1456
        * decl2.c (finish_static_data_member_decl): Don't assert
1457
        TREE_PUBLIC.
1458
 
1459
2006-07-05  Jason Merrill  
1460
 
1461
        PR c++/13983
1462
        PR c++/17519
1463
        * class.c (check_field_decls): Check TYPE_PACKED after
1464
        stripping array types.
1465
        (finish_struct_bits): Don't copy TYPE_SIZE here.
1466
 
1467
        PR c++/18681
1468
        * friend.c (is_friend): Fix DR 45 implementation.
1469
 
1470
2006-07-05  Richard Guenther  
1471
        Andrew Pinski  
1472
 
1473
        PR c++/27084
1474
        * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1475
        top level qualifiers for pointer type comparisons.
1476
 
1477
2006-07-01  Jason Merrill  
1478
 
1479
        PR c++/28215
1480
        * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
1481
        DECL_TEMPLATE_INFO.
1482
 
1483
2006-06-30  Jason Merrill  
1484
 
1485
        PR c++/26577
1486
        * call.c (build_new_method_call): Force evaluation of the
1487
        instance pointer, not the object.
1488
 
1489
2006-06-30  Kazu Hirata  
1490
 
1491
        * decl2.c: Fix a comment typo.
1492
 
1493
2006-06-30  Jason Merrill  
1494
 
1495
        PR c++/18698
1496
        * decl2.c (grokfield): Only try to treat the decl as an access
1497
        declaration if the scope is a class.
1498
 
1499
2006-06-29  Jason Merrill  
1500
 
1501
        PR c++/26905
1502
        PR c++/26612
1503
        PR c++/27000
1504
        PR c++/26984
1505
        PR c++/19134
1506
        * decl2.c (determine_visibility): Overhaul.
1507
        (determine_visibility_from_class): Likewise.
1508
        (min_vis_r, type_visibility, constrain_visibility): New fns.
1509
        (constrain_visibility_for_template): Likewise.
1510
        (constrain_class_visibility): Likewise.
1511
        * decl.c (cp_finish_decl): Call determine_visibility for function
1512
        decls, too.
1513
        * name-lookup.c (pushtag): Call determine_visibility.
1514
        * decl.c (duplicate_decls): Don't copy visibility from template to
1515
        specialization.
1516
        * pt.c (check_explicit_specialization): Likewise.
1517
        (lookup_template_class, tsubst_decl): Call determine_visibility.
1518
        * class.c (finish_struct_1): Call constrain_class_visibility.
1519
 
1520
        PR c++/26905
1521
        PR c++/21675
1522
        PR c++/17470
1523
        * parser.c (cp_parser_explicit_instantiation): Pass the attributes
1524
        to grokdeclarator.
1525
        (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
1526
        (cp_parser_enum_specifier): Likewise.
1527
        (cp_parser_elaborated_type_specifier): Apply attributes if this
1528
        declares only the class.
1529
        (cp_parser_class_specifier): Apply leading attributes immediately.
1530
        * semantics.c (begin_class_definition): Add attributes parameter,
1531
        apply them to the type.
1532
 
1533
        PR c++/21581
1534
        PR c++/25915
1535
        * tree.c (decl_anon_ns_mem_p): New function.
1536
        * cp-tree.h: Declare it.
1537
        * decl2.c (determine_visibility): Make anonymous namespace
1538
        members static.
1539
        (min_vis_r, constrain_visibility): Likewise.
1540
        * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
1541
        pseudo-types.
1542
        * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
1543
        global_namespace.
1544
        * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
1545
        on anonymous namespaces.
1546
 
1547
2006-06-28  Jason Merrill  
1548
 
1549
        PR c++/27424
1550
        * pt.c (convert_template_argument): Pass all template arguments
1551
        on to coerce_template_template_parms.
1552
 
1553
2006-06-25  Lee Millward  
1554
            Mark Mitchell 
1555
 
1556
        PR c++/28054
1557
        * decl2.c (grokbitfied): Remove check for grokdeclarator
1558
        returning NULL_TREE, instead check for error_mark_node
1559
        to indicate failure.
1560
        * decl.c (grokdeclarator): Adjust block comment.
1561
 
1562
2006-06-25  Lee Millward  
1563
 
1564
        PR c++/28051
1565
        * mangle.c (mangle_conv_op_name_for_type): Check for
1566
        invalid types.
1567
        * name-lookup.c (push_class_level_binding): Robustify.
1568
        (do_class_using_decl): Return early if name is error_mark_node.
1569
 
1570
2006-06-23  Steve Ellcey  
1571
 
1572
        PR c++/28114
1573
        * name-lookup.c (pushtag): Return if we have error_mark_node.
1574
 
1575
2006-06-23  Steve Ellcey  
1576
 
1577
        PR c++/27019
1578
        * typeck2.c (process_init_constructor_array): Set ce->value on errors.
1579
 
1580
2006-06-23  Volker Reichelt  
1581
 
1582
        PR c++/28112
1583
        * parser.c (cp_parser_attribute_list): Skip attributes with invalid
1584
        arguments.  Fix comment.
1585
 
1586
        PR c++/11468
1587
        * init.c (build_new_1): Handle error_mark_nodes returned by
1588
        build_java_class_ref.
1589
        (build_java_class_ref): Do not abort compilation, but return
1590
        error_mark_node.  Improve error message.  Fix indentation.
1591
 
1592
2006-06-23  Danny Smith   
1593
 
1594
        PR target/27789
1595
        * decl.c (start_decl): Check that dllimports are not initialized.
1596
 
1597
2006-06-22  Lee Millward  
1598
 
1599
        PR c++/27805
1600
        * typeck2.c (build_m_component_ref): Use error_operand_p.
1601
 
1602
        PR c++/27821
1603
        * decl.c (grokdeclarator): Return error_mark_node on
1604
        invalid uses of the scope resolution operator.
1605
 
1606
2006-06-22  Volker Reichelt  
1607
 
1608
        PR c++/28111
1609
        * pt.c (determine_specialization): Check for invalid decls.
1610
 
1611
        PR c++/28110
1612
        * pt.c (unify) : Check for invalid
1613
        parameters.
1614
 
1615
        PR c++/28109
1616
        * rtti.c (get_tinfo_decl_dynamic): Robustify.
1617
 
1618
2006-06-20  Volker Reichelt  
1619
 
1620
        PR c++/28052
1621
        * init.c (push_base_cleanups): Skip members with invalid types.
1622
        * typeck.c (build_class_member_access_expr): Robustify.
1623
 
1624
2006-06-19  Mark Mitchell  
1625
 
1626
        * pt.c (instantiate_template): Fix typo in comment.
1627
 
1628
2006-06-19  Richard Guenther  
1629
 
1630
        * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
1631
        power-of-two token vector size.
1632
 
1633
2006-06-16  Mark Mitchell  
1634
 
1635
        PR c++/28016
1636
        * decl.c (cp_finsh_decl): Do not emit uninstantiated static data
1637
        members.
1638
 
1639
        PR c++/27979
1640
        * call.c (standard_conversion): Strip cv-qualifiers from bitfield
1641
        types.
1642
 
1643
        PR c++/27884
1644
        * decl.c (have_extern_spec): Remove.
1645
        (start_decl): Do not check have_extern_spec.
1646
        (start_function): Likewise.
1647
        * cp-tree.h (have_extern_spec): Remove.
1648
        * parser.c (cp_parser_linkage_specification): Don't set
1649
        have_extern_spec.
1650
        (cp_parser_init_declarator): Likewise.
1651
        (cp_parser_parameter_declaration): Do not treat parameters as
1652
        within the scope of an unbraced linkage specification.
1653
 
1654
2006-06-15  Mark Mitchell  
1655
 
1656
        PR c++/27689
1657
        * cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
1658
        macro.
1659
        * pt.c (unify): Use it.
1660
 
1661
        PR c++/27666
1662
        * call.c (build_conditional_expr): Robustify.
1663
 
1664
        PR c++/27640
1665
        * pt.c (instantiate_template): Set processing_template_decl to
1666
        zero while performing substitutions.
1667
 
1668
2006-06-14  Mark Mitchell  
1669
 
1670
        PR c++/27665
1671
        * parser.c (cp_parser_unqualified_id): Use constructor_name_p to
1672
        identify destructors.
1673
        (cp_parser_nested_name_specifier_opt): Remove invalid
1674
        optimization.
1675
        (cp_parser_template_id): Refine heuristic for determining whether
1676
        we are entering a scope.
1677
 
1678
        PR c++/27648
1679
        * parser.c (cp_parser_declarator): Robustify.
1680
 
1681
        PR c++/26559
1682
        * pt.c (tsubst_expr): Use finish_omp_atomic.
1683
        (value_dependent_expression_p): All CALL_EXPRs are dependent.
1684
        * semantics.c (finish_omp_atomic): Rework to use standard
1685
        paradigms for handling non-dependent expressions.
1686
 
1687
2006-06-14  Gabriel Dos Reis  
1688
 
1689
        * typeck.c (build_modify_expr): Tidy diagnostic message.
1690
 
1691
2006-06-14  Mark Mitchell  
1692
 
1693
        PR c++/28018
1694
        * typeck.c (build_modify_expr): Disallow array assignment.
1695
 
1696
2006-06-14  Gabriel Dos Reis  
1697
 
1698
        * cp-tree.def: Fix typo.
1699
 
1700
2006-06-13  Mark Mitchell  
1701
 
1702
        PR c++/27227
1703
        * decl.c (decls_match): Allow an extern "C" variable declarations
1704
        from different namespaces to match.
1705
        (duplicate_decls): Disallow redeclaring a variable with a
1706
        different linkage specification.
1707
 
1708
2006-06-13  Jakub Jelinek  
1709
 
1710
        PR middle-end/27793
1711
        * cp-tree.h (cxx_int_tree_map): New struct.
1712
        (struct language_function): Add extern_decl_map field.
1713
        * name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
1714
        to cp_function_chain->extern_decl_map hash table instead of
1715
        copying over DECL_UID.
1716
        * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
1717
        functions.
1718
        (cp_genericize_r): Remap DECL_EXTERN local decls using
1719
        cp_function_chain->extern_decl_map hash table.
1720
        * decl.c (finish_function): Clear extern_decl_map.
1721
 
1722
2006-06-12  Volker Reichelt  
1723
 
1724
        PR c++/27601
1725
        * semantics.c (finish_offsetof): Handle pseudo-destructors.
1726
 
1727
        PR c++/27933
1728
        * name-lookup.c (lookup_qualified_name): Always return error_mark_node
1729
        if lookup fails.
1730
 
1731
        PR c++/27951
1732
        * decl2.c (finish_anon_union): Return early if build_anon_union_vars
1733
        fails.
1734
 
1735
2006-06-12  Roger Sayle  
1736
 
1737
        PR c++/21210
1738
        * typeck2.c (build_functional_cast): Use cp_convert to construct
1739
        non-aggregate initializers instead of the user-level build_c_cast.
1740
 
1741
2006-06-07  Volker Reichelt  
1742
 
1743
        PR c++/27601
1744
        * cp-tree.h (finish_offsetof): Add prototype.
1745
        * semantics.c (finish_offsetof): New function.
1746
        * parser.c (cp_parser_builtin_offsetof): Call it instead of
1747
        fold_offsetof.
1748
        * pt.c (tsubst_copy_and_build): Likewise.
1749
 
1750
2006-06-06  Mark Mitchell  
1751
 
1752
        PR c++/27177
1753
        * call.c (standard_conversion): Require that the derived type be
1754
        complete when performing a derived-to-base conversion.
1755
 
1756
2006-06-04  Mark Mitchell  
1757
 
1758
        PR c++/27819
1759
        * decl.c (cp_finish_decl): Process initializers for static data
1760
        members with non-dependent initializers, even in templates.
1761
 
1762
        PR c++/27722
1763
        * decl.c (maybe_deduce_size_from_array_init): If the declaration
1764
        is erroneous, give it an erroneous type.
1765
        (layout_var_decl): If the type is erroneous, give up.
1766
        (check_initializer): Likewise.
1767
 
1768
        PR c++/27807
1769
        * cp-tree.h (TYPE_OBJ_P): New macro.
1770
        (TYPE_PTROB_P): Use it.
1771
        (TYPE_REF_OBJ_P): Likewise.
1772
        * semantics.c (finish_compound_literal): Do not permit compound
1773
        literals of non-object types.
1774
 
1775
        PR c++/27806
1776
        * typeck.c (original_type): Robustify.
1777
 
1778
2006-06-05  Volker Reichelt  
1779
 
1780
        PR c++/27804
1781
        * init.c (constant_value_1): Return decl instead of error_mark_node
1782
        for invalid initializers.
1783
 
1784
2006-06-01  Andrew Pinski  
1785
 
1786
        PR c++/27592
1787
        * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
1788
        on operand of the COND_EXPR for the null pointer check.
1789
 
1790
2006-06-01  Andrew Pinski  
1791
 
1792
        PR c++/26740
1793
        * typeck.c (build_unary_op): Mark the function as being used.
1794
 
1795
2006-06-01  Alexandre Oliva  
1796
 
1797
        PR c++/26660
1798
        * parser.c (cp_parser_initial_pragma): Read one more token for
1799
        caller after reading PCH file in.
1800
 
1801
2006-05-31  Mark Mitchell  
1802
 
1803
        PR c++/27801
1804
        * call.c (perform_implicit_conversion): Do not actually perform
1805
        conversions in templates.
1806
 
1807
        PR c++/26496
1808
        * call.c (resolve_args): Check for invalid uses of bound
1809
        non-static member functions.
1810
        * init.c (build_offset_ref): Return error_mark_node for errors.
1811
 
1812
        PR c++/27385
1813
        * decl.c (reshape_init): Robustify.
1814
        (reshape_init_array_1): Likewise.
1815
 
1816
2006-05-30  Mark Mitchell  
1817
 
1818
        PR c++/27808
1819
        * parser.c (cp_parser_decl_specifier_seq): Issue errors about
1820
        "friend" specifiers that do not appear in class scopes.
1821
 
1822
        PR c++/27803
1823
        * class.c (check_bitfield_decl): Ensure that all bitfields have
1824
        integral type.
1825
 
1826
2006-05-29  Kazu Hirata  
1827
 
1828
        * pt.c (convert_nontype_argument): Fix a typo in an error
1829
        message.
1830
 
1831
2006-05-28  Kazu Hirata  
1832
 
1833
        * decl.c, decl2.c, parser.c: Fix comment typos.  Follow
1834
        spelling conventions.
1835
 
1836
2006-05-24  Mark Mitchell  
1837
 
1838
        PR c++/20103
1839
        * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
1840
        error_mark_node to indicate an initialization is OK.
1841
        (start_decl): Likewise.  Adjust call to start_decl_1.
1842
        (start_decl_1): Add initialized parameter.  Simplify.
1843
        * except.c (initialize_handler_parm): Adjust call to
1844
        setart_decl_1.
1845
        (expand_start_catch_block): Let cp_finish_decl initialize catch
1846
        parameters.
1847
        * cp-tree.h (start_decl_1): Adjust prototype.
1848
        * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
1849
        (instantiate_decl): Let cp_finish_decl handle initialization.
1850
        * semantics.c (finish_compound_literal): Create a temporary
1851
        variable for the literal.
1852
        * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
1853
        cases.
1854
        * decl2.c (finish_static_data_member_decl): Don't set
1855
        DECL_INITIAL.
1856
        (grokfield): Do not try to initialize functions.
1857
 
1858
2006-05-23  Mark Mitchell  
1859
 
1860
        PR c++/20173
1861
        * pt.c (determine_specialization): Disallow partial
1862
        specializations of templates.
1863
 
1864
2006-05-22  Volker Reichelt  
1865
 
1866
        PR c++/27716
1867
        * typeck.c (build_modify_expr): Test arguments for error_operand_p.
1868
 
1869
        * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
1870
 
1871
2006-05-21  Mark Mitchell  
1872
 
1873
        PR c++/27210
1874
        * cp-tree.h (cp_save_expr): New function.
1875
        * init.c (build_new): Correct logic for zero-element array
1876
        warning.  Use cp_save_expr.
1877
        * tree.c (cp_save_expr): New function.
1878
 
1879
2006-05-21  Volker Reichelt  
1880
 
1881
        PR c++/27398
1882
        * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
1883
        or void_type_node.
1884
 
1885
2006-05-19  Mike Stump  
1886
 
1887
        * typeck.c (default_conversion): Remove static.
1888
 
1889
2006-05-19  Mark Mitchell  
1890
 
1891
        PR c++/26433
1892
        * cp-tree.h (begin_function_try_block): Change prototype.
1893
        (finish_function_handler_sequence): Likewise.
1894
        * parser.c (cp_parser_function_try_block): Adjust calls.
1895
        * pt.c (tsubst_expr): Adjust calls.
1896
        * semantics.c (begin_function_try_block): Create an artificial
1897
        outer scope.
1898
        (finish_function_handler_sequence): Close it.
1899
 
1900
2006-05-18  Mark Mitchell  
1901
 
1902
        PR c++/27471
1903
        PR c++/27506
1904
        * typeck.c (decay_conversion): Convert bitfields to their declared
1905
        types here.  Improve documentation.  Avoid use of cp_convert.
1906
        (default_conversion): Make it static.  Perform integral promotions
1907
        before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
1908
        conversions.
1909
        * init.c (build_init): Remove.
1910
        (expand_default_init): Do not call rvalue.
1911
        * call.c (null_ptr_cst_p): Robustify.
1912
        (build_conditional_expr): Tidy.
1913
        * except.c (build_throw): Do not perform lvalue-to-rvalue
1914
        conversion on operand before initializing temporary.
1915
        * tree.c (convert.h): Include it.
1916
        (convert_bitfield_to_declared_type): Use convert_to_integer, not
1917
        cp_convert.
1918
        (rvalue): Don't convert bitfields to their declared type here.
1919
        * cp-tree.h (build_init): Remove.
1920
        (default_conversion): Likewise.
1921
        * typeck2.c (build_m_component_ref): Do not perform
1922
        lvalue-to-rvalue, function-to-pointer, or array-to-pointer
1923
        conversions here.  Correct error message.
1924
 
1925
2006-05-17  Mark Mitchell  
1926
 
1927
        PR c++/26122
1928
        * decl2.c (check_member_template): Remove checks for virtual
1929
        functions.
1930
        * parser.c (cp_parser_function_specifier_opt): Complain about
1931
        virtual templates.
1932
        (cp_parser_pure_specifier): Likewise.
1933
 
1934
        PR c++/26068
1935
        * parser.c (cp_parser_set_storage_class): Check for
1936
        invalid uses of storage classes on unbraced linkage
1937
        specifications.
1938
        (cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
1939
        to cp_parser_set_storage_class.
1940
 
1941
2006-05-17  Jakub Jelinek  
1942
 
1943
        PR c++/27491
1944
        * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
1945
        on CONSTRUCTORs.
1946
 
1947
        PR middle-end/27415
1948
        * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
1949
        on combined parallel workshare constructs.
1950
        * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
1951
 
1952
2006-05-16  H.J. Lu  
1953
 
1954
        PR driver/26885
1955
        * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
1956
 
1957
2006-05-15  Mark Mitchell  
1958
 
1959
        PR c++/27339
1960
        * cp-tree.h (perform_access_checks): New function.
1961
        * semantics.c (perform_access_checks): New function.
1962
        (perform_deferred_access_checks): Use it.
1963
        * parser.c (cp_parser_simple_declaration): Adjust call to
1964
        cp_parser_init_declarator.
1965
        (cp_parser_type_parameter): Do not defer checks in default
1966
        arguments.
1967
        (cp_parser_explicit_specialization): Adjust call to
1968
        cp_parser_single_declaration.
1969
        (cp_parser_init_declarator): Perform template-parameter access
1970
        checks.
1971
        (cp_parser_parameter_declaration): Do not defer checks for
1972
        template parameter default arguments.
1973
        (cp_parser_template_declaration_after_export): Gather access
1974
        checks for template parameters, and pass them to
1975
        cp_parser_single_declaration.
1976
        (cp_parser_template_parameter_access_checks): New function.
1977
        (cp_parser_single_declaration): Add checks parameter.
1978
 
1979
        PR c++/27505
1980
        * call.c (convert_like_real): Convert bitfields to their declared
1981
        types when forming an rvalue.
1982
        * tree.c (convert_bitfield_to_declared_type): New function.
1983
        (rvalue): Use it.
1984
        * cp-tree.h (convert_bitfield_to_declare_type): Declare it.
1985
 
1986
2006-05-15  Volker Reichelt  
1987
 
1988
        PR c++/27582
1989
        * pt.c (any_dependent_template_arguments_p): Return early on invalid
1990
        argument list.
1991
 
1992
        PR c++/27581
1993
        * search.c (adjust_result_of_qualified_name_lookup): Skip on
1994
        invalid context_class.
1995
 
1996
        PR c++/27315
1997
        * pt.c (do_decl_instantiation): Return early on invalid decl.
1998
 
1999
        PR c++/27559
2000
        * pt.c (push_template_decl_real): Return error_mark_node instead
2001
        of broken decl.
2002
 
2003
        PR c++/27496
2004
        * pt.c (tsubst_friend_class): Return early on invalid friend
2005
        declarations.
2006
 
2007
2006-05-14  H.J. Lu  
2008
 
2009
        * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
2010
        (cp/decl2.o): Likewise.
2011
        (cp/typeck.o): Likewise.
2012
        (cp/cvt.o): Likewise.
2013
        (cp/parser.o): Likewise.
2014
        (cp/call.o): Replace target.h with $(TARGET_H).
2015
 
2016
2006-05-14  Alexandre Oliva  
2017
 
2018
        * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
2019
        COMPONENT_REF alone.
2020
 
2021
2006-05-11  Volker Reichelt  
2022
 
2023
        PR c++/27547
2024
        * decl.c (copy_fn_p): Return early on non-member functions.
2025
 
2026
2006-05-08  Volker Reichelt  
2027
 
2028
        PR c++/27447
2029
        * decl2.c (build_memfn_type): Skip invalid functions and class types.
2030
 
2031
2006-05-06  Volker Reichelt  
2032
 
2033
        PR c++/27427
2034
        * pt.c (convert_nontype_argument): Return early on invalid arguments.
2035
 
2036
        * pt.c (process_template_parm): Remove superfluous temporary.
2037
 
2038
        PR c++/27430
2039
        * pt.c (process_template_parm): Handle erroneous non-type parameters.
2040
 
2041
        PR c++/27423
2042
        * typeck.c (convert_for_initialization): Skip erroneous types.
2043
 
2044
        PR c++/27422
2045
        * typeck.c (convert_arguments): Return early on args with
2046
        invalid types.
2047
 
2048
2006-05-03  Aldy Hernandez  
2049
 
2050
        PR/21391
2051
        * typeck.c (build_static_cast_1): Save casted types in used types
2052
        hash table.
2053
        (build_reinterpret_cast_1): Same.
2054
        * rtti.c (build_dynamic_cast_1): Same.
2055
 
2056
2006-05-04  Jakub Jelinek  
2057
 
2058
        PR c++/27359
2059
        * parser.c (cp_parser_omp_for_loop): Only call
2060
        cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
2061
        called.
2062
 
2063
2006-05-02  Mark Mitchell  
2064
 
2065
        PR c++/27102
2066
        * decl.c (grokdeclarator): Robustify checks for defining members
2067
        of incomplete types.
2068
 
2069
        PR c++/27309
2070
        * class.c (add_method): Call grok_special_member_properties.
2071
        * decl.c (grokdeclarator): Don't call it here.
2072
        (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
2073
        assignment operator.  Set TYPE_HAS_CONSTURCTOR if DECL is a
2074
        constructor.
2075
        (start_method): Don't call grok_special_member_properties.
2076
        * method.c (implicitly_declare_fn): Likewise.
2077
        * pt.c (instantiate_class_template): Likewise.
2078
        * decl2.c (grokfield): Likewise.
2079
 
2080
2006-05-02  Jakub Jelinek  
2081
 
2082
        PR middle-end/27337
2083
        * cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
2084
        * cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
2085
        * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
2086
 
2087
2006-04-30  Mark Mitchell  
2088
 
2089
        PR c++/27094
2090
        * pt.c (tsubst_default_argument): Increment function_depth around
2091
        call to tsubst_expr.
2092
        * parser.c (cp_parser_parameter_declaration): Likewise.
2093
        * decl2.c (mark_used): Tidy.
2094
 
2095
2006-04-30  Volker Reichelt  
2096
 
2097
        PR c++/27278
2098
        * decl.c (grok_op_properties): Skip operators with invalid args
2099
        when checking for class-type or enum-type args.
2100
 
2101
2006-04-29  Volker Reichelt  
2102
 
2103
        PR c++/27279
2104
        * decl.c (copy_fn_p): Skip functions with invalid first arg.
2105
 
2106
2006-04-27  Mark Mitchell  
2107
 
2108
        PR c++/27292
2109
        * tree.c (rvalue): Convert bitfields to their declared types.
2110
 
2111
        PR c++/27102
2112
        * typeck2.c (cxx_incomplete_type_diagnostic): Handle
2113
        TYPENAME_TYPE.
2114
 
2115
2006-04-24  Mark Mitchell  
2116
 
2117
        PR c++/27292
2118
        * typeck.c (decay_conversion): Don't adjust bitfield types.
2119
        (perform_integral_promotions): Treat bitfield enums as enums, not
2120
        as short integer types.
2121
        * tree.c (rvalue): Convert bitfields to their correct types.
2122
 
2123
2006-04-24  Volker Reichelt  
2124
 
2125
        PR c++/19963
2126
        * class.c (layout_class_type): Skip fields with invalid types.
2127
 
2128
2006-04-23  Mark Mitchell  
2129
 
2130
        PR c++/26912
2131
        * cp-tree.h (build_this_parm): Declare.
2132
        (grok_method_quals): Remove.
2133
        (build_memfn_type): Declare.
2134
        (build_artificial_parm): Declare.
2135
        (do_friend): Remove quals parameter.
2136
        * decl.c (build_this_parm): New function.
2137
        (grokfndecl): Use it.  Do not pass quals to grokclassfn.
2138
        (grokdeclarator): Rename quals to memfn_quals.  Avoid allocating
2139
        unnecessary TYPE_DECLs.  Correct qualification of member function
2140
        types.  Tidy.
2141
        * method.c (implicitly_declare_fn): Use build_this_parm.
2142
        * friend.c (do_friend): Remove quals parameter.
2143
        * decl2.c (grok_method_quals): Remove.
2144
        (build_memfn_type): New function.
2145
        (build_artificial_parm): Give it external linkage.
2146
        (grokclassfn): Remove quals parameter.  Do not build "this"
2147
        PARM_DECL here.
2148
 
2149
        PR c++/26534
2150
        * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
2151
        * typeck.c (is_bitfield_expr_with_lowered_type): New function.
2152
        (decay_conversion): Convert bitfield expressions to the correct
2153
        type.
2154
        (build_modify_expr): Remove spurious conversions.
2155
        * class.c (layout_class_type): Modify the type of bitfields to
2156
        indicate a limited range.
2157
        * call.c (standard_conversion): Adjust the type of bitfield
2158
        expressions used in an rvalue context.
2159
        (build_conditional_expr): Likewise.
2160
 
2161
2006-04-22  Kazu Hirata  
2162
 
2163
        * decl.c: Fix comment typos.
2164
 
2165
2006-04-21  Eric Christopher  
2166
 
2167
        * decl.c: Fix typo in function name.
2168
 
2169
2006-04-19  Volker Reichelt  
2170
 
2171
        PR c++/26558
2172
        * parser.c (cp_parser_class_name): Check for invalid typenames.
2173
        Rearrange code.
2174
 
2175
        PR c++/26739
2176
        * pt.c (tsubst_friend_function): Return early if
2177
        pushdecl_namespace_level fails.
2178
 
2179
        PR c++/26036
2180
        * typeck.c (convert_arguments): Return error_mark_node instead of
2181
        error_mark_list.
2182
        * cp-tree.h (error_mark_list): Remove declaration.
2183
        * decl.c (error_mark_list): Remove definition.
2184
        (cxx_init_decl_processing): Do not initialize error_mark_list.
2185
 
2186
        PR c++/10385
2187
        * rtti.c (build_dynamic_cast_1): Check for invalid conversions
2188
        before calling convert_to_reference.
2189
        * cvt.c (convert_to_reference): Assert that reftype is a
2190
        REFERENCE_TYPE.
2191
 
2192
2006-04-19  Mark Mitchell  
2193
 
2194
        PR c++/27102
2195
        * class.c (currently_open_class): Tidy.
2196
        * decl.c (grokdeclarator): If we encounter an erroneous
2197
        declarator, assume that we have already issued an error message
2198
        and return.  Return error_mark_node instead of NULL_TREE in more
2199
        places.  Issue errors about function definitions that do not have
2200
        a function declarator.  Check for complete types for all function
2201
        definitions.
2202
        * cp-tree.h (cp_error_declarator): Remove.
2203
        (currently_open_class): Change return type.
2204
        * parser.c (cp_parser_id_expression): Add optional_p parameter.
2205
        (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
2206
        (cp_parser_id_expression): Likewise.
2207
        (cp_parser_unqualified_id): If the name is optional, return
2208
        NULL_TREE.
2209
        (cp_parser_postfix_dot_deref_expression): Adjust calls.
2210
        (cp_parser_type_parameter): Likewise.
2211
        (cp_parser_unqualified_id): Likewise.
2212
        (cp_parser_direct_declarator): Likewise.
2213
        (cp_parser_declarator_id): Add optional_p parameter.
2214
        (cp_parser_function_definition_from_specifiers_and_declarator):
2215
        Assume that start_function indicates failure only if it has issued
2216
        an error.
2217
        (cp_parser_omp_var_list_no_open): Adjust calls.
2218
 
2219
2006-04-17  Janis Johnson  
2220
 
2221
        PR c++/26114, c++/26115
2222
        * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
2223
        * class.c (check_field_decls): Ditto.
2224
 
2225
2006-04-17  Volker Reichelt  
2226
 
2227
        * init.c (build_offset_ref): Remove superfluous temporary.
2228
 
2229
2006-04-16  Mark Mitchell  
2230
 
2231
        PR c++/26365
2232
        * typeck.c (finish_class_member_access_expr): Robustify
2233
 
2234
2006-04-15  Kazu Hirata  
2235
 
2236
        * Make-lang.in (cp/pt.o): Depend on vecprim.h.
2237
        * pt.c: Include vecprim.h.
2238
        (inline_parm_levels): Change the type to VEC(int,heap) *.
2239
        (inline_parm_levels_used): Remove.
2240
        (maybe_begin_member_template_processing,
2241
        maybe_end_member_template_processing): Use VEC instead of
2242
        VARRAY.
2243
 
2244
        * cp/call.c: Fix comment typos.
2245
 
2246
2006-04-12  Mark Mitchell  
2247
 
2248
        * parser.c (cp_parser_init_declarator): Initialize local variables
2249
        aggressively.
2250
 
2251
2006-04-12  Roger Sayle  
2252
 
2253
        * parser.c (cp_parser_init_declarator): Initialise
2254
        is_parenthesized_init to false to avoid compiler warning.
2255
 
2256
2006-04-11  Mark Mitchell  
2257
 
2258
        * cp-tree.h (build_operator_new_call): Adjust prototype.
2259
        (build_new_method_call): Likewise.
2260
        (build_op_delete_call): Likewise.
2261
        * init.c (build_raw_new_expr): New function.
2262
        (build_new_1): Pass information as parameters, rather than
2263
        bundling it into a NEW_EXPR.
2264
        (build_new): Adjust accordingly.
2265
        (build_vec_delete_1): Adjust for changes to build_op_delete_call.
2266
        (build_delete): Likewise.
2267
        * decl.c (finish_destructor_body): Likewise.
2268
        * call.c (build_operator_new_call): Return the allocation function
2269
        used.
2270
        (build_op_delete_call): Take allocation function as parameter.
2271
        (build_special_member_call): Adjust call to build_new_method_call.
2272
        (build_new_method_call): Return function called.
2273
        * pt.c (tsubst_copy_and_build): Adjust call to
2274
        build_new_method_call.
2275
        * semantics.c (finish_call_expr): Likewise.
2276
        * parser.c (cp_parser_postfix_expression): Likewise.
2277
        * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
2278
        "incomplete", not "undefined", types.
2279
 
2280
        PR c++/26295
2281
        * decl.c (grokdeclarator): Remove namespace-handling code for
2282
        pointers-to-members.
2283
        * parser.c (cp_parser_ptr_operator): Check for qualified names
2284
        using namespaces.
2285
 
2286
        PR c++/26122
2287
        * parser.c (cp_parser_init_declarator): Adjust logic for deciding
2288
        whether or not to look for a pure-specifier.
2289
        (cp_parser_member_declaration): Likewise.
2290
 
2291
2006-04-08  Kazu Hirata  
2292
 
2293
        * decl2.c, pt.c, semantics.c: Fix comment typos.
2294
 
2295
2006-04-06  Roger Sayle  
2296
 
2297
        * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
2298
 
2299
2006-04-05  Jason Merrill  
2300
 
2301
        * name-lookup.c (push_namespace_with_attribs): Temporarily disable
2302
        default hidden visibility for anonymous namespace.
2303
 
2304
2006-03-29  Roger Sayle  
2305
 
2306
        PR c++/22494
2307
        * init.c (build_vec_delete_1): Convert BASE pointer's type to
2308
        the base pointer type to avoid a type mismatch in the EQ_EXPR.
2309
 
2310
2006-03-24  Carlos O'Donell  
2311
 
2312
        * search.c (maybe_suppress_debug_info): If
2313
        flag_emit_class_debug_always then don't suppress.
2314
 
2315
2006-03-22  Jason Merrill  
2316
 
2317
        * name-lookup.c (push_namespace_with_attribs): Only apply hidden
2318
        visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
2319
 
2320
2006-03-21  Jakub Jelinek  
2321
 
2322
        PR c++/26691
2323
        * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
2324
 
2325
2006-03-21  Jason Merrill  
2326
 
2327
        PR c++/21581
2328
        * parser.c (cp_parser_declaration): Support attributes on
2329
        anonymous namespaces.
2330
        * name-lookup.c (push_namespace_with_attribs): Anonymous
2331
        namespaces default to hidden visibility.
2332
 
2333
2006-03-20  Jason Merrill  
2334
 
2335
        PR c++/21764, c++/19238
2336
        * decl.c (cp_finish_decl): Call determine_visibility later.
2337
        (start_preparsed_function): Likewise.
2338
        * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
2339
        (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
2340
        * name-lookup.h (struct cp_binding_level): Add has_visibility
2341
        bitfield.
2342
        * name-lookup.c: Include c-pragma.h.
2343
        (push_namespace_with_attribs): Split out from push_namespace.
2344
        Push visibility if appropriate.  Set TREE_PUBLIC on namespaces.
2345
        (leave_scope): Pop visibility if appropriate.
2346
        * decl2.c (determine_visibility_from_class): Split out from...
2347
        (determine_visibility): ...here.  Handle function scope and
2348
        nested classes.
2349
        (import_export_decl): Move visibility handling to
2350
        determine_visibility_from_class.
2351
        * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
2352
        attributes on namespace declarations.
2353
 
2354
2006-03-15  Volker Reichelt  
2355
 
2356
        PR c++/6634
2357
        * decl.c (grokdeclarator): Do not accept long long double.
2358
        Reorganize checks for invalid (combinations of) type modifiers.
2359
        Quote modifiers in messages.
2360
 
2361
2006-03-09  Jason Merrill  
2362
 
2363
        PR c++/16387, c++/16389
2364
        * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
2365
        (cxx_sizeof_or_alignof_expr): Split out from here.
2366
 
2367
2006-03-09  Diego Novillo  
2368
 
2369
        Merge from gomp-20050608-branch
2370
 
2371
        2006-02-02  Diego Novillo  
2372
 
2373
                * decl.c (pop_labels_1): Use appropriate pointer casting.
2374
                (poplevel_named_label_1): Likewise.
2375
                (named_label_entry_hash): Likewise.
2376
                (named_label_entry_eq): Likewise.
2377
                (check_goto): Likewise.
2378
                (define_label): Likewise.
2379
 
2380
        2006-01-26  Diego Novillo  
2381
 
2382
                * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
2383
                of TREE_BLOCK.
2384
                * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
2385
                instead of TREE_CODE/TREE_OPERAND.
2386
                * semantics.c: Likewise.
2387
                * parser.c: Likewise.
2388
 
2389
        2005-11-10  Diego Novillo  
2390
 
2391
                * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
2392
                target does not support TLS.
2393
 
2394
        2005-11-09  Jakub Jelinek  
2395
 
2396
                * decl.c (redeclaration_error_message): Don't error about
2397
                DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
2398
                (olddecl).
2399
 
2400
        2005-11-08  Jakub Jelinek  
2401
 
2402
                PR c++/24735
2403
                * semantics.c (finish_omp_barrier, finish_omp_flush): New
2404
                  functions.
2405
                * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
2406
                (cp_parser_omp_flush): Call finish_omp_flush.
2407
                * cp-tree.h (finish_omp_barrier, finish_omp_flush): New
2408
                  prototypes.
2409
 
2410
                PR c++/24734
2411
                * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
2412
 
2413
        2005-11-03  Jakub Jelinek  
2414
 
2415
                * semantics.c (finish_omp_threadprivate): Error on class-scope
2416
                variables.
2417
 
2418
        2005-11-02  Jakub Jelinek  
2419
 
2420
                * parser.c (cp_parser_omp_all_clauses): If some clause
2421
                type is not allowed, don't remove just one of the
2422
                clauses, but all clauses added in that loop round.
2423
 
2424
                * semantics.c (finish_omp_clauses): Fix function
2425
                comment. Don't handle non-const or mutable specially,
2426
                as const and not mutable is predetermined shared and
2427
                that leads to double error. Don't ICE if copyin var is
2428
                PARM_DECL.
2429
 
2430
                PR c++/24613
2431
                * parser.c (cp_parser_pragma): Diagnose
2432
                PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
2433
                construct.
2434
 
2435
                * semantics.c (finish_omp_threadprivate): Error if V
2436
                  is automatic variable or has incomplete type.
2437
 
2438
        2005-11-01  Diego Novillo  
2439
 
2440
                * parser.c (cp_parser_omp_all_clauses): Use
2441
                OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
2442
 
2443
        2005-11-01  Diego Novillo  
2444
 
2445
                * parser.c (cp_parser_omp_all_clauses): When emitting an
2446
                error message, remove the invalid clause from the list.
2447
 
2448
        2005-10-31  Diego Novillo  
2449
 
2450
                * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
2451
                combined parallel+workshare directives.
2452
 
2453
        2005-10-31  Richard Henderson  
2454
 
2455
                * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
2456
                Use cxx_omp_clause_dtor.
2457
                * cp-tree.h (CP_OMP_CLAUSE_INFO): New.
2458
                (cxx_omp_clause_dtor): New.
2459
                * cp-gimplify.c (cxx_omp_clause_apply_fn): New.
2460
                (cxx_omp_clause_default_ctor): Use it.
2461
                (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
2462
                Likewise.
2463
                (cxx_omp_clause_dtor): New.
2464
                * semantics.c (finish_omp_clauses): Rewrite cdtor
2465
                checking to fill in CP_OMP_CLAUSE_INFO.  Don't
2466
                specialcase LASTPRIVATE for removal.
2467
                (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
2468
                cxx_omp_clause_assign_op): Move to cp-gimplify.c.
2469
 
2470
        2005-10-28  Jakub Jelinek  
2471
 
2472
                * semantics.c (finish_omp_threadprivate): If
2473
                  DECL_RTL_SET_P, call make_decl_rtl again so that
2474
                  encode_section_info can update SYMBOL_REF's flags.
2475
 
2476
        2005-10-26  Jakub Jelinek  
2477
 
2478
                * semantics.c (finish_omp_for): Don't segfault if COND
2479
                or INCR is NULL.  If not calling c_finish_omp_for
2480
                right away and one of COND and INCR is NULL, issue
2481
                error and don't expand anything.
2482
 
2483
                PR c++/24512
2484
                * cp-tree.h (finish_omp_for): Add PRE_BODY argument.
2485
                * semantics.c (finish_omp_for): Likewise.  Set
2486
                OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
2487
                into the current statement list if not processing
2488
                template decl or pass it to c_finish_omp_for.
2489
 
2490
                * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
2491
                into PRE_BODY statement list.  Pass it to finish_omp_for.
2492
                * pt.c (tsubst_expr) : tsubst_expr also
2493
                OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
2494
                finish_omp_for.  Put all the statements into sk_omp
2495
                scope.
2496
 
2497
        2005-10-25  Jakub Jelinek  
2498
 
2499
                PR c++/24516
2500
                * parser.c (struct cp_parser): Rename in_iteration_statement
2501
                field to in_statement.
2502
                (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
2503
                (IN_OMP_BLOCK, IN_OMP_FOR): Change values.
2504
                (cp_parser_new, cp_parser_begin_omp_structured_block,
2505
                cp_parser_end_omp_structured_block,
2506
                cp_parser_omp_for_loop): Adjust for
2507
                in_iteration_statement renaming.
2508
                (cp_parser_selection_statement): Save
2509
                parser->in_iteration, or it temporarily with
2510
                IN_SWITCH_STMT for the
2511
                cp_parser_implicitly_scoped_statement call.
2512
                (cp_parser_iteration_statement): Adjust for
2513
                in_iteration_statement renaming.  Use
2514
                IN_ITERATION_STMT rather than true.
2515
                (cp_parser_jump_statement): Adjust for
2516
                in_iteration_statement renaming and new values.  Don't
2517
                error on break in a switch statement within OMP_FOR or
2518
                OpenMP structured block.
2519
 
2520
                PR c++/24513
2521
                * parser.c (cp_parser_cache_group): Don't stop if next
2522
                token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
2523
                well.  If current token is CPP_PRAGMA, consume
2524
                everything until CPP_PRAGMA_EOL inclusive.
2525
 
2526
        2005-10-24  Jakub Jelinek  
2527
 
2528
                PR c++/24502
2529
                * semantics.c (finish_omp_for): Handle MODOP_EXPR in
2530
                addition to MODIFY_EXPR.
2531
 
2532
        2005-10-23  Richard Henderson  
2533
 
2534
                * cp-gimplify.c (struct cp_gimplify_ctx): Remove.
2535
                (bc_label): New.
2536
                (begin_bc_block, finish_bc_block): Use it.
2537
                (push_context, pop_context): Remove.
2538
                (cp_genericize): Don't use them.  Assert bc_label is null.
2539
                * semantics.c (finish_omp_clauses): Create a fake data
2540
                element of TYPE for probing ctors.
2541
 
2542
        2005-10-23  Richard Henderson  
2543
 
2544
                * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
2545
                (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
2546
                (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
2547
                (LANG_HOOKS_OMP_CLAUSE_DTOR): New.
2548
                * semantics.c (finish_omp_clauses): Look through
2549
                arrays when looking up special member calls.  Also
2550
                remove FIRSTPRIVATE when LASTPRIVATE fails.
2551
                (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
2552
                (cxx_omp_clause_assign_op): New.
2553
                * cp-tree.h: Declare them.
2554
 
2555
        2005-10-21  Richard Henderson  
2556
 
2557
                * decl.c (check_previous_goto_1): Return false if error.
2558
                (check_switch_goto): Likewise.
2559
                (finish_case_label): Don't emit the case label on error.
2560
                * parser.c (struct cp_parser): Revert
2561
                in_switch_statement_p changes.
2562
                (cp_parser_labeled_statement,
2563
                cp_parser_selection_statement): Likewise.
2564
                (cp_parser_begin_omp_structured_block): Don't save...
2565
                (cp_parser_end_omp_structured_block): or restore
2566
                in_switch_statement_p.
2567
 
2568
        2005-10-21  Richard Henderson  
2569
 
2570
                * semantics.c (finish_omp_threadprivate): Set
2571
                decl_flags.u2sel when necessary.
2572
 
2573
        2005-10-21  Richard Henderson  
2574
 
2575
                * decl.c (poplevel_named_label_1): Restore creation of the
2576
                bad_decls list.
2577
                (decl_jump_unsafe): Check for error_mark_node types.
2578
                (check_goto): Don't check cdtor_label.  Don't use identify_goto.
2579
                * semantics.c (finish_return_stmt): Do check_omp_return before
2580
                converting to cdtor_label goto.
2581
 
2582
        2005-10-21  Richard Henderson  
2583
 
2584
                PR c++/24451
2585
                * decl.c (check_omp_return): Return false on error.
2586
                * cp-tree.h (check_omp_return): Update decl.
2587
                * semantics.c (finish_return_stmt): Avoid adding
2588
                return on error.
2589
 
2590
        2005-10-21  Richard Henderson  
2591
 
2592
                * cp-tree.h (struct language_function): Remove
2593
                x_named_label_uses.
2594
                Change x_named_labels to a hashtable.
2595
                (check_omp_return): Declare.
2596
                * decl.c (struct named_label_use_entry): Rename from
2597
                named_label_use_list.  Remove label_decl.
2598
                (struct named_label_entry): Rename from
2599
                named_label_list.  Remove old_value and next.  Change
2600
                in_try_scope and in_catch_scope to bool. Add
2601
                in_omp_scope.
2602
                (pop_labels_1): New.
2603
                (pop_labels): Use it.
2604
                (pop_local_label, poplevel_named_label_1): New.
2605
                (poplevel): Use them.
2606
                (named_label_entry_hash, named_label_entry_eq): New.
2607
                (make_label_decl): Create named_labels.  Move label
2608
                creation bits from lookup_label.
2609
                (declare_local_label): Tidy.
2610
                (identify_goto): Split out from ...
2611
                (check_previous_goto_1): Add exited_omp argument.
2612
                Handle omp scopes.
2613
 
2614
                (use_label): Merge into...
2615
                (check_goto): ... here.  Handle omp scopes.
2616
                (check_omp_return): New.
2617
                (check_previous_gotos): Merge into...
2618
                (define_label): ... here.
2619
                (save_function_data): Remove x_named_label_uses reference.
2620
                (finish_function): Likewise.
2621
                * name-lookup.h (sk_omp): New.
2622
                * name-lookup.c (begin_scope): Handle it.
2623
                * parser.c (cp_parser_omp_for): Don't create extra
2624
                compound stmt.
2625
 
2626
                (cp_parser_omp_sections): Likewise.
2627
                * semantics.c (finish_return_stmt): Call check_omp_return.
2628
                (begin_omp_structured_block): Use sk_omp.
2629
                (finish_omp_structured_block): Use do_poplevel.  Don't build a
2630
                MUST_NOT_THROW expression here.
2631
                (begin_omp_parallel, finish_omp_parallel): Don't create extra
2632
                compound statements.
2633
 
2634
        2005-10-21  Diego Novillo  
2635
 
2636
                PR 24455
2637
                * cp/cp-tree.h (struct lang_decl_flags): Add field
2638
                threadprivate_p.
2639
                (CP_DECL_IS_THREADPRIVATE): Define.
2640
                * cp/semantics.c (finish_omp_threadprivate): Set.  Do
2641
                not error out if CP_DECL_IS_THREADPRIVATE is set
2642
                already.
2643
                * cp/decl.c (duplicate_decls): Merge
2644
                CP_DECL_THREADPRIVATE_P.
2645
 
2646
        2005-10-20  Richard Henderson  
2647
 
2648
                * cp-gimplify.c (cp_gimplify_omp_for): New.
2649
                (cp_gimplify_expr): Call it.
2650
                * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
2651
                * parser.c (struct cp_parser): Rename
2652
                in_iteration_statement_p to in_iteration_statement and
2653
                change to unsigned char.  Similarly with
2654
                in_switch_statement.  Update all users.
2655
                (IN_OMP_BLOCK, IN_OMP_FOR): New.
2656
                (cp_parser_labeled_statement): Diagnose case labels
2657
                binding closer to an openmp block nested than the
2658
                switch.
2659
                (cp_parser_jump_statement): Diagnose break and
2660
                continue labels binding closer to an openmp block than
2661
                an iteration or switch.
2662
                (cp_parser_omp_for_loop): Mark in_iteration_statement
2663
                for an omp for.
2664
                (cp_parser_begin_omp_structured_block): New.
2665
                (cp_parser_end_omp_structured_block): New.
2666
                (cp_parser_omp_structured_block): Use them.
2667
                (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
2668
                (cp_parser_omp_parallel): Likewise.
2669
 
2670
        2005-10-20  Richard Henderson  
2671
 
2672
                * semantics.c (begin_omp_structured_block): New.
2673
                (finish_omp_structured_block): New.
2674
                (begin_omp_parallel, finish_omp_parallel): Use them.
2675
                * parser.c (cp_parser_omp_structured_block): Likewise.
2676
                (cp_parser_omp_for): Likewise.
2677
                (cp_parser_omp_sections_scope): Likewise.
2678
                * cp-tree.h: Declare them.
2679
 
2680
        2005-10-20  Richard Henderson  
2681
 
2682
                * parser.c (cp_parser_omp_master): Return the statement.
2683
                (cp_parser_omp_ordered): Likewise.
2684
                (cp_parser_omp_construct): Set the locus for them.
2685
 
2686
        2005-10-19  Richard Henderson  
2687
 
2688
                * semantics.c (finish_omp_atomic): Revert to
2689
                uses_template_parms.
2690
 
2691
        2005-10-19  Richard Henderson  
2692
 
2693
                * semantics.c (finish_omp_clauses): Avoid
2694
                DECL_THREAD_LOCAL_P on a PARM_DECL.  Remove some
2695
                stub asserts guaranteed to fail.
2696
 
2697
        2005-10-19  Richard Henderson  
2698
 
2699
                * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
2700
                (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
2701
                * parser.c (cp_parser_omp_clause_copyin): Remove.
2702
                (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
2703
                Call finish_omp_clauses.
2704
                (cp_parser_omp_clause_if): Don't do error checking here.
2705
                (cp_parser_omp_clause_num_threads): Likewise.
2706
                (cp_parser_omp_clause_schedule): Likewise.
2707
                (cp_parser_omp_atomic): Use finish_omp_atomic.
2708
                (cp_parser_omp_for_loop): Don't discard DECL_EXPR.
2709
                Don't decompose assignment statment here.  Use
2710
                finish_omp_for.
2711
 
2712
                * pt.c (tsubst_omp_clauses): New.
2713
                (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
2714
                OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
2715
                * semantics.c (finish_omp_clauses): New.
2716
                (begin_omp_parallel, finish_omp_parallel): Know Less about the
2717
                internals of the stmt_list stack.
2718
                (finish_omp_for, finish_omp_atomic): New.
2719
 
2720
        2005-10-18  Jakub Jelinek  
2721
 
2722
                * semantics.c (cxx_omp_predetermined_sharing): New function.
2723
                * cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
2724
                * cp-objcp-common.h
2725
                (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
2726
 
2727
        2005-10-18  Richard Henderson  
2728
 
2729
                * parser.c (cp_parser_omp_single): Use make_node and accessors
2730
                instead of build.
2731
 
2732
        2005-10-17  Richard Henderson  
2733
 
2734
                * parser.c (cp_parser_omp_for_loop): Handle declarations.
2735
 
2736
        2005-10-12  Richard Henderson  
2737
 
2738
                * Make-lang.in (CXX_C_OBJS): Add c-omp.o.
2739
                * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
2740
                (finish_omp_threadprivate): Declare.
2741
                * parser.c (struct cp_lexer): Add in_pragma.
2742
                (cp_lexer_consume_token): Don't consume a PRAGMA_EOL
2743
                when in_pragma.
2744
                (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
2745
                (cp_parser_skip_to_end_of_statement): Likewise.
2746
                (cp_parser_skip_to_end_of_block_or_statement): Likewise.
2747
                (cp_parser_skip_to_closing_brace): Likewise.
2748
                (cp_parser_skip_to_pragma_eol): Reset in_pragma.
2749
                (cp_parser_require_pragma_eol): New.
2750
                (cp_parser_statement): Add in_compound argument;
2751
                update all callers.
2752
                Restart if a non-statement pragma seen outside a
2753
                compound.
2754
                (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
2755
                (cp_parser_declaration_seq_opt): Likewise.
2756
                (cp_parser_member_specification_opt): Likewise.
2757
                (cp_parser_function_definition_after_decl): Likewise.
2758
                (cp_parser_skip_until_found): Likewise.
2759
                (cp_parser_cache_group): Likewise.
2760
                (enum pragma_omp_clause, cp_parser_omp_clause_name,
2761
                check_no_duplicate_clause,
2762
                cp_parser_omp_var_list_no_open,
2763
                cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
2764
                cp_parser_omp_clause_default, cp_parser_omp_clause_if,
2765
                cp_parser_omp_clause_nowait,
2766
                cp_parser_omp_clause_num_threads,
2767
                cp_parser_omp_clause_ordered,
2768
                cp_parser_omp_clause_reduction,
2769
                cp_parser_omp_clause_schedule,
2770
                cp_parser_omp_all_clauses,
2771
                cp_parser_omp_structured_block, cp_parser_omp_atomic,
2772
                cp_parser_omp_barrier, cp_parser_omp_critical,
2773
                cp_parser_omp_flush, cp_parser_omp_for_loop,
2774
                cp_parser_omp_for, cp_parser_omp_master,
2775
                cp_parser_omp_ordered, cp_parser_omp_sections_scope,
2776
                cp_parser_omp_sections, cp_parser_omp_parallel,
2777
                cp_parser_omp_single, cp_parser_omp_threadprivate,
2778
                cp_parser_omp_construct): New.
2779
                (cp_parser_pragma): Handle OpenMP pragmas.
2780
                * semantics.c (finish_omp_threadprivate): New.
2781
                (begin_omp_parallel, finish_omp_parallel): New.
2782
 
2783
        2005-10-11  Richard Henderson  
2784
 
2785
                * parser.c (struct cp_token): Add pragma_kind.
2786
                (eof_token): Initialize it.
2787
                (cp_lexer_handle_pragma): Remove.
2788
                (cp_parser_initial_pragma): New.
2789
                (cp_lexer_new_main): Use it.
2790
                (cp_lexer_get_preprocessor_token): Initialize pragma_kind.
2791
                (cp_lexer_print_token): Don't handle CPP_PRAGMA.
2792
                (cp_parser_skip_to_pragma_eol): New.
2793
                (cp_parser_error): Use it.
2794
                (pragma_lex): New.
2795
 
2796
        2005-10-09  Richard Henderson  
2797
 
2798
                * lex.c (parse_strconst_pragma): Update for c_lex name change.
2799
                (handle_pragma_java_exceptions): Likewise.
2800
                * parser.c (cp_lexer_new_main): Likewise.
2801
 
2802
        2005-10-06  Richard Henderson  
2803
 
2804
                * parser.c (cp_lexer_new_main): Comment out defer_pragmas.
2805
                (cp_lexer_handle_pragma): Comment out
2806
                cpp_handle_deferred_pragma.
2807
 
2808
        2005-10-01  Richard Henderson  
2809
 
2810
                * name-lookup.c (lookup_name): Remove prefer_type argument.
2811
                (lookup_name_prefer_type): New function.
2812
                * name-lookup.h (lookup_name_prefer_type): Declare it.
2813
                * decl.c (lookup_and_check_tag): Use it.
2814
                * pt.c (tsubst_friend_class): Likewise. Update for
2815
                lookup_name change.
2816
                (lookup_template_class, tsubst_copy_and_build): Likewise.
2817
 
2818
2006-03-06  Volker Reichelt  
2819
 
2820
        PR c++/15759
2821
        * tree.c (bot_manip): Don't call mark_used.
2822
 
2823
2006-03-02  Mike Stump  
2824
 
2825
        * decl2.c (import_export_decl): Remove redundant call to
2826
        targetm.cxx.key_method_may_be_inline ().
2827
 
2828
2006-03-02  Richard Sandiford  
2829
 
2830
        * decl.c (start_decl): Use have_global_bss_p when deciding
2831
        whether to make the decl common.
2832
 
2833
2006-03-01  Mike Stump  
2834
 
2835
        PR darwin/25908
2836
        * decl2.c (import_export_decl): Fix ABI breakage on darwin.
2837
 
2838
2006-02-24  Geoffrey Keating  
2839
 
2840
        * except.c (expand_start_catch_block): Handle
2841
        flag_use_cxa_get_exception_ptr.
2842
 
2843
2006-02-22  Volker Reichelt  
2844
 
2845
        PR c++/26291
2846
        * decl.c (grok_op_properties): Check for ellipsis in arguments of
2847
        operators.
2848
 
2849
2006-02-20  Rafael Ávila de Espíndola  
2850
 
2851
        * Make-lang.in (C++): Remove.
2852
        (.PHONY): Remove C++.
2853
 
2854
2006-02-18  Mark Mitchell  
2855
 
2856
        PR c++/26266
2857
        * cp-tree.h (cp_finish_decl): Adjust declaration.
2858
        (grokbitfield): Likewise.
2859
        (finish_static_data_member_decl): Likewise.
2860
        * init.c (constant_value_1): Ensure processing_template_decl when
2861
        folding non-dependent initializers for static data members of
2862
        dependent types.  Return error_mark_node for erroneous
2863
        initailizers.
2864
        * class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
2865
        * decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
2866
        (cp_finish_decl): Add init_const_expr_p parameter.  Set
2867
        DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2868
        (finish_decl): Adjust call to cp_finish_decl.
2869
        (compute_array_index_type): Robustify.
2870
        (start_method): Use finish_decl, not cp_finish_decl.
2871
        * rtti.c (emit_tinfo_decl): Likewise.
2872
        * except.c (initialize_handler_parm): Adjust call to
2873
        cp_finish_decl.
2874
        (expand_start_catch_block): Likewise.
2875
        * cvt.c (build_up_reference): Adjust call to cp_finish_decl.
2876
        * pt.c (instantiate_class_template): Adjust call to
2877
        finish_static_data_member_decl.
2878
        (tsubst_expr): Use finish_decl, not cp_finish_decl.
2879
        (instantiate_decl): Adjust call to cp_finish_decl.
2880
        * name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
2881
        cp_finish_decl.
2882
        * decl2.c (finish_static_data_member_decl): Add init_const_expr_p
2883
        parameter.
2884
        (grokfield): Likewise.
2885
        * parser.c (cp_parser_condition): Check for constant initializers.
2886
        (cp_parser_init_declarator): Adjust calls to grokfield and
2887
        cp_finish_decl.  Don't set
2888
        DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2889
        (cp_parser_member_declaration): Likewise.
2890
        (cp_parser_objc_class_ivars): Likewise.
2891
 
2892
2006-02-14  Volker Reichelt  
2893
 
2894
        * call.c (standard_conversion): Return NULL instead of 0.
2895
        (build_user_type_conversion_1): Likewise.
2896
        (tourney): Likewise.
2897
        * decl.c (redeclaration_error_message): Likewise.
2898
        * error.c (language_to_string): Likewise.
2899
 
2900
2006-02-13  Volker Reichelt  
2901
 
2902
        * cp-tree.h (warn_hidden): Remove prototype.
2903
        * class.c (warn_hidden): Make static.
2904
 
2905
        * cp-tree.h (build_type_conversion): Remove prototype.
2906
        * cvt.c (build_type_conversion): Add prototype, make static.
2907
 
2908
        * cp-tree.h (push_tinst_level): Remove prototype.
2909
        (pop_tinst_level): Likewise.
2910
        * pt.c (push_tinst_level): Add prototype, make static.
2911
        (pop_tinst_level): Likewise.
2912
 
2913
2006-02-13  Volker Reichelt  
2914
 
2915
        * decl.c (grokdeclarator): Return NULL_TREE instead of 0.
2916
        * typeck.c (unary_complex_lvalue): Likewise.
2917
 
2918
2006-02-13  Volker Reichelt  
2919
 
2920
        * lex.c (parse_strconst_pragma): Return error_mark_node instead of
2921
        "(tree)-1" to indicate failure.  Simplify.
2922
        (handle_pragma_interface): Test for error_mark_node instead of
2923
        "(tree)-1".
2924
        (handle_pragma_implementation): Likewise.
2925
 
2926
2006-02-13  Volker Reichelt  
2927
 
2928
        PR c++/26151
2929
        * parser.c (cp_parser_decl_specifier_seq): Check for duplicate
2930
        decl-specifiers.  Remove extra check for duplicate 'friend'.
2931
        * decl.c (grokdeclarator): Remove check for duplicate
2932
        decl-specifiers.  Set longlong together with long_p.
2933
 
2934
2006-02-12  Jason Merrill  
2935
 
2936
        PR c++/24996
2937
        * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
2938
        TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
2939
 
2940
2006-02-10  Volker Reichelt  
2941
 
2942
        * class.c (debug_class): Remove extern.
2943
        (debug_thunks): Likewise.
2944
 
2945
2006-02-09  Gabriel Dos Reis  
2946
 
2947
        * typeck.c (string_conv_p): Don't test for flag_const_strings.
2948
 
2949
2006-02-08  Jason Merrill  
2950
 
2951
        PR c++/25979
2952
        * cp-gimplify.c (cp_gimplify_expr): Don't call
2953
        cp_gimplify_init_expr for MODIFY_EXPRs.
2954
        * typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
2955
 
2956
2006-02-08  Volker Reichelt  
2957
 
2958
        PR c++/26071
2959
        * decl.c (grokdeclarator): Set dname also for destructor.
2960
 
2961
        PR c++/26070
2962
        * decl.c (grokdeclarator): Clear storage_class together with staticp.
2963
 
2964
2006-02-07  Gabriel Dos Reis  
2965
 
2966
        * cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
2967
        (cp_build_qualified_type): Propogate renaming.
2968
        * call.c (convert_like_real): Likewise.
2969
        * cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
2970
        * decl.c (make_typename_type, grokdeclarator): Likewise.
2971
        * pt.c (tsubst_friend_function, instantiate_class_template,
2972
        tsubst_default_argument, instantiate_decl,
2973
        tsubst_initializer_list, tsubst_enum): Likewise.
2974
        * semantics.c (finish_template_type): Likewise.
2975
        * typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
2976
 
2977
2006-02-07  Dirk Mueller  
2978
 
2979
        * typeck.c (build_binary_op): Annotate div-by-zero
2980
        warnings to make -Wno-div-by-zero have an effect.
2981
 
2982
2006-02-07  Mark Mitchell  
2983
 
2984
        PR c++/9737
2985
        * pt.c (coerce_template_template_parms): Do not templates with
2986
        excess default arguments to match template template parameters
2987
        with fewer parameters.
2988
        (coerce_template_parms): Add use_default_args parameter; use
2989
        default arguments only when true.
2990
        (lookup_template_class): Adjust call to coerce_template_parms.
2991
        (fn_type_unification): Likewise.
2992
        (unify): Likewise.
2993
        (get_bindings): Likewise.
2994
        (dependent_type_p): Add assertions.
2995
 
2996
2006-02-06  Roger Sayle  
2997
 
2998
        * decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
2999
        * rtti.c (typeinfo_in_lib_p): Likewise.
3000
        * cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
3001
        * name-lookup.c (arg_assoc_type): Likewise.
3002
 
3003
2006-02-04  Gabriel Dos Reis  
3004
 
3005
        * cp-tree.h (tf_warn_or_error): New substituion flag.
3006
        (cp_build_qualified_type): Use it.
3007
        * call.c (convert_like_real): Likewise.
3008
        * cvt.c (cp_convert_to_pointer): Likewise.
3009
        (convert_to_reference): Likewise.
3010
        * decl.c (make_typename_type): Likewise.
3011
        (grokdeclarator): Likewise.
3012
        * pt.c (tsubst_friend_function): Likewise.
3013
        (tsubst_friend_class): Likewise.
3014
        (instantiate_class_template): Likewise.
3015
        (tsubst_default_argument): Likewise.
3016
        (instantiate_decl): Likewise.
3017
        (tsubst_initializer_list): Likewise.
3018
        (tsubst_enum): Likewise.
3019
        * semantics.c (finish_template_type): Likewise.
3020
        * typeck.c (build_ptrmemfunc): Likewise.
3021
        (convert_for_assignment): Likewise.
3022
 
3023
2006-02-03  Lee Millward  
3024
 
3025
        * typeck.c (string_conv_p): Pass appropiate
3026
        OPT_Wxxxx values when calling warning().
3027
        (build_array_ref, cxx_mark_addressable): Likewise.
3028
        (check_return_expr): Likewise.
3029
 
3030
        * init.c (perform_member_init): Likewise.
3031
        (sort_mem_initializers, emit_mem_initializers): Likewise.
3032
 
3033
        * class.c (check_field_decls): Likewise.
3034
        (warn_about_ambiguous_bases): Likewise.
3035
 
3036
        * decl.c (pop_label, poplevel): Likewise.
3037
        (duplicate_decls, grok_op_properties): Likewise.
3038
        (start_preparsed_function, finish_function): Likewise.
3039
 
3040
        * name-lookup.c (pushdecl_maybe_friend): Likewise.
3041
        (pushdecl_maybe_friend): Likewise.
3042
 
3043
        * parser.c (cp_parser_warn_min_max): Likewise.
3044
        (cp_parser_cast_expression): Likewise.
3045
 
3046
        * method.c (lazily_declare_fn): Likewise.
3047
        * cvt.c (convert_to_void): Likewise.
3048
        * mangle.c (finish_mangling): Likewise.
3049
        * cp-gimplify.c (gimplify_expr_stmt): Likewise.
3050
 
3051
2006-02-03  Mark Mitchell  
3052
 
3053
        * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
3054
        not IDENTIFIER_OPNAME_P.
3055
 
3056
2006-01-31  Mark Mitchell  
3057
 
3058
        PR c++/25342
3059
        * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
3060
        documentation.
3061
        * pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
3062
        not TREE_VALUE.
3063
        (instantiate_class_template): Simplify.
3064
        (verify_class_unification): Remove.
3065
        (unify): Document parameters.  Use INNERMOST_TEMPLATE_ARGS to
3066
        permit multiple levels of template arguments.
3067
        (more_specialized_class): Simplify.
3068
        (get_class_bindings): Pass full arguments to unify.  Fold
3069
        verify_class_unification into this function.  Return full
3070
        arguments.
3071
        (most_specialized_class): Adjust for changes to
3072
        get_class_bindings.  Issue errors here for ambiguity.  Return the
3073
        fully deduced arguments for the most specialized class, in
3074
        addition to the partial specialization.
3075
 
3076
2006-01-31  Ben Elliston  
3077
 
3078
        * mangle.c: Comment fix.
3079
 
3080
2006-01-29  Gabriel Dos Reis  
3081
 
3082
        * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
3083
        * repo.c (extract_string, afgets): Use cast when converting from
3084
        void *.
3085
 
3086
2006-01-29  Gabriel Dos Reis  
3087
 
3088
        * call.c (alloc_conversion): Use cast when converting from void *.
3089
        (alloc_conversions): Likewise.
3090
        (add_candidate): Likewise.
3091
        (print_z_candidates): Likewise.
3092
        (add_warning): Likewise.
3093
        * pt.c (retrieve_local_specialization): Likewise.
3094
        (process_partial_specialization): Likewise.
3095
        (mangle_class_name_for_template): Likewise.
3096
        (tsubst_template_args): Likewise.
3097
        * typeck2.c (pat_calc_hash): Likewise.
3098
        (pat_compare): Likewise.
3099
        (abstract_virtuals_error): Likewise.
3100
        * class.c (method_name_cmp): Likewise.
3101
        (resort_method_name_cmp): Likewise.
3102
        (get_vfield_name): Likewise.
3103
        * decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
3104
        * lex.c (init_reswords): Likewise.
3105
        * rtti.c (create_pseudo_type_info): Likewise.
3106
        * search.c (dfs_lookup_base): Likewise.
3107
        (dfs_dcast_hint_pre): Likewise.
3108
        (dfs_dcast_hint_post): Likewise.
3109
        * tree.c (hash_tree_cons): Likewise.
3110
        * repo.c (extract_string): Likewise.
3111
        (afgets): Likewise.
3112
        * cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
3113
        * g++spec.c (lang_specific_driver): Likewise.
3114
 
3115
2006-01-28  Gabriel Dos Reis  
3116
 
3117
        * call.c (joust): Pass option code to warning.  Use inform for
3118
        explanation.
3119
        * class.c (check_bases): Likewise.
3120
        (maybe_warn_about_overly_private_class): Likewise.
3121
        (check_field_decls): Likewise.
3122
        (layout_empty_base): Likewise.
3123
        (layout_virtual_bases): Likewise.
3124
        (layout_class_type): Likewise.
3125
 
3126
2006-01-28  Mark Mitchell  
3127
 
3128
        PR c++/25999
3129
        * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
3130
        here, not ...
3131
        (start_function): ... here.
3132
 
3133
2006-01-28  Mark Mitchell  
3134
 
3135
        PR c++/25855
3136
        * class.c (resolve_address_of_overloaded_function): Adjust use of
3137
        return value from most_specialized_instantiation.
3138
        * pt.c (determine_specialization): Avoid multiple calls to
3139
        get_bindings.
3140
        (most_specialized_instantiation): When a tie occurs, set the
3141
        current presumed champion to the next template.  Return the
3142
        TREE_LIST node containing the template, rather than the template
3143
        itself.
3144
        (most_specialized): Remove.
3145
        * name-lookup.c (push_overloaded_decl): When duplicate_decls
3146
        indicates a failed redeclaration, report that to callers.
3147
 
3148
2006-01-26  Jason Merrill  
3149
 
3150
        PR c++/16021
3151
        * name-lookup.c (parse_using_directive): Require strong using to
3152
        name a nested namespace.
3153
 
3154
2006-01-25  Volker Reichelt  
3155
 
3156
        Revert:
3157
        * cp-tree.h (do_poplevel): Remove prototype.
3158
        * semantics.c (do_poplevel): Add prototype.  Make static.
3159
 
3160
        Revert:
3161
        * cp-tree.h (default_conversion): Remove prototype.
3162
        * typeck.c (default_conversion): Make static.
3163
 
3164
2006-01-25  Volker Reichelt  
3165
 
3166
        * cp-tree.h (get_primary_binfo): Remove prototype.
3167
        (push_using_decl): Likewise.
3168
        (current_template_args): Likewise.
3169
        (more_specialized_class): Likewise.
3170
        (mark_class_instantiated): Likewise.
3171
        (default_conversion): Likewise.
3172
        (pfn_from_ptrmemfunc): Likewise.
3173
        * class.c (get_primary_binfo): Add prototype, make static, simplify.
3174
        * name-lookup.c (push_using_decl): Make static.
3175
        * pt.c (current_template_args): Likewise.
3176
        (more_specialized_class): Likewise.
3177
        (mark_class_instantiated): Likewise.
3178
        * typeck.c (default_conversion): Make static.
3179
        (pfn_from_ptrmemfunc): Add prototype, make static.
3180
 
3181
2006-01-24  Dirk Mueller  
3182
 
3183
        * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
3184
 
3185
2006-01-24  Volker Reichelt  
3186
 
3187
        PR c++/25552
3188
        * parser.c (cp_parser_unqualified_id): Check that destructor name
3189
        and scope match.
3190
        * call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
3191
        Adjust comment.  Return early if possible.
3192
        Use same_type_p to compare types.
3193
        * typeck.c (lookup_destructor): Adjust call to check_dtor_name.
3194
 
3195
2006-01-24  Mark Mitchell  
3196
 
3197
        * semantics.c: Remove outdated comment.
3198
 
3199
2006-01-23  Volker Reichelt  
3200
 
3201
        * cp-tree.h (do_poplevel): Remove prototype.
3202
        * semantics.c (do_poplevel): Add prototype.  Make static.
3203
 
3204
        * cp-tree.h (original_type): Remove prototype.
3205
        * typeck.c (original_type): Make static.
3206
 
3207
        * cp-tree.h (declare_global_var): Remove prototype.
3208
        * decl.c (declare_global_var): Make static.
3209
 
3210
        * cp-tree.h (implicitly_declare_fn): Remove prototype.
3211
        * method.c (implicitly_declare_fn): Make static.
3212
 
3213
        * cp-tree.h (fold_decl_constant_value): Remove prototype.
3214
        * pt.c (fold_decl_constant_value): Make static.
3215
 
3216
        * cp-tree.h (build_x_delete): Remove prototype.
3217
        * init.c (build_vec_delete_1): Call build_op_delete_call directly
3218
        and not via build_x_delete.
3219
        (build_x_delete): Remove.
3220
 
3221
        * cp-tree.h (get_vtt_name): Remove prototype.
3222
        * class.c (get_vtt_name): Remove.
3223
        (build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
3224
 
3225
2006-01-22  Gabriel Dos Reis  
3226
 
3227
        * rtti.c (build_dynamic_cast): Fix comment.
3228
 
3229
2006-01-22  Gabriel Dos Reis  
3230
 
3231
        PR c++/10891
3232
        * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
3233
        -fno-rtti.
3234
 
3235
2006-01-21  Mark Mitchell  
3236
 
3237
        PR c++/25895
3238
        * class.c (build_base_path): Generate a NOP_EXPR instead of a
3239
        COMPONENT_REF if the base and derived classes are at the same
3240
        address.
3241
 
3242
        PR c++/25856
3243
        * decl.c (begin_destructor_body): Robustify.
3244
 
3245
        PR c++/25858
3246
        * parser.c (cp_parser_direct_declarator): Robustify.
3247
 
3248
2006-01-20  Volker Reichelt  
3249
 
3250
        * parser.c (cp_lexer_next_token_is_keyword): Simplify.
3251
 
3252
        * parser.c (clear_decl_specs): Remove prototype.
3253
 
3254
        * parser.c (cp_parser_expression_fn): Remove.
3255
 
3256
        * call.c (add_builtin_candidates): Remove superfluous return.
3257
        * name-lookup.c (do_toplevel_using_decl): Likewise.
3258
        * parser.c (cp_parser_type_specifier_seq): Likewise.
3259
        (cp_parser_save_default_args): Likewise.
3260
 
3261
2006-01-20  Dirk Mueller  
3262
 
3263
        PR c++/5520
3264
        * semantics.c (finish_if_stmt): Call empty_body_warning.
3265
        * parser.c (cp_parser_implicitly_scoped_statement):
3266
        Mark empty statement with an empty stmt.
3267
 
3268
2006-01-19  Mark Mitchell  
3269
 
3270
        PR c++/22136
3271
        * name-lookup.c (do_class_using_decl): Don't try to look up base
3272
        classes in templates with dependent base types.
3273
 
3274
2006-01-19  Volker Reichelt  
3275
 
3276
        PR c++/25854
3277
        * pt.c (maybe_process_partial_specialization): Return early on
3278
        error_mark_node.
3279
 
3280
2006-01-19  Volker Reichelt  
3281
 
3282
        PR c++/16829
3283
        * decl.c (start_preparsed_function): Check default arguments
3284
        unconditionally.
3285
        * name-lookup.c (pushdecl_maybe_friend): Check default arguments
3286
        of all functions and function templates.
3287
        * parser.c (cp_parser_late_parsing_default_args): Check default
3288
        arguments.
3289
        * decl2.c (check_default_args): Set missing default arguments to
3290
        error_mark_node.
3291
 
3292
2006-01-18  Mark Mitchell  
3293
 
3294
        PR c++/25836
3295
        * cp-tree.h (push_class_stack): New function.
3296
        (pop_class_stack): Likewise.
3297
        * class.c (class_stack_node): Add hidden field.
3298
        (pushclass): Clear it.
3299
        (push_class_stack): New function.
3300
        (pop_class_stack): Likewise.
3301
        (currently_open_class): Ignore hidden classes.
3302
        (currently_open_derived_class): Likewise.
3303
        * name-lookup.c (push_to_top_level): Call push_class_stack.
3304
        (pop_from_top_level): Call pop_class_stack.
3305
 
3306
2006-01-18  Kazu Hirata  
3307
 
3308
        * tree.c (find_tree_t, find_tree): Remove.
3309
        * cp-tree.h: Remove the prototype for find_tree.
3310
 
3311
2006-01-18  Jakub Jelinek  
3312
 
3313
        * search.c (lookup_conversions_r): Fix a pasto.
3314
 
3315
2006-01-17  Eric Christopher  
3316
 
3317
        * call.c (convert_like_real): When issuing conversion
3318
        warnings, depend on OPT_Wconversion.
3319
        * cvt.c (build_expr_type_conversion): Ditto.
3320
 
3321
2006-01-17  Kazu Hirata  
3322
 
3323
        * name-lookup.c (lookup_namespace_name): Remove.
3324
        * name-lookup.h: Remove the prototype for
3325
        lookup_namespace_name.
3326
 
3327
2006-01-17  Jakub Jelinek  
3328
 
3329
        PR c/25682
3330
        * decl.c (compute_array_index_type): After issuing not an integral
3331
        constant-expression error, set size to 1 to avoid ICEs later on.
3332
 
3333
2006-01-16  Ian Lance Taylor  
3334
 
3335
        * parser.c: Include "cgraph.h".
3336
        (cp_parser_asm_definition): Call cgraph_add_asm_node rather than
3337
        assemble_asm.
3338
 
3339
2006-01-16  Rafael Ávila de Espíndola  
3340
 
3341
        * g++spec.c (lang_specific_spec_functions): Remove.
3342
 
3343
2006-01-15  Gabriel Dos Reis  
3344
 
3345
        * decl.c (check_initializer): Fix thinko.
3346
 
3347
2006-01-14  Mark Mitchell  
3348
 
3349
        PR c++/25663
3350
        * parser.c (cp_parser_direct_declarator): Use cp_parser_error
3351
        instead of error.
3352
 
3353
2006-01-13  Jason Merrill  
3354
 
3355
        * pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
3356
 
3357
        * name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
3358
        * pt.c (check_explicit_specialization): Likewise.
3359
 
3360
2006-01-12  Jason Merrill  
3361
 
3362
        PR libstdc++/24660
3363
        * pt.c (check_explicit_specialization): Handle namespace
3364
        association.
3365
        * name-lookup.c (set_decl_namespace): Likewise.
3366
 
3367
2006-01-12  Nathan Sidwell  
3368
 
3369
        PR c++/24824
3370
        * class.c (handle_using_decl): Pass correct scope to
3371
        cp_emit_debug_info_for_using.
3372
 
3373
2006-01-11  Nathan Sidwell  
3374
 
3375
        PR c++/25386
3376
        * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
3377
        packedness.
3378
 
3379
2006-01-06  Gabriel Dos Reis  
3380
 
3381
        * parser.c (cp_parser_primary_expression): Document the grammar
3382
        for the built-in offsetof, a GNU extension.
3383
 
3384
2006-01-04  Zdenek Dvorak 
3385
 
3386
        PR c++/25632
3387
        * init.c (constant_value_1): Unshare use of DECL_INITIAL.  Fix a typo
3388
        in condition.
3389
 
3390
2006-01-04  Chris Lattner  
3391
 
3392
        * typeck2.c: update copyright to 2006
3393
        (split_nonconstant_init_1):  Set TREE_CONSTANT to true.
3394
 
3395
2006-01-04  Mark Mitchell  
3396
 
3397
        PR c++/24782
3398
        * parser.c (cp_parser_nested_name_specifier_opt): Preserve access
3399
        checks, even when parsing tentatively.
3400
 
3401
2006-01-04  Richard Henderson  
3402
 
3403
        Merge from gomp branch.
3404
        * lex.c (handle_pragma_java_exceptions): Fix whitespace.
3405
        * parser.c (struct cp_token): Add pragma_kind.
3406
        (eof_token): Update to match.
3407
        (struct cp_lexer): Add in_pragma; rearrange next for better packing.
3408
        (cp_parser_initial_pragma): New.
3409
        (cp_lexer_new_main): Use it.  Don't bother clearing
3410
        c_lex_return_raw_strings.
3411
        (cp_lexer_get_preprocessor_token): Always initialize keyword
3412
        and pragma_kind fields.  Handle CPP_PRAGMA.
3413
        (cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
3414
        in_pragma is set.
3415
        (cp_lexer_handle_pragma): Remove.  Update callers to cp_parser_pragma.
3416
        (cp_lexer_print_token) : Don't print as a string.
3417
        (cp_parser_skip_to_pragma_eol): New.
3418
        (cp_parser_error): Use it.
3419
        (cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
3420
        rearrange with switch statement.
3421
        (cp_parser_skip_to_end_of_statement): Likewise.
3422
        (cp_parser_skip_to_end_of_block_or_statement): Likewise.
3423
        (cp_parser_skip_to_closing_brace): Likewise.
3424
        (cp_parser_skip_until_found): Likewise.
3425
        (cp_parser_statement): Add in_compound argument; update callers.
3426
        Use it to decide how to handle pragma parsing.
3427
        (cp_parser_labeled_statement): Add in_compound argument; pass
3428
        it on to cp_parser_statement.
3429
        (cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
3430
        (cp_parser_declaration_seq_opt): Likewise.
3431
        (cp_parser_parameter_declaration): Likewise.
3432
        (cp_parser_member_specification_opt): Likewise.
3433
        (cp_parser_function_definition_after_decl): Likewise.
3434
        (cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
3435
        (cp_parser_pragma): New.
3436
        (pragma_lex): New.
3437
 
3438
2006-01-04  Dirk Mueller 
3439
 
3440
        * decl.c (finish_constructor_body): create simple
3441
        compound stmt instead of a if(1) { } construct.
3442
 
3443
2006-01-03  Mark Mitchell  
3444
 
3445
        PR c++/25492
3446
        * name-lookup.c (push_class_level_binding): When a derived class
3447
        provides a type binding, eliminate any type binding from a base
3448
        class.
3449
 
3450
        PR c++/25625
3451
        * repo.c (repo_emit_p): Always instantiate static data members
3452
        initialized by constant expressions, so that there values are
3453
        available.
3454
 
3455
2006-01-02  Mark Mitchell  
3456
 
3457
        PR c++/25635
3458
        * class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
3459
        conversion operator.
3460
        * decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
3461
 
3462
        PR c++/25638
3463
        * class.c (add_method): Never associate more than one destructor
3464
        with a single class.
3465
 
3466
        PR c++/25637
3467
        * cp-tree.h (do_friend): Adjust prototype.
3468
        * decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
3469
        (grokdeclarator): Likewise.  Refine check for invalid
3470
        declarations/definitions of member functions outside of their own
3471
        class.
3472
        * friend.c (do_friend): Make funcdef_flag a bool, not an int.
3473
 
3474
        PR c++/25633
3475
        * parser.c (cp_parser_mem_initializer_list): Check result of
3476
        cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
3477
        (cp_parser_mem_initializer): Return error_mark_node for failure.
3478
 
3479
        PR c++/25634
3480
        * parser.c (cp_parser_template_parameter_list): Call
3481
        begin_template_parm_list and end_template_parm_list here.
3482
        (cp_parser_type_parameter): Not here.
3483
        (cp_parser_template_declaration_after_export): Or here.
3484
        (cp_parser_elaborated_type_specifier): Call
3485
        cp_parser_check_template_parameters.
3486
 
3487
        * tree.c (build_target_expr_with_type): Use force_target_expr.
3488
 
3489
        * decl2.c (mark_used): Fix typo in comment.
3490
 
3491
2006-01-02  Volker Reichelt  
3492
 
3493
        * parser.c (cp_parser_using_declaration): Skip name-lookup on
3494
        invalid scope.
3495
 
3496
 
3497
 
3498
Copyright (C) 2006 Free Software Foundation, Inc.
3499
 
3500
Copying and distribution of this file, with or without modification,
3501
are permitted in any medium without royalty provided the copyright
3502
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.