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