]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
re PR c++/63522 (ICE: unexpected expression 'ElementIndices' of kind template_parm_index)
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
17e87c1c
JM
12014-12-25 Jason Merrill <jason@redhat.com>
2
3 PR c++/63522
4 * parser.c (cp_parser_type_parameter): Call
5 check_for_bare_parameter_packs on default argument.
6
36e87c23
PC
72014-12-24 Paolo Carlini <paolo.carlini@oracle.com>
8
9 PR c++/63985
10 * parser.c (cp_parser_init_declarator): Add location_t* parameter.
11 (cp_parser_simple_declaration): Provide proper diagnostic for
12 multiple declarations and initializers in range-based for loops.
13 (cp_parser_single_declaration): Adjust call.
14
b9fa0575
JM
152014-12-20 Jason Merrill <jason@redhat.com>
16
17 PR c++/64359
18 * pt.c (iterative_hash_template_arg): Hash alias specializations
19 differently from their TYPE_CANONICAL.
20 (alias_template_specialization_p): Optimize.
21 (template_args_equal): Optimize alias handling.
22 (dependent_alias_template_spec_p): Only check innermost args.
23
b00f4f15
KT
242014-12-19 Kai Tietz <ktietz@redhat.com>
25
26 PR c++/61198
27 * pt.c (most_general_template): Don't break for template-alias.
28
1b82e09e
JM
292014-12-18 Jason Merrill <jason@redhat.com>
30
90f6debe
JM
31 PR c++/64105
32 * parser.c (cp_parser_simple_type_specifier): Make auto parameter
33 before -std=c++14 an error.
34
3696ea58
JM
35 PR c++/64352
36 * pt.c (tsubst_copy_and_build): Pass complain to mark_used.
37
1b82e09e
JM
38 PR c++/64251
39 * decl2.c (mark_used): Don't mark if in_template_function.
40
6e4992ca
PC
412014-12-18 Paolo Carlini <paolo.carlini@oracle.com>
42
43 PR c++/60955
44 * pt.c (struct warning_sentinel): Move it...
45 * cp-tree.h: ... here.
46 * semantics.c (force_paren_expr): Use it.
47
13f649f6
JM
482014-12-17 Jason Merrill <jason@redhat.com>
49
12d9ce19
JM
50 PR c++/64333
51 * constexpr.c (cxx_bind_parameters_in_call): non_constant_args parm.
52 (cxx_eval_call_expression): Don't cache calls with non-constant args.
53 (cxx_eval_constant_expression) [COMPOUND_EXPR]: Pass true for lval.
54 (cxx_eval_unary_expression, cxx_eval_binary_expression)
55 (cxx_eval_conditional_expression): Pass false for lval.
56
92a596e8
JM
57 * constexpr.c: Change "addr" parm names to "lval".
58
13f649f6
JM
59 * constexpr.c: Tweak comments and formatting.
60
0007ff03
PC
612014-12-16 Paolo Carlini <paolo.carlini@oracle.com>
62
63 PR c++/58650
64 * parser.c (cp_parser_member_declaration): Fix error recovery for
65 initialized non-static data member declared friend.
66
2e118f3c
JH
672014-12-15 Jan Hubicka <hubicka@ucw.cz>
68
69 * decl2.c (decl_needed_p): When not optimizing, do not consider external
70 decls as needed.
71
20b06add
JM
722014-12-15 Jason Merrill <jason@redhat.com>
73
b07891da
JM
74 PR c++/64297
75 * typeck.c (apply_memfn_quals): Correct wrong TYPE_CANONICAL.
76
20b06add
JM
77 N3778: Sized Deallocation
78 * call.c (non_placement_deallocation_fn_p): A global sized
79 operator delete is not a usual deallocation function until C++14.
80 (build_op_delete_call): Choose the global sized op delete if we
81 know the size.
82 * cp-tree.h: Declare non_placement_deallocation_fn_p.
83 (enum cp_tree_index): Remove CPTI_GLOBAL_DELETE_FNDECL.
84 (global_delete_fndecl): Remove.
85 * decl.c (cxx_init_decl_processing): Also declare sized op deletes.
86 (grok_op_properties): Warn about sized dealloc without the flag.
87 * init.c (build_builtin_delete_call): Remove.
88 (build_vec_delete_1, build_delete): Don't call it.
89 * decl2.c (maybe_warn_sized_delete): New.
90 (cp_write_global_declarations): Call it.
91
6bfb1253
PC
922014-12-15 Paolo Carlini <paolo.carlini@oracle.com>
93
94 PR c++/58882
95 * decl.c (check_array_designated_initializer): Diagnose gracefully
96 C99 designators which aren't integral constant-expressions; allow
97 constexpr user-defined type conversion operators.
98
88957d5e
PC
992014-12-12 Paolo Carlini <paolo.carlini@oracle.com>
100
101 PR c++/59628
102 * semantics.c (finish_omp_reduction_clause): Early return true
103 if DECL_SAVED_TREE (id) is NULL_TREE.
104
e3501bab
JM
1052014-12-12 Jason Merrill <jason@redhat.com>
106
c0b6f54b
JM
107 N3922
108 * pt.c (do_auto_deduction): In direct-init context, { x } deduces
109 from x.
110
e3501bab
JM
111 * cp-tree.h (NAMESPACE_ABI_TAG): New.
112 * name-lookup.c (handle_namespace_attrs): Set it.
113 * class.c (check_tag): Split out from find_abi_tags_r.
114 (find_abi_tags_r): Also check namespace tags.
115 (mark_type_abi_tags): Also mark namespace tags.
116
5a5e54cd
KT
1172014-12-12 Kai Tietz <ktietz@redhat.com>
118
119 PR c++/63996
120 * constexpr.c (cxx_eval_loop_expr): Don't loop
121 endless on none-constant expression.
122
18e780d4
JM
1232014-12-12 Jason Merrill <jason@redhat.com>
124
125 PR c++/61402
126 * lambda.c (add_capture): Don't pass a dependent type to
127 variably_modified_type_p.
128
89631a43
JM
1292014-12-11 Jason Merrill <jason@redhat.com>
130
94a073b2
JM
131 Remove N3639 "array of runtime length" from -std=c++14.
132 * decl.c (compute_array_index_type): VLAs are not part of C++14.
133 (create_array_type_for_decl, grokdeclarator): Likewise.
134 * lambda.c (add_capture): Likewise.
135 * pt.c (tsubst): Likewise.
136 * rtti.c (get_tinfo_decl): Likewise.
137 * semantics.c (finish_decltype_type): Likewise.
138 * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
139 (cp_build_addr_expr_1): Likewise.
140 * init.c (build_vec_init): Don't throw bad_array_length.
141
8c7e9a61
JM
142 PR c++/64248
143 Revert:
144 * parser.c (cp_parser_unqualified_id): Handle __func__ here.
145 (cp_parser_primary_expression): Not here.
146
89631a43
JM
147 PR c++/57510
148 * typeck2.c (split_nonconstant_init_1): Handle arrays here.
149 (store_init_value): Not here.
150 (split_nonconstant_init): Look through TARGET_EXPR. No longer static.
151 * cp-tree.h: Declare split_nonconstant_init.
152 * call.c (set_up_extended_ref_temp): Use split_nonconstant_init.
153
b214b733
PC
1542014-12-11 Paolo Carlini <paolo.carlini@oracle.com>
155
156 * typeck.c (maybe_warn_about_useless_cast): Remove unnecessary
157 conditional.
158
e383e095
KT
1592014-12-10 Kai Tietz <ktietz@redhat.com>
160
e6f2df09
KT
161 PR c++/64127
162 * parser.c (cp_parser_diagnose_invalid_type_name): Check id
163 for being an identifier before accessing it.
164
e383e095
KT
165 PR c++/64100
166 * typeck.c (lookup_destructor): Handle incomplete type.
167
9c78f8e6
JM
1682014-12-09 Jason Merrill <jason@redhat.com>
169
59bce713
JM
170 PR c++/64129
171 * decl.c (grokdeclarator): Recover from variable template
172 specialization declared as function.
173
9c78f8e6
JM
174 PR c++/64222
175 * parser.c (cp_parser_unqualified_id): Don't declare fname while
176 parsing function parms.
177
a1408b7e
JM
1782014-12-03 Jason Merrill <jason@redhat.com>
179
ef9f382c
JM
180 PR c++/64029
181 * decl.c (grok_reference_init): Complete array type.
182
a1408b7e
JM
183 PR c++/64080
184 * constexpr.c (cxx_eval_store_expression): Handle non-decl store
185 targets.
186
61a1a73e
PC
1872014-12-03 Paolo Carlini <paolo.carlini@oracle.com>
188
189 PR c++/63558
190 * decl.c (identify_goto): Return a bool if diagnostic is emitted.
191 (check_previous_goto_1): Consistently emit permerror + inform.
192 (check_goto): Likewise.
193
a6a0570f
RB
1942014-12-03 Richard Biener <rguenther@suse.de>
195
196 * constexpr.c (cxx_eval_builtin_function_call): Use
197 fold_build_call_array_loc.
198
253a921b
MP
1992014-12-02 Marek Polacek <polacek@redhat.com>
200
201 * constexpr.c (cxx_eval_check_shift_p): New function.
202 (cxx_eval_binary_expression): Call it. Set NON_CONSTANT_P if it
203 returns true.
204
ad1f2178
PC
2052014-12-01 Paolo Carlini <paolo.carlini@oracle.com>
206
207 PR c++/60859
208 * decl.c (reshape_init_r): Do not reject value-initialization of
209 scalar array element.
210
0b274c17
MP
2112014-12-01 Marek Polacek <polacek@redhat.com>
212
213 PR sanitizer/63956
214 * constexpr.c: Include ubsan.h.
215 (cxx_eval_call_expression): Bail out for IFN_UBSAN_{NULL,BOUNDS}
216 internal functions and for ubsan builtins.
217 * error.c: Include internal-fn.h.
218 (dump_expr): Add printing of internal functions.
219
e42c407c
MP
2202014-12-01 Marek Polacek <polacek@redhat.com>
221
222 * constexpr.c (literal_type_p): Return true for void type in C++14.
223
7a181134
PC
2242014-12-01 Paolo Carlini <paolo.carlini@oracle.com>
225
226 PR c++/60845
227 * typeck.c (finish_class_member_access_expr): Use %q#T instead of
228 %qD in error message.
229
b731b390
JJ
2302014-11-29 Jakub Jelinek <jakub@redhat.com>
231
232 * cp-gimplify.c (cxx_omp_clause_apply_fn): Remove NULL last argument
233 from create_tmp_var calls.
234
541e35a6
MP
2352014-11-28 Marek Polacek <polacek@redhat.com>
236
237 PR c/63862
238 * typeck.c (cp_build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
239 convert the right operand to integer type.
240
4784470a
KT
2412014-11-27 Kai Tietz <ktietz@redhat.com>
242
243 PR c++/63904
244 * constexpr.c (cxx_eval_vec_init_1): Avoid
245 type-overflow issue.
246
a2033ab1
JM
2472014-11-26 Jason Merrill <jason@redhat.com>
248
249 Allow partial specialization of variable templates.
250 * cp-tree.h (TINFO_USED_TEMPLATE_ID): New.
251 * decl.c (duplicate_decls): Copy it.
252 * error.c (dump_decl) [TEMPLATE_ID_EXPR]: Handle variables.
253 * parser.c (cp_parser_decltype_expr): Do call finish_id_expression
254 on template-ids.
255 * pt.c (register_specialization): Remember variable template insts.
256 (instantiate_template_1): Find the matching partial specialization.
257 (check_explicit_specialization): Allow variable partial specialization.
258 (process_partial_specialization): Likewise.
259 (push_template_decl_real): Likewise.
260 (more_specialized_partial_spec): Rename from more_specialized_class.
261 (most_specialized_partial_spec): Rename from most_specialized_class.
262 (get_partial_spec_bindings): Rename from get_class_bindings.
263
2ad2e0af
PC
2642014-11-26 Paolo Carlini <paolo.carlini@oracle.com>
265
266 PR c++/63757
267 * call.c (standard_conversion): Do not require expr to be non-null
268 when NULLPTR_TYPE_P (from) is true.
269
c06dcc47
JM
2702014-11-26 Jason Merrill <jason@redhat.com>
271
cabaf50a
JM
272 * constexpr.c (cxx_eval_constant_expression) [SAVE_EXPR]: Avoid
273 multiple evaluation.
274
c06dcc47
JM
275 * constexpr.c (cxx_eval_call_expression): Don't talk about
276 flowing off the end if we're already non-constant.
277
aaf176ca
VV
2782014-11-26 Ville Voutilainen <ville.voutilainen@gmail.com>
279
280 Diagnose string constant conversion to char* in c++11 and above
281 as forbidden, not deprecated.
282 * typeck.c (string_conv_p): Do a pedwarn in c++11 and above,
283 change the diagnostic for the Wwrite-strings case for c++11 and above.
284
ec529e25
JM
2852014-11-24 Jason Merrill <jason@redhat.com>
286
287 * pt.c (lookup_template_variable): Always unknown_type_node.
288
a959b33f
PC
2892014-11-25 Paolo Carlini <paolo.carlini@oracle.com>
290
291 PR c++/63786
292 * parser.c (cp_parser_label_for_labeled_statement): Check the case
293 with check_for_bare_parameter_packs.
294
8be2ce25
JW
2952014-11-24 Jonathan Wakely <jwakely@redhat.com>
296 Paolo Carlini <paolo.carlini@oracle.com>
297
298 PR c++/63203
299 * decl.c (initialize_local_var): Add -Winit-self warning for
300 references initialized with themselves.
301
f9b1eec2
JM
3022014-11-24 Jason Merrill <jason@redhat.com>
303
304 PR c++/63942
305 * mangle.c (mangle_decl): If we aren't going to create a symbol
306 alias, don't build the alias DECL either.
307
45410641
PC
3082014-11-24 Paolo Carlini <paolo.carlini@oracle.com>
309
310 PR c++/63905
311 * cp-tree.h (lang_decl_fn): Remove constructor_attr, destructor_attr.
312
169fe7fa
JM
3132014-11-21 Jason Merrill <jason@redhat.com>
314
9127c38e
JM
315 PR c++/63657
316 PR c++/38958
317 * call.c (set_up_extended_ref_temp): Set TREE_USED on the reference
318 if the temporary has a non-trivial destructor.
319 * decl.c (poplevel): Don't look through references.
320
64bec774
JM
321 PR c++/63942
322 * name-lookup.c (supplement_binding_1): Override a mangling alias.
323 * mangle.c (maybe_remove_implicit_alias): New.
324 (mangle_decl): Always avoid creating conflicting alias.
325 * cp-tree.h: Adjust.
326
6602e109
JM
327 PR c++/63849
328 * mangle.c (decl_mangling_context): Use template_type_parameter_p.
329
169fe7fa
JM
330 PR c++/63588
331 * pt.c (uses_template_parms): Handle null argument.
332
aa7da51a
JJ
3332014-11-21 Jakub Jelinek <jakub@redhat.com>
334
335 PR target/63764
336 * typeck.c (cp_build_array_ref): Adjust
337 convert_vector_to_pointer_for_subscript caller. If it returns true,
338 call non_lvalue_loc on the result.
339
e4c4792d
JM
3402014-11-20 Jason Merrill <jason@redhat.com>
341
a663ce5a
JM
342 PR c++/63658
343 * pt.c (convert_nontype_argument): Call convert_from_reference.
344 (check_instantiated_arg): Don't be confused by reference refs.
345 (unify): Look through reference refs on the arg, too.
346 * mangle.c (write_template_arg): Look through reference refs.
347
e4c4792d
JM
348 * error.c (dump_expr): Avoid printing (*&i) for references.
349
75bda2e8
VV
3502014-11-20 Ville Voutilainen <ville.voutilainen@gmail.com>
351
352 PR c++/63959
353 * tree.c (trivially_copyable_p): Check for CP_TYPE_VOLATILE_P.
354
d242408f
TS
3552014-11-20 Trevor Saunders <tsaunders@mozilla.com>
356
357 * cp-objcp-common.c: Use hash_table instead of htab.
358
69eb4fde
JM
3592014-11-19 Jason Merrill <jason@redhat.com>
360
1b5695e6
JM
361 PR c++/56041
362 * cp-tree.h (struct processing_template_decl_sentinel): New.
363 * pt.c (instantiate_non_dependent_expr_internal): Split out from...
364 (instantiate_non_dependent_expr_sfinae): Here.
365 (convert_nontype_argument): Use them.
366 * constexpr.c (fold_non_dependent_expr): Use them.
367
f2acb8ad
JM
368 PR c++/63885
369 * constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: Don't
370 complain yet about a reference.
371 [TARGET_EXPR]: Handle TARGET_EXPR with addr == true.
372 [ADDR_EXPR]: Make sure we don't take the address of a CONSTRUCTOR.
373 (cxx_bind_parameters_in_call): In the new scheme addr is always false.
374 * typeck.c (build_address): Don't take the address of a CONSTRUCTOR.
375
69eb4fde
JM
376 PR c++/57979
377 * init.c (decl_really_constant_value): Rename from
378 integral_constant_value.
379 (scalar_constant_value): Similar but limited to scalar results.
380 (decl_constant_value_safe): Remove.
381 (constant_value_1): Respect return_aggregate_cst_ok_p.
382 * typeck.c (decay_conversion): Use scalar_constant_value.
383 * call.c (convert_like_real): Likewise.
384 * cvt.c (ocp_convert): No need to check CLASS_TYPE_P.
385 * typeck.c (decay_conversion): Or ARRAY_TYPE.
386 * constexpr.c (struct constexpr_ctx): Add strict field.
387 (cxx_eval_constant_expression) [VAR_DECL]: Use it to select between
388 decl_constant_value and decl_really_constant_value.
389 (cxx_eval_outermost_constant_expr): Add strict parm.
390 (maybe_constant_init): Not strict.
391 (potential_constant_expression_1): Add strict parm.
392 Shorten most internal calls with RECUR macro.
393 * cp-tree.h, pt.c, semantics.c: Adjust.
394
3bdf0a9b
JM
3952014-11-19 Jason Merrill <jason@redhat.com>
396
397 PR c++/63928
398 * constexpr.c (cxx_eval_store_expression): Return init, not *valp.
399
0162cb3b
PC
4002014-11-19 Paolo Carlini <paolo.carlini@oracle.com>
401
402 PR c++/55425
403 * constexpr.c (constexpr_fn_retval): Accept __func__, __FUNCTION__,
404 and __PRETTY_FUNCTION__.
405
f899317e
JM
4062014-11-18 Jason Merrill <jason@redhat.com>
407
052beba4
JM
408 PR c++/63924
409 * constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: A load
410 from a variable of empty class type is constant.
411
58611fb6
JM
412 * constexpr.c (cxx_eval_statement_list): Handle statement-expressions.
413 (potential_constant_expression_1): Handle STMT_EXPR.
414
5a804683
JM
415 * constexpr.c (cxx_eval_constant_expression): Give jump_target a
416 default argument.
417 (lots): Omit NULL jump_target arguments.
418
2b3ab879
JM
419 * constexpr.c (struct constexpr_ctx): Add quiet field.
420 (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Set it.
421 (lots): Replace allow_non_constant parameter with ctx->quiet.
422
f899317e
JM
423 PR c++/63940
424 * constexpr.c (cxx_eval_binary_expression): Don't assume the
425 expression was already folded.
426 (cxx_eval_unary_expression): Likewise.
427
bb59f396
MG
4282014-11-18 Marc Glisse <marc.glisse@inria.fr>
429
430 PR libstdc++/43622
431 * rtti.c (emit_support_tinfos): Handle __float128.
432
023d89c7
JM
4332014-11-18 Jason Merrill <jason@redhat.com>
434
ac2f8d26
JM
435 PR c++/63925
436 * constexpr.c (cxx_eval_increment_expression): Use POINTER_PLUS_EXPR.
437
de614750
JM
438 PR c++/63934
439 * constexpr.c (cxx_eval_call_expression): Check DECL_CONSTRUCTOR_P
440 rather than VOID_TYPE_P.
441
ef768ba3
JM
442 * pt.c (instantiate_template_1): Use tsubst_aggr_type for context.
443
023d89c7
JM
444 PR c++/58102
445 * typeck2.c (store_init_value): Set it.
446 * cp-tree.h (CONSTRUCTOR_MUTABLE_POISON): New.
447 * constexpr.c (cxx_eval_outermost_constant_expr): Check it.
448
35abb8ed
JM
4492014-11-17 Jason Merrill <jason@redhat.com>
450
5f7282e2
JM
451 PR c++/33911
452 * call.c (build_call_a): Don't warn_deprecated_use here.
453 (build_over_call): Or here.
454 * decl2.c (mark_used): Do it here.
455 (is_late_template_attribute): Attribute deprecated is not deferred.
456 (cplus_decl_attributes): Propagate TREE_DEPRECATED out to the template.
457 * parser.c (cp_parser_template_name): Warn about deprecated template.
458 (cp_parser_template_argument): Likewise.
459
51d72abe
JM
460 PR c++/50473
461 * decl.c (cp_finish_decl): Don't try to process a non-dependent
462 constant initializer for a reference.
463 * pt.c (value_dependent_expression_p): A reference is always
464 dependent.
465 * call.c (extend_ref_init_temps_1): Also clear TREE_SIDE_EFFECTS
466 on any NOP_EXPRs.
467
56632b27
JM
468 Handle C++14 constexpr flow control.
469 * constexpr.c (cxx_eval_loop_expr, cxx_eval_switch_expr): New.
470 (cxx_eval_statement_list): New.
471 (cxx_eval_constant_expression): Handle LABEL_EXPR,
472 CASE_LABEL_EXPR, GOTO_EXPR, LOOP_EXPR, SWITCH_EXPR. Handle jump
473 semantics of RETURN_EXPR.
474 (many functions): Add jump_target parameter.
475 (returns, breaks, continues, switches, label_matches): New.
476 * cp-tree.h (LABEL_DECL_BREAK, LABEL_DECL_CONTINUE): New.
477 * cp-gimplify.c (begin_bc_block): Set them.
478
27d93d2c
JM
479 * cp-gimplify.c (genericize_cp_loop): Use LOOP_EXPR.
480 (genericize_for_stmt): Handle null statement-list.
481
e6b02185
JM
482 * constexpr.c (use_new_call): Always use new call handling.
483
60813a46
JM
484 C++14 constexpr support (minus loops and multiple returns)
485 * constexpr.c (use_new_call): New macro.
486 (build_data_member_initialization): Ignore non-mem-inits.
487 (check_constexpr_bind_expr_vars): Remove C++14 checks.
488 (constexpr_fn_retval): Likewise.
489 (check_constexpr_ctor_body): Do nothing in C++14.
490 (massage_constexpr_body): In C++14 only collect mem-inits.
491 (get_function_named_in_call): Handle null CALL_EXPR_FN.
492 (cxx_bind_parameters_in_call): Build bindings in same order as
493 parameters. Don't treat iniviref parms specially in new call mode.
494 (cxx_eval_call_expression): If use_new_call, do constexpr expansion
495 based on DECL_SAVED_TREE rather than the massaged constexpr body.
496 Set up ctx->object from AGGR_INIT_EXPR_SLOT if we don't have one.
497 (is_sub_constant_expr): Don't mess with ctx.ctor here.
498 (cxx_eval_component_reference): A null element means we're mid-
499 initialization.
500 (cxx_eval_store_expression, cxx_eval_increment_expression): New.
501 (cxx_eval_constant_expression): Handle RESULT_DECL, DECL_EXPR,
502 MODIFY_EXPR, STATEMENT_LIST, BIND_EXPR, USING_STMT,
503 PREINCREMENT_EXPR, POSTINCREMENT_EXPR, PREDECREMENT_EXPR,
504 POSTDECREMENT_EXPR. Don't look into DECL_INITIAL of variables in
505 constexpr functions. In new-call mode find parms in the values table.
506 (potential_constant_expression_1): Handle null CALL_EXPR_FN.
507 Handle STATEMENT_LIST, MODIFY_EXPR, MODOP_EXPR, IF_STMT,
508 PREINCREMENT_EXPR, POSTINCREMENT_EXPR, PREDECREMENT_EXPR,
509 POSTDECREMENT_EXPR, BIND_EXPR, WITH_CLEANUP_EXPR,
510 CLEANUP_POINT_EXPR, MUST_NOT_THROW_EXPR, TRY_CATCH_EXPR,
511 EH_SPEC_BLOCK, EXPR_STMT, DECL_EXPR, CASE_LABEL_EXPR, BREAK_STMT,
512 CONTINUE_STMT, USING_STMT, IF_STMT, DO_STMT, FOR_STMT, WHILE_STMT,
513 SWITCH_STMT, ASM_EXPR.
514 (cxx_eval_vec_init_1): Call build_aggr_init_expr.
515 (cxx_eval_indirect_ref): Don't return a CONSTRUCTOR when the
516 caller wants an lvalue.
517 (cxx_eval_outermost_constant_expr): Pull object out of AGGR_INIT_EXPR.
518 (maybe_constant_init): Look through INIT_EXPR.
519 (ensure_literal_type_for_constexpr_object): Set
520 cp_function_chain->invalid_constexpr.
521 * cp-tree.h (struct language_function): Add invalid_constexpr bitfield.
522 * decl.c (start_decl): Set cp_function_chain->invalid_constexpr.
523 (check_for_uninitialized_const_var): Likewise.
524 (maybe_save_function_definition): Check it.
525 * parser.c (cp_parser_jump_statement): Set
526 cp_function_chain->invalid_constexpr.
527 (cp_parser_asm_definition): Likewise.
528
35abb8ed
JM
529 PR c++/52282
530 * decl.c (build_ptrmemfunc_type): Don't build a different
531 RECORD_TYPE for a qualified PMF.
532 * cp-tree.h (TYPE_PTRMEMFUNC_FN_TYPE): Merge cv-quals.
533 (TYPE_PTRMEMFUNC_FN_TYPE_RAW): New.
534 * decl2.c (cplus_decl_attributes): Use TYPE_PTRMEMFUNC_FN_TYPE_RAW.
535 * tree.c (cp_walk_subtrees): Likewise.
536 (cp_build_qualified_type_real): Remove special PMF handling.
537
b8cd3996
JM
5382014-11-15 Jason Merrill <jason@redhat.com>
539
8ed2e447
JM
540 * parser.c (cp_parser_omp_declare_reduction_exprs): A block is not
541 an expression.
542
3952ae1a
JM
543 * constexpr.c (cxx_eval_builtin_function_call): Use
544 fold_builtin_call_array.
545
b8cd3996
JM
546 * constexpr.c (cx_check_missing_mem_inits): Clarify error message.
547
234bef96
PC
5482014-11-14 Paolo Carlini <paolo.carlini@oracle.com>
549
550 * semantics.c (end_maybe_infinite_loop): Use fold_non_dependent_expr.
551 * parser.c (cp_parser_omp_clause_collapse): Likewise.
552 (cp_parser_enumerator_definition): Don't call
553 instantiate_non_dependent_expr...
554 * decl.c (build_enumerator): ... call fold_non_dependent_expr here.
555 * typeck2.c (massage_init_elt): Use fold_non_dependent_expr.
556 * constexpr.c (maybe_constant_value): Allow VIEW_CONVERT_EXPR in
557 the final gcc_assert.
558
559 * constexpr.c (fold_non_dependent_expr): Add.
560 * cp-tree.h (fold_non_dependent_expr): Declare it.
561 * call.c (null_ptr_cst_p): Use it.
562 * pt.c (tsubst_copy_and_build, build_non_dependent_expr): Likewise.
563 * semantics.c (begin_maybe_infinite_loop): Likewise.
564 * typeck.c (cp_build_binary_op): Likewise.
565 * typeck2.c (check_narrowing): Likewise.
566
567 * pt.c (fold_non_dependent_expr): Rename to
568 instantiate_non_dependent_expr.
569 (fold_non_dependent_expr_sfinae): Rename to
570 instantiate_non_dependent_expr_sfinae.
571 (convert_nontype_argument, build_non_dependent_expr): Adjust.
572 * decl.c (compute_array_index_type): Likewise.
573 * parser.c (cp_parser_parenthesized_expression_list,
574 cp_parser_enumerator_definition, cp_parser_omp_clause_collapse):
575 Likewise.
576 * semantics.c (end_maybe_infinite_loop, finish_static_assert):
577 Likewise.
578 * typeck.c (cxx_alignas_expr): Likewise.
579 * typeck2.c (store_init_value, massage_init_elt): Likewise.
580 * call.c: Adjust comments.
581 * class.c: Likewise.
582 * constexpr.c: Likewise.
583 * decl2.c: Likewise.
584 * tree.c: Likewise.
585
cbe4c88c
JW
5862014-11-14 Jonathan Wakely <jwakely@redhat.com>
587
588 * mangle.c (find_substitution): Look for abi_tag on class templates.
589
85c64bbe
BS
5902014-11-13 Bernd Schmidt <bernds@codesourcery.com>
591 Thomas Schwinge <thomas@codesourcery.com>
592 Ilya Verbin <ilya.verbin@intel.com>
593 Andrey Turetskiy <andrey.turetskiy@intel.com>
594
595 * Make-lang.in (c++.install-common): Do not install for the offload
596 compiler.
597
882de214
KT
5982014-11-13 Kai Tietz <ktietz@redhat.com>
599
600 * cp-tree.h (cp_build_function_call): Remove prototype.
601 (cp_build_addr_expr_strict): Likewise.
602 (build_typed_address): Likewise.
603 * typeck.c (build_typed_address): Removed.
604 (cp_build_addr_expr_strict): Make static.
605 (cp_build_function_call): Likewise.
606
186ad798
PC
6072014-11-12 Paolo Carlini <paolo.carlini@oracle.com>
608
609 DR 1510
610 PR c++/60420
611 * cp-tree.h (struct cp_decl_specifier_seq): Add decltype_p bool field.
612 * decl.c (grokdeclarator): Use it.
613 * parser.c (cp_parser_simple_type_specifier): Likewise.
614 * pt.c (tsubst, case DECLTYPE_TYPE): Use tf_ignore_bad_quals.
615
50457b9e
PC
6162014-11-11 Paolo Carlini <paolo.carlini@oracle.com>
617
618 PR c++/63265
619 * pt.c (tsubst_copy_and_build, case COND_EXPR): Maybe fold to
620 constant the condition.
621
14f68c39
AK
6222014-11-10 Andi Kleen <ak@linux.intel.com>
623
624 * semantics.c (finish_goto_stmt): Call check_no_cilk.
625 (finish_while_stmt_cond): Dito.
626 (finish_do_stmt): Dito.
627 (finish_for_cond): Dito.
628 (finish_switch_cond): Dito.
629
13c21655
PC
6302014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
631
632 * typeck.c (cp_build_binary_op): Use OPT_Wshift_count_negative and
633 OPT_Wshift_count_overflow in the warnings.
634
e1926435
JM
6352014-11-09 Jason Merrill <jason@redhat.com>
636
6d1301f2
JM
637 DR 799
638 * typeck.c (build_reinterpret_cast_1): reinterpret_cast to the
639 same scalar type is an rvalue.
640
e1926435
JM
641 DR 2007
642 * call.c (build_new_op_1): Don't do non-class lookup for =, -> or [].
643
04af98c6
JM
6442014-11-07 Jason Merrill <jason@redhat.com>
645
31cb2db0
JM
646 DR 1558
647 * pt.c (dependent_alias_template_spec_p): New.
648 (dependent_type_p_r): Handle dependent alias template specialization.
649 (template_args_equal): A dependent alias template specializations
650 is not equal to its underlying type as a template argument.
651 * tree.c (strip_typedefs): Don't strip a dependent alias
652 template-id.
653
04af98c6
JM
654 * parser.c (cp_parser_unqualified_id): Handle __func__ here.
655 (cp_parser_primary_expression): Not here.
656
1dc090e2
TP
6572014-11-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
658
659 PR c++/63366
660 * decl.c (grokdeclarator): Fix __complex meaning __complex double.
661
ef4bddc2
RS
6622014-10-29 Richard Sandiford <richard.sandiford@arm.com>
663
664 * constexpr.c: Remove redundant enum from machine_mode.
665
69e09400
JM
6662014-10-28 Jason Merrill <jason@redhat.com>
667
668 * constexpr.c (cxx_eval_outermost_constant_expr): Tweak.
669
c582198b
AM
6702014-10-28 Andrew MacLeod <amacleod@redhat.com>
671
672 * call.c: Adjust include files.
673 * class.c: Ditto.
674 * decl2.c: Ditto.
675 * decl.c: Ditto.
676 * lambda.c: Ditto.
677 * mangle.c: Ditto.
678 * method.c: Ditto.
679 * optimize.c: Ditto.
680 * parser.c: Ditto.
681 * semantics.c: Ditto.
682 * tree.c: Ditto.
683 * vtable-class-hierarchy.c: Ditto.
684
3e605b20
JM
6852014-10-24 Jason Merrill <jason@redhat.com>
686
687 Implement N3653 (Member initializers and aggregates) and fix
688 references to 'this' in constexpr constructors.
689 * class.c (check_field_decls): In C++14 an NSDMI does not make the
690 class non-aggregate.
691 * constexpr.c (struct constexpr_ctx): New.
692 (cxx_bind_parameters_in_call): Handle 'this'.
693 (cxx_eval_call_expression): Create new constexpr_ctx.
694 (cxx_eval_component_reference): Check CONSTRUCTOR_NO_IMPLICIT_ZERO.
695 (initialized_type, init_subob_ctx, verify_ctor_sanity): New.
696 (cxx_eval_bare_aggregate): Use them. Build CONSTRUCTOR early.
697 (cxx_eval_vec_init_1): Likewise.
698 (cxx_eval_constant_expression) [PARM_DECL]: Allow 'this'.
699 [TARGET_EXPR]: Build new constexpr_ctx.
700 [PLACEHOLDER_EXPR]: New.
701 (cxx_eval_outermost_constant_expr): Build new constexpr_ctx. Add
702 object parameter.
703 (is_sub_constant_expr): Build new constexpr_ctx.
704 (potential_constant_expression_1): Handle PLACEHOLDER_EXPR.
705 Allow 'this'.
706 * cp-gimplify.c (cp_gimplify_init_expr): Call replace_placeholders.
707 * cp-tree.h (CONSTRUCTOR_NO_IMPLICIT_ZERO): New.
708 * error.c (dump_expr): Handle PLACEHOLDER_EXPR.
709 * init.c (get_nsdmi): Generate PLACEHOLDER_EXPR.
710 * tree.c (lvalue_kind): Handle PLACEHOLDER_EXPR.
711 (build_ctor_subob_ref, replace_placeholders): New.
712 * typeck2.c (store_init_value): Use replace_placeholders.
713 (process_init_constructor_record): Make zero-init before NSDMI
714 explicit.
715
60393bbc
AM
7162014-10-27 Andrew MacLeod <amacleod@redhat.com>
717
718 * cp-gimplify.c: Adjust include files.
719
d723bb7c
MLI
7202014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
721
722 PR c++/53061
723 * cp-objcp-common.c: Do not include new.
724 (cxx_initialize_diagnostics): Move from here to ...
725 * error.c (cxx_initialize_diagnostics): : ... here. Move
726 diagnostics initialization here from init_error.
727 (cxx_pp): Use a real pointer not a macro.
728 (init_error): Just initialize cxx_pp.
729 * cxx-pretty-print.c (cxx_pretty_printer::cxx_pretty_printer): Do
730 not set maximum line length.
731
53b0f747
JW
7322014-10-23 Jonathan Wakely <jwakely@redhat.com>
733
734 PR c++/63619
735 * decl2.c (delete_sanity): Use OPT_Wdelete_incomplete in warning.
736
3ec0922b
PC
7372014-10-21 Paolo Carlini <paolo.carlini@oracle.com>
738
739 * parser.c (cp_parser_unary_expression): Add default arguments.
740 (cp_parser_cast_expression, cp_parser_sizeof_operand,
741 cp_parser_omp_atomic): Adjust.
742
2bf492a1
JM
7432014-10-20 Jason Merrill <jason@redhat.com>
744
745 PR c++/63601
746 * lambda.c (current_nonlambda_function): New.
747 * semantics.c (finish_this_expr): Use it.
748 * cp-tree.h: Declare it.
749
5fcffe51
MT
7502014-10-17 Alan Modra <amodra@gmail.com>
751
752 PR middle-end/61848
753 * decl.c (merge_decls): Don't merge section name, comdat group or
754 tls model to newdecl symtab node, instead merge to olddecl.
755 Override existing olddecl section name. Set tls_model for all
756 thread-local vars, not just OMP thread-private ones. Remove
757 incorrect comment.
758
83685514
AM
7592014-10-16 Andrew MacLeod <amacleod@redhat.com>
760
761 * cp-tree.h: Adjust include files.
762
a0272f86
JM
7632014-10-15 Jason Merrill <jason@redhat.com>
764
765 PR c++/63528
766 * pt.c (lookup_template_variable): Call coerce_template_parms.
767
2d76680f
PC
7682014-10-15 Paolo Carlini <paolo.carlini@oracle.com>
769
770 * semantics.c (is_instantiation_of_constexpr, literal_type_p,
771 ensure_literal_type_for_constexpr_object,
772 constexpr_fundef_hasher::equal, constexpr_fundef_hasher::hash,
773 retrieve_constexpr_fundef, is_valid_constexpr_fn,
774 build_anon_member_initialization, build_data_member_initialization,
775 check_constexpr_bind_expr_vars, check_constexpr_ctor_body_1,
776 check_constexpr_ctor_body, sort_constexpr_mem_initializers,
777 build_constexpr_constructor_member_initializers, constexpr_fn_retval,
778 massage_constexpr_body, cx_check_missing_mem_inits,
779 register_constexpr_fundef, explain_invalid_constexpr_fn,
780 constexpr_call_hasher::hash, constexpr_call_hasher::equal,
781 maybe_initialize_constexpr_call_table, get_function_named_in_call,
782 get_nth_callarg, lookup_parameter_binding,
783 cxx_eval_builtin_function_call, adjust_temp_type,
784 cxx_bind_parameters_in_call, push_cx_call_context,
785 pop_cx_call_context, cx_error_context, cxx_eval_call_expression,
786 reduced_constant_expression_p, verify_constant,
787 cxx_eval_unary_expression, cxx_eval_binary_expression,
788 cxx_eval_conditional_expression, cxx_eval_array_reference,
789 cxx_eval_component_reference, cxx_eval_bit_field_ref,
42630ea6 790 cxx_eval_logical_expression, base_field_constructor_elt,
2d76680f
PC
791 cxx_eval_bare_aggregate, cxx_eval_vec_init_1, cxx_eval_vec_init,
792 cxx_fold_indirect_ref, cxx_eval_indirect_ref, non_const_var_error,
793 cxx_eval_trinary_expression, var_in_constexpr_fn,
794 cxx_eval_constant_expression, cxx_eval_outermost_constant_expr,
795 is_sub_constant_expr, cxx_constant_value, maybe_constant_value,
796 maybe_constant_init, potential_constant_expression_1,
797 potential_constant_expression, potential_rvalue_constant_expression,
798 require_potential_constant_expression,
799 require_potential_rvalue_constant_expression): Moved definitions...
800 * constexpr.c: ... here, new file.
801 * Make-lang.in: Update.
802 * config-lang.in: Likewise.
803
5f83e90b
JM
8042014-10-14 Jason Merrill <jason@redhat.com>
805
806 PR c++/63455
807 * parser.c (struct saved_token_sentinel): New.
808 (cp_parser_statement): Use it.
809 (cp_parser_start_tentative_firewall): New.
810 (cp_parser_end_tentative_firewall): New.
811 (cp_parser_lambda_expression): Use them.
812 (cp_parser_statement_expr): New.
813 (cp_parser_primary_expression): Use it.
814
78a7c317
DD
8152014-10-14 DJ Delorie <dj@redhat.com>
816
817 * typeck.c (cp_common_type): Check for all __intN types, not just
818 __int128.
819 * decl.c (grokdeclarator): Likewise.
820 * rtti.c (emit_support_tinfos): Check for all __intN types, not just
821 __int128.
822 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Check
823 for all __intN types, not just __int128.
824 (cp_parser_simple_type_specifier): Likewise.
825 * mangle.c (integer_type_codes): Remove int128-specific codes.
826 * cp-tree.h (cp_decl_specifier_seq): Add int_n_idx to store which
827 __intN was specified.
828 * lex.c (init_reswords): Reserve all __intN keywords.
829
48d3af12
MG
8302014-10-14 Marc Glisse <marc.glisse@inria.fr>
831
832 * typeck.c (cp_build_unary_op) [TRUTH_NOT_EXPR]: Accept float vectors.
833
aaf7bd8a
L
8342014-10-13 H.J. Lu <hongjiu.lu@intel.com>
835
836 * mangle.c (mangle_conv_op_name_for_type): Cast elements to
837 unsigned long.
838 (print_template_statistics): Cast size and elements to long.
839
2a22f99c
TS
8402014-10-12 Trevor Saunders <tsaunders@mozilla.com>
841
842 * cp-gimplify.c, cp-tree.h, decl.c, mangle.c, name-lookup.c,
843 pt.c, semantics.c, tree.c, typeck2.c: Use hash_table instead of
844 hashtab.
845
cfb71cad
JM
8462014-10-10 Jason Merrill <jason@redhat.com>
847
d1522e8f
JM
848 PR c++/62115
849 * class.c (build_base_path): Preserve rvalueness.
850 * call.c (convert_like_real) [ck_base]: Let convert_to_base handle &/*.
851 * rtti.c (build_dynamic_cast_1): Call convert_to_reference later.
852
51115027
JM
853 PR c++/63194
854 * method.c (defaulted_late_check): Call maybe_instantiate_noexcept.
855
c6250f73
JM
856 * method.c (implicitly_declare_fn): Handle deleted lambda default
857 ctor and copy assop here.
858 * class.c (check_bases_and_members): Not here.
859 (add_implicitly_declared_members): And don't set
860 CLASSTYPE_LAZY_MOVE_ASSIGN.
861
cfb71cad
JM
862 * semantics.c (finish_id_expression): Check for error_mark_node.
863
548cb3d7
JM
8642014-10-09 Jason Merrill <jason@redhat.com>
865
866 PR c++/63207
867 * semantics.c (outer_var_p): Non-static.
868 (process_outer_var_ref): Split out from finish_id_expression.
869 * pt.c (tsubst_copy_and_build): Call them.
870 * cp-tree.h: Declare them.
871
3369b919
PC
8722014-10-09 Paolo Carlini <paolo.carlini@oracle.com>
873
874 * semantics.c (check_constexpr_ctor_body_1): New.
875 (check_constexpr_ctor_body): Use it; add bool parameter.
876 (build_data_member_initialization): Handle BIND_EXPR and
877 USING_STMT in the main conditional.
878 (build_constexpr_constructor_member_initializers): Do not
879 handle BIND_EXPR here.
880 (constexpr_fn_retval): Handle BIND_EXPR in the switch.
881 (massage_constexpr_body): Don't do it here.
882 * parser.c (cp_parser_ctor_initializer_opt_and_function_body):
883 Adjust check_constexpr_ctor_body call.
884 (cp_parser_compound_statement): Do not pedwarn for compound-statement
885 in constexpr function in C++14 mode.
886 * cp-tree.h (check_constexpr_ctor_body): Update declaration.
887
96e780c0
JM
8882014-10-09 Jason Merrill <jason@redhat.com>
889
ea4e4e6e
JM
890 PR c++/63309
891 * parser.c (cp_parser_class_head): push_template_decl for members
892 of templates, too.
893
5d4fffb8
JM
894 PR c++/63415
895 * pt.c (value_dependent_expression_p) [CONSTRUCTOR]: Check the type.
896 (iterative_hash_template_arg): Likewise.
897
96e780c0
JM
898 PR c++/63437
899 * cp-tree.h (REF_PARENTHESIZED_P): Also allow INDIRECT_REF.
900 * semantics.c (force_paren_expr): And set it.
901 * typeck.c (check_return_expr): And handle it.
902
d0ff1cb4
MG
9032014-10-09 Marc Glisse <marc.glisse@inria.fr>
904
905 * decl.c (grokdeclarator): constexpr only implies const in C++11.
906
9efe5fbd
JM
9072014-10-08 Jason Merrill <jason@redhat.com>
908
a41bb2c9
JM
909 PR c++/63405
910 * pt.c (tsubst_pack_expansion): Limit simple expansion to type packs.
911
024da309
JM
912 PR c++/63485
913 * tree.c (build_cplus_array_type): Look for a type with no
914 typedef-name or attributes.
915
9efe5fbd
JM
916 * call.c (call_copy_ctor): New.
917 (build_over_call): Use it to avoid infinite recursion on invalid code.
918
cf5986df
JM
9192014-10-07 Jason Merrill <jason@redhat.com>
920
921 * tree.c (cp_tree_equal) [TRAIT_EXPR]: Use cp_tree_equal for type2.
922
2a8ef767
ESR
9232014-10-06 Edward Smith-Rowland <3dw4rd@verizon.net>
924
925 * cp/parser.c: Allow [[deprecated]] for C++11. Issue a pedwarn.
926
fbf833b7
PC
9272014-10-06 Paolo Carlini <paolo.carlini@oracle.com>
928
929 PR c++/55250
930 * semantics.c (check_constexpr_bind_expr_vars): New.
931 (check_constexpr_ctor_body, massage_constexpr_body): Use it.
932 (build_constexpr_constructor_member_initializers): Handle
933 BIND_EXPR in the main conditional.
934
f5059223
MW
9352014-10-02 Mark Wielaard <mjw@redhat.com>
936
937 PR debug/63239
938 * cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
939 (cp_function_decl_deleted_p): New prototype.
940 * cp-objcp-common.c (cp_function_deleted_p): New function.
941
3c9aabbd
MG
9422014-10-03 Marc Glisse <marc.glisse@inria.fr>
943
944 PR c++/54427
945 PR c++/57198
946 PR c++/58845
947 * typeck.c (cp_build_binary_op): save_expr after convert to save
948 redundant operations.
949 [TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR]: Handle vectors.
950 (cp_build_unary_op) [TRUTH_NOT_EXPR]: Likewise.
951
2bd8ca21
JM
9522014-10-03 Jason Merrill <jason@redhat.com>
953
b2cb98ed
JM
954 * decl.c (start_decl): Complain about static/thread_local vars
955 in constexpr function.
956 (check_for_uninitialized_const_var): Also uninitialized vars.
957 * parser.c (cp_parser_jump_statement): And gotos.
958 (cp_parser_asm_operand_list): And asm.
959 (cp_parser_try_block): And try.
960 * semantics.c (ensure_literal_type_for_constexpr_object): And
961 non-literal.
962
e01a49c1
JM
963 * semantics.c (constexpr_fn_retval): Ignore declarations in C++14.
964 (var_in_constexpr_fn): New.
965 (cxx_eval_constant_expression): Look into DECL_INITIAL.
966 (potential_constant_expression_1): Allow constexpr-local vars.
967
2bd8ca21
JM
968 PR c++/63362
969 * tree.c (strip_typedefs): Handle TREE_LIST.
970
2a931365
PC
9712014-10-03 Paolo Carlini <paolo.carlini@oracle.com>
972
973 * parser.c (cp_parser_assignment_expression,
974 cp_parser_constant_expression): Add default arguments.
975 (cp_parser_primary_expression,
976 cp_parser_postfix_open_square_expression,
977 cp_parser_parenthesized_expression_list,
978 cp_parser_question_colon_clause,
979 cp_parser_expression, cp_parser_constant_expression,
980 cp_parser_label_for_labeled_statement, cp_parser_static_assert,
981 cp_parser_template_argument, cp_parser_enumerator_definition,
982 cp_parser_member_declaration, cp_parser_constant_initializer,
983 cp_parser_noexcept_specification_opt, cp_parser_throw_expression,
984 cp_parser_std_attribute_spec, cp_parser_objc_message_args,
985 cp_parser_objc_class_ivars, cp_parser_omp_clause_collapse,
986 cp_parser_omp_clause_aligned, cp_parser_omp_clause_safelen,
987 cp_parser_omp_clause_simdlen, cp_parser_omp_clause_dist_schedule,
988 cp_parser_omp_for_incr, cp_parser_omp_for_loop_init,
989 cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear): Adjust.
990
04bbdb1d
PC
9912014-10-02 Paolo Carlini <paolo.carlini@oracle.com>
992
993 PR c++/53025
994 * cp-tree.h (struct saved_scope): Add noexcept_operand.
995 (cp_noexcept_operand): Define.
996 * call.c (build_over_call): Use it.
997 * parser.c (cp_parser_unary_expression, [RID_NOEXCEPT]): Likewise.
998 * pt.c (tsubst_copy_and_build, [NOEXCEPT_EXPR]): Likewise.
999
a710f1f8
JM
10002014-10-01 Jason Merrill <jason@redhat.com>
1001
662bb4b8
JM
1002 PR c++/63362
1003 * method.c (constructible_expr): Handle value-init of non-class.
1004 * parser.c (cp_parser_trait_expr): Allow pack expansion.
1005 * pt.c (tsubst_copy_and_build): Handle pack expansion.
1006
a710f1f8
JM
1007 PR c++/63362
1008 * class.c (type_has_non_user_provided_default_constructor): Rename
1009 from type_has_user_provided_default_constructor, reverse sense.
1010 (default_init_uninitialized_part, explain_non_literal_class): Adjust.
1011 (check_bases_and_members): Set TYPE_HAS_COMPLEX_DFLT.
1012 * call.c (build_new_method_call_1): Adjust.
1013 * cp-tree.h: Adjust.
1014 * decl.c (grok_special_member_properties): Don't set
1015 TYPE_HAS_COMPLEX_DFLT.
1016 * init.c (build_value_init_noctor): Don't use
1017 type_has_user_provided_default_constructor.
1018
8d0cf15e
JM
10192014-09-30 Jason Merrill <jason@redhat.com>
1020
dd5d5481
JM
1021 * cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_ASSIGNABLE and
1022 CPTK_IS_TRIVIALLY_CONSTRUCTIBLE.
1023 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
1024 * parser.c (cp_parser_primary_expression): Likewise.
1025 (cp_parser_trait_expr): Likewise. Handle variadic trait.
1026 * semantics.c (trait_expr_value): Likewise.
1027 (finish_trait_expr): Likewise.
1028 (check_trait_type): Handle variadic trait. Return bool.
1029 * method.c (build_stub_object): Add rvalue reference here.
1030 (locate_fn_flags): Not here.
1031 (check_nontriv, assignable_expr, constructible_expr): New.
1032 (is_trivially_xible): New.
1033
b752325e
JM
1034 * cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_COPYABLE.
1035 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
1036 * parser.c (cp_parser_primary_expression): Likewise.
1037 (cp_parser_trait_expr): Likewise.
1038 * semantics.c (trait_expr_value): Likewise.
1039 (finish_trait_expr): Likewise.
1040
32f3d032
JM
1041 * method.c (build_stub_object): Use CONVERT_EXPR.
1042 * tree.c (build_dummy_object): Likewise.
1043 (is_dummy_object): Adjust.
1044
8d0cf15e
JM
1045 * cp-tree.h (cp_trait_kind): Remove CPTK_IS_CONVERTIBLE_TO.
1046 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
1047 * semantics.c (trait_expr_value): Likewise.
1048 (finish_trait_expr): Likewise.
1049 * parser.c (cp_parser_primary_expression): Likewise.
1050 (cp_parser_trait_expr): Likewise. Remove redundant grokdeclarator.
1051
75a0d320
PC
10522014-09-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
1053
1054 PR c++/16564
1055 * error.c (print_instantiation_context): Delete.
1056 * typeck2.c (build_x_arrow): Record location when pushing
1057 template instantiation.
1058 * pt.c (push_tinst_level): Make it a wrapper around ...
1059 (push_tinst_level_loc): ... this. New function. Make excessive
1060 template instantiation depth a fatal error. Record location. Use
1061 bool as return type.
1062 (instantiate_pending_templates): Make excessive
1063 template instantiation depth a fatal error.
1064 (problematic_instantiation_changed): Use bool as return type.
1065 * cp-tree.h (print_instantiation_context): Delete.
1066 (push_tinst_level): Update declaration.
1067 (problematic_instantiation_changed): Likewise.
1068 (push_tinst_level_loc): New.
1069
f764304c
RB
10702014-09-29 Richard Biener <rguenther@suse.de>
1071
1072 * typeck.c (enum_cast_to_int): Use CONVERT_EXPR_P to check
1073 for conversions.
1074
00eaaa50
JM
10752014-09-26 Jason Merrill <jason@redhat.com>
1076
1077 * mangle.c (find_substitution): Use write_abi_tags.
1078
6597738a
MP
10792014-09-25 Marek Polacek <polacek@redhat.com>
1080
1081 PR c++/61945
1082 * class.c (warn_hidden): Check for FUNCTION_DECL.
1083
d90c0a59
JJ
10842014-09-25 Jakub Jelinek <jakub@redhat.com>
1085
1086 PR c++/63249
1087 * semantics.c (handle_omp_array_sections_1): Call mark_rvalue_use
1088 on low_bound and length.
1089
00de328a
AH
10902014-09-24 Aldy Hernandez <aldyh@redhat.com>
1091
1092 * class.c, decl.c, optimize.c: Rename all instances of
1093 DECL_ABSTRACT to DECL_ABSTRACT_P.
1094
083e891e
MP
10952014-09-24 Marek Polacek <polacek@redhat.com>
1096
1097 PR c/61405
1098 PR c/53874
1099 * semantics.c (finish_switch_cond): Call unlowered_expr_type.
1100 * tree.c (bot_manip): Add default case.
1101 * parser.c (cp_parser_primary_expression): Cast the controlling
1102 expression of a switch to an int.
1103 (cp_parser_unqualified_id): Likewise.
1104
9a9f3c8f
PC
11052014-09-23 Paolo Carlini <paolo.carlini@oracle.com>
1106
1107 PR c++/61857
1108 * parser.c (cp_parser_skip_to_closing_square_bracket,
1109 cp_parser_array_designator_p): New.
1110 (cp_parser_initializer_list): Use the latter.
1111
a546927c
JM
11122014-09-22 Jason Merrill <jason@redhat.com>
1113
6863c41a
JM
1114 * semantics.c (finish_non_static_data_member): In diagnostic, give
1115 error at point of use and note at point of declaration.
1116
a546927c
JM
1117 PR c++/63320
1118 PR c++/60463
1119 PR c++/60755
1120 * lambda.c (maybe_resolve_dummy, lambda_expr_this_capture): Handle
1121 not finding 'this'.
1122
05424ee6
PC
11232014-09-22 Paolo Carlini <paolo.carlini@oracle.com>
1124
1125 PR c++/62219
1126 * pt.c (check_default_tmpl_args): Check LAMBDA_FUNCTION_P.
1127
aed67566
JM
11282014-09-22 Jason Merrill <jason@redhat.com>
1129
1130 * decl.c (poplevel): Don't warn about unused vars in template scope.
1131 * error.c (dump_decl): Handle variable templates.
1132
1dc7b1f2
JM
11332014-09-20 Jason Merrill <jason@redhat.com>
1134
1135 PR c++/62017
1136 * decl.c (begin_destructor_body): Only clobber the as-base part of
1137 *this.
1138
207fd212
JM
11392014-09-19 Jason Merrill <jason@redhat.com>
1140
e2254932
JM
1141 PR c++/61392
1142 * mangle.c (write_expression): Use unresolved-name mangling for
1143 DR850 case.
1144
207fd212
JM
1145 PR c++/61465
1146 * call.c (convert_like_real) [ck_identity]: Call mark_rvalue_use
1147 after pulling out an element from a CONSTRUCTOR.
1148
bce16b88
JJ
11492014-09-18 Jakub Jelinek <jakub@redhat.com>
1150
1151 PR c++/63248
1152 * semantics.c (finish_omp_clauses): Don't call cp_omp_mappable_type
1153 on type of type dependent expressions, and don't call it if
1154 handle_omp_array_sections has kept TREE_LIST because something
1155 was type dependent.
1156 * pt.c (tsubst_expr) <case OMP_TARGET, case OMP_TARGET_DATA>:
1157 Use keep_next_level, begin_omp_structured_block and
1158 finish_omp_structured_block instead of push_stmt_list and
1159 pop_stmt_list.
1160
abce9208
PC
11612014-09-18 Paolo Carlini <paolo.carlini@oracle.com>
1162
1163 PR c++/62232
1164 * class.c (finish_struct_1): Do not -Wnon-virtual-dtor warn
1165 for final class types.
1166
e9305042
JM
11672014-09-15 Jason Merrill <jason@redhat.com>
1168
1169 * pt.c (lookup_template_class_1): Splice out abi_tag attribute if
1170 necessary. Call inherit_targ_abi_tags here.
1171 * class.c (check_bases_and_members): Not here.
1172 (inherit_targ_abi_tags): Check CLASS_TYPE_P.
1173 * cp-tree.h: Declare inherit_targ_abi_tags.
1174
6a3d8ef0
VV
11752014-09-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1176
1177 Do not diagnose lambda default arguments in c++14 modes.
1178 * parser.c (cp_parser_lambda_declarator_opt): Make the pedwarn
1179 conditional.
1180
717c4789
JJ
11812014-09-15 Jakub Jelinek <jakub@redhat.com>
1182
1183 * Make-lang.in (check_g++_parallelize): Change to just an upper bound
1184 number.
1185
05f30b86
MP
11862014-09-13 Marek Polacek <polacek@redhat.com>
1187
1188 PR c++/60862
1189 * parser.c (cp_parser_postfix_expression) <case CPP_OPEN_PAREN>: Set
1190 location of a call expression.
1191
4ee28eb7
JM
11922014-09-11 Jason Merrill <jason@redhat.com>
1193
1194 PR c++/63201
1195 * decl.c (start_decl): Handle specialization of member variable
1196 template.
1197 * pt.c (check_explicit_specialization): Adjust error.
1198
450bfd7d
PC
11992014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
1200
1201 PR c++/61489
1202 * typeck2.c (process_init_constructor_record): Do not warn about
1203 missing field initializer if EMPTY_CONSTRUCTOR_P (init).
1204
c9e8561e
JM
12052014-09-11 Jason Merrill <jason@redhat.com>
1206
1207 PR c++/63139
1208 * pt.c (tsubst_pack_expansion): Simplify substitution into T....
1209 (tsubst): Don't throw away PACK_EXPANSION_EXTRA_ARGS.
1210
ca78482d
JM
12112014-09-10 Jason Merrill <jason@redhat.com>
1212
1213 PR c++/61659
1214 * decl.c (grokfndecl): Don't set DECL_COMDAT on static inlines.
1215 (duplicate_decls, start_decl): Likewise.
1216 * pt.c (check_explicit_specialization): Likewise.
1217 (push_template_decl_real): Or static templates.
1218
cb303719
JM
12192014-09-08 Jason Merrill <jason@redhat.com>
1220
8591575f
JM
1221 * typeck.c (build_class_member_access_expr): Move
1222 -Winvalid-offsetof code...
1223 * semantics.c (finish_offsetof): ...here.
1224 * parser.c (cp_parser_builtin_offsetof): Remember the location of
1225 the type argument.
1226 * pt.c (tsubst_copy_and_build) [OFFSETOF_EXPR]: Preserve it.
1227
cb303719
JM
1228 PR c++/62255
1229 * pt.c (instantiate_decl): Handle recursive instantiation of
1230 static data member.
1231
ed23bf8b
JM
12322014-09-05 Jason Merrill <jason@redhat.com>
1233
1234 PR c++/62659
1235 * semantics.c (potential_constant_expression_1): Handle un-folded
1236 pointer to member constants.
1237
382995f5
MT
12382014-09-04 Markus Trippelsdorf <markus@trippelsdorf.de>
1239
1240 PR ipa/61659
1241 * decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on
1242 newdecl, not olddecl.
1243
cec362c9
PC
12442014-09-02 Paolo Carlini <paolo.carlini@oracle.com>
1245
1246 DR 1453
1247 * class.c (check_field_decls): A class of literal type cannot have
1248 volatile non-static data members and base classes.
1249 (explain_non_literal_class): Update.
1250
9a771876
JJ
12512014-09-02 Jakub Jelinek <jakub@redhat.com>
1252 Balaji V. Iyer <balaji.v.iyer@intel.com>
1253 Igor Zamyatin <igor.zamyatin@intel.com>
1254
1255 * cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition
1256 simplified.
1257 * parser.c (cp_parser_cilk_for): New function.
1258 (cp_parser_cilk_grainsize): Likewise.
1259 (cp_parser_statement): Added RID_CILK_FOR case.
1260 (cp_parser_omp_for_cond): Added CILK_FOR check.
1261 (cp_parser_omp_for_loop_init): Change function argument to accept
1262 tree_code instead just a bool flag; change the check to use that
1263 tree_code; check for initialization declaration in case of Cilk_for.
1264 (cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR;
1265 changed call to cp_parser_omp_for_loop_init according new arguments'
1266 list.
1267 (cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
1268 * pt.c (tsubst_expr): Added CILK_FOR case.
1269 * semantics.c: Include convert.h.
1270 (finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR
1271 case; added OMP_CLAUSE__CILK_FOR_COUNT_.
1272 (handle_omp_for_class_iterator): New argument lastp and its usage;
1273 added NE_EXPR case.
1274 (finish_omp_for): Changed call to handle_omp_for_class_iterator
1275 according new arguments' list; in case of Cilk_for save very first
1276 decl and create empty stmt_list block; use block to build correct
1277 statement tree.
1278
cbb4d6a4
JM
12792014-08-31 Jason Merrill <jason@redhat.com>
1280
1281 PR c++/62302
1282 * optimize.c (cdtor_comdat_group): Just look at the
1283 DECL_ASSEMBLER_NAME of the 'tors.
1284
d7afa673
PC
12852014-08-27 Paolo Carlini <paolo.carlini@oracle.com>
1286
1287 PR c++/52892
1288 * semantics.c (cxx_eval_call_expression): Use STRIP_NOPS on the
1289 result of cxx_eval_constant_expression.
1290
71d64cd4
JM
12912014-08-26 Jason Merrill <jason@redhat.com>
1292
1293 PR c++/58624
1294 * pt.c (tsubst_decl) [VAR_DECL]: Copy TLS model.
1295 (tsubst_copy_and_build) [VAR_DECL]: Use TLS wrapper.
1296 * semantics.c (finish_id_expression): Don't call TLS wrapper in a
1297 template.
1298
37491340
JM
12992014-08-25 Jason Merrill <jason@redhat.com>
1300
991eeb49
JM
1301 * pt.c (check_explicit_specialization): Don't complain about
1302 non-template variable.
1303 (template_for_substitution): Allow variable templates.
1304 (check_template_variable): Fix logic for member var template.
1305 * decl.c (start_decl): Don't complain about extra template header
1306 here.
1307
37491340
JM
1308 * decl.c (start_decl): Look through member variable template.
1309 * pt.c (tsubst_decl) [VAR_DECL]: Handle member variable templates.
1310 * decl2.c (grokfield): Set DECL_CONTEXT earlier on
1311 variables.
1312
985acf5a
PC
13132014-08-25 Paolo Carlini <paolo.carlini@oracle.com>
1314
1315 PR c++/34938
1316 * cp-tree.h (TFF_POINTER): Add.
1317 * cxx-pretty-print.h (pp_cxx_cv_qualifiers): Forward the third
1318 argument too.
1319 * error.c (dump_type_suffix): Actually print the const and noreturn
1320 attribute when appropriate.
1321
e4276ba5
ESR
13222014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
1323
1324 * decl.c (compute_array_index_type, grokdeclarator,
1325 undeduced_auto_decl): Change from cxx1y to cxx14.
1326 *lambda.c(add_capture()): Change error message from C++1y to C++14.
1327 * parser.c (cp_parser_unqualified_id, cp_parser_pseudo_destructor_name,
1328 cp_parser_lambda_introducer, cp_parser_lambda_declarator_opt,
1329 cp_parser_decltype, cp_parser_conversion_type_id,
1330 cp_parser_simple_type_specifier, cp_parser_type_id_1,
1331 cp_parser_template_type_arg, cp_parser_std_attribute,
1332 cp_parser_template_declaration_after_export): Ditto.
1333 * pt.c (tsubst): Ditto.
1334 * semantics.c (force_paren_expr, finish_decltype_type): Ditto.
1335 * tree.c: Change comment.
1336 * typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type,
1337 cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto.
1338
5e0231c2
JM
13392014-08-23 Jason Merrill <jason@redhat.com>
1340
1341 Allow non-constexpr variable templates.
1342 * decl2.c (note_variable_template_instantiation): New.
1343 * cp-tree.h: Declare it.
1344 * pt.c (instantiate_decl): Call it.
1345 (push_template_decl_real): Allow non-constexpr variable templates.
1346 * semantics.c (finish_id_expression): Mark the variable template
1347 instantiation as used.
1348 * mangle.c (write_mangled_name): Variable template instantiations
1349 are mangled.
1350 * parser.c (cp_parser_init_declarator): Complain about
1351 non-function implicit templates.
1352
59ea0364
MP
13532014-08-22 Marek Polacek <polacek@redhat.com>
1354
1355 PR c++/62199
1356 * parser.c (cp_parser_binary_expression): Check each LHS if it's
1357 preceded with logical not. Adjust call to
1358 warn_logical_not_parentheses.
1359
b65eff46
MLI
13602014-08-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
1361
1362 PR c++/57709
1363 * name-lookup.c (pushdecl_maybe_friend_1): Do not warn if a
1364 declaration shadows a function declaration, unless the former
1365 declares a function, pointer to function or pointer to member
1366 function, because this is a common and valid case in real-world
1367 code.
1368 * cp-tree.h (TYPE_PTRFN_P,TYPE_REFFN_P,TYPE_PTRMEMFUNC_P):
1369 Improve description.
1370
cea83a3a
JM
13712014-08-22 Jason Merrill <jason@redhat.com>
1372
1373 PR c++/62129
1374 * class.c (outermost_open_class): Fix logic.
1375 * decl.c (complete_vars): Fix logic.
1376
2d7d7f0f
JM
13772014-08-22 Jason Merrill <jason@redhat.com>
1378
1379 PR c++/62129
1380 * class.c (outermost_open_class): New.
1381 * cp-tree.h: Declare it.
1382 * decl.c (maybe_register_incomplete_var): Use it.
1383 (complete_vars): Handle any constant variable.
1384 * expr.c (cplus_expand_constant): Handle CONSTRUCTOR.
1385
671a475e
IZ
13862014-08-22 Igor Zamyatin <igor.zamyatin@intel.com>
1387
1388 PR other/62008
1389 * cp-array-notation.c (build_array_notation_ref): Added correct
1390 handling of case with incorrect array.
1391
18767f65
MLI
13922014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
1393
1394 PR fortran/44054
1395 * error.c (cp_diagnostic_finalizer): Delete.
1396 (init_error): Do not set diagnostic_finalizer here.
1397
04159acf
MP
13982014-08-19 Marek Polacek <polacek@redhat.com>
1399
1400 PR c++/62153
1401 * call.c (build_new_op_1): Remember the type of arguments for
1402 a comparison. If either operand of a comparison is a boolean
1403 expression, call maybe_warn_bool_compare.
1404
ad035db8
JM
14052014-08-19 Jason Merrill <jason@redhat.com>
1406
27093ee4
JM
1407 PR tree-optimization/62091
1408 * decl2.c (decl_needed_p): Return true for virtual functions when
1409 devirtualizing.
1410
ad035db8
JM
1411 PR lto/53808
1412 PR c++/61659
1413 * decl.c (maybe_commonize_var): Don't use DECL_COMDAT to trigger
1414 comdat_linkage.
1415
010ea288
GP
14162014-08-19 Gerald Pfeifer <gerald@pfeifer.com>
1417
1418 * class.c (contains_empty_class_p): Remove.
1419
726d48b0
PC
14202014-08-18 Paolo Carlini <paolo.carlini@oracle.com>
1421
1422 * parser.c (cp_parser_expression): Add default arguments.
1423 (cp_parser_primary_expression, cp_parser_postfix_expression,
1424 cp_parser_array_notation, cp_parser_postfix_open_square_expression,
1425 cp_parser_unary_expression, cp_parser_direct_new_declarator,
1426 cp_parser_question_colon_clause, cp_parser_assignment_operator_opt,
1427 cp_parser_lambda_body, cp_parser_expression_statement,
1428 cp_parser_condition, cp_parser_c_for, cp_parser_range_for,
1429 cp_parser_iteration_statement, cp_parser_jump_statement,
1430 cp_parser_decltype_expr, cp_parser_noexcept_specification_opt,
1431 cp_parser_asm_operand_list, cp_parser_objc_message_receiver,
1432 cp_parser_objc_synchronized_statement, cp_parser_objc_throw_statement,
1433 cp_parser_omp_var_list_no_open, cp_parser_omp_clause_num_threads,
1434 cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
1435 cp_parser_omp_clause_linear, cp_parser_omp_clause_device,
1436 cp_parser_omp_atomic, cp_parser_omp_for_loop_init,
1437 cp_parser_omp_for_loop, cp_parser_omp_declare_reduction_exprs,
1438 cp_parser_transaction_expression): Adjust.
1439
5802281e
JM
14402014-08-15 Jason Merrill <jason@redhat.com>
1441
2b14490e
JM
1442 PR c++/61566
1443 * pt.c (lookup_template_class_1): Revert recent change.
1444 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Revert recent change.
1445
5802281e
JM
1446 PR c++/61566
1447 * pt.c (instantiate_class_template_1): Ignore lambda on
1448 CLASSTYPE_DECL_LIST.
1449 (push_template_decl_real): A lambda is not primary.
1450 (lookup_template_class_1): Don't look for a lambda partial
1451 instantiation.
1452 * lambda.c (maybe_add_lambda_conv_op): Distinguish between being
1453 currently in a function and the lambda living in a function.
1454 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): False for lambda.
1455
33cb682b
JM
14562014-08-15 Richard Biener <rguenther@suse.de>
1457 Jason Merrill <jason@redhat.com>
1458
1459 PR bootstrap/62077
1460 * tree.c (build_min_array_type, set_array_type_canon): Split out...
1461 (build_cplus_array_type): ...from here. Only call build_array_type
1462 for main variants.
1463
8add4868
PC
14642014-08-15 Paolo Carlini <paolo.carlini@oracle.com>
1465
1466 PR c++/62072
1467 Revert:
1468 2014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
1469
1470 DR 1584
1471 PR c++/57466
1472 * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
1473 cv-qualifiers of function types.
1474
598fc085
MLI
14752014-08-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1476
1477 * call.c (build_conditional_expr_1): Use OPT_Wextra in warning.
1478
aa0a659c
PC
14792014-08-14 Paolo Carlini <paolo.carlini@oracle.com>
1480
1481 * typeck.c (composite_pointer_type, cxx_sizeof_or_alignof_type,
1482 cp_build_array_ref, cp_build_function_call_vec): When a
1483 pedwarn is suppressed under SFINAE, return error_mark_node.
1484
1485 * typeck.c (cxx_sizeof_or_alignof_type): Fix complain &
1486 tf_warning_or_error, where complain is a bool, glitch.
1487
5d9607f0
VV
14882014-08-14 Ville Voutilainen <ville.voutilainen@gmail.com>
1489
1490 PR c++/62101
1491 * decl.c (grokdeclarator): Move the check for friend initializers..
1492 * decl2.c (grokfield) ..here. Postpone early return for friends
1493 until after the initializer check.
1494
a62dbaa4
PC
14952014-08-14 Paolo Carlini <paolo.carlini@oracle.com>
1496
1497 PR c++/54377
1498 * pt.c (coerce_template_parms): Improve error message vs default
1499 arguments.
1500
215acd2b
PC
15012014-08-14 Paolo Carlini <paolo.carlini@oracle.com>
1502
1503 * parser.c (cp_parser_init_declarator): Remove redundant check of
1504 decl_specifiers->type.
1505
d2f2e467
JM
15062014-08-13 Jason Merrill <jason@redhat.com>
1507
1508 * call.c (build_x_va_arg): Support passing non-POD through ....
1509 (convert_arg_to_ellipsis): Likewise.
1510
a3fea1ef
AS
15112014-08-13 Andrew Sutton <andrew.n.sutton@gmail.com>
1512
215acd2b 1513 * pt.c (lookup_template_variable): Make dependent variable templates
a3fea1ef
AS
1514 have unknown type.
1515
b383fcb4
PC
15162014-08-13 Paolo Carlini <paolo.carlini@oracle.com>
1517
1518 * parser.c (cp_parser_elaborated_type_specifier): Handle
1519 specially cp_parser_template_id returning a BASELINK.
1520
15212014-08-13 Paolo Carlini <paolo.carlini@oracle.com>
1522
1523 * parser.c (cp_parser_diagnose_invalid_type_name,
1524 cp_parser_make_typename_type): Remove scope parameter.
1525 (cp_parser_parse_and_diagnose_invalid_type_name,
1526 cp_parser_elaborated_type_specifier): Adjust calls.
1527
253e3404
VV
15282014-08-12 Ville Voutilainen <ville.voutilainen@gmail.com>
1529
1530 Reject virt-specifiers on friends and member templates
1531 * friend.c (do_friend): Diagnose virt-specifiers.
1532 * pt.c (push_template_decl_real): Diagnose virt-specifiers.
1533
6a6bdc3d
PC
15342014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
1535
1536 * typeck2.c (check_narrowing): Add tsubst_flags_t parameter, change
1537 return type to bool; in C++11 for constants give errors, not pedwarns.
1538 * cp-tree.h (check_narrowing): Adjust declaration.
1539 * call.c (convert_like_real): Update calls.
1540 * semantics.c (finish_compound_literal): Likewise.
1541
a6b0c7bc
JM
15422014-08-08 Jason Merrill <jason@redhat.com>
1543
1544 * pt.c (lookup_template_class_1): Copy abi_tag.
1545
322d490e
KT
15462014-08-08 Kai Tietz <ktietz@redhat.com>
1547
1548 * semantics.c (expand_or_defer_fn_1): Check for keep-inline-dllexport
1549 that we operate on a true inline.
1550
9f25a338
TS
15512014-08-07 Trevor Saunders <tsaunders@mozilla.com>
1552
1553 * class.c, cp-gimplify.c, decl.c, decl2.c, error.c, method.c,
1554 optimize.c, pt.c, semantics.c: Remove includes of pointer-set.h.
1555
2d45625f
PC
15562014-08-07 Paolo Carlini <paolo.carlini@oracle.com>
1557
1558 PR c++/51312
1559 * decl.c (build_enumerator): Handle class types with conversion
1560 operators via perform_implicit_conversion_flags and
1561 build_expr_type_conversion.
1562
1563 * cvt.c (build_expr_type_conversion): Replace pair of errors
1564 with error + inform.
1565
2e8e74c0
JM
15662014-08-07 Jason Merrill <jason@redhat.com>
1567
4a53d90b
JM
1568 PR c++/62043
1569 * parser.c (c_parse_file): Change sorry to fatal_error.
1570
2e8e74c0
JM
1571 PR c++/61959
1572 * semantics.c (cxx_eval_bare_aggregate): Handle POINTER_PLUS_EXPR.
1573
39c8aaa4
TS
15742014-08-07 Trevor Saunders <tsaunders@mozilla.com>
1575
1576 * cp-tree.h, pt.c: Use hash_map instead of pointer_map.
1577
5fb4d142
JM
15782014-08-06 Jason Merrill <jason@redhat.com>
1579
c0014b07
JM
1580 * init.c (build_vec_init): Fix constant initialization of
1581 trailing elements.
1582 (build_value_init_noctor): Call maybe_constant_init.
1583 * semantics.c (maybe_constant_init): See through EXPR_STMT and
1584 conversion to void.
1585
ced2fb08
JM
1586 PR c++/60417
1587 * init.c (build_vec_init): Reorganize earlier change a bit.
1588
5fb4d142
JM
1589 PR c++/61994
1590 * init.c (build_vec_init): Leave atype an ARRAY_TYPE
1591 if we're just returning an INIT_EXPR.
1592
d06a312a
JM
15932014-08-06 Jason Merrill <jason@redhat.com>
1594 Braden Obrzut <admin@maniacsvault.net>
1595
1596 * pt.c (check_explicit_specialization): Don't test
1597 DECL_DECLARED_INLINE_P for a variable template.
1598
81caef48
PC
15992014-08-06 Paolo Carlini <paolo.carlini@oracle.com>
1600
1601 PR c++/43906
1602 * typeck.c (cp_build_binary_op): Extend to more cases the
1603 -Waddress warning.
1604
4a4f287d
BO
16052014-08-01 Braden Obrzut <admin@maniacsvault.net>
1606
1607 Implement constexpr variable templates
1608 * decl.c (grokvardecl): Handle specializations of variable templates.
1609 (grokdeclarator): Handle variable template id expressions and NULL_TREE
1610 return from grokvardecl.
1611 * decl2.c (check_member_template): Allow declaration of template member
1612 variables.
1613 * parser.c (cp_parser_template_id): Build a TEMPLATE_ID_EXPR for
1614 variable templates.
1615 * pt.c (check_template_variable): Accept variable temploids at
1616 non-class scope.
1617 (push_template_decl_real): The current instantiation of a template
1618 can be a VAR_DECL.
1619 (determine_specialization): Accept variable templates.
1620 (check_explicit_specialization): Handle and check for malformed
1621 variable template specializations.
1622 (lookup_template_variable): New.
1623 (tsubst_decl): Handle variable template specializations.
1624 (do_decl_instantiation): Handle template variables.
1625 (instantiate_decl): Handle template variables.
1626 * semantics.c (finish_template_variable): New.
1627 (finish_id_expression): Instantiate variable templates.
1628 * cp-tree.h (variable_template_p): New.
1629
e83a4a2e
PC
16302014-08-02 Paolo Carlini <paolo.carlini@oracle.com>
1631
1632 PR c++/15339
1633 * decl.c (check_redeclaration_no_default_args): New.
1634 (duplicate_decls): Use it, handle default arguments
1635 in redeclarations of function templates.
1636
b787e7a2
TS
16372014-08-02 Trevor Saunders <tsaunders@mozilla.com>
1638
1639 * optimize.c, semantics.c: Use hash_map instead of pointer_map.
1640
6e2830c3
TS
16412014-08-02 Trevor Saunders <tsaunders@mozilla.com>
1642
1643 * class.c, cp-gimplify.c, cp-tree.h, decl.c, decl2.c, error.c,
1644 method.c, name-lookup.c, pt.c, semantics.c, tree.c: Use hash_set
1645 instead of pointer_set.
1646
3bc63227
JM
16472014-08-01 Jason Merrill <jason@redhat.com>
1648
1649 PR c++/60417
1650 * init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on
1651 init-list for trailing elements.
1652 * typeck2.c (process_init_constructor_array): Likewise.
1653
e1d9e3db
PC
16542014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
1655
1656 DR 217 again
1657 * decl.c (duplicate_decls): Handle static member functions too.
1658
fba8a9e3
IZ
16592014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
1660
1661 * cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint
1662 in error output.
1663
ffebf50f
IZ
16642014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
1665
1666 PR other/61963
1667 * parser.c (cp_parser_array_notation): Added check for array_type.
1668
fba8a9e3 16692014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
a7ee52fb
IZ
1670
1671 PR middle-end/61455
1672 * cp-array-notation.c (expand_array_notation_exprs): Handling of
1673 DECL_EXPR improved. Changed handling for INIT_EXPR.
1674
cd916532
PC
16752014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
1676
1677 * pt.c (lookup_template_class_1): Use DECL_TYPE_TEMPLATE_P.
1678
944fa280
JJ
16792014-08-01 Jakub Jelinek <jakub@redhat.com>
1680
1681 * cp-gimplify.c (cp_genericize_r): For -fsanitize=null and/or
1682 -fsanitize=alignment call ubsan_maybe_instrument_reference
1683 for casts to REFERENCE_TYPE and ubsan_maybe_instrument_member_call
1684 for calls to member functions.
1685
b4dfdc11
MG
16862014-07-31 Marc Glisse <marc.glisse@inria.fr>
1687
1688 PR c++/60517
1689 * typeck.c (maybe_warn_about_returning_address_of_local): Return
1690 whether it is returning the address of a local variable.
1691 (check_return_expr): Return 0 instead of the address of a local
1692 variable.
1693
e00f67c6
JM
16942014-07-30 Jason Merrill <jason@redhat.com>
1695
1696 PR lto/53808
1697 PR c++/61659
1698 * pt.c (push_template_decl_real): Don't set DECL_COMDAT on friends.
1699
5b9802c4
PC
17002014-07-30 Paolo Carlini <paolo.carlini@oracle.com>
1701
1702 PR c++/57397
1703 * pt.c (unify_arity): Add boolean parameter.
1704 (unify_too_few_arguments): Likewise.
1705 (type_unification_real): Diagnose correctly insufficient
1706 arguments in the presence of trailing variadic parameters;
1707 deducing multiple trailing packs as empty is fine.
1708
d5d0ed2d
JM
17092014-07-30 Jason Merrill <jason@redhat.com>
1710
a41844e5
JM
1711 PR c++/61659
1712 PR c++/61687
1713 Revert:
1714 * decl2.c (mark_all_virtuals): New variable.
1715 (maybe_emit_vtables): Check it instead of flag_devirtualize.
1716 (cp_write_global_declarations): Set it and give helpful diagnostic
1717 if it introduces errors.
1718 * class.c (finish_struct_1): Check it.
1719
d5d0ed2d
JM
1720 PR lto/53808
1721 PR c++/61659
1722 * pt.c (push_template_decl_real): Set DECL_COMDAT on templates.
1723 (check_explicit_specialization): Clear it on specializations.
1724 * decl.c (duplicate_decls, start_decl): Likewise.
1725 (grokmethod, grokfndecl): Set DECL_COMDAT on inlines.
1726 * method.c (implicitly_declare_fn): Set DECL_COMDAT. Determine
1727 linkage after setting the appropriate flags.
1728 * tree.c (decl_linkage): Don't check DECL_COMDAT.
1729 * decl2.c (mark_needed): Mark clones.
1730 (import_export_decl): Not here.
1731
37545fa7
ESR
17322014-07-25 Edward Smith-Rowland <3dw4rd@verizon.net>
1733
1734 Implement N4051 - Allow typename in a template template parameter
1735 * parser.c (cp_parser_type_parameter_key): New funtion;
1736 (cp_parser_token_is_type_parameter_key): Ditto;
1737 (cp_parser_type_parameter): Look for type-parameter-key for all versions
1738 but pedwarn for less than cxx1z.
1739
835dee55
PC
17402014-07-17 Paolo Carlini <paolo.carlini@oracle.com>
1741
1742 PR c++/50961
1743 * call.c (standard_conversion): Use resolve_nondeduced_context
1744 for type_unknown_p (EXPR) && TREE_CODE (TO) == BOOLEAN_TYPE.
1745
cfe309a1
PC
17462014-07-17 Paolo Carlini <paolo.carlini@oracle.com>
1747
1748 PR c++/61804
1749 * parser.c (cp_parser_tokens_start_cast_expression): Return -1
1750 for '++' and '--'.
1751
0090caca
JM
17522014-07-15 Jason Merrill <jason@redhat.com>
1753
1b60eaed
JM
1754 PR c++/61811
1755 * decl2.c (maybe_emit_vtables): Return true for -fuse-all-virtuals.
1756
0090caca
JM
1757 PR c++/60848
1758 PR c++/61723
1759 * call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO.
1760 * class.c (finish_struct): Reject invalid definition of
1761 std::initializer_list.
1762
603a0084
PC
17632014-07-15 Paolo Carlini <paolo.carlini@oracle.com>
1764
1765 * call.c (convert_like_real): Call print_z_candidate and inform only
1766 if permerror returns true.
1767
ad115a3c
JH
17682014-07-14 Jan Hubicka <hubicka@ucw.cz>
1769
1770 * class.c (build_clone): Do not clear assembler names of
1771 templates.
1772 * decl.c (cp_tree_node_structure): Add TEMPLATE_DECL.
1773 * cp-objcp-common.c (cp_tree_size): Add TEMPLATE_DECL
1774 as a special case return sizeof (struct tree_decl_non_common)
1775 for other decls.
1776 (cp_common_init_ts): Do not initialize NAMESPACE_DECL;
1777 initialize TEMPLATE_DECL as MARK_TS_DECL_COMMON.
1778 * cp/cp-tree.h (tree_template_decl): New structure.
1779 (cp_tree_node_structure_enum): Add TS_CP_TEMPLATE_DECL.
1780 (union cp_lang_tree_node): Add template_decl.
1781 (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT): Update.
1782
d110c52e
JM
17832014-07-14 Jason Merrill <jason@redhat.com>
1784
1785 PR c++/61445
1786 PR c++/56947
1787 * pt.c (instantiate_decl): Don't check defer_ok for local class
1788 members.
1789
b108f48f
JJ
17902014-07-14 Jakub Jelinek <jakub@redhat.com>
1791
1792 PR middle-end/61294
1793 * cp-tree.h (LITERAL_ZERO_P): Define.
1794 * parser.c (cp_parser_parenthesized_expression_list): Add
1795 want_literal_zero_p argument, if true, for literal zeros
1796 insert INTEGER_CSTs with LITERAL_ZERO_P flag set.
1797 (cp_parser_postfix_expression): Adjust
1798 cp_parser_parenthesized_expression_list caller, handle
1799 -Wmemset-transposed-args.
1800 (literal_zeros): New variable.
1801
5806f771
JM
18022014-07-13 Jason Merrill <jason@redhat.com>
1803
e89ff446
JM
1804 PR c++/58511
1805 * semantics.c (is_instantiation_of_constexpr): Return true for
1806 defaulted functions, too.
1807 (explain_invalid_constexpr_fn): Only use
1808 explain_implicit_non_constexpr if !DECL_DECLARED_CONSTEXPR_P.
1809 * method.c (explain_implicit_non_constexpr): Pass
1810 DECL_INHERITED_CTOR_BASE to explain_implicit_non_constexpr.
1811
1ea3b987
JM
1812 PR c++/58611
1813 * decl.c (check_initializer): Don't finish_compound_literal
1814 on erroneous constexpr init.
1815
22c6ea00
JM
1816 PR c++/58612
1817 * tree.c (bot_replace): Only replace a dummy 'this' parm.
1818
7ce5ae45
JM
1819 PR c++/60628
1820 * decl.c (create_array_type_for_decl): Only check for auto once.
1821
5806f771
JM
1822 PR c++/58636
1823 * call.c (build_list_conv): Don't try to build a list of references.
1824
c6abdc36
ESR
18252014-07-13 Edward Smith-Rowland <3dw4rd@verizon.net>
1826
1827 PR C++/60209 - Declaration of user-defined literal operator cause error
185b2278 1828 * parser.c (cp_parser_operator): Fold treatment of strings
c6abdc36 1829 and user-defined string literals. Use the full string parser.
185b2278 1830 (cp_parser_string_literal): Add flag to not look for literal operator.
c6abdc36 1831
0eb5f158
JM
18322014-07-11 Jason Merrill <jason@redhat.com>
1833
1834 PR c++/22434
1835 PR c++/61288
1836 * call.c (build_conditional_expr_1): Avoid reading freed memory.
1837
2410819b
PC
18382014-07-11 Paolo Carlini <paolo.carlini@oracle.com>
1839
1840 PR c++/53159
1841 * call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING
1842 into convflags.
1843 * decl.c (check_initializer): Don't call check_narrowing here,
1844 set LOOKUP_NO_NARROWING.
1845 * typeck2.c (digest_init_r): Likewise.
1846
c0221884
JM
18472014-07-10 Jason Merrill <jason@redhat.com>
1848
a25b76d8
JM
1849 PR c++/61661
1850 * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR.
1851
c0221884
JM
1852 PR c++/61659
1853 PR c++/61687
1854 * decl2.c (mark_all_virtuals): New variable.
1855 (maybe_emit_vtables): Check it instead of flag_devirtualize.
1856 (cp_write_global_declarations): Set it and give helpful diagnostic
1857 if it introduces errors.
1858 * class.c (finish_struct_1): Check it.
1859 * decl.c (grokdeclarator): Clear virtualp after 'virtual auto' error.
1860
2ec99953
PC
18612014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
1862
1863 PR c++/60686
1864 * decl.c (grokdeclarator): Adjust error messages about 'explicit'
1865 outside class declaration, in friend declaration, and neither on
1866 constructor nor conversion operator.
1867
84b64170
PC
18682014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
1869
1870 DR 1584
1871 PR c++/57466
1872 * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
1873 cv-qualifiers of function types.
1874
f47910b5
AS
18752014-07-09 Andrew Sutton <andrew.n.sutton@gmail.com>
1876 Paolo Carlini <paolo.carlini@oracle.com>
1877
1878 PR c++/59361
1879 * parser.c (cp_parser_tokens_start_cast_expression): Return 0 for
1880 CPP_ELLIPSIS too.
1881
8895d9a1
PC
18822014-07-07 Paolo Carlini <paolo.carlini@oracle.com>
1883
1884 * class.c (check_for_override): Wrap the 'final' and 'override'
1885 keywords in %< and %>.
1886
773ec47f
MP
18872014-07-06 Marek Polacek <polacek@redhat.com>
1888
1889 PR c/6940
1890 * cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
1891 * decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
1892 * typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
1893 function parameter.
1894
bca23ca2
PC
18952014-07-02 Paolo Carlini <paolo.carlini@oracle.com>
1896
1897 * pt.c (convert_template_argument): Use inform instead of error in
1898 three places.
1899
9378b06e
ESR
19002014-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
1901
1902 PR c++/58781
1903 PR c++/60249
1904 PR c++/59867
7086e4b6
PC
1905 * parser.c (cp_parser_userdef_string_literal): Take a tree
1906 not a cp_token*.
1907 (cp_parser_string_literal): Don't hack the token stream.
9378b06e 1908
1d7e2ec7
JM
19092014-06-30 Jason Merrill <jason@redhat.com>
1910
5796bf34
JM
1911 PR c++/61659
1912 PR lto/53808
1913 * decl2.c (maybe_emit_vtables): Mark all vtable entries if
1914 devirtualizing.
1915 * init.c (build_vtbl_address): Don't mark destructor.
1916 * class.c (finish_struct_1): Add all classes to keyed_classes
1917 if devirtualizing.
1918
f36ae628
JM
1919 PR c++/61647
1920 * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
1921
cae7c960
JM
1922 PR c++/61566
1923 * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.
1924
1d7e2ec7
JM
1925 * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
1926 TYPE_BINFO or TYPE_LANG_SPECIFIC.
1927 * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
1928 (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
1929 * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
1930 * pt.c (unify): Also check whether the argument is a PMF.
1931
17adeaa7
PC
19322014-06-30 Paolo Carlini <paolo.carlini@oracle.com>
1933
1934 PR c++/54891
1935 * parser.c (cp_parser_tokens_start_cast_expression): In C++11
1936 a '[' can also start a primary-expression.
1937 (cp_parser_cast_expression): Parse a cast-expression only tentatively
1938 when cp_parser_tokens_start_cast_expression returns -1.
1939
71d1add3
JM
19402014-06-30 Jason Merrill <jason@redhat.com>
1941
e8b27b08
JM
1942 PR c++/61539
1943 * pt.c (unify_one_argument): Type/expression mismatch just causes
1944 deduction failure.
1945
71d1add3
JM
1946 * semantics.c (simplify_aggr_init_expr): Remove remnants of
1947 2014-04-11 change.
1948
6a7253a4
MP
19492014-06-30 Marek Polacek <polacek@redhat.com>
1950
1951 * cp-gimplify.c (cp_genericize): Don't instrument returns if the
1952 function has no_sanitize_undefined attribute.
1953 * decl.c (compute_array_index_type): Don't instrument VLAs if the
1954 function has no_sanitize_undefined attribute.
1955
5e88a8f4
IZ
19562014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
1957
1958 PR middle-end/57541
1959 * cp-array-notation.c (expand_sec_reduce_builtin):
1960 Check that bultin argument is correct.
1961 * call.c (build_cxx_call): Check for 0 arguments in builtin call.
1962
fb682f94
JW
19632014-06-28 Jonathan Wakely <jwakely@redhat.com>
1964
1965 DR 1579
1966 PR c++/58051
1967 * typeck.c (check_return_expr): Lookup as an rvalue even when the
1968 types aren't the same.
1969
1ed5f1d3
JM
19702014-06-27 Jason Merrill <jason@redhat.com>
1971
1972 PR c++/61433
1973 * error.c (dump_template_bindings): Don't tsubst in a clone.
1974
04d375e6
PC
19752014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
1976
1977 PR c++/61614
1978 * semantics.c (finish_compound_literal): Revert r204228.
1979
fcbbf14a
PC
19802014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
1981
1982 * parser.c (cp_parser_compound_literal_p): New.
1983 (cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it.
1984
daa04b0a
JM
19852014-06-26 Jason Merrill <jason@redhat.com>
1986
7fb3df5e
JM
1987 * parser.c (cp_parser_for_init_statement): Change range-for error
1988 to pedwarn.
1989
daa04b0a
JM
1990 N3994 Ranged-based for-loops: The Next Generation
1991 * parser.c (cp_lexer_nth_token_is): New.
1992 (cp_parser_for_init_statement): Allow "for (id : init)".
1993
08eedf75
TJ
19942014-06-26 Teresa Johnson <tejohnson@google.com>
1995
1996 * class.c (dump_class_hierarchy): Use saved dump files.
1997 (dump_vtable): Ditto.
1998 (dump_vtt): Ditto.
1999
2626fc49
AB
20002014-06-26 Adam Butcher <adam@jessamine.co.uk>
2001
2002 PR c++/61537
2003 * parser.c (cp_parser_elaborated_type_specifier): Only consider template
2004 parameter lists outside of function parameter scope.
2005
c69c2835
PC
20062014-06-25 Paolo Carlini <paolo.carlini@oracle.com>
2007
2008 DR 178
2009 PR c++/49132
2010 * typeck2.c (process_init_constructor_record): Do not complain about
2011 uninitialized const members, because within aggregate-initialization,
2012 members without explicit initializers are value-initialized.
2013
da6f124d
JJ
20142014-06-25 Jakub Jelinek <jakub@redhat.com>
2015
2016 * semantics.c (finish_omp_clauses): Make sure
2017 OMP_CLAUSE_LINEAR_STEP has correct type.
2018
aaf8a23e
JH
20192014-06-24 Jan Hubicka <hubicka@ucw.cz>
2020
2021 * class.c (check_methods, create_vtable_ptr, determine_key_method,
c69c2835
PC
2022 add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by
2023 FUNCTION_DECL check.
aaf8a23e
JH
2024 * cp-tree.h (lang_decl_ns): Add ns_using and ns_users.
2025 (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns.
2026 (DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL.
2027 (DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT.
2028
d1307360
PC
20292014-06-24 Paolo Carlini <paolo.carlini@oracle.com>
2030
2031 PR c++/33972
2032 * decl.c (grokdeclarator): Do not early check for operator-function-id
2033 as non-function.
2034
c203e8a7
TS
20352014-06-24 Trevor Saunders <tsaunders@mozilla.com>
2036
2037 * class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
2038 Adjust.
2039
56ad0e38
JJ
20402014-06-24 Jakub Jelinek <jakub@redhat.com>
2041
2042 * parser.c (cp_parser_omp_for_loop): For
2043 #pragma omp parallel for simd move lastprivate clause from parallel
2044 to for rather than simd.
2045
e7402b3a
PC
20462014-06-23 Paolo Carlini <paolo.carlini@oracle.com>
2047
2048 DR 577
2049 PR c++/33101
2050 * decl.c (grokparms): Accept a single parameter of type 'void'.
2051
e2498d54
JM
20522014-06-20 Jason Merrill <jason@redhat.com>
2053
caa40bc0
JM
2054 PR c++/59296
2055 * call.c (add_function_candidate): Avoid special 'this' handling
2056 if we have a ref-qualifier.
2057
e2498d54
JM
2058 PR c++/61556
2059 * call.c (build_over_call): Call build_this in template path.
2060
c7744b8e
JM
20612014-06-19 Jason Merrill <jason@redhat.com>
2062
2063 PR c++/59296
2064 * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
2065
e3dc80be
JM
20662014-06-18 Jason Merrill <jason@redhat.com>
2067
74f4bbb7
JM
2068 PR c++/59296
2069 * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
2070 ref-qualifier handling.
2071
e3dc80be
JM
2072 PR c++/61507
2073 * pt.c (resolve_overloaded_unification): Preserve
2074 ARGUMENT_PACK_EXPLICIT_ARGS.
2075
f014c653
JJ
20762014-06-18 Jakub Jelinek <jakub@redhat.com>
2077
2078 * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
2079 argument.
2080 * cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
2081
5a96dac6
JM
20822014-06-17 Jason Merrill <jason@redhat.com>
2083
2084 PR c++/60605
2085 * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
2086
9a9b31a2 20872014-06-15 Jason Merrill <jason@redhat.com>
949bd6c8 2088
6e0681b7
JM
2089 PR c++/61488
2090 * pt.c (check_valid_ptrmem_cst_expr): Fix for template context.
2091
949bd6c8
JM
2092 PR c++/61500
2093 * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
2094
590db899
JH
20952014-06-15 Jan Hubicka <hubicka@ucw.cz>
2096
2097 * decl.c (grokvardecl): Fix pasto in previous patch.
2098
56363ffd
JH
20992014-06-15 Jan Hubicka <hubicka@ucw.cz>
2100
2101 * decl.c (duplicate_decls): Use set_decl_tls_model.
2102 (grokdeclarator): Likewise.
2103 * semantics.c (finish_id_expression): Check TLS only for
2104 static variables.
2105 (finish_omp_threadprivate): Use decl_default_tls_model.
2106 * decl2.c (get_guard): Likewise.
2107 * call.c (make_temporary_var_for_ref_to_temp): Likewise.
2108
045af2d7
PC
21092014-06-14 Paolo Carlini <paolo.carlini@oracle.com>
2110
2111 PR c++/33101
2112 * decl.c (grokparms): Improve error message about void parameters.
2113 * error.c (type_to_string): Fix aka cut off code.
2114
90d84934
JM
21152014-06-12 Jason Merrill <jason@redhat.com>
2116
62984918
JM
2117 * call.c (convert_arg_to_ellipsis): Use abi_version_crosses.
2118 * cvt.c (type_promotes_to): Likewise.
2119 * mangle.c (write_type, write_expression): Likewise.
2120 (write_name, write_template_arg): Likewise.
2121 (mangle_decl): Make alias based on flag_abi_compat_version.
2122 Emit -Wabi warning here.
2123 (finish_mangling_internal): Not here. Drop warn parm.
2124 (finish_mangling_get_identifier, finish_mangling): Adjust.
2125 (mangle_type_string, mangle_special_for_type): Adjust.
2126 (mangle_ctor_vtbl_for_type, mangle_thunk): Adjust.
2127 (mangle_guard_variable, mangle_tls_init_fn): Adjust.
2128 (mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust.
2129
90d84934
JM
2130 * call.c (build_operator_new_call): Remove -fabi-version=1 support.
2131 * class.c (walk_subobject_offsets, include_empty_classes): Likewise.
2132 (layout_nonempty_base_or_field, end_of_class): Likewise.
2133 (layout_empty_base, build_base_field, layout_class_type): Likewise.
2134 (is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise.
2135 (layout_virtual_bases): Likewise.
2136 * decl.c (compute_array_index_type): Likewise.
2137 * mangle.c (write_mangled_name, write_prefix): Likewise.
2138 (write_template_prefix, write_integer_cst, write_expression): Likewise.
2139 (write_template_arg, write_array_type): Likewise.
2140 * method.c (lazily_declare_fn): Likewise.
2141 * rtti.c (get_pseudo_ti_index): Likewise.
2142 * typeck.c (comp_array_types): Likewise.
2143
f961457f
JH
21442014-06-11 Jan Hubicka <hubicka@ucw.cz>
2145
2146 * vtable-class-hierarchy.c: Update handling for section names
2147 that are no longer trees.
2148 * decl.c (duplicate_decls): Likewise.
2149
e3588987
PC
21502014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
2151
2152 PR c++/19200
2153 * parser.c (cp_parser_init_declarator): Actually pass friend_p
2154 to cp_parser_declarator.
2155
c7bb3484
PC
21562014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
2157
2158 PR c++/60265
2159 * parser.c (cp_parser_using_declaration): Handle unscoped enums.
2160 * name-lookup.c (validate_nonmember_using_decl): Adjust error
2161 message.
2162
d0ba67dc
PC
21632014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
2164
2165 PR c++/19200
2166 * parser.c (cp_parser_declarator): Add bool parameter.
2167 (cp_parser_direct_declarator): Likewise, use it.
2168 (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
2169 (cp_parser_condition, cp_parser_explicit_instantiation,
2170 cp_parser_init_declarator, cp_parser_type_id_1,
2171 cp_parser_parameter_declaration, cp_parser_exception_declaration,
2172 cp_parser_cache_defarg, cp_parser_objc_class_ivars,
2173 cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
2174 Adjust.
2175 * decl.c (grokdeclarator): Fix handling of friend declared in
2176 namespace scope (g++.dg/parse/friend10.C).
2177
e257a17c
JH
21782014-06-10 Jan Hubicka <hubicka@ucw.cz>
2179
d0ba67dc
PC
2180 * vtable-class-hierarchy.c: Use symtab_get_node (var_decl)
2181 ->implicit_section.
e257a17c
JH
2182 * optimize.c (cdtor_comdat_group): Fix handling of aliases.
2183 (maybe_clone_body): Move symbol across comdat groups.
2184 * method.c (use_thunk): Copy implicit section flag.
2185
23646391
PC
21862014-06-09 Paolo Carlini <paolo.carlini@oracle.com>
2187
2188 PR c++/22556
2189 * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
2190
24d047a3
JH
21912014-06-07 Jan Hubicka <hubicka@ucw.cz>
2192
2193 * method.c (use_thunk): Use set_decl_section_name.
2194 * optimize.c (maybe_clone_body): Use set_decl_section_name.
2195 * decl.c (duplicate_decls): Likewise.
2196 * vtable-class-hierarchy.c: Likewise.
2197
4dadc66d
PC
21982014-06-06 Paolo Carlini <paolo.carlini@oracle.com>
2199
2200 PR c++/60184
2201 * class.c (check_field_decls): In C++11 mode do not reject
2202 static data members and reference-type members in unions.
2203
40e3a2ab
JM
22042014-06-05 Jason Merrill <jason@redhat.com>
2205
2206 PR c++/43453
2207 * decl.c (check_initializer): Collapse a TREE_LIST here.
2208 * typeck2.c (store_init_value): Not here.
2209
406d3663
RB
22102014-06-05 Richard Biener <rguenther@suse.de>
2211 Paolo Carlini <paolo.carlini@oracle.com>
2212
2213 PR c++/56961
2214 * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
2215 handling of empty classes.
2216
f0f2f975
JM
22172014-06-04 Jason Merrill <jason@redhat.com>
2218
da4e26be
JM
2219 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
2220 for noexcept and thread_local, too.
2221
f0f2f975
JM
2222 PR c++/61343
2223 * decl.c (check_initializer): Maybe clear
2224 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2225
5ae98e82
RB
22262014-06-05 Richard Biener <rguenther@suse.de>
2227
2228 PR c++/61004
2229 * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
2230 warnings for accessing empty classes.
2231
742938c9
MP
22322014-06-05 Marek Polacek <polacek@redhat.com>
2233
2234 PR c/49706
2235 * parser.c (cp_parser_binary_expression): Warn when logical not is
2236 used on the left hand side operand of a comparison.
2237
82b3da6a
PC
22382014-06-04 Paolo Carlini <paolo.carlini@oracle.com>
2239
2240 PR c++/43453
2241 * typeck.c (cp_build_modify_expr): Handle array of characters
2242 initialized by a string literal.
2243 * decl.c (check_initializer): Handle parenthesized string literal
2244 as initializer.
2245 * typeck2.c (store_init_value): Remove redundant check.
2246
fe6ebcf1
JM
22472014-06-04 Jason Merrill <jason@redhat.com>
2248
2249 PR c++/51253
2250 PR c++/61382
2251 * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
2252 * semantics.c (simplify_aggr_init_expr): Not here, just copy it.
2253
9dc7743c
IZ
22542014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
2255
2256 PR c/58942
2257 * cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
2258 with a pointer.
2259
3c61a5ba
PC
22602014-06-03 Paolo Carlini <paolo.carlini@oracle.com>
2261
2262 DR 1423
2263 PR c++/52174
2264 * call.c (standard_conversion): Convert nullptr to bool only
2265 in case of direct-initialization.
2266 (convert_like_real): Provide informative error message.
2267
fedfecef
MP
22682014-06-03 Marek Polacek <polacek@redhat.com>
2269
2270 PR c/60439
2271 * semantics.c (finish_switch_cond): Warn if switch condition has
2272 boolean value.
2273
010bc40a
JM
22742014-06-03 Jason Merrill <jason@redhat.com>
2275
093e62d2
JM
2276 PR c++/60992
2277 * pt.c (tsubst_copy) [VAR_DECL]: Try lookup first. Add a new
2278 variable to local_specializations.
2279
010bc40a
JM
2280 PR c++/60848
2281 * call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.
2282
cfc8dced
JM
22832014-06-02 Jason Merrill <jason@redhat.com>
2284
99d14de6
JM
2285 PR c++/61046
2286 * decl.c (reshape_init_class): Handle un-folded
2287 constant-expressions.
2288
cfc8dced
JM
2289 PR c++/61134
2290 * pt.c (pack_deducible_p): Handle canonicalization.
2291
a21e55d2
PC
22922014-06-02 Paolo Carlini <paolo.carlini@oracle.com>
2293
2294 * pt.c (tsubst_function_type): Initialize arg_types.
2295
1bae5891
SCR
22962014-06-02 Siva Chandra Reddy <sivachandra@google.com>
2297
2298 PR debug/57519
2299 * class.c (handle_using_decl): Pass the correct scope to
2300 cp_emit_debug_info_for_using.
2301
adb50dfb
VV
23022014-06-02 Ville Voutilainen <ville.voutilainen@gmail.com>
2303
2304 PR c++/59483
2305 PR c++/61148
2306 * search.c (accessible_p): Use current_nonlambda_class_type.
2307 * semantics.c (check_accessibility_of_qualified_id): Likewise.
2308
9b2b7279
AM
23092014-06-02 Andrew MacLeod <amacleod@redhat.com>
2310
2311 * decl.c: Include builtins.h.
2312 * semantics.c: Likewise.
2313
cab421f4
PC
23142014-05-31 Paolo Carlini <paolo.carlini@oracle.com>
2315
2316 DR 1227
2317 PR c++/57543
2318 * cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add.
2319 * pt.c (tsubst_function_type): Inject the this parameter; do the
2320 substitutions in the order mandated by the DR.
2321 (copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE.
2322 * decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE.
2323 (static_fn_type): Copy it.
2324 * decl2.c (build_memfn_type, change_return_type,
2325 cp_reconstruct_complex_type): Likewise.
2326 * parser.c (cp_parser_lambda_declarator_opt): Likewise.
2327 * tree.c (strip_typedefs): Likewise.
2328 * typeck.c (merge_types): Likewise.
2329
d1a902a2
JM
23302014-05-30 Jason Merrill <jason@redhat.com>
2331
b6bb8977
JM
2332 PR c++/56947
2333 * pt.c (instantiate_decl): Check that defer_ok is not set for
2334 local class members.
2335
d1a902a2
JM
2336 PR c++/60992
2337 * pt.c (tsubst_init): Split out from...
2338 (tsubst_expr) [DECL_EXPR]: Here.
2339 (tsubst_copy) [VAR_DECL]: Use it.
2340 * semantics.c (finish_id_expression): Return the decl for static/const.
2341
a33ad58b
JM
23422014-05-28 Jason Merrill <jason@redhat.com>
2343
d67ff7b7
JM
2344 PR c++/47202
2345 * decl.c (cxx_comdat_group): Return a decl.
2346 * optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
2347
a41acf5f
JM
2348 * pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
2349 bound.
2350
a33ad58b
JM
2351 PR c++/61242
2352 * call.c (build_aggr_conv): Ignore passed in flags.
2353 (build_array_conv, build_complex_conv): Likewise.
2354
aede2c10
JH
23552014-05-23 Jan Hubicka <hubicka@ucw.cz>
2356
ce762754 2357 * optimize.c (maybe_thunk_body): Use set_comdat_group.
aede2c10
JH
2358 (maybe_clone_body): Likewise.
2359 * decl.c (duplicate_decls): Update code duplicating comdat group;
2360 do not copy symtab pointer; before freeing newdecl remove it
2361 from symtab.
2362 * decl2.c (constrain_visibility): Use set_comdat_group.
2363
c517fc92
JH
23642014-05-23 Jan Hubicka <hubicka@ucw.cz>
2365
2366 * rtti.c: Include tm_p.h
2367 (emit_tinfo_decl): Force RTTI data to be aligned to required
2368 ABI alignment only.
2369
8ce8d98e
JH
23702014-05-23 Jan Hubicka <hubicka@ucw.cz>
2371
2372 * class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
2373 ignoring other target adjustments.
2374
edbba2ce
TS
23752014-05-23 Thomas Schwinge <thomas@codesourcery.com>
2376
f3316c6d
TS
2377 * semantics.c (finish_omp_clauses): Remove duplicated variable
2378 initialization.
2379
edbba2ce
TS
2380 * parser.c (cp_parser_omp_target): Return bool values.
2381
0c018b6f
PC
23822014-05-22 Paolo Carlini <paolo.carlini@oracle.com>
2383
2384 PR c++/61088
2385 * lambda.c (add_capture): Enforce that capture by value requires
2386 complete type.
2387 * typeck2.c (cxx_incomplete_type_inform): Early return if
2388 TYPE_MAIN_DECL is null.
2389
d8000f03
JW
23902014-05-21 Jonathan Wakely <jwakely@redhat.com>
2391
2392 PR c/61271
2393 * cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition.
2394
174ebf65
VV
23952014-05-21 Ville Voutilainen <ville.voutilainen@gmail.com>
2396
2397 PR c++/61133
2398 * lambda.c (build_capture_proxy, add_capture): Treat normal
2399 captures and init-captures identically.
2400
7315daa6
MW
24012014-05-21 Mark Wielaard <mjw@redhat.com>
2402
2403 PR debug/16063
2404 * cp-lang.c (cxx_enum_underlying_base_type): New function.
2405 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
2406
632f2871
RS
24072014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2408
2409 * cvt.c (convert_to_void): Use void_node instead of void_zero_node.
2410 * cp-array-notation.c (replace_invariant_exprs): Likewise.
2411 (expand_array_notation): Handle VOID_CST.
2412 * error.c (dump_expr): Likewise.
2413 * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
2414 (cxx_pretty_printer::expression): Likewise.
2415 (pp_cxx_new_expression): Use void_node instead of void_zero_node.
2416 * decl.c (register_dtor_fn): Likewise.
2417 * init.c (build_raw_new_expr, build_new_1, build_vec_init)
2418 (build_delete, push_base_cleanups): Likewise.
2419 * mangle.c (write_expression): Likewise.
2420 * semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise.
2421 * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
2422 (tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST.
2423 * tree.c (cp_tree_equal): Likewise.
2424 (build_dummy_object, is_dummy_object, stabilize_expr): Use void_node
2425 instead of void_zero_node.
2426 * typeck.c (check_return_expr): Likewise.
2427 * typeck2.c (build_functional_cast): Likewise.
2428
c3d96270
IZ
24292014-05-21 Igor Zamyatin <igor.zamyatin@intel.com>
2430
2431 PR c/60189
2432 * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync
2433 from here to...
2434 (cp_parser_statement): ...here. Make sure only semicolon can go after
2435 Cilk_sync.
2436
f4cd9c51
PC
24372014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
2438
2439 PR c++/58753
2440 PR c++/58930
2441 PR c++/58704
2442 * typeck2.c (digest_nsdmi_init): New.
2443 * parser.c (cp_parser_late_parse_one_default_arg): Use it.
2444 * init.c (get_nsdmi): Likewise.
2445 * cp-tree.h (digest_nsdmi_init): Declare.
2446
f9873232
JM
24472014-05-20 Jason Merrill <jason@redhat.com>
2448
2449 * typeck.c (get_member_function_from_ptrfunc): Don't try to look
2450 up a virtual function in a dummy object.
2451
512eacee
PC
24522014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
2453
2454 PR c++/60373
2455 * decl.c (duplicate_decls): Replace pair of warning_at with
2456 warning_at + inform.
2457 (maybe_commonize_var): Likewise.
2458
efa72acd
RS
24592014-05-20 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2460
2461 PR bootstrap/61210
2462 * pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr)
2463 (tsubst_copy_and_build): Perform recursive substitutions in a
2464 deterministic order.
2465
bdb5a9a3
PC
24662014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
2467
2468 PR c++/58664
2469 * typeck2.c (cxx_incomplete_type_inform): New.
2470 (cxx_incomplete_type_diagnostic): Use it.
2471 * decl.c (grokdeclarator): Check the element type of an
2472 incomplete array type; call the above.
2473 * cp-tree.h (cxx_incomplete_type_inform): Declare.
2474
0f5b0135
JM
24752014-05-19 Jason Merrill <jason@redhat.com>
2476
2477 PR c++/58761
2478 * pt.c (tsubst_copy): Don't check at_function_scope_p.
2479 (instantiate_class_template_1): Don't push_to_top_level in an nsdmi.
2480
7fb80849
PC
24812014-05-19 Paolo Carlini <paolo.carlini@oracle.com>
2482
2483 * typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
2484 * parser.c (cp_parser_enum_specifier): Likewise.
2485
766090c2
TS
24862014-05-17 Trevor Saunders <tsaunders@mozilla.com>
2487
2488 * class.c (sorted_fields_type_new): Adjust.
2489 * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
2490 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
2491 * cp-tree.h: Remove usage of variable_size gty attribute.
2492 * decl.c (make_label_decl): Adjust.
2493 (check_goto): Likewise.
2494 (start_preparsed_function): Likewise.
2495 (save_function_data): Likewise.
2496 * lex.c (init_reswords): Likewise.
2497 (retrofit_lang_decl): Likewise.
2498 (cxx_dup_lang_specific_decl): Likewise.
2499 (copy_lang_type): Likewise.
2500 (cxx_make_type): Likewise.
2501 * name-lookup.c (binding_entry_make): Likewise.
2502 (binding_table_construct): Likewise.
2503 (binding_table_new): Likewise.
2504 (cxx_binding_make): Likewise.
2505 (pushdecl_maybe_friend_1): Likewise.
2506 (begin_scope): Likewise.
2507 (push_to_top_level): Likewise.
2508 * parser.c (cp_lexer_alloc): Likewise.
2509 (cp_lexer_new_from_tokens): Likewise.
2510 (cp_token_cache_new): Likewise.
2511 (cp_parser_context_new): Likewise.
2512 (cp_parser_new): Likewise.
2513 (cp_parser_nested_name_specifier_opt): Likewise.
2514 (cp_parser_template_id): Likewise.
2515 * pt.c (maybe_process_partial_specialization): Likewise.
2516 (register_specialization): Likewise.
2517 (add_pending_template): Likewise.
2518 (lookup_template_class_1): Likewise.
2519 (push_tinst_level): Likewise.
2520 * semantics.c (register_constexpr_fundef): Likewise.
2521 (cxx_eval_call_expression): Likewise.
2522 * typeck2.c (abstract_virtuals_error_sfinae): Likewise.
2523
54674a35
PC
25242014-05-16 Paolo Carlini <paolo.carlini@oracle.com>
2525
2526 PR c++/51640
2527 * parser.c (cp_parser_diagnose_invalid_type_name): Early return
2528 when cp_parser_lookup_name sets ambiguous_decls.
2529
8fa53379
JM
25302014-05-15 Jason Merrill <jason@redhat.com>
2531
2532 * call.c (print_conversion_rejection): Use loc consistently.
2533
014397c2
PC
25342014-05-14 Paolo Carlini <paolo.carlini@oracle.com>
2535
2536 * cp-tree.h (DIRECT_LIST_INIT_P): Add.
2537 * call.c (convert_like_real, build_new_method_call_1): Use it.
2538 * decl2.c (grokfield): Likewise.
2539 * init.c (perform_member_init, build_aggr_init, expand_default_init,
2540 build_new_1): Likewise.
2541 * mangle.c (write_expression): Likewise.
2542 * parser.c (cp_parser_late_parse_one_default_arg): Likewise.
2543
89606913
JM
25442014-05-14 Jason Merrill <jason@redhat.com>
2545
d02f620d
JM
2546 PR c++/20332
2547 PR c++/21631
2548 * call.c (reference_binding): Treat lvalue/rvalue mismatch and
2549 dropped cv-quals as a bad conversion.
2550 (convert_like_real) [ck_ref_bind]: Explain them.
2551 (compare_ics): Check badness before stripping reference
2552 bindings. Handle comparing bad reference bindings.
2553 * typeck.c (comp_cv_qualification): Add overload that just takes
2554 integers.
2555 * cp-tree.h: Declare it.
2556
89606913
JM
2557 * call.c (struct conversion_info): Rename 'from_type' to 'from'.
2558 (arg_conversion_rejection, bad_arg_conversion_rejection)
2559 (explicit_conversion_rejection, template_conversion_rejection): Adjust.
2560 (add_function_candidate): Pass actual argument, rather than type, to
2561 bad_arg_conversion_rejection.
2562 (print_conversion_rejection): Explain what's wrong with the conversion.
c4622c2b 2563 (print_z_candidates): Say "candidate:" before each candidate.
89606913
JM
2564 (splice_viable): Be strict if we see a viable or template candidate.
2565 (build_user_type_conversion_1): Pass false to strict parameter.
2566 (perform_overload_resolution, build_conditional_expr_1): Likewise.
2567 (build_new_op_1, build_new_method_call_1): Likewise.
2568 (build_op_call_1): Pass true to strict parameter.
2569
6626c52e
JM
25702014-05-13 Jason Merrill <jason@redhat.com>
2571
c29f393f
JM
2572 * call.c (print_error_for_call_failure): Say "no match" rather
2573 than "ambiguous" if there were no strict matches.
2574 (build_new_method_call_1): Likewise.
2575
6626c52e
JM
2576 PR c++/61151
2577 * semantics.c (is_this_parameter): Allow capture proxies too.
2578
83afe9ef
JM
25792014-05-12 Jason Merrill <jason@redhat.com>
2580
3f55e16a
JM
2581 * call.c (maybe_print_user_conv_context): New.
2582 (convert_like_real): Use it. Print call context for bad
2583 user-defined conversion.
2584 (build_over_call): Print call context for bad 'this' conversion.
2585
83afe9ef
JM
2586 * call.c (convert_like_real): Use inform for identifying the
2587 declaration point.
2588
bc51de9c
PC
25892014-05-12 Paolo Carlini <paolo.carlini@oracle.com>
2590
2591 * cvt.c (cp_convert_to_pointer): Don't call error_at if
2592 complain & tf_error is false.
2593
2594 * decl.c (make_unbound_class_template): Prefer inform for
2595 "declared here"-type message.
2596
0b360a07
MV
25972014-05-09 Momchil Velikov <momchil.velikov@gmail.com>
2598
2599 PR c++/60463
2600 PR c++/60755
2601 * lambda.c (lambda_expr_this_capture): Add new parameter
2602 add_capture_p controlling whether the functions will try to
2603 capture 'this' via the default capture.
2604 (maybe_resolve_dummy): Likewise.
2605 * cp-tree.h: Adjust prototypes.
2606 * call.c, semantics.c: Change callers of these functions.
2607 * call.c (build_new_method_call_1): Use the actual 'this' that
2608 would be potentially captured for the overload resolution, instead
2609 of the dummy object.
2610
ad31c32a
PC
26112014-05-09 Paolo Carlini <paolo.carlini@oracle.com>
2612
2613 * pt.c (convert_nontype_argument_function): Add tsubst_flags_t
2614 parameter.
2615 (convert_nontype_argument): Adjust calls.
2616 (coerce_template_parameter_pack): Add missing complain & tf_error
2617 check.
2618
bb8b1f69
JM
26192014-05-09 Jason Merrill <jason@redhat.com>
2620
e8ee694a
JM
2621 DR 587
2622 PR c++/51317
2623 * call.c (build_conditional_expr_1, conditional_conversion): Handle
2624 non-class lvalues and xvalues that differ only in cv-qualifiers.
2625
bfa58951
JM
2626 DR 5
2627 PR c++/60019
2628 * call.c (build_user_type_conversion_1): The copy-init temporary
2629 is cv-unqualified.
2630
fc2bfea1
JM
2631 PR c++/58714
2632 * tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
2633
5f901ccf
JM
2634 PR c++/54348
2635 * call.c (build_conditional_expr_1): If overload resolution finds
2636 no match, just say "different types".
2637
2638 PR c++/32019
2639 * call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
2640
bb8b1f69
JM
2641 PR c++/22434
2642 * call.c (build_conditional_expr_1): Don't try to pool cv-quals
2643 if we didn't find a conversion.
2644 Don't accept a bad conversion too early.
2645
7e422c4f
PC
26462014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
2647
2648 PR c++/13981
2649 * typeck.c (convert_for_assignment): Provide an inform for pointers
2650 to incomplete class types.
2651
04e5eb5f
PC
26522014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
2653
2654 PR c++/61083
2655 * pt.c (convert_nontype_argument): Protect all the error calls
2656 with complain & tf_error.
2657
ef2662bf
PC
26582014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
2659
2660 PR c++/61080
2661 * pt.c (instantiate_decl): Avoid generating the body of a
2662 deleted function.
2663
895a5cc0
PC
26642014-05-06 Paolo Carlini <paolo.carlini@oracle.com>
2665
2666 PR c++/60999
2667 * pt.c (maybe_begin_member_template_processing): Use
2668 uses_template_parms.
2669
1d60af08
KZ
26702014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
2671 Mike Stump <mikestump@comcast.net>
2672 Richard Sandiford <rdsandiford@googlemail.com>
2673
2674 * call.c: Include wide-int.h.
2675 (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
2676 (convert_for_arg_passing): Likewise.
2677 * class.c: Include wide-int.h.
2678 (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
2679 (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
2680 (include_empty_classes): Likewise
2681 (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
2682 * cvt.c: Include wide-int.h.
2683 (ignore_overflows): Use wide_int_to_tree.
2684 * decl.c: Include wide-int.h.
2685 (check_array_designated_initializer): Use wide-int interfaces.
2686 (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
2687 (finish_enum_value_list): Use signop.
2688 (build_enumerator): Use wide-int interfaces.
2689 * init.c: Include wide-int.h.
2690 (build_new_1): Use wide-int interfaces.
2691 * mangle.c: Include wide-int.h.
2692 (write_integer_cst): Use wide-int interfaces.
2693 (write_array_type): Likewise.
2694 * tree.c: Include wide-int.h.
2695 (cp_tree_equal): Use tree_int_cst_equal.
2696 * typeck2.c: Include wide-int.h.
2697 (process_init_constructor_array): Use wide-int interfaces.
2698
32314c38
PC
26992014-05-03 Paolo Carlini <paolo.carlini@oracle.com>
2700
2701 PR c++/58582
2702 * decl.c (grokfndecl): Check duplicate_decls return value for
2703 error_mark_node.
2704 * pt.c (instantiate_decl): A deleted function is defined.
2705
43b781fa
JM
27062014-05-02 Jason Merrill <jason@redhat.com>
2707
c4fa3572
JM
2708 * decl2.c (vague_linkage_p): Local statics have vague linkage.
2709
43b781fa
JM
2710 PR c++/60992
2711 * lambda.c (lambda_capture_field_type): Wrap anything dependent
2712 other than 'this'.
2713 (add_capture): Check for VLA before calling it.
2714 * semantics.c (is_this_parameter): Accept any 'this' parameter, not
2715 just the current one. Make non-static.
2716 * cp-tree.h: Declare it.
2717 * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
2718 the operand was static or constant.
2719
19fc9faa
MP
27202014-05-02 Marek Polacek <polacek@redhat.com>
2721
2722 * typeck.c (maybe_warn_about_returning_address_of_local): Separate
2723 warning_at calls.
2724
32e00768
MP
27252014-05-01 Marek Polacek <polacek@redhat.com>
2726
2727 PR c/43395
2728 * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
2729 between label and variable when warning about returning local address.
2730
4f419f8c
JM
27312014-04-30 Jason Merrill <jason@redhat.com>
2732
60ff8e16
JM
2733 PR c++/60980
2734 * init.c (build_value_init): Don't try to call an array constructor.
2735
4f419f8c
JM
2736 PR c++/60951
2737 * typeck2.c (massage_init_elt): Use maybe_constant_init.
2738
f8ed5150
MP
27392014-04-30 Marek Polacek <polacek@redhat.com>
2740
2741 * typeck.c (cp_build_binary_op): Call ubsan_instrument_division
2742 even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even
2743 for non-integer types.
2744
b15ea309
JM
27452014-04-29 Jason Merrill <jason@redhat.com>
2746
2747 DR 1351
2748 Represent the unevaluated exception specification of an implicitly
2749 declared or deleted function with a simple placeholder, not a list
2750 of functions.
2751 * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
2752 * except.c (unevaluated_noexcept_spec): New.
2753 * class.c (deduce_noexcept_on_destructor): Use it.
2754 * decl.c (check_redeclaration_exception_specification): Call
2755 maybe_instantiate_noexcept.
2756 (duplicate_decls): Call it before merge_types.
2757 (start_preparsed_function): Call maybe_instantiate_noexcept.
2758 * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
2759 * init.c (get_nsdmi): Factor out of perform_member_init.
2760 * method.c (process_subob_fn): Call maybe_instantiate_noexcept.
2761 (walk_field_subobs): Consider NSDMI for EH spec.
2762 (get_defaulted_eh_spec): New.
2763 (implicitly_declare_fn): Use unevaluated_noexcept_spec.
2764 (defaulted_late_check): Defer EH checking in non-template classes.
2765 (after_nsdmi_defaulted_late_checks): New.
2766 * parser.c (cp_parser_class_specifier_1): Use it.
2767 (unparsed_classes): New macro.
2768 * parser.h (cp_unparsed_functions_entry_d): Add classes field.
2769 * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
2770 Remove list-of-functions handling.
2771 * typeck2.c (merge_exception_specifiers): Remove list-of-functions
2772 handling and FN parameter.
2773 * typeck.c (merge_types): Adjust.
2774
a3879fa1
PC
27752014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
2776
2777 PR c++/59120
2778 * parser.c (cp_parser_alias_declaration): Check return value of
2779 cp_parser_require.
2780
42056eac
JJ
27812014-04-24 Jakub Jelinek <jakub@redhat.com>
2782
2783 * parser.c (cp_parser_omp_atomic): Allow seq_cst before
2784 atomic-clause, allow comma in between atomic-clause and
2785 seq_cst.
2786
b911b50d
MG
27872014-04-24 Marc Glisse <marc.glisse@inria.fr>
2788
2789 PR libstdc++/43622
2790 * rtti.c (emit_support_tinfos): Do not iterate on
2791 registered_builtin_types (partial revert).
2792
3734964f
DT
27932014-04-23 Dinar Temirbulatov <dtemirbulatov@gmail.com>
2794
2795 PR c++/57958
2796 * semantics.c (apply_deduced_return_type): Complete non-void type
2797 before estimating whether the type is aggregate.
2798
793c625f
MG
27992014-04-22 Marc Glisse <marc.glisse@inria.fr>
2800
2801 PR libstdc++/43622
2802 * rtti.c (emit_support_tinfo_1): New function, extracted from
2803 emit_support_tinfos.
2804 (emit_support_tinfos): Call it and iterate on registered_builtin_types.
2805
e162a134
JJ
28062014-04-22 Jakub Jelinek <jakub@redhat.com>
2807
2808 PR c/59073
2809 * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
2810 fails, don't set OM_PARALLEL_COMBINED and return NULL.
2811
c663bc6a
JM
28122014-04-18 Jason Merrill <jason@redhat.com>
2813
fc45aeee
JM
2814 DR 1571
2815 * call.c (reference_binding): Recurse on user-defined conversion.
2816
c663bc6a
JM
2817 PR c++/60872
2818 * call.c (standard_conversion): Don't try to apply restrict to void.
2819
fcde53d0
MG
28202014-04-16 Marc Glisse <marc.glisse@inria.fr>
2821
2822 * decl.c (reshape_init_r): Handle a single element of vector type.
2823
1dbdb756
PP
28242014-04-16 Patrick Palka <patrick@parcs.ath.cx>
2825
2826 PR c++/60765
2827 * decl2.c (cplus_decl_attributes): Handle
2828 pointer-to-member-function declarations.
2829
28302014-04-16 Patrick Palka <patrick@parcs.ath.cx>
2831
2832 PR c++/60764
2833 * call.c (build_user_type_coversion): Use build_dummy_object
2834 to create the placeholder object for a constructor method call.
2835 (build_special_member_call): Likewise.
2836 (build_over_call): Check for the placeholder object with
2837 is_dummy_object.
2838 (build_new_method_call_1): Likewise. Don't attempt to resolve
2839 a dummy object for a constructor method call.
2840
23b0af0a
PP
28412014-04-16 Paul Pluzhnikov <ppluzhnikov@google.com>
2842
2843 PR c++/59295
2844 * friend.c (add_friend, make_friend_class): Move repeated friend
2845 warning under Wredundant_decls.
2846
fe9208ef
PC
28472014-04-15 Paolo Carlini <paolo.carlini@oracle.com>
2848
2849 * decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
2850 * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
2851 (do_class_using_decl): Likewise.
2852 * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
2853
4f0ddb6f
JJ
28542014-04-15 Jakub Jelinek <jakub@redhat.com>
2855
2856 PR plugins/59335
2857 * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
2858
9dba4b55
PC
28592014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
2860
2861 * cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
2862
8095617b
PC
28632014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
2864
2865 * pt.c (mark_template_parm): Use template_parm_level_and_index.
2866
7d0039a6
JM
28672014-04-11 Jason Merrill <jason@redhat.com>
2868
63620197
JM
2869 * parser.h (struct cp_token): Rename ambiguous_p to error_reported.
2870 * parser.c: Adjust.
2871 (cp_lexer_get_preprocessor_token): Always clear it.
2872 (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
2873
1c982d13
JM
2874 DR 1467
2875 PR c++/51747
2876 * decl.c (reshape_init_r): Handle a single element of class type.
2877
7d0039a6
JM
2878 DR 1338
2879 * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
2880 built-in operator new.
2881
1b255e8f
PC
28822014-04-11 Paolo Carlini <paolo.carlini@oracle.com>
2883
2884 PR c++/58600
2885 * name-lookup.c (parse_using_directive): Return early if the
2886 attribs argument is error_mark_node; use get_attribute_name.
2887
4561285b
JM
28882014-04-11 Jason Merrill <jason@redhat.com>
2889
2890 DR 1030
2891 PR c++/51253
2892 * cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
2893 * call.c (struct z_candidate): Add flags field.
2894 (add_candidate): Add flags parm.
2895 (add_function_candidate, add_conv_candidate, build_builtin_candidate)
2896 (add_template_candidate_real): Pass it.
2897 (build_over_call): Set CALL_EXPR_LIST_INIT_P.
2898 * tree.c (build_aggr_init_expr): Copy it.
2899 * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
2900
8aa1cce6
RB
29012014-04-10 Richard Biener <rguenther@suse.de>
2902 Jakub Jelinek <jakub@redhat.com>
2903
2904 PR ipa/60761
2905 * error.c (dump_decl) <case FUNCTION_DECL>: If
2906 DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
2907 recurse on DECL_ABSTRACT_ORIGIN instead of printing
2908 <built-in>.
2909
51970b3e
FC
29102014-04-09 Fabien Chêne <fabien@gcc.gnu.org>
2911
2912 * pt.c (check_template_variable): Check for the return of pedwarn
2913 before emitting a note.
2914 * parser.c (cp_parser_lambda_introducer): Likewise.
2915
a7c3f276
PC
29162014-04-08 Paolo Carlini <paolo.carlini@oracle.com>
2917
2918 PR c++/59115
2919 * pt.c (process_template_parm): For an invalid non-type parameter
2920 only set TREE_TYPE to error_mark_node.
2921 (push_inline_template_parms_recursive, comp_template_parms,
2922 redeclare_class_template, coerce_template_template_parm,
2923 coerce_template_template_parms, unify): Use error_operand_p.
2924
38f09da3
NS
29252014-04-08 Nathan Sidwell <nathan@codesourcery.com>
2926
2927 * class.c (check_bases_and_members): Warn about non-virtual dtors
2928 in public bases only. Check warn_ecpp before complaining about
2929 non-polymorphic bases.
2930
090ec702
FC
29312014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
2932
2933 * decl.c (duplicate_decls): Check for the return of warning_at
2934 before emitting a note.
2935 (warn_misplaced_attr_for_class_type): Likewise.
2936 (check_tag_decl): Likewise.
2937
9119c7fa
PC
29382014-04-04 Paolo Carlini <paolo.carlini@oracle.com>
2939
2940 PR c++/58207
2941 * semantics.c (sort_constexpr_mem_initializers): Robustify loop.
2942
822cc906
PP
29432014-04-04 Patrick Palka <patrick@parcs.ath.cx>
2944
0450fc0b
PP
2945 PR c++/44613
2946 * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
2947 * decl.c (cp_finish_decl): Create a new BIND_EXPR before
2948 instantiating a variable-sized type.
2949
822cc906
PP
2950 PR c++/21113
2951 * decl.c (decl_jump_unsafe): Consider variably-modified decls.
2952
3fe99aa5
FC
29532014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
2954
2955 * class.c (find_abi_tags_r): Check for the return of warning
2956 before emitting a note.
2957 (one_inherited_ctor): Likewise.
2958
d4a69ff4
FC
29592014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
2960
2961 * decl.c (duplicate_decls): Check for the return of permerror
2962 before emitting a note.
2963
880a467b
NS
29642014-04-03 Nathan Sidwell <nathan@codesourcery.com>
2965
2966 * class.c (accessible_nvdtor_p): New.
2967 (check_bases): Don't check base destructor here ...
2968 (check_bases_and_members): ... check them here. Trigger on
2969 Wnon-virtual-dtor flag.
2970 (finish_struct_1): Use accessible_nvdtor_p.
2971
cd8a9d6d
JM
29722014-04-01 Jason Merrill <jason@redhat.com>
2973
52710d27
JM
2974 * pt.c (process_partial_specialization): Say "not deducible"
2975 rather than "not used". Use inform.
2976
cd8a9d6d
JM
2977 PR c++/60374
2978 * pt.c (coerce_template_parms): Check that the pack expansion
2979 pattern works with the first matching parameter.
2980
0df9da03
FC
29812014-04-01 Fabien Chêne <fabien@gcc.gnu.org>
2982
9ffac481 2983 * init.c (perform_member_init): Homogenize uninitialized
0df9da03
FC
2984 diagnostics.
2985
2982147e
JM
29862014-04-01 Jason Merrill <jason@redhat.com>
2987
24991604
JM
2988 PR c++/60708
2989 * call.c (build_array_conv): Call complete_type.
2990
dd5593fc
JM
2991 PR c++/60713
2992 * typeck2.c (PICFLAG_SIDE_EFFECTS): New.
2993 (picflag_from_initializer): Return it.
2994 (process_init_constructor): Handle it.
2995
2982147e
JM
2996 PR c++/60642
2997 * decl2.c (is_late_template_attribute): Don't defer abi_tag.
2998 * mangle.c (write_unqualified_name): Fix abi_tag on templates.
2999 * pt.c (get_template_info): Handle NAMESPACE_DECL.
3000 (most_general_template): Handle more kinds of template.
3001 * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
3002 instantiations and specializations.
3003
9ffac481 30042014-03-31 Patrick Palka <patrick@parcs.ath.cx>
75d850f3
PP
3005
3006 PR c++/44859
3007 * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
3008 COMPONENT_REFs and ARRAY_REFs sooner.
3009
4b0040a6
AB
30102014-03-29 Adam Butcher <adam@jessamine.co.uk>
3011
3012 PR c++/60626
3013 * parser.c (cp_parser_init_declarator): Handle erroneous generic type
3014 usage in non-functions with pushed scope.
3015
5294e4c3
AB
30162014-03-28 Adam Butcher <adam@jessamine.co.uk>
3017
3018 PR c++/60573
3019 * name-lookup.h (cp_binding_level): New transient field defining_class_p
3020 to indicate whether a scope is in the process of defining a class.
3021 * semantics.c (begin_class_definition): Set defining_class_p.
3022 * name-lookup.c (leave_scope): Reset defining_class_p.
3023 * parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
3024 defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
3025 unwinding to class-defining scope to handle the erroneous definition of
3026 a generic function of an arbitrarily nested class within an enclosing
3027 class.
3028
816551fe 30292014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
5294e4c3
AB
3030
3031 PR c++/52369
d4a69ff4 3032 * method.c (walk_field_subobs): Improve the diagnostic
816551fe 3033 locations for both REFERENCE_TYPEs and non-static const members.
d4a69ff4 3034 * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
816551fe
FC
3035 instead of %qD to be consistent with the c++11 diagnostic.
3036
45156f14
JM
30372014-03-25 Jason Merrill <jason@redhat.com>
3038
d74db8ff
JM
3039 PR c++/60566
3040 PR c++/58678
3041 * class.c (build_vtbl_initializer): Handle abstract dtors here.
3042 * search.c (get_pure_virtuals): Not here.
3043
1cbba79d
JM
3044 PR c++/60375
3045 * parser.c (cp_parser_lambda_expression): Don't parse the body of
3046 a lambda in unevaluated context.
3047
45156f14
JM
3048 PR c++/60628
3049 * decl.c (create_array_type_for_decl): Complain about array of auto.
3050
8bcc90b0
JJ
30512014-03-25 Jakub Jelinek <jakub@redhat.com>
3052
3053 PR c++/60331
3054 * semantics.c (potential_constant_expression_1): Handle
3055 DECL_EXPR.
3056
21554a3e
AB
30572014-03-24 Adam Butcher <adam@jessamine.co.uk>
3058
3059 PR c++/60627
3060 * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
3061 introducing an implicit function template parameter within an explicit
3062 instantiation.
3063
d0f27fb6
JM
30642014-03-22 Jason Merrill <jason@redhat.com>
3065
3066 PR c++/60574
3067 * decl.c (grokdeclarator): Change permerror about 'virtual auto'
3068 to error.
3069
279d3eb8
PC
30702014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
3071
3072 PR c++/60384
3073 * name-lookup.c (push_class_level_binding_1): Check identifier_p
3074 on the name argument.
3075
7614d42c
JJ
30762014-03-20 Jakub Jelinek <jakub@redhat.com>
3077
3078 PR c++/60572
3079 * init.c (build_zero_init_1): Ignore fields with error_mark_node
3080 type.
3081
7d092805
PC
30822014-03-19 Paolo Carlini <paolo.carlini@oracle.com>
3083
3084 PR c++/51474
3085 * call.c (build_new_method_call_1): Handle pure virtuals called by
3086 NSDMIs too.
3087
c66f2ba1
AB
30882014-03-17 Adam Butcher <adam@jessamine.co.uk>
3089
e0672441
AB
3090 PR c++/60390
3091 * parser.c (cp_parser_member_declaration): Don't allow
3092 finish_fully_implicit_template to consider friend declarations to be
3093 class member templates.
3094 (synthesize_implicit_template_parm): Handling winding back through class
3095 scope to the class being defined in order to inject a template argument
3096 list.
3097
c66f2ba1
AB
3098 PR c++/60391
3099 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
3100 function scope as per cp_parser_skip_to_end_of_statement.
3101
50e4d1ec
PC
31022014-03-17 Paolo Carlini <paolo.carlini@oracle.com>
3103
3104 PR c++/59571
3105 * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
3106
7e343703
JM
31072014-03-14 Jason Merrill <jason@redhat.com>
3108
47b5d284
JM
3109 PR c++/60532
3110 PR c++/58678
3111 * search.c (get_pure_virtuals): Handle abstract dtor here.
3112 (dfs_get_pure_virtuals): Not here.
3113
7e343703
JM
3114 PR c++/58678
3115 * search.c (dfs_get_pure_virtuals): Treat the destructor of an
3116 abstract class as pure.
3117
b0a87402
PC
31182014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
3119
3120 PR c++/60383
3121 * pt.c (maybe_process_partial_specialization): Check return value
3122 of check_specialization_namespace.
3123
9299bde0
PC
31242014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
3125
3126 PR c++/60254
3127 * semantics.c (finish_static_assert): Call cxx_constant_value only
3128 if require_potential_rvalue_constant_expression returns true.
3129
5af1876c
PC
31302014-03-11 Paolo Carlini <paolo.carlini@oracle.com>
3131
3132 PR c++/60389
3133 * method.c (get_inherited_ctor): New.
3134 * cp-tree.h (get_inherited_ctor): Declare it.
3135 * semantics.c (is_valid_constexpr_fn): Use it.
3136
4d3f2fa6
JM
31372014-03-10 Jason Merrill <jason@redhat.com>
3138
4a4e80cb
JM
3139 PR c++/60367
3140 * call.c (convert_default_arg): Remove special handling for
3141 CONSTRUCTOR.
3142
4d3f2fa6
JM
3143 PR c++/53492
3144 * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
3145 when deciding whether to call push_template_decl for a member class.
3146 * pt.c (push_template_decl_real): Return after wrong levels error.
3147
14e62702
AB
31482014-03-08 Adam Butcher <adam@jessamine.co.uk>
3149
1c74dc2a
AB
3150 PR c++/60033
3151 * pt.c (tsubst_copy): When retrieving a capture pack from a generic
3152 lambda, remove the lambda's own template argument list prior to fetching
3153 the specialization.
3154
14e62702
AB
3155 PR c++/60393
3156 * parser.c (cp_parser_parameter_declaration_clause): Move generic
3157 function template unwinding on error into a more general location, ...
3158 (cp_parser_skip_to_end_of_statement): ... here.
3159
b75bf8b1
JM
31602014-03-07 Jason Merrill <jason@redhat.com>
3161
c93a4be5
JM
3162 * Make-lang.in (check_g++_parallelize): Split dg.exp.
3163
968b3503
JM
3164 * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
3165 we're in a trailing return type.
3166
d08a068b
JM
3167 * typeck.c (comp_template_parms_position): 'auto' and
3168 'decltype(auto)' are different from real template parms.
3169
94151520
JM
3170 * parser.c (cp_parser_using_declaration): Consume the semicolon
3171 after bare parameter pack error.
3172
0e4cf887
JM
3173 * cp-tree.h (REF_PARENTHESIZED_P): New.
3174 * semantics.c (force_paren_expr): Set it.
3175 * pt.c (do_auto_deduction): Check it.
3176 (tsubst) [COMPONENT_REF]: Copy it.
3177 * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
3178
b75bf8b1
JM
3179 * decl.c (create_array_type_for_decl): Only warn about invalid
3180 C++1y VLA if flag_iso or warn_vla>0.
3181 (grokdeclarator): Likewise.
3182 * pt.c (tsubst): Likewise.
3183 * semantics.c (finish_decltype_type): Likewise.
3184 * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
3185 (cp_build_addr_expr_1): Likewise.
3186 * init.c (build_new_1): Improve diagnostics.
3187
c12b3bd3
PC
31882014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
3189
3190 PR c++/58609
3191 * decl.c (check_initializer): Return NULL_TREE after error;
3192 consistently use inform.
3193
bc65bdd5
PC
31942014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
3195
3196 * decl.c (check_initializer): Remove dead code.
3197
3af9c5e9
MP
31982014-03-06 Marek Polacek <polacek@redhat.com>
3199
3200 PR c/60197
3201 * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
3202 of checking tree code.
3203
d9d8f6b1
PC
32042014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
3205
3206 * parser.c (cp_lexer_set_source_position): New.
3207 (cp_parser_mem_initializer): Use it.
3208 (cp_parser_postfix_open_square_expression): Likewise.
3209 (cp_parser_parenthesized_expression_list): Likewise.
3210 (cp_parser_new_initializer): Likewise.
3211 (cp_parser_jump_statement): Likewise.
3212 (cp_parser_initializer): Likewise.
3213 (cp_parser_functional_cast): Likewise.
3214
04702386
JM
32152014-03-05 Jason Merrill <jason@redhat.com>
3216
f9b381b8
JM
3217 PR c++/60409
3218 * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
3219 dependent expression.
3220
5d264d62
JM
3221 PR c++/60361
3222 * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
3223 if re-parsing might succeed.
3224 * semantics.c (finish_id_expression): Use of a parameter outside
3225 the function body is a parse error.
3226
04702386
JM
3227 * parser.c (cp_parser_mem_initializer): Set input_location
3228 properly for init-list warning.
3229 (cp_parser_postfix_open_square_expression): Likewise.
3230 (cp_parser_parenthesized_expression_list): Likewise.
3231 (cp_parser_new_initializer): Likewise.
3232 (cp_parser_jump_statement): Likewise.
3233 (cp_parser_initializer): Likewise.
3234 (cp_parser_functional_cast): Likewise.
3235
201fe4c6
JM
32362014-03-04 Jason Merrill <jason@redhat.com>
3237
ca982b1c
JM
3238 PR c++/60417
3239 * typeck2.c (process_init_constructor_record): Set
3240 CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
3241
201fe4c6
JM
3242 PR c++/60415
3243 PR c++/54359
3244 * parser.c (cp_parser_direct_declarator): Set declarator to
3245 cp_error_declarator on invalid qualified-id.
3246
064fd5a8
PC
32472014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
3248
3249 PR c++/60376
3250 * parser.c (cp_parser_using_declaration): Early return when
3251 cp_parser_nested_name_specifier errors out.
3252
234b1504
AB
32532014-03-01 Adam Butcher <adam@jessamine.co.uk>
3254
3255 PR c++/60377
3256 * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
3257 function scope on parse error in function parameter list.
3258
c582aac9
PC
32592014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
3260
3261 * method.c (implicitly_declare_fn): Remove redundant
3262 DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
3263 * semantics.c (is_instantiation_of_constexpr): Likewise.
3264 * error.c (dump_function_decl): Likewise.
3265
fe96264f
JM
32662014-03-01 Jason Merrill <jason@redhat.com>
3267
3268 PR c++/60379
3269 * semantics.c (begin_maybe_infinite_loop): Use
3270 fold_non_dependent_expr_sfinae.
3271
abb839ec
JM
32722014-02-28 Jason Merrill <jason@redhat.com>
3273
3274 PR c++/58845
3275 * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
3276
f1ee5eaf
PC
32772014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
3278
3279 PR c++/58610
3280 * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
3281 * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
3282 * lambda.c (maybe_add_lambda_conv_op): Likewise.
3283
ae9b3eb9
PC
32842014-02-27 Paolo Carlini <paolo.carlini@oracle.com>
3285
3286 PR c++/60253
3287 * call.c (convert_arg_to_ellipsis): Return error_mark_node after
3288 error_at.
3289
7fce82f5
JM
32902014-02-27 Jason Merrill <jason@redhat.com>
3291
3292 PR c++/60353
3293 PR c++/55877
3294 * decl2.c (tentative_decl_linkage): Don't mess with functions that
3295 are not yet defined.
3296
2f75f515
JM
32972014-02-26 Jason Merrill <jason@redhat.com>
3298
c3439626
JM
3299 PR c++/60347
3300 PR lto/53808
3301 * class.c (clone_function_decl): Don't note_vague_linkage_fn.
3302 * init.c (build_vtbl_address): Do it here.
3303
ca7e759d
JM
3304 PR c++/59231
3305 PR c++/11586
3306 PR c++/14710
3307 PR c++/57132
3308 * pt.c (struct warning_sentinel): New.
3309 (tsubst_copy_and_build): Use it instead of
3310 c_inhibit_evaluation_warnings.
3311 * typeck.c (maybe_warn_about_useless_cast): Remove
3312 c_inhibit_evaluation_warnings check.
3313
b0ff7fe1
JM
3314 PR c++/54440
3315 * pt.c (get_template_parm_index): New.
3316 (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
3317 (process_template_parm): Allow bare packs in template template
3318 parm template parms.
3319 (coerce_template_parameter_pack): Handle fixed template template
3320 parm packs and fixed packs not at the end of the parm list.
3321 (coerce_template_parms): Handle template parm packs not at the end
3322 of the parm list.
3323 (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
3324
f3417723
JM
3325 PR c++/60182
3326 * pt.c (unify): Ignore alias templates when deducing a template
3327 template parameter.
3328
2f75f515
JM
3329 PR c++/60345
3330 Revert:
3331 DR 1571
3332 * call.c (reference_binding): Recurse on user-defined conversion.
3333 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
3334
d808e92e
JM
33352014-02-25 Jason Merrill <jason@redhat.com>
3336
be9e97bd
JM
3337 DR 1571
3338 * call.c (reference_binding): Recurse on user-defined conversion.
3339 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
3340
241172a5
JM
3341 * call.c (print_conversion_rejection): Handle n_arg of -2.
3342 (build_user_type_conversion_1): Pass it.
3343
944b63db
JM
3344 PR c++/55877
3345 * decl2.c (no_linkage_error): Handle C++98 semantics.
3346 (reset_type_linkage): Move from decl.c.
3347 (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
3348 (bt_reset_linkage_2, reset_decl_linkage): New.
3349 (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
3350 (cp_write_global_declarations): Move condition into no_linkage_error.
3351 * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
3352 * semantics.c (expand_or_defer_fn_1): Factor out
3353 tentative_decl_linkage.
3354 * cp-tree.h: Adjust.
3355
a6659b55
JM
3356 * decl2.c (finish_static_data_member_decl): Diagnose static data
3357 member in unnamed class.
3358 * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
3359
6e6eaecc
JM
3360 PR lto/53808
3361 * class.c (clone_function_decl): Call note_vague_linkage_fn for
3362 defaulted virtual dtor.
3363
d808e92e
JM
3364 DR 1286
3365 PR c++/60328
3366 * pt.c (get_underlying_template): Fix equivalence calculation.
3367
81493f78
AB
33682014-02-25 Adam Butcher <adam@jessamine.co.uk>
3369
adbdb8c7
AB
3370 PR c++/60311
3371 * parser.c (function_being_declared_is_template_p): Return false when
3372 processing a template parameter list.
3373 (cp_parser_parameter_declaration_clause): Don't set
3374 auto_is_implicit_function_template_parm_p when processing a
3375 template parameter list.
3376
1b859733
AB
3377 * parser.c (synthesize_implicit_template_parm): Inject new template
3378 argument list appropriately when a generic member function
3379 of a class template is declared out-of-line.
3380
81493f78
AB
3381 PR c++/60065
3382 * parser.c (cp_parser_direct_declarator): Don't save and
3383 restore num_template_parameter_lists around call to
3384 cp_parser_parameter_declaration_list.
3385 (function_being_declared_is_template_p): New predicate.
3386 (cp_parser_parameter_declaration_list): Use
3387 function_being_declared_is_template_p as predicate for
3388 inspecting current function template parameter list length
3389 rather than num_template_parameter_lists.
3390
01689517
JM
33912014-02-24 Jason Merrill <jason@redhat.com>
3392
2105f1a7
JM
3393 PR c++/60146
3394 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
3395 DECL_EXPR initialize a non-class iterator.
3396
01689517
JM
3397 PR c++/60312
3398 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
3399
a866509a 34002014-02-21 Jason Merrill <jason@redhat.com>
1c195d2a 3401
7eae5d36
JM
3402 PR c++/58170
3403 * parser.c (cp_parser_type_name): Always check dependency.
3404 (cp_parser_type_specifier_seq): Call
3405 cp_parser_parse_and_diagnose_invalid_type_name.
3406
d723358d
JM
3407 PR c++/60108
3408 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
3409
c754ffcc
JM
3410 PR c++/60185
3411 * parser.c (cp_parser_default_argument): Clear
3412 current_class_ptr/current_class_ref like tsubst_default_argument.
3413
e7b67047
JM
3414 PR c++/60252
3415 * lambda.c (maybe_resolve_dummy): Check lambda_function rather
3416 than current_binding_level.
3417
b98fb363
JM
3418 PR c++/60186
3419 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
3420
3e9e24ab
JM
3421 PR c++/60187
3422 * parser.c (cp_parser_enum_specifier): Call
3423 check_for_bare_parameter_packs.
3424
71b735a5
JM
3425 PR c++/59347
3426 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
3427 erroneous typedef.
3428
2671a8ef
JM
3429 PR c++/60241
3430 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
3431 of the partial instantiation, not the most general template.
3432 (maybe_process_partial_specialization): Reassign everything on
3433 that list.
3434
0d4af074
JM
3435 PR c++/60216
3436 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
3437 (check_explicit_specialization): Don't clone.
3438
07874b24
JM
3439 PR c++/60219
3440 * pt.c (coerce_template_parms): Bail if argument packing fails.
3441
843633f8
JM
3442 PR c++/60224
3443 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
3444 Don't get confused by a CONSTRUCTOR that already has a type.
3445
f611c78a 3446 PR c++/60227
cd3ef6f7
JM
3447 * call.c (build_array_conv): Don't crash on VLA.
3448
1ea32974
JM
3449 PR c++/60248
3450 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
3451
1c195d2a
JM
3452 PR c++/60252
3453 * lambda.c (maybe_resolve_dummy): Don't try to capture this
3454 in declaration context.
a866509a 3455
e9cd6551
JM
3456 DR 1591
3457 PR c++/60051
3458 * pt.c (unify): Only unify if deducible. Handle 0-length list.
3459
9e01a71f
JM
3460 PR c++/60250
3461 * parser.c (cp_parser_direct_declarator): Don't wrap a
3462 type-dependent expression in a NOP_EXPR.
3463
e429bc35
JM
3464 PR c++/60251
3465 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
3466
a866509a
JM
3467 PR c++/60167
3468 PR c++/60222
3469 PR c++/58606
3470 * parser.c (cp_parser_template_argument): Restore dereference.
3471 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
3472 (process_partial_specialization): Handle deref.
3473 (unify): Likewise.
3474
2807d5d2
AB
34752014-02-21 Adam Butcher <adam@jessamine.co.uk>
3476
3477 PR c++/60052
3478 PR c++/60053
3479 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
3480 implicit_template_scope upon leaving an out-of-line generic member
3481 function definition.
3482
f2381074
KT
34832014-02-20 Kai Tietz <ktietz@redhat.com>
3484
f1dbbe42
KT
3485 PR c++/58873
3486 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
3487 valued type argument as error_mark_node.
3488
f2381074
KT
3489 PR c++/58835
3490 * semantics.c (finish_fname): Handle error_mark_node.
3491
55694175
JM
34922014-02-19 Jason Merrill <jason@redhat.com>
3493
3494 PR c++/60046
3495 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
3496 spec from template context.
3497
4998d666
JJ
34982014-02-19 Jakub Jelinek <jakub@redhat.com>
3499
128ed090
JJ
3500 PR debug/56563
3501 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
3502 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
3503
4998d666
JJ
3504 PR c++/60267
3505 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
3506
a1535f52
PC
35072014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
3508
3509 PR c++/60225
3510 * semantics.c (ensure_literal_type_for_constexpr_object): Use
3511 strip_array_types.
3512
35132014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
3514
3515 PR c++/60215
3516 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
3517 During error recovery allow_non_constant may be false.
3518
b19fd0fd
AB
35192014-02-18 Adam Butcher <adam@jessamine.co.uk>
3520
3521 PR c++/60190
3522 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
3523 scope whenever a template parameter list has been started, independent
3524 of whether the function call operator was well-formed or not.
3525
75e9d9a0
AB
3526 PR c++/60064
3527 * parser.c (cp_parser_member_declaration): Pop fully implicit template
3528 scope for generic friend declarations as well as for non-friends.
3529
6cfbc023
PC
35302014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
3531
3532 PR c++/60047
3533 * method.c (implicitly_declare_fn): A constructor of a class with
3534 virtual base classes isn't constexpr (7.1.5p4).
3535
b3bb0eb9
JH
35362014-02-05 Jan Hubicka <hubicka@ucw.cz
3537
3538 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
3539
54e19c00
JJ
35402014-02-05 Jakub Jelinek <jakub@redhat.com>
3541
3542 PR c++/58703
3543 * parser.c (cp_parser_omp_declare_reduction): Save and free
3544 declarator_obstack.
3545
5d77fb19
MG
35462014-02-03 Marc Glisse <marc.glisse@inria.fr>
3547
3548 PR c++/53017
3549 PR c++/59211
3550 * tree.c (handle_init_priority_attribute): Call default_conversion on
3551 the attribute argument.
3552
f344f525
PC
35532014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
3554
3555 PR c++/58871
3556 * method.c (synthesized_method_walk): If vbases is non-null but
3557 is_empty is true, likewise don't worry about the virtual bases.
3558
4244ec23
PC
35592014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
3560
3561 PR c++/51219
3562 * typeck2.c (process_init_constructor_record): Just skip unnamed
3563 bit-fields.
3564
99a82a1e
JM
35652014-01-31 Jason Merrill <jason@redhat.com>
3566
3d27e066
JM
3567 PR c++/59469
3568 * pt.c (mark_decl_instantiated): Call mark_needed.
3569
6962711f
JM
3570 PR c++/58672
3571 * decl2.c (handle_tls_init): Handle null init fn.
3572
99a82a1e
JM
3573 PR c++/55800
3574 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
3575
f1f82a37
PC
35762014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
3577
3578 PR c++/59082
3579 * class.c (build_vfield_ref): Early return error_mark_node if
3580 TYPE_VFIELD (type) is null.
3581 (build_base_path): Check return value of build_vfield_ref.
3582
4b55a782
JM
35832014-01-31 Jason Merrill <jason@redhat.com>
3584
408249b2
JM
3585 PR c++/59646
3586 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
3587 [ck_list]: Check for error_mark_node.
3588 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
3589
4b55a782
JM
3590 PR c++/57043
3591 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
3592 during partial ordering.
3593
81e5eca8
MP
35942014-01-31 Marek Polacek <polacek@redhat.com>
3595
3596 PR c/59963
3597 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
3598
f221dc81
JM
35992014-01-30 Jason Merrill <jason@redhat.com>
3600
3601 PR c++/57899
3602 * cp-tree.h (struct saved_scope): Add x_local_specializations.
3603 (local_specializations): New macro.
3604 * pt.c (local_specializations): Remove variable.
3605
35e519c4
RS
36062014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
3607
3608 PR c++/58708
3609 * parser.c (make_string_pack): Use double_int::from_buffer.
3610
68fca595
MP
36112014-01-30 Marek Polacek <polacek@redhat.com>
3612
3613 PR c/59940
3614 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
3615 input_location.
3616 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
3617 with input_location.
3618 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
3619 loc parameter.
3620
9ca57929
PC
36212014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
3622
3623 PR c++/58843
3624 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
3625
e1b317ae
PC
36262014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
3627
3628 PR c++/58649
3629 * pt.c (lookup_template_class_1): Check start_enum return value
3630 for error_mark_node.
3631
cc27b5cd
PC
36322014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
3633
3634 * decl.c (duplicate_decls, typename_hash, typename_compare):
3635 Use TYPE_IDENTIFIER.
3636 * error.c (dump_type): Likewise.
3637 * mangle.c (dump_substitution_candidates): Likewise.
3638
404c2aea
JM
36392014-01-30 Jason Merrill <jason@redhat.com>
3640
3641 PR c++/59633
3642 * decl2.c (attributes_naming_typedef_ok): New.
3643 * cp-tree.h: Declare it.
3644 * decl.c (grokdeclarator): Check it.
3645 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
3646
7651c656
JM
36472014-01-29 Jason Merrill <jason@redhat.com>
3648
3c4e06c2
JM
3649 PR c++/59707
3650 * call.c (add_builtin_candidate): Catch dependent types.
3651
0429e064
JM
3652 PR c++/59989
3653 * pt.c (expand_template_argument_pack): Correct
3654 non_default_args_count calculation.
3655
434e6c8a
JM
3656 PR c++/58466
3657 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
3658
7651c656
JM
3659 PR c++/59956
3660 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
3661 have a friend template in a class template.
3662 * pt.c (tsubst_friend_function): Look through it.
3663 (push_template_decl_real): A friend member template is
3664 primary.
3665
e8902891
PC
36662014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
3667
3668 PR c++/58846
3669 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
3670 == error_mark_node.
3671
e1e30986
PC
36722014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
3673
3674 PR c++/58674
3675 * pt.c (instantiate_template_1): Check for error_mark_node the second
3676 argument too.
3677
dc9e1b86
JM
36782014-01-29 Jason Merrill <jason@redhat.com>
3679
8ae90330
JM
3680 PR c++/59916
3681 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
3682 cdtor_returns_this case.
3683
dc9e1b86
JM
3684 PR c++/59315
3685 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
3686
4ca56230
PC
36872014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
3688
3689 PR c++/58702
3690 * semantics.c (finish_omp_reduction_clause): Check type for
3691 error_mark_node.
3692
2e5e7103
JM
36932014-01-28 Jason Merrill <jason@redhat.com>
3694
15b31f8c
JM
3695 PR c++/59791
3696 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
3697 (tsubst_copy): Use it if lookup fails.
3698
4c690cea
JM
3699 PR c++/59818
3700 * pt.c (tsubst_function_type): Make sure we keep the same function
3701 quals.
3702
0f59a31d
JM
3703 PR c++/58701
3704 * semantics.c (build_anon_member_initialization): Stop walking
3705 when we run out of COMPONENT_REFs.
3706
3807059e
JM
3707 PR c++/58632
3708 * decl.c (lookup_and_check_tag): Ignore template parameters if
3709 scope == ts_current.
3710 * pt.c (check_template_shadow): Don't complain about the injected
3711 class name.
3712
1377eb9a
JM
3713 * decl.c (duplicate_decls): Tweak.
3714
2e5e7103
JM
3715 PR c++/53756
3716 * mangle.c (write_unqualified_name): Handle operator auto.
3717
64d34897
JM
37182014-01-27 Jason Merrill <jason@redhat.com>
3719
63a18c8e
JM
3720 PR c++/59823
3721 Core DR 1138
3722 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
3723 list-initialization. A conversion to rvalue ref that involves
3724 an lvalue-rvalue conversion is bad.
3725 (convert_like_real): Give helpful error message.
3726
b89cc12b
JM
3727 PR c++/54652
3728 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
3729
9e73c3f3
JM
3730 PR c++/58504
3731 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
3732 types.
3733
b25c2a2f
JM
3734 PR c++/58606
3735 * pt.c (template_parm_to_arg): Call convert_from_reference.
3736 (tsubst_template_arg): Don't strip reference refs.
3737
1b87c991
JM
3738 PR c++/58639
3739 * call.c (build_aggr_conv): Reject value-initialization of reference.
3740
11074000
JM
3741 PR c++/58812
3742 PR c++/58651
3743 * call.c (convert_like_real): Give helpful error about excess braces
3744 for ck_rvalue of scalar type.
3745
f235ad11
JM
3746 Core DR 1288
3747 * call.c (reference_binding): Only elide braces if the single
3748 element is reference-related.
3749
30f6b784
JM
3750 PR c++/58814
3751 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
3752 stabilizing.
3753
9cca4e3d
JM
3754 PR c++/58837
3755 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
3756 FUNCTION_DECL.
3757
64d34897
JM
3758 PR c++/59097
3759 * decl.c (compute_array_index_type): Don't call
3760 maybe_constant_value for a non-integral expression.
3761
b72271b9
BI
37622014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
3763
3764 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
3765 flag_cilkplus.
3766 * cp-gimplify.c (cp_genericize): Likewise.
3767 * decl.c (grokfndecl): Likewise.
3768 * parser.c (cp_parser_postfix_expression): Likewise.
3769 (cp_parser_postfix_open_square_expression): Likewise.
3770 (cp_parser_direct_declarator): Likewise.
3771 (is_cilkplus_vector_p): Likewise.
3772 (cp_parser_omp_clause_name): Likewise.
3773 (cp_parser_omp_all_clauses): Likewise.
3774 * pt.c (apply_late_template_attributes): Likewise.
3775 * typeck.c (cp_build_array_ref): Likewise.
3776 (cp_build_compound_expr): Likewise.
3777 (check_return_expr): Likewise.
3778
114bf260
JM
37792014-01-24 Jason Merrill <jason@redhat.com>
3780
233aedf4
JM
3781 PR c++/58550
3782 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
3783 c++11 into error.
3784
114bf260
JM
3785 PR c++/59886
3786 PR c++/59659
3787 * typeck2.c (process_init_constructor_array): Don't create
3788 RANGE_EXPR yet.
3789
2cbf3dd7
JJ
37902014-01-24 Jakub Jelinek <jakub@redhat.com>
3791
3792 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
3793 handling for RANGE_ARRAY case.
3794
f9e2a506
PC
37952014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
3796
3797 PR c++/57524
3798 * name-lookup.c (push_using_directive): Use timevar_cond_start.
3799
393e8e8b
MP
38002014-01-23 Marek Polacek <polacek@redhat.com>
3801
3802 PR c/59846
3803 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
3804
f04dda30
MP
38052014-01-23 Marek Polacek <polacek@redhat.com>
3806
3807 PR c/58346
3808 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
3809 an empty aggregate.
3810
928d850f
JM
38112014-01-23 Jason Merrill <jason@redhat.com>
3812
20f18c3c
JM
3813 PR c++/55189
3814 * cp-tree.h (struct language_function): Add infinite_loop and
3815 infinite_loops.
3816 (current_function_infinite_loop): New.
3817 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
3818 (break_maybe_infinite_loop): New.
3819 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
3820 (finish_do_stmt, finish_for_cond, finish_for_stmt)
3821 (begin_range_for_stmt): Use them.
3822 * decl.c (finish_function): Don't warn about missing return
3823 if current_function_infinite_loop.
3824 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
3825 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
3826
928d850f
JM
3827 * call.c (build_op_delete_call): Use make_tree_vector and
3828 release_tree_vector.
3829
ea15e254
PC
38302014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
3831
3832 PR c++/58980
3833 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
3834 nested_name_specifier.
3835
74558dd9
BI
38362014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
3837
3838 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
3839 see if there is an attribute after function decl. If so, then
3840 parse them now.
3841 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
3842 enabled function late parsing.
3843 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
3844 attribute for a SIMD-enabled function.
3845 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
3846 the function is used by SIMD-enabled function (indicated by NULL
3847 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
3848 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
3849 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
3850 vectorlength clause in SIMD-enabled function and #pragma SIMD's
3851 vectorlength clause. Added a new bool parameter to differentiate
3852 between the two.
3853 (cp_parser_cilk_simd_fn_vector_attrs): New function.
3854 (is_cilkplus_vector_p): Likewise.
3855 (cp_parser_late_parsing_elem_fn_info): Likewise.
3856 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
3857 and "vectorlength" clauses when Cilk Plus is enabled.
3858 (cp_parser_omp_clause_linear): Added a new parameter of type bool
3859 and emit a sorry message when step size is a parameter.
3860 * parser.h (cp_parser::cilk_simd_fn_info): New field.
3861 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
3862 flag_openmp.
3863 * pt.c (apply_late_template_attributes): Likewise.
3864
652fea39
JJ
38652014-01-23 Jakub Jelinek <jakub@redhat.com>
3866
3867 PR middle-end/58809
3868 * semantics.c (finish_omp_reduction_clause): Reject
3869 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
3870
32ab58b2
VV
38712014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
3872
3873 PR c++/59482
3874 * parser.c (cp_parser_class_head): Push the class before parsing
3875 the base-clause, pop after it.
3876
621955cb
EB
38772014-01-20 Eric Botcazou <ebotcazou@adacore.com>
3878
3879 * decl2.c (cpp_check): Revert prototype change.
3880
a95aef3c
PC
38812014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
3882
3883 PR c++/59270
3884 PR c++/58811
3885 * init.c (build_value_init_noctor): Don't pass error_mark_node to
3886 build_value_init.
3887
12185846
PC
38882014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
3889
3890 PR c++/59269
3891 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
3892 only when errorcount == 0.
3893
0ffc4683
MP
38942014-01-17 Marek Polacek <polacek@redhat.com>
3895
3896 PR c++/59838
3897 * cvt.c (ocp_convert): Don't segfault on non-existing
3898 ENUM_UNDERLYING_TYPE.
3899
cfb1582c
JM
39002014-01-16 Jason Merrill <jason@redhat.com>
3901
3902 PR c++/59821
3903 * tree.c (bot_manip): Update the location of builtin_LINE and
3904 builtin_FILE calls.
3905
41852027
JM
39062014-01-14 Jason Merrill <jason@redhat.com>
3907
3908 PR c++/59659
3909 * typeck2.c (massage_init_elt): New.
3910 (process_init_constructor_record)
3911 (process_init_constructor_union): Use it.
3912 (process_init_constructor_array): Use it. Use RANGE_EXPR.
3913 (split_nonconstant_init_1): Handle it.
3914 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
3915
9a74f20c
BI
39162014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
3917
3918 PR c++/59631
3919 * parser.c (cp_parser_postfix_expression): Added a new if-statement
3920 and replaced an existing if-statement with else-if statement.
3921 Changed an existing error message wording to match the one from the C
3922 parser.
3923
f585f02f
JM
39242014-01-08 Jason Merrill <jason@redhat.com>
3925
3926 PR c++/59614
3927 * class.c (abi_tag_data): Add tags field.
3928 (check_abi_tags): Initialize it.
3929 (find_abi_tags_r): Support collecting missing tags.
3930 (mark_type_abi_tags): Don't look at template args.
3931 (inherit_targ_abi_tags): New.
3932 (check_bases_and_members): Use it.
3933 * cp-tree.h (ABI_TAG_IMPLICIT): New.
3934 * mangle.c (write_abi_tags): Check it.
3935
5a5e7deb
JM
39362014-01-07 Jason Merrill <jason@redhat.com>
3937
1b7ac922
JM
3938 PR c++/58856
3939 * pt.c (num_innermost_template_parms): New.
3940 (get_underlying_template): Use it.
3941
5a5e7deb
JM
3942 PR c++/58965
3943 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
3944
1f872df7
PC
39452014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
3946
3947 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
3948 the letter of 20.11.6 about Base and Derived naming the same
3949 class type modulo cv-qualifiers.
3950
2c8c6273
AB
39512014-01-06 Adam Butcher <adam@jessamine.co.uk>
3952
3953 PR c++/59635
529a6471 3954 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
2c8c6273
AB
3955 function as unimplemented for generic lambdas with varargs.
3956
81fdaa17 3957 PR c++/59636
529a6471 3958 * parser.c (cp_parser_template_parameter): Early out with
81fdaa17
AB
3959 error_mark_node if parameter declaration was not parsed.
3960
2418d7da 3961 PR c++/59629
529a6471 3962 * parser.c (cp_parser_lambda_expression): Save/reset/restore
2418d7da
AB
3963 auto_is_implicit_function_template_parm_p around lambda body.
3964
aaa15a0d 3965 PR c++/59638
529a6471 3966 * parser.c (cp_parser_init_declarator): Undo fully implicit
aaa15a0d
AB
3967 template parameter list when declarator is not a function.
3968
5c67ba02
MG
39692014-01-03 Marc Glisse <marc.glisse@inria.fr>
3970
3971 PR c++/58950
3972 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
3973
54a990d3
TB
39742014-01-03 Tobias Burnus <burnus@net-b.de>
3975
3976 PR c++/58567
3977 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
3978
cdc23b1b
PC
39792014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
3980
3981 Core DR 1442
3982 PR c++/59165
3983 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
3984 as include_std to perform_koenig_lookup.
3985 (cp_parser_postfix_expression): Adjust.
3986 * pt.c (tsubst_copy_and_build): Likewise.
3987 * semantics.c (perform_koenig_lookup): Remove bool parameter.
3988 (omp_reduction_lookup): Adjust.
3989 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
3990 (lookup_arg_dependent): Likewise.
3991 (lookup_function_nonclass): Adjust.
3992 * name-lookup.h: Adjust declaration.
3993 * cp-tree.h: Likewise.
3994
33270bf6
MG
39952014-01-02 Marc Glisse <marc.glisse@inria.fr>
3996
3997 PR c++/59087
3998 * parser.c (cp_parser_userdef_numeric_literal): Mention
3999 -fext-numeric-literals in the message.
4000
25c541b4
MG
40012014-01-02 Marc Glisse <marc.glisse@inria.fr>
4002
4003 PR c++/59641
4004 * call.c (build_conditional_expr_1): Check the return value of
4005 force_rvalue.
4006
1a763062
MG
40072014-01-02 Marc Glisse <marc.glisse@inria.fr>
4008
4009 * call.c (convert_like_real): Check complain.
4010
4939c5f3
MG
40112014-01-02 Marc Glisse <marc.glisse@inria.fr>
4012
4013 PR c++/59378
4014 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
4015 in templates.
4016
23a5b65a
RS
40172014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
4018
4019 Update copyright years
4020
f9030485
RS
40212014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
4022
4023 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
4024 the standard form for the copyright notice.
ad41bd84 4025\f
2eed95b0 4026Copyright (C) 2014 Free Software Foundation, Inc.
ad41bd84
JM
4027
4028Copying and distribution of this file, with or without modification,
4029are permitted in any medium without royalty provided the copyright
4030notice and this notice are preserved.