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