]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
PR debug/63239 Add DWARF representation for C++11 deleted member function.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
77cab475 12014-10-02 Mark Wielaard <mjw@redhat.com>
2
3 PR debug/63239
4 * cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
5 (cp_function_decl_deleted_p): New prototype.
6 * cp-objcp-common.c (cp_function_deleted_p): New function.
7
5e84569c 82014-10-03 Marc Glisse <marc.glisse@inria.fr>
9
10 PR c++/54427
11 PR c++/57198
12 PR c++/58845
13 * typeck.c (cp_build_binary_op): save_expr after convert to save
14 redundant operations.
15 [TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR]: Handle vectors.
16 (cp_build_unary_op) [TRUTH_NOT_EXPR]: Likewise.
17
ee3a5035 182014-10-03 Jason Merrill <jason@redhat.com>
19
29eac75f 20 * decl.c (start_decl): Complain about static/thread_local vars
21 in constexpr function.
22 (check_for_uninitialized_const_var): Also uninitialized vars.
23 * parser.c (cp_parser_jump_statement): And gotos.
24 (cp_parser_asm_operand_list): And asm.
25 (cp_parser_try_block): And try.
26 * semantics.c (ensure_literal_type_for_constexpr_object): And
27 non-literal.
28
18f98733 29 * semantics.c (constexpr_fn_retval): Ignore declarations in C++14.
30 (var_in_constexpr_fn): New.
31 (cxx_eval_constant_expression): Look into DECL_INITIAL.
32 (potential_constant_expression_1): Allow constexpr-local vars.
33
ee3a5035 34 PR c++/63362
35 * tree.c (strip_typedefs): Handle TREE_LIST.
36
5800f4ef 372014-10-03 Paolo Carlini <paolo.carlini@oracle.com>
38
39 * parser.c (cp_parser_assignment_expression,
40 cp_parser_constant_expression): Add default arguments.
41 (cp_parser_primary_expression,
42 cp_parser_postfix_open_square_expression,
43 cp_parser_parenthesized_expression_list,
44 cp_parser_question_colon_clause,
45 cp_parser_expression, cp_parser_constant_expression,
46 cp_parser_label_for_labeled_statement, cp_parser_static_assert,
47 cp_parser_template_argument, cp_parser_enumerator_definition,
48 cp_parser_member_declaration, cp_parser_constant_initializer,
49 cp_parser_noexcept_specification_opt, cp_parser_throw_expression,
50 cp_parser_std_attribute_spec, cp_parser_objc_message_args,
51 cp_parser_objc_class_ivars, cp_parser_omp_clause_collapse,
52 cp_parser_omp_clause_aligned, cp_parser_omp_clause_safelen,
53 cp_parser_omp_clause_simdlen, cp_parser_omp_clause_dist_schedule,
54 cp_parser_omp_for_incr, cp_parser_omp_for_loop_init,
55 cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear): Adjust.
56
2d2e5b37 572014-10-02 Paolo Carlini <paolo.carlini@oracle.com>
58
59 PR c++/53025
60 * cp-tree.h (struct saved_scope): Add noexcept_operand.
61 (cp_noexcept_operand): Define.
62 * call.c (build_over_call): Use it.
63 * parser.c (cp_parser_unary_expression, [RID_NOEXCEPT]): Likewise.
64 * pt.c (tsubst_copy_and_build, [NOEXCEPT_EXPR]): Likewise.
65
db1285df 662014-10-01 Jason Merrill <jason@redhat.com>
67
1a80dd4a 68 PR c++/63362
69 * method.c (constructible_expr): Handle value-init of non-class.
70 * parser.c (cp_parser_trait_expr): Allow pack expansion.
71 * pt.c (tsubst_copy_and_build): Handle pack expansion.
72
db1285df 73 PR c++/63362
74 * class.c (type_has_non_user_provided_default_constructor): Rename
75 from type_has_user_provided_default_constructor, reverse sense.
76 (default_init_uninitialized_part, explain_non_literal_class): Adjust.
77 (check_bases_and_members): Set TYPE_HAS_COMPLEX_DFLT.
78 * call.c (build_new_method_call_1): Adjust.
79 * cp-tree.h: Adjust.
80 * decl.c (grok_special_member_properties): Don't set
81 TYPE_HAS_COMPLEX_DFLT.
82 * init.c (build_value_init_noctor): Don't use
83 type_has_user_provided_default_constructor.
84
c33e051d 852014-09-30 Jason Merrill <jason@redhat.com>
86
f76a9aa8 87 * cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_ASSIGNABLE and
88 CPTK_IS_TRIVIALLY_CONSTRUCTIBLE.
89 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
90 * parser.c (cp_parser_primary_expression): Likewise.
91 (cp_parser_trait_expr): Likewise. Handle variadic trait.
92 * semantics.c (trait_expr_value): Likewise.
93 (finish_trait_expr): Likewise.
94 (check_trait_type): Handle variadic trait. Return bool.
95 * method.c (build_stub_object): Add rvalue reference here.
96 (locate_fn_flags): Not here.
97 (check_nontriv, assignable_expr, constructible_expr): New.
98 (is_trivially_xible): New.
99
717e52f9 100 * cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_COPYABLE.
101 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
102 * parser.c (cp_parser_primary_expression): Likewise.
103 (cp_parser_trait_expr): Likewise.
104 * semantics.c (trait_expr_value): Likewise.
105 (finish_trait_expr): Likewise.
106
ff4e692a 107 * method.c (build_stub_object): Use CONVERT_EXPR.
108 * tree.c (build_dummy_object): Likewise.
109 (is_dummy_object): Adjust.
110
c33e051d 111 * cp-tree.h (cp_trait_kind): Remove CPTK_IS_CONVERTIBLE_TO.
112 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
113 * semantics.c (trait_expr_value): Likewise.
114 (finish_trait_expr): Likewise.
115 * parser.c (cp_parser_primary_expression): Likewise.
116 (cp_parser_trait_expr): Likewise. Remove redundant grokdeclarator.
117
8f51a05f 1182014-09-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
119
120 PR c++/16564
121 * error.c (print_instantiation_context): Delete.
122 * typeck2.c (build_x_arrow): Record location when pushing
123 template instantiation.
124 * pt.c (push_tinst_level): Make it a wrapper around ...
125 (push_tinst_level_loc): ... this. New function. Make excessive
126 template instantiation depth a fatal error. Record location. Use
127 bool as return type.
128 (instantiate_pending_templates): Make excessive
129 template instantiation depth a fatal error.
130 (problematic_instantiation_changed): Use bool as return type.
131 * cp-tree.h (print_instantiation_context): Delete.
132 (push_tinst_level): Update declaration.
133 (problematic_instantiation_changed): Likewise.
134 (push_tinst_level_loc): New.
135
033c0b51 1362014-09-29 Richard Biener <rguenther@suse.de>
137
138 * typeck.c (enum_cast_to_int): Use CONVERT_EXPR_P to check
139 for conversions.
140
7cd4e87d 1412014-09-26 Jason Merrill <jason@redhat.com>
142
143 * mangle.c (find_substitution): Use write_abi_tags.
144
fd620c07 1452014-09-25 Marek Polacek <polacek@redhat.com>
146
147 PR c++/61945
148 * class.c (warn_hidden): Check for FUNCTION_DECL.
149
4fc4088b 1502014-09-25 Jakub Jelinek <jakub@redhat.com>
151
152 PR c++/63249
153 * semantics.c (handle_omp_array_sections_1): Call mark_rvalue_use
154 on low_bound and length.
155
16d41ae2 1562014-09-24 Aldy Hernandez <aldyh@redhat.com>
157
158 * class.c, decl.c, optimize.c: Rename all instances of
159 DECL_ABSTRACT to DECL_ABSTRACT_P.
160
5213d6c9 1612014-09-24 Marek Polacek <polacek@redhat.com>
162
163 PR c/61405
164 PR c/53874
165 * semantics.c (finish_switch_cond): Call unlowered_expr_type.
166 * tree.c (bot_manip): Add default case.
167 * parser.c (cp_parser_primary_expression): Cast the controlling
168 expression of a switch to an int.
169 (cp_parser_unqualified_id): Likewise.
170
7fb36be3 1712014-09-23 Paolo Carlini <paolo.carlini@oracle.com>
172
173 PR c++/61857
174 * parser.c (cp_parser_skip_to_closing_square_bracket,
175 cp_parser_array_designator_p): New.
176 (cp_parser_initializer_list): Use the latter.
177
2e227398 1782014-09-22 Jason Merrill <jason@redhat.com>
179
a323e529 180 * semantics.c (finish_non_static_data_member): In diagnostic, give
181 error at point of use and note at point of declaration.
182
2e227398 183 PR c++/63320
184 PR c++/60463
185 PR c++/60755
186 * lambda.c (maybe_resolve_dummy, lambda_expr_this_capture): Handle
187 not finding 'this'.
188
f915a725 1892014-09-22 Paolo Carlini <paolo.carlini@oracle.com>
190
191 PR c++/62219
192 * pt.c (check_default_tmpl_args): Check LAMBDA_FUNCTION_P.
193
ac4c2f95 1942014-09-22 Jason Merrill <jason@redhat.com>
195
196 * decl.c (poplevel): Don't warn about unused vars in template scope.
197 * error.c (dump_decl): Handle variable templates.
198
9db3c3d8 1992014-09-20 Jason Merrill <jason@redhat.com>
200
201 PR c++/62017
202 * decl.c (begin_destructor_body): Only clobber the as-base part of
203 *this.
204
debd60f4 2052014-09-19 Jason Merrill <jason@redhat.com>
206
dc66dd88 207 PR c++/61392
208 * mangle.c (write_expression): Use unresolved-name mangling for
209 DR850 case.
210
debd60f4 211 PR c++/61465
212 * call.c (convert_like_real) [ck_identity]: Call mark_rvalue_use
213 after pulling out an element from a CONSTRUCTOR.
214
66579ffa 2152014-09-18 Jakub Jelinek <jakub@redhat.com>
216
217 PR c++/63248
218 * semantics.c (finish_omp_clauses): Don't call cp_omp_mappable_type
219 on type of type dependent expressions, and don't call it if
220 handle_omp_array_sections has kept TREE_LIST because something
221 was type dependent.
222 * pt.c (tsubst_expr) <case OMP_TARGET, case OMP_TARGET_DATA>:
223 Use keep_next_level, begin_omp_structured_block and
224 finish_omp_structured_block instead of push_stmt_list and
225 pop_stmt_list.
226
7429e65e 2272014-09-18 Paolo Carlini <paolo.carlini@oracle.com>
228
229 PR c++/62232
230 * class.c (finish_struct_1): Do not -Wnon-virtual-dtor warn
231 for final class types.
232
adcaad2c 2332014-09-15 Jason Merrill <jason@redhat.com>
234
235 * pt.c (lookup_template_class_1): Splice out abi_tag attribute if
236 necessary. Call inherit_targ_abi_tags here.
237 * class.c (check_bases_and_members): Not here.
238 (inherit_targ_abi_tags): Check CLASS_TYPE_P.
239 * cp-tree.h: Declare inherit_targ_abi_tags.
240
cafb39fa 2412014-09-15 Ville Voutilainen <ville.voutilainen@gmail.com>
242
243 Do not diagnose lambda default arguments in c++14 modes.
244 * parser.c (cp_parser_lambda_declarator_opt): Make the pedwarn
245 conditional.
246
eb9bd3cc 2472014-09-15 Jakub Jelinek <jakub@redhat.com>
248
249 * Make-lang.in (check_g++_parallelize): Change to just an upper bound
250 number.
251
763c6e82 2522014-09-13 Marek Polacek <polacek@redhat.com>
253
254 PR c++/60862
255 * parser.c (cp_parser_postfix_expression) <case CPP_OPEN_PAREN>: Set
256 location of a call expression.
257
17ca31e9 2582014-09-11 Jason Merrill <jason@redhat.com>
259
260 PR c++/63201
261 * decl.c (start_decl): Handle specialization of member variable
262 template.
263 * pt.c (check_explicit_specialization): Adjust error.
264
639d66a3 2652014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
266
267 PR c++/61489
268 * typeck2.c (process_init_constructor_record): Do not warn about
269 missing field initializer if EMPTY_CONSTRUCTOR_P (init).
270
ffe3a661 2712014-09-11 Jason Merrill <jason@redhat.com>
272
273 PR c++/63139
274 * pt.c (tsubst_pack_expansion): Simplify substitution into T....
275 (tsubst): Don't throw away PACK_EXPANSION_EXTRA_ARGS.
276
5d9aece3 2772014-09-10 Jason Merrill <jason@redhat.com>
278
279 PR c++/61659
280 * decl.c (grokfndecl): Don't set DECL_COMDAT on static inlines.
281 (duplicate_decls, start_decl): Likewise.
282 * pt.c (check_explicit_specialization): Likewise.
283 (push_template_decl_real): Or static templates.
284
9e26d524 2852014-09-08 Jason Merrill <jason@redhat.com>
286
65dd83dc 287 * typeck.c (build_class_member_access_expr): Move
288 -Winvalid-offsetof code...
289 * semantics.c (finish_offsetof): ...here.
290 * parser.c (cp_parser_builtin_offsetof): Remember the location of
291 the type argument.
292 * pt.c (tsubst_copy_and_build) [OFFSETOF_EXPR]: Preserve it.
293
9e26d524 294 PR c++/62255
295 * pt.c (instantiate_decl): Handle recursive instantiation of
296 static data member.
297
120689bf 2982014-09-05 Jason Merrill <jason@redhat.com>
299
300 PR c++/62659
301 * semantics.c (potential_constant_expression_1): Handle un-folded
302 pointer to member constants.
303
5bb2236f 3042014-09-04 Markus Trippelsdorf <markus@trippelsdorf.de>
305
306 PR ipa/61659
307 * decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on
308 newdecl, not olddecl.
309
b5c6dd8a 3102014-09-02 Paolo Carlini <paolo.carlini@oracle.com>
311
312 DR 1453
313 * class.c (check_field_decls): A class of literal type cannot have
314 volatile non-static data members and base classes.
315 (explain_non_literal_class): Update.
316
40750995 3172014-09-02 Jakub Jelinek <jakub@redhat.com>
318 Balaji V. Iyer <balaji.v.iyer@intel.com>
319 Igor Zamyatin <igor.zamyatin@intel.com>
320
321 * cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition
322 simplified.
323 * parser.c (cp_parser_cilk_for): New function.
324 (cp_parser_cilk_grainsize): Likewise.
325 (cp_parser_statement): Added RID_CILK_FOR case.
326 (cp_parser_omp_for_cond): Added CILK_FOR check.
327 (cp_parser_omp_for_loop_init): Change function argument to accept
328 tree_code instead just a bool flag; change the check to use that
329 tree_code; check for initialization declaration in case of Cilk_for.
330 (cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR;
331 changed call to cp_parser_omp_for_loop_init according new arguments'
332 list.
333 (cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
334 * pt.c (tsubst_expr): Added CILK_FOR case.
335 * semantics.c: Include convert.h.
336 (finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR
337 case; added OMP_CLAUSE__CILK_FOR_COUNT_.
338 (handle_omp_for_class_iterator): New argument lastp and its usage;
339 added NE_EXPR case.
340 (finish_omp_for): Changed call to handle_omp_for_class_iterator
341 according new arguments' list; in case of Cilk_for save very first
342 decl and create empty stmt_list block; use block to build correct
343 statement tree.
344
237d7956 3452014-08-31 Jason Merrill <jason@redhat.com>
346
347 PR c++/62302
348 * optimize.c (cdtor_comdat_group): Just look at the
349 DECL_ASSEMBLER_NAME of the 'tors.
350
c1ef64de 3512014-08-27 Paolo Carlini <paolo.carlini@oracle.com>
352
353 PR c++/52892
354 * semantics.c (cxx_eval_call_expression): Use STRIP_NOPS on the
355 result of cxx_eval_constant_expression.
356
e506b2b9 3572014-08-26 Jason Merrill <jason@redhat.com>
358
359 PR c++/58624
360 * pt.c (tsubst_decl) [VAR_DECL]: Copy TLS model.
361 (tsubst_copy_and_build) [VAR_DECL]: Use TLS wrapper.
362 * semantics.c (finish_id_expression): Don't call TLS wrapper in a
363 template.
364
bfceaf54 3652014-08-25 Jason Merrill <jason@redhat.com>
366
6cbad6b5 367 * pt.c (check_explicit_specialization): Don't complain about
368 non-template variable.
369 (template_for_substitution): Allow variable templates.
370 (check_template_variable): Fix logic for member var template.
371 * decl.c (start_decl): Don't complain about extra template header
372 here.
373
bfceaf54 374 * decl.c (start_decl): Look through member variable template.
375 * pt.c (tsubst_decl) [VAR_DECL]: Handle member variable templates.
376 * decl2.c (grokfield): Set DECL_CONTEXT earlier on
377 variables.
378
eb2dad34 3792014-08-25 Paolo Carlini <paolo.carlini@oracle.com>
380
381 PR c++/34938
382 * cp-tree.h (TFF_POINTER): Add.
383 * cxx-pretty-print.h (pp_cxx_cv_qualifiers): Forward the third
384 argument too.
385 * error.c (dump_type_suffix): Actually print the const and noreturn
386 attribute when appropriate.
387
4e454776 3882014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
389
390 * decl.c (compute_array_index_type, grokdeclarator,
391 undeduced_auto_decl): Change from cxx1y to cxx14.
392 *lambda.c(add_capture()): Change error message from C++1y to C++14.
393 * parser.c (cp_parser_unqualified_id, cp_parser_pseudo_destructor_name,
394 cp_parser_lambda_introducer, cp_parser_lambda_declarator_opt,
395 cp_parser_decltype, cp_parser_conversion_type_id,
396 cp_parser_simple_type_specifier, cp_parser_type_id_1,
397 cp_parser_template_type_arg, cp_parser_std_attribute,
398 cp_parser_template_declaration_after_export): Ditto.
399 * pt.c (tsubst): Ditto.
400 * semantics.c (force_paren_expr, finish_decltype_type): Ditto.
401 * tree.c: Change comment.
402 * typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type,
403 cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto.
404
8b2ddcd8 4052014-08-23 Jason Merrill <jason@redhat.com>
406
407 Allow non-constexpr variable templates.
408 * decl2.c (note_variable_template_instantiation): New.
409 * cp-tree.h: Declare it.
410 * pt.c (instantiate_decl): Call it.
411 (push_template_decl_real): Allow non-constexpr variable templates.
412 * semantics.c (finish_id_expression): Mark the variable template
413 instantiation as used.
414 * mangle.c (write_mangled_name): Variable template instantiations
415 are mangled.
416 * parser.c (cp_parser_init_declarator): Complain about
417 non-function implicit templates.
418
dc6229e8 4192014-08-22 Marek Polacek <polacek@redhat.com>
420
421 PR c++/62199
422 * parser.c (cp_parser_binary_expression): Check each LHS if it's
423 preceded with logical not. Adjust call to
424 warn_logical_not_parentheses.
425
a62433bc 4262014-08-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
427
428 PR c++/57709
429 * name-lookup.c (pushdecl_maybe_friend_1): Do not warn if a
430 declaration shadows a function declaration, unless the former
431 declares a function, pointer to function or pointer to member
432 function, because this is a common and valid case in real-world
433 code.
434 * cp-tree.h (TYPE_PTRFN_P,TYPE_REFFN_P,TYPE_PTRMEMFUNC_P):
435 Improve description.
436
da47202a 4372014-08-22 Jason Merrill <jason@redhat.com>
438
439 PR c++/62129
440 * class.c (outermost_open_class): Fix logic.
441 * decl.c (complete_vars): Fix logic.
442
21455488 4432014-08-22 Jason Merrill <jason@redhat.com>
444
445 PR c++/62129
446 * class.c (outermost_open_class): New.
447 * cp-tree.h: Declare it.
448 * decl.c (maybe_register_incomplete_var): Use it.
449 (complete_vars): Handle any constant variable.
450 * expr.c (cplus_expand_constant): Handle CONSTRUCTOR.
451
5fdda74b 4522014-08-22 Igor Zamyatin <igor.zamyatin@intel.com>
453
454 PR other/62008
455 * cp-array-notation.c (build_array_notation_ref): Added correct
456 handling of case with incorrect array.
457
399d4f80 4582014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
459
460 PR fortran/44054
461 * error.c (cp_diagnostic_finalizer): Delete.
462 (init_error): Do not set diagnostic_finalizer here.
463
78bf4156 4642014-08-19 Marek Polacek <polacek@redhat.com>
465
466 PR c++/62153
467 * call.c (build_new_op_1): Remember the type of arguments for
468 a comparison. If either operand of a comparison is a boolean
469 expression, call maybe_warn_bool_compare.
470
1dac1189 4712014-08-19 Jason Merrill <jason@redhat.com>
472
9af43b99 473 PR tree-optimization/62091
474 * decl2.c (decl_needed_p): Return true for virtual functions when
475 devirtualizing.
476
1dac1189 477 PR lto/53808
478 PR c++/61659
479 * decl.c (maybe_commonize_var): Don't use DECL_COMDAT to trigger
480 comdat_linkage.
481
88943dde 4822014-08-19 Gerald Pfeifer <gerald@pfeifer.com>
483
484 * class.c (contains_empty_class_p): Remove.
485
e4f4f4e4 4862014-08-18 Paolo Carlini <paolo.carlini@oracle.com>
487
488 * parser.c (cp_parser_expression): Add default arguments.
489 (cp_parser_primary_expression, cp_parser_postfix_expression,
490 cp_parser_array_notation, cp_parser_postfix_open_square_expression,
491 cp_parser_unary_expression, cp_parser_direct_new_declarator,
492 cp_parser_question_colon_clause, cp_parser_assignment_operator_opt,
493 cp_parser_lambda_body, cp_parser_expression_statement,
494 cp_parser_condition, cp_parser_c_for, cp_parser_range_for,
495 cp_parser_iteration_statement, cp_parser_jump_statement,
496 cp_parser_decltype_expr, cp_parser_noexcept_specification_opt,
497 cp_parser_asm_operand_list, cp_parser_objc_message_receiver,
498 cp_parser_objc_synchronized_statement, cp_parser_objc_throw_statement,
499 cp_parser_omp_var_list_no_open, cp_parser_omp_clause_num_threads,
500 cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
501 cp_parser_omp_clause_linear, cp_parser_omp_clause_device,
502 cp_parser_omp_atomic, cp_parser_omp_for_loop_init,
503 cp_parser_omp_for_loop, cp_parser_omp_declare_reduction_exprs,
504 cp_parser_transaction_expression): Adjust.
505
64d8d39e 5062014-08-15 Jason Merrill <jason@redhat.com>
507
1fef44b7 508 PR c++/61566
509 * pt.c (lookup_template_class_1): Revert recent change.
510 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Revert recent change.
511
64d8d39e 512 PR c++/61566
513 * pt.c (instantiate_class_template_1): Ignore lambda on
514 CLASSTYPE_DECL_LIST.
515 (push_template_decl_real): A lambda is not primary.
516 (lookup_template_class_1): Don't look for a lambda partial
517 instantiation.
518 * lambda.c (maybe_add_lambda_conv_op): Distinguish between being
519 currently in a function and the lambda living in a function.
520 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): False for lambda.
521
bdfd12fe 5222014-08-15 Richard Biener <rguenther@suse.de>
523 Jason Merrill <jason@redhat.com>
524
525 PR bootstrap/62077
526 * tree.c (build_min_array_type, set_array_type_canon): Split out...
527 (build_cplus_array_type): ...from here. Only call build_array_type
528 for main variants.
529
6c7e9e6d 5302014-08-15 Paolo Carlini <paolo.carlini@oracle.com>
531
532 PR c++/62072
533 Revert:
534 2014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
535
536 DR 1584
537 PR c++/57466
538 * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
539 cv-qualifiers of function types.
540
b26afd90 5412014-08-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
542
543 * call.c (build_conditional_expr_1): Use OPT_Wextra in warning.
544
b34e07a1 5452014-08-14 Paolo Carlini <paolo.carlini@oracle.com>
546
547 * typeck.c (composite_pointer_type, cxx_sizeof_or_alignof_type,
548 cp_build_array_ref, cp_build_function_call_vec): When a
549 pedwarn is suppressed under SFINAE, return error_mark_node.
550
551 * typeck.c (cxx_sizeof_or_alignof_type): Fix complain &
552 tf_warning_or_error, where complain is a bool, glitch.
553
cbe90ad7 5542014-08-14 Ville Voutilainen <ville.voutilainen@gmail.com>
555
556 PR c++/62101
557 * decl.c (grokdeclarator): Move the check for friend initializers..
558 * decl2.c (grokfield) ..here. Postpone early return for friends
559 until after the initializer check.
560
98ae66be 5612014-08-14 Paolo Carlini <paolo.carlini@oracle.com>
562
563 PR c++/54377
564 * pt.c (coerce_template_parms): Improve error message vs default
565 arguments.
566
48b9d9da 5672014-08-14 Paolo Carlini <paolo.carlini@oracle.com>
568
569 * parser.c (cp_parser_init_declarator): Remove redundant check of
570 decl_specifiers->type.
571
7dab9307 5722014-08-13 Jason Merrill <jason@redhat.com>
573
574 * call.c (build_x_va_arg): Support passing non-POD through ....
575 (convert_arg_to_ellipsis): Likewise.
576
29a122fc 5772014-08-13 Andrew Sutton <andrew.n.sutton@gmail.com>
578
48b9d9da 579 * pt.c (lookup_template_variable): Make dependent variable templates
29a122fc 580 have unknown type.
581
609e270e 5822014-08-13 Paolo Carlini <paolo.carlini@oracle.com>
583
584 * parser.c (cp_parser_elaborated_type_specifier): Handle
585 specially cp_parser_template_id returning a BASELINK.
586
5872014-08-13 Paolo Carlini <paolo.carlini@oracle.com>
588
589 * parser.c (cp_parser_diagnose_invalid_type_name,
590 cp_parser_make_typename_type): Remove scope parameter.
591 (cp_parser_parse_and_diagnose_invalid_type_name,
592 cp_parser_elaborated_type_specifier): Adjust calls.
593
86c7212c 5942014-08-12 Ville Voutilainen <ville.voutilainen@gmail.com>
595
596 Reject virt-specifiers on friends and member templates
597 * friend.c (do_friend): Diagnose virt-specifiers.
598 * pt.c (push_template_decl_real): Diagnose virt-specifiers.
599
718affe2 6002014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
601
602 * typeck2.c (check_narrowing): Add tsubst_flags_t parameter, change
603 return type to bool; in C++11 for constants give errors, not pedwarns.
604 * cp-tree.h (check_narrowing): Adjust declaration.
605 * call.c (convert_like_real): Update calls.
606 * semantics.c (finish_compound_literal): Likewise.
607
9eb96477 6082014-08-08 Jason Merrill <jason@redhat.com>
609
610 * pt.c (lookup_template_class_1): Copy abi_tag.
611
9c3d0685 6122014-08-08 Kai Tietz <ktietz@redhat.com>
613
614 * semantics.c (expand_or_defer_fn_1): Check for keep-inline-dllexport
615 that we operate on a true inline.
616
7149db5f 6172014-08-07 Trevor Saunders <tsaunders@mozilla.com>
618
619 * class.c, cp-gimplify.c, decl.c, decl2.c, error.c, method.c,
620 optimize.c, pt.c, semantics.c: Remove includes of pointer-set.h.
621
392214f6 6222014-08-07 Paolo Carlini <paolo.carlini@oracle.com>
623
624 PR c++/51312
625 * decl.c (build_enumerator): Handle class types with conversion
626 operators via perform_implicit_conversion_flags and
627 build_expr_type_conversion.
628
629 * cvt.c (build_expr_type_conversion): Replace pair of errors
630 with error + inform.
631
5794990e 6322014-08-07 Jason Merrill <jason@redhat.com>
633
1a4c5f55 634 PR c++/62043
635 * parser.c (c_parse_file): Change sorry to fatal_error.
636
5794990e 637 PR c++/61959
638 * semantics.c (cxx_eval_bare_aggregate): Handle POINTER_PLUS_EXPR.
639
5f8841a5 6402014-08-07 Trevor Saunders <tsaunders@mozilla.com>
641
642 * cp-tree.h, pt.c: Use hash_map instead of pointer_map.
643
01259852 6442014-08-06 Jason Merrill <jason@redhat.com>
645
39e3cef3 646 * init.c (build_vec_init): Fix constant initialization of
647 trailing elements.
648 (build_value_init_noctor): Call maybe_constant_init.
649 * semantics.c (maybe_constant_init): See through EXPR_STMT and
650 conversion to void.
651
2cc4f948 652 PR c++/60417
653 * init.c (build_vec_init): Reorganize earlier change a bit.
654
01259852 655 PR c++/61994
656 * init.c (build_vec_init): Leave atype an ARRAY_TYPE
657 if we're just returning an INIT_EXPR.
658
6192a37d 6592014-08-06 Jason Merrill <jason@redhat.com>
660 Braden Obrzut <admin@maniacsvault.net>
661
662 * pt.c (check_explicit_specialization): Don't test
663 DECL_DECLARED_INLINE_P for a variable template.
664
19222566 6652014-08-06 Paolo Carlini <paolo.carlini@oracle.com>
666
667 PR c++/43906
668 * typeck.c (cp_build_binary_op): Extend to more cases the
669 -Waddress warning.
670
30afdfe9 6712014-08-01 Braden Obrzut <admin@maniacsvault.net>
672
673 Implement constexpr variable templates
674 * decl.c (grokvardecl): Handle specializations of variable templates.
675 (grokdeclarator): Handle variable template id expressions and NULL_TREE
676 return from grokvardecl.
677 * decl2.c (check_member_template): Allow declaration of template member
678 variables.
679 * parser.c (cp_parser_template_id): Build a TEMPLATE_ID_EXPR for
680 variable templates.
681 * pt.c (check_template_variable): Accept variable temploids at
682 non-class scope.
683 (push_template_decl_real): The current instantiation of a template
684 can be a VAR_DECL.
685 (determine_specialization): Accept variable templates.
686 (check_explicit_specialization): Handle and check for malformed
687 variable template specializations.
688 (lookup_template_variable): New.
689 (tsubst_decl): Handle variable template specializations.
690 (do_decl_instantiation): Handle template variables.
691 (instantiate_decl): Handle template variables.
692 * semantics.c (finish_template_variable): New.
693 (finish_id_expression): Instantiate variable templates.
694 * cp-tree.h (variable_template_p): New.
695
1b4e0e1c 6962014-08-02 Paolo Carlini <paolo.carlini@oracle.com>
697
698 PR c++/15339
699 * decl.c (check_redeclaration_no_default_args): New.
700 (duplicate_decls): Use it, handle default arguments
701 in redeclarations of function templates.
702
06ecf488 7032014-08-02 Trevor Saunders <tsaunders@mozilla.com>
704
705 * optimize.c, semantics.c: Use hash_map instead of pointer_map.
706
431205b7 7072014-08-02 Trevor Saunders <tsaunders@mozilla.com>
708
709 * class.c, cp-gimplify.c, cp-tree.h, decl.c, decl2.c, error.c,
710 method.c, name-lookup.c, pt.c, semantics.c, tree.c: Use hash_set
711 instead of pointer_set.
712
79f1f232 7132014-08-01 Jason Merrill <jason@redhat.com>
714
715 PR c++/60417
716 * init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on
717 init-list for trailing elements.
718 * typeck2.c (process_init_constructor_array): Likewise.
719
007625c3 7202014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
721
722 DR 217 again
723 * decl.c (duplicate_decls): Handle static member functions too.
724
ebe1cf5d 7252014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
726
727 * cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint
728 in error output.
729
8e9a1c25 7302014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
731
732 PR other/61963
733 * parser.c (cp_parser_array_notation): Added check for array_type.
734
ebe1cf5d 7352014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
3394c80c 736
737 PR middle-end/61455
738 * cp-array-notation.c (expand_array_notation_exprs): Handling of
739 DECL_EXPR improved. Changed handling for INIT_EXPR.
740
60f68add 7412014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
742
743 * pt.c (lookup_template_class_1): Use DECL_TYPE_TEMPLATE_P.
744
392dee1e 7452014-08-01 Jakub Jelinek <jakub@redhat.com>
746
747 * cp-gimplify.c (cp_genericize_r): For -fsanitize=null and/or
748 -fsanitize=alignment call ubsan_maybe_instrument_reference
749 for casts to REFERENCE_TYPE and ubsan_maybe_instrument_member_call
750 for calls to member functions.
751
f22a2cb7 7522014-07-31 Marc Glisse <marc.glisse@inria.fr>
753
754 PR c++/60517
755 * typeck.c (maybe_warn_about_returning_address_of_local): Return
756 whether it is returning the address of a local variable.
757 (check_return_expr): Return 0 instead of the address of a local
758 variable.
759
df990d8e 7602014-07-30 Jason Merrill <jason@redhat.com>
761
762 PR lto/53808
763 PR c++/61659
764 * pt.c (push_template_decl_real): Don't set DECL_COMDAT on friends.
765
435846fa 7662014-07-30 Paolo Carlini <paolo.carlini@oracle.com>
767
768 PR c++/57397
769 * pt.c (unify_arity): Add boolean parameter.
770 (unify_too_few_arguments): Likewise.
771 (type_unification_real): Diagnose correctly insufficient
772 arguments in the presence of trailing variadic parameters;
773 deducing multiple trailing packs as empty is fine.
774
977e64ea 7752014-07-30 Jason Merrill <jason@redhat.com>
776
87b0198f 777 PR c++/61659
778 PR c++/61687
779 Revert:
780 * decl2.c (mark_all_virtuals): New variable.
781 (maybe_emit_vtables): Check it instead of flag_devirtualize.
782 (cp_write_global_declarations): Set it and give helpful diagnostic
783 if it introduces errors.
784 * class.c (finish_struct_1): Check it.
785
977e64ea 786 PR lto/53808
787 PR c++/61659
788 * pt.c (push_template_decl_real): Set DECL_COMDAT on templates.
789 (check_explicit_specialization): Clear it on specializations.
790 * decl.c (duplicate_decls, start_decl): Likewise.
791 (grokmethod, grokfndecl): Set DECL_COMDAT on inlines.
792 * method.c (implicitly_declare_fn): Set DECL_COMDAT. Determine
793 linkage after setting the appropriate flags.
794 * tree.c (decl_linkage): Don't check DECL_COMDAT.
795 * decl2.c (mark_needed): Mark clones.
796 (import_export_decl): Not here.
797
86f64bd9 7982014-07-25 Edward Smith-Rowland <3dw4rd@verizon.net>
799
800 Implement N4051 - Allow typename in a template template parameter
801 * parser.c (cp_parser_type_parameter_key): New funtion;
802 (cp_parser_token_is_type_parameter_key): Ditto;
803 (cp_parser_type_parameter): Look for type-parameter-key for all versions
804 but pedwarn for less than cxx1z.
805
6fb57d29 8062014-07-17 Paolo Carlini <paolo.carlini@oracle.com>
807
808 PR c++/50961
809 * call.c (standard_conversion): Use resolve_nondeduced_context
810 for type_unknown_p (EXPR) && TREE_CODE (TO) == BOOLEAN_TYPE.
811
e9457fe5 8122014-07-17 Paolo Carlini <paolo.carlini@oracle.com>
813
814 PR c++/61804
815 * parser.c (cp_parser_tokens_start_cast_expression): Return -1
816 for '++' and '--'.
817
f0055961 8182014-07-15 Jason Merrill <jason@redhat.com>
819
4643a029 820 PR c++/61811
821 * decl2.c (maybe_emit_vtables): Return true for -fuse-all-virtuals.
822
f0055961 823 PR c++/60848
824 PR c++/61723
825 * call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO.
826 * class.c (finish_struct): Reject invalid definition of
827 std::initializer_list.
828
211cc89c 8292014-07-15 Paolo Carlini <paolo.carlini@oracle.com>
830
831 * call.c (convert_like_real): Call print_z_candidate and inform only
832 if permerror returns true.
833
83c7dcd8 8342014-07-14 Jan Hubicka <hubicka@ucw.cz>
835
836 * class.c (build_clone): Do not clear assembler names of
837 templates.
838 * decl.c (cp_tree_node_structure): Add TEMPLATE_DECL.
839 * cp-objcp-common.c (cp_tree_size): Add TEMPLATE_DECL
840 as a special case return sizeof (struct tree_decl_non_common)
841 for other decls.
842 (cp_common_init_ts): Do not initialize NAMESPACE_DECL;
843 initialize TEMPLATE_DECL as MARK_TS_DECL_COMMON.
844 * cp/cp-tree.h (tree_template_decl): New structure.
845 (cp_tree_node_structure_enum): Add TS_CP_TEMPLATE_DECL.
846 (union cp_lang_tree_node): Add template_decl.
847 (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT): Update.
848
36dcb204 8492014-07-14 Jason Merrill <jason@redhat.com>
850
851 PR c++/61445
852 PR c++/56947
853 * pt.c (instantiate_decl): Don't check defer_ok for local class
854 members.
855
305d96bc 8562014-07-14 Jakub Jelinek <jakub@redhat.com>
857
858 PR middle-end/61294
859 * cp-tree.h (LITERAL_ZERO_P): Define.
860 * parser.c (cp_parser_parenthesized_expression_list): Add
861 want_literal_zero_p argument, if true, for literal zeros
862 insert INTEGER_CSTs with LITERAL_ZERO_P flag set.
863 (cp_parser_postfix_expression): Adjust
864 cp_parser_parenthesized_expression_list caller, handle
865 -Wmemset-transposed-args.
866 (literal_zeros): New variable.
867
3e24efbc 8682014-07-13 Jason Merrill <jason@redhat.com>
869
9d3f4725 870 PR c++/58511
871 * semantics.c (is_instantiation_of_constexpr): Return true for
872 defaulted functions, too.
873 (explain_invalid_constexpr_fn): Only use
874 explain_implicit_non_constexpr if !DECL_DECLARED_CONSTEXPR_P.
875 * method.c (explain_implicit_non_constexpr): Pass
876 DECL_INHERITED_CTOR_BASE to explain_implicit_non_constexpr.
877
df4f98c1 878 PR c++/58611
879 * decl.c (check_initializer): Don't finish_compound_literal
880 on erroneous constexpr init.
881
ad409f79 882 PR c++/58612
883 * tree.c (bot_replace): Only replace a dummy 'this' parm.
884
02777ea9 885 PR c++/60628
886 * decl.c (create_array_type_for_decl): Only check for auto once.
887
3e24efbc 888 PR c++/58636
889 * call.c (build_list_conv): Don't try to build a list of references.
890
90575ae9 8912014-07-13 Edward Smith-Rowland <3dw4rd@verizon.net>
892
893 PR C++/60209 - Declaration of user-defined literal operator cause error
c4884451 894 * parser.c (cp_parser_operator): Fold treatment of strings
90575ae9 895 and user-defined string literals. Use the full string parser.
c4884451 896 (cp_parser_string_literal): Add flag to not look for literal operator.
90575ae9 897
d8fbb701 8982014-07-11 Jason Merrill <jason@redhat.com>
899
900 PR c++/22434
901 PR c++/61288
902 * call.c (build_conditional_expr_1): Avoid reading freed memory.
903
c4991e3e 9042014-07-11 Paolo Carlini <paolo.carlini@oracle.com>
905
906 PR c++/53159
907 * call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING
908 into convflags.
909 * decl.c (check_initializer): Don't call check_narrowing here,
910 set LOOKUP_NO_NARROWING.
911 * typeck2.c (digest_init_r): Likewise.
912
8ea4660d 9132014-07-10 Jason Merrill <jason@redhat.com>
914
bb5ea18f 915 PR c++/61661
916 * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR.
917
8ea4660d 918 PR c++/61659
919 PR c++/61687
920 * decl2.c (mark_all_virtuals): New variable.
921 (maybe_emit_vtables): Check it instead of flag_devirtualize.
922 (cp_write_global_declarations): Set it and give helpful diagnostic
923 if it introduces errors.
924 * class.c (finish_struct_1): Check it.
925 * decl.c (grokdeclarator): Clear virtualp after 'virtual auto' error.
926
4ae7fd31 9272014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
928
929 PR c++/60686
930 * decl.c (grokdeclarator): Adjust error messages about 'explicit'
931 outside class declaration, in friend declaration, and neither on
932 constructor nor conversion operator.
933
14421d56 9342014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
935
936 DR 1584
937 PR c++/57466
938 * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
939 cv-qualifiers of function types.
940
5939c003 9412014-07-09 Andrew Sutton <andrew.n.sutton@gmail.com>
942 Paolo Carlini <paolo.carlini@oracle.com>
943
944 PR c++/59361
945 * parser.c (cp_parser_tokens_start_cast_expression): Return 0 for
946 CPP_ELLIPSIS too.
947
c8bded68 9482014-07-07 Paolo Carlini <paolo.carlini@oracle.com>
949
950 * class.c (check_for_override): Wrap the 'final' and 'override'
951 keywords in %< and %>.
952
87d59e72 9532014-07-06 Marek Polacek <polacek@redhat.com>
954
955 PR c/6940
956 * cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
957 * decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
958 * typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
959 function parameter.
960
947ccd60 9612014-07-02 Paolo Carlini <paolo.carlini@oracle.com>
962
963 * pt.c (convert_template_argument): Use inform instead of error in
964 three places.
965
a61f13e3 9662014-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
967
968 PR c++/58781
969 PR c++/60249
970 PR c++/59867
9620b45c 971 * parser.c (cp_parser_userdef_string_literal): Take a tree
972 not a cp_token*.
973 (cp_parser_string_literal): Don't hack the token stream.
a61f13e3 974
d93128cb 9752014-06-30 Jason Merrill <jason@redhat.com>
976
ee19f44b 977 PR c++/61659
978 PR lto/53808
979 * decl2.c (maybe_emit_vtables): Mark all vtable entries if
980 devirtualizing.
981 * init.c (build_vtbl_address): Don't mark destructor.
982 * class.c (finish_struct_1): Add all classes to keyed_classes
983 if devirtualizing.
984
87c56676 985 PR c++/61647
986 * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
987
5e410273 988 PR c++/61566
989 * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.
990
d93128cb 991 * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
992 TYPE_BINFO or TYPE_LANG_SPECIFIC.
993 * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
994 (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
995 * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
996 * pt.c (unify): Also check whether the argument is a PMF.
997
2c18ecc5 9982014-06-30 Paolo Carlini <paolo.carlini@oracle.com>
999
1000 PR c++/54891
1001 * parser.c (cp_parser_tokens_start_cast_expression): In C++11
1002 a '[' can also start a primary-expression.
1003 (cp_parser_cast_expression): Parse a cast-expression only tentatively
1004 when cp_parser_tokens_start_cast_expression returns -1.
1005
de56f7e4 10062014-06-30 Jason Merrill <jason@redhat.com>
1007
58bc5407 1008 PR c++/61539
1009 * pt.c (unify_one_argument): Type/expression mismatch just causes
1010 deduction failure.
1011
de56f7e4 1012 * semantics.c (simplify_aggr_init_expr): Remove remnants of
1013 2014-04-11 change.
1014
70575064 10152014-06-30 Marek Polacek <polacek@redhat.com>
1016
1017 * cp-gimplify.c (cp_genericize): Don't instrument returns if the
1018 function has no_sanitize_undefined attribute.
1019 * decl.c (compute_array_index_type): Don't instrument VLAs if the
1020 function has no_sanitize_undefined attribute.
1021
4879e4cf 10222014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
1023
1024 PR middle-end/57541
1025 * cp-array-notation.c (expand_sec_reduce_builtin):
1026 Check that bultin argument is correct.
1027 * call.c (build_cxx_call): Check for 0 arguments in builtin call.
1028
8dd9e61e 10292014-06-28 Jonathan Wakely <jwakely@redhat.com>
1030
1031 DR 1579
1032 PR c++/58051
1033 * typeck.c (check_return_expr): Lookup as an rvalue even when the
1034 types aren't the same.
1035
aa2aac02 10362014-06-27 Jason Merrill <jason@redhat.com>
1037
1038 PR c++/61433
1039 * error.c (dump_template_bindings): Don't tsubst in a clone.
1040
4357ad63 10412014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
1042
1043 PR c++/61614
1044 * semantics.c (finish_compound_literal): Revert r204228.
1045
ec00a242 10462014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
1047
1048 * parser.c (cp_parser_compound_literal_p): New.
1049 (cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it.
1050
aa27a525 10512014-06-26 Jason Merrill <jason@redhat.com>
1052
9eb33c8f 1053 * parser.c (cp_parser_for_init_statement): Change range-for error
1054 to pedwarn.
1055
aa27a525 1056 N3994 Ranged-based for-loops: The Next Generation
1057 * parser.c (cp_lexer_nth_token_is): New.
1058 (cp_parser_for_init_statement): Allow "for (id : init)".
1059
a8a8d4ea 10602014-06-26 Teresa Johnson <tejohnson@google.com>
1061
1062 * class.c (dump_class_hierarchy): Use saved dump files.
1063 (dump_vtable): Ditto.
1064 (dump_vtt): Ditto.
1065
9d2d1ab8 10662014-06-26 Adam Butcher <adam@jessamine.co.uk>
1067
1068 PR c++/61537
1069 * parser.c (cp_parser_elaborated_type_specifier): Only consider template
1070 parameter lists outside of function parameter scope.
1071
af71319a 10722014-06-25 Paolo Carlini <paolo.carlini@oracle.com>
1073
1074 DR 178
1075 PR c++/49132
1076 * typeck2.c (process_init_constructor_record): Do not complain about
1077 uninitialized const members, because within aggregate-initialization,
1078 members without explicit initializers are value-initialized.
1079
9580cb79 10802014-06-25 Jakub Jelinek <jakub@redhat.com>
1081
1082 * semantics.c (finish_omp_clauses): Make sure
1083 OMP_CLAUSE_LINEAR_STEP has correct type.
1084
9c2e58d0 10852014-06-24 Jan Hubicka <hubicka@ucw.cz>
1086
1087 * class.c (check_methods, create_vtable_ptr, determine_key_method,
af71319a 1088 add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by
1089 FUNCTION_DECL check.
9c2e58d0 1090 * cp-tree.h (lang_decl_ns): Add ns_using and ns_users.
1091 (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns.
1092 (DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL.
1093 (DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT.
1094
acab45ee 10952014-06-24 Paolo Carlini <paolo.carlini@oracle.com>
1096
1097 PR c++/33972
1098 * decl.c (grokdeclarator): Do not early check for operator-function-id
1099 as non-function.
1100
c1f445d2 11012014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1102
1103 * class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
1104 Adjust.
1105
e471cc6f 11062014-06-24 Jakub Jelinek <jakub@redhat.com>
1107
1108 * parser.c (cp_parser_omp_for_loop): For
1109 #pragma omp parallel for simd move lastprivate clause from parallel
1110 to for rather than simd.
1111
f8388201 11122014-06-23 Paolo Carlini <paolo.carlini@oracle.com>
1113
1114 DR 577
1115 PR c++/33101
1116 * decl.c (grokparms): Accept a single parameter of type 'void'.
1117
2a08bfb6 11182014-06-20 Jason Merrill <jason@redhat.com>
1119
fdb268b3 1120 PR c++/59296
1121 * call.c (add_function_candidate): Avoid special 'this' handling
1122 if we have a ref-qualifier.
1123
2a08bfb6 1124 PR c++/61556
1125 * call.c (build_over_call): Call build_this in template path.
1126
03e6428d 11272014-06-19 Jason Merrill <jason@redhat.com>
1128
1129 PR c++/59296
1130 * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
1131
28459b25 11322014-06-18 Jason Merrill <jason@redhat.com>
1133
0ff56b20 1134 PR c++/59296
1135 * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
1136 ref-qualifier handling.
1137
28459b25 1138 PR c++/61507
1139 * pt.c (resolve_overloaded_unification): Preserve
1140 ARGUMENT_PACK_EXPLICIT_ARGS.
1141
691447ab 11422014-06-18 Jakub Jelinek <jakub@redhat.com>
1143
1144 * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
1145 argument.
1146 * cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
1147
12e2bae5 11482014-06-17 Jason Merrill <jason@redhat.com>
1149
1150 PR c++/60605
1151 * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
1152
9608f727 11532014-06-15 Jason Merrill <jason@redhat.com>
7a2deb52 1154
5ec156c0 1155 PR c++/61488
1156 * pt.c (check_valid_ptrmem_cst_expr): Fix for template context.
1157
7a2deb52 1158 PR c++/61500
1159 * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
1160
1153fb2a 11612014-06-15 Jan Hubicka <hubicka@ucw.cz>
1162
1163 * decl.c (grokvardecl): Fix pasto in previous patch.
1164
5e68df57 11652014-06-15 Jan Hubicka <hubicka@ucw.cz>
1166
1167 * decl.c (duplicate_decls): Use set_decl_tls_model.
1168 (grokdeclarator): Likewise.
1169 * semantics.c (finish_id_expression): Check TLS only for
1170 static variables.
1171 (finish_omp_threadprivate): Use decl_default_tls_model.
1172 * decl2.c (get_guard): Likewise.
1173 * call.c (make_temporary_var_for_ref_to_temp): Likewise.
1174
9c5900d3 11752014-06-14 Paolo Carlini <paolo.carlini@oracle.com>
1176
1177 PR c++/33101
1178 * decl.c (grokparms): Improve error message about void parameters.
1179 * error.c (type_to_string): Fix aka cut off code.
1180
f591db9a 11812014-06-12 Jason Merrill <jason@redhat.com>
1182
74b777e5 1183 * call.c (convert_arg_to_ellipsis): Use abi_version_crosses.
1184 * cvt.c (type_promotes_to): Likewise.
1185 * mangle.c (write_type, write_expression): Likewise.
1186 (write_name, write_template_arg): Likewise.
1187 (mangle_decl): Make alias based on flag_abi_compat_version.
1188 Emit -Wabi warning here.
1189 (finish_mangling_internal): Not here. Drop warn parm.
1190 (finish_mangling_get_identifier, finish_mangling): Adjust.
1191 (mangle_type_string, mangle_special_for_type): Adjust.
1192 (mangle_ctor_vtbl_for_type, mangle_thunk): Adjust.
1193 (mangle_guard_variable, mangle_tls_init_fn): Adjust.
1194 (mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust.
1195
f591db9a 1196 * call.c (build_operator_new_call): Remove -fabi-version=1 support.
1197 * class.c (walk_subobject_offsets, include_empty_classes): Likewise.
1198 (layout_nonempty_base_or_field, end_of_class): Likewise.
1199 (layout_empty_base, build_base_field, layout_class_type): Likewise.
1200 (is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise.
1201 (layout_virtual_bases): Likewise.
1202 * decl.c (compute_array_index_type): Likewise.
1203 * mangle.c (write_mangled_name, write_prefix): Likewise.
1204 (write_template_prefix, write_integer_cst, write_expression): Likewise.
1205 (write_template_arg, write_array_type): Likewise.
1206 * method.c (lazily_declare_fn): Likewise.
1207 * rtti.c (get_pseudo_ti_index): Likewise.
1208 * typeck.c (comp_array_types): Likewise.
1209
738a6bda 12102014-06-11 Jan Hubicka <hubicka@ucw.cz>
1211
1212 * vtable-class-hierarchy.c: Update handling for section names
1213 that are no longer trees.
1214 * decl.c (duplicate_decls): Likewise.
1215
7c862e38 12162014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
1217
1218 PR c++/19200
1219 * parser.c (cp_parser_init_declarator): Actually pass friend_p
1220 to cp_parser_declarator.
1221
a74d6927 12222014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
1223
1224 PR c++/60265
1225 * parser.c (cp_parser_using_declaration): Handle unscoped enums.
1226 * name-lookup.c (validate_nonmember_using_decl): Adjust error
1227 message.
1228
fc082804 12292014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
1230
1231 PR c++/19200
1232 * parser.c (cp_parser_declarator): Add bool parameter.
1233 (cp_parser_direct_declarator): Likewise, use it.
1234 (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
1235 (cp_parser_condition, cp_parser_explicit_instantiation,
1236 cp_parser_init_declarator, cp_parser_type_id_1,
1237 cp_parser_parameter_declaration, cp_parser_exception_declaration,
1238 cp_parser_cache_defarg, cp_parser_objc_class_ivars,
1239 cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
1240 Adjust.
1241 * decl.c (grokdeclarator): Fix handling of friend declared in
1242 namespace scope (g++.dg/parse/friend10.C).
1243
e4c07a06 12442014-06-10 Jan Hubicka <hubicka@ucw.cz>
1245
fc082804 1246 * vtable-class-hierarchy.c: Use symtab_get_node (var_decl)
1247 ->implicit_section.
e4c07a06 1248 * optimize.c (cdtor_comdat_group): Fix handling of aliases.
1249 (maybe_clone_body): Move symbol across comdat groups.
1250 * method.c (use_thunk): Copy implicit section flag.
1251
835648fe 12522014-06-09 Paolo Carlini <paolo.carlini@oracle.com>
1253
1254 PR c++/22556
1255 * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
1256
71e19e54 12572014-06-07 Jan Hubicka <hubicka@ucw.cz>
1258
1259 * method.c (use_thunk): Use set_decl_section_name.
1260 * optimize.c (maybe_clone_body): Use set_decl_section_name.
1261 * decl.c (duplicate_decls): Likewise.
1262 * vtable-class-hierarchy.c: Likewise.
1263
a0771737 12642014-06-06 Paolo Carlini <paolo.carlini@oracle.com>
1265
1266 PR c++/60184
1267 * class.c (check_field_decls): In C++11 mode do not reject
1268 static data members and reference-type members in unions.
1269
29ae9b41 12702014-06-05 Jason Merrill <jason@redhat.com>
1271
1272 PR c++/43453
1273 * decl.c (check_initializer): Collapse a TREE_LIST here.
1274 * typeck2.c (store_init_value): Not here.
1275
cfd6e8b1 12762014-06-05 Richard Biener <rguenther@suse.de>
1277 Paolo Carlini <paolo.carlini@oracle.com>
1278
1279 PR c++/56961
1280 * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
1281 handling of empty classes.
1282
d4af7062 12832014-06-04 Jason Merrill <jason@redhat.com>
1284
ab5faa9d 1285 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
1286 for noexcept and thread_local, too.
1287
d4af7062 1288 PR c++/61343
1289 * decl.c (check_initializer): Maybe clear
1290 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
1291
80de168d 12922014-06-05 Richard Biener <rguenther@suse.de>
1293
1294 PR c++/61004
1295 * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
1296 warnings for accessing empty classes.
1297
32dc1512 12982014-06-05 Marek Polacek <polacek@redhat.com>
1299
1300 PR c/49706
1301 * parser.c (cp_parser_binary_expression): Warn when logical not is
1302 used on the left hand side operand of a comparison.
1303
40196b78 13042014-06-04 Paolo Carlini <paolo.carlini@oracle.com>
1305
1306 PR c++/43453
1307 * typeck.c (cp_build_modify_expr): Handle array of characters
1308 initialized by a string literal.
1309 * decl.c (check_initializer): Handle parenthesized string literal
1310 as initializer.
1311 * typeck2.c (store_init_value): Remove redundant check.
1312
10621300 13132014-06-04 Jason Merrill <jason@redhat.com>
1314
1315 PR c++/51253
1316 PR c++/61382
1317 * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
1318 * semantics.c (simplify_aggr_init_expr): Not here, just copy it.
1319
071f6d39 13202014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
1321
1322 PR c/58942
1323 * cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
1324 with a pointer.
1325
d7f56aae 13262014-06-03 Paolo Carlini <paolo.carlini@oracle.com>
1327
1328 DR 1423
1329 PR c++/52174
1330 * call.c (standard_conversion): Convert nullptr to bool only
1331 in case of direct-initialization.
1332 (convert_like_real): Provide informative error message.
1333
c69ec07d 13342014-06-03 Marek Polacek <polacek@redhat.com>
1335
1336 PR c/60439
1337 * semantics.c (finish_switch_cond): Warn if switch condition has
1338 boolean value.
1339
053f7b81 13402014-06-03 Jason Merrill <jason@redhat.com>
1341
9aebac88 1342 PR c++/60992
1343 * pt.c (tsubst_copy) [VAR_DECL]: Try lookup first. Add a new
1344 variable to local_specializations.
1345
053f7b81 1346 PR c++/60848
1347 * call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.
1348
4e26e30f 13492014-06-02 Jason Merrill <jason@redhat.com>
1350
ebcc7e92 1351 PR c++/61046
1352 * decl.c (reshape_init_class): Handle un-folded
1353 constant-expressions.
1354
4e26e30f 1355 PR c++/61134
1356 * pt.c (pack_deducible_p): Handle canonicalization.
1357
73ba7948 13582014-06-02 Paolo Carlini <paolo.carlini@oracle.com>
1359
1360 * pt.c (tsubst_function_type): Initialize arg_types.
1361
3cc84db5 13622014-06-02 Siva Chandra Reddy <sivachandra@google.com>
1363
1364 PR debug/57519
1365 * class.c (handle_using_decl): Pass the correct scope to
1366 cp_emit_debug_info_for_using.
1367
8aa69b7b 13682014-06-02 Ville Voutilainen <ville.voutilainen@gmail.com>
1369
1370 PR c++/59483
1371 PR c++/61148
1372 * search.c (accessible_p): Use current_nonlambda_class_type.
1373 * semantics.c (check_accessibility_of_qualified_id): Likewise.
1374
f7715905 13752014-06-02 Andrew MacLeod <amacleod@redhat.com>
1376
1377 * decl.c: Include builtins.h.
1378 * semantics.c: Likewise.
1379
0fad3000 13802014-05-31 Paolo Carlini <paolo.carlini@oracle.com>
1381
1382 DR 1227
1383 PR c++/57543
1384 * cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add.
1385 * pt.c (tsubst_function_type): Inject the this parameter; do the
1386 substitutions in the order mandated by the DR.
1387 (copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE.
1388 * decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE.
1389 (static_fn_type): Copy it.
1390 * decl2.c (build_memfn_type, change_return_type,
1391 cp_reconstruct_complex_type): Likewise.
1392 * parser.c (cp_parser_lambda_declarator_opt): Likewise.
1393 * tree.c (strip_typedefs): Likewise.
1394 * typeck.c (merge_types): Likewise.
1395
4b6067c6 13962014-05-30 Jason Merrill <jason@redhat.com>
1397
5a682acb 1398 PR c++/56947
1399 * pt.c (instantiate_decl): Check that defer_ok is not set for
1400 local class members.
1401
4b6067c6 1402 PR c++/60992
1403 * pt.c (tsubst_init): Split out from...
1404 (tsubst_expr) [DECL_EXPR]: Here.
1405 (tsubst_copy) [VAR_DECL]: Use it.
1406 * semantics.c (finish_id_expression): Return the decl for static/const.
1407
8b433e5e 14082014-05-28 Jason Merrill <jason@redhat.com>
1409
1d9ca4f0 1410 PR c++/47202
1411 * decl.c (cxx_comdat_group): Return a decl.
1412 * optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
1413
540af08f 1414 * pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
1415 bound.
1416
8b433e5e 1417 PR c++/61242
1418 * call.c (build_aggr_conv): Ignore passed in flags.
1419 (build_array_conv, build_complex_conv): Likewise.
1420
8c016392 14212014-05-23 Jan Hubicka <hubicka@ucw.cz>
1422
52e9e622 1423 * optimize.c (maybe_thunk_body): Use set_comdat_group.
8c016392 1424 (maybe_clone_body): Likewise.
1425 * decl.c (duplicate_decls): Update code duplicating comdat group;
1426 do not copy symtab pointer; before freeing newdecl remove it
1427 from symtab.
1428 * decl2.c (constrain_visibility): Use set_comdat_group.
1429
aeed25a6 14302014-05-23 Jan Hubicka <hubicka@ucw.cz>
1431
1432 * rtti.c: Include tm_p.h
1433 (emit_tinfo_decl): Force RTTI data to be aligned to required
1434 ABI alignment only.
1435
b9287270 14362014-05-23 Jan Hubicka <hubicka@ucw.cz>
1437
1438 * class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
1439 ignoring other target adjustments.
1440
184a718f 14412014-05-23 Thomas Schwinge <thomas@codesourcery.com>
1442
6ce915ef 1443 * semantics.c (finish_omp_clauses): Remove duplicated variable
1444 initialization.
1445
184a718f 1446 * parser.c (cp_parser_omp_target): Return bool values.
1447
5444a0b4 14482014-05-22 Paolo Carlini <paolo.carlini@oracle.com>
1449
1450 PR c++/61088
1451 * lambda.c (add_capture): Enforce that capture by value requires
1452 complete type.
1453 * typeck2.c (cxx_incomplete_type_inform): Early return if
1454 TYPE_MAIN_DECL is null.
1455
3c82ff7f 14562014-05-21 Jonathan Wakely <jwakely@redhat.com>
1457
1458 PR c/61271
1459 * cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition.
1460
5402533b 14612014-05-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1462
1463 PR c++/61133
1464 * lambda.c (build_capture_proxy, add_capture): Treat normal
1465 captures and init-captures identically.
1466
1b006e46 14672014-05-21 Mark Wielaard <mjw@redhat.com>
1468
1469 PR debug/16063
1470 * cp-lang.c (cxx_enum_underlying_base_type): New function.
1471 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
1472
3ab4693e 14732014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
1474
1475 * cvt.c (convert_to_void): Use void_node instead of void_zero_node.
1476 * cp-array-notation.c (replace_invariant_exprs): Likewise.
1477 (expand_array_notation): Handle VOID_CST.
1478 * error.c (dump_expr): Likewise.
1479 * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
1480 (cxx_pretty_printer::expression): Likewise.
1481 (pp_cxx_new_expression): Use void_node instead of void_zero_node.
1482 * decl.c (register_dtor_fn): Likewise.
1483 * init.c (build_raw_new_expr, build_new_1, build_vec_init)
1484 (build_delete, push_base_cleanups): Likewise.
1485 * mangle.c (write_expression): Likewise.
1486 * semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise.
1487 * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
1488 (tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST.
1489 * tree.c (cp_tree_equal): Likewise.
1490 (build_dummy_object, is_dummy_object, stabilize_expr): Use void_node
1491 instead of void_zero_node.
1492 * typeck.c (check_return_expr): Likewise.
1493 * typeck2.c (build_functional_cast): Likewise.
1494
0a931cb5 14952014-05-21 Igor Zamyatin <igor.zamyatin@intel.com>
1496
1497 PR c/60189
1498 * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync
1499 from here to...
1500 (cp_parser_statement): ...here. Make sure only semicolon can go after
1501 Cilk_sync.
1502
089c9c49 15032014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
1504
1505 PR c++/58753
1506 PR c++/58930
1507 PR c++/58704
1508 * typeck2.c (digest_nsdmi_init): New.
1509 * parser.c (cp_parser_late_parse_one_default_arg): Use it.
1510 * init.c (get_nsdmi): Likewise.
1511 * cp-tree.h (digest_nsdmi_init): Declare.
1512
31a434dd 15132014-05-20 Jason Merrill <jason@redhat.com>
1514
1515 * typeck.c (get_member_function_from_ptrfunc): Don't try to look
1516 up a virtual function in a dummy object.
1517
a6028cf3 15182014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
1519
1520 PR c++/60373
1521 * decl.c (duplicate_decls): Replace pair of warning_at with
1522 warning_at + inform.
1523 (maybe_commonize_var): Likewise.
1524
6cae5733 15252014-05-20 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
1526
1527 PR bootstrap/61210
1528 * pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr)
1529 (tsubst_copy_and_build): Perform recursive substitutions in a
1530 deterministic order.
1531
775b9c9f 15322014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
1533
1534 PR c++/58664
1535 * typeck2.c (cxx_incomplete_type_inform): New.
1536 (cxx_incomplete_type_diagnostic): Use it.
1537 * decl.c (grokdeclarator): Check the element type of an
1538 incomplete array type; call the above.
1539 * cp-tree.h (cxx_incomplete_type_inform): Declare.
1540
3c688d2d 15412014-05-19 Jason Merrill <jason@redhat.com>
1542
1543 PR c++/58761
1544 * pt.c (tsubst_copy): Don't check at_function_scope_p.
1545 (instantiate_class_template_1): Don't push_to_top_level in an nsdmi.
1546
a4d705f9 15472014-05-19 Paolo Carlini <paolo.carlini@oracle.com>
1548
1549 * typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
1550 * parser.c (cp_parser_enum_specifier): Likewise.
1551
25a27413 15522014-05-17 Trevor Saunders <tsaunders@mozilla.com>
1553
1554 * class.c (sorted_fields_type_new): Adjust.
1555 * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
1556 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
1557 * cp-tree.h: Remove usage of variable_size gty attribute.
1558 * decl.c (make_label_decl): Adjust.
1559 (check_goto): Likewise.
1560 (start_preparsed_function): Likewise.
1561 (save_function_data): Likewise.
1562 * lex.c (init_reswords): Likewise.
1563 (retrofit_lang_decl): Likewise.
1564 (cxx_dup_lang_specific_decl): Likewise.
1565 (copy_lang_type): Likewise.
1566 (cxx_make_type): Likewise.
1567 * name-lookup.c (binding_entry_make): Likewise.
1568 (binding_table_construct): Likewise.
1569 (binding_table_new): Likewise.
1570 (cxx_binding_make): Likewise.
1571 (pushdecl_maybe_friend_1): Likewise.
1572 (begin_scope): Likewise.
1573 (push_to_top_level): Likewise.
1574 * parser.c (cp_lexer_alloc): Likewise.
1575 (cp_lexer_new_from_tokens): Likewise.
1576 (cp_token_cache_new): Likewise.
1577 (cp_parser_context_new): Likewise.
1578 (cp_parser_new): Likewise.
1579 (cp_parser_nested_name_specifier_opt): Likewise.
1580 (cp_parser_template_id): Likewise.
1581 * pt.c (maybe_process_partial_specialization): Likewise.
1582 (register_specialization): Likewise.
1583 (add_pending_template): Likewise.
1584 (lookup_template_class_1): Likewise.
1585 (push_tinst_level): Likewise.
1586 * semantics.c (register_constexpr_fundef): Likewise.
1587 (cxx_eval_call_expression): Likewise.
1588 * typeck2.c (abstract_virtuals_error_sfinae): Likewise.
1589
70834003 15902014-05-16 Paolo Carlini <paolo.carlini@oracle.com>
1591
1592 PR c++/51640
1593 * parser.c (cp_parser_diagnose_invalid_type_name): Early return
1594 when cp_parser_lookup_name sets ambiguous_decls.
1595
9e66c6e7 15962014-05-15 Jason Merrill <jason@redhat.com>
1597
1598 * call.c (print_conversion_rejection): Use loc consistently.
1599
8e8713cd 16002014-05-14 Paolo Carlini <paolo.carlini@oracle.com>
1601
1602 * cp-tree.h (DIRECT_LIST_INIT_P): Add.
1603 * call.c (convert_like_real, build_new_method_call_1): Use it.
1604 * decl2.c (grokfield): Likewise.
1605 * init.c (perform_member_init, build_aggr_init, expand_default_init,
1606 build_new_1): Likewise.
1607 * mangle.c (write_expression): Likewise.
1608 * parser.c (cp_parser_late_parse_one_default_arg): Likewise.
1609
aa8d51e4 16102014-05-14 Jason Merrill <jason@redhat.com>
1611
fdbd4827 1612 PR c++/20332
1613 PR c++/21631
1614 * call.c (reference_binding): Treat lvalue/rvalue mismatch and
1615 dropped cv-quals as a bad conversion.
1616 (convert_like_real) [ck_ref_bind]: Explain them.
1617 (compare_ics): Check badness before stripping reference
1618 bindings. Handle comparing bad reference bindings.
1619 * typeck.c (comp_cv_qualification): Add overload that just takes
1620 integers.
1621 * cp-tree.h: Declare it.
1622
aa8d51e4 1623 * call.c (struct conversion_info): Rename 'from_type' to 'from'.
1624 (arg_conversion_rejection, bad_arg_conversion_rejection)
1625 (explicit_conversion_rejection, template_conversion_rejection): Adjust.
1626 (add_function_candidate): Pass actual argument, rather than type, to
1627 bad_arg_conversion_rejection.
1628 (print_conversion_rejection): Explain what's wrong with the conversion.
3e9481da 1629 (print_z_candidates): Say "candidate:" before each candidate.
aa8d51e4 1630 (splice_viable): Be strict if we see a viable or template candidate.
1631 (build_user_type_conversion_1): Pass false to strict parameter.
1632 (perform_overload_resolution, build_conditional_expr_1): Likewise.
1633 (build_new_op_1, build_new_method_call_1): Likewise.
1634 (build_op_call_1): Pass true to strict parameter.
1635
02b19aed 16362014-05-13 Jason Merrill <jason@redhat.com>
1637
f770db5d 1638 * call.c (print_error_for_call_failure): Say "no match" rather
1639 than "ambiguous" if there were no strict matches.
1640 (build_new_method_call_1): Likewise.
1641
02b19aed 1642 PR c++/61151
1643 * semantics.c (is_this_parameter): Allow capture proxies too.
1644
c6d185ef 16452014-05-12 Jason Merrill <jason@redhat.com>
1646
2371bf7c 1647 * call.c (maybe_print_user_conv_context): New.
1648 (convert_like_real): Use it. Print call context for bad
1649 user-defined conversion.
1650 (build_over_call): Print call context for bad 'this' conversion.
1651
c6d185ef 1652 * call.c (convert_like_real): Use inform for identifying the
1653 declaration point.
1654
d3f0af4b 16552014-05-12 Paolo Carlini <paolo.carlini@oracle.com>
1656
1657 * cvt.c (cp_convert_to_pointer): Don't call error_at if
1658 complain & tf_error is false.
1659
1660 * decl.c (make_unbound_class_template): Prefer inform for
1661 "declared here"-type message.
1662
f1ec53b6 16632014-05-09 Momchil Velikov <momchil.velikov@gmail.com>
1664
1665 PR c++/60463
1666 PR c++/60755
1667 * lambda.c (lambda_expr_this_capture): Add new parameter
1668 add_capture_p controlling whether the functions will try to
1669 capture 'this' via the default capture.
1670 (maybe_resolve_dummy): Likewise.
1671 * cp-tree.h: Adjust prototypes.
1672 * call.c, semantics.c: Change callers of these functions.
1673 * call.c (build_new_method_call_1): Use the actual 'this' that
1674 would be potentially captured for the overload resolution, instead
1675 of the dummy object.
1676
67609839 16772014-05-09 Paolo Carlini <paolo.carlini@oracle.com>
1678
1679 * pt.c (convert_nontype_argument_function): Add tsubst_flags_t
1680 parameter.
1681 (convert_nontype_argument): Adjust calls.
1682 (coerce_template_parameter_pack): Add missing complain & tf_error
1683 check.
1684
70d9340b 16852014-05-09 Jason Merrill <jason@redhat.com>
1686
d5e58b85 1687 DR 587
1688 PR c++/51317
1689 * call.c (build_conditional_expr_1, conditional_conversion): Handle
1690 non-class lvalues and xvalues that differ only in cv-qualifiers.
1691
32390693 1692 DR 5
1693 PR c++/60019
1694 * call.c (build_user_type_conversion_1): The copy-init temporary
1695 is cv-unqualified.
1696
58cdcc54 1697 PR c++/58714
1698 * tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
1699
15608833 1700 PR c++/54348
1701 * call.c (build_conditional_expr_1): If overload resolution finds
1702 no match, just say "different types".
1703
1704 PR c++/32019
1705 * call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
1706
70d9340b 1707 PR c++/22434
1708 * call.c (build_conditional_expr_1): Don't try to pool cv-quals
1709 if we didn't find a conversion.
1710 Don't accept a bad conversion too early.
1711
5544070d 17122014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
1713
1714 PR c++/13981
1715 * typeck.c (convert_for_assignment): Provide an inform for pointers
1716 to incomplete class types.
1717
662eb060 17182014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
1719
1720 PR c++/61083
1721 * pt.c (convert_nontype_argument): Protect all the error calls
1722 with complain & tf_error.
1723
a79381fe 17242014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
1725
1726 PR c++/61080
1727 * pt.c (instantiate_decl): Avoid generating the body of a
1728 deleted function.
1729
d5e91941 17302014-05-06 Paolo Carlini <paolo.carlini@oracle.com>
1731
1732 PR c++/60999
1733 * pt.c (maybe_begin_member_template_processing): Use
1734 uses_template_parms.
1735
960d5a55 17362014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1737 Mike Stump <mikestump@comcast.net>
1738 Richard Sandiford <rdsandiford@googlemail.com>
1739
1740 * call.c: Include wide-int.h.
1741 (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
1742 (convert_for_arg_passing): Likewise.
1743 * class.c: Include wide-int.h.
1744 (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
1745 (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
1746 (include_empty_classes): Likewise
1747 (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
1748 * cvt.c: Include wide-int.h.
1749 (ignore_overflows): Use wide_int_to_tree.
1750 * decl.c: Include wide-int.h.
1751 (check_array_designated_initializer): Use wide-int interfaces.
1752 (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
1753 (finish_enum_value_list): Use signop.
1754 (build_enumerator): Use wide-int interfaces.
1755 * init.c: Include wide-int.h.
1756 (build_new_1): Use wide-int interfaces.
1757 * mangle.c: Include wide-int.h.
1758 (write_integer_cst): Use wide-int interfaces.
1759 (write_array_type): Likewise.
1760 * tree.c: Include wide-int.h.
1761 (cp_tree_equal): Use tree_int_cst_equal.
1762 * typeck2.c: Include wide-int.h.
1763 (process_init_constructor_array): Use wide-int interfaces.
1764
321c47b0 17652014-05-03 Paolo Carlini <paolo.carlini@oracle.com>
1766
1767 PR c++/58582
1768 * decl.c (grokfndecl): Check duplicate_decls return value for
1769 error_mark_node.
1770 * pt.c (instantiate_decl): A deleted function is defined.
1771
384b0418 17722014-05-02 Jason Merrill <jason@redhat.com>
1773
14b525c6 1774 * decl2.c (vague_linkage_p): Local statics have vague linkage.
1775
384b0418 1776 PR c++/60992
1777 * lambda.c (lambda_capture_field_type): Wrap anything dependent
1778 other than 'this'.
1779 (add_capture): Check for VLA before calling it.
1780 * semantics.c (is_this_parameter): Accept any 'this' parameter, not
1781 just the current one. Make non-static.
1782 * cp-tree.h: Declare it.
1783 * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
1784 the operand was static or constant.
1785
27ff10cb 17862014-05-02 Marek Polacek <polacek@redhat.com>
1787
1788 * typeck.c (maybe_warn_about_returning_address_of_local): Separate
1789 warning_at calls.
1790
694296f2 17912014-05-01 Marek Polacek <polacek@redhat.com>
1792
1793 PR c/43395
1794 * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
1795 between label and variable when warning about returning local address.
1796
1d911add 17972014-04-30 Jason Merrill <jason@redhat.com>
1798
4a2cf6ca 1799 PR c++/60980
1800 * init.c (build_value_init): Don't try to call an array constructor.
1801
1d911add 1802 PR c++/60951
1803 * typeck2.c (massage_init_elt): Use maybe_constant_init.
1804
52cc0072 18052014-04-30 Marek Polacek <polacek@redhat.com>
1806
1807 * typeck.c (cp_build_binary_op): Call ubsan_instrument_division
1808 even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even
1809 for non-integer types.
1810
f2c1aabc 18112014-04-29 Jason Merrill <jason@redhat.com>
1812
1813 DR 1351
1814 Represent the unevaluated exception specification of an implicitly
1815 declared or deleted function with a simple placeholder, not a list
1816 of functions.
1817 * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
1818 * except.c (unevaluated_noexcept_spec): New.
1819 * class.c (deduce_noexcept_on_destructor): Use it.
1820 * decl.c (check_redeclaration_exception_specification): Call
1821 maybe_instantiate_noexcept.
1822 (duplicate_decls): Call it before merge_types.
1823 (start_preparsed_function): Call maybe_instantiate_noexcept.
1824 * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
1825 * init.c (get_nsdmi): Factor out of perform_member_init.
1826 * method.c (process_subob_fn): Call maybe_instantiate_noexcept.
1827 (walk_field_subobs): Consider NSDMI for EH spec.
1828 (get_defaulted_eh_spec): New.
1829 (implicitly_declare_fn): Use unevaluated_noexcept_spec.
1830 (defaulted_late_check): Defer EH checking in non-template classes.
1831 (after_nsdmi_defaulted_late_checks): New.
1832 * parser.c (cp_parser_class_specifier_1): Use it.
1833 (unparsed_classes): New macro.
1834 * parser.h (cp_unparsed_functions_entry_d): Add classes field.
1835 * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
1836 Remove list-of-functions handling.
1837 * typeck2.c (merge_exception_specifiers): Remove list-of-functions
1838 handling and FN parameter.
1839 * typeck.c (merge_types): Adjust.
1840
7f0ae9af 18412014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
1842
1843 PR c++/59120
1844 * parser.c (cp_parser_alias_declaration): Check return value of
1845 cp_parser_require.
1846
e1029911 18472014-04-24 Jakub Jelinek <jakub@redhat.com>
1848
1849 * parser.c (cp_parser_omp_atomic): Allow seq_cst before
1850 atomic-clause, allow comma in between atomic-clause and
1851 seq_cst.
1852
c6a952b0 18532014-04-24 Marc Glisse <marc.glisse@inria.fr>
1854
1855 PR libstdc++/43622
1856 * rtti.c (emit_support_tinfos): Do not iterate on
1857 registered_builtin_types (partial revert).
1858
90fe9d0c 18592014-04-23 Dinar Temirbulatov <dtemirbulatov@gmail.com>
1860
1861 PR c++/57958
1862 * semantics.c (apply_deduced_return_type): Complete non-void type
1863 before estimating whether the type is aggregate.
1864
c1917557 18652014-04-22 Marc Glisse <marc.glisse@inria.fr>
1866
1867 PR libstdc++/43622
1868 * rtti.c (emit_support_tinfo_1): New function, extracted from
1869 emit_support_tinfos.
1870 (emit_support_tinfos): Call it and iterate on registered_builtin_types.
1871
9f0a7bc6 18722014-04-22 Jakub Jelinek <jakub@redhat.com>
1873
1874 PR c/59073
1875 * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
1876 fails, don't set OM_PARALLEL_COMBINED and return NULL.
1877
e0417caa 18782014-04-18 Jason Merrill <jason@redhat.com>
1879
5811f638 1880 DR 1571
1881 * call.c (reference_binding): Recurse on user-defined conversion.
1882
e0417caa 1883 PR c++/60872
1884 * call.c (standard_conversion): Don't try to apply restrict to void.
1885
10c9192f 18862014-04-16 Marc Glisse <marc.glisse@inria.fr>
1887
1888 * decl.c (reshape_init_r): Handle a single element of vector type.
1889
6da7682f 18902014-04-16 Patrick Palka <patrick@parcs.ath.cx>
1891
1892 PR c++/60765
1893 * decl2.c (cplus_decl_attributes): Handle
1894 pointer-to-member-function declarations.
1895
18962014-04-16 Patrick Palka <patrick@parcs.ath.cx>
1897
1898 PR c++/60764
1899 * call.c (build_user_type_coversion): Use build_dummy_object
1900 to create the placeholder object for a constructor method call.
1901 (build_special_member_call): Likewise.
1902 (build_over_call): Check for the placeholder object with
1903 is_dummy_object.
1904 (build_new_method_call_1): Likewise. Don't attempt to resolve
1905 a dummy object for a constructor method call.
1906
d8dbaa4d 19072014-04-16 Paul Pluzhnikov <ppluzhnikov@google.com>
1908
1909 PR c++/59295
1910 * friend.c (add_friend, make_friend_class): Move repeated friend
1911 warning under Wredundant_decls.
1912
eb192f47 19132014-04-15 Paolo Carlini <paolo.carlini@oracle.com>
1914
1915 * decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
1916 * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
1917 (do_class_using_decl): Likewise.
1918 * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
1919
d78cc47b 19202014-04-15 Jakub Jelinek <jakub@redhat.com>
1921
1922 PR plugins/59335
1923 * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
1924
48dcce25 19252014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
1926
1927 * cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
1928
3cf0d3fe 19292014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
1930
1931 * pt.c (mark_template_parm): Use template_parm_level_and_index.
1932
725218f2 19332014-04-11 Jason Merrill <jason@redhat.com>
1934
4163a05c 1935 * parser.h (struct cp_token): Rename ambiguous_p to error_reported.
1936 * parser.c: Adjust.
1937 (cp_lexer_get_preprocessor_token): Always clear it.
1938 (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
1939
ac89b239 1940 DR 1467
1941 PR c++/51747
1942 * decl.c (reshape_init_r): Handle a single element of class type.
1943
725218f2 1944 DR 1338
1945 * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
1946 built-in operator new.
1947
08f9c377 19482014-04-11 Paolo Carlini <paolo.carlini@oracle.com>
1949
1950 PR c++/58600
1951 * name-lookup.c (parse_using_directive): Return early if the
1952 attribs argument is error_mark_node; use get_attribute_name.
1953
91d81115 19542014-04-11 Jason Merrill <jason@redhat.com>
1955
1956 DR 1030
1957 PR c++/51253
1958 * cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
1959 * call.c (struct z_candidate): Add flags field.
1960 (add_candidate): Add flags parm.
1961 (add_function_candidate, add_conv_candidate, build_builtin_candidate)
1962 (add_template_candidate_real): Pass it.
1963 (build_over_call): Set CALL_EXPR_LIST_INIT_P.
1964 * tree.c (build_aggr_init_expr): Copy it.
1965 * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
1966
a521cfc1 19672014-04-10 Richard Biener <rguenther@suse.de>
1968 Jakub Jelinek <jakub@redhat.com>
1969
1970 PR ipa/60761
1971 * error.c (dump_decl) <case FUNCTION_DECL>: If
1972 DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
1973 recurse on DECL_ABSTRACT_ORIGIN instead of printing
1974 <built-in>.
1975
3235f8eb 19762014-04-09 Fabien Chêne <fabien@gcc.gnu.org>
1977
1978 * pt.c (check_template_variable): Check for the return of pedwarn
1979 before emitting a note.
1980 * parser.c (cp_parser_lambda_introducer): Likewise.
1981
bcc1089d 19822014-04-08 Paolo Carlini <paolo.carlini@oracle.com>
1983
1984 PR c++/59115
1985 * pt.c (process_template_parm): For an invalid non-type parameter
1986 only set TREE_TYPE to error_mark_node.
1987 (push_inline_template_parms_recursive, comp_template_parms,
1988 redeclare_class_template, coerce_template_template_parm,
1989 coerce_template_template_parms, unify): Use error_operand_p.
1990
3da466c2 19912014-04-08 Nathan Sidwell <nathan@codesourcery.com>
1992
1993 * class.c (check_bases_and_members): Warn about non-virtual dtors
1994 in public bases only. Check warn_ecpp before complaining about
1995 non-polymorphic bases.
1996
50dfcaf2 19972014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
1998
1999 * decl.c (duplicate_decls): Check for the return of warning_at
2000 before emitting a note.
2001 (warn_misplaced_attr_for_class_type): Likewise.
2002 (check_tag_decl): Likewise.
2003
fb73bd50 20042014-04-04 Paolo Carlini <paolo.carlini@oracle.com>
2005
2006 PR c++/58207
2007 * semantics.c (sort_constexpr_mem_initializers): Robustify loop.
2008
3ef62016 20092014-04-04 Patrick Palka <patrick@parcs.ath.cx>
2010
3f136c5f 2011 PR c++/44613
2012 * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
2013 * decl.c (cp_finish_decl): Create a new BIND_EXPR before
2014 instantiating a variable-sized type.
2015
3ef62016 2016 PR c++/21113
2017 * decl.c (decl_jump_unsafe): Consider variably-modified decls.
2018
447c7147 20192014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
2020
2021 * class.c (find_abi_tags_r): Check for the return of warning
2022 before emitting a note.
2023 (one_inherited_ctor): Likewise.
2024
7144bfbd 20252014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
2026
2027 * decl.c (duplicate_decls): Check for the return of permerror
2028 before emitting a note.
2029
a35a8e18 20302014-04-03 Nathan Sidwell <nathan@codesourcery.com>
2031
2032 * class.c (accessible_nvdtor_p): New.
2033 (check_bases): Don't check base destructor here ...
2034 (check_bases_and_members): ... check them here. Trigger on
2035 Wnon-virtual-dtor flag.
2036 (finish_struct_1): Use accessible_nvdtor_p.
2037
51e148d7 20382014-04-01 Jason Merrill <jason@redhat.com>
2039
f2aceb06 2040 * pt.c (process_partial_specialization): Say "not deducible"
2041 rather than "not used". Use inform.
2042
51e148d7 2043 PR c++/60374
2044 * pt.c (coerce_template_parms): Check that the pack expansion
2045 pattern works with the first matching parameter.
2046
19e925b4 20472014-04-01 Fabien Chêne <fabien@gcc.gnu.org>
2048
a34ebeff 2049 * init.c (perform_member_init): Homogenize uninitialized
19e925b4 2050 diagnostics.
2051
42a2bdf5 20522014-04-01 Jason Merrill <jason@redhat.com>
2053
c138daa7 2054 PR c++/60708
2055 * call.c (build_array_conv): Call complete_type.
2056
48f76477 2057 PR c++/60713
2058 * typeck2.c (PICFLAG_SIDE_EFFECTS): New.
2059 (picflag_from_initializer): Return it.
2060 (process_init_constructor): Handle it.
2061
42a2bdf5 2062 PR c++/60642
2063 * decl2.c (is_late_template_attribute): Don't defer abi_tag.
2064 * mangle.c (write_unqualified_name): Fix abi_tag on templates.
2065 * pt.c (get_template_info): Handle NAMESPACE_DECL.
2066 (most_general_template): Handle more kinds of template.
2067 * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
2068 instantiations and specializations.
2069
a34ebeff 20702014-03-31 Patrick Palka <patrick@parcs.ath.cx>
7f9fe03b 2071
2072 PR c++/44859
2073 * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
2074 COMPONENT_REFs and ARRAY_REFs sooner.
2075
4906c0a4 20762014-03-29 Adam Butcher <adam@jessamine.co.uk>
2077
2078 PR c++/60626
2079 * parser.c (cp_parser_init_declarator): Handle erroneous generic type
2080 usage in non-functions with pushed scope.
2081
265a34f4 20822014-03-28 Adam Butcher <adam@jessamine.co.uk>
2083
2084 PR c++/60573
2085 * name-lookup.h (cp_binding_level): New transient field defining_class_p
2086 to indicate whether a scope is in the process of defining a class.
2087 * semantics.c (begin_class_definition): Set defining_class_p.
2088 * name-lookup.c (leave_scope): Reset defining_class_p.
2089 * parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
2090 defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
2091 unwinding to class-defining scope to handle the erroneous definition of
2092 a generic function of an arbitrarily nested class within an enclosing
2093 class.
2094
bebb2c46 20952014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
265a34f4 2096
2097 PR c++/52369
7144bfbd 2098 * method.c (walk_field_subobs): Improve the diagnostic
bebb2c46 2099 locations for both REFERENCE_TYPEs and non-static const members.
7144bfbd 2100 * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
bebb2c46 2101 instead of %qD to be consistent with the c++11 diagnostic.
2102
ecc7201f 21032014-03-25 Jason Merrill <jason@redhat.com>
2104
89d453e3 2105 PR c++/60566
2106 PR c++/58678
2107 * class.c (build_vtbl_initializer): Handle abstract dtors here.
2108 * search.c (get_pure_virtuals): Not here.
2109
88ef2cb8 2110 PR c++/60375
2111 * parser.c (cp_parser_lambda_expression): Don't parse the body of
2112 a lambda in unevaluated context.
2113
ecc7201f 2114 PR c++/60628
2115 * decl.c (create_array_type_for_decl): Complain about array of auto.
2116
de48ad32 21172014-03-25 Jakub Jelinek <jakub@redhat.com>
2118
2119 PR c++/60331
2120 * semantics.c (potential_constant_expression_1): Handle
2121 DECL_EXPR.
2122
bb7b7cec 21232014-03-24 Adam Butcher <adam@jessamine.co.uk>
2124
2125 PR c++/60627
2126 * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
2127 introducing an implicit function template parameter within an explicit
2128 instantiation.
2129
87ac398b 21302014-03-22 Jason Merrill <jason@redhat.com>
2131
2132 PR c++/60574
2133 * decl.c (grokdeclarator): Change permerror about 'virtual auto'
2134 to error.
2135
eb62b291 21362014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
2137
2138 PR c++/60384
2139 * name-lookup.c (push_class_level_binding_1): Check identifier_p
2140 on the name argument.
2141
2982409c 21422014-03-20 Jakub Jelinek <jakub@redhat.com>
2143
2144 PR c++/60572
2145 * init.c (build_zero_init_1): Ignore fields with error_mark_node
2146 type.
2147
c97fb132 21482014-03-19 Paolo Carlini <paolo.carlini@oracle.com>
2149
2150 PR c++/51474
2151 * call.c (build_new_method_call_1): Handle pure virtuals called by
2152 NSDMIs too.
2153
d2caa684 21542014-03-17 Adam Butcher <adam@jessamine.co.uk>
2155
fd6b21e6 2156 PR c++/60390
2157 * parser.c (cp_parser_member_declaration): Don't allow
2158 finish_fully_implicit_template to consider friend declarations to be
2159 class member templates.
2160 (synthesize_implicit_template_parm): Handling winding back through class
2161 scope to the class being defined in order to inject a template argument
2162 list.
2163
d2caa684 2164 PR c++/60391
2165 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
2166 function scope as per cp_parser_skip_to_end_of_statement.
2167
34c4877b 21682014-03-17 Paolo Carlini <paolo.carlini@oracle.com>
2169
2170 PR c++/59571
2171 * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
2172
27ea311d 21732014-03-14 Jason Merrill <jason@redhat.com>
2174
67e2ce94 2175 PR c++/60532
2176 PR c++/58678
2177 * search.c (get_pure_virtuals): Handle abstract dtor here.
2178 (dfs_get_pure_virtuals): Not here.
2179
27ea311d 2180 PR c++/58678
2181 * search.c (dfs_get_pure_virtuals): Treat the destructor of an
2182 abstract class as pure.
2183
c498d5d2 21842014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
2185
2186 PR c++/60383
2187 * pt.c (maybe_process_partial_specialization): Check return value
2188 of check_specialization_namespace.
2189
4e839e56 21902014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
2191
2192 PR c++/60254
2193 * semantics.c (finish_static_assert): Call cxx_constant_value only
2194 if require_potential_rvalue_constant_expression returns true.
2195
c9b99c30 21962014-03-11 Paolo Carlini <paolo.carlini@oracle.com>
2197
2198 PR c++/60389
2199 * method.c (get_inherited_ctor): New.
2200 * cp-tree.h (get_inherited_ctor): Declare it.
2201 * semantics.c (is_valid_constexpr_fn): Use it.
2202
b919371f 22032014-03-10 Jason Merrill <jason@redhat.com>
2204
c39c96ef 2205 PR c++/60367
2206 * call.c (convert_default_arg): Remove special handling for
2207 CONSTRUCTOR.
2208
b919371f 2209 PR c++/53492
2210 * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
2211 when deciding whether to call push_template_decl for a member class.
2212 * pt.c (push_template_decl_real): Return after wrong levels error.
2213
9fad7d86 22142014-03-08 Adam Butcher <adam@jessamine.co.uk>
2215
356418b4 2216 PR c++/60033
2217 * pt.c (tsubst_copy): When retrieving a capture pack from a generic
2218 lambda, remove the lambda's own template argument list prior to fetching
2219 the specialization.
2220
9fad7d86 2221 PR c++/60393
2222 * parser.c (cp_parser_parameter_declaration_clause): Move generic
2223 function template unwinding on error into a more general location, ...
2224 (cp_parser_skip_to_end_of_statement): ... here.
2225
4f50e8b3 22262014-03-07 Jason Merrill <jason@redhat.com>
2227
21a224f6 2228 * Make-lang.in (check_g++_parallelize): Split dg.exp.
2229
9665ba48 2230 * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
2231 we're in a trailing return type.
2232
f8ccb73b 2233 * typeck.c (comp_template_parms_position): 'auto' and
2234 'decltype(auto)' are different from real template parms.
2235
197d48cc 2236 * parser.c (cp_parser_using_declaration): Consume the semicolon
2237 after bare parameter pack error.
2238
312942d8 2239 * cp-tree.h (REF_PARENTHESIZED_P): New.
2240 * semantics.c (force_paren_expr): Set it.
2241 * pt.c (do_auto_deduction): Check it.
2242 (tsubst) [COMPONENT_REF]: Copy it.
2243 * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
2244
4f50e8b3 2245 * decl.c (create_array_type_for_decl): Only warn about invalid
2246 C++1y VLA if flag_iso or warn_vla>0.
2247 (grokdeclarator): Likewise.
2248 * pt.c (tsubst): Likewise.
2249 * semantics.c (finish_decltype_type): Likewise.
2250 * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
2251 (cp_build_addr_expr_1): Likewise.
2252 * init.c (build_new_1): Improve diagnostics.
2253
eb425395 22542014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
2255
2256 PR c++/58609
2257 * decl.c (check_initializer): Return NULL_TREE after error;
2258 consistently use inform.
2259
7b1c5739 22602014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
2261
2262 * decl.c (check_initializer): Remove dead code.
2263
3bfdc94f 22642014-03-06 Marek Polacek <polacek@redhat.com>
2265
2266 PR c/60197
2267 * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
2268 of checking tree code.
2269
7ae216c9 22702014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
2271
2272 * parser.c (cp_lexer_set_source_position): New.
2273 (cp_parser_mem_initializer): Use it.
2274 (cp_parser_postfix_open_square_expression): Likewise.
2275 (cp_parser_parenthesized_expression_list): Likewise.
2276 (cp_parser_new_initializer): Likewise.
2277 (cp_parser_jump_statement): Likewise.
2278 (cp_parser_initializer): Likewise.
2279 (cp_parser_functional_cast): Likewise.
2280
7acfa321 22812014-03-05 Jason Merrill <jason@redhat.com>
2282
1ef668b7 2283 PR c++/60409
2284 * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
2285 dependent expression.
2286
0e6d86f3 2287 PR c++/60361
2288 * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
2289 if re-parsing might succeed.
2290 * semantics.c (finish_id_expression): Use of a parameter outside
2291 the function body is a parse error.
2292
7acfa321 2293 * parser.c (cp_parser_mem_initializer): Set input_location
2294 properly for init-list warning.
2295 (cp_parser_postfix_open_square_expression): Likewise.
2296 (cp_parser_parenthesized_expression_list): Likewise.
2297 (cp_parser_new_initializer): Likewise.
2298 (cp_parser_jump_statement): Likewise.
2299 (cp_parser_initializer): Likewise.
2300 (cp_parser_functional_cast): Likewise.
2301
fb5c9fe1 23022014-03-04 Jason Merrill <jason@redhat.com>
2303
38a7f884 2304 PR c++/60417
2305 * typeck2.c (process_init_constructor_record): Set
2306 CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
2307
fb5c9fe1 2308 PR c++/60415
2309 PR c++/54359
2310 * parser.c (cp_parser_direct_declarator): Set declarator to
2311 cp_error_declarator on invalid qualified-id.
2312
d3f82773 23132014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
2314
2315 PR c++/60376
2316 * parser.c (cp_parser_using_declaration): Early return when
2317 cp_parser_nested_name_specifier errors out.
2318
f7b8dc7f 23192014-03-01 Adam Butcher <adam@jessamine.co.uk>
2320
2321 PR c++/60377
2322 * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
2323 function scope on parse error in function parameter list.
2324
2d791ea6 23252014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
2326
2327 * method.c (implicitly_declare_fn): Remove redundant
2328 DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
2329 * semantics.c (is_instantiation_of_constexpr): Likewise.
2330 * error.c (dump_function_decl): Likewise.
2331
c0e2df1c 23322014-03-01 Jason Merrill <jason@redhat.com>
2333
2334 PR c++/60379
2335 * semantics.c (begin_maybe_infinite_loop): Use
2336 fold_non_dependent_expr_sfinae.
2337
bad99c7d 23382014-02-28 Jason Merrill <jason@redhat.com>
2339
2340 PR c++/58845
2341 * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
2342
ea17a80d 23432014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
2344
2345 PR c++/58610
2346 * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
2347 * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
2348 * lambda.c (maybe_add_lambda_conv_op): Likewise.
2349
87a02518 23502014-02-27 Paolo Carlini <paolo.carlini@oracle.com>
2351
2352 PR c++/60253
2353 * call.c (convert_arg_to_ellipsis): Return error_mark_node after
2354 error_at.
2355
5e584863 23562014-02-27 Jason Merrill <jason@redhat.com>
2357
2358 PR c++/60353
2359 PR c++/55877
2360 * decl2.c (tentative_decl_linkage): Don't mess with functions that
2361 are not yet defined.
2362
a44a3cd2 23632014-02-26 Jason Merrill <jason@redhat.com>
2364
6d579d92 2365 PR c++/60347
2366 PR lto/53808
2367 * class.c (clone_function_decl): Don't note_vague_linkage_fn.
2368 * init.c (build_vtbl_address): Do it here.
2369
734ec290 2370 PR c++/59231
2371 PR c++/11586
2372 PR c++/14710
2373 PR c++/57132
2374 * pt.c (struct warning_sentinel): New.
2375 (tsubst_copy_and_build): Use it instead of
2376 c_inhibit_evaluation_warnings.
2377 * typeck.c (maybe_warn_about_useless_cast): Remove
2378 c_inhibit_evaluation_warnings check.
2379
e5a3303f 2380 PR c++/54440
2381 * pt.c (get_template_parm_index): New.
2382 (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
2383 (process_template_parm): Allow bare packs in template template
2384 parm template parms.
2385 (coerce_template_parameter_pack): Handle fixed template template
2386 parm packs and fixed packs not at the end of the parm list.
2387 (coerce_template_parms): Handle template parm packs not at the end
2388 of the parm list.
2389 (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
2390
bc20c6fa 2391 PR c++/60182
2392 * pt.c (unify): Ignore alias templates when deducing a template
2393 template parameter.
2394
a44a3cd2 2395 PR c++/60345
2396 Revert:
2397 DR 1571
2398 * call.c (reference_binding): Recurse on user-defined conversion.
2399 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
2400
1bb8a24a 24012014-02-25 Jason Merrill <jason@redhat.com>
2402
bccd776e 2403 DR 1571
2404 * call.c (reference_binding): Recurse on user-defined conversion.
2405 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
2406
5ae35a01 2407 * call.c (print_conversion_rejection): Handle n_arg of -2.
2408 (build_user_type_conversion_1): Pass it.
2409
2381bbfa 2410 PR c++/55877
2411 * decl2.c (no_linkage_error): Handle C++98 semantics.
2412 (reset_type_linkage): Move from decl.c.
2413 (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
2414 (bt_reset_linkage_2, reset_decl_linkage): New.
2415 (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
2416 (cp_write_global_declarations): Move condition into no_linkage_error.
2417 * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
2418 * semantics.c (expand_or_defer_fn_1): Factor out
2419 tentative_decl_linkage.
2420 * cp-tree.h: Adjust.
2421
46e37d59 2422 * decl2.c (finish_static_data_member_decl): Diagnose static data
2423 member in unnamed class.
2424 * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
2425
196adb3b 2426 PR lto/53808
2427 * class.c (clone_function_decl): Call note_vague_linkage_fn for
2428 defaulted virtual dtor.
2429
1bb8a24a 2430 DR 1286
2431 PR c++/60328
2432 * pt.c (get_underlying_template): Fix equivalence calculation.
2433
6175df17 24342014-02-25 Adam Butcher <adam@jessamine.co.uk>
2435
bc699cc7 2436 PR c++/60311
2437 * parser.c (function_being_declared_is_template_p): Return false when
2438 processing a template parameter list.
2439 (cp_parser_parameter_declaration_clause): Don't set
2440 auto_is_implicit_function_template_parm_p when processing a
2441 template parameter list.
2442
65466722 2443 * parser.c (synthesize_implicit_template_parm): Inject new template
2444 argument list appropriately when a generic member function
2445 of a class template is declared out-of-line.
2446
6175df17 2447 PR c++/60065
2448 * parser.c (cp_parser_direct_declarator): Don't save and
2449 restore num_template_parameter_lists around call to
2450 cp_parser_parameter_declaration_list.
2451 (function_being_declared_is_template_p): New predicate.
2452 (cp_parser_parameter_declaration_list): Use
2453 function_being_declared_is_template_p as predicate for
2454 inspecting current function template parameter list length
2455 rather than num_template_parameter_lists.
2456
3338d08f 24572014-02-24 Jason Merrill <jason@redhat.com>
2458
53bafd50 2459 PR c++/60146
2460 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
2461 DECL_EXPR initialize a non-class iterator.
2462
3338d08f 2463 PR c++/60312
2464 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
2465
32bfbd38 24662014-02-21 Jason Merrill <jason@redhat.com>
832e3993 2467
1f62da87 2468 PR c++/58170
2469 * parser.c (cp_parser_type_name): Always check dependency.
2470 (cp_parser_type_specifier_seq): Call
2471 cp_parser_parse_and_diagnose_invalid_type_name.
2472
3337ee1c 2473 PR c++/60108
2474 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
2475
a051cbac 2476 PR c++/60185
2477 * parser.c (cp_parser_default_argument): Clear
2478 current_class_ptr/current_class_ref like tsubst_default_argument.
2479
855ff3cc 2480 PR c++/60252
2481 * lambda.c (maybe_resolve_dummy): Check lambda_function rather
2482 than current_binding_level.
2483
0e65aeb6 2484 PR c++/60186
2485 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
2486
f5ca01f6 2487 PR c++/60187
2488 * parser.c (cp_parser_enum_specifier): Call
2489 check_for_bare_parameter_packs.
2490
9f997878 2491 PR c++/59347
2492 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
2493 erroneous typedef.
2494
6648782a 2495 PR c++/60241
2496 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
2497 of the partial instantiation, not the most general template.
2498 (maybe_process_partial_specialization): Reassign everything on
2499 that list.
2500
f875f78b 2501 PR c++/60216
2502 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
2503 (check_explicit_specialization): Don't clone.
2504
7b67d674 2505 PR c++/60219
2506 * pt.c (coerce_template_parms): Bail if argument packing fails.
2507
9781e55e 2508 PR c++/60224
2509 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
2510 Don't get confused by a CONSTRUCTOR that already has a type.
2511
5aaa6124 2512 PR c++/60227
7b92f819 2513 * call.c (build_array_conv): Don't crash on VLA.
2514
a1d8686f 2515 PR c++/60248
2516 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
2517
832e3993 2518 PR c++/60252
2519 * lambda.c (maybe_resolve_dummy): Don't try to capture this
2520 in declaration context.
32bfbd38 2521
2ac1e8f7 2522 DR 1591
2523 PR c++/60051
2524 * pt.c (unify): Only unify if deducible. Handle 0-length list.
2525
3e7e1577 2526 PR c++/60250
2527 * parser.c (cp_parser_direct_declarator): Don't wrap a
2528 type-dependent expression in a NOP_EXPR.
2529
b9c9af4c 2530 PR c++/60251
2531 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
2532
32bfbd38 2533 PR c++/60167
2534 PR c++/60222
2535 PR c++/58606
2536 * parser.c (cp_parser_template_argument): Restore dereference.
2537 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
2538 (process_partial_specialization): Handle deref.
2539 (unify): Likewise.
2540
e966f4c3 25412014-02-21 Adam Butcher <adam@jessamine.co.uk>
2542
2543 PR c++/60052
2544 PR c++/60053
2545 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
2546 implicit_template_scope upon leaving an out-of-line generic member
2547 function definition.
2548
591f4417 25492014-02-20 Kai Tietz <ktietz@redhat.com>
2550
c3d43267 2551 PR c++/58873
2552 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
2553 valued type argument as error_mark_node.
2554
591f4417 2555 PR c++/58835
2556 * semantics.c (finish_fname): Handle error_mark_node.
2557
26350918 25582014-02-19 Jason Merrill <jason@redhat.com>
2559
2560 PR c++/60046
2561 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
2562 spec from template context.
2563
0267943e 25642014-02-19 Jakub Jelinek <jakub@redhat.com>
2565
7cef2e5a 2566 PR debug/56563
2567 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
2568 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
2569
0267943e 2570 PR c++/60267
2571 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
2572
d5c7b365 25732014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
2574
2575 PR c++/60225
2576 * semantics.c (ensure_literal_type_for_constexpr_object): Use
2577 strip_array_types.
2578
25792014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
2580
2581 PR c++/60215
2582 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
2583 During error recovery allow_non_constant may be false.
2584
040882d0 25852014-02-18 Adam Butcher <adam@jessamine.co.uk>
2586
2587 PR c++/60190
2588 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
2589 scope whenever a template parameter list has been started, independent
2590 of whether the function call operator was well-formed or not.
2591
9460e325 2592 PR c++/60064
2593 * parser.c (cp_parser_member_declaration): Pop fully implicit template
2594 scope for generic friend declarations as well as for non-friends.
2595
de782278 25962014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
2597
2598 PR c++/60047
2599 * method.c (implicitly_declare_fn): A constructor of a class with
2600 virtual base classes isn't constexpr (7.1.5p4).
2601
ea7d8c7a 26022014-02-05 Jan Hubicka <hubicka@ucw.cz
2603
2604 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
2605
3fb71aed 26062014-02-05 Jakub Jelinek <jakub@redhat.com>
2607
2608 PR c++/58703
2609 * parser.c (cp_parser_omp_declare_reduction): Save and free
2610 declarator_obstack.
2611
caf62483 26122014-02-03 Marc Glisse <marc.glisse@inria.fr>
2613
2614 PR c++/53017
2615 PR c++/59211
2616 * tree.c (handle_init_priority_attribute): Call default_conversion on
2617 the attribute argument.
2618
d86e71c1 26192014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
2620
2621 PR c++/58871
2622 * method.c (synthesized_method_walk): If vbases is non-null but
2623 is_empty is true, likewise don't worry about the virtual bases.
2624
3da3051d 26252014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
2626
2627 PR c++/51219
2628 * typeck2.c (process_init_constructor_record): Just skip unnamed
2629 bit-fields.
2630
b81ddff2 26312014-01-31 Jason Merrill <jason@redhat.com>
2632
b7ba1ea4 2633 PR c++/59469
2634 * pt.c (mark_decl_instantiated): Call mark_needed.
2635
3d7d57de 2636 PR c++/58672
2637 * decl2.c (handle_tls_init): Handle null init fn.
2638
b81ddff2 2639 PR c++/55800
2640 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
2641
7ed7b5b0 26422014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
2643
2644 PR c++/59082
2645 * class.c (build_vfield_ref): Early return error_mark_node if
2646 TYPE_VFIELD (type) is null.
2647 (build_base_path): Check return value of build_vfield_ref.
2648
5dee5323 26492014-01-31 Jason Merrill <jason@redhat.com>
2650
3fc9e843 2651 PR c++/59646
2652 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
2653 [ck_list]: Check for error_mark_node.
2654 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
2655
5dee5323 2656 PR c++/57043
2657 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
2658 during partial ordering.
2659
ec761d5a 26602014-01-31 Marek Polacek <polacek@redhat.com>
2661
2662 PR c/59963
2663 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
2664
79d65ad6 26652014-01-30 Jason Merrill <jason@redhat.com>
2666
2667 PR c++/57899
2668 * cp-tree.h (struct saved_scope): Add x_local_specializations.
2669 (local_specializations): New macro.
2670 * pt.c (local_specializations): Remove variable.
2671
229c9550 26722014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
2673
2674 PR c++/58708
2675 * parser.c (make_string_pack): Use double_int::from_buffer.
2676
22a75734 26772014-01-30 Marek Polacek <polacek@redhat.com>
2678
2679 PR c/59940
2680 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
2681 input_location.
2682 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
2683 with input_location.
2684 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
2685 loc parameter.
2686
fcd59115 26872014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
2688
2689 PR c++/58843
2690 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
2691
aa005ede 26922014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
2693
2694 PR c++/58649
2695 * pt.c (lookup_template_class_1): Check start_enum return value
2696 for error_mark_node.
2697
fbbaa325 26982014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
2699
2700 * decl.c (duplicate_decls, typename_hash, typename_compare):
2701 Use TYPE_IDENTIFIER.
2702 * error.c (dump_type): Likewise.
2703 * mangle.c (dump_substitution_candidates): Likewise.
2704
53874764 27052014-01-30 Jason Merrill <jason@redhat.com>
2706
2707 PR c++/59633
2708 * decl2.c (attributes_naming_typedef_ok): New.
2709 * cp-tree.h: Declare it.
2710 * decl.c (grokdeclarator): Check it.
2711 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
2712
35f711cd 27132014-01-29 Jason Merrill <jason@redhat.com>
2714
2a41b9a0 2715 PR c++/59707
2716 * call.c (add_builtin_candidate): Catch dependent types.
2717
dc0fdc54 2718 PR c++/59989
2719 * pt.c (expand_template_argument_pack): Correct
2720 non_default_args_count calculation.
2721
17dc58c1 2722 PR c++/58466
2723 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
2724
35f711cd 2725 PR c++/59956
2726 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
2727 have a friend template in a class template.
2728 * pt.c (tsubst_friend_function): Look through it.
2729 (push_template_decl_real): A friend member template is
2730 primary.
2731
55a18590 27322014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
2733
2734 PR c++/58846
2735 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
2736 == error_mark_node.
2737
9e31b03d 27382014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
2739
2740 PR c++/58674
2741 * pt.c (instantiate_template_1): Check for error_mark_node the second
2742 argument too.
2743
4b136559 27442014-01-29 Jason Merrill <jason@redhat.com>
2745
7663e4b8 2746 PR c++/59916
2747 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
2748 cdtor_returns_this case.
2749
4b136559 2750 PR c++/59315
2751 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
2752
dac04683 27532014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
2754
2755 PR c++/58702
2756 * semantics.c (finish_omp_reduction_clause): Check type for
2757 error_mark_node.
2758
18bb3b80 27592014-01-28 Jason Merrill <jason@redhat.com>
2760
bdd3ea90 2761 PR c++/59791
2762 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
2763 (tsubst_copy): Use it if lookup fails.
2764
89bba5f0 2765 PR c++/59818
2766 * pt.c (tsubst_function_type): Make sure we keep the same function
2767 quals.
2768
2836a8df 2769 PR c++/58701
2770 * semantics.c (build_anon_member_initialization): Stop walking
2771 when we run out of COMPONENT_REFs.
2772
2c860859 2773 PR c++/58632
2774 * decl.c (lookup_and_check_tag): Ignore template parameters if
2775 scope == ts_current.
2776 * pt.c (check_template_shadow): Don't complain about the injected
2777 class name.
2778
bea27920 2779 * decl.c (duplicate_decls): Tweak.
2780
18bb3b80 2781 PR c++/53756
2782 * mangle.c (write_unqualified_name): Handle operator auto.
2783
5e5466e3 27842014-01-27 Jason Merrill <jason@redhat.com>
2785
237dc314 2786 PR c++/59823
2787 Core DR 1138
2788 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
2789 list-initialization. A conversion to rvalue ref that involves
2790 an lvalue-rvalue conversion is bad.
2791 (convert_like_real): Give helpful error message.
2792
4144f6a4 2793 PR c++/54652
2794 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
2795
db5aa3d0 2796 PR c++/58504
2797 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
2798 types.
2799
dfd5506e 2800 PR c++/58606
2801 * pt.c (template_parm_to_arg): Call convert_from_reference.
2802 (tsubst_template_arg): Don't strip reference refs.
2803
956043e3 2804 PR c++/58639
2805 * call.c (build_aggr_conv): Reject value-initialization of reference.
2806
ee825f23 2807 PR c++/58812
2808 PR c++/58651
2809 * call.c (convert_like_real): Give helpful error about excess braces
2810 for ck_rvalue of scalar type.
2811
7e28650c 2812 Core DR 1288
2813 * call.c (reference_binding): Only elide braces if the single
2814 element is reference-related.
2815
caccde3c 2816 PR c++/58814
2817 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
2818 stabilizing.
2819
b0d3b0d8 2820 PR c++/58837
2821 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
2822 FUNCTION_DECL.
2823
5e5466e3 2824 PR c++/59097
2825 * decl.c (compute_array_index_type): Don't call
2826 maybe_constant_value for a non-integral expression.
2827
a89e6c15 28282014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
2829
2830 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
2831 flag_cilkplus.
2832 * cp-gimplify.c (cp_genericize): Likewise.
2833 * decl.c (grokfndecl): Likewise.
2834 * parser.c (cp_parser_postfix_expression): Likewise.
2835 (cp_parser_postfix_open_square_expression): Likewise.
2836 (cp_parser_direct_declarator): Likewise.
2837 (is_cilkplus_vector_p): Likewise.
2838 (cp_parser_omp_clause_name): Likewise.
2839 (cp_parser_omp_all_clauses): Likewise.
2840 * pt.c (apply_late_template_attributes): Likewise.
2841 * typeck.c (cp_build_array_ref): Likewise.
2842 (cp_build_compound_expr): Likewise.
2843 (check_return_expr): Likewise.
2844
8feda8f8 28452014-01-24 Jason Merrill <jason@redhat.com>
2846
460ea83e 2847 PR c++/58550
2848 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
2849 c++11 into error.
2850
8feda8f8 2851 PR c++/59886
2852 PR c++/59659
2853 * typeck2.c (process_init_constructor_array): Don't create
2854 RANGE_EXPR yet.
2855
e5827c8e 28562014-01-24 Jakub Jelinek <jakub@redhat.com>
2857
2858 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
2859 handling for RANGE_ARRAY case.
2860
34e387b0 28612014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
2862
2863 PR c++/57524
2864 * name-lookup.c (push_using_directive): Use timevar_cond_start.
2865
2623625f 28662014-01-23 Marek Polacek <polacek@redhat.com>
2867
2868 PR c/59846
2869 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
2870
46da3601 28712014-01-23 Marek Polacek <polacek@redhat.com>
2872
2873 PR c/58346
2874 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
2875 an empty aggregate.
2876
ba1dc756 28772014-01-23 Jason Merrill <jason@redhat.com>
2878
9ea3e924 2879 PR c++/55189
2880 * cp-tree.h (struct language_function): Add infinite_loop and
2881 infinite_loops.
2882 (current_function_infinite_loop): New.
2883 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
2884 (break_maybe_infinite_loop): New.
2885 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
2886 (finish_do_stmt, finish_for_cond, finish_for_stmt)
2887 (begin_range_for_stmt): Use them.
2888 * decl.c (finish_function): Don't warn about missing return
2889 if current_function_infinite_loop.
2890 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
2891 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
2892
ba1dc756 2893 * call.c (build_op_delete_call): Use make_tree_vector and
2894 release_tree_vector.
2895
199e0e60 28962014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
2897
2898 PR c++/58980
2899 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
2900 nested_name_specifier.
2901
7e005ab5 29022014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
2903
2904 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
2905 see if there is an attribute after function decl. If so, then
2906 parse them now.
2907 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
2908 enabled function late parsing.
2909 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
2910 attribute for a SIMD-enabled function.
2911 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
2912 the function is used by SIMD-enabled function (indicated by NULL
2913 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
2914 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
2915 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
2916 vectorlength clause in SIMD-enabled function and #pragma SIMD's
2917 vectorlength clause. Added a new bool parameter to differentiate
2918 between the two.
2919 (cp_parser_cilk_simd_fn_vector_attrs): New function.
2920 (is_cilkplus_vector_p): Likewise.
2921 (cp_parser_late_parsing_elem_fn_info): Likewise.
2922 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
2923 and "vectorlength" clauses when Cilk Plus is enabled.
2924 (cp_parser_omp_clause_linear): Added a new parameter of type bool
2925 and emit a sorry message when step size is a parameter.
2926 * parser.h (cp_parser::cilk_simd_fn_info): New field.
2927 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
2928 flag_openmp.
2929 * pt.c (apply_late_template_attributes): Likewise.
2930
d6779b5f 29312014-01-23 Jakub Jelinek <jakub@redhat.com>
2932
2933 PR middle-end/58809
2934 * semantics.c (finish_omp_reduction_clause): Reject
2935 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
2936
fae539a5 29372014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
2938
2939 PR c++/59482
2940 * parser.c (cp_parser_class_head): Push the class before parsing
2941 the base-clause, pop after it.
2942
c9743c6a 29432014-01-20 Eric Botcazou <ebotcazou@adacore.com>
2944
2945 * decl2.c (cpp_check): Revert prototype change.
2946
06422b55 29472014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
2948
2949 PR c++/59270
2950 PR c++/58811
2951 * init.c (build_value_init_noctor): Don't pass error_mark_node to
2952 build_value_init.
2953
60508649 29542014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
2955
2956 PR c++/59269
2957 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
2958 only when errorcount == 0.
2959
0116c9f8 29602014-01-17 Marek Polacek <polacek@redhat.com>
2961
2962 PR c++/59838
2963 * cvt.c (ocp_convert): Don't segfault on non-existing
2964 ENUM_UNDERLYING_TYPE.
2965
5b5af642 29662014-01-16 Jason Merrill <jason@redhat.com>
2967
2968 PR c++/59821
2969 * tree.c (bot_manip): Update the location of builtin_LINE and
2970 builtin_FILE calls.
2971
7e173c71 29722014-01-14 Jason Merrill <jason@redhat.com>
2973
2974 PR c++/59659
2975 * typeck2.c (massage_init_elt): New.
2976 (process_init_constructor_record)
2977 (process_init_constructor_union): Use it.
2978 (process_init_constructor_array): Use it. Use RANGE_EXPR.
2979 (split_nonconstant_init_1): Handle it.
2980 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
2981
0bc789fc 29822014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
2983
2984 PR c++/59631
2985 * parser.c (cp_parser_postfix_expression): Added a new if-statement
2986 and replaced an existing if-statement with else-if statement.
2987 Changed an existing error message wording to match the one from the C
2988 parser.
2989
9d78c80e 29902014-01-08 Jason Merrill <jason@redhat.com>
2991
2992 PR c++/59614
2993 * class.c (abi_tag_data): Add tags field.
2994 (check_abi_tags): Initialize it.
2995 (find_abi_tags_r): Support collecting missing tags.
2996 (mark_type_abi_tags): Don't look at template args.
2997 (inherit_targ_abi_tags): New.
2998 (check_bases_and_members): Use it.
2999 * cp-tree.h (ABI_TAG_IMPLICIT): New.
3000 * mangle.c (write_abi_tags): Check it.
3001
580d697f 30022014-01-07 Jason Merrill <jason@redhat.com>
3003
7196927b 3004 PR c++/58856
3005 * pt.c (num_innermost_template_parms): New.
3006 (get_underlying_template): Use it.
3007
580d697f 3008 PR c++/58965
3009 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
3010
7664f7a0 30112014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
3012
3013 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
3014 the letter of 20.11.6 about Base and Derived naming the same
3015 class type modulo cv-qualifiers.
3016
93b82835 30172014-01-06 Adam Butcher <adam@jessamine.co.uk>
3018
3019 PR c++/59635
22d5a519 3020 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
93b82835 3021 function as unimplemented for generic lambdas with varargs.
3022
06e996cd 3023 PR c++/59636
22d5a519 3024 * parser.c (cp_parser_template_parameter): Early out with
06e996cd 3025 error_mark_node if parameter declaration was not parsed.
3026
4d901bc2 3027 PR c++/59629
22d5a519 3028 * parser.c (cp_parser_lambda_expression): Save/reset/restore
4d901bc2 3029 auto_is_implicit_function_template_parm_p around lambda body.
3030
5afc8ab4 3031 PR c++/59638
22d5a519 3032 * parser.c (cp_parser_init_declarator): Undo fully implicit
5afc8ab4 3033 template parameter list when declarator is not a function.
3034
9372a89d 30352014-01-03 Marc Glisse <marc.glisse@inria.fr>
3036
3037 PR c++/58950
3038 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
3039
04e0495a 30402014-01-03 Tobias Burnus <burnus@net-b.de>
3041
3042 PR c++/58567
3043 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
3044
4a7973e1 30452014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
3046
3047 Core DR 1442
3048 PR c++/59165
3049 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
3050 as include_std to perform_koenig_lookup.
3051 (cp_parser_postfix_expression): Adjust.
3052 * pt.c (tsubst_copy_and_build): Likewise.
3053 * semantics.c (perform_koenig_lookup): Remove bool parameter.
3054 (omp_reduction_lookup): Adjust.
3055 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
3056 (lookup_arg_dependent): Likewise.
3057 (lookup_function_nonclass): Adjust.
3058 * name-lookup.h: Adjust declaration.
3059 * cp-tree.h: Likewise.
3060
7178d1ea 30612014-01-02 Marc Glisse <marc.glisse@inria.fr>
3062
3063 PR c++/59087
3064 * parser.c (cp_parser_userdef_numeric_literal): Mention
3065 -fext-numeric-literals in the message.
3066
37c19cb6 30672014-01-02 Marc Glisse <marc.glisse@inria.fr>
3068
3069 PR c++/59641
3070 * call.c (build_conditional_expr_1): Check the return value of
3071 force_rvalue.
3072
cdfa9d87 30732014-01-02 Marc Glisse <marc.glisse@inria.fr>
3074
3075 * call.c (convert_like_real): Check complain.
3076
5a5f1b48 30772014-01-02 Marc Glisse <marc.glisse@inria.fr>
3078
3079 PR c++/59378
3080 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
3081 in templates.
3082
3aea1f79 30832014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
3084
3085 Update copyright years
3086
e4f22041 30872014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
3088
3089 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
3090 the standard form for the copyright notice.
7dfbd804 3091\f
b671739d 3092Copyright (C) 2014 Free Software Foundation, Inc.
7dfbd804 3093
3094Copying and distribution of this file, with or without modification,
3095are permitted in any medium without royalty provided the copyright
3096notice and this notice are preserved.