comparison gcc/cp/ChangeLog-2006 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 2006-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
7 2006-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
14 2006-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
20 2006-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
25 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
26
27 * decl.c: Fix a coment typo.
28
29 2006-12-18 Ian Lance Taylor <iant@google.com>
30
31 * decl.c (start_preparsed_function): Add support for
32 -Wmissing-declarations.
33
34 2006-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
102 2006-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
118 2006-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
123 2006-12-11 Jan Hubicka <jh@suse.cz>
124
125 * decl2.c (var_finalized_p): Update for renamed varpool functions.
126
127 2006-12-09 Zack Weinberg <zackw@panix.com>
128
129 * parser.c (yydebug, enum pragma_omp_clause): Delete.
130
131 2006-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
142 2006-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
148 2006-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
154 2006-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
167 2006-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
184 2006-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
189 2006-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
198 2006-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
203 2006-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
209 2006-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
214 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
215
216 * name-lookup.c: Follow spelling conventions.
217
218 2006-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
230 2006-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
237 2006-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
243 2006-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
251 2006-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
256 2006-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
265 2006-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
271 2006-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
276 2006-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
291 2006-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
317 2006-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
330 2006-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
355 2006-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
360 2006-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
365 2006-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
371 2006-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
376 2006-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
387 2006-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
394 2006-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
404 2006-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
411 2006-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
418 2006-10-30 Dirk Mueller <dmueller@suse.de>
419
420 PR c++/6321
421 * decl.c (grokfndecl): Use check_main_parameter_types.
422
423 2006-10-30 Dirk Mueller <dmueller@suse.de>
424
425 PR c++/28669
426 * decl.c (grokfndecl): Duplicate warning message for
427 easier translation.
428
429 2006-10-30 Dirk Mueller <dmueller@suse.de>
430
431 * typeck.c (build_unary_op): Fix indenting. Use G_().
432
433 2006-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
439 2006-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
445 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
446
447 * decl.c: Fix a comment typo.
448
449 2006-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
455 2006-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
461 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
462
463 * decl.c (builtin_function_1): Move common code to
464 add_builtin_function.
465 (builtin_function): Rename to cxx_builtin_function.
466 Change the signature.
467 * call.c: Include langhooks.h.
468 (build_java_interface_fn_ref): Replace calls to
469 builtin_function with add_builtin_function.
470 * Make-lang.in (cp/call.o): Depend on langhooks.h.
471 * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
472 cxx_builtin_function.
473 * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
474 Change the signature.
475
476 2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
477
478 PR c++/20647
479 * rtti.c (tinfo_base_init): The type info string is always global.
480
481 2006-10-20 Lee Millward <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
488 2006-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
494 2006-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
503 2006-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
517 2006-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
525 2006-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
533 2006-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
554 2006-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
561 2006-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
567 2006-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
577 2006-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
583 2006-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
598 2006-10-10 Brooks Moses <bmoses@stanford.edu>
599
600 * Make-lang.in: Added "c++.pdf" target support.
601
602 2006-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
608 2006-10-09 Richard Henderson <rth@redhat.com>
609
610 Revert emutls patch.
611
612 2006-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
619 2006-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
636 2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
637
638 PR c++/29291
639 * init.c (build_new): Check for invalid init.
640
641 2006-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
647 2006-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
659 2006-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
682 2006-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
688 2006-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
698 2006-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
704 2006-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
714 2006-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
720 2006-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
727 2006-09-09 Jason Merrill <jason@redhat.com>
728
729 PR c++/28996
730 * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
731
732 2006-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
742 2006-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
749 2006-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
758 2006-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
764 2006-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
775 2006-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
785 2006-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
799 2006-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
817 2006-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
823 2006-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
833 2006-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
847 2006-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
864 2006-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
870 2006-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
876 2006-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
882 2006-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
892 2006-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
903 2006-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
911 2006-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
917 2006-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
926 2006-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
942 2006-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
968 2006-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
982 2006-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
988 2006-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
996 2006-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
1004 2006-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
1010 2006-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
1016 2006-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
1022 2006-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
1028 2006-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
1035 2006-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
1045 2006-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
1056 2006-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
1070 2006-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
1102 2006-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
1117 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
1118
1119 PR c++/28573
1120 * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
1121
1122 2006-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
1128 2006-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
1134 2006-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
1139 2006-08-15 Lee Millward <lee.millward@codesourcery.com>
1140
1141 PR c++/28594
1142 * pt.c (process_template_parm): Robustify.
1143
1144 2006-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
1152 2006-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
1158 2006-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
1177 2006-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
1183 2006-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
1195 2006-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
1206 2006-08-02 Mark Mitchell <mark@codesourcery.com>
1207
1208 PR c++/28557
1209 * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
1210
1211 2006-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
1218 2006-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
1224 2006-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
1229 2006-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
1235 2006-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
1241 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1242
1243 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1244
1245 2006-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
1260 2006-07-28 Kazu Hirata <kazu@codesourcery.com>
1261
1262 * cp-tree.h: Fix a comment typo.
1263
1264 2006-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
1270 2006-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
1276 2006-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
1287 2006-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
1294 2006-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
1299 2006-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
1309 2006-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
1331 2006-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
1338 2006-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
1344 2006-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
1353 2006-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
1363 2006-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
1369 2006-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
1374 2006-07-17 Steve Ellcey <sje@cup.hp.com>
1375
1376 PR c++/28304
1377 * decl2.c (check_classfn): Return NULL_TREE on error.
1378
1379 2006-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
1389 2006-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
1396 2006-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
1409 2006-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
1424 2006-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
1430 2006-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
1435 2006-07-12 Jason Merrill <jason@redhat.com>
1436
1437 PR c++/28217
1438 * semantics.c (note_decl_for_pch): Don't premangle templates.
1439
1440 2006-07-12 Martin Michlmayr <tbm@cyrius.com>
1441
1442 * typeck.c (string_conv_p): Remove spurious quotation mark in
1443 warning.
1444
1445 2006-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
1453 2006-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
1459 2006-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
1470 2006-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
1477 2006-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
1483 2006-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
1489 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
1490
1491 * decl2.c: Fix a comment typo.
1492
1493 2006-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
1499 2006-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
1547 2006-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
1553 2006-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
1562 2006-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
1570 2006-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
1575 2006-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
1580 2006-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
1592 2006-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
1597 2006-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
1606 2006-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
1618 2006-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
1624 2006-06-19 Mark Mitchell <mark@codesourcery.com>
1625
1626 * pt.c (instantiate_template): Fix typo in comment.
1627
1628 2006-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
1633 2006-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
1654 2006-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
1668 2006-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
1687 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1688
1689 * typeck.c (build_modify_expr): Tidy diagnostic message.
1690
1691 2006-06-14 Mark Mitchell <mark@codesourcery.com>
1692
1693 PR c++/28018
1694 * typeck.c (build_modify_expr): Disallow array assignment.
1695
1696 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1697
1698 * cp-tree.def: Fix typo.
1699
1700 2006-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
1708 2006-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
1722 2006-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
1735 2006-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
1741 2006-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
1750 2006-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
1756 2006-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
1778 2006-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
1784 2006-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
1790 2006-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
1795 2006-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
1801 2006-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
1816 2006-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
1826 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
1827
1828 * pt.c (convert_nontype_argument): Fix a typo in an error
1829 message.
1830
1831 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
1832
1833 * decl.c, decl2.c, parser.c: Fix comment typos. Follow
1834 spelling conventions.
1835
1836 2006-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
1858 2006-05-23 Mark Mitchell <mark@codesourcery.com>
1859
1860 PR c++/20173
1861 * pt.c (determine_specialization): Disallow partial
1862 specializations of templates.
1863
1864 2006-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
1871 2006-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
1879 2006-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
1885 2006-05-19 Mike Stump <mrs@apple.com>
1886
1887 * typeck.c (default_conversion): Remove static.
1888
1889 2006-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
1900 2006-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
1925 2006-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
1941 2006-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
1952 2006-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
1957 2006-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
1986 2006-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
2007 2006-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
2016 2006-05-14 Alexandre Oliva <aoliva@redhat.com>
2017
2018 * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
2019 COMPONENT_REF alone.
2020
2021 2006-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
2026 2006-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
2031 2006-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
2048 2006-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
2056 2006-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
2063 2006-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
2080 2006-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
2087 2006-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
2095 2006-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
2101 2006-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
2106 2006-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
2115 2006-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
2123 2006-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
2128 2006-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
2161 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
2162
2163 * decl.c: Fix comment typos.
2164
2165 2006-04-21 Eric Christopher <echristo@apple.com>
2166
2167 * decl.c: Fix typo in function name.
2168
2169 2006-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
2192 2006-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
2219 2006-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
2225 2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2226
2227 * init.c (build_offset_ref): Remove superfluous temporary.
2228
2229 2006-04-16 Mark Mitchell <mark@codesourcery.com>
2230
2231 PR c++/26365
2232 * typeck.c (finish_class_member_access_expr): Robustify
2233
2234 2006-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
2246 2006-04-12 Mark Mitchell <mark@codesourcery.com>
2247
2248 * parser.c (cp_parser_init_declarator): Initialize local variables
2249 aggressively.
2250
2251 2006-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
2256 2006-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
2291 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
2292
2293 * decl2.c, pt.c, semantics.c: Fix comment typos.
2294
2295 2006-04-06 Roger Sayle <roger@eyesopen.com>
2296
2297 * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
2298
2299 2006-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
2304 2006-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
2310 2006-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
2315 2006-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
2320 2006-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
2325 2006-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
2333 2006-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
2354 2006-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
2361 2006-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
2367 2006-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
2818 2006-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
2823 2006-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
2828 2006-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
2833 2006-03-01 Mike Stump <mrs@apple.com>
2834
2835 PR darwin/25908
2836 * decl2.c (import_export_decl): Fix ABI breakage on darwin.
2837
2838 2006-02-24 Geoffrey Keating <geoffk@apple.com>
2839
2840 * except.c (expand_start_catch_block): Handle
2841 flag_use_cxa_get_exception_ptr.
2842
2843 2006-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
2849 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2850
2851 * Make-lang.in (C++): Remove.
2852 (.PHONY): Remove C++.
2853
2854 2006-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
2892 2006-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
2900 2006-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
2913 2006-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
2918 2006-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
2926 2006-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
2934 2006-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
2940 2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2941
2942 * class.c (debug_class): Remove extern.
2943 (debug_thunks): Likewise.
2944
2945 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
2946
2947 * typeck.c (string_conv_p): Don't test for flag_const_strings.
2948
2949 2006-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
2956 2006-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
2964 2006-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
2977 2006-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
2982 2006-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
2996 2006-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
3003 2006-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
3023 2006-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
3051 2006-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
3056 2006-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
3076 2006-01-31 Ben Elliston <bje@au.ibm.com>
3077
3078 * mangle.c: Comment fix.
3079
3080 2006-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
3086 2006-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
3115 2006-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
3126 2006-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
3133 2006-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
3148 2006-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
3154 2006-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
3164 2006-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
3181 2006-01-24 Dirk Mueller <dmueller@suse.de>
3182
3183 * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
3184
3185 2006-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
3195 2006-01-24 Mark Mitchell <mark@codesourcery.com>
3196
3197 * semantics.c: Remove outdated comment.
3198
3199 2006-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
3225 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3226
3227 * rtti.c (build_dynamic_cast): Fix comment.
3228
3229 2006-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
3235 2006-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
3248 2006-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
3261 2006-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
3268 2006-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
3274 2006-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
3280 2006-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
3292 2006-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
3306 2006-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
3311 2006-01-18 Jakub Jelinek <jakub@redhat.com>
3312
3313 * search.c (lookup_conversions_r): Fix a pasto.
3314
3315 2006-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
3321 2006-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
3327 2006-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
3333 2006-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
3339 2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3340
3341 * g++spec.c (lang_specific_spec_functions): Remove.
3342
3343 2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
3344
3345 * decl.c (check_initializer): Fix thinko.
3346
3347 2006-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
3353 2006-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
3360 2006-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
3367 2006-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
3373 2006-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
3379 2006-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
3384 2006-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
3390 2006-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
3395 2006-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
3401 2006-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
3438 2006-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
3443 2006-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
3455 2006-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
3491 2006-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
3496
3497
3498 Copyright (C) 2006 Free Software Foundation, Inc.
3499
3500 Copying and distribution of this file, with or without modification,
3501 are permitted in any medium without royalty provided the copyright
3502 notice and this notice are preserved.