re PR c++/53159 (Missing narrowing check)
[gcc.git] / gcc / cp / ChangeLog
1 2014-07-11 Paolo Carlini <paolo.carlini@oracle.com>
2
3 PR c++/53159
4 * call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING
5 into convflags.
6 * decl.c (check_initializer): Don't call check_narrowing here,
7 set LOOKUP_NO_NARROWING.
8 * typeck2.c (digest_init_r): Likewise.
9
10 2014-07-10 Jason Merrill <jason@redhat.com>
11
12 PR c++/61661
13 * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR.
14
15 PR c++/61659
16 PR c++/61687
17 * decl2.c (mark_all_virtuals): New variable.
18 (maybe_emit_vtables): Check it instead of flag_devirtualize.
19 (cp_write_global_declarations): Set it and give helpful diagnostic
20 if it introduces errors.
21 * class.c (finish_struct_1): Check it.
22 * decl.c (grokdeclarator): Clear virtualp after 'virtual auto' error.
23
24 2014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
25
26 PR c++/60686
27 * decl.c (grokdeclarator): Adjust error messages about 'explicit'
28 outside class declaration, in friend declaration, and neither on
29 constructor nor conversion operator.
30
31 2014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
32
33 DR 1584
34 PR c++/57466
35 * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
36 cv-qualifiers of function types.
37
38 2014-07-09 Andrew Sutton <andrew.n.sutton@gmail.com>
39 Paolo Carlini <paolo.carlini@oracle.com>
40
41 PR c++/59361
42 * parser.c (cp_parser_tokens_start_cast_expression): Return 0 for
43 CPP_ELLIPSIS too.
44
45 2014-07-07 Paolo Carlini <paolo.carlini@oracle.com>
46
47 * class.c (check_for_override): Wrap the 'final' and 'override'
48 keywords in %< and %>.
49
50 2014-07-06 Marek Polacek <polacek@redhat.com>
51
52 PR c/6940
53 * cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
54 * decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
55 * typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
56 function parameter.
57
58 2014-07-02 Paolo Carlini <paolo.carlini@oracle.com>
59
60 * pt.c (convert_template_argument): Use inform instead of error in
61 three places.
62
63 2014-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
64
65 PR c++/58781
66 PR c++/60249
67 PR c++/59867
68 * parser.c (cp_parser_userdef_string_literal()): Take a tree
69 not a cp_token*. (cp_parser_string_literal(): Don't hack
70 the token stream!
71
72 2014-06-30 Jason Merrill <jason@redhat.com>
73
74 PR c++/61659
75 PR lto/53808
76 * decl2.c (maybe_emit_vtables): Mark all vtable entries if
77 devirtualizing.
78 * init.c (build_vtbl_address): Don't mark destructor.
79 * class.c (finish_struct_1): Add all classes to keyed_classes
80 if devirtualizing.
81
82 PR c++/61647
83 * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
84
85 PR c++/61566
86 * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.
87
88 * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
89 TYPE_BINFO or TYPE_LANG_SPECIFIC.
90 * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
91 (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
92 * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
93 * pt.c (unify): Also check whether the argument is a PMF.
94
95 2014-06-30 Paolo Carlini <paolo.carlini@oracle.com>
96
97 PR c++/54891
98 * parser.c (cp_parser_tokens_start_cast_expression): In C++11
99 a '[' can also start a primary-expression.
100 (cp_parser_cast_expression): Parse a cast-expression only tentatively
101 when cp_parser_tokens_start_cast_expression returns -1.
102
103 2014-06-30 Jason Merrill <jason@redhat.com>
104
105 PR c++/61539
106 * pt.c (unify_one_argument): Type/expression mismatch just causes
107 deduction failure.
108
109 * semantics.c (simplify_aggr_init_expr): Remove remnants of
110 2014-04-11 change.
111
112 2014-06-30 Marek Polacek <polacek@redhat.com>
113
114 * cp-gimplify.c (cp_genericize): Don't instrument returns if the
115 function has no_sanitize_undefined attribute.
116 * decl.c (compute_array_index_type): Don't instrument VLAs if the
117 function has no_sanitize_undefined attribute.
118
119 2014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
120
121 PR middle-end/57541
122 * cp-array-notation.c (expand_sec_reduce_builtin):
123 Check that bultin argument is correct.
124 * call.c (build_cxx_call): Check for 0 arguments in builtin call.
125
126 2014-06-28 Jonathan Wakely <jwakely@redhat.com>
127
128 DR 1579
129 PR c++/58051
130 * typeck.c (check_return_expr): Lookup as an rvalue even when the
131 types aren't the same.
132
133 2014-06-27 Jason Merrill <jason@redhat.com>
134
135 PR c++/61433
136 * error.c (dump_template_bindings): Don't tsubst in a clone.
137
138 2014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
139
140 PR c++/61614
141 * semantics.c (finish_compound_literal): Revert r204228.
142
143 2014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
144
145 * parser.c (cp_parser_compound_literal_p): New.
146 (cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it.
147
148 2014-06-26 Jason Merrill <jason@redhat.com>
149
150 * parser.c (cp_parser_for_init_statement): Change range-for error
151 to pedwarn.
152
153 N3994 Ranged-based for-loops: The Next Generation
154 * parser.c (cp_lexer_nth_token_is): New.
155 (cp_parser_for_init_statement): Allow "for (id : init)".
156
157 2014-06-26 Teresa Johnson <tejohnson@google.com>
158
159 * class.c (dump_class_hierarchy): Use saved dump files.
160 (dump_vtable): Ditto.
161 (dump_vtt): Ditto.
162
163 2014-06-26 Adam Butcher <adam@jessamine.co.uk>
164
165 PR c++/61537
166 * parser.c (cp_parser_elaborated_type_specifier): Only consider template
167 parameter lists outside of function parameter scope.
168
169 2014-06-25 Paolo Carlini <paolo.carlini@oracle.com>
170
171 DR 178
172 PR c++/49132
173 * typeck2.c (process_init_constructor_record): Do not complain about
174 uninitialized const members, because within aggregate-initialization,
175 members without explicit initializers are value-initialized.
176
177 2014-06-25 Jakub Jelinek <jakub@redhat.com>
178
179 * semantics.c (finish_omp_clauses): Make sure
180 OMP_CLAUSE_LINEAR_STEP has correct type.
181
182 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
183
184 * class.c (check_methods, create_vtable_ptr, determine_key_method,
185 add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by
186 FUNCTION_DECL check.
187 * cp-tree.h (lang_decl_ns): Add ns_using and ns_users.
188 (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns.
189 (DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL.
190 (DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT.
191
192 2014-06-24 Paolo Carlini <paolo.carlini@oracle.com>
193
194 PR c++/33972
195 * decl.c (grokdeclarator): Do not early check for operator-function-id
196 as non-function.
197
198 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
199
200 * class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
201 Adjust.
202
203 2014-06-24 Jakub Jelinek <jakub@redhat.com>
204
205 * parser.c (cp_parser_omp_for_loop): For
206 #pragma omp parallel for simd move lastprivate clause from parallel
207 to for rather than simd.
208
209 2014-06-23 Paolo Carlini <paolo.carlini@oracle.com>
210
211 DR 577
212 PR c++/33101
213 * decl.c (grokparms): Accept a single parameter of type 'void'.
214
215 2014-06-20 Jason Merrill <jason@redhat.com>
216
217 PR c++/59296
218 * call.c (add_function_candidate): Avoid special 'this' handling
219 if we have a ref-qualifier.
220
221 PR c++/61556
222 * call.c (build_over_call): Call build_this in template path.
223
224 2014-06-19 Jason Merrill <jason@redhat.com>
225
226 PR c++/59296
227 * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
228
229 2014-06-18 Jason Merrill <jason@redhat.com>
230
231 PR c++/59296
232 * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
233 ref-qualifier handling.
234
235 PR c++/61507
236 * pt.c (resolve_overloaded_unification): Preserve
237 ARGUMENT_PACK_EXPLICIT_ARGS.
238
239 2014-06-18 Jakub Jelinek <jakub@redhat.com>
240
241 * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
242 argument.
243 * cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
244
245 2014-06-17 Jason Merrill <jason@redhat.com>
246
247 PR c++/60605
248 * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
249
250 2014-06-15 Jason Merrill <jason@redhat.com>
251
252 PR c++/61488
253 * pt.c (check_valid_ptrmem_cst_expr): Fix for template context.
254
255 PR c++/61500
256 * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
257
258 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
259
260 * decl.c (grokvardecl): Fix pasto in previous patch.
261
262 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
263
264 * decl.c (duplicate_decls): Use set_decl_tls_model.
265 (grokdeclarator): Likewise.
266 * semantics.c (finish_id_expression): Check TLS only for
267 static variables.
268 (finish_omp_threadprivate): Use decl_default_tls_model.
269 * decl2.c (get_guard): Likewise.
270 * call.c (make_temporary_var_for_ref_to_temp): Likewise.
271
272 2014-06-14 Paolo Carlini <paolo.carlini@oracle.com>
273
274 PR c++/33101
275 * decl.c (grokparms): Improve error message about void parameters.
276 * error.c (type_to_string): Fix aka cut off code.
277
278 2014-06-12 Jason Merrill <jason@redhat.com>
279
280 * call.c (convert_arg_to_ellipsis): Use abi_version_crosses.
281 * cvt.c (type_promotes_to): Likewise.
282 * mangle.c (write_type, write_expression): Likewise.
283 (write_name, write_template_arg): Likewise.
284 (mangle_decl): Make alias based on flag_abi_compat_version.
285 Emit -Wabi warning here.
286 (finish_mangling_internal): Not here. Drop warn parm.
287 (finish_mangling_get_identifier, finish_mangling): Adjust.
288 (mangle_type_string, mangle_special_for_type): Adjust.
289 (mangle_ctor_vtbl_for_type, mangle_thunk): Adjust.
290 (mangle_guard_variable, mangle_tls_init_fn): Adjust.
291 (mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust.
292
293 * call.c (build_operator_new_call): Remove -fabi-version=1 support.
294 * class.c (walk_subobject_offsets, include_empty_classes): Likewise.
295 (layout_nonempty_base_or_field, end_of_class): Likewise.
296 (layout_empty_base, build_base_field, layout_class_type): Likewise.
297 (is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise.
298 (layout_virtual_bases): Likewise.
299 * decl.c (compute_array_index_type): Likewise.
300 * mangle.c (write_mangled_name, write_prefix): Likewise.
301 (write_template_prefix, write_integer_cst, write_expression): Likewise.
302 (write_template_arg, write_array_type): Likewise.
303 * method.c (lazily_declare_fn): Likewise.
304 * rtti.c (get_pseudo_ti_index): Likewise.
305 * typeck.c (comp_array_types): Likewise.
306
307 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
308
309 * vtable-class-hierarchy.c: Update handling for section names
310 that are no longer trees.
311 * decl.c (duplicate_decls): Likewise.
312
313 2014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
314
315 PR c++/19200
316 * parser.c (cp_parser_init_declarator): Actually pass friend_p
317 to cp_parser_declarator.
318
319 2014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
320
321 PR c++/60265
322 * parser.c (cp_parser_using_declaration): Handle unscoped enums.
323 * name-lookup.c (validate_nonmember_using_decl): Adjust error
324 message.
325
326 2014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
327
328 PR c++/19200
329 * parser.c (cp_parser_declarator): Add bool parameter.
330 (cp_parser_direct_declarator): Likewise, use it.
331 (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
332 (cp_parser_condition, cp_parser_explicit_instantiation,
333 cp_parser_init_declarator, cp_parser_type_id_1,
334 cp_parser_parameter_declaration, cp_parser_exception_declaration,
335 cp_parser_cache_defarg, cp_parser_objc_class_ivars,
336 cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
337 Adjust.
338 * decl.c (grokdeclarator): Fix handling of friend declared in
339 namespace scope (g++.dg/parse/friend10.C).
340
341 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
342
343 * vtable-class-hierarchy.c: Use symtab_get_node (var_decl)
344 ->implicit_section.
345 * optimize.c (cdtor_comdat_group): Fix handling of aliases.
346 (maybe_clone_body): Move symbol across comdat groups.
347 * method.c (use_thunk): Copy implicit section flag.
348
349 2014-06-09 Paolo Carlini <paolo.carlini@oracle.com>
350
351 PR c++/22556
352 * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
353
354 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
355
356 * method.c (use_thunk): Use set_decl_section_name.
357 * optimize.c (maybe_clone_body): Use set_decl_section_name.
358 * decl.c (duplicate_decls): Likewise.
359 * vtable-class-hierarchy.c: Likewise.
360
361 2014-06-06 Paolo Carlini <paolo.carlini@oracle.com>
362
363 PR c++/60184
364 * class.c (check_field_decls): In C++11 mode do not reject
365 static data members and reference-type members in unions.
366
367 2014-06-05 Jason Merrill <jason@redhat.com>
368
369 PR c++/43453
370 * decl.c (check_initializer): Collapse a TREE_LIST here.
371 * typeck2.c (store_init_value): Not here.
372
373 2014-06-05 Richard Biener <rguenther@suse.de>
374 Paolo Carlini <paolo.carlini@oracle.com>
375
376 PR c++/56961
377 * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
378 handling of empty classes.
379
380 2014-06-04 Jason Merrill <jason@redhat.com>
381
382 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
383 for noexcept and thread_local, too.
384
385 PR c++/61343
386 * decl.c (check_initializer): Maybe clear
387 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
388
389 2014-06-05 Richard Biener <rguenther@suse.de>
390
391 PR c++/61004
392 * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
393 warnings for accessing empty classes.
394
395 2014-06-05 Marek Polacek <polacek@redhat.com>
396
397 PR c/49706
398 * parser.c (cp_parser_binary_expression): Warn when logical not is
399 used on the left hand side operand of a comparison.
400
401 2014-06-04 Paolo Carlini <paolo.carlini@oracle.com>
402
403 PR c++/43453
404 * typeck.c (cp_build_modify_expr): Handle array of characters
405 initialized by a string literal.
406 * decl.c (check_initializer): Handle parenthesized string literal
407 as initializer.
408 * typeck2.c (store_init_value): Remove redundant check.
409
410 2014-06-04 Jason Merrill <jason@redhat.com>
411
412 PR c++/51253
413 PR c++/61382
414 * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
415 * semantics.c (simplify_aggr_init_expr): Not here, just copy it.
416
417 2014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
418
419 PR c/58942
420 * cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
421 with a pointer.
422
423 2014-06-03 Paolo Carlini <paolo.carlini@oracle.com>
424
425 DR 1423
426 PR c++/52174
427 * call.c (standard_conversion): Convert nullptr to bool only
428 in case of direct-initialization.
429 (convert_like_real): Provide informative error message.
430
431 2014-06-03 Marek Polacek <polacek@redhat.com>
432
433 PR c/60439
434 * semantics.c (finish_switch_cond): Warn if switch condition has
435 boolean value.
436
437 2014-06-03 Jason Merrill <jason@redhat.com>
438
439 PR c++/60992
440 * pt.c (tsubst_copy) [VAR_DECL]: Try lookup first. Add a new
441 variable to local_specializations.
442
443 PR c++/60848
444 * call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.
445
446 2014-06-02 Jason Merrill <jason@redhat.com>
447
448 PR c++/61046
449 * decl.c (reshape_init_class): Handle un-folded
450 constant-expressions.
451
452 PR c++/61134
453 * pt.c (pack_deducible_p): Handle canonicalization.
454
455 2014-06-02 Paolo Carlini <paolo.carlini@oracle.com>
456
457 * pt.c (tsubst_function_type): Initialize arg_types.
458
459 2014-06-02 Siva Chandra Reddy <sivachandra@google.com>
460
461 PR debug/57519
462 * class.c (handle_using_decl): Pass the correct scope to
463 cp_emit_debug_info_for_using.
464
465 2014-06-02 Ville Voutilainen <ville.voutilainen@gmail.com>
466
467 PR c++/59483
468 PR c++/61148
469 * search.c (accessible_p): Use current_nonlambda_class_type.
470 * semantics.c (check_accessibility_of_qualified_id): Likewise.
471
472 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
473
474 * decl.c: Include builtins.h.
475 * semantics.c: Likewise.
476
477 2014-05-31 Paolo Carlini <paolo.carlini@oracle.com>
478
479 DR 1227
480 PR c++/57543
481 * cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add.
482 * pt.c (tsubst_function_type): Inject the this parameter; do the
483 substitutions in the order mandated by the DR.
484 (copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE.
485 * decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE.
486 (static_fn_type): Copy it.
487 * decl2.c (build_memfn_type, change_return_type,
488 cp_reconstruct_complex_type): Likewise.
489 * parser.c (cp_parser_lambda_declarator_opt): Likewise.
490 * tree.c (strip_typedefs): Likewise.
491 * typeck.c (merge_types): Likewise.
492
493 2014-05-30 Jason Merrill <jason@redhat.com>
494
495 PR c++/56947
496 * pt.c (instantiate_decl): Check that defer_ok is not set for
497 local class members.
498
499 PR c++/60992
500 * pt.c (tsubst_init): Split out from...
501 (tsubst_expr) [DECL_EXPR]: Here.
502 (tsubst_copy) [VAR_DECL]: Use it.
503 * semantics.c (finish_id_expression): Return the decl for static/const.
504
505 2014-05-28 Jason Merrill <jason@redhat.com>
506
507 PR c++/47202
508 * decl.c (cxx_comdat_group): Return a decl.
509 * optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
510
511 * pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
512 bound.
513
514 PR c++/61242
515 * call.c (build_aggr_conv): Ignore passed in flags.
516 (build_array_conv, build_complex_conv): Likewise.
517
518 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
519
520 * optimize.c (maybe_thunk_body): Use set_comdat_group.
521 (maybe_clone_body): Likewise.
522 * decl.c (duplicate_decls): Update code duplicating comdat group;
523 do not copy symtab pointer; before freeing newdecl remove it
524 from symtab.
525 * decl2.c (constrain_visibility): Use set_comdat_group.
526
527 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
528
529 * rtti.c: Include tm_p.h
530 (emit_tinfo_decl): Force RTTI data to be aligned to required
531 ABI alignment only.
532
533 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
534
535 * class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
536 ignoring other target adjustments.
537
538 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
539
540 * semantics.c (finish_omp_clauses): Remove duplicated variable
541 initialization.
542
543 * parser.c (cp_parser_omp_target): Return bool values.
544
545 2014-05-22 Paolo Carlini <paolo.carlini@oracle.com>
546
547 PR c++/61088
548 * lambda.c (add_capture): Enforce that capture by value requires
549 complete type.
550 * typeck2.c (cxx_incomplete_type_inform): Early return if
551 TYPE_MAIN_DECL is null.
552
553 2014-05-21 Jonathan Wakely <jwakely@redhat.com>
554
555 PR c/61271
556 * cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition.
557
558 2014-05-21 Ville Voutilainen <ville.voutilainen@gmail.com>
559
560 PR c++/61133
561 * lambda.c (build_capture_proxy, add_capture): Treat normal
562 captures and init-captures identically.
563
564 2014-05-21 Mark Wielaard <mjw@redhat.com>
565
566 PR debug/16063
567 * cp-lang.c (cxx_enum_underlying_base_type): New function.
568 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
569
570 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
571
572 * cvt.c (convert_to_void): Use void_node instead of void_zero_node.
573 * cp-array-notation.c (replace_invariant_exprs): Likewise.
574 (expand_array_notation): Handle VOID_CST.
575 * error.c (dump_expr): Likewise.
576 * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
577 (cxx_pretty_printer::expression): Likewise.
578 (pp_cxx_new_expression): Use void_node instead of void_zero_node.
579 * decl.c (register_dtor_fn): Likewise.
580 * init.c (build_raw_new_expr, build_new_1, build_vec_init)
581 (build_delete, push_base_cleanups): Likewise.
582 * mangle.c (write_expression): Likewise.
583 * semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise.
584 * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
585 (tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST.
586 * tree.c (cp_tree_equal): Likewise.
587 (build_dummy_object, is_dummy_object, stabilize_expr): Use void_node
588 instead of void_zero_node.
589 * typeck.c (check_return_expr): Likewise.
590 * typeck2.c (build_functional_cast): Likewise.
591
592 2014-05-21 Igor Zamyatin <igor.zamyatin@intel.com>
593
594 PR c/60189
595 * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync
596 from here to...
597 (cp_parser_statement): ...here. Make sure only semicolon can go after
598 Cilk_sync.
599
600 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
601
602 PR c++/58753
603 PR c++/58930
604 PR c++/58704
605 * typeck2.c (digest_nsdmi_init): New.
606 * parser.c (cp_parser_late_parse_one_default_arg): Use it.
607 * init.c (get_nsdmi): Likewise.
608 * cp-tree.h (digest_nsdmi_init): Declare.
609
610 2014-05-20 Jason Merrill <jason@redhat.com>
611
612 * typeck.c (get_member_function_from_ptrfunc): Don't try to look
613 up a virtual function in a dummy object.
614
615 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
616
617 PR c++/60373
618 * decl.c (duplicate_decls): Replace pair of warning_at with
619 warning_at + inform.
620 (maybe_commonize_var): Likewise.
621
622 2014-05-20 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
623
624 PR bootstrap/61210
625 * pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr)
626 (tsubst_copy_and_build): Perform recursive substitutions in a
627 deterministic order.
628
629 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
630
631 PR c++/58664
632 * typeck2.c (cxx_incomplete_type_inform): New.
633 (cxx_incomplete_type_diagnostic): Use it.
634 * decl.c (grokdeclarator): Check the element type of an
635 incomplete array type; call the above.
636 * cp-tree.h (cxx_incomplete_type_inform): Declare.
637
638 2014-05-19 Jason Merrill <jason@redhat.com>
639
640 PR c++/58761
641 * pt.c (tsubst_copy): Don't check at_function_scope_p.
642 (instantiate_class_template_1): Don't push_to_top_level in an nsdmi.
643
644 2014-05-19 Paolo Carlini <paolo.carlini@oracle.com>
645
646 * typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
647 * parser.c (cp_parser_enum_specifier): Likewise.
648
649 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
650
651 * class.c (sorted_fields_type_new): Adjust.
652 * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
653 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
654 * cp-tree.h: Remove usage of variable_size gty attribute.
655 * decl.c (make_label_decl): Adjust.
656 (check_goto): Likewise.
657 (start_preparsed_function): Likewise.
658 (save_function_data): Likewise.
659 * lex.c (init_reswords): Likewise.
660 (retrofit_lang_decl): Likewise.
661 (cxx_dup_lang_specific_decl): Likewise.
662 (copy_lang_type): Likewise.
663 (cxx_make_type): Likewise.
664 * name-lookup.c (binding_entry_make): Likewise.
665 (binding_table_construct): Likewise.
666 (binding_table_new): Likewise.
667 (cxx_binding_make): Likewise.
668 (pushdecl_maybe_friend_1): Likewise.
669 (begin_scope): Likewise.
670 (push_to_top_level): Likewise.
671 * parser.c (cp_lexer_alloc): Likewise.
672 (cp_lexer_new_from_tokens): Likewise.
673 (cp_token_cache_new): Likewise.
674 (cp_parser_context_new): Likewise.
675 (cp_parser_new): Likewise.
676 (cp_parser_nested_name_specifier_opt): Likewise.
677 (cp_parser_template_id): Likewise.
678 * pt.c (maybe_process_partial_specialization): Likewise.
679 (register_specialization): Likewise.
680 (add_pending_template): Likewise.
681 (lookup_template_class_1): Likewise.
682 (push_tinst_level): Likewise.
683 * semantics.c (register_constexpr_fundef): Likewise.
684 (cxx_eval_call_expression): Likewise.
685 * typeck2.c (abstract_virtuals_error_sfinae): Likewise.
686
687 2014-05-16 Paolo Carlini <paolo.carlini@oracle.com>
688
689 PR c++/51640
690 * parser.c (cp_parser_diagnose_invalid_type_name): Early return
691 when cp_parser_lookup_name sets ambiguous_decls.
692
693 2014-05-15 Jason Merrill <jason@redhat.com>
694
695 * call.c (print_conversion_rejection): Use loc consistently.
696
697 2014-05-14 Paolo Carlini <paolo.carlini@oracle.com>
698
699 * cp-tree.h (DIRECT_LIST_INIT_P): Add.
700 * call.c (convert_like_real, build_new_method_call_1): Use it.
701 * decl2.c (grokfield): Likewise.
702 * init.c (perform_member_init, build_aggr_init, expand_default_init,
703 build_new_1): Likewise.
704 * mangle.c (write_expression): Likewise.
705 * parser.c (cp_parser_late_parse_one_default_arg): Likewise.
706
707 2014-05-14 Jason Merrill <jason@redhat.com>
708
709 PR c++/20332
710 PR c++/21631
711 * call.c (reference_binding): Treat lvalue/rvalue mismatch and
712 dropped cv-quals as a bad conversion.
713 (convert_like_real) [ck_ref_bind]: Explain them.
714 (compare_ics): Check badness before stripping reference
715 bindings. Handle comparing bad reference bindings.
716 * typeck.c (comp_cv_qualification): Add overload that just takes
717 integers.
718 * cp-tree.h: Declare it.
719
720 * call.c (struct conversion_info): Rename 'from_type' to 'from'.
721 (arg_conversion_rejection, bad_arg_conversion_rejection)
722 (explicit_conversion_rejection, template_conversion_rejection): Adjust.
723 (add_function_candidate): Pass actual argument, rather than type, to
724 bad_arg_conversion_rejection.
725 (print_conversion_rejection): Explain what's wrong with the conversion.
726 (print_z_candidates): Say "candidate:" before each candidate.
727 (splice_viable): Be strict if we see a viable or template candidate.
728 (build_user_type_conversion_1): Pass false to strict parameter.
729 (perform_overload_resolution, build_conditional_expr_1): Likewise.
730 (build_new_op_1, build_new_method_call_1): Likewise.
731 (build_op_call_1): Pass true to strict parameter.
732
733 2014-05-13 Jason Merrill <jason@redhat.com>
734
735 * call.c (print_error_for_call_failure): Say "no match" rather
736 than "ambiguous" if there were no strict matches.
737 (build_new_method_call_1): Likewise.
738
739 PR c++/61151
740 * semantics.c (is_this_parameter): Allow capture proxies too.
741
742 2014-05-12 Jason Merrill <jason@redhat.com>
743
744 * call.c (maybe_print_user_conv_context): New.
745 (convert_like_real): Use it. Print call context for bad
746 user-defined conversion.
747 (build_over_call): Print call context for bad 'this' conversion.
748
749 * call.c (convert_like_real): Use inform for identifying the
750 declaration point.
751
752 2014-05-12 Paolo Carlini <paolo.carlini@oracle.com>
753
754 * cvt.c (cp_convert_to_pointer): Don't call error_at if
755 complain & tf_error is false.
756
757 * decl.c (make_unbound_class_template): Prefer inform for
758 "declared here"-type message.
759
760 2014-05-09 Momchil Velikov <momchil.velikov@gmail.com>
761
762 PR c++/60463
763 PR c++/60755
764 * lambda.c (lambda_expr_this_capture): Add new parameter
765 add_capture_p controlling whether the functions will try to
766 capture 'this' via the default capture.
767 (maybe_resolve_dummy): Likewise.
768 * cp-tree.h: Adjust prototypes.
769 * call.c, semantics.c: Change callers of these functions.
770 * call.c (build_new_method_call_1): Use the actual 'this' that
771 would be potentially captured for the overload resolution, instead
772 of the dummy object.
773
774 2014-05-09 Paolo Carlini <paolo.carlini@oracle.com>
775
776 * pt.c (convert_nontype_argument_function): Add tsubst_flags_t
777 parameter.
778 (convert_nontype_argument): Adjust calls.
779 (coerce_template_parameter_pack): Add missing complain & tf_error
780 check.
781
782 2014-05-09 Jason Merrill <jason@redhat.com>
783
784 DR 587
785 PR c++/51317
786 * call.c (build_conditional_expr_1, conditional_conversion): Handle
787 non-class lvalues and xvalues that differ only in cv-qualifiers.
788
789 DR 5
790 PR c++/60019
791 * call.c (build_user_type_conversion_1): The copy-init temporary
792 is cv-unqualified.
793
794 PR c++/58714
795 * tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
796
797 PR c++/54348
798 * call.c (build_conditional_expr_1): If overload resolution finds
799 no match, just say "different types".
800
801 PR c++/32019
802 * call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
803
804 PR c++/22434
805 * call.c (build_conditional_expr_1): Don't try to pool cv-quals
806 if we didn't find a conversion.
807 Don't accept a bad conversion too early.
808
809 2014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
810
811 PR c++/13981
812 * typeck.c (convert_for_assignment): Provide an inform for pointers
813 to incomplete class types.
814
815 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
816
817 PR c++/61083
818 * pt.c (convert_nontype_argument): Protect all the error calls
819 with complain & tf_error.
820
821 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
822
823 PR c++/61080
824 * pt.c (instantiate_decl): Avoid generating the body of a
825 deleted function.
826
827 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com>
828
829 PR c++/60999
830 * pt.c (maybe_begin_member_template_processing): Use
831 uses_template_parms.
832
833 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
834 Mike Stump <mikestump@comcast.net>
835 Richard Sandiford <rdsandiford@googlemail.com>
836
837 * call.c: Include wide-int.h.
838 (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
839 (convert_for_arg_passing): Likewise.
840 * class.c: Include wide-int.h.
841 (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
842 (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
843 (include_empty_classes): Likewise
844 (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
845 * cvt.c: Include wide-int.h.
846 (ignore_overflows): Use wide_int_to_tree.
847 * decl.c: Include wide-int.h.
848 (check_array_designated_initializer): Use wide-int interfaces.
849 (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
850 (finish_enum_value_list): Use signop.
851 (build_enumerator): Use wide-int interfaces.
852 * init.c: Include wide-int.h.
853 (build_new_1): Use wide-int interfaces.
854 * mangle.c: Include wide-int.h.
855 (write_integer_cst): Use wide-int interfaces.
856 (write_array_type): Likewise.
857 * tree.c: Include wide-int.h.
858 (cp_tree_equal): Use tree_int_cst_equal.
859 * typeck2.c: Include wide-int.h.
860 (process_init_constructor_array): Use wide-int interfaces.
861
862 2014-05-03 Paolo Carlini <paolo.carlini@oracle.com>
863
864 PR c++/58582
865 * decl.c (grokfndecl): Check duplicate_decls return value for
866 error_mark_node.
867 * pt.c (instantiate_decl): A deleted function is defined.
868
869 2014-05-02 Jason Merrill <jason@redhat.com>
870
871 * decl2.c (vague_linkage_p): Local statics have vague linkage.
872
873 PR c++/60992
874 * lambda.c (lambda_capture_field_type): Wrap anything dependent
875 other than 'this'.
876 (add_capture): Check for VLA before calling it.
877 * semantics.c (is_this_parameter): Accept any 'this' parameter, not
878 just the current one. Make non-static.
879 * cp-tree.h: Declare it.
880 * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
881 the operand was static or constant.
882
883 2014-05-02 Marek Polacek <polacek@redhat.com>
884
885 * typeck.c (maybe_warn_about_returning_address_of_local): Separate
886 warning_at calls.
887
888 2014-05-01 Marek Polacek <polacek@redhat.com>
889
890 PR c/43395
891 * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
892 between label and variable when warning about returning local address.
893
894 2014-04-30 Jason Merrill <jason@redhat.com>
895
896 PR c++/60980
897 * init.c (build_value_init): Don't try to call an array constructor.
898
899 PR c++/60951
900 * typeck2.c (massage_init_elt): Use maybe_constant_init.
901
902 2014-04-30 Marek Polacek <polacek@redhat.com>
903
904 * typeck.c (cp_build_binary_op): Call ubsan_instrument_division
905 even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even
906 for non-integer types.
907
908 2014-04-29 Jason Merrill <jason@redhat.com>
909
910 DR 1351
911 Represent the unevaluated exception specification of an implicitly
912 declared or deleted function with a simple placeholder, not a list
913 of functions.
914 * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
915 * except.c (unevaluated_noexcept_spec): New.
916 * class.c (deduce_noexcept_on_destructor): Use it.
917 * decl.c (check_redeclaration_exception_specification): Call
918 maybe_instantiate_noexcept.
919 (duplicate_decls): Call it before merge_types.
920 (start_preparsed_function): Call maybe_instantiate_noexcept.
921 * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
922 * init.c (get_nsdmi): Factor out of perform_member_init.
923 * method.c (process_subob_fn): Call maybe_instantiate_noexcept.
924 (walk_field_subobs): Consider NSDMI for EH spec.
925 (get_defaulted_eh_spec): New.
926 (implicitly_declare_fn): Use unevaluated_noexcept_spec.
927 (defaulted_late_check): Defer EH checking in non-template classes.
928 (after_nsdmi_defaulted_late_checks): New.
929 * parser.c (cp_parser_class_specifier_1): Use it.
930 (unparsed_classes): New macro.
931 * parser.h (cp_unparsed_functions_entry_d): Add classes field.
932 * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
933 Remove list-of-functions handling.
934 * typeck2.c (merge_exception_specifiers): Remove list-of-functions
935 handling and FN parameter.
936 * typeck.c (merge_types): Adjust.
937
938 2014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
939
940 PR c++/59120
941 * parser.c (cp_parser_alias_declaration): Check return value of
942 cp_parser_require.
943
944 2014-04-24 Jakub Jelinek <jakub@redhat.com>
945
946 * parser.c (cp_parser_omp_atomic): Allow seq_cst before
947 atomic-clause, allow comma in between atomic-clause and
948 seq_cst.
949
950 2014-04-24 Marc Glisse <marc.glisse@inria.fr>
951
952 PR libstdc++/43622
953 * rtti.c (emit_support_tinfos): Do not iterate on
954 registered_builtin_types (partial revert).
955
956 2014-04-23 Dinar Temirbulatov <dtemirbulatov@gmail.com>
957
958 PR c++/57958
959 * semantics.c (apply_deduced_return_type): Complete non-void type
960 before estimating whether the type is aggregate.
961
962 2014-04-22 Marc Glisse <marc.glisse@inria.fr>
963
964 PR libstdc++/43622
965 * rtti.c (emit_support_tinfo_1): New function, extracted from
966 emit_support_tinfos.
967 (emit_support_tinfos): Call it and iterate on registered_builtin_types.
968
969 2014-04-22 Jakub Jelinek <jakub@redhat.com>
970
971 PR c/59073
972 * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
973 fails, don't set OM_PARALLEL_COMBINED and return NULL.
974
975 2014-04-18 Jason Merrill <jason@redhat.com>
976
977 DR 1571
978 * call.c (reference_binding): Recurse on user-defined conversion.
979
980 PR c++/60872
981 * call.c (standard_conversion): Don't try to apply restrict to void.
982
983 2014-04-16 Marc Glisse <marc.glisse@inria.fr>
984
985 * decl.c (reshape_init_r): Handle a single element of vector type.
986
987 2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
988
989 PR c++/60765
990 * decl2.c (cplus_decl_attributes): Handle
991 pointer-to-member-function declarations.
992
993 2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
994
995 PR c++/60764
996 * call.c (build_user_type_coversion): Use build_dummy_object
997 to create the placeholder object for a constructor method call.
998 (build_special_member_call): Likewise.
999 (build_over_call): Check for the placeholder object with
1000 is_dummy_object.
1001 (build_new_method_call_1): Likewise. Don't attempt to resolve
1002 a dummy object for a constructor method call.
1003
1004 2014-04-16 Paul Pluzhnikov <ppluzhnikov@google.com>
1005
1006 PR c++/59295
1007 * friend.c (add_friend, make_friend_class): Move repeated friend
1008 warning under Wredundant_decls.
1009
1010 2014-04-15 Paolo Carlini <paolo.carlini@oracle.com>
1011
1012 * decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
1013 * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
1014 (do_class_using_decl): Likewise.
1015 * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
1016
1017 2014-04-15 Jakub Jelinek <jakub@redhat.com>
1018
1019 PR plugins/59335
1020 * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
1021
1022 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
1023
1024 * cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
1025
1026 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
1027
1028 * pt.c (mark_template_parm): Use template_parm_level_and_index.
1029
1030 2014-04-11 Jason Merrill <jason@redhat.com>
1031
1032 * parser.h (struct cp_token): Rename ambiguous_p to error_reported.
1033 * parser.c: Adjust.
1034 (cp_lexer_get_preprocessor_token): Always clear it.
1035 (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
1036
1037 DR 1467
1038 PR c++/51747
1039 * decl.c (reshape_init_r): Handle a single element of class type.
1040
1041 DR 1338
1042 * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
1043 built-in operator new.
1044
1045 2014-04-11 Paolo Carlini <paolo.carlini@oracle.com>
1046
1047 PR c++/58600
1048 * name-lookup.c (parse_using_directive): Return early if the
1049 attribs argument is error_mark_node; use get_attribute_name.
1050
1051 2014-04-11 Jason Merrill <jason@redhat.com>
1052
1053 DR 1030
1054 PR c++/51253
1055 * cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
1056 * call.c (struct z_candidate): Add flags field.
1057 (add_candidate): Add flags parm.
1058 (add_function_candidate, add_conv_candidate, build_builtin_candidate)
1059 (add_template_candidate_real): Pass it.
1060 (build_over_call): Set CALL_EXPR_LIST_INIT_P.
1061 * tree.c (build_aggr_init_expr): Copy it.
1062 * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
1063
1064 2014-04-10 Richard Biener <rguenther@suse.de>
1065 Jakub Jelinek <jakub@redhat.com>
1066
1067 PR ipa/60761
1068 * error.c (dump_decl) <case FUNCTION_DECL>: If
1069 DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
1070 recurse on DECL_ABSTRACT_ORIGIN instead of printing
1071 <built-in>.
1072
1073 2014-04-09 Fabien Chêne <fabien@gcc.gnu.org>
1074
1075 * pt.c (check_template_variable): Check for the return of pedwarn
1076 before emitting a note.
1077 * parser.c (cp_parser_lambda_introducer): Likewise.
1078
1079 2014-04-08 Paolo Carlini <paolo.carlini@oracle.com>
1080
1081 PR c++/59115
1082 * pt.c (process_template_parm): For an invalid non-type parameter
1083 only set TREE_TYPE to error_mark_node.
1084 (push_inline_template_parms_recursive, comp_template_parms,
1085 redeclare_class_template, coerce_template_template_parm,
1086 coerce_template_template_parms, unify): Use error_operand_p.
1087
1088 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
1089
1090 * class.c (check_bases_and_members): Warn about non-virtual dtors
1091 in public bases only. Check warn_ecpp before complaining about
1092 non-polymorphic bases.
1093
1094 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
1095
1096 * decl.c (duplicate_decls): Check for the return of warning_at
1097 before emitting a note.
1098 (warn_misplaced_attr_for_class_type): Likewise.
1099 (check_tag_decl): Likewise.
1100
1101 2014-04-04 Paolo Carlini <paolo.carlini@oracle.com>
1102
1103 PR c++/58207
1104 * semantics.c (sort_constexpr_mem_initializers): Robustify loop.
1105
1106 2014-04-04 Patrick Palka <patrick@parcs.ath.cx>
1107
1108 PR c++/44613
1109 * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
1110 * decl.c (cp_finish_decl): Create a new BIND_EXPR before
1111 instantiating a variable-sized type.
1112
1113 PR c++/21113
1114 * decl.c (decl_jump_unsafe): Consider variably-modified decls.
1115
1116 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
1117
1118 * class.c (find_abi_tags_r): Check for the return of warning
1119 before emitting a note.
1120 (one_inherited_ctor): Likewise.
1121
1122 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
1123
1124 * decl.c (duplicate_decls): Check for the return of permerror
1125 before emitting a note.
1126
1127 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
1128
1129 * class.c (accessible_nvdtor_p): New.
1130 (check_bases): Don't check base destructor here ...
1131 (check_bases_and_members): ... check them here. Trigger on
1132 Wnon-virtual-dtor flag.
1133 (finish_struct_1): Use accessible_nvdtor_p.
1134
1135 2014-04-01 Jason Merrill <jason@redhat.com>
1136
1137 * pt.c (process_partial_specialization): Say "not deducible"
1138 rather than "not used". Use inform.
1139
1140 PR c++/60374
1141 * pt.c (coerce_template_parms): Check that the pack expansion
1142 pattern works with the first matching parameter.
1143
1144 2014-04-01 Fabien Chêne <fabien@gcc.gnu.org>
1145
1146 * init.c (perform_member_init): Homogenize uninitialized
1147 diagnostics.
1148
1149 2014-04-01 Jason Merrill <jason@redhat.com>
1150
1151 PR c++/60708
1152 * call.c (build_array_conv): Call complete_type.
1153
1154 PR c++/60713
1155 * typeck2.c (PICFLAG_SIDE_EFFECTS): New.
1156 (picflag_from_initializer): Return it.
1157 (process_init_constructor): Handle it.
1158
1159 PR c++/60642
1160 * decl2.c (is_late_template_attribute): Don't defer abi_tag.
1161 * mangle.c (write_unqualified_name): Fix abi_tag on templates.
1162 * pt.c (get_template_info): Handle NAMESPACE_DECL.
1163 (most_general_template): Handle more kinds of template.
1164 * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
1165 instantiations and specializations.
1166
1167 2014-03-31 Patrick Palka <patrick@parcs.ath.cx>
1168
1169 PR c++/44859
1170 * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
1171 COMPONENT_REFs and ARRAY_REFs sooner.
1172
1173 2014-03-29 Adam Butcher <adam@jessamine.co.uk>
1174
1175 PR c++/60626
1176 * parser.c (cp_parser_init_declarator): Handle erroneous generic type
1177 usage in non-functions with pushed scope.
1178
1179 2014-03-28 Adam Butcher <adam@jessamine.co.uk>
1180
1181 PR c++/60573
1182 * name-lookup.h (cp_binding_level): New transient field defining_class_p
1183 to indicate whether a scope is in the process of defining a class.
1184 * semantics.c (begin_class_definition): Set defining_class_p.
1185 * name-lookup.c (leave_scope): Reset defining_class_p.
1186 * parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
1187 defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
1188 unwinding to class-defining scope to handle the erroneous definition of
1189 a generic function of an arbitrarily nested class within an enclosing
1190 class.
1191
1192 2014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
1193
1194 PR c++/52369
1195 * method.c (walk_field_subobs): Improve the diagnostic
1196 locations for both REFERENCE_TYPEs and non-static const members.
1197 * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
1198 instead of %qD to be consistent with the c++11 diagnostic.
1199
1200 2014-03-25 Jason Merrill <jason@redhat.com>
1201
1202 PR c++/60566
1203 PR c++/58678
1204 * class.c (build_vtbl_initializer): Handle abstract dtors here.
1205 * search.c (get_pure_virtuals): Not here.
1206
1207 PR c++/60375
1208 * parser.c (cp_parser_lambda_expression): Don't parse the body of
1209 a lambda in unevaluated context.
1210
1211 PR c++/60628
1212 * decl.c (create_array_type_for_decl): Complain about array of auto.
1213
1214 2014-03-25 Jakub Jelinek <jakub@redhat.com>
1215
1216 PR c++/60331
1217 * semantics.c (potential_constant_expression_1): Handle
1218 DECL_EXPR.
1219
1220 2014-03-24 Adam Butcher <adam@jessamine.co.uk>
1221
1222 PR c++/60627
1223 * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
1224 introducing an implicit function template parameter within an explicit
1225 instantiation.
1226
1227 2014-03-22 Jason Merrill <jason@redhat.com>
1228
1229 PR c++/60574
1230 * decl.c (grokdeclarator): Change permerror about 'virtual auto'
1231 to error.
1232
1233 2014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
1234
1235 PR c++/60384
1236 * name-lookup.c (push_class_level_binding_1): Check identifier_p
1237 on the name argument.
1238
1239 2014-03-20 Jakub Jelinek <jakub@redhat.com>
1240
1241 PR c++/60572
1242 * init.c (build_zero_init_1): Ignore fields with error_mark_node
1243 type.
1244
1245 2014-03-19 Paolo Carlini <paolo.carlini@oracle.com>
1246
1247 PR c++/51474
1248 * call.c (build_new_method_call_1): Handle pure virtuals called by
1249 NSDMIs too.
1250
1251 2014-03-17 Adam Butcher <adam@jessamine.co.uk>
1252
1253 PR c++/60390
1254 * parser.c (cp_parser_member_declaration): Don't allow
1255 finish_fully_implicit_template to consider friend declarations to be
1256 class member templates.
1257 (synthesize_implicit_template_parm): Handling winding back through class
1258 scope to the class being defined in order to inject a template argument
1259 list.
1260
1261 PR c++/60391
1262 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
1263 function scope as per cp_parser_skip_to_end_of_statement.
1264
1265 2014-03-17 Paolo Carlini <paolo.carlini@oracle.com>
1266
1267 PR c++/59571
1268 * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
1269
1270 2014-03-14 Jason Merrill <jason@redhat.com>
1271
1272 PR c++/60532
1273 PR c++/58678
1274 * search.c (get_pure_virtuals): Handle abstract dtor here.
1275 (dfs_get_pure_virtuals): Not here.
1276
1277 PR c++/58678
1278 * search.c (dfs_get_pure_virtuals): Treat the destructor of an
1279 abstract class as pure.
1280
1281 2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
1282
1283 PR c++/60383
1284 * pt.c (maybe_process_partial_specialization): Check return value
1285 of check_specialization_namespace.
1286
1287 2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
1288
1289 PR c++/60254
1290 * semantics.c (finish_static_assert): Call cxx_constant_value only
1291 if require_potential_rvalue_constant_expression returns true.
1292
1293 2014-03-11 Paolo Carlini <paolo.carlini@oracle.com>
1294
1295 PR c++/60389
1296 * method.c (get_inherited_ctor): New.
1297 * cp-tree.h (get_inherited_ctor): Declare it.
1298 * semantics.c (is_valid_constexpr_fn): Use it.
1299
1300 2014-03-10 Jason Merrill <jason@redhat.com>
1301
1302 PR c++/60367
1303 * call.c (convert_default_arg): Remove special handling for
1304 CONSTRUCTOR.
1305
1306 PR c++/53492
1307 * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
1308 when deciding whether to call push_template_decl for a member class.
1309 * pt.c (push_template_decl_real): Return after wrong levels error.
1310
1311 2014-03-08 Adam Butcher <adam@jessamine.co.uk>
1312
1313 PR c++/60033
1314 * pt.c (tsubst_copy): When retrieving a capture pack from a generic
1315 lambda, remove the lambda's own template argument list prior to fetching
1316 the specialization.
1317
1318 PR c++/60393
1319 * parser.c (cp_parser_parameter_declaration_clause): Move generic
1320 function template unwinding on error into a more general location, ...
1321 (cp_parser_skip_to_end_of_statement): ... here.
1322
1323 2014-03-07 Jason Merrill <jason@redhat.com>
1324
1325 * Make-lang.in (check_g++_parallelize): Split dg.exp.
1326
1327 * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
1328 we're in a trailing return type.
1329
1330 * typeck.c (comp_template_parms_position): 'auto' and
1331 'decltype(auto)' are different from real template parms.
1332
1333 * parser.c (cp_parser_using_declaration): Consume the semicolon
1334 after bare parameter pack error.
1335
1336 * cp-tree.h (REF_PARENTHESIZED_P): New.
1337 * semantics.c (force_paren_expr): Set it.
1338 * pt.c (do_auto_deduction): Check it.
1339 (tsubst) [COMPONENT_REF]: Copy it.
1340 * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
1341
1342 * decl.c (create_array_type_for_decl): Only warn about invalid
1343 C++1y VLA if flag_iso or warn_vla>0.
1344 (grokdeclarator): Likewise.
1345 * pt.c (tsubst): Likewise.
1346 * semantics.c (finish_decltype_type): Likewise.
1347 * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
1348 (cp_build_addr_expr_1): Likewise.
1349 * init.c (build_new_1): Improve diagnostics.
1350
1351 2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
1352
1353 PR c++/58609
1354 * decl.c (check_initializer): Return NULL_TREE after error;
1355 consistently use inform.
1356
1357 2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
1358
1359 * decl.c (check_initializer): Remove dead code.
1360
1361 2014-03-06 Marek Polacek <polacek@redhat.com>
1362
1363 PR c/60197
1364 * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
1365 of checking tree code.
1366
1367 2014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
1368
1369 * parser.c (cp_lexer_set_source_position): New.
1370 (cp_parser_mem_initializer): Use it.
1371 (cp_parser_postfix_open_square_expression): Likewise.
1372 (cp_parser_parenthesized_expression_list): Likewise.
1373 (cp_parser_new_initializer): Likewise.
1374 (cp_parser_jump_statement): Likewise.
1375 (cp_parser_initializer): Likewise.
1376 (cp_parser_functional_cast): Likewise.
1377
1378 2014-03-05 Jason Merrill <jason@redhat.com>
1379
1380 PR c++/60409
1381 * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
1382 dependent expression.
1383
1384 PR c++/60361
1385 * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
1386 if re-parsing might succeed.
1387 * semantics.c (finish_id_expression): Use of a parameter outside
1388 the function body is a parse error.
1389
1390 * parser.c (cp_parser_mem_initializer): Set input_location
1391 properly for init-list warning.
1392 (cp_parser_postfix_open_square_expression): Likewise.
1393 (cp_parser_parenthesized_expression_list): Likewise.
1394 (cp_parser_new_initializer): Likewise.
1395 (cp_parser_jump_statement): Likewise.
1396 (cp_parser_initializer): Likewise.
1397 (cp_parser_functional_cast): Likewise.
1398
1399 2014-03-04 Jason Merrill <jason@redhat.com>
1400
1401 PR c++/60417
1402 * typeck2.c (process_init_constructor_record): Set
1403 CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
1404
1405 PR c++/60415
1406 PR c++/54359
1407 * parser.c (cp_parser_direct_declarator): Set declarator to
1408 cp_error_declarator on invalid qualified-id.
1409
1410 2014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
1411
1412 PR c++/60376
1413 * parser.c (cp_parser_using_declaration): Early return when
1414 cp_parser_nested_name_specifier errors out.
1415
1416 2014-03-01 Adam Butcher <adam@jessamine.co.uk>
1417
1418 PR c++/60377
1419 * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
1420 function scope on parse error in function parameter list.
1421
1422 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
1423
1424 * method.c (implicitly_declare_fn): Remove redundant
1425 DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
1426 * semantics.c (is_instantiation_of_constexpr): Likewise.
1427 * error.c (dump_function_decl): Likewise.
1428
1429 2014-03-01 Jason Merrill <jason@redhat.com>
1430
1431 PR c++/60379
1432 * semantics.c (begin_maybe_infinite_loop): Use
1433 fold_non_dependent_expr_sfinae.
1434
1435 2014-02-28 Jason Merrill <jason@redhat.com>
1436
1437 PR c++/58845
1438 * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
1439
1440 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
1441
1442 PR c++/58610
1443 * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
1444 * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
1445 * lambda.c (maybe_add_lambda_conv_op): Likewise.
1446
1447 2014-02-27 Paolo Carlini <paolo.carlini@oracle.com>
1448
1449 PR c++/60253
1450 * call.c (convert_arg_to_ellipsis): Return error_mark_node after
1451 error_at.
1452
1453 2014-02-27 Jason Merrill <jason@redhat.com>
1454
1455 PR c++/60353
1456 PR c++/55877
1457 * decl2.c (tentative_decl_linkage): Don't mess with functions that
1458 are not yet defined.
1459
1460 2014-02-26 Jason Merrill <jason@redhat.com>
1461
1462 PR c++/60347
1463 PR lto/53808
1464 * class.c (clone_function_decl): Don't note_vague_linkage_fn.
1465 * init.c (build_vtbl_address): Do it here.
1466
1467 PR c++/59231
1468 PR c++/11586
1469 PR c++/14710
1470 PR c++/57132
1471 * pt.c (struct warning_sentinel): New.
1472 (tsubst_copy_and_build): Use it instead of
1473 c_inhibit_evaluation_warnings.
1474 * typeck.c (maybe_warn_about_useless_cast): Remove
1475 c_inhibit_evaluation_warnings check.
1476
1477 PR c++/54440
1478 * pt.c (get_template_parm_index): New.
1479 (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
1480 (process_template_parm): Allow bare packs in template template
1481 parm template parms.
1482 (coerce_template_parameter_pack): Handle fixed template template
1483 parm packs and fixed packs not at the end of the parm list.
1484 (coerce_template_parms): Handle template parm packs not at the end
1485 of the parm list.
1486 (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
1487
1488 PR c++/60182
1489 * pt.c (unify): Ignore alias templates when deducing a template
1490 template parameter.
1491
1492 PR c++/60345
1493 Revert:
1494 DR 1571
1495 * call.c (reference_binding): Recurse on user-defined conversion.
1496 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
1497
1498 2014-02-25 Jason Merrill <jason@redhat.com>
1499
1500 DR 1571
1501 * call.c (reference_binding): Recurse on user-defined conversion.
1502 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
1503
1504 * call.c (print_conversion_rejection): Handle n_arg of -2.
1505 (build_user_type_conversion_1): Pass it.
1506
1507 PR c++/55877
1508 * decl2.c (no_linkage_error): Handle C++98 semantics.
1509 (reset_type_linkage): Move from decl.c.
1510 (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
1511 (bt_reset_linkage_2, reset_decl_linkage): New.
1512 (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
1513 (cp_write_global_declarations): Move condition into no_linkage_error.
1514 * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
1515 * semantics.c (expand_or_defer_fn_1): Factor out
1516 tentative_decl_linkage.
1517 * cp-tree.h: Adjust.
1518
1519 * decl2.c (finish_static_data_member_decl): Diagnose static data
1520 member in unnamed class.
1521 * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
1522
1523 PR lto/53808
1524 * class.c (clone_function_decl): Call note_vague_linkage_fn for
1525 defaulted virtual dtor.
1526
1527 DR 1286
1528 PR c++/60328
1529 * pt.c (get_underlying_template): Fix equivalence calculation.
1530
1531 2014-02-25 Adam Butcher <adam@jessamine.co.uk>
1532
1533 PR c++/60311
1534 * parser.c (function_being_declared_is_template_p): Return false when
1535 processing a template parameter list.
1536 (cp_parser_parameter_declaration_clause): Don't set
1537 auto_is_implicit_function_template_parm_p when processing a
1538 template parameter list.
1539
1540 * parser.c (synthesize_implicit_template_parm): Inject new template
1541 argument list appropriately when a generic member function
1542 of a class template is declared out-of-line.
1543
1544 PR c++/60065
1545 * parser.c (cp_parser_direct_declarator): Don't save and
1546 restore num_template_parameter_lists around call to
1547 cp_parser_parameter_declaration_list.
1548 (function_being_declared_is_template_p): New predicate.
1549 (cp_parser_parameter_declaration_list): Use
1550 function_being_declared_is_template_p as predicate for
1551 inspecting current function template parameter list length
1552 rather than num_template_parameter_lists.
1553
1554 2014-02-24 Jason Merrill <jason@redhat.com>
1555
1556 PR c++/60146
1557 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
1558 DECL_EXPR initialize a non-class iterator.
1559
1560 PR c++/60312
1561 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
1562
1563 2014-02-21 Jason Merrill <jason@redhat.com>
1564
1565 PR c++/58170
1566 * parser.c (cp_parser_type_name): Always check dependency.
1567 (cp_parser_type_specifier_seq): Call
1568 cp_parser_parse_and_diagnose_invalid_type_name.
1569
1570 PR c++/60108
1571 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
1572
1573 PR c++/60185
1574 * parser.c (cp_parser_default_argument): Clear
1575 current_class_ptr/current_class_ref like tsubst_default_argument.
1576
1577 PR c++/60252
1578 * lambda.c (maybe_resolve_dummy): Check lambda_function rather
1579 than current_binding_level.
1580
1581 PR c++/60186
1582 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
1583
1584 PR c++/60187
1585 * parser.c (cp_parser_enum_specifier): Call
1586 check_for_bare_parameter_packs.
1587
1588 PR c++/59347
1589 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
1590 erroneous typedef.
1591
1592 PR c++/60241
1593 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
1594 of the partial instantiation, not the most general template.
1595 (maybe_process_partial_specialization): Reassign everything on
1596 that list.
1597
1598 PR c++/60216
1599 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
1600 (check_explicit_specialization): Don't clone.
1601
1602 PR c++/60219
1603 * pt.c (coerce_template_parms): Bail if argument packing fails.
1604
1605 PR c++/60224
1606 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
1607 Don't get confused by a CONSTRUCTOR that already has a type.
1608
1609 PR c++/60227
1610 * call.c (build_array_conv): Don't crash on VLA.
1611
1612 PR c++/60248
1613 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
1614
1615 PR c++/60252
1616 * lambda.c (maybe_resolve_dummy): Don't try to capture this
1617 in declaration context.
1618
1619 DR 1591
1620 PR c++/60051
1621 * pt.c (unify): Only unify if deducible. Handle 0-length list.
1622
1623 PR c++/60250
1624 * parser.c (cp_parser_direct_declarator): Don't wrap a
1625 type-dependent expression in a NOP_EXPR.
1626
1627 PR c++/60251
1628 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
1629
1630 PR c++/60167
1631 PR c++/60222
1632 PR c++/58606
1633 * parser.c (cp_parser_template_argument): Restore dereference.
1634 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
1635 (process_partial_specialization): Handle deref.
1636 (unify): Likewise.
1637
1638 2014-02-21 Adam Butcher <adam@jessamine.co.uk>
1639
1640 PR c++/60052
1641 PR c++/60053
1642 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
1643 implicit_template_scope upon leaving an out-of-line generic member
1644 function definition.
1645
1646 2014-02-20 Kai Tietz <ktietz@redhat.com>
1647
1648 PR c++/58873
1649 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
1650 valued type argument as error_mark_node.
1651
1652 PR c++/58835
1653 * semantics.c (finish_fname): Handle error_mark_node.
1654
1655 2014-02-19 Jason Merrill <jason@redhat.com>
1656
1657 PR c++/60046
1658 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
1659 spec from template context.
1660
1661 2014-02-19 Jakub Jelinek <jakub@redhat.com>
1662
1663 PR debug/56563
1664 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
1665 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
1666
1667 PR c++/60267
1668 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
1669
1670 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
1671
1672 PR c++/60225
1673 * semantics.c (ensure_literal_type_for_constexpr_object): Use
1674 strip_array_types.
1675
1676 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
1677
1678 PR c++/60215
1679 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
1680 During error recovery allow_non_constant may be false.
1681
1682 2014-02-18 Adam Butcher <adam@jessamine.co.uk>
1683
1684 PR c++/60190
1685 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
1686 scope whenever a template parameter list has been started, independent
1687 of whether the function call operator was well-formed or not.
1688
1689 PR c++/60064
1690 * parser.c (cp_parser_member_declaration): Pop fully implicit template
1691 scope for generic friend declarations as well as for non-friends.
1692
1693 2014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
1694
1695 PR c++/60047
1696 * method.c (implicitly_declare_fn): A constructor of a class with
1697 virtual base classes isn't constexpr (7.1.5p4).
1698
1699 2014-02-05 Jan Hubicka <hubicka@ucw.cz
1700
1701 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
1702
1703 2014-02-05 Jakub Jelinek <jakub@redhat.com>
1704
1705 PR c++/58703
1706 * parser.c (cp_parser_omp_declare_reduction): Save and free
1707 declarator_obstack.
1708
1709 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
1710
1711 PR c++/53017
1712 PR c++/59211
1713 * tree.c (handle_init_priority_attribute): Call default_conversion on
1714 the attribute argument.
1715
1716 2014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
1717
1718 PR c++/58871
1719 * method.c (synthesized_method_walk): If vbases is non-null but
1720 is_empty is true, likewise don't worry about the virtual bases.
1721
1722 2014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
1723
1724 PR c++/51219
1725 * typeck2.c (process_init_constructor_record): Just skip unnamed
1726 bit-fields.
1727
1728 2014-01-31 Jason Merrill <jason@redhat.com>
1729
1730 PR c++/59469
1731 * pt.c (mark_decl_instantiated): Call mark_needed.
1732
1733 PR c++/58672
1734 * decl2.c (handle_tls_init): Handle null init fn.
1735
1736 PR c++/55800
1737 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
1738
1739 2014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
1740
1741 PR c++/59082
1742 * class.c (build_vfield_ref): Early return error_mark_node if
1743 TYPE_VFIELD (type) is null.
1744 (build_base_path): Check return value of build_vfield_ref.
1745
1746 2014-01-31 Jason Merrill <jason@redhat.com>
1747
1748 PR c++/59646
1749 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
1750 [ck_list]: Check for error_mark_node.
1751 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
1752
1753 PR c++/57043
1754 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
1755 during partial ordering.
1756
1757 2014-01-31 Marek Polacek <polacek@redhat.com>
1758
1759 PR c/59963
1760 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
1761
1762 2014-01-30 Jason Merrill <jason@redhat.com>
1763
1764 PR c++/57899
1765 * cp-tree.h (struct saved_scope): Add x_local_specializations.
1766 (local_specializations): New macro.
1767 * pt.c (local_specializations): Remove variable.
1768
1769 2014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
1770
1771 PR c++/58708
1772 * parser.c (make_string_pack): Use double_int::from_buffer.
1773
1774 2014-01-30 Marek Polacek <polacek@redhat.com>
1775
1776 PR c/59940
1777 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
1778 input_location.
1779 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
1780 with input_location.
1781 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
1782 loc parameter.
1783
1784 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1785
1786 PR c++/58843
1787 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
1788
1789 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1790
1791 PR c++/58649
1792 * pt.c (lookup_template_class_1): Check start_enum return value
1793 for error_mark_node.
1794
1795 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1796
1797 * decl.c (duplicate_decls, typename_hash, typename_compare):
1798 Use TYPE_IDENTIFIER.
1799 * error.c (dump_type): Likewise.
1800 * mangle.c (dump_substitution_candidates): Likewise.
1801
1802 2014-01-30 Jason Merrill <jason@redhat.com>
1803
1804 PR c++/59633
1805 * decl2.c (attributes_naming_typedef_ok): New.
1806 * cp-tree.h: Declare it.
1807 * decl.c (grokdeclarator): Check it.
1808 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
1809
1810 2014-01-29 Jason Merrill <jason@redhat.com>
1811
1812 PR c++/59707
1813 * call.c (add_builtin_candidate): Catch dependent types.
1814
1815 PR c++/59989
1816 * pt.c (expand_template_argument_pack): Correct
1817 non_default_args_count calculation.
1818
1819 PR c++/58466
1820 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
1821
1822 PR c++/59956
1823 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
1824 have a friend template in a class template.
1825 * pt.c (tsubst_friend_function): Look through it.
1826 (push_template_decl_real): A friend member template is
1827 primary.
1828
1829 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1830
1831 PR c++/58846
1832 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
1833 == error_mark_node.
1834
1835 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1836
1837 PR c++/58674
1838 * pt.c (instantiate_template_1): Check for error_mark_node the second
1839 argument too.
1840
1841 2014-01-29 Jason Merrill <jason@redhat.com>
1842
1843 PR c++/59916
1844 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
1845 cdtor_returns_this case.
1846
1847 PR c++/59315
1848 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
1849
1850 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1851
1852 PR c++/58702
1853 * semantics.c (finish_omp_reduction_clause): Check type for
1854 error_mark_node.
1855
1856 2014-01-28 Jason Merrill <jason@redhat.com>
1857
1858 PR c++/59791
1859 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
1860 (tsubst_copy): Use it if lookup fails.
1861
1862 PR c++/59818
1863 * pt.c (tsubst_function_type): Make sure we keep the same function
1864 quals.
1865
1866 PR c++/58701
1867 * semantics.c (build_anon_member_initialization): Stop walking
1868 when we run out of COMPONENT_REFs.
1869
1870 PR c++/58632
1871 * decl.c (lookup_and_check_tag): Ignore template parameters if
1872 scope == ts_current.
1873 * pt.c (check_template_shadow): Don't complain about the injected
1874 class name.
1875
1876 * decl.c (duplicate_decls): Tweak.
1877
1878 PR c++/53756
1879 * mangle.c (write_unqualified_name): Handle operator auto.
1880
1881 2014-01-27 Jason Merrill <jason@redhat.com>
1882
1883 PR c++/59823
1884 Core DR 1138
1885 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
1886 list-initialization. A conversion to rvalue ref that involves
1887 an lvalue-rvalue conversion is bad.
1888 (convert_like_real): Give helpful error message.
1889
1890 PR c++/54652
1891 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
1892
1893 PR c++/58504
1894 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
1895 types.
1896
1897 PR c++/58606
1898 * pt.c (template_parm_to_arg): Call convert_from_reference.
1899 (tsubst_template_arg): Don't strip reference refs.
1900
1901 PR c++/58639
1902 * call.c (build_aggr_conv): Reject value-initialization of reference.
1903
1904 PR c++/58812
1905 PR c++/58651
1906 * call.c (convert_like_real): Give helpful error about excess braces
1907 for ck_rvalue of scalar type.
1908
1909 Core DR 1288
1910 * call.c (reference_binding): Only elide braces if the single
1911 element is reference-related.
1912
1913 PR c++/58814
1914 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
1915 stabilizing.
1916
1917 PR c++/58837
1918 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
1919 FUNCTION_DECL.
1920
1921 PR c++/59097
1922 * decl.c (compute_array_index_type): Don't call
1923 maybe_constant_value for a non-integral expression.
1924
1925 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
1926
1927 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
1928 flag_cilkplus.
1929 * cp-gimplify.c (cp_genericize): Likewise.
1930 * decl.c (grokfndecl): Likewise.
1931 * parser.c (cp_parser_postfix_expression): Likewise.
1932 (cp_parser_postfix_open_square_expression): Likewise.
1933 (cp_parser_direct_declarator): Likewise.
1934 (is_cilkplus_vector_p): Likewise.
1935 (cp_parser_omp_clause_name): Likewise.
1936 (cp_parser_omp_all_clauses): Likewise.
1937 * pt.c (apply_late_template_attributes): Likewise.
1938 * typeck.c (cp_build_array_ref): Likewise.
1939 (cp_build_compound_expr): Likewise.
1940 (check_return_expr): Likewise.
1941
1942 2014-01-24 Jason Merrill <jason@redhat.com>
1943
1944 PR c++/58550
1945 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
1946 c++11 into error.
1947
1948 PR c++/59886
1949 PR c++/59659
1950 * typeck2.c (process_init_constructor_array): Don't create
1951 RANGE_EXPR yet.
1952
1953 2014-01-24 Jakub Jelinek <jakub@redhat.com>
1954
1955 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
1956 handling for RANGE_ARRAY case.
1957
1958 2014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
1959
1960 PR c++/57524
1961 * name-lookup.c (push_using_directive): Use timevar_cond_start.
1962
1963 2014-01-23 Marek Polacek <polacek@redhat.com>
1964
1965 PR c/59846
1966 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
1967
1968 2014-01-23 Marek Polacek <polacek@redhat.com>
1969
1970 PR c/58346
1971 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
1972 an empty aggregate.
1973
1974 2014-01-23 Jason Merrill <jason@redhat.com>
1975
1976 PR c++/55189
1977 * cp-tree.h (struct language_function): Add infinite_loop and
1978 infinite_loops.
1979 (current_function_infinite_loop): New.
1980 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
1981 (break_maybe_infinite_loop): New.
1982 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
1983 (finish_do_stmt, finish_for_cond, finish_for_stmt)
1984 (begin_range_for_stmt): Use them.
1985 * decl.c (finish_function): Don't warn about missing return
1986 if current_function_infinite_loop.
1987 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
1988 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
1989
1990 * call.c (build_op_delete_call): Use make_tree_vector and
1991 release_tree_vector.
1992
1993 2014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
1994
1995 PR c++/58980
1996 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
1997 nested_name_specifier.
1998
1999 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
2000
2001 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
2002 see if there is an attribute after function decl. If so, then
2003 parse them now.
2004 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
2005 enabled function late parsing.
2006 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
2007 attribute for a SIMD-enabled function.
2008 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
2009 the function is used by SIMD-enabled function (indicated by NULL
2010 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
2011 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
2012 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
2013 vectorlength clause in SIMD-enabled function and #pragma SIMD's
2014 vectorlength clause. Added a new bool parameter to differentiate
2015 between the two.
2016 (cp_parser_cilk_simd_fn_vector_attrs): New function.
2017 (is_cilkplus_vector_p): Likewise.
2018 (cp_parser_late_parsing_elem_fn_info): Likewise.
2019 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
2020 and "vectorlength" clauses when Cilk Plus is enabled.
2021 (cp_parser_omp_clause_linear): Added a new parameter of type bool
2022 and emit a sorry message when step size is a parameter.
2023 * parser.h (cp_parser::cilk_simd_fn_info): New field.
2024 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
2025 flag_openmp.
2026 * pt.c (apply_late_template_attributes): Likewise.
2027
2028 2014-01-23 Jakub Jelinek <jakub@redhat.com>
2029
2030 PR middle-end/58809
2031 * semantics.c (finish_omp_reduction_clause): Reject
2032 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
2033
2034 2014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
2035
2036 PR c++/59482
2037 * parser.c (cp_parser_class_head): Push the class before parsing
2038 the base-clause, pop after it.
2039
2040 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
2041
2042 * decl2.c (cpp_check): Revert prototype change.
2043
2044 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
2045
2046 PR c++/59270
2047 PR c++/58811
2048 * init.c (build_value_init_noctor): Don't pass error_mark_node to
2049 build_value_init.
2050
2051 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
2052
2053 PR c++/59269
2054 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
2055 only when errorcount == 0.
2056
2057 2014-01-17 Marek Polacek <polacek@redhat.com>
2058
2059 PR c++/59838
2060 * cvt.c (ocp_convert): Don't segfault on non-existing
2061 ENUM_UNDERLYING_TYPE.
2062
2063 2014-01-16 Jason Merrill <jason@redhat.com>
2064
2065 PR c++/59821
2066 * tree.c (bot_manip): Update the location of builtin_LINE and
2067 builtin_FILE calls.
2068
2069 2014-01-14 Jason Merrill <jason@redhat.com>
2070
2071 PR c++/59659
2072 * typeck2.c (massage_init_elt): New.
2073 (process_init_constructor_record)
2074 (process_init_constructor_union): Use it.
2075 (process_init_constructor_array): Use it. Use RANGE_EXPR.
2076 (split_nonconstant_init_1): Handle it.
2077 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
2078
2079 2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
2080
2081 PR c++/59631
2082 * parser.c (cp_parser_postfix_expression): Added a new if-statement
2083 and replaced an existing if-statement with else-if statement.
2084 Changed an existing error message wording to match the one from the C
2085 parser.
2086
2087 2014-01-08 Jason Merrill <jason@redhat.com>
2088
2089 PR c++/59614
2090 * class.c (abi_tag_data): Add tags field.
2091 (check_abi_tags): Initialize it.
2092 (find_abi_tags_r): Support collecting missing tags.
2093 (mark_type_abi_tags): Don't look at template args.
2094 (inherit_targ_abi_tags): New.
2095 (check_bases_and_members): Use it.
2096 * cp-tree.h (ABI_TAG_IMPLICIT): New.
2097 * mangle.c (write_abi_tags): Check it.
2098
2099 2014-01-07 Jason Merrill <jason@redhat.com>
2100
2101 PR c++/58856
2102 * pt.c (num_innermost_template_parms): New.
2103 (get_underlying_template): Use it.
2104
2105 PR c++/58965
2106 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
2107
2108 2014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
2109
2110 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
2111 the letter of 20.11.6 about Base and Derived naming the same
2112 class type modulo cv-qualifiers.
2113
2114 2014-01-06 Adam Butcher <adam@jessamine.co.uk>
2115
2116 PR c++/59635
2117 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
2118 function as unimplemented for generic lambdas with varargs.
2119
2120 PR c++/59636
2121 * parser.c (cp_parser_template_parameter): Early out with
2122 error_mark_node if parameter declaration was not parsed.
2123
2124 PR c++/59629
2125 * parser.c (cp_parser_lambda_expression): Save/reset/restore
2126 auto_is_implicit_function_template_parm_p around lambda body.
2127
2128 PR c++/59638
2129 * parser.c (cp_parser_init_declarator): Undo fully implicit
2130 template parameter list when declarator is not a function.
2131
2132 2014-01-03 Marc Glisse <marc.glisse@inria.fr>
2133
2134 PR c++/58950
2135 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
2136
2137 2014-01-03 Tobias Burnus <burnus@net-b.de>
2138
2139 PR c++/58567
2140 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
2141
2142 2014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
2143
2144 Core DR 1442
2145 PR c++/59165
2146 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
2147 as include_std to perform_koenig_lookup.
2148 (cp_parser_postfix_expression): Adjust.
2149 * pt.c (tsubst_copy_and_build): Likewise.
2150 * semantics.c (perform_koenig_lookup): Remove bool parameter.
2151 (omp_reduction_lookup): Adjust.
2152 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
2153 (lookup_arg_dependent): Likewise.
2154 (lookup_function_nonclass): Adjust.
2155 * name-lookup.h: Adjust declaration.
2156 * cp-tree.h: Likewise.
2157
2158 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
2159
2160 PR c++/59087
2161 * parser.c (cp_parser_userdef_numeric_literal): Mention
2162 -fext-numeric-literals in the message.
2163
2164 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
2165
2166 PR c++/59641
2167 * call.c (build_conditional_expr_1): Check the return value of
2168 force_rvalue.
2169
2170 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
2171
2172 * call.c (convert_like_real): Check complain.
2173
2174 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
2175
2176 PR c++/59378
2177 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
2178 in templates.
2179
2180 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2181
2182 Update copyright years
2183
2184 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2185
2186 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
2187 the standard form for the copyright notice.
2188 \f
2189 Copyright (C) 2014 Free Software Foundation, Inc.
2190
2191 Copying and distribution of this file, with or without modification,
2192 are permitted in any medium without royalty provided the copyright
2193 notice and this notice are preserved.