]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog-2006
invoke.texi (-fvar-tracking-assignments): New.
[thirdparty/gcc.git] / gcc / cp / ChangeLog-2006
CommitLineData
2c405565
ILT
12006-12-31 Simon Martin <simartin@users.sourceforge.net>
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
72006-12-28 Kazu Hirata <kazu@codesourcery.com>
8
9 * cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
10 Remove.
11
12 * decl2.c: Fix a comment typo.
13
142006-12-21 Andrew Pinski <pinskia@gmail.com>
15
16 PR C++/30225
17 * decl.c (cxx_builtin_function): Only copy the decl if adding
18 it to the std namespace.
19
202006-12-21 Andrew Pinski <pinskia@gmail.com>
21
22 PR C++/30168
23 * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
24
252006-12-22 Kazu Hirata <kazu@codesourcery.com>
26
27 * decl.c: Fix a coment typo.
28
292006-12-18 Ian Lance Taylor <iant@google.com>
30
31 * decl.c (start_preparsed_function): Add support for
32 -Wmissing-declarations.
33
342006-12-16 Simon Martin <simartin@users.sourceforge.net>
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
1022006-12-13 Ian Lance Taylor <iant@google.com>
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
1182006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
119
120 * decl.c (build_enumerator): Update error message to match C
121 front-end.
122
1232006-12-11 Jan Hubicka <jh@suse.cz>
124
125 * decl2.c (var_finalized_p): Update for renamed varpool functions.
126
1272006-12-09 Zack Weinberg <zackw@panix.com>
128
129 * parser.c (yydebug, enum pragma_omp_clause): Delete.
130
1312006-12-07 Mark Mitchell <mark@codesourcery.com>
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
1422006-12-07 Lee Millward <lee.millward@codesourcery.com>
143
144 PR c++/29980
145 * cp_parser_elaborated_type_specifier: Check
146 the return value of check_elaborated_type_specifier.
147
1482006-12-06 Mark Mitchell <mark@codesourcery.com>
149
150 PR c++/29730
151 * parser.c (cp_parser_init_declarator): Reject initialization of
152 functions.
153
1542006-12-05 Mark Mitchell <mark@codesourcery.com>
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
1672006-12-05 Aldy Hernandez <aldyh@redhat.com>
168
169 Merge from gimple-tuples-branch.
170
171 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
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 <aldyh@redhat.com>
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
1842006-12-04 Jan Hubicka <jh@suse.cz>
185
186 * cp-objcp-common.c (cp_expr_size): Return NULL in the case
187 size is undefined.
188
1892006-12-04 Mark Mitchell <mark@codesourcery.com>
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
1982006-12-04 Eric Botcazou <ebotcazou@adacore.com>
199
200 * pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
201 Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
202
2032006-12-03 Richard Henderson <rth@redhat.com>
204 Andrew Pinski <pinskia@gmail.com>
205
206 PR C++/14329
207 * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
208
2092006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
210
211 PR C++/30033
212 * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
213
2142006-12-02 Kazu Hirata <kazu@codesourcery.com>
215
216 * name-lookup.c: Follow spelling conventions.
217
2182006-12-01 Geoffrey Keating <geoffk@apple.com>
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
2302006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
2372006-12-01 Ryan Mansfield <rmansfield@qnx.com>
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
2432006-12-01 Dirk Mueller <dmueller@suse.de>
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
2512006-11-30 Geoffrey Keating <geoffk@apple.com>
252
253 * rtti.c (get_tinfo_decl): Handle return value from
254 pushdecl_top_level_and_finish.
255
2562006-11-29 Lee Millward <lee.millward@codesourcery.com>
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
2652006-11-28 Jakub Jelinek <jakub@redhat.com>
266
267 PR c++/29735
268 * decl.c (grokfndecl): Check main's type after applying
269 attributes, not before.
270
2712006-11-27 Mark Mitchell <mark@codesourcery.com>
272
273 * class.c (build_vcall_offset_vtbl_entries): Do not add vcall
274 entries for a primary construction virtual table.
275
2762006-11-26 Mark Mitchell <mark@codesourcery.com>
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
2912006-11-21 Douglas Gregor <doug.gregor@gmail.com>
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
3172006-11-21 Jakub Jelinek <jakub@redhat.com>
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
3302006-11-20 Simon Martin <simartin@users.sourceforge.net>
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
3552006-11-16 Dirk Mueller <dmueller@suse.de>
356
357 * name-lookup.c (begin_scope): Use GGC_CNEW instead of
358 GGC_NEW and memset.
359
3602006-11-13 Roger Sayle <roger@eyesopen.com>
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
3652006-11-13 Mark Mitchell <mark@codesourcery.com>
366
367 PR c++/29518
368 * pt.c (coerce_template_parms): Do not skip_evaluation while
369 substituting template arguments.
370
3712006-11-11 Richard Guenther <rguenther@suse.de>
372
373 * typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
374 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
375
3762006-11-03 Roger Sayle <roger@eyesopen.com>
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) <INTEGER_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
3872006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
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
3942006-09-25 Geoffrey Keating <geoffk@apple.com>
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
4042006-10-31 Geoffrey Keating <geoffk@apple.com>
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
4112006-10-30 Dirk Mueller <dmueller@suse.de>
412
413 PR c++/28704
414 * decl.c (grokdeclarator): Duplicate diagnostic message
415 for easier translation.
416 * decl.c (grokdeclarator): Fix line-wrapping.
417
4182006-10-30 Dirk Mueller <dmueller@suse.de>
419
420 PR c++/6321
421 * decl.c (grokfndecl): Use check_main_parameter_types.
422
4232006-10-30 Dirk Mueller <dmueller@suse.de>
424
425 PR c++/28669
426 * decl.c (grokfndecl): Duplicate warning message for
427 easier translation.
428
4292006-10-30 Dirk Mueller <dmueller@suse.de>
430
431 * typeck.c (build_unary_op): Fix indenting. Use G_().
432
4332006-10-29 Dirk Mueller <dmueller@suse.de>
434
435 PR c++/29089
436 * typeck.c (build_unary_op): Duplicate warning message
437 for easier translation.
438
4392006-10-29 Dirk Mueller <dmueller@suse.de>
440
441 PR c++/16307
442 * typeck.c (build_array_ref): Warn for char subscriptions
443 on pointers.
444
4452006-10-29 Kazu Hirata <kazu@codesourcery.com>
446
447 * decl.c: Fix a comment typo.
448
4492006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
450
451 PR C++/29295
452 * typeck.c (build_unary_op): Use same_type_p when comparing to
453 boolean type.
454
4552006-10-29 Dirk Mueller <dmueller@suse.de>
456
457 PR c++/29033
458 * typeck.c (build_binary_op): Duplicate warning message
459 for better translation.
460
719bb4e3 4612006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2c405565
ILT
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
4762006-10-22 Nathan Sidwell <nathan@codesourcery.com>
477
478 PR c++/20647
479 * rtti.c (tinfo_base_init): The type info string is always global.
480
4812006-10-20 Lee Millward <lee.millward@codesourcery.com>
482 Mark Mitchell <mark@codesourcery.com>
483
484 PR c++/28053
485 * decl2.c (grokbitfield): Detect invalid non-integral
486 types earlier when possible.
487
4882006-10-18 Mark Shinwell <shinwell@codesourcery.com>
489
490 PR c++/26884
491 * typeck2.c (digest_init): Raise error upon attempts to
492 initialize arrays with variables.
493
4942006-10-17 Lee Millward <lee.millward@codesourcery.com>
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
5032006-10-17 Mark Mitchell <mark@codesourcery.com>
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
5172006-10-17 Mark Mitchell <mark@codesourcery.com>
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
5252006-10-17 Mark Mitchell <mark@codesourcery.com>
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
5332006-10-16 Mark Mitchell <mark@codesourcery.com>
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
5542006-10-13 Mark Mitchell <mark@codesourcery.com>
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
5612006-10-12 Mark Mitchell <mark@codesourcery.com>
562
563 PR c++/29318
564 * rtti.c (get_tinfo_decl): Refuse to create type info objects for
565 variably modified types.
566
5672006-10-12 Lee Millward <lee.millward@codesourcery.com>
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
5772006-10-11 Mark Mitchell <mark@codesourcery.com>
578
579 PR c++/29175
580 * decl.c (check_initializer): Issue errors about trying to
581 initialize arrays whose elements have variable size.
582
5832006-10-11 Lee Millward <lee.millward@codesourcery.com>
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) <RID_TYPEDEF>: 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
5982006-10-10 Brooks Moses <bmoses@stanford.edu>
599
600 * Make-lang.in: Added "c++.pdf" target support.
601
6022006-10-10 Richard Guenther <rguenther@suse.de>
603
604 PR rtl-optimization/29323
605 * decl.c (finish_function): Set TREE_NOTHROW only for
606 functions that bind local.
607
6082006-10-09 Richard Henderson <rth@redhat.com>
609
610 Revert emutls patch.
611
6122006-10-04 Richard Henderson <rth@redhat.com>
613 Jakub Jelinek <jakub@redhat.com>
614
615 * decl.c (grokvardecl): Don't error if !have_tls.
616 (grokdeclarator): Likewise.
617 * parser.c (cp_parser_omp_threadprivate): Likewise.
618
6192006-10-03 Mark Mitchell <mark@codesourcery.com>
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
6362006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
637
638 PR c++/29291
639 * init.c (build_new): Check for invalid init.
640
6412006-10-02 Mark Mitchell <mark@codesourcery.com>
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
6472006-10-01 Mark Mitchell <mark@codesourcery.com>
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
6592006-09-25 Lee Millward <lee.millward@codesourcery.com>
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
6822006-09-21 Mark Mitchell <mark@codesourcery.com>
683
684 PR c++/29016
685 * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
686 BASELINK.
687
6882006-09-21 Lee Millward <lee.millward@codesourcery.com>
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
6982006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
699
700 PR target/27650
701 * class.c (check_for_override): Remove dllimport from virtual
702 methods.
703
7042006-09-18 Steven Bosscher <steven@gcc.gnu.org>
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
7142006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
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
7202006-09-10 Mark Mitchell <mark@codesourcery.com>
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
7272006-09-09 Jason Merrill <jason@redhat.com>
728
729 PR c++/28996
730 * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
731
7322006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
7422006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
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
7492006-09-07 Jason Merrill <jason@redhat.com>
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
7582006-09-07 Simon Martin <simartin@users.sourceforge.net>
759
760 PR c++/28284
761 * pt.c (fold_non_dependent_expr): Make sure expr is not
762 dereferenced if it is NULL.
763
7642006-09-06 Zak Kipling <zak@transversal.com>
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
7752006-09-06 Mark Mitchell <mark@codesourcery.com>
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
7852006-09-06 Jason Merrill <jason@redhat.com>
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
7992006-09-05 Jason Merrill <jason@redhat.com>
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
8172006-09-04 Nathan Sidwell <nathan@codesourcery.com>
818
819 PR 23287 Revert my 2006-09-01 patch.
820 * parser.c: Reverted.
821 * pt.c: Reverted.
822
8232006-09-02 Lee Millward <lee.millward@codesourcery.com>
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
8332006-09-02 Jakub Jelinek <jakub@redhat.com>
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
8472006-09-01 Nathan Sidwell <nathan@codesourcery.com>
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
8642006-08-30 Jason Merrill <jason@redhat.com>
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
8702006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
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
8762006-08-29 J"orn Rennecke <joern.rennecke@st.com>
877
878 PR c++/28139
879 * except.c (expand_start_catch_block): Use correct types for bitwise
880 copy.
881
8822006-08-28 Jason Merrill <jason@redhat.com>
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
8922006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
9032006-08-27 Mark Mitchell <mark@codesourcery.com>
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
9112006-08-27 Lee Millward <lee.millward@codesourcery.com>
912
913 PR c++/26573
914 * class.c (check_field_decls): Don't issue error about
915 local classes containing static data members.
916
9172006-08-26 Joseph S. Myers <joseph@codesourcery.com>
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
9262006-08-26 Lee Millward <lee.millward@codesourcery.com>
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
9422006-08-26 Mark Mitchell <mark@codesourcery.com>
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
9682006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
9822006-08-25 Mark Mitchell <mark@codesourcery.com>
983
984 PR c++/28056
985 * decl.c (grokdeclarator): Disallow declarations with qualified
986 names in local scopes.
987
9882006-08-25 Nathan Sidwell <nathan@codesourcery.com>
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
9962006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
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
10042006-08-23 Jason Merrill <jason@redhat.com>
1005
1006 PR c++/27714
1007 * pt.c (push_template_decl_real): A friend template with class
1008 scope isn't primary.
1009
10102006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
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
10162006-08-22 Jason Merrill <jason@redhat.com>
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
10222006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
1023
1024 PR C++/28450
1025 * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
1026 COMPLEX_TYPEs.
1027
10282006-08-22 Simon Martin <simartin@users.sourceforge.net>
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
10352006-08-22 Jason Merrill <jason@redhat.com>
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
10452006-08-21 Jason Merrill <jason@redhat.com>
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
10562006-08-21 Lee Millward <lee.millward@codesourcery.com>
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
10702006-08-20 Mark Mitchell <mark@codesourcery.com>
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
11022006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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) <case CONSTRUCTOR>: Robustify.
1116
11172006-08-17 Paolo Bonzini <bonzini@gnu.org>
1118
1119 PR c++/28573
1120 * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
1121
11222006-08-16 Andrew Pinski <pinskia@physics.uc.edu>
1123
1124 PR c++/28302
1125 * typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
1126 perform_integral_promotions for non integral type.
1127
11282006-08-16 Jason Merrill <jason@redhat.com>
1129
1130 PR c++/28385
1131 * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
1132 if arg is a function.
1133
11342006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1135
1136 PR c++/28593
1137 * init.c (build_new): Return early on invalid placement.
1138
11392006-08-15 Lee Millward <lee.millward@codesourcery.com>
1140
1141 PR c++/28594
1142 * pt.c (process_template_parm): Robustify.
1143
11442006-08-14 Steve Ellcey <sje@cup.hp.com>
1145
1146 PR c++/28288
1147 PR c++/14556
1148 * operators.def: Remove <?, ?>, <?=, and >?= operators.
1149 * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
1150 (cp_parser_warn_min_max): Remove.
1151
11522006-08-11 Jason Merrill <jason@redhat.com>
1153
1154 PR c++/28559
1155 * parser.c (cp_parser_elaborated_type_specifier): Also ignore
1156 attributes applied to a TYPENAME_TYPE.
1157
11582006-08-09 Lee Millward <lee.millward@codesourcery.com>
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
11772006-08-03 Lee Millward <lee.millward@codesourcery.com>
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
11832006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
11952006-08-02 Richard Guenther <rguenther@suse.de>
1196
1197 PR c++/28479
1198 Revert
1199 2006-07-05 Richard Guenther <rguenther@suse.de>
1200 Andrew Pinski <pinskia@gcc.gnu.org>
1201
1202 PR c++/27084
1203 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1204 top level qualifiers for pointer type comparisons.
1205
12062006-08-02 Mark Mitchell <mark@codesourcery.com>
1207
1208 PR c++/28557
1209 * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
1210
12112006-07-31 Mark Mitchell <mark@codesourcery.com>
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
12182006-08-01 Steve Ellcey <sje@cup.hp.com>
1219
1220 PR c++/28432
1221 * decl2.c (check_classfn): Remove early return.
1222 * search.c (lookup_member): Return NULL with bad type.
1223
12242006-08-01 Steve Ellcey <sje@cup.hp.com>
1225
1226 PR c++/28256
1227 * decl.c (check_initializer): Check for 1 initializer on scalar types.
1228
12292006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
1230
1231 PR debug/23336
1232 * pt.c (tsubst_copy_and_build): Mark used enum types.
1233 * semantics.c (finish_id_expression): Likewise.
1234
12352006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1236
1237 PR c++/6634
1238 * decl.c (grokdeclarator): Check whether "long" or "short" was
1239 specified for non-integral types.
1240
12412006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1242
1243 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1244
12452006-07-28 Lee Millward <lee.millward@codesourcery.com>
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
12602006-07-28 Kazu Hirata <kazu@codesourcery.com>
1261
1262 * cp-tree.h: Fix a comment typo.
1263
12642006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1265
1266 PR c++/27572
1267 * decl.c (grokdeclarator): Return error_mark_node after invalid
1268 typedef.
1269
12702006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
1271
1272 PR c++/28460
1273 * decl.c (grokvardecl): Use FROB_CONTEXT.
1274 * pt.c (register_specialization): Likewise.
1275
12762006-07-23 Mark Mitchell <mark@codesourcery.com>
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
12872006-07-21 Jason Merrill <jason@redhat.com>
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
12942006-07-20 Mike Stump <mrs@apple.com>
1295
1296 * decl2.c (determine_visibility_from_class): Don't use hidden
1297 visibility for explicit instantiations.
1298
12992006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
13092006-07-20 Jason Merrill <jason@redhat.com>
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
13312006-07-19 Mark Mitchell <mark@codesourcery.com>
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
13382006-07-18 Mark Mitchell <mark@codesourcery.com>
1339
1340 PR c++/28337
1341 * typeck.c (build_binary_op): Short-circuit pointer arithmetic in
1342 templates.
1343
13442006-07-18 Mark Mitchell <mark@codesourcery.com>
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
13532006-07-18 Lee Millward <lee.millward@gmail.com>
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
13632006-07-18 Steve Ellcey <sje@cup.hp.com>
1364
1365 PR c++/27495
1366 * search.c (adjust_result_of_qualified_name_lookup): Change
1367 assert to part of if statement.
1368
13692006-07-17 Steve Ellcey <sje@cup.hp.com>
1370
1371 PR c++/28291
1372 * decl.c (reshape_init_class): Return error_mark_node on error.
1373
13742006-07-17 Steve Ellcey <sje@cup.hp.com>
1375
1376 PR c++/28304
1377 * decl2.c (check_classfn): Return NULL_TREE on error.
1378
13792006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
13892006-07-16 Jakub Jelinek <jakub@redhat.com>
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
13962006-07-15 Lee Millward <lee.millward@gmail.com>
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
14092006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
14242006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1425
1426 PR c++/28343
1427 * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
1428 * decl2.c (grokfield): Likewise.
1429
14302006-07-12 Geoffrey Keating <geoffk@apple.com>
1431
1432 * decl2.c (determine_visibility): Don't change visibility of
1433 function locals because of -fvisibility-inlines-hidden.
1434
14352006-07-12 Jason Merrill <jason@redhat.com>
1436
1437 PR c++/28217
1438 * semantics.c (note_decl_for_pch): Don't premangle templates.
1439
14402006-07-12 Martin Michlmayr <tbm@cyrius.com>
1441
1442 * typeck.c (string_conv_p): Remove spurious quotation mark in
1443 warning.
1444
14452006-07-07 Lee Millward <lee.millward@gmail.com>
1446 Andrew Pinski <pinskia@gmail.com>
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
14532006-07-06 Jason Merrill <jason@redhat.com>
1454
1455 PR c++/28279
1456 * decl2.c (finish_static_data_member_decl): Don't assert
1457 TREE_PUBLIC.
1458
14592006-07-05 Jason Merrill <jason@redhat.com>
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
14702006-07-05 Richard Guenther <rguenther@suse.de>
1471 Andrew Pinski <pinskia@gcc.gnu.org>
1472
1473 PR c++/27084
1474 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1475 top level qualifiers for pointer type comparisons.
1476
14772006-07-01 Jason Merrill <jason@redhat.com>
1478
1479 PR c++/28215
1480 * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
1481 DECL_TEMPLATE_INFO.
1482
14832006-06-30 Jason Merrill <jason@redhat.com>
1484
1485 PR c++/26577
1486 * call.c (build_new_method_call): Force evaluation of the
1487 instance pointer, not the object.
1488
14892006-06-30 Kazu Hirata <kazu@codesourcery.com>
1490
1491 * decl2.c: Fix a comment typo.
1492
14932006-06-30 Jason Merrill <jason@redhat.com>
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
14992006-06-29 Jason Merrill <jason@redhat.com>
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
15472006-06-28 Jason Merrill <jason@redhat.com>
1548
1549 PR c++/27424
1550 * pt.c (convert_template_argument): Pass all template arguments
1551 on to coerce_template_template_parms.
1552
15532006-06-25 Lee Millward <lee.millward@gmail.com>
1554 Mark Mitchell <mark@codesuorcery.com>
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
15622006-06-25 Lee Millward <lee.millward@gmail.com>
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
15702006-06-23 Steve Ellcey <sje@cup.hp.com>
1571
1572 PR c++/28114
1573 * name-lookup.c (pushtag): Return if we have error_mark_node.
1574
15752006-06-23 Steve Ellcey <sje@cup.hp.com>
1576
1577 PR c++/27019
1578 * typeck2.c (process_init_constructor_array): Set ce->value on errors.
1579
15802006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
15922006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
1593
1594 PR target/27789
1595 * decl.c (start_decl): Check that dllimports are not initialized.
1596
15972006-06-22 Lee Millward <lee.millward@gmail.com>
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
16062006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1607
1608 PR c++/28111
1609 * pt.c (determine_specialization): Check for invalid decls.
1610
1611 PR c++/28110
1612 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
1613 parameters.
1614
1615 PR c++/28109
1616 * rtti.c (get_tinfo_decl_dynamic): Robustify.
1617
16182006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
16242006-06-19 Mark Mitchell <mark@codesourcery.com>
1625
1626 * pt.c (instantiate_template): Fix typo in comment.
1627
16282006-06-19 Richard Guenther <rguenther@suse.de>
1629
1630 * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
1631 power-of-two token vector size.
1632
16332006-06-16 Mark Mitchell <mark@codesourcery.com>
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
16542006-06-15 Mark Mitchell <mark@codesourcery.com>
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
16682006-06-14 Mark Mitchell <mark@codesourcery.com>
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
16872006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1688
1689 * typeck.c (build_modify_expr): Tidy diagnostic message.
1690
16912006-06-14 Mark Mitchell <mark@codesourcery.com>
1692
1693 PR c++/28018
1694 * typeck.c (build_modify_expr): Disallow array assignment.
1695
16962006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1697
1698 * cp-tree.def: Fix typo.
1699
17002006-06-13 Mark Mitchell <mark@codesourcery.com>
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
17082006-06-13 Jakub Jelinek <jakub@redhat.com>
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
17222006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
17352006-06-12 Roger Sayle <roger@eyesopen.com>
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
17412006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
17502006-06-06 Mark Mitchell <mark@codesourcery.com>
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
17562006-06-04 Mark Mitchell <mark@codesourcery.com>
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
17782006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1779
1780 PR c++/27804
1781 * init.c (constant_value_1): Return decl instead of error_mark_node
1782 for invalid initializers.
1783
17842006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
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
17902006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
1791
1792 PR c++/26740
1793 * typeck.c (build_unary_op): Mark the function as being used.
1794
17952006-06-01 Alexandre Oliva <aoliva@redhat.com>
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
18012006-05-31 Mark Mitchell <mark@codesourcery.com>
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
18162006-05-30 Mark Mitchell <mark@codesourcery.com>
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
18262006-05-29 Kazu Hirata <kazu@codesourcery.com>
1827
1828 * pt.c (convert_nontype_argument): Fix a typo in an error
1829 message.
1830
18312006-05-28 Kazu Hirata <kazu@codesourcery.com>
1832
1833 * decl.c, decl2.c, parser.c: Fix comment typos. Follow
1834 spelling conventions.
1835
18362006-05-24 Mark Mitchell <mark@codesourcery.com>
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
18582006-05-23 Mark Mitchell <mark@codesourcery.com>
1859
1860 PR c++/20173
1861 * pt.c (determine_specialization): Disallow partial
1862 specializations of templates.
1863
18642006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
18712006-05-21 Mark Mitchell <mark@codesourcery.com>
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
18792006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1880
1881 PR c++/27398
1882 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
1883 or void_type_node.
1884
18852006-05-19 Mike Stump <mrs@apple.com>
1886
1887 * typeck.c (default_conversion): Remove static.
1888
18892006-05-19 Mark Mitchell <mark@codesourcery.com>
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
19002006-05-18 Mark Mitchell <mark@codesourcery.com>
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
19252006-05-17 Mark Mitchell <mark@codesourcery.com>
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
19412006-05-17 Jakub Jelinek <jakub@redhat.com>
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
19522006-05-16 H.J. Lu <hongjiu.lu@intel.com>
1953
1954 PR driver/26885
1955 * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
1956
19572006-05-15 Mark Mitchell <mark@codesourcery.com>
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
19862006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
20072006-05-14 H.J. Lu <hongjiu.lu@intel.com>
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
20162006-05-14 Alexandre Oliva <aoliva@redhat.com>
2017
2018 * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
2019 COMPONENT_REF alone.
2020
20212006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2022
2023 PR c++/27547
2024 * decl.c (copy_fn_p): Return early on non-member functions.
2025
20262006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2027
2028 PR c++/27447
2029 * decl2.c (build_memfn_type): Skip invalid functions and class types.
2030
20312006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
20482006-05-03 Aldy Hernandez <aldyh@redhat.com>
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
20562006-05-04 Jakub Jelinek <jakub@redhat.com>
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
20632006-05-02 Mark Mitchell <mark@codesourcery.com>
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
20802006-05-02 Jakub Jelinek <jakub@redhat.com>
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
20872006-04-30 Mark Mitchell <mark@codesourcery.com>
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
20952006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
21012006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2102
2103 PR c++/27279
2104 * decl.c (copy_fn_p): Skip functions with invalid first arg.
2105
21062006-04-27 Mark Mitchell <mark@codesourcery.com>
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
21152006-04-24 Mark Mitchell <mark@codesourcery.com>
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
21232006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2124
2125 PR c++/19963
2126 * class.c (layout_class_type): Skip fields with invalid types.
2127
21282006-04-23 Mark Mitchell <mark@codesourcery.com>
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
21612006-04-22 Kazu Hirata <kazu@codesourcery.com>
2162
2163 * decl.c: Fix comment typos.
2164
21652006-04-21 Eric Christopher <echristo@apple.com>
2166
2167 * decl.c: Fix typo in function name.
2168
21692006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
21922006-04-19 Mark Mitchell <mark@codesourcery.com>
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
22192006-04-17 Janis Johnson <janis187@us.ibm.com>
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
22252006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2226
2227 * init.c (build_offset_ref): Remove superfluous temporary.
2228
22292006-04-16 Mark Mitchell <mark@codesourcery.com>
2230
2231 PR c++/26365
2232 * typeck.c (finish_class_member_access_expr): Robustify
2233
22342006-04-15 Kazu Hirata <kazu@codesourcery.com>
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
22462006-04-12 Mark Mitchell <mark@codesourcery.com>
2247
2248 * parser.c (cp_parser_init_declarator): Initialize local variables
2249 aggressively.
2250
22512006-04-12 Roger Sayle <roger@eyesopen.com>
2252
2253 * parser.c (cp_parser_init_declarator): Initialise
2254 is_parenthesized_init to false to avoid compiler warning.
2255
22562006-04-11 Mark Mitchell <mark@codesourcery.com>
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
22912006-04-08 Kazu Hirata <kazu@codesourcery.com>
2292
2293 * decl2.c, pt.c, semantics.c: Fix comment typos.
2294
22952006-04-06 Roger Sayle <roger@eyesopen.com>
2296
2297 * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
2298
22992006-04-05 Jason Merrill <jason@redhat.com>
2300
2301 * name-lookup.c (push_namespace_with_attribs): Temporarily disable
2302 default hidden visibility for anonymous namespace.
2303
23042006-03-29 Roger Sayle <roger@eyesopen.com>
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
23102006-03-24 Carlos O'Donell <carlos@codesourcery.com>
2311
2312 * search.c (maybe_suppress_debug_info): If
2313 flag_emit_class_debug_always then don't suppress.
2314
23152006-03-22 Jason Merrill <jason@redhat.com>
2316
2317 * name-lookup.c (push_namespace_with_attribs): Only apply hidden
2318 visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
2319
23202006-03-21 Jakub Jelinek <jakub@redhat.com>
2321
2322 PR c++/26691
2323 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
2324
23252006-03-21 Jason Merrill <jason@redhat.com>
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
23332006-03-20 Jason Merrill <jason@redhat.com>
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
23542006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
23612006-03-09 Jason Merrill <jason@redhat.com>
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
23672006-03-09 Diego Novillo <dnovillo@redhat.com>
2368
2369 Merge from gomp-20050608-branch
2370
2371 2006-02-02 Diego Novillo <dnovillo@redhat.com>
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 <dnovillo@redhat.com>
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 <dnovillo@redhat.com>
2390
2391 * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
2392 target does not support TLS.
2393
2394 2005-11-09 Jakub Jelinek <jakub@redhat.com>
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 <jakub@redhat.com>
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 <jakub@redhat.com>
2414
2415 * semantics.c (finish_omp_threadprivate): Error on class-scope
2416 variables.
2417
2418 2005-11-02 Jakub Jelinek <jakub@redhat.com>
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 <dnovillo@redhat.com>
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 <dnovillo@redhat.com>
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 <dnovillo@redhat.com>
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 <rth@redhat.com>
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 <jakub@redhat.com>
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 <jakub@redhat.com>
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) <case OMP_FOR>: 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 <jakub@redhat.com>
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 <jakub@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
2569
2570 * semantics.c (finish_omp_threadprivate): Set
2571 decl_flags.u2sel when necessary.
2572
2573 2005-10-21 Richard Henderson <rth@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
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 <dnovillo@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
2687
2688 * semantics.c (finish_omp_atomic): Revert to
2689 uses_template_parms.
2690
2691 2005-10-19 Richard Henderson <rth@redhat.com>
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 <rth@redhat.com>
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 <jakub@redhat.com>
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 <rth@redhat.com>
2728
2729 * parser.c (cp_parser_omp_single): Use make_node and accessors
2730 instead of build.
2731
2732 2005-10-17 Richard Henderson <rth@redhat.com>
2733
2734 * parser.c (cp_parser_omp_for_loop): Handle declarations.
2735
2736 2005-10-12 Richard Henderson <rth@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
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 <rth@redhat.com>
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
28182006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2819
2820 PR c++/15759
2821 * tree.c (bot_manip): Don't call mark_used.
2822
28232006-03-02 Mike Stump <mrs@apple.com>
2824
2825 * decl2.c (import_export_decl): Remove redundant call to
2826 targetm.cxx.key_method_may_be_inline ().
2827
28282006-03-02 Richard Sandiford <richard@codesourcery.com>
2829
2830 * decl.c (start_decl): Use have_global_bss_p when deciding
2831 whether to make the decl common.
2832
28332006-03-01 Mike Stump <mrs@apple.com>
2834
2835 PR darwin/25908
2836 * decl2.c (import_export_decl): Fix ABI breakage on darwin.
2837
28382006-02-24 Geoffrey Keating <geoffk@apple.com>
2839
2840 * except.c (expand_start_catch_block): Handle
2841 flag_use_cxa_get_exception_ptr.
2842
28432006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2844
2845 PR c++/26291
2846 * decl.c (grok_op_properties): Check for ellipsis in arguments of
2847 operators.
2848
719bb4e3 28492006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2c405565
ILT
2850
2851 * Make-lang.in (C++): Remove.
2852 (.PHONY): Remove C++.
2853
28542006-02-18 Mark Mitchell <mark@codesourcery.com>
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
28922006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
29002006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
29132006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2914
2915 * decl.c (grokdeclarator): Return NULL_TREE instead of 0.
2916 * typeck.c (unary_complex_lvalue): Likewise.
2917
29182006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
29262006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
29342006-02-12 Jason Merrill <jason@redhat.com>
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
29402006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2941
2942 * class.c (debug_class): Remove extern.
2943 (debug_thunks): Likewise.
2944
29452006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
2946
2947 * typeck.c (string_conv_p): Don't test for flag_const_strings.
2948
29492006-02-08 Jason Merrill <jason@redhat.com>
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
29562006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
29642006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
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
29772006-02-07 Dirk Mueller <dmueller@suse.com>
2978
2979 * typeck.c (build_binary_op): Annotate div-by-zero
2980 warnings to make -Wno-div-by-zero have an effect.
2981
29822006-02-07 Mark Mitchell <mark@codesourcery.com>
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
29962006-02-06 Roger Sayle <roger@eyesopen.com>
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
30032006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
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
30232006-02-03 Lee Millward <lee.millward@gmail.com>
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
30512006-02-03 Mark Mitchell <mark@codesourcery.com>
3052
3053 * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
3054 not IDENTIFIER_OPNAME_P.
3055
30562006-01-31 Mark Mitchell <mark@codesourcery.com>
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
30762006-01-31 Ben Elliston <bje@au.ibm.com>
3077
3078 * mangle.c: Comment fix.
3079
30802006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
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
30862006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
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
31152006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
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
31262006-01-28 Mark Mitchell <mark@codesourcery.com>
3127
3128 PR c++/25999
3129 * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
3130 here, not ...
3131 (start_function): ... here.
3132
31332006-01-28 Mark Mitchell <mark@codesourcery.com>
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
31482006-01-26 Jason Merrill <jason@redhat.com>
3149
3150 PR c++/16021
3151 * name-lookup.c (parse_using_directive): Require strong using to
3152 name a nested namespace.
3153
31542006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
31642006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
31812006-01-24 Dirk Mueller <dmueller@suse.de>
3182
3183 * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
3184
31852006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
31952006-01-24 Mark Mitchell <mark@codesourcery.com>
3196
3197 * semantics.c: Remove outdated comment.
3198
31992006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
32252006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3226
3227 * rtti.c (build_dynamic_cast): Fix comment.
3228
32292006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3230
3231 PR c++/10891
3232 * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
3233 -fno-rtti.
3234
32352006-01-21 Mark Mitchell <mark@codesourcery.com>
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
32482006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
32612006-01-20 Dirk Mueller <dmueller@suse.com>
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
32682006-01-19 Mark Mitchell <mark@codesourcery.com>
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
32742006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3275
3276 PR c++/25854
3277 * pt.c (maybe_process_partial_specialization): Return early on
3278 error_mark_node.
3279
32802006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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
32922006-01-18 Mark Mitchell <mark@codesourcery.com>
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
33062006-01-18 Kazu Hirata <kazu@codesourcery.com>
3307
3308 * tree.c (find_tree_t, find_tree): Remove.
3309 * cp-tree.h: Remove the prototype for find_tree.
3310
33112006-01-18 Jakub Jelinek <jakub@redhat.com>
3312
3313 * search.c (lookup_conversions_r): Fix a pasto.
3314
33152006-01-17 Eric Christopher <echristo@apple.com>
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
33212006-01-17 Kazu Hirata <kazu@codesourcery.com>
3322
3323 * name-lookup.c (lookup_namespace_name): Remove.
3324 * name-lookup.h: Remove the prototype for
3325 lookup_namespace_name.
3326
33272006-01-17 Jakub Jelinek <jakub@redhat.com>
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
33332006-01-16 Ian Lance Taylor <ian@airs.com>
3334
3335 * parser.c: Include "cgraph.h".
3336 (cp_parser_asm_definition): Call cgraph_add_asm_node rather than
3337 assemble_asm.
3338
719bb4e3 33392006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2c405565
ILT
3340
3341 * g++spec.c (lang_specific_spec_functions): Remove.
3342
33432006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
3344
3345 * decl.c (check_initializer): Fix thinko.
3346
33472006-01-14 Mark Mitchell <mark@codesourcery.com>
3348
3349 PR c++/25663
3350 * parser.c (cp_parser_direct_declarator): Use cp_parser_error
3351 instead of error.
3352
33532006-01-13 Jason Merrill <jason@redhat.com>
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
33602006-01-12 Jason Merrill <jason@redhat.com>
3361
3362 PR libstdc++/24660
3363 * pt.c (check_explicit_specialization): Handle namespace
3364 association.
3365 * name-lookup.c (set_decl_namespace): Likewise.
3366
33672006-01-12 Nathan Sidwell <nathan@codesourcery.com>
3368
3369 PR c++/24824
3370 * class.c (handle_using_decl): Pass correct scope to
3371 cp_emit_debug_info_for_using.
3372
33732006-01-11 Nathan Sidwell <nathan@codesourcery.com>
3374
3375 PR c++/25386
3376 * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
3377 packedness.
3378
33792006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>
3380
3381 * parser.c (cp_parser_primary_expression): Document the grammar
3382 for the built-in offsetof, a GNU extension.
3383
33842006-01-04 Zdenek Dvorak <dvorakz@suse.cz>
3385
3386 PR c++/25632
3387 * init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
3388 in condition.
3389
33902006-01-04 Chris Lattner <sabre@gnu.org>
3391
3392 * typeck2.c: update copyright to 2006
3393 (split_nonconstant_init_1): Set TREE_CONSTANT to true.
3394
33952006-01-04 Mark Mitchell <mark@codesourcery.com>
3396
3397 PR c++/24782
3398 * parser.c (cp_parser_nested_name_specifier_opt): Preserve access
3399 checks, even when parsing tentatively.
3400
34012006-01-04 Richard Henderson <rth@redhat.com>
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) <CPP_PRAGMA>: 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
34382006-01-04 Dirk Mueller <dmueller@suse.com>
3439
3440 * decl.c (finish_constructor_body): create simple
3441 compound stmt instead of a if(1) { } construct.
3442
34432006-01-03 Mark Mitchell <mark@codesourcery.com>
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
34552006-01-02 Mark Mitchell <mark@codesourcery.com>
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
34912006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3492
3493 * parser.c (cp_parser_using_declaration): Skip name-lookup on
3494 invalid scope.
3495
ad41bd84
JM
3496
3497\f
3498Copyright (C) 2006 Free Software Foundation, Inc.
3499
3500Copying and distribution of this file, with or without modification,
3501are permitted in any medium without royalty provided the copyright
3502notice and this notice are preserved.