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