In gcc/: 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
[gcc.git] / gcc / cp / ChangeLog
1 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
2
3 * parser.c (cp_parser_objc_class_declaration): Updated for change
4 in objc_declare_class().
5
6 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
7
8 * decl.c (poplevel): Use block_chainon.
9
10 2011-04-13 Jason Merrill <jason@redhat.com>
11
12 PR c++/48594
13 * decl2.c (build_offset_ref_call_from_tree): Fix calling a functor
14 or pointer to (non-member) function.
15
16 2011-04-13 Jakub Jelinek <jakub@redhat.com>
17
18 PR c++/48570
19 * semantics.c (cxx_eval_array_reference): Handle reading from
20 wchar_t, char16_t and char32_t STRING_CST.
21
22 2011-04-13 Dodji Seketeli <dodji@redhat.com>
23
24 PR c++/48574
25 * class.c (fixed_type_or_null): We cannot determine the dynamic
26 type of a reference variable if its initializer is dependent.
27
28 2011-04-13 Jason Merrill <jason@redhat.com>
29
30 PR c++/48581
31 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about
32 unqualified lookup failing if we're still in a template.
33
34 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
35
36 * cp-lang.c (cp_init_ts): Call cp_common_init_ts. Move
37 tree_contains_struct initialization to...
38 * cp-objcp-common.c (cp_common_init_ts): ...here. Use MARK_*
39 macros.
40 * cp-objcp-common.h (cp_common_init_ts): Declare.
41 * cp-tree.h (union lang_tree_node): Check for TS_COMMON before
42 calling TREE_CHAIN.
43
44 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
45
46 * parser.c (cp_parser_objc_message_expression): Updated call
47 to objc_build_message_expr.
48
49 2011-04-12 Martin Jambor <mjambor@suse.cz>
50
51 * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
52 cgraph_get_create_node.
53 * decl2.c (cp_write_global_declarations): Call cgraph_get_node
54 instead of cgraph_get_create_node.
55 * method.c (make_alias_for_thunk): Call cgraph_get_node
56 instead of cgraph_get_create_node, assert it returns non-NULL.
57 (use_thunk): Likewise.
58 * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
59 when flag_syntax_only is not set. Call cgraph_get_node instead of
60 cgraph_get_create_node.
61 (maybe_clone_body): Call cgraph_get_node instead of
62 cgraph_get_create_node.
63
64 2011-04-12 Martin Jambor <mjambor@suse.cz>
65
66 * class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
67 instead of cgraph_node.
68 * decl2.c (cxx_callgraph_analyze_expr): Likewise.
69 (cp_write_global_declarations): Likewise.
70 * optimize.c (maybe_clone_body): Likewise.
71 * semantics.c (maybe_add_lambda_conv_op): Likewise.
72 * mangle.c (mangle_decl): Likewise.
73 * method.c (make_alias_for_thunk): Likewise.
74 (use_thunk): Likewise.
75
76 2011-04-11 Jason Merrill <jason@redhat.com>
77
78 PR c++/48535
79 * decl.c (cp_complete_array_type_or_error): New.
80 * semantics.c (finish_compound_literal): Use it.
81 * cp-tree.h: Declare it.
82
83 PR c++/48535
84 * semantics.c (finish_compound_literal): Handle references.
85
86 PR c++/48535
87 * semantics.c (finish_compound_literal): Take complain parm.
88 (build_lambda_object): Adjust.
89 * cp-tree.h: Adjust.
90 * call.c (convert_like_real): Adjust.
91 * decl.c (check_initializer): Adjust.
92 * parser.c (cp_parser_postfix_expression): Adjust.
93 (cp_parser_functional_cast): Adjust.
94 * pt.c (tsubst_copy_and_build): Adjust.
95 * typeck2.c (process_init_constructor_record): Adjust.
96
97 PR c++/48534
98 * cvt.c (ocp_convert): Use build_nop to convert to underlying type
99 of scoped enum.
100
101 PR c++/48523
102 * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather
103 than cp_build_indirect_ref.
104
105 PR c++/48457, Core 1238
106 * call.c (reference_binding): Allow rvalue reference to bind to
107 function lvalue.
108 * tree.c (lvalue_kind): Functions are always lvalues.
109
110 2011-04-07 Jason Merrill <jason@redhat.com>
111
112 PR c++/48500
113 * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check
114 arguments even if we don't know the function.
115
116 PR c++/48481
117 * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL
118 at the end of the chain.
119 * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT.
120 (iterative_hash_template_arg): Likewise.
121
122 PR c++/48481
123 * cp-tree.h (OVL_ARG_DEPENDENT): New.
124 * name-lookup.c (add_function): Set it.
125 * semantics.c (finish_call_expr): Free OVERLOADs if it's set.
126
127 PR c++/48481
128 * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot.
129 Release unused vector.
130
131 PR c++/48451
132 * pt.c (fn_type_unification): Don't clear incomplete pack flag.
133 (type_unification_real): Clear it here instead.
134
135 PR c++/48468
136 * except.c (build_noexcept_spec): Propagate error_mark_node.
137 (finish_noexcept_expr): Likewise.
138
139 PR c++/48452
140 * typeck.c (build_x_compound_expr_from_list): Return error_mark_node
141 in SFINAE context.
142
143 PR c++/48450
144 * call.c (resolve_args): Take complain.
145 (build_new_function_call, build_operator_new_call): Pass it.
146 (build_op_call, build_new_op, build_new_method_call): Pass it.
147
148 PR c++/48450
149 * typeck.c (check_for_casting_away_constness): Take complain.
150 (build_static_cast_1, build_reinterpret_cast_1): Pass it.
151 (build_const_cast_1): Pass it. Take full complain parm.
152 (build_const_cast, cp_build_c_cast): Adjust.
153
154 * tree.c (build_aggr_init_expr): Always return error_mark_node
155 on abstract violation.
156
157 PR c++/48450
158 * tree.c (build_cplus_new, build_aggr_init_expr): Take complain.
159 (bot_manip): Adjust.
160 * cp-tree.h: Adjust.
161 * call.c (convert_like_real, build_cxx_call): Adjust.
162 (perform_direct_initialization_if_possible): Adjust.
163 * cvt.c (ocp_convert): Adjust.
164 * init.c (build_value_init): Adjust.
165 * semantics.c (maybe_add_lambda_conv_op): Adjust.
166 * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust.
167 * typeck2.c (build_functional_cast): Adjust.
168
169 * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
170 level.
171 (perform_member_init): Not here.
172 * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
173 case to templates.
174 (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.
175
176 PR c++/48449
177 * typeck2.c (build_functional_cast): Check complain consistently.
178 Use build_value_init and abstract_virtuals_error_sfinae.
179 (abstract_virtuals_error_sfinae): Split out.
180 * cp-tree.h: Declare it.
181 * init.c (build_new_1): Use it.
182 (build_value_init_noctor): Handle FUNCTION_TYPE.
183
184 * semantics.c (finish_decltype_type): Simplify handling of unknown
185 type.
186
187 * semantics.c (finish_decltype_type): Add complain parm.
188 * cp-tree.h: Adjust.
189 * parser.c (cp_parser_decltype): Adjust.
190 * pt.c (tsubst): Adjust.
191
192 PR c++/48450
193 * cvt.c (ocp_convert): Handle converting scoped enum to bool.
194
195 2011-03-31 Jason Merrill <jason@redhat.com>
196
197 PR c++/48277
198 * semantics.c (finish_call_expr): Remove assert.
199
200 PR c++/48280
201 * method.c (defaultable_fn_check): Templates are not defaultable.
202
203 * parser.c (cp_parser_init_declarator): Avoid redundant
204 cp_finish_decl for member declarations.
205
206 2011-03-30 Jason Merrill <jason@redhat.com>
207
208 PR c++/48212
209 * semantics.c (non_const_var_error): Just return if DECL_INITIAL
210 is error_mark_node.
211
212 2011-03-30 Jason Merrill <jason@redhat.com>
213
214 PR c++/48369
215 * semantics.c (potential_constant_expression_1): Handle
216 UNORDERED_EXPR and ORDERED_EXPR.
217
218 PR c++/48281
219 * semantics.c (finish_compound_literal): Do put static/constant
220 arrays in static variables.
221
222 * call.c (convert_like_real) [ck_list]: Build up the
223 initializer_list object directly.
224 * decl.c (build_init_list_var_init): Adjust.
225
226 * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
227 * decl.c (reshape_init_array_1): Likewise.
228
229 2011-03-29 Jason Merrill <jason@redhat.com>
230
231 PR c++/48265
232 * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
233 the variable is constant before looking at its initializer.
234
235 PR c++/48319
236 * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.
237
238 PR c++/48089
239 * semantics.c (potential_constant_expression_1): Change error about
240 use of *this in constructor into sorry.
241
242 PR c++/48296
243 * decl.c (cp_finish_decl): Defer validation of constexpr member
244 functions.
245 * class.c (finalize_literal_type_property): Validate them here.
246 * semantics.c (is_valid_constexpr_fn): Don't check completeness.
247
248 * semantics.c (is_valid_constexpr_fn): Specify input location.
249
250 2011-03-28 Jason Merrill <jason@redhat.com>
251
252 PR c++/48313
253 * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
254 from overloaded function.
255
256 Core 1232
257 * call.c (build_array_conv): New.
258 (implicit_conversion): Use it.
259
260 * call.c (reference_binding): Allow direct binding to an array
261 rvalue.
262
263 Core 898
264 * parser.c (cp_parser_compound_statement): Add function_body parm.
265 Complain about non-body compound-stmt in constexpr fn.
266 (cp_parser_primary_expression, cp_parser_statement): Adjust.
267 (cp_parser_implicitly_scoped_statement): Adjust.
268 (cp_parser_function_body, cp_parser_try_block): Adjust.
269 (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
270 (cp_parser_objc_try_catch_finally_statement): Adjust.
271
272 Core 898
273 * semantics.c (constexpr_fn_retval): New. Allow using-declaration
274 and using-definition.
275 (register_constexpr_fundef): Call it.
276
277 * except.c (build_noexcept_spec): Call cxx_constant_value after
278 converting to bool.
279
280 2011-03-25 Kai Tietz <ktietz@redhat.com>
281
282 * lex.c (interface_strcmp): Handle dos-paths.
283 (handle_pragma_implementation): Use filename_cmp instead of
284 strcmp.
285 (in_main_input_context): Likewise.
286
287 2011-03-25 Jason Merrill <jason@redhat.com>
288
289 Core 1135
290 * method.c (defaulted_late_check): Check for exception spec mismatch.
291 (defaultable_fn_check): Allow exception spec and virtual.
292 * class.c (check_for_override): A virtual dtor is non-trivial.
293
294 PR c++/48289
295 * pt.c (build_non_dependent_expr): Keep dereferences outside the
296 NON_DEPENDENT_EXPR.
297
298 2011-03-25 Kai Tietz <ktietz@redhat.com>
299
300 * decl.c (decls_match): Replace target hook
301 call of comp_type_attributes by version in tree.c file.
302 * search.c (check_final_overrider): Likewise.
303 * typeck.c (structural_comptypes): Likewise.
304
305 2011-03-21 Kai Tietz <ktietz@redhat.com>
306
307 PR target/12171
308 * cxx-pretty-print.c (pp_cxx_ptr_operator):
309 Display allowed attributes for function pointer types.
310 * error.c (dump_type_prefix): Likewise.
311
312 * tree.c (cxx_attribute_table): Adjust table.
313
314 2011-03-18 Jason Merrill <jason@redhat.com>
315
316 PR c++/48162
317 * semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
318
319 PR c++/48118
320 * call.c (build_over_call): Don't skip ck_rvalue.
321
322 2011-03-17 Jason Merrill <jason@redhat.com>
323
324 PR c++/47504
325 * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
326 the conversion set TREE_OVERFLOW.
327
328 Core 1212
329 * semantics.c (finish_decltype_type): Return T&& for xvalue.
330 * typeck.c (unlowered_expr_type): Preserve cv-quals.
331
332 PR c++/48166
333 * decl.c (revert_static_member_fn): Strip function-cv-quals.
334
335 2011-03-16 Jason Merrill <jason@redhat.com>
336
337 PR c++/48089
338 * semantics.c (potential_constant_expression_1): Don't allow *this
339 in a constructor.
340 (register_constexpr_fundef): Use potential_rvalue_constant_expression.
341
342 PR c++/47301
343 * decl.c (compute_array_index_type): Don't bother trying to deal
344 with literal classes in ABI v1.
345
346 PR c++/46336
347 * decl.c (duplicate_decls): Return NULL_TREE for clashing
348 C functions.
349
350 PR c++/47570
351 * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
352 use the generic binary expression handling.
353
354 2011-03-16 Diego Novillo <dnovillo@google.com>
355
356 * Make-lang.in (CXX_PARSER_H): New.
357 (cp/parser.o): Add dependency on CXX_PARSER_H.
358 Add dependency on tree-pretty-print.h
359 (cp/cp-lang.o): Add dependency on CXX_PARSER_H.
360 * cp-lang.c: Include parser.h.
361 * parser.c: Include parser.h.
362 (struct cp_token): Add bitfield purged_p.
363 Update all users.
364 Move to parser.h.
365 (CPP_PURGED): Remove. Update all users.
366 (struct cp_lexer): Change field buffer to be a VEC of cp_token.
367 Remove field buffer_length.
368 Update all users.
369 Move to parser.h.
370 (struct tree_check): Move to parser.h.
371 (cp_token_position): Likewise.
372 (struct cp_token_cache): Likewise.
373 (CPP_KEYWORD): Likewise.
374 (CPP_TEMPLATE_ID): Likewise.
375 (CPP_NESTED_NAME_SPECIFIER): Likewise.
376 (N_CP_TTYPES): Likewise.
377 (enum cp_parser_status_kind): Likewise.
378 (struct cp_parser_context): Likewise.
379 (struct cp_default_arg_entry_d): Likewise.
380 (struct cp_unparsed_functions_entry_d): Likewise.
381 (struct cp_parser): Likewise.
382 (cp_lexer_dump_tokens): New.
383 (cp_lexer_debug_tokens): New.
384 (cp_lexer_finished_p): New.
385 (cp_lexer_alloc): Factor out of cp_lexer_new_main.
386 (cp_lexer_new_main): Re-write main lexing loop to push
387 tokens into the new VEC buffer.
388 (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
389 Do not abort if the token type is not recognized, just print
390 its code.
391 * parser.h: New file.
392 * config-lang.in (gtfiles): Add cp/parser.h.
393
394 2011-03-16 Jason Merrill <jason@redhat.com>
395
396 Core 1148
397 * typeck.c (check_return_expr): Fix conditions for setting
398 LOOKUP_PREFER_RVALUE.
399
400 * call.c (build_over_call): Remove require_complete_type_sfinae call.
401
402 PR c++/48132
403 * decl.c (check_array_designated_initializer): Allow integer index.
404 (reshape_init_array_1): Set index on the elements.
405
406 2011-03-16 Jason Merrill <jason@redhat.com>
407
408 PR c++/48113
409 * typeck.c (convert_for_initialization): Use
410 perform_implicit_conversion_flags.
411 * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
412 rvaluedness_matches_p on ck_rvalue.
413 (convert_like_real) [ck_rvalue]: And restore it here.
414
415 PR c++/48115
416 * call.c (convert_arg_to_ellipsis): Handle incomplete type.
417
418 2011-03-16 Jason Merrill <jason@redhat.com>
419
420 * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
421 committed to this tentative parse.
422
423 PR c++/47999
424 * semantics.c (finish_call_expr): Preserve reference semantics
425 in templates.
426
427 * call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
428
429 2011-03-16 Jakub Jelinek <jakub@redhat.com>
430
431 * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
432 DECL_LANG_SPECIFIC is NULL.
433
434 2011-03-15 Jason Merrill <jason@redhat.com>
435
436 Core 1074
437 * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
438 check value_dependent_expression_p on the operand.
439
440 * semantics.c (push_cx_call_context): Return bool.
441 (cxx_eval_call_expression): Handle excess depth.
442
443 Core 1191
444 * method.c (synthesized_method_walk): Cleanups don't affect the
445 triviality of a constructor, but do affect deletion and exception
446 specification.
447
448 2011-03-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
449
450 * decl2.c (cp_check_const_attributes): New.
451 (cplus_decl_attributes): Call cp_check_const_attributes.
452
453 2011-03-15 Jason Merrill <jason@redhat.com>
454
455 PR c++/34758
456 * call.c (convert_default_arg): Use DECL_ORIGIN of fn. Check for
457 recursion first.
458 (push_defarg_context, pop_defarg_context): New.
459 * parser.c (cp_parser_late_parsing_default_args): Use them.
460 * cp-tree.h: Declare them.
461
462 2011-03-11 Dodji Seketeli <dodji@redhat.com>
463
464 * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
465 the argument of the indirection operator should not be dependent.
466 Fix the comment.
467
468 2011-03-11 Jason Merrill <jason@redhat.com>
469
470 PR c++/47125
471 * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
472
473 PR c++/47144
474 * parser.c (cp_parser_template_type_arg): Set
475 type_definition_forbidden_message.
476
477 PR c++/47808
478 * decl.c (compute_array_index_type): Discard folding
479 if it didn't produce a constant.
480
481 2011-03-11 Jakub Jelinek <jakub@redhat.com>
482
483 PR c++/48035
484 * init.c (build_zero_init_1): Extracted from build_zero_init.
485 Add FIELD_SIZE argument, if non-NULL and field bit_position
486 as not smaller than that, don't add that field's initializer.
487 Pass DECL_SIZE as last argument to build_zero_init_1
488 for DECL_FIELD_IS_BASE fields.
489 (build_zero_init): Use build_zero_init_1.
490
491 2011-03-10 Jason Merrill <jason@redhat.com>
492
493 PR c++/48029
494 * pt.c (iterative_hash_template_arg): Remove special case for
495 ARRAY_TYPE.
496
497 PR c++/47198
498 * parser.c (cp_parser_single_declaration): Just return if
499 cp_parser_parse_and_diagnose_invalid_type_name complained.
500
501 2011-03-09 Jason Merrill <jason@redhat.com>
502
503 PR c++/44629
504 * pt.c (unify): An unresolved overload is a nondeduced context.
505
506 2011-03-09 Martin Jambor <mjambor@suse.cz>
507
508 PR tree-optimization/47714
509 * method.c (use_thunk): Clear addressable flag of thunk arguments.
510
511 2011-03-08 Dodji Seketeli <dodji@redhat.com>
512
513 PR c++/47705
514 * pt.c (convert_nontype_argument): Only call decay_conversion on
515 arrays.
516
517 2011-03-08 Jason Merrill <jason@redhat.com>
518
519 PR c++/47488
520 * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
521
522 PR c++/47705
523 * pt.c (convert_nontype_argument): Don't crash on non-pointer
524 argument to pointer parameter.
525
526 PR c++/45651
527 * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
528 !TREE_PUBLIC decls.
529
530 2011-03-08 Dodji Seketeli <dodji@redhat.com>
531
532 PR c++/47957
533 * name-lookup.c (binding_to_template_parms_of_scope_p): Only
534 consider scopes of primary template definitions. Adjust comments.
535
536 2011-03-07 Jason Merrill <jason@redhat.com>
537
538 PR c++/48003
539 * pt.c (convert_nontype_argument): Fix -fpermissive allowing
540 integer overflow.
541 * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
542
543 PR c++/48015
544 * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
545
546 PR c++/48008
547 * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
548 (write_CV_qualifiers_for_type): Not here.
549
550 2011-03-06 Joseph Myers <joseph@codesourcery.com>
551
552 * lang-specs.h: Match -save-temps* instead of -save-temps.
553
554 2011-03-05 Jason Merrill <jason@redhat.com>
555
556 * mangle.c (write_expression): Change ABI v6 to v5.
557 (write_type): Likewise.
558
559 2011-03-04 Jan Hubicka <jh@suse.cz>
560
561 PR lto/47497
562 * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
563 and cgraph_add_thunk.
564 * method.c (make_alias_for_thunk, use_thunk): Likewise.
565 * mangle.c (mangle_decl): Likewise.
566
567 2011-03-04 Jason Merrill <jason@redhat.com>
568
569 PR c++/47971
570 * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
571 (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
572
573 PR c++/46220
574 * search.c (check_final_overrider): Allow pointer to same incomplete
575 class type with different cv-quals.
576
577 2011-03-03 Paolo Carlini <paolo.carlini@oracle.com>
578
579 PR c++/47974
580 * pt.c (tsubst_template_args): Check argument t for error_mark_node.
581
582 2011-03-03 Jason Merrill <jason@redhat.com>
583
584 PR c++/47950
585 * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
586
587 2011-03-02 Jason Merrill <jason@redhat.com>
588
589 PR c++/47950
590 * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
591
592 PR c++/47774
593 * tree.c (build_vec_init_elt): Split out from...
594 (build_vec_init_expr): ...here.
595 (diagnose_non_constexpr_vec_init): New fn.
596 * semantics.c (potential_constant_expression_1): Use it.
597 * cp-tree.h: Declare it.
598
599 2011-03-01 Jason Merrill <jason@redhat.com>
600
601 PR c++/46159
602 * parser.c (cp_parser_primary_expression): Don't warn about a
603 failed tentative parse.
604
605 PR c++/47200
606 * semantics.c (cxx_bind_parameters_in_call): Don't call
607 adjust_temp_type on non-constant args.
608
609 PR c++/47851
610 * call.c (standard_conversion): Provide requested cv-quals on
611 class rvalue conversion.
612
613 PR c++/46282
614 * decl2.c (grokbitfield): Handle type-dependent width.
615
616 2011-02-28 Jason Merrill <jason@redhat.com>
617
618 PR c++/47873
619 * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
620 after checking for a non-thunk.
621
622 2011-02-26 Jason Merrill <jason@redhat.com>
623
624 PR c++/47904
625 * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
626 * pt.c (iterative_hash_template_arg): And hash it.
627
628 PR c++/47897
629 * semantics.c (non_const_var_error): Split out from...
630 (cxx_eval_constant_expression): ...here.
631 (potential_constant_expression_1) [VAR_DECL]: Use it.
632 Allow dependent variables.
633
634 2011-02-24 Jason Merrill <jason@redhat.com>
635
636 * parser.c (cp_parser_constant_expression): Set
637 non_integral_constant_expression correctly for C++0x too.
638 (cp_parser_static_assert): Allow non-constant expression.
639 (cp_parser_direct_declarator): Expect non_constant_p to be set
640 properly for C++0x.
641 * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
642 * semantics.c (maybe_constant_value): Check type_unknown_p too.
643 (potential_rvalue_constant_expression): New.
644 (require_potential_rvalue_constant_expression): New.
645
646 2011-02-23 Jason Merrill <jason@redhat.com>
647
648 * cp-tree.h (DECL_PARM_LEVEL): New.
649 (struct lang_decl_parm): Add level field.
650 * name-lookup.c (function_parm_depth): New fn.
651 * name-lookup.h: Declare it.
652 * parser.c (cp_parser_parameter_declaration_list): Use it.
653 * mangle.c (struct globals): Add parm_depth field.
654 (write_bare_function_type): Adjust it.
655 (write_expression): Include the level delta in PARM_DECL mangling
656 for abi >= 6.
657
658 * semantics.c (finish_decltype_type): Remove shortcut for decltype
659 of id-expression.
660 * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
661
662 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
663
664 PR c++/46868
665 * parser.c (cp_parser_class_specifier): Require a closing brace
666 to attempt error recovery.
667
668 2011-02-23 Jakub Jelinek <jakub@redhat.com>
669
670 PR c++/47833
671 * pt.c (struct pending_template): Add chain_next GTY option.
672 * decl.c (struct named_label_use_entry): Likewise.
673
674 2011-02-22 Paolo Carlini <paolo.carlini@oracle.com>
675
676 PR c++/47242
677 * semantics.c (build_lambda_object): Bail out if a field is
678 error_mark_node.
679
680 2011-02-22 Dodji Seketeli <dodji@redhat.com>
681
682 PR c++/47666
683 * class.c (dfs_declare_virt_assop_and_dtor)
684 (declare_virt_assop_and_dtor): New static functions.
685 (add_implicitly_declared_members): Use
686 declare_virt_assop_and_dtor.
687
688 2011-02-21 Jason Merrill <jason@redhat.com>
689
690 PR c++/47207
691 * decl2.c (decl_constant_var_p): A constexpr var needs an
692 initializer to be constant.
693 * semantics.c (cxx_eval_constant_expression): Complain about
694 constexpr var used in its own initializer.
695 * call.c (set_up_extended_ref_temp): Set
696 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
697
698 2011-02-20 Jason Merrill <jason@redhat.com>
699
700 PR c++/47199
701 * semantics.c (cxx_eval_call_expression): Call
702 cxx_eval_constant_expression in trivial shortcut.
703
704 PR c++/46831
705 * call.c (convert_class_to_reference): Don't try to set up a
706 second conv sequence for non-viable candidates.
707
708 PR c++/47703
709 * error.c (location_of): Handle non-tagged types.
710
711 PR c++/46472
712 * method.c (process_subob_fn): Instantiate constexpr templates.
713 * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
714
715 2011-02-20 Dodji Seketeli <dodji@redhat.com>
716
717 PR c++/46394
718 * pt.c (tsubst_pack_expansion): do not use
719 cp_tree_equal/same_type_p to detect an expansion of a parameter
720 pack.
721
722 2011-02-19 Jason Merrill <jason@redhat.com>
723
724 PR c++/47503
725 * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
726
727 2011-02-18 Paolo Carlini <paolo.carlini@oracle.com>
728
729 PR c++/47795
730 * semantics.c (finish_non_static_data_member): Early return if
731 object is error_mark_node.
732
733 2011-02-18 Dodji Seketeli <dodji@redhat.com>
734
735 PR c++/47208
736 * pt.c (do_auto_deduction): Do not mention error_mark_node in
737 diagnostics.
738 * semantics.c (finish_id_expression): Do not pass erroneous decl
739 to decl_constant_var_p.
740
741 2011-02-17 Jakub Jelinek <jakub@redhat.com>
742
743 PR c++/47783
744 * cvt.c (convert_from_reference): Call mark_exp_read.
745
746 2011-02-11 Dodji Seketeli <dodji@redhat.com>
747
748 PR c++/47172
749 * pt.c (finish_call_expr): Consider a call expression that has a
750 dependent "this" pointer as being dependent. Add comments.
751 (dependent_type_p, type_dependent_expression_p): Update comments.
752
753 2011-02-16 Dodji Seketeli <dodji@redhat.com>
754
755 PR c++/47326
756 * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
757 expansion arguments are not evaluated.
758
759 2011-02-16 Jakub Jelinek <jakub@redhat.com>
760
761 PR c++/47704
762 * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
763 instead of TYPE_LANG_FLAG_3.
764 * pt.c (lookup_template_class): Copy over
765 ENUM_FIXED_UNDERLYING_TYPE_P.
766
767 2011-02-15 Jason Merrill <jason@redhat.com>
768
769 PR c++/46807
770 * method.c (synthesized_method_walk): Always exit early for
771 trivial fn in C++98 mode.
772
773 2011-02-14 Jason Merrill <jason@redhat.com>
774
775 PR c++/47482
776 * parser.c (cp_parser_enumerator_definition): Call
777 fold_non_dependent_expr.
778
779 2011-02-09 Jason Merrill <jason@redhat.com>
780
781 * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
782 * semantics.c (finish_fname): Only return the name if we're in
783 a function.
784
785 * decl.c (build_enumerator): Don't perform integral promotions on
786 non-integral constants.
787
788 * cvt.c (convert_to_void): Handle null op1.
789
790 * class.c (type_has_constexpr_default_constructor): Make sure the
791 caller stripped an enclosing array.
792 * init.c (perform_member_init): Strip arrays before calling it.
793
794 PR c++/47511
795 * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
796
797 2011-02-03 Dodji Seketeli <dodji@redhat.com>
798
799 PR c++/47398
800 * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
801 template parameters in account.
802
803 2011-02-03 Nathan Froyd <froydnj@codesourcery.com>
804
805 PR c++/46890
806 * parser.c (cp_parser_class_specifier): Fix setting of
807 want_semicolon.
808
809 2011-01-31 Jakub Jelinek <jakub@redhat.com>
810
811 PR c++/47416
812 * semantics.c (build_data_member_initialization): Handle
813 STATEMENT_LIST always instead of just for CLEANUP_BODY.
814
815 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
816
817 * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
818 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
819
820 2011-01-29 Dodji Seketeli <dodji@redhat.com>
821
822 PR c++/47311
823 * cp-tree.h (fixup_template_parms): Declare.
824 * pt.c (end_template_parm_list): Do not fixup template parms here.
825 (fixup_template_parms): Remove static. Fix typo in the
826 comments. Remove useless code statement.
827 (fixup_template_parm): For a template template parameter, fixup
828 its attributes before fixing up its type.
829 * parser.c
830 (cp_parser_template_declaration_after_export): After parsing
831 template parameters fixup their types.
832
833 2011-01-26 Jakub Jelinek <jakub@redhat.com>
834
835 PR c++/47476
836 * semantics.c (potential_constant_expression_1): Handle
837 TRUTH_XOR_EXPR.
838
839 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
840
841 PR c++/43601
842 * semantics.c (expand_or_defer_fn_1): Handle it.
843 * decl2.c (decl_needed_p): Likewise.
844
845 2011-01-21 Jason Merrill <jason@redhat.com>
846
847 PR c++/47041
848 * semantics.c (build_constexpr_constructor_member_initializers):
849 Handle trivial copy.
850
851 2011-01-21 Jakub Jelinek <jakub@redhat.com>
852
853 PR c++/47388
854 * semantics.c (begin_for_stmt): If -fno-for-scope, don't
855 assume init must be NULL if scope is NULL.
856 (begin_range_for_stmt): Likewise.
857
858 2011-01-21 Jason Merrill <jason@redhat.com>
859
860 PR c++/46552
861 * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
862
863 PR c++/46977
864 * semantics.c (potential_constant_expression_1): Split out from
865 potential_constant_expression. Add want_rval parm. Handle
866 template expression forms. Don't enforce restriction on address
867 of automatic variable here. Add a couple of diagnostics that
868 had been missing.
869 (require_potential_constant_expression): New entry point.
870 (build_data_member_initialization, register_constexpr_fundef): Adjust.
871 (maybe_constant_value): Check potential_constant_expression.
872 * pt.c (fold_non_dependent_expr_sfinae): Likewise.
873 * tree.c (build_vec_init_expr): Adjust.
874
875 2011-01-19 Jakub Jelinek <jakub@redhat.com>
876
877 PR c++/47303
878 * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
879 or DECL_EXTERNAL.
880
881 2011-01-17 Jason Merrill <jason@redhat.com>
882
883 PR c++/47067
884 * semantics.c (base_field_constructor_elt): New fn.
885 (cxx_eval_bare_aggregate): Use it.
886 (build_data_member_initialization): Leave COMPONENT_REF for
887 vfield inits.
888
889 2011-01-14 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
890
891 * parser.c (cp_parser_range_for): Remove the "unused variable" warning
892 workaround.
893
894 2011-01-15 Giovanni Funchal <gafunchal@gmail.com>
895 Jonathan Wakely <jwakely.gcc@gmail.com>
896
897 PR c++/33558
898 * decl.c (grokdeclarator): Reject mutable reference members.
899
900 2011-01-14 Jason Merrill <jason@redhat.com>
901
902 PR c++/47289
903 * pt.c (coerce_template_parms): Fix error recovery.
904
905 PR c++/46903
906 * typeck2.c (check_narrowing): Only check arithmetic types.
907
908 PR c++/46688
909 * tree.c (build_vec_init_expr): Handle flexible array
910 properly.
911
912 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
913
914 PR c++/47213
915 * cp-tree.h (CLASSTYPE_VISIBILITY): Use
916 TYPE_MAIN_DECL instead of TYPE_NAME.
917 (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
918 * decl2.c (determine_visibility): Add check
919 of CLASS_TYPE_P for underlying_type.
920
921 2011-01-12 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
922
923 * cp-tree.h (begin_for_scope): New prototype.
924 (begin_for_stmt): Update prototype.
925 (begin_range_for_stmt): Update prototype.
926 * init.c (build_vec_init): Update call to begin_for_stmt.
927 * parser.c (cp_parser_for): New.
928 (cp_parser_c_for): Add three new parameters.
929 (cp_parser_range_for): Likewise. Most parsing code removed.
930 (cp_parser_iteration_statement): Call cp_parser_for instead of
931 cp_parser_c_for and cp_parser_range_for.
932 (cp_parser_for_init_statement): Add new parameter and return type.
933 (cp_parser_block_declaration): Update call to
934 cp_parser_simple_declaration.
935 (cp_parser_simple_declaration): Add new parameter.
936 Update call to cp_parser_init_declarator.
937 (cp_parser_init_declarator): Add new parameter.
938 * pt.c (tsubst_expr): Update call to begin_for_stmt.
939 * semantics.c (begin_for_scope): New.
940 (begin_for_stmt): Add two new parameters.
941 (begin_range_for_stmt): Likewise.
942
943 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
944
945 * parser.c (cp_parser_objc_at_property_declaration): Improved
946 error message.
947
948 2011-01-11 Dodji Seketeli <dodji@redhat.com>
949
950 PR debug/46955
951 * cp-lang.c (get_template_innermost_arguments_folded)
952 (get_template_argument_pack_elems_folded)
953 (template_arg_needs_folding, fold_cplus_constants): New static
954 functions.
955 (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
956 get_template_innermost_arguments_folded.
957 (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
958 get_template_argument_pack_elems_folded.
959
960 2011-01-11 Jason Merrill <jason@redhat.com>
961
962 PR c++/46658
963 * init.c (build_new_1): Handle value-init in templates differently.
964
965 PR c++/45520
966 * tree.c (maybe_dummy_object): Check current_class_ref against
967 context, not current_class_type.
968
969 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
970
971 PR objc/47078
972 * parser.c (cp_parser_objc_typename): If the type is unknown, for
973 error recovery purposes behave as if it was not specified so that
974 the default type is used.
975
976 2011-01-07 Jakub Jelinek <jakub@redhat.com>
977
978 PR c++/47022
979 * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
980 for the second build_x_va_arg argument.
981
982 2011-01-05 Tom Tromey <tromey@redhat.com>
983
984 * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
985 (lvalue_or_else): Likewise.
986
987 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
988
989 PR target/38662
990 * tree.c (cxx_type_hash_eq):
991 Allow METHOD_TYPE, too.
992
993 \f
994 Copyright (C) 2011 Free Software Foundation, Inc.
995
996 Copying and distribution of this file, with or without modification,
997 are permitted in any medium without royalty provided the copyright
998 notice and this notice are preserved.