]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
cp-tree.h (identifier_p): New.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
9dc6f476
GDR
12013-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
2
3 * cp-tree.h (identifier_p): New.
4 * call.c: Throughout, call identifier_p insstead of direct
5 comparaison of TREE_CODE against IDENTIFIER_NODE.
6 * decl.c: Likewisse.
7 * decl2.c: Likewise.
8 * init.c: Likewise.
9 * mangle.c: Likewise.
10 * name-lookup.c: Likewise.
11 * parser.c: Likewise.
12 * pt.c: Likewise.
13 * search.c: Likewise.
14 * semantics.c: Likewise.
15 * tree.c: Likewise.
16 * typeck.c: Likewise.
17 * typeck2.c: Likewise.
18
37e99116
JJ
192013-03-21 Jakub Jelinek <jakub@redhat.com>
20
21 PR middle-end/48087
22 * pt.c (convert_nontype_argument): Count werrorcount as warnings.
23 * call.c (build_temp): Likewise.
24 * method.c (synthesize_method): Likewise.
25 * typeck.c (convert_for_initialization): Likewise.
26
08e0cda6
MG
272013-03-21 Marc Glisse <marc.glisse@inria.fr>
28
29 * call.c (build_conditional_expr_1): Fold VEC_COND_EXPR.
30
839b422f
RB
312013-03-21 Richard Biener <rguenther@suse.de>
32
33 * error.c (cp_printer): Use DECL_HAS_DEBUG_EXPR_P instead of
34 DECL_DEBUG_EXPR_IS_FROM. Guard properly.
35
9f5d44f4
JM
362013-03-20 Jason Merrill <jason@redhat.com>
37
efcf217b
JM
38 PR c++/56646
39 * parser.c (cp_parser_late_return_type_opt): Save and restore
40 current_class_ptr/ref.
41
deaae9d7
JM
42 PR c++/54532
43 * expr.c (cplus_expand_constant): Do nothing if the class is
44 incomplete.
45 * semantics.c (reduced_constant_expression_p): Allow PTRMEM_CST.
46 * typeck2.c (store_init_value): Use reduced_constant_expression_p.
47 * decl.c (maybe_register_incomplete_var): Handle PTRMEM_CST.
48 (complete_vars): Likewise.
49
766053b3
JM
50 * name-lookup.c (get_anonymous_namespace_name): Never use
51 get_file_function_name.
52
c77f56bb
JM
53 * pt.c (retrieve_specialization): Handle null tmpl argument.
54
9f5d44f4
JM
55 PR c++/17232
56 PR c++/56642
57 * pt.c (tsubst_decl): Check return value of register_specialization.
58 * typeck2.c (abstract_virtuals_error_sfinae): Re-apply complete_type
59 change.
60
df5c5f78
JM
612013-03-17 Jason Merrill <jason@redhat.com>
62
136357ac
JM
63 PR c++/54359
64 PR c++/56639
65 * parser.c (cp_parser_direct_declarator): Bail if we see a
66 qualified-id not at namespace scope.
67
df5c5f78
JM
68 PR c++/17232
69 PR c++/56642
70 * typeck2.c (abstract_virtuals_error_sfinae): Revert complete_type
71 change for now.
72
6721db5d
JM
732013-03-16 Jason Merrill <jason@redhat.com>
74
d1f45df5
JM
75 * decl.c (grokdeclarator): Assert that we won't see a pointer to
76 METHOD_TYPE.
77
bab5167f
JM
78 PR c++/54277
79 * cp-tree.h (WILDCARD_TYPE_P): Split out from...
80 (MAYBE_CLASS_TYPE_P): ...here.
81 * semantics.c (lambda_capture_field_type): Only build a
82 magic decltype for wildcard types.
83 (lambda_proxy_type): Likewise.
84 (finish_non_static_data_member): Get the quals from
85 the object.
86
d14d53ad
JM
87 PR c++/55931
88 * parser.c (cp_parser_template_argument): Don't
89 fold_non_dependent_expr.
90
bc0c6b15
JM
91 * parser.c (cp_parser_lambda_declarator_opt): Use
92 cp_parser_trailing_type_id.
93
cae7d264
JM
94 PR c++/45917
95 * parser.c (cp_parser_template_id): Don't forget access checks.
96
7805032d
JM
97 PR c++/52374
98 * pt.c (tsubst_qualified_id): Use current_nonlambda_class_type.
99
c7335680
JM
100 PR c++/54764
101 PR c++/55972
102 * name-lookup.h (tag_scope): Add ts_lambda.
103 * semantics.c (begin_lambda_type): Use it.
104 * decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR.
105 * pt.c (check_default_tmpl_args): Ignore lambdas.
106 (push_template_decl_real): Handle lambdas.
107 * tree.c (no_linkage_check): Adjust lambda check.
108
8e519a8b
JM
109 PR c++/56039
110 * tree.c (strip_typedefs_expr): Complain about lambda, don't abort.
111
bf7292fc
JM
112 PR c++/54359
113 * parser.c (cp_parser_direct_declarator): Fix late return
114 for out-of-class defn of member function.
115
b4c7ce54
JM
116 PR c++/55357
117 * semantics.c (maybe_add_lambda_conv_op): Clear DECL_NAME of copied
118 parms to avoid duplicate -Wshadow warnings.
119
ca2e264d
JM
120 * search.c (lookup_base): Handle NULL_TREE.
121
b7df43cd
JM
122 PR c++/56481
123 * semantics.c (potential_constant_expression_1): Use of 'this' in
124 a non-constexpr function makes the expression not potentially
125 constant.
126
57fcd4f4
JM
127 N3276
128 PR c++/52748
129 * cp-tree.h (tsubst_flags): Add tf_decltype.
130 * call.c (build_cxx_call): Don't build a temporary if it's set.
131 (build_over_call): Make sure it's only passed to build_cxx_call.
132 * parser.c (cp_parser_primary_expression): Add decltype_p parm.
133 (cp_parser_unary_expression): Likewise.
134 (cp_parser_cast_expression): Likewise.
135 (cp_parser_binary_expression): Likewise.
136 (cp_parser_assignment_expression): Likewise.
137 (cp_parser_postfix_expression): Likewise. Pass tf_decltype.
4a5e2469 138 (cp_parser_expression): Add decltype_p. Force a
57fcd4f4
JM
139 temporary for a call on the LHS of a comma.
140 (cp_parser_decltype): Pass true to decltype_p parms.
141 * pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype.
142 (tsubst_copy_and_build): Pass tf_decltype down only for
143 CALL_EXPR and the RHS of COMPOUND_EXPR.
144 * tree.c (build_cplus_new): Call complete_type_or_maybe_complain.
145
2df663cc
JM
146 * cp-tree.h (abstract_class_use): New enum.
147 * typeck2.c (pending_abstract_type): Add use field.
148 (abstract_virtuals_error_sfinae): Add overloads taking
149 abstract_class_use instead of tree.
150 * typeck.c (build_static_cast_1): Call it.
151 * except.c (is_admissible_throw_operand_or_catch_parameter): Call it.
152 * pt.c: Adjust calls.
153 * decl.c (cp_finish_decl): Don't handle functions specially.
154 (grokdeclarator): Always check return type.
155 * init.c (build_new_1): Adjust call.
156
95ffad49
JM
157 DR 337
158 PR c++/17232
159 * pt.c (tsubst) [ARRAY_TYPE]: Use abstract_virtuals_error_sfinae.
160 * typeck2.c (abstract_virtuals_error_sfinae): Call complete_type.
161
346928a2
JM
162 DR 657
163 * pt.c (tsubst_function_type): Call abstract_virtuals_error_sfinae.
164 (tsubst_arg_types): Likewise.
165
0cc5ae8d
JM
166 DR 1518
167 PR c++/54835
168 * call.c (convert_like_real): Check for explicit constructors
169 even for value-initialization.
170
cb3c050e
JM
171 PR c++/54946
172 * pt.c (convert_nontype_argument): Handle invalid pointer.
173
e9f3968b
JM
174 * parser.c (cp_parser_lambda_expression): Use nreverse.
175
e2adfdad
JM
176 PR c++/56447
177 PR c++/55532
178 * pt.c (instantiate_class_template_1): Instantiate lambda capture
179 list here.
180 (tsubst_copy_and_build): Not here.
181
5275b2c7
JM
182 PR c++/55017
183 * method.c (walk_field_subobs): Disallow copy of rvalue ref.
184
cdf47df0
JM
185 PR c++/55240
186 * parser.c (parsing_nsdmi): New.
187 * semantics.c (outer_automatic_var_p): Check it.
188 (finish_id_expression): Likewise.
189 * cp-tree.h: Declare it.
190
a1e03bc5
JM
191 PR c++/55241
192 * error.c (dump_expr) [SIZEOF_EXPR]: Print sizeof... properly.
193
d09b76f1
JM
194 * parser.c (lookup_literal_operator): Correct parm/arg naming
195 mixup.
196
011ce3f3
JM
197 PR c++/56238
198 * pt.c (fold_non_dependent_expr_sfinae): Check
199 instantiation_dependent_expression_p.
200
6721db5d
JM
201 PR c++/56095
202 * class.c (resolve_address_of_overloaded_function): Accept a
203 reference to function for target_type.
204 (instantiate_type): Likewise.
205 * pt.c (convert_nontype_argument): Pass it to
206 convert_nontype_argument_function.
207
87eb16a1
JJ
2082013-03-16 Jakub Jelinek <jakub@redhat.com>
209
b722c9a2
JJ
210 * tree.c (cp_tree_equal): Fix a pasto.
211
87eb16a1
JJ
212 PR c++/56607
213 * typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero,
214 pass op1 through maybe_constant_value first.
215
9a54d96a
PC
2162013-03-16 Paolo Carlini <paolo.carlini@oracle.com>
217
218 PR c++/56582
219 * semantics.c (cxx_eval_array_reference): Check for negative index.
220
e9d5a271
JM
2212013-03-14 Jason Merrill <jason@redhat.com>
222
a7137ee1
JM
223 PR c++/56614
224 * decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again.
225
e9d5a271
JM
226 PR c++/56346
227 * decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit
228 dso_handle parm on targets without __cxa_atexit.
229
2aa953d0
JM
2302013-03-11 Jason Merrill <jason@redhat.com>
231
232 PR c++/56567
233 * typeck.c (check_return_expr): Disallow returning init list here.
234 * semantics.c (apply_deduced_return_type): Not here.
235
f030a1dc
PC
2362013-03-08 Paolo Carlini <paolo.carlini@oracle.com>
237
238 PR c++/51412
239 * cxx-pretty-print.c (pp_cxx_expression): Handle LAMBDA_EXPR.
240 * error.c (dump_expr): Likewise.
241
e48243d8
JM
2422013-03-08 Jason Merrill <jason@redhat.com>
243
9d13a069
JM
244 PR c++/51884
245 * class.c (modify_all_vtables): Mangle the vtable name before
246 entering dfs_walk.
247
37fb0a98
JM
248 * semantics.c (lambda_expr_this_capture): In unevaluated context,
249 just return the nearest 'this'.
250
0ef811d7 251 PR c++/51494
19831b08 252 PR c++/52183
0ef811d7
JM
253 PR c++/56222
254 * tree.c (maybe_dummy_object): Don't capture 'this'.
255 * semantics.c (maybe_resolve_dummy): New.
256 (finish_non_static_data_member): Use it.
257 (finish_qualified_id_expr): Don't test is_dummy_object.
258 * cp-tree.h: Declare maybe_resolve_dummy.
259 * call.c (build_new_method_call_1): Use it.
260
e48243d8
JM
261 PR c++/56567
262 * semantics.c (apply_deduced_return_type): Don't allow returning
263 std::initializer_list.
264
5fdbceff
PC
2652013-03-06 Paolo Carlini <paolo.carlini@oracle.com>
266
267 PR c++/56534
268 * parser.c (cp_parser_elaborated_type_specifier): Don't call
269 check_elaborated_type_specifier when TREE_CODE (decl) != TYPE_DECL.
270 * decl.c (check_elaborated_type_specifier): Tidy.
271
9ebced77
JJ
2722013-03-06 Jakub Jelinek <jakub@redhat.com>
273
274 PR c++/56543
275 * tree.c (strip_typedefs): Don't copy args if they are NULL.
276
574f9d7e
JJ
2772013-03-05 Jakub Jelinek <jakub@redhat.com>
278
279 * parser.c (cp_parser_braced_list): For {} initialize
280 *non_constant_p to false.
281
4b16f9c8
JM
2822013-03-04 Jason Merrill <jason@redhat.com>
283
284 PR c++/56464
285 PR c++/54383
286 * semantics.c (lambda_expr_this_capture): Handle NSDMI
287 and non-class scopes.
288
48a30e28
PC
2892013-03-01 Paolo Carlini <paolo.carlini@oracle.com>
290
291 * decl.c (grokdeclarator): Remove dead code.
292
c966f2de
JM
2932013-02-28 Jason Merrill <jason@redhat.com>
294
728761be
JM
295 PR c++/56481
296 * semantics.c (potential_constant_expression_1): Use
297 cxx_eval_outermost_constant_expr rather than maybe_constant_value.
298
c966f2de
JM
299 PR c++/56243
300 * call.c (build_over_call): Avoid virtual lookup in a template.
301
140bec21
JM
3022013-02-27 Jason Merrill <jason@redhat.com>
303
304 PR c++/56358
305 PR c++/56323
306 * name-lookup.c (do_class_using_decl): Use ctor_identifier instead
307 of the base name for inheriting ctors.
308 (push_class_level_binding_1): Remove inheriting ctor handling.
309 * pt.c (tsubst_decl) [USING_DECL]: Likewise.
310 * class.c (add_implicitly_declared_members): Adjust.
311
ecf3abb9
DB
3122013-02-26 David Binderman <dcb314@hotmail.com>
313
314 PR c++/55632
315 * decl.c (grokdeclarator): Tidy publicp assignment.
316
6f2d959b
AH
3172013-02-25 Aldy Hernandez <aldyh@redhat.com>
318
319 PR c++/56419
320 * semantics.c (begin_transaction_stmt): Set TREE_SIDE_EFFECTS.
321 (build_transaction_expr): Same.
322
70e9ab23
JM
3232013-02-25 Jason Merrill <jason@redhat.com>
324
9bcb18f6
JM
325 PR c++/56377
326 * pt.c (fn_type_unification): Wait to call push_tinst_level until
327 we know what args we're looking at.
328
70e9ab23
JM
329 PR c++/56438
330 * semantics.c (potential_constant_expression_1): In C++98, a cast
331 to non-integral type can't be a constant expression.
332
5621a5d7
JJ
3332013-02-24 Jakub Jelinek <jakub@redhat.com>
334
335 PR c++/56403
336 * init.c (build_zero_init_1): Use RECORD_OR_UNION_CODE_P instead
337 of CLASS_TYPE_P.
338
5b5d851e
JM
3392013-02-22 Jason Merrill <jason@redhat.com>
340
5c505cba
JM
341 PR c++/40405
342 * pt.c (push_template_decl_real): Set DECL_INTERFACE_KNOWN
343 if we got the wrong number of template parms.
344
82a1326b
JM
345 PR c++/56377
346 * pt.c (fn_type_unification): Use explicit args in template
347 instantiation context.
348
3ced2284
JM
349 PR c++/56359
350 * call.c (can_convert_arg): Discard access checks.
351
5b5d851e
JM
352 PR c++/56395
353 * tree.c (strip_typedefs): Strip typedefs from TYPENAME_TYPE template
354 args.
355
30b07d03
PC
3562013-02-20 Paolo Carlini <paolo.carlini@oracle.com>
357
358 PR c++/56373
359 * tree.c (maybe_warn_zero_as_null_pointer_constant): Add.
360 * cvt.c (ocp_convert): Use the latter.
361 (cp_convert_to_pointer): Likewise.
362 * decl.c (check_default_argument): Likewise.
363 * typeck.c (cp_build_binary_op): Likewise.
364 * cp-tree.h (maybe_warn_zero_as_null_pointer_constant): Declare.
365
4d0648ac
JW
3662013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com>
367 Paolo Carlini <paolo.carlini@oracle.com>
368
369 PR c++/51242
370 * decl2.c (grokbitfield): Allow scoped enumeration types.
371
30fa2a51
JM
3722013-02-15 Jason Merrill <jason@redhat.com>
373
9fd30fec
JM
374 PR c++/54276
375 * semantics.c (finish_id_expression): Also return the identifier
376 for an outer local static.
377
52d95c21
JM
378 PR c++/56343
379 * class.c (check_bases_and_members): Deduce noexcept after
380 checking bases.
381
30fa2a51
JM
382 PR c++/52026
383 * semantics.c (finish_id_expression): In a template, return
384 the identifier for a constant variable.
385
ff9b4073
JM
3862013-02-14 Jason Merrill <jason@redhat.com>
387
9b2f0394
JM
388 PR c++/54922
389 * semantics.c (build_anon_member_initialization): New.
390 (build_data_member_initialization): Use it.
391
b24cd3d1
JM
392 PR c++/55003
393 * decl.c (cp_finish_decl): Force instantiation of an
394 auto static data member.
395
d132b74a
JM
396 PR c++/55220
397 * pt.c (unify): A pack expansion that is not the last template
398 argument makes the entire template argument list non-deduced.
399
06449b40
JM
400 PR c++/56323
401 * name-lookup.c (do_class_using_decl): Handle typedefs with
402 inheriting constructors.
403 (push_class_level_binding_1): Allow inheriting from template
404 template parameter, too.
405 * pt.c (tsubst_decl) [USING_DECL]: Likewise.
406
622aac0b
JM
407 PR c++/55223
408 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of
409 default argument scope.
410 * mangle.c (write_name): Likewise.
411
ff9b4073
JM
412 PR c++/55232
413 * error.c (find_typenames_r): Don't walk into a pack expansion.
414
78a2ea41
JM
4152013-02-13 Jason Merrill <jason@redhat.com>
416
28d5c777
JM
417 PR c++/55670
418 * parser.c (cp_parser_member_declaration): Check the declarator
419 form when detecting a function declaration via typedef.
420
e75e98f2
JM
421 PR c++/55680
422 * pt.c (maybe_process_partial_specialization): A lambda
423 isn't what's being specialized.
424
43c2d791
JM
425 PR c++/55710
426 * semantics.c (maybe_add_lambda_conv_op): Mark static thunk
427 TREE_USED.
428
70fc7c6c
JM
429 PR c++/55879
430 * semantics.c (cxx_bind_parameters_in_call): Undo DECL_BY_REFERENCE.
431
58b922f8
JM
432 PR c++/55993
433 * semantics.c (cxx_fold_indirect_ref): Handle empty bases at
434 non-zero offsets, too.
435
d0d9cf0e
JM
436 PR c++/56155
437 * decl.c (build_enumerator): Always convert the value to a
438 fixed underlying type.
439
78a2ea41
JM
440 PR c++/56135
441 * pt.c (tsubst_copy_and_build): Don't forget any new
442 captures that arose from use of dependent names.
443
6760071f
JJ
4442013-02-13 Jakub Jelinek <jakub@redhat.com>
445
446 PR c++/56302
447 * semantics.c (finish_asm_stmt): If input constraints allow
448 neither register nor memory, try maybe_constant_value to get
449 a constant if possible.
450
1f8aec00
JM
4512013-02-12 Jason Merrill <jason@redhat.com>
452
d8af1a55
JM
453 PR c++/56285
454 * method.c (add_one_base_init): Handle base constructor
455 taking rvalue reference parm.
456
1f8aec00
JM
457 PR c++/56291
458 * semantics.c (sort_constexpr_mem_initializers): Handle
459 vptr out of order.
460
d982e024
JM
4612013-02-09 Jason Merrill <jason@redhat.com>
462
ba9146c1
JM
463 PR c++/56268
464 * semantics.c (classtype_has_nothrow_assign_or_copy_p): Call
465 maybe_instantiate_noexcept.
466
25976b7f
JM
467 PR c++/56247
468 * pt.c (eq_specializations): Set comparing_specializations.
469 * tree.c (cp_tree_equal): Check it.
470 * cp-tree.h: Declare it.
471
8d40d877
JM
472 * decl.c (decls_match): Check versions later.
473
d982e024
JM
474 PR c++/56238
475 * pt.c (build_non_dependent_expr): Don't try to fold
476 instantiation-dependent expressions.
477 (instantiation_dependent_r) [TRAIT_EXPR]: Split out.
478 [BIND_EXPR]: Treat as dependent.
479
e6d7b956
JJ
4802013-02-07 Jakub Jelinek <jakub@redhat.com>
481
f11c7048
JJ
482 PR c++/56241
483 * init.c (build_vec_init): Don't append NULL values into new_vec.
484 (build_zero_init_1): Don't push anything into v if recursive call
485 returned NULL_TREE.
486 (build_value_init_noctor): Don't push anything into v if
487 build_value_init call returned NULL_TREE.
488
2052ce24
JJ
489 PR c++/56239
490 * parser.c (cp_parser_token_starts_cast_expression): Renamed to...
491 (cp_parser_tokens_start_cast_expression): ... this. Change parameter
492 to cp_parser *, call cp_lexer_peek_token first. For CPP_OPEN_PAREN,
493 return true only if 2nd token isn't CPP_CLOSE_PAREN.
494 (cp_parser_cast_expression): Adjust caller.
495
e6d7b956
JJ
496 PR c++/56237
497 * decl.c (push_local_name): Look at DECL_DISCRIMINATOR (t)
498 only if DECL_DISCRIMINATOR_SET_P (t) rather than just
499 DECL_LANG_SPECIFIC (t).
500
702f9fe5
JM
5012013-02-07 Jason Merrill <jason@redhat.com>
502
503 PR c++/56235
504 * method.c (do_build_copy_constructor): Don't bother turning
505 scalars from lvalues to xvalues.
506 (do_build_copy_assign): Likewise.
507
ceb86495
JM
5082013-02-06 Jason Merrill <jason@redhat.com>
509
510 * parser.c (cp_parser_enum_specifier): Check for error_mark_node.
511
29ef6cd0
JM
5122013-02-05 Jason Merrill <jason@redhat.com>
513
ea48c8a0
JM
514 PR c++/54122
515 * tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for
516 METHOD_TYPE.
517
a283c407
JM
518 PR c++/56177
519 * decl.c (start_preparsed_function): Update restype if we change
520 decl1.
521
29ef6cd0
JM
522 PR c++/56208
523 * pt.c (fn_type_unification): Discard any access checks from
524 substituting explicit args.
525
b5fbde92
JM
5262013-01-31 Jason Merrill <jason@redhat.com>
527
528 PR c++/56162
529 PR c++/56104
530 * typeck.c (get_member_function_from_ptrfunc): Fix
531 ptrmemfunc_vbit_in_delta case.
532
2ee8a2d5
JM
5332013-01-29 Jason Merrill <jason@redhat.com>
534
535 PR libstdc++/54314
536 * class.c (build_ctor_vtbl_group): Give construction vtables
537 hidden visibility.
538
e18724aa
JM
5392013-01-25 Jason Merrill <jason@redhat.com>
540
d4a18018
JM
541 PR c++/56095
542 * pt.c (convert_nontype_argument_function): Handle invalid input.
543 (convert_nontype_argument): Likewise.
544
e18724aa
JM
545 PR c++/56104
546 * typeck.c (get_member_function_from_ptrfunc): Optimize if the
547 dynamic type has no virtual functions.
548
723889fa
PC
5492013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
550
551 PR c++/55944
552 * decl.c (check_initializer): Use TARGET_EXPR_DIRECT_INIT_P only
553 on TARGET_EXPR nodes.
554
90481257
JM
5552013-01-22 Jason Merrill <jason@redhat.com>
556
557 PR c++/56071
558 * pt.c (maybe_instantiate_noexcept): Don't defer access checks.
559
b0ffaa36
DS
5602013-01-22 Dodji Seketeli <dodji@redhat.com>
561
562 PR c++/53609
563 * pt.c (argument_pack_element_is_expansion_p)
564 (make_argument_pack_select, use_pack_expansion_extra_args_p)
565 (gen_elem_of_pack_expansion_instantiation): New static functions.
566 (tsubst): When looking through an ARGUMENT_PACK_SELECT tree node,
567 look through the possibly resulting pack expansion as well.
568 (tsubst_pack_expansion): Use use_pack_expansion_extra_p to
569 generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism.
570 Use gen_elem_of_pack_expansion_instantiation to build the
571 instantiation piece-wise. Don't use arg_from_parm_pack_p anymore,
572 as gen_elem_of_pack_expansion_instantiation and the change in
573 tsubst above generalize this particular case.
574 (arg_from_parm_pack_p): Remove this for it's not used by
575 tsubst_pack_expansion anymore.
576
dcdb8613
JM
5772013-01-21 Jason Merrill <jason@redhat.com>
578
579 PR c++/56059
580 * tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default
581 template args count.
582
5af057d8
JM
5832013-01-18 Jason Merrill <jason@redhat.com>
584
585 PR target/54908
586 * decl2.c (get_local_tls_init_fn): New.
587 (get_tls_init_fn): Handle flag_extern_tls_init. Don't bother
588 with aliases for internal variables. Don't use weakrefs if
589 the variable needs destruction.
590 (generate_tls_wrapper): Mark the wrapper as const if no
591 initialization is needed.
592 (handle_tls_init): Don't require aliases.
593
cd61690f
DS
5942013-01-15 Dodji Seketeli <dodji@redhat.com>
595
596 PR c++/55663
597 * pt.c (coerce_innermost_template_parms): New static function.
598 (instantiate_alias_template): Use it here.
599
96924e7e
JM
6002013-01-09 Jason Merrill <jason@redhat.com>
601
795801d6
JM
602 PR c++/55878
603 * rtti.c (build_typeid, get_typeid): Add complain parm.
604 (get_tinfo_decl_dynamic): Likewise.
605 * cp-tree.h, parser.c, pt.c: Adjust.
606
96924e7e
JM
607 PR c++/55893
608 * decl.c (cp_finish_decl): Clear TREE_READONLY if the variable
609 needs destruction.
610
cc83c823
JJ
6112013-01-09 Jakub Jelinek <jakub@redhat.com>
612
613 PR c/48418
614 * typeck.c (cp_build_binary_op): For LSHIFT_EXPR and RSHIFT_EXPR,
615 call maybe_constant_value for the negative or too big shift
616 count warnings.
617
fdbff37f
PC
6182013-01-09 Paolo Carlini <paolo.carlini@oracle.com>
619
620 PR c++/55801
621 * decl2.c (var_needs_tls_wrapper): Return false when error_operand_p
622 of the argument is true.
623
80a8d521
JB
6242013-01-08 Joel Brobecker <brobecker@adacore.com>
625
626 * parser.c (cp_parser_initializer_list): Move declaration
627 of variable non_const to start of lexical block.
628
e4d7d8cb
JM
6292013-01-07 Jason Merrill <jason@redhat.com>
630
631 PR c++/55753
632 * tree.c (build_aggr_init_expr): Do nothing in a template.
633 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Strip an ADDR_EXPR off
634 a FUNCTION_DECL before tsubsting.
635
36b21740
DS
6362013-01-04 Dodji Seketeli <dodji@redhat.com>
637
638 PR c++/52343
639 * pt.c (check_instantiated_arg): Allow type template arguments.
640
82f2836c
JM
6412013-01-04 Jason Merrill <jason@redhat.com>
642
643 PR c++/55877
644 * decl.c (reset_type_linkage, bt_reset_linkage): New.
645 (grokdeclarator): Use reset_type_linkage.
646 * name-lookup.c (binding_table_foreach): Handle null table.
647 * tree.c (decl_anon_ns_mem_p): Check TYPE_MAIN_DECL, not TYPE_NAME.
648
1582c677
PC
6492013-01-04 Paolo Carlini <paolo.carlini@oracle.com>
650
651 PR c++/54526 (again)
652 * parser.c (cp_parser_template_id): Revert core of previous change
653 (keep adjusted inform message).
654
99c4346a
JM
6552013-01-03 Jason Merrill <jason@redhat.com>
656
20644725
JM
657 PR c++/55419
658 PR c++/55753
659 * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch
660 TREE_CONSTANT.
661
ffabb761
JM
662 PR c++/55842
663 * semantics.c (trait_expr_value): Call maybe_instantiate_noexcept.
664
b53e0533
JM
665 PR c++/55856
666 * semantics.c (build_data_member_initialization): Handle DECL_EXPR.
667
99c4346a
JM
668 PR c++/53650
669 * call.c (type_has_extended_temps): New.
670 * cp-tree.h: Declare it.
671 * decl.c (check_initializer): Use build_aggr_init for arrays
672 if it is false.
673 * init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic.
674
e78167f2
JM
6752013-01-02 Jason Merrill <jason@redhat.com>
676
3a322efd
JM
677 PR c++/54325
678 * call.c (build_new_method_call_1): Don't use build_value_init for
679 user-provided default constructors.
680
5f942422
JM
681 * decl.c (check_default_argument): Use LOOKUP_IMPLICIT.
682
e78167f2
JM
683 PR c++/55032
684 PR c++/55245
685 * tree.c (build_cplus_array_type): Copy layout information
686 to main variant if necessary.
ad41bd84 687\f
86a2db33 688Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
689
690Copying and distribution of this file, with or without modification,
691are permitted in any medium without royalty provided the copyright
692notice and this notice are preserved.