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