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