12014-12-31  Iain Sandoe  <iain@codesourcery.com>
2
3	* parser.c (cp_parser_primary_expression): If parsing an
4	objective-c++ message expression fails, see if a lambda is present.
5	(cp_parser_objc_message_receiver): Don't assume that, if a message
6	receiver expression fails, it is a hard error.
7
82014-12-25  Jason Merrill  <jason@redhat.com>
9
10	* pt.c (check_default_tmpl_args): Uses the parameter source
11	location in the diagnostic.
12	(convert_template_argument): Just return if parm is error_mark_node.
13
14	PR c++/63522
15	* parser.c (cp_parser_type_parameter): Call
16	check_for_bare_parameter_packs on default argument.
17
182014-12-24  Paolo Carlini  <paolo.carlini@oracle.com>
19
20	PR c++/63985
21	* parser.c (cp_parser_init_declarator): Add location_t* parameter.
22	(cp_parser_simple_declaration): Provide proper diagnostic for
23	multiple declarations and initializers in range-based for loops.
24	(cp_parser_single_declaration): Adjust call.
25
262014-12-20  Jason Merrill  <jason@redhat.com>
27
28	PR c++/64359
29	* pt.c (iterative_hash_template_arg): Hash alias specializations
30	differently from their TYPE_CANONICAL.
31	(alias_template_specialization_p): Optimize.
32	(template_args_equal): Optimize alias handling.
33	(dependent_alias_template_spec_p): Only check innermost args.
34
352014-12-19  Kai Tietz  <ktietz@redhat.com>
36
37	PR c++/61198
38	* pt.c (most_general_template): Don't break for template-alias.
39
402014-12-18  Jason Merrill  <jason@redhat.com>
41
42	PR c++/64105
43	* parser.c (cp_parser_simple_type_specifier): Make auto parameter
44	before -std=c++14 an error.
45
46	PR c++/64352
47	* pt.c (tsubst_copy_and_build): Pass complain to mark_used.
48
49	PR c++/64251
50	* decl2.c (mark_used): Don't mark if in_template_function.
51
522014-12-18  Paolo Carlini  <paolo.carlini@oracle.com>
53
54	PR c++/60955
55	* pt.c (struct warning_sentinel): Move it...
56	* cp-tree.h: ... here.
57	* semantics.c (force_paren_expr): Use it.
58
592014-12-17  Jason Merrill  <jason@redhat.com>
60
61	PR c++/64333
62	* constexpr.c (cxx_bind_parameters_in_call): non_constant_args parm.
63	(cxx_eval_call_expression): Don't cache calls with non-constant args.
64	(cxx_eval_constant_expression) [COMPOUND_EXPR]: Pass true for lval.
65	(cxx_eval_unary_expression, cxx_eval_binary_expression)
66	(cxx_eval_conditional_expression): Pass	false for lval.
67
68	* constexpr.c: Change "addr" parm names to "lval".
69
70	* constexpr.c: Tweak comments and formatting.
71
722014-12-16  Paolo Carlini  <paolo.carlini@oracle.com>
73
74	PR c++/58650
75	* parser.c (cp_parser_member_declaration): Fix error recovery for
76	initialized non-static data member declared friend.
77
782014-12-15  Jan Hubicka  <hubicka@ucw.cz>
79
80	* decl2.c (decl_needed_p): When not optimizing, do not consider external
81	decls as needed.
82
832014-12-15  Jason Merrill  <jason@redhat.com>
84
85	PR c++/64297
86	* typeck.c (apply_memfn_quals): Correct wrong TYPE_CANONICAL.
87
88	N3778: Sized Deallocation
89	* call.c (non_placement_deallocation_fn_p): A global sized
90	operator delete is not a usual deallocation function until C++14.
91	(build_op_delete_call): Choose the global sized op delete if we
92	know the size.
93	* cp-tree.h: Declare non_placement_deallocation_fn_p.
94	(enum cp_tree_index): Remove CPTI_GLOBAL_DELETE_FNDECL.
95	(global_delete_fndecl): Remove.
96	* decl.c (cxx_init_decl_processing): Also declare sized op deletes.
97	(grok_op_properties): Warn about sized dealloc without the flag.
98	* init.c (build_builtin_delete_call): Remove.
99	(build_vec_delete_1, build_delete): Don't call it.
100	* decl2.c (maybe_warn_sized_delete): New.
101	(cp_write_global_declarations): Call it.
102
1032014-12-15  Paolo Carlini  <paolo.carlini@oracle.com>
104
105	PR c++/58882
106	* decl.c (check_array_designated_initializer): Diagnose gracefully
107	C99 designators which aren't integral constant-expressions; allow
108	constexpr user-defined type conversion operators.
109
1102014-12-12  Paolo Carlini  <paolo.carlini@oracle.com>
111
112	PR c++/59628
113	* semantics.c (finish_omp_reduction_clause): Early return true
114	if DECL_SAVED_TREE (id) is NULL_TREE.
115
1162014-12-12  Jason Merrill  <jason@redhat.com>
117
118	N3922
119	* pt.c (do_auto_deduction): In direct-init context, { x } deduces
120	from x.
121
122	* cp-tree.h (NAMESPACE_ABI_TAG): New.
123	* name-lookup.c (handle_namespace_attrs): Set it.
124	* class.c (check_tag): Split out from find_abi_tags_r.
125	(find_abi_tags_r): Also check namespace tags.
126	(mark_type_abi_tags): Also mark namespace tags.
127
1282014-12-12  Kai Tietz  <ktietz@redhat.com>
129
130	PR c++/63996
131	* constexpr.c (cxx_eval_loop_expr): Don't loop
132	endless on none-constant expression.
133
1342014-12-12  Jason Merrill  <jason@redhat.com>
135
136	PR c++/61402
137	* lambda.c (add_capture): Don't pass a dependent type to
138	variably_modified_type_p.
139
1402014-12-11  Jason Merrill  <jason@redhat.com>
141
142	Remove N3639 "array of runtime length" from -std=c++14.
143	* decl.c (compute_array_index_type): VLAs are not part of C++14.
144	(create_array_type_for_decl, grokdeclarator): Likewise.
145	* lambda.c (add_capture): Likewise.
146	* pt.c (tsubst): Likewise.
147	* rtti.c (get_tinfo_decl): Likewise.
148	* semantics.c (finish_decltype_type): Likewise.
149	* typeck.c (cxx_sizeof_or_alignof_type): Likewise.
150	(cp_build_addr_expr_1): Likewise.
151	* init.c (build_vec_init): Don't throw bad_array_length.
152
153	PR c++/64248
154	Revert:
155	* parser.c (cp_parser_unqualified_id): Handle __func__ here.
156	(cp_parser_primary_expression): Not here.
157
158	PR c++/57510
159	* typeck2.c (split_nonconstant_init_1): Handle arrays here.
160	(store_init_value): Not here.
161	(split_nonconstant_init): Look through TARGET_EXPR.  No longer static.
162	* cp-tree.h: Declare split_nonconstant_init.
163	* call.c (set_up_extended_ref_temp): Use split_nonconstant_init.
164
1652014-12-11  Paolo Carlini  <paolo.carlini@oracle.com>
166
167	* typeck.c (maybe_warn_about_useless_cast): Remove unnecessary
168	conditional.
169
1702014-12-10  Kai Tietz  <ktietz@redhat.com>
171
172	PR c++/64127
173	* parser.c (cp_parser_diagnose_invalid_type_name): Check id
174	for being an identifier before accessing it.
175
176	PR c++/64100
177	* typeck.c (lookup_destructor): Handle incomplete type.
178
1792014-12-09  Jason Merrill  <jason@redhat.com>
180
181	PR c++/64129
182	* decl.c (grokdeclarator): Recover from variable template
183	specialization declared as function.
184
185	PR c++/64222
186	* parser.c (cp_parser_unqualified_id): Don't declare fname while
187	parsing function parms.
188
1892014-12-03  Jason Merrill  <jason@redhat.com>
190
191	PR c++/64029
192	* decl.c (grok_reference_init): Complete array type.
193
194	PR c++/64080
195	* constexpr.c (cxx_eval_store_expression): Handle non-decl store
196	targets.
197
1982014-12-03  Paolo Carlini  <paolo.carlini@oracle.com>
199
200	PR c++/63558
201	* decl.c (identify_goto): Return a bool if diagnostic is emitted.
202	(check_previous_goto_1): Consistently emit permerror + inform.
203	(check_goto): Likewise.
204
2052014-12-03  Richard Biener  <rguenther@suse.de>
206
207	* constexpr.c (cxx_eval_builtin_function_call): Use
208	fold_build_call_array_loc.
209
2102014-12-02  Marek Polacek  <polacek@redhat.com>
211
212	* constexpr.c (cxx_eval_check_shift_p): New function.
213	(cxx_eval_binary_expression): Call it.  Set NON_CONSTANT_P if it
214	returns true.
215
2162014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>
217
218	PR c++/60859
219	* decl.c (reshape_init_r): Do not reject value-initialization of
220	scalar array element.
221
2222014-12-01  Marek Polacek  <polacek@redhat.com>
223
224	PR sanitizer/63956
225	* constexpr.c: Include ubsan.h.
226	(cxx_eval_call_expression): Bail out for IFN_UBSAN_{NULL,BOUNDS}
227	internal functions and for ubsan builtins.
228	* error.c: Include internal-fn.h.
229	(dump_expr): Add printing of internal functions.
230
2312014-12-01  Marek Polacek  <polacek@redhat.com>
232
233	* constexpr.c (literal_type_p): Return true for void type in C++14.
234
2352014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>
236
237	PR c++/60845
238	* typeck.c (finish_class_member_access_expr): Use %q#T instead of
239	%qD in error message.
240
2412014-11-29  Jakub Jelinek  <jakub@redhat.com>
242
243	* cp-gimplify.c (cxx_omp_clause_apply_fn): Remove NULL last argument
244	from create_tmp_var calls.
245
2462014-11-28  Marek Polacek  <polacek@redhat.com>
247
248	PR c/63862
249	* typeck.c (cp_build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
250	convert the right operand to integer type.
251
2522014-11-27  Kai Tietz  <ktietz@redhat.com>
253
254	PR c++/63904
255	* constexpr.c (cxx_eval_vec_init_1): Avoid
256	type-overflow issue.
257
2582014-11-26  Jason Merrill  <jason@redhat.com>
259
260	Allow partial specialization of variable templates.
261	* cp-tree.h (TINFO_USED_TEMPLATE_ID): New.
262	* decl.c (duplicate_decls): Copy it.
263	* error.c (dump_decl) [TEMPLATE_ID_EXPR]: Handle variables.
264	* parser.c (cp_parser_decltype_expr): Do call finish_id_expression
265	on template-ids.
266	* pt.c (register_specialization): Remember variable template insts.
267	(instantiate_template_1): Find the matching partial specialization.
268	(check_explicit_specialization): Allow variable partial specialization.
269	(process_partial_specialization): Likewise.
270	(push_template_decl_real): Likewise.
271	(more_specialized_partial_spec): Rename from more_specialized_class.
272	(most_specialized_partial_spec): Rename from most_specialized_class.
273	(get_partial_spec_bindings): Rename from get_class_bindings.
274
2752014-11-26  Paolo Carlini  <paolo.carlini@oracle.com>
276
277	PR c++/63757
278	* call.c (standard_conversion): Do not require expr to be non-null
279	when NULLPTR_TYPE_P (from) is true.
280
2812014-11-26  Jason Merrill  <jason@redhat.com>
282
283	* constexpr.c (cxx_eval_constant_expression) [SAVE_EXPR]: Avoid
284	multiple evaluation.
285
286	* constexpr.c (cxx_eval_call_expression): Don't talk about
287	flowing off the end if we're already non-constant.
288
2892014-11-26  Ville Voutilainen  <ville.voutilainen@gmail.com>
290
291	Diagnose string constant conversion to char* in c++11 and above
292	as forbidden, not deprecated.
293	* typeck.c (string_conv_p): Do a pedwarn in c++11 and above,
294	change the diagnostic for the Wwrite-strings case for c++11 and above.
295
2962014-11-24  Jason Merrill  <jason@redhat.com>
297
298	* pt.c (lookup_template_variable): Always unknown_type_node.
299
3002014-11-25  Paolo Carlini  <paolo.carlini@oracle.com>
301
302	PR c++/63786
303	* parser.c (cp_parser_label_for_labeled_statement): Check the case
304	with check_for_bare_parameter_packs.
305
3062014-11-24  Jonathan Wakely  <jwakely@redhat.com>
307	    Paolo Carlini  <paolo.carlini@oracle.com>
308
309	PR c++/63203
310	* decl.c (initialize_local_var): Add -Winit-self warning for
311	references initialized with themselves.
312
3132014-11-24  Jason Merrill  <jason@redhat.com>
314
315	PR c++/63942
316	* mangle.c (mangle_decl): If we aren't going to create a symbol
317	alias, don't build the alias DECL either.
318
3192014-11-24  Paolo Carlini  <paolo.carlini@oracle.com>
320
321	PR c++/63905
322	* cp-tree.h (lang_decl_fn): Remove constructor_attr, destructor_attr.
323
3242014-11-21  Jason Merrill  <jason@redhat.com>
325
326	PR c++/63657
327	PR c++/38958
328	* call.c (set_up_extended_ref_temp): Set TREE_USED on the reference
329	if the temporary has a non-trivial destructor.
330	* decl.c (poplevel): Don't look through references.
331
332	PR c++/63942
333	* name-lookup.c (supplement_binding_1): Override a mangling alias.
334	* mangle.c (maybe_remove_implicit_alias): New.
335	(mangle_decl): Always avoid creating conflicting alias.
336	* cp-tree.h: Adjust.
337
338	PR c++/63849
339	* mangle.c (decl_mangling_context): Use template_type_parameter_p.
340
341	PR c++/63588
342	* pt.c (uses_template_parms): Handle null argument.
343
3442014-11-21  Jakub Jelinek  <jakub@redhat.com>
345
346	PR target/63764
347	* typeck.c (cp_build_array_ref): Adjust
348	convert_vector_to_pointer_for_subscript caller.  If it returns true,
349	call non_lvalue_loc on the result.
350
3512014-11-20  Jason Merrill  <jason@redhat.com>
352
353	PR c++/63658
354	* pt.c (convert_nontype_argument): Call convert_from_reference.
355	(check_instantiated_arg): Don't be confused by reference refs.
356	(unify): Look through reference refs on the arg, too.
357	* mangle.c (write_template_arg): Look through reference refs.
358
359	* error.c (dump_expr): Avoid printing (*&i) for references.
360
3612014-11-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
362
363	PR c++/63959
364	* tree.c (trivially_copyable_p): Check for CP_TYPE_VOLATILE_P.
365
3662014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
367
368	* cp-objcp-common.c: Use hash_table instead of htab.
369
3702014-11-19  Jason Merrill  <jason@redhat.com>
371
372	PR c++/56041
373	* cp-tree.h (struct processing_template_decl_sentinel): New.
374	* pt.c (instantiate_non_dependent_expr_internal): Split out from...
375	(instantiate_non_dependent_expr_sfinae): Here.
376	(convert_nontype_argument): Use them.
377	* constexpr.c (fold_non_dependent_expr): Use them.
378
379	PR c++/63885
380	* constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: Don't
381	complain yet about a reference.
382	[TARGET_EXPR]: Handle TARGET_EXPR with addr == true.
383	[ADDR_EXPR]: Make sure we don't take the address of a CONSTRUCTOR.
384	(cxx_bind_parameters_in_call): In the new scheme addr is always false.
385	* typeck.c (build_address): Don't take the address of a CONSTRUCTOR.
386
387	PR c++/57979
388	* init.c (decl_really_constant_value): Rename from
389	integral_constant_value.
390	(scalar_constant_value): Similar but limited to scalar results.
391	(decl_constant_value_safe): Remove.
392	(constant_value_1): Respect return_aggregate_cst_ok_p.
393	* typeck.c (decay_conversion): Use scalar_constant_value.
394	* call.c (convert_like_real): Likewise.
395	* cvt.c (ocp_convert): No need to check CLASS_TYPE_P.
396	* typeck.c (decay_conversion): Or ARRAY_TYPE.
397	* constexpr.c (struct constexpr_ctx): Add strict field.
398	(cxx_eval_constant_expression) [VAR_DECL]: Use it to select between
399	decl_constant_value and decl_really_constant_value.
400	(cxx_eval_outermost_constant_expr): Add strict parm.
401	(maybe_constant_init): Not strict.
402	(potential_constant_expression_1): Add strict parm.
403	Shorten most internal calls with RECUR macro.
404	* cp-tree.h, pt.c, semantics.c: Adjust.
405
4062014-11-19  Jason Merrill  <jason@redhat.com>
407
408	PR c++/63928
409	* constexpr.c (cxx_eval_store_expression): Return init, not *valp.
410
4112014-11-19  Paolo Carlini  <paolo.carlini@oracle.com>
412
413	PR c++/55425
414	* constexpr.c (constexpr_fn_retval): Accept __func__, __FUNCTION__,
415	and __PRETTY_FUNCTION__.
416
4172014-11-18  Jason Merrill  <jason@redhat.com>
418
419	PR c++/63924
420	* constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: A load
421	from a variable of empty class type is constant.
422
423	* constexpr.c (cxx_eval_statement_list): Handle statement-expressions.
424	(potential_constant_expression_1): Handle STMT_EXPR.
425
426	* constexpr.c (cxx_eval_constant_expression): Give jump_target a
427	default argument.
428	(lots): Omit NULL jump_target arguments.
429
430	* constexpr.c (struct constexpr_ctx): Add quiet field.
431	(cxx_eval_outermost_constant_expr, is_sub_constant_expr): Set it.
432	(lots): Replace allow_non_constant parameter with ctx->quiet.
433
434	PR c++/63940
435	* constexpr.c (cxx_eval_binary_expression): Don't assume the
436	expression was already folded.
437	(cxx_eval_unary_expression): Likewise.
438
4392014-11-18  Marc Glisse  <marc.glisse@inria.fr>
440
441	PR libstdc++/43622
442	* rtti.c (emit_support_tinfos): Handle __float128.
443
4442014-11-18  Jason Merrill  <jason@redhat.com>
445
446	PR c++/63925
447	* constexpr.c (cxx_eval_increment_expression): Use POINTER_PLUS_EXPR.
448
449	PR c++/63934
450	* constexpr.c (cxx_eval_call_expression): Check DECL_CONSTRUCTOR_P
451	rather than VOID_TYPE_P.
452
453	* pt.c (instantiate_template_1): Use tsubst_aggr_type for context.
454
455	PR c++/58102
456	* typeck2.c (store_init_value): Set it.
457	* cp-tree.h (CONSTRUCTOR_MUTABLE_POISON): New.
458	* constexpr.c (cxx_eval_outermost_constant_expr): Check it.
459
4602014-11-17  Jason Merrill  <jason@redhat.com>
461
462	PR c++/33911
463	* call.c (build_call_a): Don't warn_deprecated_use here.
464	(build_over_call): Or here.
465	* decl2.c (mark_used): Do it here.
466	(is_late_template_attribute): Attribute deprecated is not deferred.
467	(cplus_decl_attributes): Propagate TREE_DEPRECATED out to the template.
468	* parser.c (cp_parser_template_name): Warn about deprecated template.
469	(cp_parser_template_argument): Likewise.
470
471	PR c++/50473
472	* decl.c (cp_finish_decl): Don't try to process a non-dependent
473	constant initializer for a reference.
474	* pt.c (value_dependent_expression_p): A reference is always
475	dependent.
476	* call.c (extend_ref_init_temps_1): Also clear TREE_SIDE_EFFECTS
477	on any NOP_EXPRs.
478
479	Handle C++14 constexpr flow control.
480	* constexpr.c (cxx_eval_loop_expr, cxx_eval_switch_expr): New.
481	(cxx_eval_statement_list): New.
482	(cxx_eval_constant_expression): Handle LABEL_EXPR,
483	CASE_LABEL_EXPR, GOTO_EXPR, LOOP_EXPR, SWITCH_EXPR.  Handle jump
484	semantics of RETURN_EXPR.
485	(many functions): Add jump_target parameter.
486	(returns, breaks, continues, switches, label_matches): New.
487	* cp-tree.h (LABEL_DECL_BREAK, LABEL_DECL_CONTINUE): New.
488	* cp-gimplify.c (begin_bc_block): Set them.
489
490	* cp-gimplify.c (genericize_cp_loop): Use LOOP_EXPR.
491	(genericize_for_stmt): Handle null statement-list.
492
493	* constexpr.c (use_new_call): Always use new call handling.
494
495	C++14 constexpr support (minus loops and multiple returns)
496	* constexpr.c (use_new_call): New macro.
497	(build_data_member_initialization): Ignore non-mem-inits.
498	(check_constexpr_bind_expr_vars): Remove C++14 checks.
499	(constexpr_fn_retval): Likewise.
500	(check_constexpr_ctor_body): Do nothing in C++14.
501	(massage_constexpr_body): In C++14 only collect mem-inits.
502	(get_function_named_in_call): Handle null CALL_EXPR_FN.
503	(cxx_bind_parameters_in_call): Build bindings in same order as
504	parameters.  Don't treat iniviref parms specially in new call mode.
505	(cxx_eval_call_expression): If use_new_call, do constexpr expansion
506	based on DECL_SAVED_TREE rather than the massaged constexpr body.
507	Set up ctx->object from AGGR_INIT_EXPR_SLOT if we don't have one.
508	(is_sub_constant_expr): Don't mess with ctx.ctor here.
509	(cxx_eval_component_reference): A null element means we're mid-
510	initialization.
511	(cxx_eval_store_expression, cxx_eval_increment_expression): New.
512	(cxx_eval_constant_expression): Handle RESULT_DECL, DECL_EXPR,
513	MODIFY_EXPR, STATEMENT_LIST, BIND_EXPR, USING_STMT,
514	PREINCREMENT_EXPR, POSTINCREMENT_EXPR, PREDECREMENT_EXPR,
515	POSTDECREMENT_EXPR.  Don't look into DECL_INITIAL of variables in
516	constexpr functions.  In new-call mode find parms in the values table.
517	(potential_constant_expression_1): Handle null CALL_EXPR_FN.
518	Handle STATEMENT_LIST, MODIFY_EXPR, MODOP_EXPR, IF_STMT,
519	PREINCREMENT_EXPR, POSTINCREMENT_EXPR, PREDECREMENT_EXPR,
520	POSTDECREMENT_EXPR, BIND_EXPR, WITH_CLEANUP_EXPR,
521	CLEANUP_POINT_EXPR, MUST_NOT_THROW_EXPR, TRY_CATCH_EXPR,
522	EH_SPEC_BLOCK, EXPR_STMT, DECL_EXPR, CASE_LABEL_EXPR, BREAK_STMT,
523	CONTINUE_STMT, USING_STMT, IF_STMT, DO_STMT, FOR_STMT, WHILE_STMT,
524	SWITCH_STMT, ASM_EXPR.
525	(cxx_eval_vec_init_1): Call build_aggr_init_expr.
526	(cxx_eval_indirect_ref): Don't return a CONSTRUCTOR when the
527	caller wants an lvalue.
528	(cxx_eval_outermost_constant_expr): Pull object out of AGGR_INIT_EXPR.
529	(maybe_constant_init): Look through INIT_EXPR.
530	(ensure_literal_type_for_constexpr_object): Set
531	cp_function_chain->invalid_constexpr.
532	* cp-tree.h (struct language_function): Add invalid_constexpr bitfield.
533	* decl.c (start_decl): Set cp_function_chain->invalid_constexpr.
534	(check_for_uninitialized_const_var): Likewise.
535	(maybe_save_function_definition): Check it.
536	* parser.c (cp_parser_jump_statement): Set
537	cp_function_chain->invalid_constexpr.
538	(cp_parser_asm_definition): Likewise.
539
540	PR c++/52282
541	* decl.c (build_ptrmemfunc_type): Don't build a different
542	RECORD_TYPE for a qualified PMF.
543	* cp-tree.h (TYPE_PTRMEMFUNC_FN_TYPE): Merge cv-quals.
544	(TYPE_PTRMEMFUNC_FN_TYPE_RAW): New.
545	* decl2.c (cplus_decl_attributes): Use TYPE_PTRMEMFUNC_FN_TYPE_RAW.
546	* tree.c (cp_walk_subtrees): Likewise.
547	(cp_build_qualified_type_real): Remove special PMF handling.
548
5492014-11-15  Jason Merrill  <jason@redhat.com>
550
551	* parser.c (cp_parser_omp_declare_reduction_exprs): A block is not
552	an expression.
553
554	* constexpr.c (cxx_eval_builtin_function_call): Use
555	fold_builtin_call_array.
556
557	* constexpr.c (cx_check_missing_mem_inits): Clarify error message.
558
5592014-11-14  Paolo Carlini  <paolo.carlini@oracle.com>
560
561	* semantics.c (end_maybe_infinite_loop): Use fold_non_dependent_expr.
562	* parser.c (cp_parser_omp_clause_collapse): Likewise.
563	(cp_parser_enumerator_definition): Don't call
564	instantiate_non_dependent_expr...
565	* decl.c (build_enumerator): ... call fold_non_dependent_expr here.
566	* typeck2.c (massage_init_elt): Use fold_non_dependent_expr.
567	* constexpr.c (maybe_constant_value): Allow VIEW_CONVERT_EXPR in
568	the final gcc_assert.
569
570	* constexpr.c (fold_non_dependent_expr): Add.
571	* cp-tree.h (fold_non_dependent_expr): Declare it.
572	* call.c (null_ptr_cst_p): Use it.
573	* pt.c (tsubst_copy_and_build, build_non_dependent_expr): Likewise.
574	* semantics.c (begin_maybe_infinite_loop): Likewise.
575	* typeck.c (cp_build_binary_op): Likewise.
576	* typeck2.c (check_narrowing): Likewise.
577
578	* pt.c (fold_non_dependent_expr): Rename to
579	instantiate_non_dependent_expr.
580	(fold_non_dependent_expr_sfinae): Rename to
581	instantiate_non_dependent_expr_sfinae.
582	(convert_nontype_argument, build_non_dependent_expr): Adjust.
583	* decl.c (compute_array_index_type): Likewise.
584	* parser.c (cp_parser_parenthesized_expression_list,
585	cp_parser_enumerator_definition, cp_parser_omp_clause_collapse):
586	Likewise.
587	* semantics.c (end_maybe_infinite_loop, finish_static_assert):
588	Likewise.
589	* typeck.c (cxx_alignas_expr): Likewise.
590	* typeck2.c (store_init_value, massage_init_elt): Likewise.
591	* call.c: Adjust comments.
592	* class.c: Likewise.
593	* constexpr.c: Likewise.
594	* decl2.c: Likewise.
595	* tree.c: Likewise.
596
5972014-11-14  Jonathan Wakely  <jwakely@redhat.com>
598
599	* mangle.c (find_substitution): Look for abi_tag on class templates.
600
6012014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
602	    Thomas Schwinge  <thomas@codesourcery.com>
603	    Ilya Verbin  <ilya.verbin@intel.com>
604	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
605
606	* Make-lang.in (c++.install-common): Do not install for the offload
607	compiler.
608
6092014-11-13  Kai Tietz  <ktietz@redhat.com>
610
611	* cp-tree.h (cp_build_function_call): Remove prototype.
612	(cp_build_addr_expr_strict): Likewise.
613	(build_typed_address): Likewise.
614	* typeck.c (build_typed_address): Removed.
615	(cp_build_addr_expr_strict): Make static.
616	(cp_build_function_call): Likewise.
617
6182014-11-12  Paolo Carlini  <paolo.carlini@oracle.com>
619
620	DR 1510
621	PR c++/60420
622	* cp-tree.h (struct cp_decl_specifier_seq): Add decltype_p bool field.
623	* decl.c (grokdeclarator): Use it.
624	* parser.c (cp_parser_simple_type_specifier): Likewise.
625	* pt.c (tsubst, case DECLTYPE_TYPE): Use tf_ignore_bad_quals.
626
6272014-11-11  Paolo Carlini  <paolo.carlini@oracle.com>
628
629	PR c++/63265
630	* pt.c (tsubst_copy_and_build, case COND_EXPR): Maybe fold to
631	constant the condition.
632
6332014-11-10  Andi Kleen  <ak@linux.intel.com>
634
635	* semantics.c (finish_goto_stmt): Call check_no_cilk.
636	(finish_while_stmt_cond): Dito.
637	(finish_do_stmt): Dito.
638	(finish_for_cond): Dito.
639	(finish_switch_cond): Dito.
640
6412014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
642
643	* typeck.c (cp_build_binary_op): Use OPT_Wshift_count_negative and
644	OPT_Wshift_count_overflow in the warnings.
645
6462014-11-09  Jason Merrill  <jason@redhat.com>
647
648	DR 799
649	* typeck.c (build_reinterpret_cast_1): reinterpret_cast to the
650	same scalar type is an rvalue.
651
652	DR 2007
653	* call.c (build_new_op_1): Don't do non-class lookup for =, -> or [].
654
6552014-11-07  Jason Merrill  <jason@redhat.com>
656
657	DR 1558
658	* pt.c (dependent_alias_template_spec_p): New.
659	(dependent_type_p_r): Handle dependent alias template specialization.
660	(template_args_equal): A dependent alias template specializations
661	is not equal to its underlying type as a template argument.
662	* tree.c (strip_typedefs): Don't strip a dependent alias
663	template-id.
664
665	* parser.c (cp_parser_unqualified_id): Handle __func__ here.
666	(cp_parser_primary_expression): Not here.
667
6682014-11-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
669
670	PR c++/63366
671	* decl.c (grokdeclarator): Fix __complex meaning __complex double.
672
6732014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
674
675	* constexpr.c: Remove redundant enum from machine_mode.
676
6772014-10-28  Jason Merrill  <jason@redhat.com>
678
679	* constexpr.c (cxx_eval_outermost_constant_expr): Tweak.
680
6812014-10-28  Andrew MacLeod  <amacleod@redhat.com>
682
683	* call.c: Adjust include files.
684	* class.c: Ditto.
685	* decl2.c: Ditto.
686	* decl.c: Ditto.
687	* lambda.c: Ditto.
688	* mangle.c: Ditto.
689	* method.c: Ditto.
690	* optimize.c: Ditto.
691	* parser.c: Ditto.
692	* semantics.c: Ditto.
693	* tree.c: Ditto.
694	* vtable-class-hierarchy.c: Ditto.
695
6962014-10-24  Jason Merrill  <jason@redhat.com>
697
698	Implement N3653 (Member initializers and aggregates) and fix
699	references to 'this' in constexpr constructors.
700	* class.c (check_field_decls): In C++14 an NSDMI does not make the
701	class non-aggregate.
702	* constexpr.c (struct constexpr_ctx): New.
703	(cxx_bind_parameters_in_call): Handle 'this'.
704	(cxx_eval_call_expression): Create new constexpr_ctx.
705	(cxx_eval_component_reference): Check CONSTRUCTOR_NO_IMPLICIT_ZERO.
706	(initialized_type, init_subob_ctx, verify_ctor_sanity): New.
707	(cxx_eval_bare_aggregate): Use them.  Build CONSTRUCTOR early.
708	(cxx_eval_vec_init_1): Likewise.
709	(cxx_eval_constant_expression) [PARM_DECL]: Allow 'this'.
710	[TARGET_EXPR]: Build new constexpr_ctx.
711	[PLACEHOLDER_EXPR]: New.
712	(cxx_eval_outermost_constant_expr): Build new constexpr_ctx.  Add
713	object parameter.
714	(is_sub_constant_expr): Build new constexpr_ctx.
715	(potential_constant_expression_1): Handle PLACEHOLDER_EXPR.
716	Allow 'this'.
717	* cp-gimplify.c (cp_gimplify_init_expr): Call replace_placeholders.
718	* cp-tree.h (CONSTRUCTOR_NO_IMPLICIT_ZERO): New.
719	* error.c (dump_expr): Handle PLACEHOLDER_EXPR.
720	* init.c (get_nsdmi): Generate PLACEHOLDER_EXPR.
721	* tree.c (lvalue_kind): Handle PLACEHOLDER_EXPR.
722	(build_ctor_subob_ref, replace_placeholders): New.
723	* typeck2.c (store_init_value): Use replace_placeholders.
724	(process_init_constructor_record): Make zero-init before NSDMI
725	explicit.
726
7272014-10-27  Andrew MacLeod  <amacleod@redhat.com>
728
729	* cp-gimplify.c: Adjust include files.
730
7312014-10-26  Manuel L��pez-Ib����ez  <manu@gcc.gnu.org>
732
733	PR c++/53061
734	* cp-objcp-common.c: Do not include new.
735	(cxx_initialize_diagnostics): Move from here to ...
736	* error.c (cxx_initialize_diagnostics): : ... here. Move
737	diagnostics initialization here from init_error.
738	(cxx_pp): Use a real pointer not a macro.
739	(init_error): Just initialize cxx_pp.
740	* cxx-pretty-print.c (cxx_pretty_printer::cxx_pretty_printer): Do
741	not set maximum line length.
742
7432014-10-23  Jonathan Wakely  <jwakely@redhat.com>
744
745	PR c++/63619
746	* decl2.c (delete_sanity): Use OPT_Wdelete_incomplete in warning.
747
7482014-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
749
750	* parser.c (cp_parser_unary_expression): Add default arguments.
751	(cp_parser_cast_expression, cp_parser_sizeof_operand,
752	cp_parser_omp_atomic): Adjust.
753
7542014-10-20  Jason Merrill  <jason@redhat.com>
755
756	PR c++/63601
757	* lambda.c (current_nonlambda_function): New.
758	* semantics.c (finish_this_expr): Use it.
759	* cp-tree.h: Declare it.
760
7612014-10-17  Alan Modra  <amodra@gmail.com>
762
763	PR middle-end/61848
764	* decl.c (merge_decls): Don't merge section name, comdat group or
765	tls model to newdecl symtab node, instead merge to olddecl.
766	Override existing olddecl section name.  Set tls_model for all
767	thread-local vars, not just OMP thread-private ones.  Remove
768	incorrect comment.
769
7702014-10-16  Andrew MacLeod  <amacleod@redhat.com>
771
772	* cp-tree.h: Adjust include files.
773
7742014-10-15  Jason Merrill  <jason@redhat.com>
775
776	PR c++/63528
777	* pt.c (lookup_template_variable): Call coerce_template_parms.
778
7792014-10-15  Paolo Carlini  <paolo.carlini@oracle.com>
780
781	* semantics.c (is_instantiation_of_constexpr, literal_type_p,
782	ensure_literal_type_for_constexpr_object,
783	constexpr_fundef_hasher::equal, constexpr_fundef_hasher::hash,
784	retrieve_constexpr_fundef, is_valid_constexpr_fn,
785	build_anon_member_initialization, build_data_member_initialization,
786	check_constexpr_bind_expr_vars, check_constexpr_ctor_body_1,
787	check_constexpr_ctor_body, sort_constexpr_mem_initializers,
788	build_constexpr_constructor_member_initializers, constexpr_fn_retval,
789	massage_constexpr_body, cx_check_missing_mem_inits,
790	register_constexpr_fundef, explain_invalid_constexpr_fn,
791	constexpr_call_hasher::hash, constexpr_call_hasher::equal,
792	maybe_initialize_constexpr_call_table, get_function_named_in_call,
793	get_nth_callarg, lookup_parameter_binding,
794	cxx_eval_builtin_function_call, adjust_temp_type,
795	cxx_bind_parameters_in_call, push_cx_call_context,
796	pop_cx_call_context, cx_error_context, cxx_eval_call_expression,
797	reduced_constant_expression_p, verify_constant,
798	cxx_eval_unary_expression, cxx_eval_binary_expression,
799	cxx_eval_conditional_expression, cxx_eval_array_reference,
800	cxx_eval_component_reference, cxx_eval_bit_field_ref,
801	cxx_eval_logical_expression, base_field_constructor_elt,
802	cxx_eval_bare_aggregate, cxx_eval_vec_init_1, cxx_eval_vec_init,
803	cxx_fold_indirect_ref, cxx_eval_indirect_ref, non_const_var_error,
804	cxx_eval_trinary_expression, var_in_constexpr_fn,
805	cxx_eval_constant_expression, cxx_eval_outermost_constant_expr,
806	is_sub_constant_expr, cxx_constant_value, maybe_constant_value,
807	maybe_constant_init, potential_constant_expression_1,
808	potential_constant_expression, potential_rvalue_constant_expression,
809	require_potential_constant_expression,
810	require_potential_rvalue_constant_expression): Moved definitions...
811	* constexpr.c: ... here, new file.
812	* Make-lang.in: Update.
813	* config-lang.in: Likewise.
814
8152014-10-14  Jason Merrill  <jason@redhat.com>
816
817	PR c++/63455
818	* parser.c (struct saved_token_sentinel): New.
819	(cp_parser_statement): Use it.
820	(cp_parser_start_tentative_firewall): New.
821	(cp_parser_end_tentative_firewall): New.
822	(cp_parser_lambda_expression): Use them.
823	(cp_parser_statement_expr): New.
824	(cp_parser_primary_expression): Use it.
825
8262014-10-14  DJ Delorie  <dj@redhat.com>
827
828	* typeck.c (cp_common_type): Check for all __intN types, not just
829	__int128.
830	* decl.c (grokdeclarator): Likewise.
831	* rtti.c (emit_support_tinfos): Check for all __intN types, not just
832	__int128.
833	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Check
834	for all __intN types, not just __int128.
835	(cp_parser_simple_type_specifier): Likewise.
836	* mangle.c (integer_type_codes): Remove int128-specific codes.
837	* cp-tree.h (cp_decl_specifier_seq): Add int_n_idx to store which
838	__intN was specified.
839	* lex.c (init_reswords): Reserve all __intN keywords.
840
8412014-10-14  Marc Glisse  <marc.glisse@inria.fr>
842
843	* typeck.c (cp_build_unary_op) [TRUTH_NOT_EXPR]: Accept float vectors.
844
8452014-10-13  H.J. Lu  <hongjiu.lu@intel.com>
846
847	* mangle.c (mangle_conv_op_name_for_type): Cast elements to
848	unsigned long.
849	(print_template_statistics): Cast size and elements to long.
850
8512014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
852
853	* cp-gimplify.c, cp-tree.h, decl.c, mangle.c, name-lookup.c,
854	pt.c, semantics.c, tree.c, typeck2.c: Use hash_table instead of
855	hashtab.
856
8572014-10-10  Jason Merrill  <jason@redhat.com>
858
859	PR c++/62115
860	* class.c (build_base_path): Preserve rvalueness.
861	* call.c (convert_like_real) [ck_base]: Let convert_to_base handle &/*.
862	* rtti.c (build_dynamic_cast_1): Call convert_to_reference later.
863
864	PR c++/63194
865	* method.c (defaulted_late_check): Call maybe_instantiate_noexcept.
866
867	* method.c (implicitly_declare_fn): Handle deleted lambda default
868	ctor and copy assop here.
869	* class.c (check_bases_and_members): Not here.
870	(add_implicitly_declared_members): And don't set
871	CLASSTYPE_LAZY_MOVE_ASSIGN.
872
873	* semantics.c (finish_id_expression): Check for error_mark_node.
874
8752014-10-09  Jason Merrill  <jason@redhat.com>
876
877	PR c++/63207
878	* semantics.c (outer_var_p): Non-static.
879	(process_outer_var_ref): Split out from finish_id_expression.
880	* pt.c (tsubst_copy_and_build): Call them.
881	* cp-tree.h: Declare them.
882
8832014-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
884
885	* semantics.c (check_constexpr_ctor_body_1): New.
886	(check_constexpr_ctor_body): Use it; add bool parameter.
887	(build_data_member_initialization): Handle BIND_EXPR and
888	USING_STMT in the main conditional.
889	(build_constexpr_constructor_member_initializers): Do not
890	handle BIND_EXPR here.
891	(constexpr_fn_retval): Handle BIND_EXPR in the switch.
892	(massage_constexpr_body): Don't do it here.
893	* parser.c (cp_parser_ctor_initializer_opt_and_function_body):
894	Adjust check_constexpr_ctor_body call.
895	(cp_parser_compound_statement): Do not pedwarn for compound-statement
896	in constexpr function in C++14 mode.
897	* cp-tree.h (check_constexpr_ctor_body): Update declaration.
898
8992014-10-09  Jason Merrill  <jason@redhat.com>
900
901	PR c++/63309
902	* parser.c (cp_parser_class_head): push_template_decl for members
903	of templates, too.
904
905	PR c++/63415
906	* pt.c (value_dependent_expression_p) [CONSTRUCTOR]: Check the type.
907	(iterative_hash_template_arg): Likewise.
908
909	PR c++/63437
910	* cp-tree.h (REF_PARENTHESIZED_P): Also allow INDIRECT_REF.
911	* semantics.c (force_paren_expr): And set it.
912	* typeck.c (check_return_expr): And handle it.
913
9142014-10-09  Marc Glisse  <marc.glisse@inria.fr>
915
916	* decl.c (grokdeclarator): constexpr only implies const in C++11.
917
9182014-10-08  Jason Merrill  <jason@redhat.com>
919
920	PR c++/63405
921	* pt.c (tsubst_pack_expansion): Limit simple expansion to type packs.
922
923	PR c++/63485
924	* tree.c (build_cplus_array_type): Look for a type with no
925	typedef-name or attributes.
926
927	* call.c (call_copy_ctor): New.
928	(build_over_call): Use it to avoid infinite recursion on invalid code.
929
9302014-10-07  Jason Merrill  <jason@redhat.com>
931
932	* tree.c (cp_tree_equal) [TRAIT_EXPR]: Use cp_tree_equal for type2.
933
9342014-10-06  Edward Smith-Rowland  <3dw4rd@verizon.net>
935
936	* cp/parser.c: Allow [[deprecated]] for C++11.  Issue a pedwarn.
937
9382014-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
939
940	PR c++/55250
941	* semantics.c (check_constexpr_bind_expr_vars): New.
942	(check_constexpr_ctor_body, massage_constexpr_body): Use it.
943	(build_constexpr_constructor_member_initializers): Handle
944	BIND_EXPR in the main conditional.
945
9462014-10-02  Mark Wielaard  <mjw@redhat.com>
947
948	PR debug/63239
949	* cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
950	(cp_function_decl_deleted_p): New prototype.
951	* cp-objcp-common.c (cp_function_deleted_p): New function.
952
9532014-10-03  Marc Glisse  <marc.glisse@inria.fr>
954
955	PR c++/54427
956	PR c++/57198
957	PR c++/58845
958	* typeck.c (cp_build_binary_op): save_expr after convert to save
959	redundant operations.
960	[TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR]: Handle vectors.
961	(cp_build_unary_op) [TRUTH_NOT_EXPR]: Likewise.
962
9632014-10-03  Jason Merrill  <jason@redhat.com>
964
965	* decl.c (start_decl): Complain about static/thread_local vars
966	in constexpr function.
967	(check_for_uninitialized_const_var): Also uninitialized vars.
968	* parser.c (cp_parser_jump_statement): And gotos.
969	(cp_parser_asm_operand_list): And asm.
970	(cp_parser_try_block): And try.
971	* semantics.c (ensure_literal_type_for_constexpr_object): And
972	non-literal.
973
974	* semantics.c (constexpr_fn_retval): Ignore declarations in C++14.
975	(var_in_constexpr_fn): New.
976	(cxx_eval_constant_expression): Look into DECL_INITIAL.
977	(potential_constant_expression_1): Allow constexpr-local vars.
978
979	PR c++/63362
980	* tree.c (strip_typedefs): Handle TREE_LIST.
981
9822014-10-03  Paolo Carlini  <paolo.carlini@oracle.com>
983
984	* parser.c (cp_parser_assignment_expression,
985	cp_parser_constant_expression): Add default arguments.
986	(cp_parser_primary_expression,
987	cp_parser_postfix_open_square_expression,
988	cp_parser_parenthesized_expression_list,
989	cp_parser_question_colon_clause,
990	cp_parser_expression, cp_parser_constant_expression,
991	cp_parser_label_for_labeled_statement, cp_parser_static_assert,
992	cp_parser_template_argument, cp_parser_enumerator_definition,
993	cp_parser_member_declaration, cp_parser_constant_initializer,
994	cp_parser_noexcept_specification_opt, cp_parser_throw_expression,
995	cp_parser_std_attribute_spec, cp_parser_objc_message_args,
996	cp_parser_objc_class_ivars, cp_parser_omp_clause_collapse,
997	cp_parser_omp_clause_aligned, cp_parser_omp_clause_safelen,
998	cp_parser_omp_clause_simdlen, cp_parser_omp_clause_dist_schedule,
999	cp_parser_omp_for_incr, cp_parser_omp_for_loop_init,
1000	cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear): Adjust.
1001
10022014-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
1003
1004	PR c++/53025
1005	* cp-tree.h (struct saved_scope): Add noexcept_operand.
1006	(cp_noexcept_operand): Define.
1007	* call.c (build_over_call): Use it.
1008	* parser.c (cp_parser_unary_expression, [RID_NOEXCEPT]): Likewise.
1009	* pt.c (tsubst_copy_and_build, [NOEXCEPT_EXPR]): Likewise.
1010
10112014-10-01  Jason Merrill  <jason@redhat.com>
1012
1013	PR c++/63362
1014	* method.c (constructible_expr): Handle value-init of non-class.
1015	* parser.c (cp_parser_trait_expr): Allow pack expansion.
1016	* pt.c (tsubst_copy_and_build): Handle pack expansion.
1017
1018	PR c++/63362
1019	* class.c (type_has_non_user_provided_default_constructor): Rename
1020	from type_has_user_provided_default_constructor, reverse sense.
1021	(default_init_uninitialized_part, explain_non_literal_class): Adjust.
1022	(check_bases_and_members): Set TYPE_HAS_COMPLEX_DFLT.
1023	* call.c (build_new_method_call_1): Adjust.
1024	* cp-tree.h: Adjust.
1025	* decl.c (grok_special_member_properties): Don't set
1026	TYPE_HAS_COMPLEX_DFLT.
1027	* init.c (build_value_init_noctor): Don't use
1028	type_has_user_provided_default_constructor.
1029
10302014-09-30  Jason Merrill  <jason@redhat.com>
1031
1032	* cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_ASSIGNABLE and
1033	CPTK_IS_TRIVIALLY_CONSTRUCTIBLE.
1034	* cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
1035	* parser.c (cp_parser_primary_expression): Likewise.
1036	(cp_parser_trait_expr): Likewise.  Handle variadic trait.
1037	* semantics.c (trait_expr_value): Likewise.
1038	(finish_trait_expr): Likewise.
1039	(check_trait_type): Handle variadic trait.  Return bool.
1040	* method.c (build_stub_object): Add rvalue reference here.
1041	(locate_fn_flags): Not here.
1042	(check_nontriv, assignable_expr, constructible_expr): New.
1043	(is_trivially_xible): New.
1044
1045	* cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_COPYABLE.
1046	* cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
1047	* parser.c (cp_parser_primary_expression): Likewise.
1048	(cp_parser_trait_expr): Likewise.
1049	* semantics.c (trait_expr_value): Likewise.
1050	(finish_trait_expr): Likewise.
1051
1052	* method.c (build_stub_object): Use CONVERT_EXPR.
1053	* tree.c (build_dummy_object): Likewise.
1054	(is_dummy_object): Adjust.
1055
1056	* cp-tree.h (cp_trait_kind): Remove CPTK_IS_CONVERTIBLE_TO.
1057	* cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
1058	* semantics.c (trait_expr_value): Likewise.
1059	(finish_trait_expr): Likewise.
1060	* parser.c (cp_parser_primary_expression): Likewise.
1061	(cp_parser_trait_expr): Likewise. Remove redundant grokdeclarator.
1062
10632014-09-30  Manuel L��pez-Ib����ez  <manu@gcc.gnu.org>
1064
1065       PR c++/16564
1066       * error.c (print_instantiation_context): Delete.
1067       * typeck2.c (build_x_arrow): Record location when pushing
1068       template instantiation.
1069       * pt.c (push_tinst_level): Make it a wrapper around ...
1070       (push_tinst_level_loc): ... this. New function. Make excessive
1071       template instantiation depth a fatal error. Record location. Use
1072       bool as return type.
1073       (instantiate_pending_templates): Make excessive
1074       template instantiation depth a fatal error.
1075       (problematic_instantiation_changed): Use bool as return type.
1076       * cp-tree.h (print_instantiation_context): Delete.
1077       (push_tinst_level): Update declaration.
1078       (problematic_instantiation_changed): Likewise.
1079       (push_tinst_level_loc): New.
1080
10812014-09-29  Richard Biener  <rguenther@suse.de>
1082
1083	* typeck.c (enum_cast_to_int): Use CONVERT_EXPR_P to check
1084	for conversions.
1085
10862014-09-26  Jason Merrill  <jason@redhat.com>
1087
1088	* mangle.c (find_substitution): Use write_abi_tags.
1089
10902014-09-25  Marek Polacek  <polacek@redhat.com>
1091
1092	PR c++/61945
1093	* class.c (warn_hidden): Check for FUNCTION_DECL.
1094
10952014-09-25  Jakub Jelinek  <jakub@redhat.com>
1096
1097	PR c++/63249
1098	* semantics.c (handle_omp_array_sections_1): Call mark_rvalue_use
1099	on low_bound and length.
1100
11012014-09-24  Aldy Hernandez  <aldyh@redhat.com>
1102
1103	* class.c, decl.c, optimize.c: Rename all instances of
1104	DECL_ABSTRACT to DECL_ABSTRACT_P.
1105
11062014-09-24  Marek Polacek  <polacek@redhat.com>
1107
1108	PR c/61405
1109	PR c/53874
1110	* semantics.c (finish_switch_cond): Call unlowered_expr_type.
1111	* tree.c (bot_manip): Add default case.
1112	* parser.c (cp_parser_primary_expression): Cast the controlling
1113	expression of a switch to an int.
1114	(cp_parser_unqualified_id): Likewise.
1115
11162014-09-23  Paolo Carlini  <paolo.carlini@oracle.com>
1117
1118	PR c++/61857
1119	* parser.c (cp_parser_skip_to_closing_square_bracket,
1120	cp_parser_array_designator_p): New.
1121	(cp_parser_initializer_list): Use the latter.
1122
11232014-09-22  Jason Merrill  <jason@redhat.com>
1124
1125	* semantics.c (finish_non_static_data_member): In diagnostic, give
1126	error at point of use and note at point of declaration.
1127
1128	PR c++/63320
1129	PR c++/60463
1130	PR c++/60755
1131	* lambda.c (maybe_resolve_dummy, lambda_expr_this_capture): Handle
1132	not finding 'this'.
1133
11342014-09-22  Paolo Carlini  <paolo.carlini@oracle.com>
1135
1136	PR c++/62219
1137	* pt.c (check_default_tmpl_args): Check LAMBDA_FUNCTION_P.
1138
11392014-09-22  Jason Merrill  <jason@redhat.com>
1140
1141	* decl.c (poplevel): Don't warn about unused vars in template scope.
1142	* error.c (dump_decl): Handle variable templates.
1143
11442014-09-20  Jason Merrill  <jason@redhat.com>
1145
1146	PR c++/62017
1147	* decl.c (begin_destructor_body): Only clobber the as-base part of
1148	*this.
1149
11502014-09-19  Jason Merrill  <jason@redhat.com>
1151
1152	PR c++/61392
1153	* mangle.c (write_expression): Use unresolved-name mangling for
1154	DR850 case.
1155
1156	PR c++/61465
1157	* call.c (convert_like_real) [ck_identity]: Call mark_rvalue_use
1158	after pulling out an element from a CONSTRUCTOR.
1159
11602014-09-18  Jakub Jelinek  <jakub@redhat.com>
1161
1162	PR c++/63248
1163	* semantics.c (finish_omp_clauses): Don't call cp_omp_mappable_type
1164	on type of type dependent expressions, and don't call it if
1165	handle_omp_array_sections has kept TREE_LIST because something
1166	was type dependent.
1167	* pt.c (tsubst_expr) <case OMP_TARGET, case OMP_TARGET_DATA>:
1168	Use keep_next_level, begin_omp_structured_block and
1169	finish_omp_structured_block instead of push_stmt_list and
1170	pop_stmt_list.
1171
11722014-09-18  Paolo Carlini  <paolo.carlini@oracle.com>
1173
1174	PR c++/62232
1175	* class.c (finish_struct_1): Do not -Wnon-virtual-dtor warn
1176	for final class types.
1177
11782014-09-15  Jason Merrill  <jason@redhat.com>
1179
1180	* pt.c (lookup_template_class_1): Splice out abi_tag attribute if
1181	necessary.  Call inherit_targ_abi_tags here.
1182	* class.c (check_bases_and_members): Not here.
1183	(inherit_targ_abi_tags): Check CLASS_TYPE_P.
1184	* cp-tree.h: Declare inherit_targ_abi_tags.
1185
11862014-09-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
1187
1188	Do not diagnose lambda default arguments in c++14 modes.
1189	* parser.c (cp_parser_lambda_declarator_opt): Make the pedwarn
1190	conditional.
1191
11922014-09-15  Jakub Jelinek  <jakub@redhat.com>
1193
1194	* Make-lang.in (check_g++_parallelize): Change to just an upper bound
1195	number.
1196
11972014-09-13  Marek Polacek  <polacek@redhat.com>
1198
1199	PR c++/60862
1200	* parser.c (cp_parser_postfix_expression) <case CPP_OPEN_PAREN>: Set
1201	location of a call expression.
1202
12032014-09-11  Jason Merrill  <jason@redhat.com>
1204
1205	PR c++/63201
1206	* decl.c (start_decl): Handle specialization of member variable
1207	template.
1208	* pt.c (check_explicit_specialization): Adjust error.
1209
12102014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
1211
1212	PR c++/61489
1213	* typeck2.c (process_init_constructor_record): Do not warn about
1214	missing field initializer if EMPTY_CONSTRUCTOR_P (init).
1215
12162014-09-11  Jason Merrill  <jason@redhat.com>
1217
1218	PR c++/63139
1219	* pt.c (tsubst_pack_expansion): Simplify substitution into T....
1220	(tsubst): Don't throw away PACK_EXPANSION_EXTRA_ARGS.
1221
12222014-09-10  Jason Merrill  <jason@redhat.com>
1223
1224	PR c++/61659
1225	* decl.c (grokfndecl): Don't set DECL_COMDAT on static inlines.
1226	(duplicate_decls, start_decl): Likewise.
1227	* pt.c (check_explicit_specialization): Likewise.
1228	(push_template_decl_real): Or static templates.
1229
12302014-09-08  Jason Merrill  <jason@redhat.com>
1231
1232	* typeck.c (build_class_member_access_expr): Move
1233	-Winvalid-offsetof code...
1234	* semantics.c (finish_offsetof): ...here.
1235	* parser.c (cp_parser_builtin_offsetof): Remember the location of
1236	the type argument.
1237	* pt.c (tsubst_copy_and_build) [OFFSETOF_EXPR]: Preserve it.
1238
1239	PR c++/62255
1240	* pt.c (instantiate_decl): Handle recursive instantiation of
1241	static data member.
1242
12432014-09-05  Jason Merrill  <jason@redhat.com>
1244
1245	PR c++/62659
1246	* semantics.c (potential_constant_expression_1): Handle un-folded
1247	pointer to member constants.
1248
12492014-09-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
1250
1251	PR ipa/61659
1252	* decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on
1253	newdecl, not olddecl.
1254
12552014-09-02  Paolo Carlini  <paolo.carlini@oracle.com>
1256
1257	DR 1453
1258	* class.c (check_field_decls): A class of literal type cannot have
1259	volatile non-static data members and base classes.
1260	(explain_non_literal_class): Update.
1261
12622014-09-02  Jakub Jelinek  <jakub@redhat.com>
1263	    Balaji V. Iyer  <balaji.v.iyer@intel.com>
1264	    Igor Zamyatin  <igor.zamyatin@intel.com>
1265
1266	* cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition
1267	simplified.
1268	* parser.c (cp_parser_cilk_for): New function.
1269	(cp_parser_cilk_grainsize): Likewise.
1270	(cp_parser_statement): Added RID_CILK_FOR case.
1271	(cp_parser_omp_for_cond): Added CILK_FOR check.
1272	(cp_parser_omp_for_loop_init): Change function argument to accept
1273	tree_code instead just a bool flag; change the check to use that
1274	tree_code; check for initialization declaration in case of Cilk_for.
1275	(cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR;
1276	changed call to cp_parser_omp_for_loop_init according new arguments'
1277	list.
1278	(cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
1279	* pt.c (tsubst_expr): Added CILK_FOR case.
1280	* semantics.c: Include convert.h.
1281	(finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR
1282	case; added OMP_CLAUSE__CILK_FOR_COUNT_.
1283	(handle_omp_for_class_iterator): New argument lastp and its usage;
1284	added NE_EXPR case.
1285	(finish_omp_for): Changed call to handle_omp_for_class_iterator
1286	according new arguments' list; in case of Cilk_for save very first
1287	decl and create empty stmt_list block; use block to build correct
1288	statement tree.
1289
12902014-08-31  Jason Merrill  <jason@redhat.com>
1291
1292	PR c++/62302
1293	* optimize.c (cdtor_comdat_group): Just look at the
1294	DECL_ASSEMBLER_NAME of the 'tors.
1295
12962014-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
1297
1298	PR c++/52892
1299	* semantics.c (cxx_eval_call_expression): Use STRIP_NOPS on the
1300	result of cxx_eval_constant_expression.
1301
13022014-08-26  Jason Merrill  <jason@redhat.com>
1303
1304	PR c++/58624
1305	* pt.c (tsubst_decl) [VAR_DECL]: Copy TLS model.
1306	(tsubst_copy_and_build) [VAR_DECL]: Use TLS wrapper.
1307	* semantics.c (finish_id_expression): Don't call TLS wrapper in a
1308	template.
1309
13102014-08-25  Jason Merrill  <jason@redhat.com>
1311
1312	* pt.c (check_explicit_specialization): Don't complain about
1313	non-template variable.
1314	(template_for_substitution): Allow variable templates.
1315	(check_template_variable): Fix logic for member var template.
1316	* decl.c (start_decl): Don't complain about extra template header
1317	here.
1318
1319	* decl.c (start_decl): Look through member variable template.
1320	* pt.c (tsubst_decl) [VAR_DECL]: Handle member variable templates.
1321	* decl2.c (grokfield): Set DECL_CONTEXT earlier on
1322	variables.
1323
13242014-08-25  Paolo Carlini  <paolo.carlini@oracle.com>
1325
1326	PR c++/34938
1327	* cp-tree.h (TFF_POINTER): Add.
1328	* cxx-pretty-print.h (pp_cxx_cv_qualifiers): Forward the third
1329	argument too.
1330	* error.c (dump_type_suffix): Actually print the const and noreturn
1331	attribute when appropriate.
1332
13332014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
1334
1335	* decl.c (compute_array_index_type, grokdeclarator,
1336	undeduced_auto_decl): Change from cxx1y to cxx14.
1337	*lambda.c(add_capture()): Change error message from C++1y to C++14.
1338	* parser.c (cp_parser_unqualified_id, cp_parser_pseudo_destructor_name,
1339	cp_parser_lambda_introducer, cp_parser_lambda_declarator_opt,
1340	cp_parser_decltype, cp_parser_conversion_type_id,
1341	cp_parser_simple_type_specifier, cp_parser_type_id_1,
1342	cp_parser_template_type_arg, cp_parser_std_attribute,
1343	cp_parser_template_declaration_after_export): Ditto.
1344	* pt.c (tsubst): Ditto.
1345	* semantics.c (force_paren_expr, finish_decltype_type): Ditto.
1346	* tree.c: Change comment.
1347	* typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type,
1348	cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto.
1349
13502014-08-23  Jason Merrill  <jason@redhat.com>
1351
1352	Allow non-constexpr variable templates.
1353	* decl2.c (note_variable_template_instantiation): New.
1354	* cp-tree.h: Declare it.
1355	* pt.c (instantiate_decl): Call it.
1356	(push_template_decl_real): Allow non-constexpr variable templates.
1357	* semantics.c (finish_id_expression): Mark the variable template
1358	instantiation as used.
1359	* mangle.c (write_mangled_name): Variable template instantiations
1360	are mangled.
1361	* parser.c (cp_parser_init_declarator): Complain about
1362	non-function implicit templates.
1363
13642014-08-22  Marek Polacek  <polacek@redhat.com>
1365
1366	PR c++/62199
1367	* parser.c (cp_parser_binary_expression): Check each LHS if it's
1368	preceded with logical not.  Adjust call to
1369	warn_logical_not_parentheses.
1370
13712014-08-22  Manuel L��pez-Ib����ez  <manu@gcc.gnu.org>
1372
1373	PR c++/57709
1374	* name-lookup.c (pushdecl_maybe_friend_1): Do not warn if a
1375	declaration shadows a function declaration, unless the former
1376	declares a function, pointer to function or pointer to member
1377	function, because this is a common and valid case in real-world
1378	code.
1379	* cp-tree.h (TYPE_PTRFN_P,TYPE_REFFN_P,TYPE_PTRMEMFUNC_P):
1380	Improve description.
1381
13822014-08-22  Jason Merrill  <jason@redhat.com>
1383
1384	PR c++/62129
1385	* class.c (outermost_open_class): Fix logic.
1386	* decl.c (complete_vars): Fix logic.
1387
13882014-08-22  Jason Merrill  <jason@redhat.com>
1389
1390	PR c++/62129
1391	* class.c (outermost_open_class): New.
1392	* cp-tree.h: Declare it.
1393	* decl.c (maybe_register_incomplete_var): Use it.
1394	(complete_vars): Handle any constant variable.
1395	* expr.c (cplus_expand_constant): Handle CONSTRUCTOR.
1396
13972014-08-22  Igor Zamyatin  <igor.zamyatin@intel.com>
1398
1399	PR other/62008
1400	* cp-array-notation.c (build_array_notation_ref): Added correct
1401	handling of case with incorrect array.
1402
14032014-08-21  Manuel L��pez-Ib����ez  <manu@gcc.gnu.org>
1404
1405	PR fortran/44054
1406	* error.c (cp_diagnostic_finalizer): Delete.
1407	(init_error): Do not set diagnostic_finalizer here.
1408
14092014-08-19  Marek Polacek  <polacek@redhat.com>
1410
1411	PR c++/62153
1412	* call.c (build_new_op_1): Remember the type of arguments for
1413	a comparison.  If either operand of a comparison is a boolean
1414	expression, call maybe_warn_bool_compare.
1415
14162014-08-19  Jason Merrill  <jason@redhat.com>
1417
1418	PR tree-optimization/62091
1419	* decl2.c (decl_needed_p): Return true for virtual functions when
1420	devirtualizing.
1421
1422	PR lto/53808
1423	PR c++/61659
1424	* decl.c (maybe_commonize_var): Don't use DECL_COMDAT to trigger
1425	comdat_linkage.
1426
14272014-08-19  Gerald Pfeifer  <gerald@pfeifer.com>
1428
1429	* class.c (contains_empty_class_p): Remove.
1430
14312014-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
1432
1433	* parser.c (cp_parser_expression): Add default arguments.
1434	(cp_parser_primary_expression, cp_parser_postfix_expression,
1435	cp_parser_array_notation, cp_parser_postfix_open_square_expression,
1436	cp_parser_unary_expression, cp_parser_direct_new_declarator,
1437	cp_parser_question_colon_clause, cp_parser_assignment_operator_opt,
1438	cp_parser_lambda_body, cp_parser_expression_statement,
1439	cp_parser_condition, cp_parser_c_for, cp_parser_range_for,
1440	cp_parser_iteration_statement, cp_parser_jump_statement,
1441	cp_parser_decltype_expr, cp_parser_noexcept_specification_opt,
1442	cp_parser_asm_operand_list, cp_parser_objc_message_receiver,
1443	cp_parser_objc_synchronized_statement, cp_parser_objc_throw_statement,
1444	cp_parser_omp_var_list_no_open, cp_parser_omp_clause_num_threads,
1445	cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
1446	cp_parser_omp_clause_linear, cp_parser_omp_clause_device,
1447	cp_parser_omp_atomic, cp_parser_omp_for_loop_init,
1448	cp_parser_omp_for_loop, cp_parser_omp_declare_reduction_exprs,
1449	cp_parser_transaction_expression): Adjust.
1450
14512014-08-15  Jason Merrill  <jason@redhat.com>
1452
1453	PR c++/61566
1454	* pt.c (lookup_template_class_1): Revert recent change.
1455	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Revert recent change.
1456
1457	PR c++/61566
1458	* pt.c (instantiate_class_template_1): Ignore lambda on
1459	CLASSTYPE_DECL_LIST.
1460	(push_template_decl_real): A lambda is not primary.
1461	(lookup_template_class_1): Don't look for a lambda partial
1462	instantiation.
1463	* lambda.c (maybe_add_lambda_conv_op): Distinguish between being
1464	currently in a function and the lambda living in a function.
1465	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): False for lambda.
1466
14672014-08-15  Richard Biener  <rguenther@suse.de>
1468	    Jason Merrill  <jason@redhat.com>
1469
1470	PR bootstrap/62077
1471	* tree.c (build_min_array_type, set_array_type_canon): Split out...
1472	(build_cplus_array_type): ...from here.  Only call build_array_type
1473	for main variants.
1474
14752014-08-15  Paolo Carlini  <paolo.carlini@oracle.com>
1476
1477	PR c++/62072
1478	Revert:
1479	2014-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
1480
1481	DR 1584
1482	PR c++/57466
1483	* pt.c (check_cv_quals_for_unify): Implement resolution, disregard
1484	cv-qualifiers of function types.
1485
14862014-08-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1487
1488	* call.c (build_conditional_expr_1): Use OPT_Wextra in warning.
1489
14902014-08-14  Paolo Carlini  <paolo.carlini@oracle.com>
1491
1492	* typeck.c (composite_pointer_type, cxx_sizeof_or_alignof_type,
1493	cp_build_array_ref, cp_build_function_call_vec): When a
1494	pedwarn is suppressed under SFINAE, return error_mark_node.
1495
1496	* typeck.c (cxx_sizeof_or_alignof_type): Fix complain &
1497	tf_warning_or_error, where complain is a bool, glitch.
1498
14992014-08-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
1500
1501	PR c++/62101
1502	* decl.c (grokdeclarator): Move the check for friend initializers..
1503	* decl2.c (grokfield) ..here. Postpone early return for friends
1504	until after the initializer check.
1505
15062014-08-14  Paolo Carlini  <paolo.carlini@oracle.com>
1507
1508	PR c++/54377
1509	* pt.c (coerce_template_parms): Improve error message vs default
1510	arguments.
1511
15122014-08-14  Paolo Carlini  <paolo.carlini@oracle.com>
1513
1514	* parser.c (cp_parser_init_declarator): Remove redundant check of
1515	decl_specifiers->type.
1516
15172014-08-13  Jason Merrill  <jason@redhat.com>
1518
1519	* call.c (build_x_va_arg): Support passing non-POD through ....
1520	(convert_arg_to_ellipsis): Likewise.
1521
15222014-08-13  Andrew Sutton  <andrew.n.sutton@gmail.com>
1523
1524	* pt.c (lookup_template_variable): Make dependent variable templates
1525	have unknown type.
1526
15272014-08-13  Paolo Carlini  <paolo.carlini@oracle.com>
1528
1529	* parser.c (cp_parser_elaborated_type_specifier): Handle
1530	specially cp_parser_template_id returning a BASELINK.
1531
15322014-08-13  Paolo Carlini  <paolo.carlini@oracle.com>
1533
1534	* parser.c (cp_parser_diagnose_invalid_type_name,
1535	cp_parser_make_typename_type): Remove scope parameter.
1536	(cp_parser_parse_and_diagnose_invalid_type_name,
1537	cp_parser_elaborated_type_specifier): Adjust calls.
1538
15392014-08-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
1540
1541	Reject virt-specifiers on friends and member templates
1542	* friend.c (do_friend): Diagnose virt-specifiers.
1543	* pt.c (push_template_decl_real): Diagnose virt-specifiers.
1544
15452014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
1546
1547	* typeck2.c (check_narrowing): Add tsubst_flags_t parameter, change
1548	return type to bool; in C++11 for constants give errors, not pedwarns.
1549	* cp-tree.h (check_narrowing): Adjust declaration.
1550	* call.c (convert_like_real): Update calls.
1551	* semantics.c (finish_compound_literal): Likewise.
1552
15532014-08-08  Jason Merrill  <jason@redhat.com>
1554
1555	* pt.c (lookup_template_class_1): Copy abi_tag.
1556
15572014-08-08  Kai Tietz  <ktietz@redhat.com>
1558
1559	* semantics.c (expand_or_defer_fn_1): Check for keep-inline-dllexport
1560	that we operate on a true inline.
1561
15622014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
1563
1564	* class.c, cp-gimplify.c, decl.c, decl2.c, error.c, method.c,
1565	optimize.c, pt.c, semantics.c: Remove includes of pointer-set.h.
1566
15672014-08-07  Paolo Carlini  <paolo.carlini@oracle.com>
1568
1569	PR c++/51312
1570	* decl.c (build_enumerator): Handle class types with conversion
1571	operators via perform_implicit_conversion_flags and
1572	build_expr_type_conversion.
1573
1574	* cvt.c (build_expr_type_conversion): Replace pair of errors
1575	with error + inform.
1576
15772014-08-07  Jason Merrill  <jason@redhat.com>
1578
1579	PR c++/62043
1580	* parser.c (c_parse_file): Change sorry to fatal_error.
1581
1582	PR c++/61959
1583	* semantics.c (cxx_eval_bare_aggregate): Handle POINTER_PLUS_EXPR.
1584
15852014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
1586
1587	* cp-tree.h, pt.c: Use hash_map instead of pointer_map.
1588
15892014-08-06  Jason Merrill  <jason@redhat.com>
1590
1591	* init.c (build_vec_init): Fix constant initialization of
1592	trailing elements.
1593	(build_value_init_noctor): Call maybe_constant_init.
1594	* semantics.c (maybe_constant_init): See through EXPR_STMT and
1595	conversion to void.
1596
1597	PR c++/60417
1598	* init.c (build_vec_init): Reorganize earlier change a bit.
1599
1600	PR c++/61994
1601	* init.c (build_vec_init): Leave atype an ARRAY_TYPE
1602	if we're just returning an INIT_EXPR.
1603
16042014-08-06  Jason Merrill  <jason@redhat.com>
1605	    Braden Obrzut  <admin@maniacsvault.net>
1606
1607	* pt.c (check_explicit_specialization): Don't test
1608	DECL_DECLARED_INLINE_P for a variable template.
1609
16102014-08-06  Paolo Carlini  <paolo.carlini@oracle.com>
1611
1612	PR c++/43906
1613	* typeck.c (cp_build_binary_op): Extend to more cases the
1614	-Waddress warning.
1615
16162014-08-01  Braden Obrzut  <admin@maniacsvault.net>
1617
1618	Implement constexpr variable templates
1619	* decl.c (grokvardecl): Handle specializations of variable templates.
1620	(grokdeclarator): Handle variable template id expressions and NULL_TREE
1621	return from grokvardecl.
1622	* decl2.c (check_member_template): Allow declaration of template member
1623	variables.
1624	* parser.c (cp_parser_template_id): Build a TEMPLATE_ID_EXPR for
1625	variable templates.
1626	* pt.c (check_template_variable): Accept variable temploids at
1627	non-class scope.
1628	(push_template_decl_real): The current instantiation of a template
1629	can be a VAR_DECL.
1630	(determine_specialization): Accept variable templates.
1631	(check_explicit_specialization): Handle and check for malformed
1632	variable template specializations.
1633	(lookup_template_variable): New.
1634	(tsubst_decl): Handle variable template specializations.
1635	(do_decl_instantiation): Handle template variables.
1636	(instantiate_decl): Handle template variables.
1637	* semantics.c (finish_template_variable): New.
1638	(finish_id_expression): Instantiate variable templates.
1639	* cp-tree.h (variable_template_p): New.
1640
16412014-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
1642
1643	PR c++/15339
1644	* decl.c (check_redeclaration_no_default_args): New.
1645	(duplicate_decls): Use it, handle default arguments
1646	in redeclarations of function templates.
1647
16482014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
1649
1650	* optimize.c, semantics.c: Use hash_map instead of pointer_map.
1651
16522014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
1653
1654	* class.c, cp-gimplify.c, cp-tree.h, decl.c, decl2.c, error.c,
1655	method.c, name-lookup.c, pt.c, semantics.c, tree.c: Use hash_set
1656	instead of pointer_set.
1657
16582014-08-01  Jason Merrill  <jason@redhat.com>
1659
1660	PR c++/60417
1661	* init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on
1662	init-list for trailing elements.
1663	* typeck2.c (process_init_constructor_array): Likewise.
1664
16652014-08-01  Paolo Carlini  <paolo.carlini@oracle.com>
1666
1667	DR 217 again
1668	* decl.c (duplicate_decls): Handle static member functions too.
1669
16702014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
1671
1672	* cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint
1673	in error output.
1674
16752014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
1676
1677	PR other/61963
1678	* parser.c (cp_parser_array_notation): Added check for array_type.
1679
16802014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
1681
1682	PR middle-end/61455
1683	* cp-array-notation.c (expand_array_notation_exprs): Handling of
1684	DECL_EXPR improved. Changed handling for INIT_EXPR.
1685
16862014-08-01  Paolo Carlini  <paolo.carlini@oracle.com>
1687
1688	* pt.c (lookup_template_class_1): Use DECL_TYPE_TEMPLATE_P.
1689
16902014-08-01  Jakub Jelinek  <jakub@redhat.com>
1691
1692	* cp-gimplify.c (cp_genericize_r): For -fsanitize=null and/or
1693	-fsanitize=alignment call ubsan_maybe_instrument_reference
1694	for casts to REFERENCE_TYPE and ubsan_maybe_instrument_member_call
1695	for calls to member functions.
1696
16972014-07-31  Marc Glisse  <marc.glisse@inria.fr>
1698
1699	PR c++/60517
1700	* typeck.c (maybe_warn_about_returning_address_of_local): Return
1701	whether it is returning the address of a local variable.
1702	(check_return_expr): Return 0 instead of the address of a local
1703	variable.
1704
17052014-07-30  Jason Merrill  <jason@redhat.com>
1706
1707	PR lto/53808
1708	PR c++/61659
1709	* pt.c (push_template_decl_real): Don't set DECL_COMDAT on friends.
1710
17112014-07-30  Paolo Carlini  <paolo.carlini@oracle.com>
1712
1713	PR c++/57397
1714	* pt.c (unify_arity): Add boolean parameter.
1715	(unify_too_few_arguments): Likewise.
1716	(type_unification_real): Diagnose correctly insufficient
1717	arguments in the presence of trailing variadic parameters;
1718	deducing multiple trailing packs as empty is fine.
1719
17202014-07-30  Jason Merrill  <jason@redhat.com>
1721
1722	PR c++/61659
1723	PR c++/61687
1724	Revert:
1725	* decl2.c (mark_all_virtuals): New variable.
1726	(maybe_emit_vtables): Check it instead of flag_devirtualize.
1727	(cp_write_global_declarations): Set it and give helpful diagnostic
1728	if it introduces errors.
1729	* class.c (finish_struct_1): Check it.
1730
1731	PR lto/53808
1732	PR c++/61659
1733	* pt.c (push_template_decl_real): Set DECL_COMDAT on templates.
1734	(check_explicit_specialization): Clear it on specializations.
1735	* decl.c (duplicate_decls, start_decl): Likewise.
1736	(grokmethod, grokfndecl): Set DECL_COMDAT on inlines.
1737	* method.c (implicitly_declare_fn): Set DECL_COMDAT.  Determine
1738	linkage after setting the appropriate flags.
1739	* tree.c (decl_linkage): Don't check DECL_COMDAT.
1740	* decl2.c (mark_needed): Mark clones.
1741	(import_export_decl): Not here.
1742
17432014-07-25  Edward Smith-Rowland  <3dw4rd@verizon.net>
1744
1745	Implement N4051 - Allow typename in a template template parameter
1746	* parser.c (cp_parser_type_parameter_key): New funtion;
1747	(cp_parser_token_is_type_parameter_key): Ditto;
1748	(cp_parser_type_parameter): Look for type-parameter-key for all versions
1749	but pedwarn for less than cxx1z.
1750
17512014-07-17  Paolo Carlini  <paolo.carlini@oracle.com>
1752
1753	PR c++/50961
1754	* call.c (standard_conversion): Use resolve_nondeduced_context
1755	for type_unknown_p (EXPR) && TREE_CODE (TO) == BOOLEAN_TYPE.
1756
17572014-07-17  Paolo Carlini  <paolo.carlini@oracle.com>
1758
1759	PR c++/61804
1760	* parser.c (cp_parser_tokens_start_cast_expression): Return -1
1761	for '++' and '--'.
1762
17632014-07-15  Jason Merrill  <jason@redhat.com>
1764
1765	PR c++/61811
1766	* decl2.c (maybe_emit_vtables): Return true for -fuse-all-virtuals.
1767
1768	PR c++/60848
1769	PR c++/61723
1770	* call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO.
1771	* class.c (finish_struct): Reject invalid definition of
1772	std::initializer_list.
1773
17742014-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
1775
1776	* call.c (convert_like_real): Call print_z_candidate and inform only
1777	if permerror returns true.
1778
17792014-07-14  Jan Hubicka  <hubicka@ucw.cz>
1780
1781	* class.c (build_clone): Do not clear assembler names of
1782	templates.
1783	* decl.c (cp_tree_node_structure): Add TEMPLATE_DECL.
1784	* cp-objcp-common.c (cp_tree_size): Add TEMPLATE_DECL
1785	as a special case return sizeof (struct tree_decl_non_common)
1786	for other decls.
1787	(cp_common_init_ts): Do not initialize NAMESPACE_DECL;
1788	initialize TEMPLATE_DECL as MARK_TS_DECL_COMMON.
1789	* cp/cp-tree.h (tree_template_decl): New structure.
1790	(cp_tree_node_structure_enum): Add TS_CP_TEMPLATE_DECL.
1791	(union cp_lang_tree_node): Add template_decl.
1792	(DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT): Update.
1793
17942014-07-14  Jason Merrill  <jason@redhat.com>
1795
1796	PR c++/61445
1797	PR c++/56947
1798	* pt.c (instantiate_decl): Don't check defer_ok for local class
1799	members.
1800
18012014-07-14  Jakub Jelinek  <jakub@redhat.com>
1802
1803	PR middle-end/61294
1804	* cp-tree.h (LITERAL_ZERO_P): Define.
1805	* parser.c (cp_parser_parenthesized_expression_list): Add
1806	want_literal_zero_p argument, if true, for literal zeros
1807	insert INTEGER_CSTs with LITERAL_ZERO_P flag set.
1808	(cp_parser_postfix_expression): Adjust
1809	cp_parser_parenthesized_expression_list caller, handle
1810	-Wmemset-transposed-args.
1811	(literal_zeros): New variable.
1812
18132014-07-13  Jason Merrill  <jason@redhat.com>
1814
1815	PR c++/58511
1816	* semantics.c (is_instantiation_of_constexpr): Return true for
1817	defaulted functions, too.
1818	(explain_invalid_constexpr_fn): Only use
1819	explain_implicit_non_constexpr if !DECL_DECLARED_CONSTEXPR_P.
1820	* method.c (explain_implicit_non_constexpr): Pass
1821	DECL_INHERITED_CTOR_BASE to explain_implicit_non_constexpr.
1822
1823	PR c++/58611
1824	* decl.c (check_initializer): Don't finish_compound_literal
1825	on erroneous constexpr init.
1826
1827	PR c++/58612
1828	* tree.c (bot_replace): Only replace a dummy 'this' parm.
1829
1830	PR c++/60628
1831	* decl.c (create_array_type_for_decl): Only check for auto once.
1832
1833	PR c++/58636
1834	* call.c (build_list_conv): Don't try to build a list of references.
1835
18362014-07-13  Edward Smith-Rowland  <3dw4rd@verizon.net>
1837
1838	PR C++/60209 - Declaration of user-defined literal operator cause error
1839	* parser.c (cp_parser_operator): Fold treatment of strings
1840	and user-defined string literals.  Use the full string parser.
1841	(cp_parser_string_literal): Add flag to not look for literal operator.
1842
18432014-07-11  Jason Merrill  <jason@redhat.com>
1844
1845	PR c++/22434
1846	PR c++/61288
1847	* call.c (build_conditional_expr_1): Avoid reading freed memory.
1848
18492014-07-11  Paolo Carlini  <paolo.carlini@oracle.com>
1850
1851	PR c++/53159
1852	* call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING
1853	into convflags.
1854	* decl.c (check_initializer): Don't call check_narrowing here,
1855	set LOOKUP_NO_NARROWING.
1856	* typeck2.c (digest_init_r): Likewise.
1857
18582014-07-10  Jason Merrill  <jason@redhat.com>
1859
1860	PR c++/61661
1861	* semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR.
1862
1863	PR c++/61659
1864	PR c++/61687
1865	* decl2.c (mark_all_virtuals): New variable.
1866	(maybe_emit_vtables): Check it instead of flag_devirtualize.
1867	(cp_write_global_declarations): Set it and give helpful diagnostic
1868	if it introduces errors.
1869	* class.c (finish_struct_1): Check it.
1870	* decl.c (grokdeclarator): Clear virtualp after 'virtual auto' error.
1871
18722014-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
1873
1874	PR c++/60686
1875	* decl.c (grokdeclarator): Adjust error messages about 'explicit'
1876	outside class declaration, in friend declaration, and neither on
1877	constructor nor conversion operator.
1878
18792014-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
1880
1881	DR 1584
1882	PR c++/57466
1883	* pt.c (check_cv_quals_for_unify): Implement resolution, disregard
1884	cv-qualifiers of function types.
1885
18862014-07-09  Andrew Sutton  <andrew.n.sutton@gmail.com>
1887	    Paolo Carlini  <paolo.carlini@oracle.com>
1888
1889	PR c++/59361
1890	* parser.c (cp_parser_tokens_start_cast_expression): Return 0 for
1891	CPP_ELLIPSIS too.
1892
18932014-07-07  Paolo Carlini  <paolo.carlini@oracle.com>
1894
1895	* class.c (check_for_override): Wrap the 'final' and 'override'
1896	keywords in %< and %>.
1897
18982014-07-06  Marek Polacek  <polacek@redhat.com>
1899
1900	PR c/6940
1901	* cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
1902	* decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
1903	* typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
1904	function parameter.
1905
19062014-07-02  Paolo Carlini  <paolo.carlini@oracle.com>
1907
1908	* pt.c (convert_template_argument): Use inform instead of error in
1909	three places.
1910
19112014-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
1912
1913	PR c++/58781
1914	PR c++/60249
1915	PR c++/59867
1916	* parser.c (cp_parser_userdef_string_literal): Take a tree
1917	not a cp_token*.
1918	(cp_parser_string_literal): Don't hack the token stream.
1919
19202014-06-30  Jason Merrill  <jason@redhat.com>
1921
1922	PR c++/61659
1923	PR lto/53808
1924	* decl2.c (maybe_emit_vtables): Mark all vtable entries if
1925	devirtualizing.
1926	* init.c (build_vtbl_address): Don't mark destructor.
1927	* class.c (finish_struct_1): Add all classes to keyed_classes
1928	if devirtualizing.
1929
1930	PR c++/61647
1931	* pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
1932
1933	PR c++/61566
1934	* mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.
1935
1936	* decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
1937	TYPE_BINFO or TYPE_LANG_SPECIFIC.
1938	* cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
1939	(TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
1940	* typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
1941	* pt.c (unify): Also check whether the argument is a PMF.
1942
19432014-06-30  Paolo Carlini  <paolo.carlini@oracle.com>
1944
1945	PR c++/54891
1946	* parser.c (cp_parser_tokens_start_cast_expression): In C++11
1947	a '[' can also start a primary-expression.
1948	(cp_parser_cast_expression): Parse a cast-expression only tentatively
1949	when cp_parser_tokens_start_cast_expression returns -1.
1950
19512014-06-30  Jason Merrill  <jason@redhat.com>
1952
1953	PR c++/61539
1954	* pt.c (unify_one_argument): Type/expression mismatch just causes
1955	deduction failure.
1956
1957	* semantics.c (simplify_aggr_init_expr): Remove remnants of
1958	2014-04-11 change.
1959
19602014-06-30  Marek Polacek  <polacek@redhat.com>
1961
1962	* cp-gimplify.c (cp_genericize): Don't instrument returns if the
1963	function has no_sanitize_undefined attribute.
1964	* decl.c (compute_array_index_type): Don't instrument VLAs if the
1965	function has no_sanitize_undefined attribute.
1966
19672014-06-30  Igor Zamyatin  <igor.zamyatin@intel.com>
1968
1969	PR middle-end/57541
1970	* cp-array-notation.c (expand_sec_reduce_builtin):
1971	Check that bultin argument is correct.
1972	* call.c (build_cxx_call): Check for 0 arguments in builtin call.
1973
19742014-06-28  Jonathan Wakely  <jwakely@redhat.com>
1975
1976	DR 1579
1977	PR c++/58051
1978	* typeck.c (check_return_expr): Lookup as an rvalue even when the
1979	types aren't the same.
1980
19812014-06-27  Jason Merrill  <jason@redhat.com>
1982
1983	PR c++/61433
1984	* error.c (dump_template_bindings): Don't tsubst in a clone.
1985
19862014-06-27  Paolo Carlini  <paolo.carlini@oracle.com>
1987
1988	PR c++/61614
1989	* semantics.c (finish_compound_literal): Revert r204228.
1990
19912014-06-27  Paolo Carlini  <paolo.carlini@oracle.com>
1992
1993	* parser.c (cp_parser_compound_literal_p): New.
1994	(cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it.
1995
19962014-06-26  Jason Merrill  <jason@redhat.com>
1997
1998	* parser.c (cp_parser_for_init_statement): Change range-for error
1999	to pedwarn.
2000
2001	N3994 Ranged-based for-loops: The Next Generation
2002	* parser.c (cp_lexer_nth_token_is): New.
2003	(cp_parser_for_init_statement): Allow "for (id : init)".
2004
20052014-06-26  Teresa Johnson  <tejohnson@google.com>
2006
2007	* class.c (dump_class_hierarchy): Use saved dump files.
2008	(dump_vtable): Ditto.
2009	(dump_vtt): Ditto.
2010
20112014-06-26  Adam Butcher  <adam@jessamine.co.uk>
2012
2013	PR c++/61537
2014	* parser.c (cp_parser_elaborated_type_specifier): Only consider template
2015	parameter lists outside of function parameter scope.
2016
20172014-06-25  Paolo Carlini  <paolo.carlini@oracle.com>
2018
2019	DR 178
2020	PR c++/49132
2021	* typeck2.c (process_init_constructor_record): Do not complain about
2022	uninitialized const members, because within aggregate-initialization,
2023	members without explicit initializers are value-initialized.
2024
20252014-06-25  Jakub Jelinek  <jakub@redhat.com>
2026
2027	* semantics.c (finish_omp_clauses): Make sure
2028	OMP_CLAUSE_LINEAR_STEP has correct type.
2029
20302014-06-24  Jan Hubicka  <hubicka@ucw.cz>
2031
2032	* class.c (check_methods, create_vtable_ptr, determine_key_method,
2033	add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by
2034	FUNCTION_DECL check.
2035	* cp-tree.h (lang_decl_ns): Add ns_using and ns_users.
2036	(DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns.
2037	(DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL.
2038	(DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT.
2039
20402014-06-24  Paolo Carlini  <paolo.carlini@oracle.com>
2041
2042	PR c++/33972
2043	* decl.c (grokdeclarator): Do not early check for operator-function-id
2044	as non-function.
2045
20462014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
2047
2048	* class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
2049	Adjust.
2050
20512014-06-24  Jakub Jelinek  <jakub@redhat.com>
2052
2053	* parser.c (cp_parser_omp_for_loop): For
2054	#pragma omp parallel for simd move lastprivate clause from parallel
2055	to for rather than simd.
2056
20572014-06-23  Paolo Carlini  <paolo.carlini@oracle.com>
2058
2059	DR 577
2060	PR c++/33101
2061	* decl.c (grokparms): Accept a single parameter of type 'void'.
2062
20632014-06-20  Jason Merrill  <jason@redhat.com>
2064
2065	PR c++/59296
2066	* call.c (add_function_candidate): Avoid special 'this' handling
2067	if we have a ref-qualifier.
2068
2069	PR c++/61556
2070	* call.c (build_over_call): Call build_this in template path.
2071
20722014-06-19  Jason Merrill  <jason@redhat.com>
2073
2074	PR c++/59296
2075	* call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
2076
20772014-06-18  Jason Merrill  <jason@redhat.com>
2078
2079	PR c++/59296
2080	* call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
2081	ref-qualifier handling.
2082
2083	PR c++/61507
2084	* pt.c (resolve_overloaded_unification): Preserve
2085	ARGUMENT_PACK_EXPLICIT_ARGS.
2086
20872014-06-18  Jakub Jelinek  <jakub@redhat.com>
2088
2089	* cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
2090	argument.
2091	* cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
2092
20932014-06-17  Jason Merrill  <jason@redhat.com>
2094
2095	PR c++/60605
2096	* pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
2097
20982014-06-15  Jason Merrill  <jason@redhat.com>
2099
2100	PR c++/61488
2101	* pt.c (check_valid_ptrmem_cst_expr): Fix for template context.
2102
2103	PR c++/61500
2104	* tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
2105
21062014-06-15  Jan Hubicka  <hubicka@ucw.cz>
2107
2108	* decl.c (grokvardecl): Fix pasto in previous patch.
2109
21102014-06-15  Jan Hubicka  <hubicka@ucw.cz>
2111
2112	* decl.c (duplicate_decls): Use set_decl_tls_model.
2113	(grokdeclarator): Likewise.
2114	* semantics.c (finish_id_expression): Check TLS only for
2115	static variables.
2116	(finish_omp_threadprivate): Use decl_default_tls_model.
2117	* decl2.c (get_guard): Likewise.
2118	* call.c (make_temporary_var_for_ref_to_temp): Likewise.
2119
21202014-06-14  Paolo Carlini  <paolo.carlini@oracle.com>
2121
2122	PR c++/33101
2123	* decl.c (grokparms): Improve error message about void parameters.
2124	* error.c (type_to_string): Fix aka cut off code.
2125
21262014-06-12  Jason Merrill  <jason@redhat.com>
2127
2128	* call.c (convert_arg_to_ellipsis): Use abi_version_crosses.
2129	* cvt.c (type_promotes_to): Likewise.
2130	* mangle.c (write_type, write_expression): Likewise.
2131	(write_name, write_template_arg): Likewise.
2132	(mangle_decl): Make alias based on flag_abi_compat_version.
2133	Emit -Wabi warning here.
2134	(finish_mangling_internal): Not here.  Drop warn parm.
2135	(finish_mangling_get_identifier, finish_mangling): Adjust.
2136	(mangle_type_string, mangle_special_for_type): Adjust.
2137	(mangle_ctor_vtbl_for_type, mangle_thunk): Adjust.
2138	(mangle_guard_variable, mangle_tls_init_fn): Adjust.
2139	(mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust.
2140
2141	* call.c (build_operator_new_call): Remove -fabi-version=1 support.
2142	* class.c (walk_subobject_offsets, include_empty_classes): Likewise.
2143	(layout_nonempty_base_or_field, end_of_class): Likewise.
2144	(layout_empty_base, build_base_field, layout_class_type): Likewise.
2145	(is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise.
2146	(layout_virtual_bases): Likewise.
2147	* decl.c (compute_array_index_type): Likewise.
2148	* mangle.c (write_mangled_name, write_prefix): Likewise.
2149	(write_template_prefix, write_integer_cst, write_expression): Likewise.
2150	(write_template_arg, write_array_type): Likewise.
2151	* method.c (lazily_declare_fn): Likewise.
2152	* rtti.c (get_pseudo_ti_index): Likewise.
2153	* typeck.c (comp_array_types): Likewise.
2154
21552014-06-11  Jan Hubicka  <hubicka@ucw.cz>
2156
2157	* vtable-class-hierarchy.c: Update handling for section names
2158	that are no longer trees.
2159	* decl.c (duplicate_decls): Likewise.
2160
21612014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
2162
2163	PR c++/19200
2164	* parser.c (cp_parser_init_declarator): Actually pass friend_p
2165	to cp_parser_declarator.
2166
21672014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
2168
2169	PR c++/60265
2170	* parser.c (cp_parser_using_declaration): Handle unscoped enums.
2171	* name-lookup.c (validate_nonmember_using_decl): Adjust error
2172	message.
2173
21742014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
2175
2176	PR c++/19200
2177	* parser.c (cp_parser_declarator): Add bool parameter.
2178	(cp_parser_direct_declarator): Likewise, use it.
2179	(cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
2180	(cp_parser_condition, cp_parser_explicit_instantiation,
2181	cp_parser_init_declarator, cp_parser_type_id_1,
2182	cp_parser_parameter_declaration, cp_parser_exception_declaration,
2183	cp_parser_cache_defarg, cp_parser_objc_class_ivars,
2184	cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
2185	Adjust.
2186	* decl.c (grokdeclarator): Fix handling of friend declared in
2187	namespace scope (g++.dg/parse/friend10.C).
2188
21892014-06-10  Jan Hubicka  <hubicka@ucw.cz>
2190
2191	* vtable-class-hierarchy.c: Use symtab_get_node (var_decl)
2192	->implicit_section.
2193	* optimize.c (cdtor_comdat_group): Fix handling of aliases.
2194	(maybe_clone_body): Move symbol across comdat groups.
2195	* method.c (use_thunk): Copy implicit section flag.
2196
21972014-06-09  Paolo Carlini  <paolo.carlini@oracle.com>
2198
2199	PR c++/22556
2200	* name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
2201
22022014-06-07  Jan Hubicka  <hubicka@ucw.cz>
2203
2204	* method.c (use_thunk): Use set_decl_section_name.
2205	* optimize.c (maybe_clone_body): Use set_decl_section_name.
2206	* decl.c (duplicate_decls): Likewise.
2207	* vtable-class-hierarchy.c: Likewise.
2208
22092014-06-06  Paolo Carlini  <paolo.carlini@oracle.com>
2210
2211	PR c++/60184
2212	* class.c (check_field_decls): In C++11 mode do not reject
2213	static data members and reference-type members in unions.
2214
22152014-06-05  Jason Merrill  <jason@redhat.com>
2216
2217	PR c++/43453
2218	* decl.c (check_initializer): Collapse a TREE_LIST here.
2219	* typeck2.c (store_init_value): Not here.
2220
22212014-06-05  Richard Biener  <rguenther@suse.de>
2222	    Paolo Carlini  <paolo.carlini@oracle.com>
2223
2224	PR c++/56961
2225	* cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
2226	handling of empty classes.
2227
22282014-06-04  Jason Merrill  <jason@redhat.com>
2229
2230	* parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
2231	for noexcept and thread_local, too.
2232
2233	PR c++/61343
2234	* decl.c (check_initializer): Maybe clear
2235	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2236
22372014-06-05  Richard Biener  <rguenther@suse.de>
2238
2239	PR c++/61004
2240	* typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
2241	warnings for accessing empty classes.
2242
22432014-06-05  Marek Polacek  <polacek@redhat.com>
2244
2245	PR c/49706
2246	* parser.c (cp_parser_binary_expression): Warn when logical not is
2247	used on the left hand side operand of a comparison.
2248
22492014-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
2250
2251	PR c++/43453
2252	* typeck.c (cp_build_modify_expr): Handle array of characters
2253	initialized by a string literal.
2254	* decl.c (check_initializer): Handle parenthesized string literal
2255	as initializer.
2256	* typeck2.c (store_init_value): Remove redundant check.
2257
22582014-06-04  Jason Merrill  <jason@redhat.com>
2259
2260	PR c++/51253
2261	PR c++/61382
2262	* cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
2263	* semantics.c (simplify_aggr_init_expr): Not here, just copy it.
2264
22652014-06-04  Igor Zamyatin  <igor.zamyatin@intel.com>
2266
2267	PR c/58942
2268	* cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
2269	with a pointer.
2270
22712014-06-03  Paolo Carlini  <paolo.carlini@oracle.com>
2272
2273	DR 1423
2274	PR c++/52174
2275	* call.c (standard_conversion): Convert nullptr to bool only
2276	in case of direct-initialization.
2277	(convert_like_real): Provide informative error message.
2278
22792014-06-03  Marek Polacek  <polacek@redhat.com>
2280
2281	PR c/60439
2282	* semantics.c (finish_switch_cond): Warn if switch condition has
2283	boolean value.
2284
22852014-06-03  Jason Merrill  <jason@redhat.com>
2286
2287	PR c++/60992
2288	* pt.c (tsubst_copy) [VAR_DECL]: Try lookup first.  Add a new
2289	variable to local_specializations.
2290
2291	PR c++/60848
2292	* call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.
2293
22942014-06-02  Jason Merrill  <jason@redhat.com>
2295
2296	PR c++/61046
2297	* decl.c (reshape_init_class): Handle un-folded
2298	constant-expressions.
2299
2300	PR c++/61134
2301	* pt.c (pack_deducible_p): Handle canonicalization.
2302
23032014-06-02  Paolo Carlini  <paolo.carlini@oracle.com>
2304
2305	* pt.c (tsubst_function_type): Initialize arg_types.
2306
23072014-06-02  Siva Chandra Reddy  <sivachandra@google.com>
2308
2309        PR debug/57519
2310        * class.c (handle_using_decl): Pass the correct scope to
2311        cp_emit_debug_info_for_using.
2312
23132014-06-02  Ville Voutilainen  <ville.voutilainen@gmail.com>
2314
2315	PR c++/59483
2316	PR c++/61148
2317	* search.c (accessible_p): Use current_nonlambda_class_type.
2318	* semantics.c (check_accessibility_of_qualified_id): Likewise.
2319
23202014-06-02  Andrew MacLeod  <amacleod@redhat.com>
2321
2322	* decl.c: Include builtins.h.
2323	* semantics.c: Likewise.
2324
23252014-05-31  Paolo Carlini  <paolo.carlini@oracle.com>
2326
2327	DR 1227
2328	PR c++/57543
2329	* cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add.
2330	* pt.c (tsubst_function_type): Inject the this parameter; do the
2331	substitutions in the order mandated by the DR.
2332	(copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE.
2333	* decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE.
2334	(static_fn_type): Copy it.
2335	* decl2.c (build_memfn_type, change_return_type,
2336	cp_reconstruct_complex_type): Likewise.
2337	* parser.c (cp_parser_lambda_declarator_opt): Likewise.
2338	* tree.c (strip_typedefs): Likewise.
2339	* typeck.c (merge_types): Likewise.
2340
23412014-05-30  Jason Merrill  <jason@redhat.com>
2342
2343	PR c++/56947
2344	* pt.c (instantiate_decl): Check that defer_ok is not set for
2345	local class members.
2346
2347	PR c++/60992
2348	* pt.c (tsubst_init): Split out from...
2349	(tsubst_expr) [DECL_EXPR]: Here.
2350	(tsubst_copy) [VAR_DECL]: Use it.
2351	* semantics.c (finish_id_expression): Return the decl for static/const.
2352
23532014-05-28  Jason Merrill  <jason@redhat.com>
2354
2355	PR c++/47202
2356	* decl.c (cxx_comdat_group): Return a decl.
2357	* optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
2358
2359	* pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
2360	bound.
2361
2362	PR c++/61242
2363	* call.c (build_aggr_conv): Ignore passed in flags.
2364	(build_array_conv, build_complex_conv): Likewise.
2365
23662014-05-23  Jan Hubicka  <hubicka@ucw.cz>
2367
2368	* optimize.c (maybe_thunk_body): Use set_comdat_group.
2369	(maybe_clone_body): Likewise.
2370	* decl.c (duplicate_decls): Update code duplicating comdat group;
2371	do not copy symtab pointer; before freeing newdecl remove it
2372	from symtab.
2373	* decl2.c (constrain_visibility): Use set_comdat_group.
2374
23752014-05-23  Jan Hubicka  <hubicka@ucw.cz>
2376
2377	* rtti.c: Include tm_p.h
2378	(emit_tinfo_decl): Force RTTI data to be aligned to required
2379	ABI alignment only.
2380
23812014-05-23  Jan Hubicka  <hubicka@ucw.cz>
2382
2383	* class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
2384	ignoring other target adjustments.
2385
23862014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
2387
2388	* semantics.c (finish_omp_clauses): Remove duplicated variable
2389	initialization.
2390
2391	* parser.c (cp_parser_omp_target): Return bool values.
2392
23932014-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
2394
2395	PR c++/61088
2396	* lambda.c (add_capture): Enforce that capture by value requires
2397	complete type.
2398	* typeck2.c (cxx_incomplete_type_inform): Early return if
2399	TYPE_MAIN_DECL is null.
2400
24012014-05-21  Jonathan Wakely  <jwakely@redhat.com>
2402
2403	PR c/61271
2404	* cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition.
2405
24062014-05-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
2407
2408	PR c++/61133
2409	* lambda.c (build_capture_proxy, add_capture): Treat normal
2410	captures and init-captures identically.
2411
24122014-05-21  Mark Wielaard  <mjw@redhat.com>
2413
2414	PR debug/16063
2415	* cp-lang.c (cxx_enum_underlying_base_type): New function.
2416	(LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
2417
24182014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2419
2420	* cvt.c (convert_to_void): Use void_node instead of void_zero_node.
2421	* cp-array-notation.c (replace_invariant_exprs): Likewise.
2422	(expand_array_notation): Handle VOID_CST.
2423	* error.c (dump_expr): Likewise.
2424	* cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
2425	(cxx_pretty_printer::expression): Likewise.
2426	(pp_cxx_new_expression): Use void_node instead of void_zero_node.
2427	* decl.c (register_dtor_fn): Likewise.
2428	* init.c (build_raw_new_expr, build_new_1, build_vec_init)
2429	(build_delete, push_base_cleanups): Likewise.
2430	* mangle.c (write_expression): Likewise.
2431	* semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise.
2432	* pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
2433	(tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST.
2434	* tree.c (cp_tree_equal): Likewise.
2435	(build_dummy_object, is_dummy_object, stabilize_expr): Use void_node
2436	instead of void_zero_node.
2437	* typeck.c (check_return_expr): Likewise.
2438	* typeck2.c (build_functional_cast): Likewise.
2439
24402014-05-21  Igor Zamyatin  <igor.zamyatin@intel.com>
2441
2442	PR c/60189
2443	* parser.c (cp_parser_postfix_expression): Move handling of cilk_sync
2444	from here to...
2445	(cp_parser_statement): ...here. Make sure only semicolon can go after
2446	Cilk_sync.
2447
24482014-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
2449
2450	PR c++/58753
2451	PR c++/58930
2452	PR c++/58704
2453	* typeck2.c (digest_nsdmi_init): New.
2454	* parser.c (cp_parser_late_parse_one_default_arg): Use it.
2455	* init.c (get_nsdmi): Likewise.
2456	* cp-tree.h (digest_nsdmi_init): Declare.
2457
24582014-05-20  Jason Merrill  <jason@redhat.com>
2459
2460	* typeck.c (get_member_function_from_ptrfunc): Don't try to look
2461	up a virtual function in a dummy object.
2462
24632014-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
2464
2465	PR c++/60373
2466	* decl.c (duplicate_decls): Replace pair of warning_at with
2467	warning_at + inform.
2468	(maybe_commonize_var): Likewise.
2469
24702014-05-20  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2471
2472	PR bootstrap/61210
2473	* pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr)
2474	(tsubst_copy_and_build): Perform recursive substitutions in a
2475	deterministic order.
2476
24772014-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
2478
2479	PR c++/58664
2480	* typeck2.c (cxx_incomplete_type_inform): New.
2481	(cxx_incomplete_type_diagnostic): Use it.
2482	* decl.c (grokdeclarator): Check the element type of an
2483	incomplete array type; call the above.
2484	* cp-tree.h (cxx_incomplete_type_inform): Declare.
2485
24862014-05-19  Jason Merrill  <jason@redhat.com>
2487
2488	PR c++/58761
2489	* pt.c (tsubst_copy): Don't check at_function_scope_p.
2490	(instantiate_class_template_1): Don't push_to_top_level in an nsdmi.
2491
24922014-05-19  Paolo Carlini  <paolo.carlini@oracle.com>
2493
2494	* typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
2495	* parser.c (cp_parser_enum_specifier): Likewise.
2496
24972014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
2498
2499	* class.c (sorted_fields_type_new): Adjust.
2500	* cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
2501	* cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
2502	* cp-tree.h: Remove usage of variable_size gty attribute.
2503	* decl.c (make_label_decl): Adjust.
2504	(check_goto): Likewise.
2505	(start_preparsed_function): Likewise.
2506	(save_function_data): Likewise.
2507	* lex.c (init_reswords): Likewise.
2508	(retrofit_lang_decl): Likewise.
2509	(cxx_dup_lang_specific_decl): Likewise.
2510	(copy_lang_type): Likewise.
2511	(cxx_make_type): Likewise.
2512	* name-lookup.c (binding_entry_make): Likewise.
2513	(binding_table_construct): Likewise.
2514	(binding_table_new): Likewise.
2515	(cxx_binding_make): Likewise.
2516	(pushdecl_maybe_friend_1): Likewise.
2517	(begin_scope): Likewise.
2518	(push_to_top_level): Likewise.
2519	* parser.c (cp_lexer_alloc): Likewise.
2520	(cp_lexer_new_from_tokens): Likewise.
2521	(cp_token_cache_new): Likewise.
2522	(cp_parser_context_new): Likewise.
2523	(cp_parser_new): Likewise.
2524	(cp_parser_nested_name_specifier_opt): Likewise.
2525	(cp_parser_template_id): Likewise.
2526	* pt.c (maybe_process_partial_specialization): Likewise.
2527	(register_specialization): Likewise.
2528	(add_pending_template): Likewise.
2529	(lookup_template_class_1): Likewise.
2530	(push_tinst_level): Likewise.
2531	* semantics.c (register_constexpr_fundef): Likewise.
2532	(cxx_eval_call_expression): Likewise.
2533	* typeck2.c (abstract_virtuals_error_sfinae): Likewise.
2534
25352014-05-16  Paolo Carlini  <paolo.carlini@oracle.com>
2536
2537	PR c++/51640
2538	* parser.c (cp_parser_diagnose_invalid_type_name): Early return
2539	when cp_parser_lookup_name sets ambiguous_decls.
2540
25412014-05-15  Jason Merrill  <jason@redhat.com>
2542
2543	* call.c (print_conversion_rejection): Use loc consistently.
2544
25452014-05-14  Paolo Carlini  <paolo.carlini@oracle.com>
2546
2547	* cp-tree.h (DIRECT_LIST_INIT_P): Add.
2548	* call.c (convert_like_real, build_new_method_call_1): Use it.
2549	* decl2.c (grokfield): Likewise.
2550	* init.c (perform_member_init, build_aggr_init, expand_default_init,
2551	build_new_1): Likewise.
2552	* mangle.c (write_expression): Likewise.
2553	* parser.c (cp_parser_late_parse_one_default_arg): Likewise.
2554
25552014-05-14  Jason Merrill  <jason@redhat.com>
2556
2557	PR c++/20332
2558	PR c++/21631
2559	* call.c (reference_binding): Treat lvalue/rvalue mismatch and
2560	dropped cv-quals as a bad conversion.
2561	(convert_like_real) [ck_ref_bind]: Explain them.
2562	(compare_ics): Check badness before stripping reference
2563	bindings.  Handle comparing bad reference bindings.
2564	* typeck.c (comp_cv_qualification): Add overload that just takes
2565	integers.
2566	* cp-tree.h: Declare it.
2567
2568	* call.c (struct conversion_info): Rename 'from_type' to 'from'.
2569	(arg_conversion_rejection, bad_arg_conversion_rejection)
2570	(explicit_conversion_rejection, template_conversion_rejection): Adjust.
2571	(add_function_candidate): Pass actual argument, rather than type, to
2572	bad_arg_conversion_rejection.
2573	(print_conversion_rejection): Explain what's wrong with the conversion.
2574	(print_z_candidates): Say "candidate:" before each candidate.
2575	(splice_viable): Be strict if we see a viable or template candidate.
2576	(build_user_type_conversion_1): Pass false to strict parameter.
2577	(perform_overload_resolution, build_conditional_expr_1): Likewise.
2578	(build_new_op_1, build_new_method_call_1): Likewise.
2579	(build_op_call_1): Pass true to strict parameter.
2580
25812014-05-13  Jason Merrill  <jason@redhat.com>
2582
2583	* call.c (print_error_for_call_failure): Say "no match" rather
2584	than "ambiguous" if there were no strict matches.
2585	(build_new_method_call_1): Likewise.
2586
2587	PR c++/61151
2588	* semantics.c (is_this_parameter): Allow capture proxies too.
2589
25902014-05-12  Jason Merrill  <jason@redhat.com>
2591
2592	* call.c (maybe_print_user_conv_context): New.
2593	(convert_like_real): Use it.  Print call context for bad
2594	user-defined conversion.
2595	(build_over_call): Print call context for bad 'this' conversion.
2596
2597	* call.c (convert_like_real): Use inform for identifying the
2598	declaration point.
2599
26002014-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
2601
2602	* cvt.c (cp_convert_to_pointer): Don't call error_at if
2603	complain & tf_error is false.
2604
2605	* decl.c (make_unbound_class_template): Prefer inform for
2606	"declared here"-type message.
2607
26082014-05-09  Momchil Velikov  <momchil.velikov@gmail.com>
2609
2610	PR c++/60463
2611	PR c++/60755
2612	* lambda.c (lambda_expr_this_capture): Add new parameter
2613	add_capture_p controlling whether the functions will try to
2614	capture 'this' via the default capture.
2615	(maybe_resolve_dummy): Likewise.
2616	* cp-tree.h: Adjust prototypes.
2617	* call.c, semantics.c: Change callers of these functions.
2618	* call.c (build_new_method_call_1): Use the actual 'this' that
2619	would be potentially captured for the overload resolution, instead
2620	of the dummy object.
2621
26222014-05-09  Paolo Carlini  <paolo.carlini@oracle.com>
2623
2624	* pt.c (convert_nontype_argument_function): Add tsubst_flags_t
2625	parameter.
2626	(convert_nontype_argument): Adjust calls.
2627	(coerce_template_parameter_pack): Add missing complain & tf_error
2628	check.
2629
26302014-05-09  Jason Merrill  <jason@redhat.com>
2631
2632	DR 587
2633	PR c++/51317
2634	* call.c (build_conditional_expr_1, conditional_conversion): Handle
2635	non-class lvalues and xvalues that differ only in cv-qualifiers.
2636
2637	DR 5
2638	PR c++/60019
2639	* call.c (build_user_type_conversion_1): The copy-init temporary
2640	is cv-unqualified.
2641
2642	PR c++/58714
2643	* tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
2644
2645	PR c++/54348
2646	* call.c (build_conditional_expr_1): If overload resolution finds
2647	no match, just say "different types".
2648
2649	PR c++/32019
2650	* call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
2651
2652	PR c++/22434
2653	* call.c (build_conditional_expr_1): Don't try to pool cv-quals
2654	if we didn't find a conversion.
2655	Don't accept a bad conversion too early.
2656
26572014-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
2658
2659	PR c++/13981
2660	* typeck.c (convert_for_assignment): Provide an inform for pointers
2661	to incomplete class types.
2662
26632014-05-07  Paolo Carlini  <paolo.carlini@oracle.com>
2664
2665	PR c++/61083
2666	* pt.c (convert_nontype_argument): Protect all the error calls
2667	with complain & tf_error.
2668
26692014-05-07  Paolo Carlini  <paolo.carlini@oracle.com>
2670
2671	PR c++/61080
2672	* pt.c (instantiate_decl): Avoid generating the body of a
2673	deleted function.
2674
26752014-05-06  Paolo Carlini  <paolo.carlini@oracle.com>
2676
2677	PR c++/60999
2678	* pt.c (maybe_begin_member_template_processing): Use
2679	uses_template_parms.
2680
26812014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
2682	    Mike Stump  <mikestump@comcast.net>
2683	    Richard Sandiford  <rdsandiford@googlemail.com>
2684
2685	* call.c: Include wide-int.h.
2686	(type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
2687	(convert_for_arg_passing): Likewise.
2688	* class.c: Include wide-int.h.
2689	(walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
2690	(end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
2691	(include_empty_classes): Likewise
2692	(layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
2693	* cvt.c: Include wide-int.h.
2694	(ignore_overflows): Use wide_int_to_tree.
2695	* decl.c: Include wide-int.h.
2696	(check_array_designated_initializer): Use wide-int interfaces.
2697	(compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
2698	(finish_enum_value_list): Use signop.
2699	(build_enumerator): Use wide-int interfaces.
2700	* init.c: Include wide-int.h.
2701	(build_new_1): Use wide-int interfaces.
2702	* mangle.c: Include wide-int.h.
2703	(write_integer_cst): Use wide-int interfaces.
2704	(write_array_type): Likewise.
2705	* tree.c: Include wide-int.h.
2706	(cp_tree_equal): Use tree_int_cst_equal.
2707	* typeck2.c: Include wide-int.h.
2708	(process_init_constructor_array): Use wide-int interfaces.
2709
27102014-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
2711
2712	PR c++/58582
2713	* decl.c (grokfndecl): Check duplicate_decls return value for
2714	error_mark_node.
2715	* pt.c (instantiate_decl): A deleted function is defined.
2716
27172014-05-02  Jason Merrill  <jason@redhat.com>
2718
2719	* decl2.c (vague_linkage_p): Local statics have vague linkage.
2720
2721	PR c++/60992
2722	* lambda.c (lambda_capture_field_type): Wrap anything dependent
2723	other than 'this'.
2724	(add_capture): Check for VLA before calling it.
2725	* semantics.c (is_this_parameter): Accept any 'this' parameter, not
2726	just the current one.  Make non-static.
2727	* cp-tree.h: Declare it.
2728	* pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
2729	the operand was static or constant.
2730
27312014-05-02  Marek Polacek  <polacek@redhat.com>
2732
2733	* typeck.c (maybe_warn_about_returning_address_of_local): Separate
2734	warning_at calls.
2735
27362014-05-01  Marek Polacek  <polacek@redhat.com>
2737
2738	PR c/43395
2739	* typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
2740	between label and variable when warning about returning local address.
2741
27422014-04-30  Jason Merrill  <jason@redhat.com>
2743
2744	PR c++/60980
2745	* init.c (build_value_init): Don't try to call an array constructor.
2746
2747	PR c++/60951
2748	* typeck2.c (massage_init_elt): Use maybe_constant_init.
2749
27502014-04-30  Marek Polacek  <polacek@redhat.com>
2751
2752	* typeck.c (cp_build_binary_op): Call ubsan_instrument_division
2753	even when SANITIZE_FLOAT_DIVIDE is on.  Set doing_div_or_mod even
2754	for non-integer types.
2755
27562014-04-29  Jason Merrill  <jason@redhat.com>
2757
2758	DR 1351
2759	Represent the unevaluated exception specification of an implicitly
2760	declared or deleted function with a simple placeholder, not a list
2761	of functions.
2762	* cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
2763	* except.c (unevaluated_noexcept_spec): New.
2764	* class.c (deduce_noexcept_on_destructor): Use it.
2765	* decl.c (check_redeclaration_exception_specification): Call
2766	maybe_instantiate_noexcept.
2767	(duplicate_decls): Call it before merge_types.
2768	(start_preparsed_function): Call maybe_instantiate_noexcept.
2769	* decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
2770	* init.c (get_nsdmi): Factor out of perform_member_init.
2771	* method.c (process_subob_fn): Call maybe_instantiate_noexcept.
2772	(walk_field_subobs): Consider NSDMI for EH spec.
2773	(get_defaulted_eh_spec): New.
2774	(implicitly_declare_fn): Use unevaluated_noexcept_spec.
2775	(defaulted_late_check): Defer EH checking in non-template classes.
2776	(after_nsdmi_defaulted_late_checks): New.
2777	* parser.c (cp_parser_class_specifier_1): Use it.
2778	(unparsed_classes): New macro.
2779	* parser.h (cp_unparsed_functions_entry_d): Add classes field.
2780	* pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
2781	Remove list-of-functions handling.
2782	* typeck2.c (merge_exception_specifiers): Remove list-of-functions
2783	handling and FN parameter.
2784	* typeck.c (merge_types): Adjust.
2785
27862014-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
2787
2788	PR c++/59120
2789	* parser.c (cp_parser_alias_declaration): Check return value of
2790	cp_parser_require.
2791
27922014-04-24  Jakub Jelinek  <jakub@redhat.com>
2793
2794	* parser.c (cp_parser_omp_atomic): Allow seq_cst before
2795	atomic-clause, allow comma in between atomic-clause and
2796	seq_cst.
2797
27982014-04-24  Marc Glisse  <marc.glisse@inria.fr>
2799
2800	PR libstdc++/43622
2801	* rtti.c (emit_support_tinfos): Do not iterate on
2802	registered_builtin_types (partial revert).
2803
28042014-04-23 Dinar Temirbulatov  <dtemirbulatov@gmail.com>
2805
2806	PR c++/57958
2807	* semantics.c (apply_deduced_return_type): Complete non-void type
2808	before estimating whether the type is aggregate.
2809
28102014-04-22  Marc Glisse  <marc.glisse@inria.fr>
2811
2812	PR libstdc++/43622
2813	* rtti.c (emit_support_tinfo_1): New function, extracted from
2814	emit_support_tinfos.
2815	(emit_support_tinfos): Call it and iterate on registered_builtin_types.
2816
28172014-04-22  Jakub Jelinek  <jakub@redhat.com>
2818
2819	PR c/59073
2820	* parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
2821	fails, don't set OM_PARALLEL_COMBINED and return NULL.
2822
28232014-04-18  Jason Merrill  <jason@redhat.com>
2824
2825	DR 1571
2826	* call.c (reference_binding): Recurse on user-defined conversion.
2827
2828	PR c++/60872
2829	* call.c (standard_conversion): Don't try to apply restrict to void.
2830
28312014-04-16  Marc Glisse  <marc.glisse@inria.fr>
2832
2833	* decl.c (reshape_init_r): Handle a single element of vector type.
2834
28352014-04-16  Patrick Palka  <patrick@parcs.ath.cx>
2836
2837	PR c++/60765
2838	* decl2.c (cplus_decl_attributes): Handle
2839	pointer-to-member-function declarations.
2840
28412014-04-16  Patrick Palka  <patrick@parcs.ath.cx>
2842
2843	PR c++/60764
2844	* call.c (build_user_type_coversion): Use build_dummy_object
2845	to create the placeholder object for a constructor method call.
2846	(build_special_member_call): Likewise.
2847	(build_over_call): Check for the placeholder object with
2848	is_dummy_object.
2849	(build_new_method_call_1): Likewise.  Don't attempt to resolve
2850	a dummy object for a constructor method call.
2851
28522014-04-16  Paul Pluzhnikov  <ppluzhnikov@google.com>
2853
2854	PR c++/59295
2855	* friend.c (add_friend, make_friend_class): Move repeated friend
2856	warning under Wredundant_decls.
2857
28582014-04-15  Paolo Carlini  <paolo.carlini@oracle.com>
2859
2860	* decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
2861	* name-lookup.c (pushdecl_maybe_friend_1): Likewise.
2862	(do_class_using_decl): Likewise.
2863	* mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
2864
28652014-04-15  Jakub Jelinek  <jakub@redhat.com>
2866
2867	PR plugins/59335
2868	* Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
2869
28702014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
2871
2872	* cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
2873
28742014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
2875
2876	* pt.c (mark_template_parm): Use template_parm_level_and_index.
2877
28782014-04-11  Jason Merrill  <jason@redhat.com>
2879
2880	* parser.h (struct cp_token): Rename ambiguous_p to error_reported.
2881	* parser.c: Adjust.
2882	(cp_lexer_get_preprocessor_token): Always clear it.
2883	(cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
2884
2885	DR 1467
2886	PR c++/51747
2887	* decl.c (reshape_init_r): Handle a single element of class type.
2888
2889	DR 1338
2890	* decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
2891	built-in operator new.
2892
28932014-04-11  Paolo Carlini  <paolo.carlini@oracle.com>
2894
2895	PR c++/58600
2896	* name-lookup.c (parse_using_directive): Return early if the
2897	attribs argument is error_mark_node; use get_attribute_name.
2898
28992014-04-11  Jason Merrill  <jason@redhat.com>
2900
2901	DR 1030
2902	PR c++/51253
2903	* cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
2904	* call.c (struct z_candidate): Add flags field.
2905	(add_candidate): Add flags parm.
2906	(add_function_candidate, add_conv_candidate, build_builtin_candidate)
2907	(add_template_candidate_real): Pass it.
2908	(build_over_call): Set CALL_EXPR_LIST_INIT_P.
2909	* tree.c (build_aggr_init_expr): Copy it.
2910	* semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
2911
29122014-04-10  Richard Biener  <rguenther@suse.de>
2913	    Jakub Jelinek  <jakub@redhat.com>
2914
2915	PR ipa/60761
2916	* error.c (dump_decl) <case FUNCTION_DECL>: If
2917	DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
2918	recurse on DECL_ABSTRACT_ORIGIN instead of printing
2919	<built-in>.
2920
29212014-04-09  Fabien Ch��ne  <fabien@gcc.gnu.org>
2922
2923	* pt.c (check_template_variable): Check for the return of pedwarn
2924	before emitting a note.
2925	* parser.c (cp_parser_lambda_introducer): Likewise.
2926
29272014-04-08  Paolo Carlini  <paolo.carlini@oracle.com>
2928
2929	PR c++/59115
2930	* pt.c (process_template_parm): For an invalid non-type parameter
2931	only set TREE_TYPE to error_mark_node.
2932	(push_inline_template_parms_recursive, comp_template_parms,
2933	redeclare_class_template, coerce_template_template_parm,
2934	coerce_template_template_parms, unify): Use error_operand_p.
2935
29362014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
2937
2938	* class.c (check_bases_and_members): Warn about non-virtual dtors
2939	in public bases only.  Check warn_ecpp before complaining about
2940	non-polymorphic bases.
2941
29422014-04-04  Fabien Ch��ne  <fabien@gcc.gnu.org>
2943
2944	* decl.c (duplicate_decls): Check for the return of warning_at
2945	before emitting a note.
2946	(warn_misplaced_attr_for_class_type): Likewise.
2947	(check_tag_decl): Likewise.
2948
29492014-04-04  Paolo Carlini  <paolo.carlini@oracle.com>
2950
2951	PR c++/58207
2952	* semantics.c (sort_constexpr_mem_initializers): Robustify loop.
2953
29542014-04-04  Patrick Palka  <patrick@parcs.ath.cx>
2955
2956	PR c++/44613
2957	* semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
2958	* decl.c (cp_finish_decl): Create a new BIND_EXPR before
2959	instantiating a variable-sized type.
2960
2961	PR c++/21113
2962	* decl.c (decl_jump_unsafe): Consider variably-modified decls.
2963
29642014-04-04  Fabien Ch��ne  <fabien@gcc.gnu.org>
2965
2966	* class.c (find_abi_tags_r): Check for the return of warning
2967	before emitting a note.
2968	(one_inherited_ctor): Likewise.
2969
29702014-04-04  Fabien Ch��ne  <fabien@gcc.gnu.org>
2971
2972	* decl.c (duplicate_decls): Check for the return of permerror
2973	before emitting a note.
2974
29752014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
2976
2977	* class.c (accessible_nvdtor_p): New.
2978	(check_bases): Don't check base destructor here ...
2979	(check_bases_and_members): ... check them here.  Trigger on
2980	Wnon-virtual-dtor flag.
2981	(finish_struct_1): Use accessible_nvdtor_p.
2982
29832014-04-01  Jason Merrill  <jason@redhat.com>
2984
2985	* pt.c (process_partial_specialization): Say "not deducible"
2986	rather than "not used".  Use inform.
2987
2988	PR c++/60374
2989	* pt.c (coerce_template_parms): Check that the pack expansion
2990	pattern works with the first matching parameter.
2991
29922014-04-01  Fabien Ch��ne  <fabien@gcc.gnu.org>
2993
2994	* init.c (perform_member_init): Homogenize uninitialized
2995	diagnostics.
2996
29972014-04-01  Jason Merrill  <jason@redhat.com>
2998
2999	PR c++/60708
3000	* call.c (build_array_conv): Call complete_type.
3001
3002	PR c++/60713
3003	* typeck2.c (PICFLAG_SIDE_EFFECTS): New.
3004	(picflag_from_initializer): Return it.
3005	(process_init_constructor): Handle it.
3006
3007	PR c++/60642
3008	* decl2.c (is_late_template_attribute): Don't defer abi_tag.
3009	* mangle.c (write_unqualified_name): Fix abi_tag on templates.
3010	* pt.c (get_template_info): Handle NAMESPACE_DECL.
3011	(most_general_template): Handle more kinds of template.
3012	* tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
3013	instantiations and specializations.
3014
30152014-03-31  Patrick Palka  <patrick@parcs.ath.cx>
3016
3017	PR c++/44859
3018	* typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
3019	COMPONENT_REFs and ARRAY_REFs sooner.
3020
30212014-03-29  Adam Butcher  <adam@jessamine.co.uk>
3022
3023	PR c++/60626
3024	* parser.c (cp_parser_init_declarator): Handle erroneous generic type
3025	usage in non-functions with pushed scope.
3026
30272014-03-28  Adam Butcher  <adam@jessamine.co.uk>
3028
3029	PR c++/60573
3030	* name-lookup.h (cp_binding_level): New transient field defining_class_p
3031	to indicate whether a scope is in the process of defining a class.
3032	* semantics.c (begin_class_definition): Set defining_class_p.
3033	* name-lookup.c (leave_scope): Reset defining_class_p.
3034	* parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
3035	defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
3036	unwinding to class-defining scope to handle the erroneous definition of
3037	a generic function of an arbitrarily nested class within an enclosing
3038	class.
3039
30402014-03-26  Fabien Ch��ne  <fabien@gcc.gnu.org>
3041
3042	PR c++/52369
3043	* method.c (walk_field_subobs): Improve the diagnostic
3044	locations for both REFERENCE_TYPEs and non-static const members.
3045	* init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
3046	instead of %qD to be consistent with the c++11 diagnostic.
3047
30482014-03-25  Jason Merrill  <jason@redhat.com>
3049
3050	PR c++/60566
3051	PR c++/58678
3052	* class.c (build_vtbl_initializer): Handle abstract dtors here.
3053	* search.c (get_pure_virtuals): Not here.
3054
3055	PR c++/60375
3056	* parser.c (cp_parser_lambda_expression): Don't parse the body of
3057	a lambda in unevaluated context.
3058
3059	PR c++/60628
3060	* decl.c (create_array_type_for_decl): Complain about array of auto.
3061
30622014-03-25  Jakub Jelinek  <jakub@redhat.com>
3063
3064	PR c++/60331
3065	* semantics.c (potential_constant_expression_1): Handle
3066	DECL_EXPR.
3067
30682014-03-24  Adam Butcher  <adam@jessamine.co.uk>
3069
3070	PR c++/60627
3071	* parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
3072	introducing an implicit function template parameter within an explicit
3073	instantiation.
3074
30752014-03-22  Jason Merrill  <jason@redhat.com>
3076
3077	PR c++/60574
3078	* decl.c (grokdeclarator): Change permerror about 'virtual auto'
3079	to error.
3080
30812014-03-21  Paolo Carlini  <paolo.carlini@oracle.com>
3082
3083	PR c++/60384
3084	* name-lookup.c (push_class_level_binding_1): Check identifier_p
3085	on the name argument.
3086
30872014-03-20  Jakub Jelinek  <jakub@redhat.com>
3088
3089	PR c++/60572
3090	* init.c (build_zero_init_1): Ignore fields with error_mark_node
3091	type.
3092
30932014-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
3094
3095	PR c++/51474
3096	* call.c (build_new_method_call_1): Handle pure virtuals called by
3097	NSDMIs too.
3098
30992014-03-17  Adam Butcher  <adam@jessamine.co.uk>
3100
3101	PR c++/60390
3102	* parser.c (cp_parser_member_declaration): Don't allow
3103	finish_fully_implicit_template to consider friend declarations to be
3104	class member templates.
3105	(synthesize_implicit_template_parm): Handling winding back through class
3106	scope to the class being defined in order to inject a template argument
3107	list.
3108
3109	PR c++/60391
3110	* parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
3111	function scope as per cp_parser_skip_to_end_of_statement.
3112
31132014-03-17  Paolo Carlini  <paolo.carlini@oracle.com>
3114
3115	PR c++/59571
3116	* typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
3117
31182014-03-14  Jason Merrill  <jason@redhat.com>
3119
3120	PR c++/60532
3121	PR c++/58678
3122	* search.c (get_pure_virtuals): Handle abstract dtor here.
3123	(dfs_get_pure_virtuals): Not here.
3124
3125	PR c++/58678
3126	* search.c (dfs_get_pure_virtuals): Treat the destructor of an
3127	abstract class as pure.
3128
31292014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
3130
3131	PR c++/60383
3132	* pt.c (maybe_process_partial_specialization): Check return value
3133	of check_specialization_namespace.
3134
31352014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
3136
3137	PR c++/60254
3138	* semantics.c (finish_static_assert): Call cxx_constant_value only
3139	if require_potential_rvalue_constant_expression returns true.
3140
31412014-03-11  Paolo Carlini  <paolo.carlini@oracle.com>
3142
3143	PR c++/60389
3144	* method.c (get_inherited_ctor): New.
3145	* cp-tree.h (get_inherited_ctor): Declare it.
3146	* semantics.c (is_valid_constexpr_fn): Use it.
3147
31482014-03-10  Jason Merrill  <jason@redhat.com>
3149
3150	PR c++/60367
3151	* call.c (convert_default_arg): Remove special handling for
3152	CONSTRUCTOR.
3153
3154	PR c++/53492
3155	* parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
3156	when deciding whether to call push_template_decl for a member class.
3157	* pt.c (push_template_decl_real): Return after wrong levels error.
3158
31592014-03-08  Adam Butcher  <adam@jessamine.co.uk>
3160
3161	PR c++/60033
3162	* pt.c (tsubst_copy): When retrieving a capture pack from a generic
3163	lambda, remove the lambda's own template argument list prior to fetching
3164	the specialization.
3165
3166	PR c++/60393
3167	* parser.c (cp_parser_parameter_declaration_clause): Move generic
3168	function template unwinding on error into a more general location, ...
3169	(cp_parser_skip_to_end_of_statement): ... here.
3170
31712014-03-07  Jason Merrill  <jason@redhat.com>
3172
3173	* Make-lang.in (check_g++_parallelize): Split dg.exp.
3174
3175	* parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
3176	we're in a trailing return type.
3177
3178	* typeck.c (comp_template_parms_position): 'auto' and
3179	'decltype(auto)' are different from real template parms.
3180
3181	* parser.c (cp_parser_using_declaration): Consume the semicolon
3182	after bare parameter pack error.
3183
3184	* cp-tree.h (REF_PARENTHESIZED_P): New.
3185	* semantics.c (force_paren_expr): Set it.
3186	* pt.c (do_auto_deduction): Check it.
3187	(tsubst) [COMPONENT_REF]: Copy it.
3188	* typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
3189
3190	* decl.c (create_array_type_for_decl): Only warn about invalid
3191	C++1y VLA if flag_iso or warn_vla>0.
3192	(grokdeclarator): Likewise.
3193	* pt.c (tsubst): Likewise.
3194	* semantics.c (finish_decltype_type): Likewise.
3195	* typeck.c (cxx_sizeof_or_alignof_type): Likewise.
3196	(cp_build_addr_expr_1): Likewise.
3197	* init.c (build_new_1): Improve diagnostics.
3198
31992014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
3200
3201	PR c++/58609
3202	* decl.c (check_initializer): Return NULL_TREE after error;
3203	consistently use inform.
3204
32052014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
3206
3207	* decl.c (check_initializer): Remove dead code.
3208
32092014-03-06  Marek Polacek  <polacek@redhat.com>
3210
3211	PR c/60197
3212	* typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
3213	of checking tree code.
3214
32152014-03-06  Paolo Carlini  <paolo.carlini@oracle.com>
3216
3217	* parser.c (cp_lexer_set_source_position): New.
3218	(cp_parser_mem_initializer): Use it.
3219    	(cp_parser_postfix_open_square_expression): Likewise.
3220    	(cp_parser_parenthesized_expression_list): Likewise.
3221    	(cp_parser_new_initializer): Likewise.
3222    	(cp_parser_jump_statement): Likewise.
3223    	(cp_parser_initializer): Likewise.
3224    	(cp_parser_functional_cast): Likewise.
3225
32262014-03-05  Jason Merrill  <jason@redhat.com>
3227
3228	PR c++/60409
3229	* semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
3230	dependent expression.
3231
3232	PR c++/60361
3233	* parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
3234	if re-parsing might succeed.
3235	* semantics.c (finish_id_expression): Use of a parameter outside
3236	the function body is a parse error.
3237
3238	* parser.c (cp_parser_mem_initializer): Set input_location
3239	properly for init-list warning.
3240	(cp_parser_postfix_open_square_expression): Likewise.
3241	(cp_parser_parenthesized_expression_list): Likewise.
3242	(cp_parser_new_initializer): Likewise.
3243	(cp_parser_jump_statement): Likewise.
3244	(cp_parser_initializer): Likewise.
3245	(cp_parser_functional_cast): Likewise.
3246
32472014-03-04  Jason Merrill  <jason@redhat.com>
3248
3249	PR c++/60417
3250	* typeck2.c (process_init_constructor_record): Set
3251	CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
3252
3253	PR c++/60415
3254	PR c++/54359
3255	* parser.c (cp_parser_direct_declarator): Set declarator to
3256	cp_error_declarator on invalid qualified-id.
3257
32582014-03-04  Paolo Carlini  <paolo.carlini@oracle.com>
3259
3260	PR c++/60376
3261	* parser.c (cp_parser_using_declaration): Early return when
3262	cp_parser_nested_name_specifier errors out.
3263
32642014-03-01  Adam Butcher  <adam@jessamine.co.uk>
3265
3266	PR c++/60377
3267	* parser.c (cp_parser_parameter_declaration_clause): Unwind generic
3268	function scope on parse error in function parameter list.
3269
32702014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
3271
3272	* method.c (implicitly_declare_fn): Remove redundant
3273	DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
3274	* semantics.c (is_instantiation_of_constexpr): Likewise.
3275	* error.c (dump_function_decl): Likewise.
3276
32772014-03-01  Jason Merrill  <jason@redhat.com>
3278
3279	PR c++/60379
3280	* semantics.c (begin_maybe_infinite_loop): Use
3281	fold_non_dependent_expr_sfinae.
3282
32832014-02-28  Jason Merrill  <jason@redhat.com>
3284
3285	PR c++/58845
3286	* typeck.c (cp_build_binary_op): Sorry on vector&&vector.
3287
32882014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
3289
3290	PR c++/58610
3291	* cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
3292	* call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
3293	* lambda.c (maybe_add_lambda_conv_op): Likewise.
3294
32952014-02-27  Paolo Carlini  <paolo.carlini@oracle.com>
3296
3297	PR c++/60253
3298	* call.c (convert_arg_to_ellipsis): Return error_mark_node after
3299	error_at.
3300
33012014-02-27  Jason Merrill  <jason@redhat.com>
3302
3303	PR c++/60353
3304	PR c++/55877
3305	* decl2.c (tentative_decl_linkage): Don't mess with functions that
3306	are not yet defined.
3307
33082014-02-26  Jason Merrill  <jason@redhat.com>
3309
3310	PR c++/60347
3311	PR lto/53808
3312	* class.c (clone_function_decl): Don't note_vague_linkage_fn.
3313	* init.c (build_vtbl_address): Do it here.
3314
3315	PR c++/59231
3316	PR c++/11586
3317	PR c++/14710
3318	PR c++/57132
3319	* pt.c (struct warning_sentinel): New.
3320	(tsubst_copy_and_build): Use it instead of
3321	c_inhibit_evaluation_warnings.
3322	* typeck.c (maybe_warn_about_useless_cast): Remove
3323	c_inhibit_evaluation_warnings check.
3324
3325	PR c++/54440
3326	* pt.c (get_template_parm_index): New.
3327	(fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
3328	(process_template_parm): Allow bare packs in template template
3329	parm template parms.
3330	(coerce_template_parameter_pack): Handle fixed template template
3331	parm packs and fixed packs not at the end of the parm list.
3332	(coerce_template_parms): Handle template parm packs not at the end
3333	of the parm list.
3334	(gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
3335
3336	PR c++/60182
3337	* pt.c (unify): Ignore alias templates when deducing a template
3338	template parameter.
3339
3340	PR c++/60345
3341	Revert:
3342	DR 1571
3343	* call.c (reference_binding): Recurse on user-defined conversion.
3344	(convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
3345
33462014-02-25  Jason Merrill  <jason@redhat.com>
3347
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
3352	* call.c (print_conversion_rejection): Handle n_arg of -2.
3353	(build_user_type_conversion_1): Pass it.
3354
3355	PR c++/55877
3356	* decl2.c (no_linkage_error): Handle C++98 semantics.
3357	(reset_type_linkage): Move from decl.c.
3358	(reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
3359	(bt_reset_linkage_2, reset_decl_linkage): New.
3360	(tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
3361	(cp_write_global_declarations): Move condition into no_linkage_error.
3362	* decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
3363	* semantics.c (expand_or_defer_fn_1): Factor out
3364	tentative_decl_linkage.
3365	* cp-tree.h: Adjust.
3366
3367	* decl2.c (finish_static_data_member_decl): Diagnose static data
3368	member in unnamed class.
3369	* class.c (finish_struct_anon_r): Avoid redundant diagnostic.
3370
3371	PR lto/53808
3372	* class.c (clone_function_decl): Call note_vague_linkage_fn for
3373	defaulted virtual dtor.
3374
3375	DR 1286
3376	PR c++/60328
3377	* pt.c (get_underlying_template): Fix equivalence calculation.
3378
33792014-02-25  Adam Butcher  <adam@jessamine.co.uk>
3380
3381	PR c++/60311
3382	* parser.c (function_being_declared_is_template_p): Return false when
3383	processing a template parameter list.
3384	(cp_parser_parameter_declaration_clause): Don't set
3385	auto_is_implicit_function_template_parm_p when processing a
3386	template parameter list.
3387
3388	* parser.c (synthesize_implicit_template_parm): Inject new template
3389	argument list appropriately when a generic member function
3390	of a class template is declared out-of-line.
3391
3392	PR c++/60065
3393	* parser.c (cp_parser_direct_declarator): Don't save and
3394	restore num_template_parameter_lists around call to
3395	cp_parser_parameter_declaration_list.
3396	(function_being_declared_is_template_p): New predicate.
3397	(cp_parser_parameter_declaration_list): Use
3398	function_being_declared_is_template_p as predicate for
3399	inspecting current function template parameter list length
3400	rather than num_template_parameter_lists.
3401
34022014-02-24  Jason Merrill  <jason@redhat.com>
3403
3404	PR c++/60146
3405	* pt.c (tsubst_omp_for_iterator): Don't let substitution of the
3406	DECL_EXPR initialize a non-class iterator.
3407
3408	PR c++/60312
3409	* parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
3410
34112014-02-21  Jason Merrill  <jason@redhat.com>
3412
3413	PR c++/58170
3414	* parser.c (cp_parser_type_name): Always check dependency.
3415	(cp_parser_type_specifier_seq): Call
3416	cp_parser_parse_and_diagnose_invalid_type_name.
3417
3418	PR c++/60108
3419	* semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
3420
3421	PR c++/60185
3422	* parser.c (cp_parser_default_argument): Clear
3423	current_class_ptr/current_class_ref like tsubst_default_argument.
3424
3425	PR c++/60252
3426	* lambda.c (maybe_resolve_dummy): Check lambda_function rather
3427	than current_binding_level.
3428
3429	PR c++/60186
3430	* typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
3431
3432	PR c++/60187
3433	* parser.c (cp_parser_enum_specifier): Call
3434	check_for_bare_parameter_packs.
3435
3436	PR c++/59347
3437	* pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
3438	erroneous typedef.
3439
3440	PR c++/60241
3441	* pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
3442	of the partial instantiation, not the most general template.
3443	(maybe_process_partial_specialization): Reassign everything on
3444	that list.
3445
3446	PR c++/60216
3447	* pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
3448	(check_explicit_specialization): Don't clone.
3449
3450	PR c++/60219
3451	* pt.c (coerce_template_parms): Bail if argument packing fails.
3452
3453	PR c++/60224
3454	* decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
3455	Don't get confused by a CONSTRUCTOR that already has a type.
3456
3457	PR c++/60227
3458	* call.c (build_array_conv): Don't crash on VLA.
3459
3460	PR c++/60248
3461	* mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
3462
3463	PR c++/60252
3464	* lambda.c (maybe_resolve_dummy): Don't try to capture this
3465	in declaration context.
3466
3467	DR 1591
3468	PR c++/60051
3469	* pt.c (unify): Only unify if deducible.  Handle 0-length list.
3470
3471	PR c++/60250
3472	* parser.c (cp_parser_direct_declarator): Don't wrap a
3473	type-dependent expression in a NOP_EXPR.
3474
3475	PR c++/60251
3476	* lambda.c (is_normal_capture_proxy): Handle VLA capture.
3477
3478	PR c++/60167
3479	PR c++/60222
3480	PR c++/58606
3481	* parser.c (cp_parser_template_argument): Restore dereference.
3482	* pt.c (template_parm_to_arg): Dereference non-pack expansions too.
3483	(process_partial_specialization): Handle deref.
3484	(unify): Likewise.
3485
34862014-02-21  Adam Butcher  <adam@jessamine.co.uk>
3487
3488	PR c++/60052
3489	PR c++/60053
3490	* parser.c (cp_parser_parameter_declaration_list): Correctly reset
3491	implicit_template_scope upon leaving an out-of-line generic member
3492	function definition.
3493
34942014-02-20  Kai Tietz  <ktietz@redhat.com>
3495
3496	PR c++/58873
3497	* parser.c (cp_parser_functional_cast): Treat NULL_TREE
3498	valued type argument as error_mark_node.
3499
3500	PR c++/58835
3501	* semantics.c (finish_fname): Handle error_mark_node.
3502
35032014-02-19  Jason Merrill  <jason@redhat.com>
3504
3505	PR c++/60046
3506	* pt.c (maybe_instantiate_noexcept): Don't instantiate exception
3507	spec from template context.
3508
35092014-02-19  Jakub Jelinek  <jakub@redhat.com>
3510
3511	PR debug/56563
3512	* cp-objcp-common.c (cp_function_decl_explicit_p): Remove
3513	FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
3514
3515	PR c++/60267
3516	* pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
3517
35182014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
3519
3520	PR c++/60225
3521	* semantics.c (ensure_literal_type_for_constexpr_object): Use
3522	strip_array_types.
3523
35242014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
3525
3526	PR c++/60215
3527	* semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
3528	During error recovery allow_non_constant may be false.
3529
35302014-02-18  Adam Butcher  <adam@jessamine.co.uk>
3531
3532	PR c++/60190
3533	* parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
3534	scope whenever a template parameter list has been started, independent
3535	of whether the function call operator was well-formed or not.
3536
3537	PR c++/60064
3538	* parser.c (cp_parser_member_declaration): Pop fully implicit template
3539	scope for generic friend declarations as well as for non-friends.
3540
35412014-02-12  Paolo Carlini  <paolo.carlini@oracle.com>
3542
3543	PR c++/60047
3544	* method.c (implicitly_declare_fn): A constructor of a class with
3545	virtual base classes isn't constexpr (7.1.5p4).
3546
35472014-02-05  Jan Hubicka  <hubicka@ucw.cz
3548
3549	* parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
3550
35512014-02-05  Jakub Jelinek  <jakub@redhat.com>
3552
3553	PR c++/58703
3554	* parser.c (cp_parser_omp_declare_reduction): Save and free
3555	declarator_obstack.
3556
35572014-02-03  Marc Glisse  <marc.glisse@inria.fr>
3558
3559	PR c++/53017
3560	PR c++/59211
3561	* tree.c (handle_init_priority_attribute): Call default_conversion on
3562	the attribute argument.
3563
35642014-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
3565
3566	PR c++/58871
3567	* method.c (synthesized_method_walk): If vbases is non-null but
3568	is_empty is true, likewise don't worry about the virtual bases.
3569
35702014-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
3571
3572	PR c++/51219
3573	* typeck2.c (process_init_constructor_record): Just skip unnamed
3574	bit-fields.
3575
35762014-01-31  Jason Merrill  <jason@redhat.com>
3577
3578	PR c++/59469
3579	* pt.c (mark_decl_instantiated): Call mark_needed.
3580
3581	PR c++/58672
3582	* decl2.c (handle_tls_init): Handle null init fn.
3583
3584	PR c++/55800
3585	* decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
3586
35872014-01-31  Paolo Carlini  <paolo.carlini@oracle.com>
3588
3589	PR c++/59082
3590	* class.c (build_vfield_ref): Early return error_mark_node if
3591	TYPE_VFIELD (type) is null.
3592	(build_base_path): Check return value of build_vfield_ref.
3593
35942014-01-31  Jason Merrill  <jason@redhat.com>
3595
3596	PR c++/59646
3597	* call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
3598	[ck_list]: Check for error_mark_node.
3599	(build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
3600
3601	PR c++/57043
3602	* pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
3603	during partial ordering.
3604
36052014-01-31  Marek Polacek  <polacek@redhat.com>
3606
3607	PR c/59963
3608	* typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
3609
36102014-01-30  Jason Merrill  <jason@redhat.com>
3611
3612	PR c++/57899
3613	* cp-tree.h (struct saved_scope): Add x_local_specializations.
3614	(local_specializations): New macro.
3615	* pt.c (local_specializations): Remove variable.
3616
36172014-01-30  Richard Sandiford  <rdsandiford@googlemail.com>
3618
3619	PR c++/58708
3620	* parser.c (make_string_pack): Use double_int::from_buffer.
3621
36222014-01-30  Marek Polacek  <polacek@redhat.com>
3623
3624	PR c/59940
3625	* typeck.c (build_ptrmemfunc1): Call convert_and_check with
3626	input_location.
3627	* cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
3628	with input_location.
3629	* call.c (build_conditional_expr_1): Call unsafe_conversion_p with
3630	loc parameter.
3631
36322014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
3633
3634	PR c++/58843
3635	* typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
3636
36372014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
3638
3639	PR c++/58649
3640	* pt.c (lookup_template_class_1): Check start_enum return value
3641	for error_mark_node.
3642
36432014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
3644
3645	* decl.c (duplicate_decls, typename_hash, typename_compare):
3646	Use TYPE_IDENTIFIER.
3647	* error.c (dump_type): Likewise.
3648	* mangle.c (dump_substitution_candidates): Likewise.
3649
36502014-01-30  Jason Merrill  <jason@redhat.com>
3651
3652	PR c++/59633
3653	* decl2.c (attributes_naming_typedef_ok): New.
3654	* cp-tree.h: Declare it.
3655	* decl.c (grokdeclarator): Check it.
3656	* tree.c (no_linkage_check): Handle VECTOR_TYPE.
3657
36582014-01-29  Jason Merrill  <jason@redhat.com>
3659
3660	PR c++/59707
3661	* call.c (add_builtin_candidate): Catch dependent types.
3662
3663	PR c++/59989
3664	* pt.c (expand_template_argument_pack): Correct
3665	non_default_args_count calculation.
3666
3667	PR c++/58466
3668	* pt.c (unify_pack_expansion): Call expand_template_argument_pack.
3669
3670	PR c++/59956
3671	* friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
3672	have a friend template in a class template.
3673	* pt.c (tsubst_friend_function): Look through it.
3674	(push_template_decl_real): A friend member template is
3675	primary.
3676
36772014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
3678
3679	PR c++/58846
3680	* decl.c (get_dso_handle_node): Don't crash if dso_handle_node
3681	== error_mark_node.
3682
36832014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
3684
3685	PR c++/58674
3686	* pt.c (instantiate_template_1): Check for error_mark_node the second
3687	argument too.
3688
36892014-01-29  Jason Merrill  <jason@redhat.com>
3690
3691	PR c++/59916
3692	* optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
3693	cdtor_returns_this case.
3694
3695	PR c++/59315
3696	* decl.c (cxx_maybe_build_cleanup): Call mark_used.
3697
36982014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
3699
3700	PR c++/58702
3701	* semantics.c (finish_omp_reduction_clause): Check type for
3702	error_mark_node.
3703
37042014-01-28  Jason Merrill  <jason@redhat.com>
3705
3706	PR c++/59791
3707	* pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
3708	(tsubst_copy): Use it if lookup fails.
3709
3710	PR c++/59818
3711	* pt.c (tsubst_function_type): Make sure we keep the same function
3712	quals.
3713
3714	PR c++/58701
3715	* semantics.c (build_anon_member_initialization): Stop walking
3716	when we run out of COMPONENT_REFs.
3717
3718	PR c++/58632
3719	* decl.c (lookup_and_check_tag): Ignore template parameters if
3720	scope == ts_current.
3721	* pt.c (check_template_shadow): Don't complain about the injected
3722	class name.
3723
3724	* decl.c (duplicate_decls): Tweak.
3725
3726	PR c++/53756
3727	* mangle.c (write_unqualified_name): Handle operator auto.
3728
37292014-01-27  Jason Merrill  <jason@redhat.com>
3730
3731	PR c++/59823
3732	Core DR 1138
3733	* call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
3734	list-initialization.  A conversion to rvalue ref that involves
3735	an lvalue-rvalue conversion is bad.
3736	(convert_like_real): Give helpful error message.
3737
3738	PR c++/54652
3739	* decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
3740
3741	PR c++/58504
3742	* pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
3743	types.
3744
3745	PR c++/58606
3746	* pt.c (template_parm_to_arg): Call convert_from_reference.
3747	(tsubst_template_arg): Don't strip reference refs.
3748
3749	PR c++/58639
3750	* call.c (build_aggr_conv): Reject value-initialization of reference.
3751
3752	PR c++/58812
3753	PR c++/58651
3754	* call.c (convert_like_real): Give helpful error about excess braces
3755	for ck_rvalue of scalar type.
3756
3757	Core DR 1288
3758	* call.c (reference_binding): Only elide braces if the single
3759	element is reference-related.
3760
3761	PR c++/58814
3762	* typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
3763	stabilizing.
3764
3765	PR c++/58837
3766	* typeck.c (cp_truthvalue_conversion): Use explicit comparison for
3767	FUNCTION_DECL.
3768
3769	PR c++/59097
3770	* decl.c (compute_array_index_type): Don't call
3771	maybe_constant_value for a non-integral expression.
3772
37732014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3774
3775	* call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
3776	flag_cilkplus.
3777	* cp-gimplify.c (cp_genericize): Likewise.
3778	* decl.c (grokfndecl): Likewise.
3779	* parser.c (cp_parser_postfix_expression): Likewise.
3780	(cp_parser_postfix_open_square_expression): Likewise.
3781	(cp_parser_direct_declarator): Likewise.
3782	(is_cilkplus_vector_p): Likewise.
3783	(cp_parser_omp_clause_name): Likewise.
3784	(cp_parser_omp_all_clauses): Likewise.
3785	* pt.c (apply_late_template_attributes): Likewise.
3786	* typeck.c (cp_build_array_ref): Likewise.
3787	(cp_build_compound_expr): Likewise.
3788	(check_return_expr): Likewise.
3789
37902014-01-24  Jason Merrill  <jason@redhat.com>
3791
3792	PR c++/58550
3793	* decl.c (grokdeclarator): Turn pedwarn about auto return type in
3794	c++11 into error.
3795
3796	PR c++/59886
3797	PR c++/59659
3798	* typeck2.c (process_init_constructor_array): Don't create
3799	RANGE_EXPR yet.
3800
38012014-01-24  Jakub Jelinek  <jakub@redhat.com>
3802
3803	* typeck2.c (split_nonconstant_init_1): Fix num_split_elts
3804	handling for RANGE_ARRAY case.
3805
38062014-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
3807
3808	PR c++/57524
3809	* name-lookup.c (push_using_directive): Use timevar_cond_start.
3810
38112014-01-23  Marek Polacek  <polacek@redhat.com>
3812
3813	PR c/59846
3814	* typeck.c (cp_build_binary_op): Pass location to shorten_compare.
3815
38162014-01-23  Marek Polacek  <polacek@redhat.com>
3817
3818	PR c/58346
3819	* typeck.c (pointer_diff): Give an error on arithmetic on pointer to
3820	an empty aggregate.
3821
38222014-01-23  Jason Merrill  <jason@redhat.com>
3823
3824	PR c++/55189
3825	* cp-tree.h (struct language_function): Add infinite_loop and
3826	infinite_loops.
3827	(current_function_infinite_loop): New.
3828	* semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
3829	(break_maybe_infinite_loop): New.
3830	(finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
3831	(finish_do_stmt, finish_for_cond, finish_for_stmt)
3832	(begin_range_for_stmt): Use them.
3833	* decl.c (finish_function): Don't warn about missing return
3834	if current_function_infinite_loop.
3835	* pt.c (instantiate_decl): Copy current_function_infinite_loop.
3836	* parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
3837
3838	* call.c (build_op_delete_call): Use make_tree_vector and
3839	release_tree_vector.
3840
38412014-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
3842
3843	PR c++/58980
3844	* parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
3845	nested_name_specifier.
3846
38472014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3848
3849	* parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
3850	see if there is an attribute after function decl.  If so, then
3851	parse them now.
3852	(cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
3853	enabled function late parsing.
3854	(cp_parser_gnu_attribute_list): Parse all the tokens for the vector
3855	attribute for a SIMD-enabled function.
3856	(cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
3857	the function is used by SIMD-enabled function (indicated by NULL
3858	pragma token).   Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
3859	PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
3860	(cp_parser_cilk_simd_vectorlength): Modified this function to handle
3861	vectorlength clause in SIMD-enabled function and #pragma SIMD's
3862	vectorlength clause.  Added a new bool parameter to differentiate
3863	between the two.
3864	(cp_parser_cilk_simd_fn_vector_attrs): New function.
3865	(is_cilkplus_vector_p): Likewise.
3866	(cp_parser_late_parsing_elem_fn_info): Likewise.
3867	(cp_parser_omp_clause_name): Added a check for "mask", "nomask"
3868	and "vectorlength" clauses when Cilk Plus is enabled.
3869	(cp_parser_omp_clause_linear): Added a new parameter of type bool
3870	and emit a sorry message when step size is a parameter.
3871	* parser.h (cp_parser::cilk_simd_fn_info): New field.
3872	* decl.c (grokfndecl): Added flag_enable_cilkplus along with
3873	flag_openmp.
3874	* pt.c (apply_late_template_attributes): Likewise.
3875
38762014-01-23  Jakub Jelinek  <jakub@redhat.com>
3877
3878	PR middle-end/58809
3879	* semantics.c (finish_omp_reduction_clause): Reject
3880	BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
3881
38822014-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
3883
3884	PR c++/59482
3885	* parser.c (cp_parser_class_head): Push the class before parsing
3886	the base-clause, pop after it.
3887
38882014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
3889
3890	* decl2.c (cpp_check): Revert prototype change.
3891
38922014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
3893
3894	PR c++/59270
3895	PR c++/58811
3896	* init.c (build_value_init_noctor): Don't pass error_mark_node to
3897	build_value_init.
3898
38992014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
3900
3901	PR c++/59269
3902	* init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
3903	only when errorcount == 0.
3904
39052014-01-17  Marek Polacek  <polacek@redhat.com>
3906
3907	PR c++/59838
3908	* cvt.c (ocp_convert): Don't segfault on non-existing
3909	ENUM_UNDERLYING_TYPE.
3910
39112014-01-16  Jason Merrill  <jason@redhat.com>
3912
3913	PR c++/59821
3914	* tree.c (bot_manip): Update the location of builtin_LINE and
3915	builtin_FILE calls.
3916
39172014-01-14  Jason Merrill  <jason@redhat.com>
3918
3919	PR c++/59659
3920	* typeck2.c (massage_init_elt): New.
3921	(process_init_constructor_record)
3922	(process_init_constructor_union): Use it.
3923	(process_init_constructor_array): Use it.  Use RANGE_EXPR.
3924	(split_nonconstant_init_1): Handle it.
3925	* semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
3926
39272014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3928
3929	PR c++/59631
3930	* parser.c (cp_parser_postfix_expression): Added a new if-statement
3931	and replaced an existing if-statement with else-if statement.
3932	Changed an existing error message wording to match the one from the C
3933	parser.
3934
39352014-01-08  Jason Merrill  <jason@redhat.com>
3936
3937	PR c++/59614
3938	* class.c (abi_tag_data): Add tags field.
3939	(check_abi_tags): Initialize it.
3940	(find_abi_tags_r): Support collecting missing tags.
3941	(mark_type_abi_tags): Don't look at template args.
3942	(inherit_targ_abi_tags): New.
3943	(check_bases_and_members): Use it.
3944	* cp-tree.h (ABI_TAG_IMPLICIT): New.
3945	* mangle.c (write_abi_tags): Check it.
3946
39472014-01-07  Jason Merrill  <jason@redhat.com>
3948
3949	PR c++/58856
3950	* pt.c (num_innermost_template_parms): New.
3951	(get_underlying_template): Use it.
3952
3953	PR c++/58965
3954	* mangle.c (write_guarded_var_name): Handle null DECL_NAME.
3955
39562014-01-07  Paolo Carlini  <paolo.carlini@oracle.com>
3957
3958	* semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
3959	the letter of 20.11.6 about Base and Derived naming the same
3960	class type modulo cv-qualifiers.
3961
39622014-01-06  Adam Butcher  <adam@jessamine.co.uk>
3963
3964	PR c++/59635
3965	* lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
3966	function as unimplemented for generic lambdas with varargs.
3967
3968	PR c++/59636
3969	* parser.c (cp_parser_template_parameter): Early out with
3970	error_mark_node if parameter declaration was not parsed.
3971
3972	PR c++/59629
3973	* parser.c (cp_parser_lambda_expression): Save/reset/restore
3974	auto_is_implicit_function_template_parm_p around lambda body.
3975
3976	PR c++/59638
3977	* parser.c (cp_parser_init_declarator): Undo fully implicit
3978	template parameter list when declarator is not a function.
3979
39802014-01-03  Marc Glisse  <marc.glisse@inria.fr>
3981
3982	PR c++/58950
3983	* cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
3984
39852014-01-03  Tobias Burnus  <burnus@net-b.de>
3986
3987	PR c++/58567
3988	* pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
3989
39902014-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
3991
3992	Core DR 1442
3993	PR c++/59165
3994	* parser.c (cp_parser_perform_range_for_lookup): Don't pass true
3995	as include_std to perform_koenig_lookup.
3996	(cp_parser_postfix_expression): Adjust.
3997	* pt.c (tsubst_copy_and_build): Likewise.
3998	* semantics.c (perform_koenig_lookup): Remove bool parameter.
3999	(omp_reduction_lookup): Adjust.
4000	* name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
4001	(lookup_arg_dependent): Likewise.
4002	(lookup_function_nonclass): Adjust.
4003	* name-lookup.h: Adjust declaration.
4004	* cp-tree.h: Likewise.
4005
40062014-01-02  Marc Glisse  <marc.glisse@inria.fr>
4007
4008	PR c++/59087
4009	* parser.c (cp_parser_userdef_numeric_literal): Mention
4010	-fext-numeric-literals in the message.
4011
40122014-01-02  Marc Glisse  <marc.glisse@inria.fr>
4013
4014	PR c++/59641
4015	* call.c (build_conditional_expr_1): Check the return value of
4016	force_rvalue.
4017
40182014-01-02  Marc Glisse  <marc.glisse@inria.fr>
4019
4020	* call.c (convert_like_real): Check complain.
4021
40222014-01-02  Marc Glisse  <marc.glisse@inria.fr>
4023
4024	PR c++/59378
4025	* typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
4026	in templates.
4027
40282014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4029
4030	Update copyright years
4031
40322014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4033
4034	* cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
4035	the standard form for the copyright notice.
4036
4037Copyright (C) 2014 Free Software Foundation, Inc.
4038
4039Copying and distribution of this file, with or without modification,
4040are permitted in any medium without royalty provided the copyright
4041notice and this notice are preserved.
4042