]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
* init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
f8913d47 12011-04-07 Jason Merrill <jason@redhat.com>
2
74b7a9bc 3 * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
4 level.
5 (perform_member_init): Not here.
6 * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
7 case to templates.
8 (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.
9
70cac69d 10 PR c++/48449
11 * typeck2.c (build_functional_cast): Check complain consistently.
12 Use build_value_init and abstract_virtuals_error_sfinae.
13 (abstract_virtuals_error_sfinae): Split out.
14 * cp-tree.h: Declare it.
15 * init.c (build_new_1): Use it.
16 (build_value_init_noctor): Handle FUNCTION_TYPE.
17
07bbe61e 18 * semantics.c (finish_decltype_type): Simplify handling of unknown
19 type.
20
c2b6be66 21 * semantics.c (finish_decltype_type): Add complain parm.
22 * cp-tree.h: Adjust.
23 * parser.c (cp_parser_decltype): Adjust.
24 * pt.c (tsubst): Adjust.
25
f8913d47 26 PR c++/48450
27 * cvt.c (ocp_convert): Handle converting scoped enum to bool.
28
ff764080 292011-03-31 Jason Merrill <jason@redhat.com>
30
7a8a700d 31 PR c++/48277
32 * semantics.c (finish_call_expr): Remove assert.
33
b944db44 34 PR c++/48280
35 * method.c (defaultable_fn_check): Templates are not defaultable.
36
ff764080 37 * parser.c (cp_parser_init_declarator): Avoid redundant
38 cp_finish_decl for member declarations.
39
49147f1a 402011-03-30 Jason Merrill <jason@redhat.com>
41
42 PR c++/48212
43 * semantics.c (non_const_var_error): Just return if DECL_INITIAL
44 is error_mark_node.
45
33f4d7af 462011-03-30 Jason Merrill <jason@redhat.com>
47
414b72cf 48 PR c++/48369
49 * semantics.c (potential_constant_expression_1): Handle
50 UNORDERED_EXPR and ORDERED_EXPR.
51
4f662622 52 PR c++/48281
53 * semantics.c (finish_compound_literal): Do put static/constant
54 arrays in static variables.
55
cb43d570 56 * call.c (convert_like_real) [ck_list]: Build up the
57 initializer_list object directly.
58 * decl.c (build_init_list_var_init): Adjust.
59
33f4d7af 60 * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
61 * decl.c (reshape_init_array_1): Likewise.
62
b7e0c085 632011-03-29 Jason Merrill <jason@redhat.com>
64
14869621 65 PR c++/48265
66 * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
67 the variable is constant before looking at its initializer.
68
a870dce0 69 PR c++/48319
70 * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.
71
7fa940a3 72 PR c++/48089
73 * semantics.c (potential_constant_expression_1): Change error about
74 use of *this in constructor into sorry.
75
06c52ffe 76 PR c++/48296
77 * decl.c (cp_finish_decl): Defer validation of constexpr member
78 functions.
79 * class.c (finalize_literal_type_property): Validate them here.
80 * semantics.c (is_valid_constexpr_fn): Don't check completeness.
81
b7e0c085 82 * semantics.c (is_valid_constexpr_fn): Specify input location.
83
014b7317 842011-03-28 Jason Merrill <jason@redhat.com>
85
d74248f7 86 PR c++/48313
87 * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
88 from overloaded function.
89
59818863 90 Core 1232
91 * call.c (build_array_conv): New.
92 (implicit_conversion): Use it.
93
e76ce35f 94 * call.c (reference_binding): Allow direct binding to an array
95 rvalue.
96
6bf5e78d 97 Core 898
98 * parser.c (cp_parser_compound_statement): Add function_body parm.
99 Complain about non-body compound-stmt in constexpr fn.
100 (cp_parser_primary_expression, cp_parser_statement): Adjust.
101 (cp_parser_implicitly_scoped_statement): Adjust.
102 (cp_parser_function_body, cp_parser_try_block): Adjust.
103 (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
104 (cp_parser_objc_try_catch_finally_statement): Adjust.
105
b309fd0a 106 Core 898
107 * semantics.c (constexpr_fn_retval): New. Allow using-declaration
108 and using-definition.
109 (register_constexpr_fundef): Call it.
110
014b7317 111 * except.c (build_noexcept_spec): Call cxx_constant_value after
112 converting to bool.
113
82715bcd 1142011-03-25 Kai Tietz <ktietz@redhat.com>
115
116 * lex.c (interface_strcmp): Handle dos-paths.
117 (handle_pragma_implementation): Use filename_cmp instead of
118 strcmp.
119 (in_main_input_context): Likewise.
120
2281da08 1212011-03-25 Jason Merrill <jason@redhat.com>
122
fd3ee139 123 Core 1135
124 * method.c (defaulted_late_check): Check for exception spec mismatch.
125 (defaultable_fn_check): Allow exception spec and virtual.
126 * class.c (check_for_override): A virtual dtor is non-trivial.
127
2281da08 128 PR c++/48289
129 * pt.c (build_non_dependent_expr): Keep dereferences outside the
130 NON_DEPENDENT_EXPR.
131
309303cf 1322011-03-25 Kai Tietz <ktietz@redhat.com>
133
134 * decl.c (decls_match): Replace target hook
135 call of comp_type_attributes by version in tree.c file.
136 * search.c (check_final_overrider): Likewise.
137 * typeck.c (structural_comptypes): Likewise.
138
ac86af5d 1392011-03-21 Kai Tietz <ktietz@redhat.com>
140
141 PR target/12171
ee212425 142 * cxx-pretty-print.c (pp_cxx_ptr_operator):
143 Display allowed attributes for function pointer types.
144 * error.c (dump_type_prefix): Likewise.
145
ac86af5d 146 * tree.c (cxx_attribute_table): Adjust table.
147
b3d27ace 1482011-03-18 Jason Merrill <jason@redhat.com>
149
092ce186 150 PR c++/48162
151 * semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
152
b3d27ace 153 PR c++/48118
154 * call.c (build_over_call): Don't skip ck_rvalue.
155
36ed86cd 1562011-03-17 Jason Merrill <jason@redhat.com>
157
ca4646eb 158 PR c++/47504
159 * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
160 the conversion set TREE_OVERFLOW.
161
dbeb1e25 162 Core 1212
163 * semantics.c (finish_decltype_type): Return T&& for xvalue.
164 * typeck.c (unlowered_expr_type): Preserve cv-quals.
165
36ed86cd 166 PR c++/48166
167 * decl.c (revert_static_member_fn): Strip function-cv-quals.
168
c93219d0 1692011-03-16 Jason Merrill <jason@redhat.com>
170
7c51b530 171 PR c++/48089
172 * semantics.c (potential_constant_expression_1): Don't allow *this
173 in a constructor.
174 (register_constexpr_fundef): Use potential_rvalue_constant_expression.
175
cb5542a1 176 PR c++/47301
177 * decl.c (compute_array_index_type): Don't bother trying to deal
178 with literal classes in ABI v1.
179
f888ae5d 180 PR c++/46336
181 * decl.c (duplicate_decls): Return NULL_TREE for clashing
182 C functions.
183
c93219d0 184 PR c++/47570
185 * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
186 use the generic binary expression handling.
187
b3145af5 1882011-03-16 Diego Novillo <dnovillo@google.com>
189
190 * Make-lang.in (CXX_PARSER_H): New.
191 (cp/parser.o): Add dependency on CXX_PARSER_H.
192 Add dependency on tree-pretty-print.h
193 (cp/cp-lang.o): Add dependency on CXX_PARSER_H.
194 * cp-lang.c: Include parser.h.
195 * parser.c: Include parser.h.
196 (struct cp_token): Add bitfield purged_p.
197 Update all users.
198 Move to parser.h.
199 (CPP_PURGED): Remove. Update all users.
200 (struct cp_lexer): Change field buffer to be a VEC of cp_token.
201 Remove field buffer_length.
202 Update all users.
203 Move to parser.h.
204 (struct tree_check): Move to parser.h.
205 (cp_token_position): Likewise.
206 (struct cp_token_cache): Likewise.
207 (CPP_KEYWORD): Likewise.
208 (CPP_TEMPLATE_ID): Likewise.
209 (CPP_NESTED_NAME_SPECIFIER): Likewise.
210 (N_CP_TTYPES): Likewise.
211 (enum cp_parser_status_kind): Likewise.
212 (struct cp_parser_context): Likewise.
213 (struct cp_default_arg_entry_d): Likewise.
214 (struct cp_unparsed_functions_entry_d): Likewise.
215 (struct cp_parser): Likewise.
216 (cp_lexer_dump_tokens): New.
217 (cp_lexer_debug_tokens): New.
218 (cp_lexer_finished_p): New.
219 (cp_lexer_alloc): Factor out of cp_lexer_new_main.
220 (cp_lexer_new_main): Re-write main lexing loop to push
221 tokens into the new VEC buffer.
222 (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
223 Do not abort if the token type is not recognized, just print
224 its code.
225 * parser.h: New file.
226 * config-lang.in (gtfiles): Add cp/parser.h.
227
ab789b30 2282011-03-16 Jason Merrill <jason@redhat.com>
229
988ff48d 230 Core 1148
231 * typeck.c (check_return_expr): Fix conditions for setting
232 LOOKUP_PREFER_RVALUE.
233
dbe7c53a 234 * call.c (build_over_call): Remove require_complete_type_sfinae call.
235
ab789b30 236 PR c++/48132
237 * decl.c (check_array_designated_initializer): Allow integer index.
238 (reshape_init_array_1): Set index on the elements.
239
d823627d 2402011-03-16 Jason Merrill <jason@redhat.com>
241
13f56139 242 PR c++/48113
243 * typeck.c (convert_for_initialization): Use
244 perform_implicit_conversion_flags.
245 * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
246 rvaluedness_matches_p on ck_rvalue.
247 (convert_like_real) [ck_rvalue]: And restore it here.
248
d823627d 249 PR c++/48115
250 * call.c (convert_arg_to_ellipsis): Handle incomplete type.
251
b9f77b95 2522011-03-16 Jason Merrill <jason@redhat.com>
253
1f595a02 254 * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
255 committed to this tentative parse.
256
f5126e46 257 PR c++/47999
258 * semantics.c (finish_call_expr): Preserve reference semantics
259 in templates.
260
b9f77b95 261 * call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
262
4143d08b 2632011-03-16 Jakub Jelinek <jakub@redhat.com>
264
265 * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
266 DECL_LANG_SPECIFIC is NULL.
267
aafa0794 2682011-03-15 Jason Merrill <jason@redhat.com>
269
15b872c1 270 Core 1074
271 * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
272 check value_dependent_expression_p on the operand.
273
54cf6eed 274 * semantics.c (push_cx_call_context): Return bool.
275 (cxx_eval_call_expression): Handle excess depth.
276
aafa0794 277 Core 1191
278 * method.c (synthesized_method_walk): Cleanups don't affect the
279 triviality of a constructor, but do affect deletion and exception
280 specification.
281
0b18f5f8 2822011-03-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
283
284 * decl2.c (cp_check_const_attributes): New.
285 (cplus_decl_attributes): Call cp_check_const_attributes.
286
4439eed9 2872011-03-15 Jason Merrill <jason@redhat.com>
288
289 PR c++/34758
290 * call.c (convert_default_arg): Use DECL_ORIGIN of fn. Check for
291 recursion first.
292 (push_defarg_context, pop_defarg_context): New.
293 * parser.c (cp_parser_late_parsing_default_args): Use them.
294 * cp-tree.h: Declare them.
295
d738e512 2962011-03-11 Dodji Seketeli <dodji@redhat.com>
297
298 * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
299 the argument of the indirection operator should not be dependent.
300 Fix the comment.
301
f2e139bf 3022011-03-11 Jason Merrill <jason@redhat.com>
303
3b7596a0 304 PR c++/47125
305 * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
306
1961ca68 307 PR c++/47144
308 * parser.c (cp_parser_template_type_arg): Set
309 type_definition_forbidden_message.
310
f2e139bf 311 PR c++/47808
312 * decl.c (compute_array_index_type): Discard folding
313 if it didn't produce a constant.
314
f283d77f 3152011-03-11 Jakub Jelinek <jakub@redhat.com>
316
317 PR c++/48035
318 * init.c (build_zero_init_1): Extracted from build_zero_init.
319 Add FIELD_SIZE argument, if non-NULL and field bit_position
320 as not smaller than that, don't add that field's initializer.
321 Pass DECL_SIZE as last argument to build_zero_init_1
322 for DECL_FIELD_IS_BASE fields.
323 (build_zero_init): Use build_zero_init_1.
324
3504ce7d 3252011-03-10 Jason Merrill <jason@redhat.com>
326
47c2386f 327 PR c++/48029
328 * pt.c (iterative_hash_template_arg): Remove special case for
329 ARRAY_TYPE.
330
3504ce7d 331 PR c++/47198
332 * parser.c (cp_parser_single_declaration): Just return if
333 cp_parser_parse_and_diagnose_invalid_type_name complained.
334
e030f9cc 3352011-03-09 Jason Merrill <jason@redhat.com>
336
337 PR c++/44629
338 * pt.c (unify): An unresolved overload is a nondeduced context.
339
32578a98 3402011-03-09 Martin Jambor <mjambor@suse.cz>
341
342 PR tree-optimization/47714
343 * method.c (use_thunk): Clear addressable flag of thunk arguments.
344
f966df8a 3452011-03-08 Dodji Seketeli <dodji@redhat.com>
346
347 PR c++/47705
348 * pt.c (convert_nontype_argument): Only call decay_conversion on
349 arrays.
350
43d97a5b 3512011-03-08 Jason Merrill <jason@redhat.com>
352
99fddf6e 353 PR c++/47488
354 * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
355
ac4c43c6 356 PR c++/47705
357 * pt.c (convert_nontype_argument): Don't crash on non-pointer
358 argument to pointer parameter.
359
43d97a5b 360 PR c++/45651
361 * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
362 !TREE_PUBLIC decls.
363
93306221 3642011-03-08 Dodji Seketeli <dodji@redhat.com>
365
7a76e05f 366 PR c++/47957
93306221 367 * name-lookup.c (binding_to_template_parms_of_scope_p): Only
368 consider scopes of primary template definitions. Adjust comments.
369
80e93d60 3702011-03-07 Jason Merrill <jason@redhat.com>
371
63d0c62f 372 PR c++/48003
373 * pt.c (convert_nontype_argument): Fix -fpermissive allowing
374 integer overflow.
375 * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
376
eed3fb17 377 PR c++/48015
378 * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
379
80e93d60 380 PR c++/48008
381 * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
382 (write_CV_qualifiers_for_type): Not here.
383
e5c4da6f 3842011-03-06 Joseph Myers <joseph@codesourcery.com>
385
386 * lang-specs.h: Match -save-temps* instead of -save-temps.
387
87d553db 3882011-03-05 Jason Merrill <jason@redhat.com>
389
390 * mangle.c (write_expression): Change ABI v6 to v5.
391 (write_type): Likewise.
392
aa29908f 3932011-03-04 Jan Hubicka <jh@suse.cz>
394
395 PR lto/47497
396 * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
397 and cgraph_add_thunk.
398 * method.c (make_alias_for_thunk, use_thunk): Likewise.
399 * mangle.c (mangle_decl): Likewise.
400
9e7ac8eb 4012011-03-04 Jason Merrill <jason@redhat.com>
402
e8bc7223 403 PR c++/47971
404 * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
405 (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
406
9e7ac8eb 407 PR c++/46220
408 * search.c (check_final_overrider): Allow pointer to same incomplete
409 class type with different cv-quals.
410
4c377c6e 4112011-03-03 Paolo Carlini <paolo.carlini@oracle.com>
412
413 PR c++/47974
414 * pt.c (tsubst_template_args): Check argument t for error_mark_node.
415
c33d97f1 4162011-03-03 Jason Merrill <jason@redhat.com>
417
418 PR c++/47950
419 * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
420
d5e10271 4212011-03-02 Jason Merrill <jason@redhat.com>
422
5fce1125 423 PR c++/47950
424 * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
425
d5e10271 426 PR c++/47774
427 * tree.c (build_vec_init_elt): Split out from...
428 (build_vec_init_expr): ...here.
429 (diagnose_non_constexpr_vec_init): New fn.
430 * semantics.c (potential_constant_expression_1): Use it.
431 * cp-tree.h: Declare it.
432
c4d7c2ba 4332011-03-01 Jason Merrill <jason@redhat.com>
434
50bd405f 435 PR c++/46159
436 * parser.c (cp_parser_primary_expression): Don't warn about a
437 failed tentative parse.
438
a6789aad 439 PR c++/47200
440 * semantics.c (cxx_bind_parameters_in_call): Don't call
441 adjust_temp_type on non-constant args.
442
96c42edf 443 PR c++/47851
444 * call.c (standard_conversion): Provide requested cv-quals on
445 class rvalue conversion.
446
c4d7c2ba 447 PR c++/46282
448 * decl2.c (grokbitfield): Handle type-dependent width.
449
ebc37afd 4502011-02-28 Jason Merrill <jason@redhat.com>
451
452 PR c++/47873
453 * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
454 after checking for a non-thunk.
455
b9c67e42 4562011-02-26 Jason Merrill <jason@redhat.com>
457
687d76c8 458 PR c++/47904
459 * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
460 * pt.c (iterative_hash_template_arg): And hash it.
461
b9c67e42 462 PR c++/47897
463 * semantics.c (non_const_var_error): Split out from...
464 (cxx_eval_constant_expression): ...here.
465 (potential_constant_expression_1) [VAR_DECL]: Use it.
466 Allow dependent variables.
467
cfa61f84 4682011-02-24 Jason Merrill <jason@redhat.com>
469
470 * parser.c (cp_parser_constant_expression): Set
471 non_integral_constant_expression correctly for C++0x too.
472 (cp_parser_static_assert): Allow non-constant expression.
473 (cp_parser_direct_declarator): Expect non_constant_p to be set
474 properly for C++0x.
475 * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
476 * semantics.c (maybe_constant_value): Check type_unknown_p too.
477 (potential_rvalue_constant_expression): New.
478 (require_potential_rvalue_constant_expression): New.
479
4d7aaf8e 4802011-02-23 Jason Merrill <jason@redhat.com>
481
482 * cp-tree.h (DECL_PARM_LEVEL): New.
483 (struct lang_decl_parm): Add level field.
484 * name-lookup.c (function_parm_depth): New fn.
485 * name-lookup.h: Declare it.
486 * parser.c (cp_parser_parameter_declaration_list): Use it.
487 * mangle.c (struct globals): Add parm_depth field.
488 (write_bare_function_type): Adjust it.
489 (write_expression): Include the level delta in PARM_DECL mangling
490 for abi >= 6.
491
492 * semantics.c (finish_decltype_type): Remove shortcut for decltype
493 of id-expression.
494 * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
495
a0499cf2 4962011-02-23 Nathan Froyd <froydnj@codesourcery.com>
497
498 PR c++/46868
499 * parser.c (cp_parser_class_specifier): Require a closing brace
500 to attempt error recovery.
501
d3cdd2f5 5022011-02-23 Jakub Jelinek <jakub@redhat.com>
503
504 PR c++/47833
505 * pt.c (struct pending_template): Add chain_next GTY option.
506 * decl.c (struct named_label_use_entry): Likewise.
507
80346df5 5082011-02-22 Paolo Carlini <paolo.carlini@oracle.com>
509
510 PR c++/47242
511 * semantics.c (build_lambda_object): Bail out if a field is
512 error_mark_node.
513
052906ac 5142011-02-22 Dodji Seketeli <dodji@redhat.com>
515
516 PR c++/47666
517 * class.c (dfs_declare_virt_assop_and_dtor)
518 (declare_virt_assop_and_dtor): New static functions.
519 (add_implicitly_declared_members): Use
520 declare_virt_assop_and_dtor.
521
43b367c6 5222011-02-21 Jason Merrill <jason@redhat.com>
523
524 PR c++/47207
525 * decl2.c (decl_constant_var_p): A constexpr var needs an
526 initializer to be constant.
527 * semantics.c (cxx_eval_constant_expression): Complain about
528 constexpr var used in its own initializer.
529 * call.c (set_up_extended_ref_temp): Set
530 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
531
611b6173 5322011-02-20 Jason Merrill <jason@redhat.com>
533
3d87e7a2 534 PR c++/47199
535 * semantics.c (cxx_eval_call_expression): Call
536 cxx_eval_constant_expression in trivial shortcut.
537
197aaecb 538 PR c++/46831
539 * call.c (convert_class_to_reference): Don't try to set up a
540 second conv sequence for non-viable candidates.
541
bbd7578e 542 PR c++/47703
543 * error.c (location_of): Handle non-tagged types.
544
611b6173 545 PR c++/46472
546 * method.c (process_subob_fn): Instantiate constexpr templates.
547 * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
548
02026a8e 5492011-02-20 Dodji Seketeli <dodji@redhat.com>
550
551 PR c++/46394
552 * pt.c (tsubst_pack_expansion): do not use
553 cp_tree_equal/same_type_p to detect an expansion of a parameter
554 pack.
555
29379c7b 5562011-02-19 Jason Merrill <jason@redhat.com>
557
558 PR c++/47503
559 * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
560
6e2ac691 5612011-02-18 Paolo Carlini <paolo.carlini@oracle.com>
562
563 PR c++/47795
564 * semantics.c (finish_non_static_data_member): Early return if
565 object is error_mark_node.
566
1d4070b9 5672011-02-18 Dodji Seketeli <dodji@redhat.com>
568
569 PR c++/47208
570 * pt.c (do_auto_deduction): Do not mention error_mark_node in
571 diagnostics.
572 * semantics.c (finish_id_expression): Do not pass erroneous decl
573 to decl_constant_var_p.
574
3d37a176 5752011-02-17 Jakub Jelinek <jakub@redhat.com>
576
577 PR c++/47783
578 * cvt.c (convert_from_reference): Call mark_exp_read.
579
daf9237f 5802011-02-11 Dodji Seketeli <dodji@redhat.com>
581
582 PR c++/47172
583 * pt.c (finish_call_expr): Consider a call expression that has a
584 dependent "this" pointer as being dependent. Add comments.
585 (dependent_type_p, type_dependent_expression_p): Update comments.
586
53c3beff 5872011-02-16 Dodji Seketeli <dodji@redhat.com>
588
589 PR c++/47326
590 * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
591 expansion arguments are not evaluated.
592
54c771af 5932011-02-16 Jakub Jelinek <jakub@redhat.com>
594
595 PR c++/47704
596 * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
597 instead of TYPE_LANG_FLAG_3.
598 * pt.c (lookup_template_class): Copy over
599 ENUM_FIXED_UNDERLYING_TYPE_P.
600
92b327d3 6012011-02-15 Jason Merrill <jason@redhat.com>
602
603 PR c++/46807
604 * method.c (synthesized_method_walk): Always exit early for
605 trivial fn in C++98 mode.
606
9aad9f90 6072011-02-14 Jason Merrill <jason@redhat.com>
608
609 PR c++/47482
610 * parser.c (cp_parser_enumerator_definition): Call
611 fold_non_dependent_expr.
612
d1d697ea 6132011-02-09 Jason Merrill <jason@redhat.com>
614
d31e4592 615 * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
616 * semantics.c (finish_fname): Only return the name if we're in
617 a function.
618
3d40bfb8 619 * decl.c (build_enumerator): Don't perform integral promotions on
620 non-integral constants.
621
527facbb 622 * cvt.c (convert_to_void): Handle null op1.
623
d438565a 624 * class.c (type_has_constexpr_default_constructor): Make sure the
625 caller stripped an enclosing array.
626 * init.c (perform_member_init): Strip arrays before calling it.
627
d1d697ea 628 PR c++/47511
629 * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
630
89caf970 6312011-02-03 Dodji Seketeli <dodji@redhat.com>
632
633 PR c++/47398
634 * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
635 template parameters in account.
636
fad3f658 6372011-02-03 Nathan Froyd <froydnj@codesourcery.com>
638
639 PR c++/46890
640 * parser.c (cp_parser_class_specifier): Fix setting of
641 want_semicolon.
642
e39e78dc 6432011-01-31 Jakub Jelinek <jakub@redhat.com>
644
645 PR c++/47416
646 * semantics.c (build_data_member_initialization): Handle
647 STATEMENT_LIST always instead of just for CLEANUP_BODY.
648
e6937b3a 6492011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
650
651 * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
652 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
653
71c5bb94 6542011-01-29 Dodji Seketeli <dodji@redhat.com>
655
656 PR c++/47311
657 * cp-tree.h (fixup_template_parms): Declare.
658 * pt.c (end_template_parm_list): Do not fixup template parms here.
659 (fixup_template_parms): Remove static. Fix typo in the
660 comments. Remove useless code statement.
661 (fixup_template_parm): For a template template parameter, fixup
662 its attributes before fixing up its type.
663 * parser.c
664 (cp_parser_template_declaration_after_export): After parsing
665 template parameters fixup their types.
666
2dac7012 6672011-01-26 Jakub Jelinek <jakub@redhat.com>
668
669 PR c++/47476
670 * semantics.c (potential_constant_expression_1): Handle
671 TRUTH_XOR_EXPR.
672
0675168d 6732011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
674
e8911163 675 PR c++/43601
0675168d 676 * semantics.c (expand_or_defer_fn_1): Handle it.
677 * decl2.c (decl_needed_p): Likewise.
678
28393b8e 6792011-01-21 Jason Merrill <jason@redhat.com>
680
681 PR c++/47041
682 * semantics.c (build_constexpr_constructor_member_initializers):
683 Handle trivial copy.
684
1bf4f2e0 6852011-01-21 Jakub Jelinek <jakub@redhat.com>
686
687 PR c++/47388
688 * semantics.c (begin_for_stmt): If -fno-for-scope, don't
689 assume init must be NULL if scope is NULL.
690 (begin_range_for_stmt): Likewise.
691
bff898fb 6922011-01-21 Jason Merrill <jason@redhat.com>
693
b2188d7e 694 PR c++/46552
695 * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
696
bff898fb 697 PR c++/46977
698 * semantics.c (potential_constant_expression_1): Split out from
699 potential_constant_expression. Add want_rval parm. Handle
700 template expression forms. Don't enforce restriction on address
701 of automatic variable here. Add a couple of diagnostics that
702 had been missing.
703 (require_potential_constant_expression): New entry point.
704 (build_data_member_initialization, register_constexpr_fundef): Adjust.
705 (maybe_constant_value): Check potential_constant_expression.
706 * pt.c (fold_non_dependent_expr_sfinae): Likewise.
707 * tree.c (build_vec_init_expr): Adjust.
708
808ccfc7 7092011-01-19 Jakub Jelinek <jakub@redhat.com>
710
711 PR c++/47303
712 * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
713 or DECL_EXTERNAL.
714
05d560e7 7152011-01-17 Jason Merrill <jason@redhat.com>
716
717 PR c++/47067
718 * semantics.c (base_field_constructor_elt): New fn.
719 (cxx_eval_bare_aggregate): Use it.
720 (build_data_member_initialization): Leave COMPONENT_REF for
721 vfield inits.
722
bfea5ee6 7232011-01-14 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
724
725 * parser.c (cp_parser_range_for): Remove the "unused variable" warning
726 workaround.
727
5c0907f1 7282011-01-15 Giovanni Funchal <gafunchal@gmail.com>
729 Jonathan Wakely <jwakely.gcc@gmail.com>
730
731 PR c++/33558
732 * decl.c (grokdeclarator): Reject mutable reference members.
733
b3b231a4 7342011-01-14 Jason Merrill <jason@redhat.com>
735
13f140e8 736 PR c++/47289
737 * pt.c (coerce_template_parms): Fix error recovery.
738
2732b026 739 PR c++/46903
740 * typeck2.c (check_narrowing): Only check arithmetic types.
741
b3b231a4 742 PR c++/46688
743 * tree.c (build_vec_init_expr): Handle flexible array
744 properly.
745
de0e5a52 7462011-01-13 Kai Tietz <kai.tietz@onevision.com>
747
748 PR c++/47213
749 * cp-tree.h (CLASSTYPE_VISIBILITY): Use
750 TYPE_MAIN_DECL instead of TYPE_NAME.
751 (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
752 * decl2.c (determine_visibility): Add check
753 of CLASS_TYPE_P for underlying_type.
754
fa7d5870 7552011-01-12 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
756
757 * cp-tree.h (begin_for_scope): New prototype.
758 (begin_for_stmt): Update prototype.
759 (begin_range_for_stmt): Update prototype.
760 * init.c (build_vec_init): Update call to begin_for_stmt.
761 * parser.c (cp_parser_for): New.
762 (cp_parser_c_for): Add three new parameters.
763 (cp_parser_range_for): Likewise. Most parsing code removed.
764 (cp_parser_iteration_statement): Call cp_parser_for instead of
765 cp_parser_c_for and cp_parser_range_for.
766 (cp_parser_for_init_statement): Add new parameter and return type.
767 (cp_parser_block_declaration): Update call to
768 cp_parser_simple_declaration.
769 (cp_parser_simple_declaration): Add new parameter.
770 Update call to cp_parser_init_declarator.
771 (cp_parser_init_declarator): Add new parameter.
772 * pt.c (tsubst_expr): Update call to begin_for_stmt.
773 * semantics.c (begin_for_scope): New.
774 (begin_for_stmt): Add two new parameters.
775 (begin_range_for_stmt): Likewise.
776
ffbb3d61 7772011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
778
779 * parser.c (cp_parser_objc_at_property_declaration): Improved
780 error message.
781
05b89780 7822011-01-11 Dodji Seketeli <dodji@redhat.com>
783
784 PR debug/46955
785 * cp-lang.c (get_template_innermost_arguments_folded)
786 (get_template_argument_pack_elems_folded)
787 (template_arg_needs_folding, fold_cplus_constants): New static
788 functions.
789 (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
790 get_template_innermost_arguments_folded.
791 (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
792 get_template_argument_pack_elems_folded.
793
4b0e3c85 7942011-01-11 Jason Merrill <jason@redhat.com>
795
140b70da 796 PR c++/46658
797 * init.c (build_new_1): Handle value-init in templates differently.
798
4b0e3c85 799 PR c++/45520
800 * tree.c (maybe_dummy_object): Check current_class_ref against
801 context, not current_class_type.
802
14a3bc63 8032011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
804
805 PR objc/47078
806 * parser.c (cp_parser_objc_typename): If the type is unknown, for
807 error recovery purposes behave as if it was not specified so that
808 the default type is used.
809
98e9a2ed 8102011-01-07 Jakub Jelinek <jakub@redhat.com>
811
812 PR c++/47022
813 * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
814 for the second build_x_va_arg argument.
815
fdd84b77 8162011-01-05 Tom Tromey <tromey@redhat.com>
817
818 * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
819 (lvalue_or_else): Likewise.
820
99a71bbc 8212011-01-01 Kai Tietz <kai.tietz@onevision.com>
822
823 PR target/38662
824 * tree.c (cxx_type_hash_eq):
825 Allow METHOD_TYPE, too.
826
7dfbd804 827\f
cd8b0daa 828Copyright (C) 2011 Free Software Foundation, Inc.
7dfbd804 829
830Copying and distribution of this file, with or without modification,
831are permitted in any medium without royalty provided the copyright
832notice and this notice are preserved.