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