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