]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
move many gc hashtab to hash_table
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
2a22f99c
TS
12014-10-12 Trevor Saunders <tsaunders@mozilla.com>
2
3 * cp-gimplify.c, cp-tree.h, decl.c, mangle.c, name-lookup.c,
4 pt.c, semantics.c, tree.c, typeck2.c: Use hash_table instead of
5 hashtab.
6
cfb71cad
JM
72014-10-10 Jason Merrill <jason@redhat.com>
8
d1522e8f
JM
9 PR c++/62115
10 * class.c (build_base_path): Preserve rvalueness.
11 * call.c (convert_like_real) [ck_base]: Let convert_to_base handle &/*.
12 * rtti.c (build_dynamic_cast_1): Call convert_to_reference later.
13
51115027
JM
14 PR c++/63194
15 * method.c (defaulted_late_check): Call maybe_instantiate_noexcept.
16
c6250f73
JM
17 * method.c (implicitly_declare_fn): Handle deleted lambda default
18 ctor and copy assop here.
19 * class.c (check_bases_and_members): Not here.
20 (add_implicitly_declared_members): And don't set
21 CLASSTYPE_LAZY_MOVE_ASSIGN.
22
cfb71cad
JM
23 * semantics.c (finish_id_expression): Check for error_mark_node.
24
548cb3d7
JM
252014-10-09 Jason Merrill <jason@redhat.com>
26
27 PR c++/63207
28 * semantics.c (outer_var_p): Non-static.
29 (process_outer_var_ref): Split out from finish_id_expression.
30 * pt.c (tsubst_copy_and_build): Call them.
31 * cp-tree.h: Declare them.
32
3369b919
PC
332014-10-09 Paolo Carlini <paolo.carlini@oracle.com>
34
35 * semantics.c (check_constexpr_ctor_body_1): New.
36 (check_constexpr_ctor_body): Use it; add bool parameter.
37 (build_data_member_initialization): Handle BIND_EXPR and
38 USING_STMT in the main conditional.
39 (build_constexpr_constructor_member_initializers): Do not
40 handle BIND_EXPR here.
41 (constexpr_fn_retval): Handle BIND_EXPR in the switch.
42 (massage_constexpr_body): Don't do it here.
43 * parser.c (cp_parser_ctor_initializer_opt_and_function_body):
44 Adjust check_constexpr_ctor_body call.
45 (cp_parser_compound_statement): Do not pedwarn for compound-statement
46 in constexpr function in C++14 mode.
47 * cp-tree.h (check_constexpr_ctor_body): Update declaration.
48
96e780c0
JM
492014-10-09 Jason Merrill <jason@redhat.com>
50
ea4e4e6e
JM
51 PR c++/63309
52 * parser.c (cp_parser_class_head): push_template_decl for members
53 of templates, too.
54
5d4fffb8
JM
55 PR c++/63415
56 * pt.c (value_dependent_expression_p) [CONSTRUCTOR]: Check the type.
57 (iterative_hash_template_arg): Likewise.
58
96e780c0
JM
59 PR c++/63437
60 * cp-tree.h (REF_PARENTHESIZED_P): Also allow INDIRECT_REF.
61 * semantics.c (force_paren_expr): And set it.
62 * typeck.c (check_return_expr): And handle it.
63
d0ff1cb4
MG
642014-10-09 Marc Glisse <marc.glisse@inria.fr>
65
66 * decl.c (grokdeclarator): constexpr only implies const in C++11.
67
9efe5fbd
JM
682014-10-08 Jason Merrill <jason@redhat.com>
69
a41bb2c9
JM
70 PR c++/63405
71 * pt.c (tsubst_pack_expansion): Limit simple expansion to type packs.
72
024da309
JM
73 PR c++/63485
74 * tree.c (build_cplus_array_type): Look for a type with no
75 typedef-name or attributes.
76
9efe5fbd
JM
77 * call.c (call_copy_ctor): New.
78 (build_over_call): Use it to avoid infinite recursion on invalid code.
79
cf5986df
JM
802014-10-07 Jason Merrill <jason@redhat.com>
81
82 * tree.c (cp_tree_equal) [TRAIT_EXPR]: Use cp_tree_equal for type2.
83
2a8ef767
ESR
842014-10-06 Edward Smith-Rowland <3dw4rd@verizon.net>
85
86 * cp/parser.c: Allow [[deprecated]] for C++11. Issue a pedwarn.
87
fbf833b7
PC
882014-10-06 Paolo Carlini <paolo.carlini@oracle.com>
89
90 PR c++/55250
91 * semantics.c (check_constexpr_bind_expr_vars): New.
92 (check_constexpr_ctor_body, massage_constexpr_body): Use it.
93 (build_constexpr_constructor_member_initializers): Handle
94 BIND_EXPR in the main conditional.
95
f5059223
MW
962014-10-02 Mark Wielaard <mjw@redhat.com>
97
98 PR debug/63239
99 * cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
100 (cp_function_decl_deleted_p): New prototype.
101 * cp-objcp-common.c (cp_function_deleted_p): New function.
102
3c9aabbd
MG
1032014-10-03 Marc Glisse <marc.glisse@inria.fr>
104
105 PR c++/54427
106 PR c++/57198
107 PR c++/58845
108 * typeck.c (cp_build_binary_op): save_expr after convert to save
109 redundant operations.
110 [TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR]: Handle vectors.
111 (cp_build_unary_op) [TRUTH_NOT_EXPR]: Likewise.
112
2bd8ca21
JM
1132014-10-03 Jason Merrill <jason@redhat.com>
114
b2cb98ed
JM
115 * decl.c (start_decl): Complain about static/thread_local vars
116 in constexpr function.
117 (check_for_uninitialized_const_var): Also uninitialized vars.
118 * parser.c (cp_parser_jump_statement): And gotos.
119 (cp_parser_asm_operand_list): And asm.
120 (cp_parser_try_block): And try.
121 * semantics.c (ensure_literal_type_for_constexpr_object): And
122 non-literal.
123
e01a49c1
JM
124 * semantics.c (constexpr_fn_retval): Ignore declarations in C++14.
125 (var_in_constexpr_fn): New.
126 (cxx_eval_constant_expression): Look into DECL_INITIAL.
127 (potential_constant_expression_1): Allow constexpr-local vars.
128
2bd8ca21
JM
129 PR c++/63362
130 * tree.c (strip_typedefs): Handle TREE_LIST.
131
2a931365
PC
1322014-10-03 Paolo Carlini <paolo.carlini@oracle.com>
133
134 * parser.c (cp_parser_assignment_expression,
135 cp_parser_constant_expression): Add default arguments.
136 (cp_parser_primary_expression,
137 cp_parser_postfix_open_square_expression,
138 cp_parser_parenthesized_expression_list,
139 cp_parser_question_colon_clause,
140 cp_parser_expression, cp_parser_constant_expression,
141 cp_parser_label_for_labeled_statement, cp_parser_static_assert,
142 cp_parser_template_argument, cp_parser_enumerator_definition,
143 cp_parser_member_declaration, cp_parser_constant_initializer,
144 cp_parser_noexcept_specification_opt, cp_parser_throw_expression,
145 cp_parser_std_attribute_spec, cp_parser_objc_message_args,
146 cp_parser_objc_class_ivars, cp_parser_omp_clause_collapse,
147 cp_parser_omp_clause_aligned, cp_parser_omp_clause_safelen,
148 cp_parser_omp_clause_simdlen, cp_parser_omp_clause_dist_schedule,
149 cp_parser_omp_for_incr, cp_parser_omp_for_loop_init,
150 cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear): Adjust.
151
04bbdb1d
PC
1522014-10-02 Paolo Carlini <paolo.carlini@oracle.com>
153
154 PR c++/53025
155 * cp-tree.h (struct saved_scope): Add noexcept_operand.
156 (cp_noexcept_operand): Define.
157 * call.c (build_over_call): Use it.
158 * parser.c (cp_parser_unary_expression, [RID_NOEXCEPT]): Likewise.
159 * pt.c (tsubst_copy_and_build, [NOEXCEPT_EXPR]): Likewise.
160
a710f1f8
JM
1612014-10-01 Jason Merrill <jason@redhat.com>
162
662bb4b8
JM
163 PR c++/63362
164 * method.c (constructible_expr): Handle value-init of non-class.
165 * parser.c (cp_parser_trait_expr): Allow pack expansion.
166 * pt.c (tsubst_copy_and_build): Handle pack expansion.
167
a710f1f8
JM
168 PR c++/63362
169 * class.c (type_has_non_user_provided_default_constructor): Rename
170 from type_has_user_provided_default_constructor, reverse sense.
171 (default_init_uninitialized_part, explain_non_literal_class): Adjust.
172 (check_bases_and_members): Set TYPE_HAS_COMPLEX_DFLT.
173 * call.c (build_new_method_call_1): Adjust.
174 * cp-tree.h: Adjust.
175 * decl.c (grok_special_member_properties): Don't set
176 TYPE_HAS_COMPLEX_DFLT.
177 * init.c (build_value_init_noctor): Don't use
178 type_has_user_provided_default_constructor.
179
8d0cf15e
JM
1802014-09-30 Jason Merrill <jason@redhat.com>
181
dd5d5481
JM
182 * cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_ASSIGNABLE and
183 CPTK_IS_TRIVIALLY_CONSTRUCTIBLE.
184 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
185 * parser.c (cp_parser_primary_expression): Likewise.
186 (cp_parser_trait_expr): Likewise. Handle variadic trait.
187 * semantics.c (trait_expr_value): Likewise.
188 (finish_trait_expr): Likewise.
189 (check_trait_type): Handle variadic trait. Return bool.
190 * method.c (build_stub_object): Add rvalue reference here.
191 (locate_fn_flags): Not here.
192 (check_nontriv, assignable_expr, constructible_expr): New.
193 (is_trivially_xible): New.
194
b752325e
JM
195 * cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_COPYABLE.
196 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
197 * parser.c (cp_parser_primary_expression): Likewise.
198 (cp_parser_trait_expr): Likewise.
199 * semantics.c (trait_expr_value): Likewise.
200 (finish_trait_expr): Likewise.
201
32f3d032
JM
202 * method.c (build_stub_object): Use CONVERT_EXPR.
203 * tree.c (build_dummy_object): Likewise.
204 (is_dummy_object): Adjust.
205
8d0cf15e
JM
206 * cp-tree.h (cp_trait_kind): Remove CPTK_IS_CONVERTIBLE_TO.
207 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
208 * semantics.c (trait_expr_value): Likewise.
209 (finish_trait_expr): Likewise.
210 * parser.c (cp_parser_primary_expression): Likewise.
211 (cp_parser_trait_expr): Likewise. Remove redundant grokdeclarator.
212
75a0d320
PC
2132014-09-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
214
215 PR c++/16564
216 * error.c (print_instantiation_context): Delete.
217 * typeck2.c (build_x_arrow): Record location when pushing
218 template instantiation.
219 * pt.c (push_tinst_level): Make it a wrapper around ...
220 (push_tinst_level_loc): ... this. New function. Make excessive
221 template instantiation depth a fatal error. Record location. Use
222 bool as return type.
223 (instantiate_pending_templates): Make excessive
224 template instantiation depth a fatal error.
225 (problematic_instantiation_changed): Use bool as return type.
226 * cp-tree.h (print_instantiation_context): Delete.
227 (push_tinst_level): Update declaration.
228 (problematic_instantiation_changed): Likewise.
229 (push_tinst_level_loc): New.
230
f764304c
RB
2312014-09-29 Richard Biener <rguenther@suse.de>
232
233 * typeck.c (enum_cast_to_int): Use CONVERT_EXPR_P to check
234 for conversions.
235
00eaaa50
JM
2362014-09-26 Jason Merrill <jason@redhat.com>
237
238 * mangle.c (find_substitution): Use write_abi_tags.
239
6597738a
MP
2402014-09-25 Marek Polacek <polacek@redhat.com>
241
242 PR c++/61945
243 * class.c (warn_hidden): Check for FUNCTION_DECL.
244
d90c0a59
JJ
2452014-09-25 Jakub Jelinek <jakub@redhat.com>
246
247 PR c++/63249
248 * semantics.c (handle_omp_array_sections_1): Call mark_rvalue_use
249 on low_bound and length.
250
00de328a
AH
2512014-09-24 Aldy Hernandez <aldyh@redhat.com>
252
253 * class.c, decl.c, optimize.c: Rename all instances of
254 DECL_ABSTRACT to DECL_ABSTRACT_P.
255
083e891e
MP
2562014-09-24 Marek Polacek <polacek@redhat.com>
257
258 PR c/61405
259 PR c/53874
260 * semantics.c (finish_switch_cond): Call unlowered_expr_type.
261 * tree.c (bot_manip): Add default case.
262 * parser.c (cp_parser_primary_expression): Cast the controlling
263 expression of a switch to an int.
264 (cp_parser_unqualified_id): Likewise.
265
9a9f3c8f
PC
2662014-09-23 Paolo Carlini <paolo.carlini@oracle.com>
267
268 PR c++/61857
269 * parser.c (cp_parser_skip_to_closing_square_bracket,
270 cp_parser_array_designator_p): New.
271 (cp_parser_initializer_list): Use the latter.
272
a546927c
JM
2732014-09-22 Jason Merrill <jason@redhat.com>
274
6863c41a
JM
275 * semantics.c (finish_non_static_data_member): In diagnostic, give
276 error at point of use and note at point of declaration.
277
a546927c
JM
278 PR c++/63320
279 PR c++/60463
280 PR c++/60755
281 * lambda.c (maybe_resolve_dummy, lambda_expr_this_capture): Handle
282 not finding 'this'.
283
05424ee6
PC
2842014-09-22 Paolo Carlini <paolo.carlini@oracle.com>
285
286 PR c++/62219
287 * pt.c (check_default_tmpl_args): Check LAMBDA_FUNCTION_P.
288
aed67566
JM
2892014-09-22 Jason Merrill <jason@redhat.com>
290
291 * decl.c (poplevel): Don't warn about unused vars in template scope.
292 * error.c (dump_decl): Handle variable templates.
293
1dc7b1f2
JM
2942014-09-20 Jason Merrill <jason@redhat.com>
295
296 PR c++/62017
297 * decl.c (begin_destructor_body): Only clobber the as-base part of
298 *this.
299
207fd212
JM
3002014-09-19 Jason Merrill <jason@redhat.com>
301
e2254932
JM
302 PR c++/61392
303 * mangle.c (write_expression): Use unresolved-name mangling for
304 DR850 case.
305
207fd212
JM
306 PR c++/61465
307 * call.c (convert_like_real) [ck_identity]: Call mark_rvalue_use
308 after pulling out an element from a CONSTRUCTOR.
309
bce16b88
JJ
3102014-09-18 Jakub Jelinek <jakub@redhat.com>
311
312 PR c++/63248
313 * semantics.c (finish_omp_clauses): Don't call cp_omp_mappable_type
314 on type of type dependent expressions, and don't call it if
315 handle_omp_array_sections has kept TREE_LIST because something
316 was type dependent.
317 * pt.c (tsubst_expr) <case OMP_TARGET, case OMP_TARGET_DATA>:
318 Use keep_next_level, begin_omp_structured_block and
319 finish_omp_structured_block instead of push_stmt_list and
320 pop_stmt_list.
321
abce9208
PC
3222014-09-18 Paolo Carlini <paolo.carlini@oracle.com>
323
324 PR c++/62232
325 * class.c (finish_struct_1): Do not -Wnon-virtual-dtor warn
326 for final class types.
327
e9305042
JM
3282014-09-15 Jason Merrill <jason@redhat.com>
329
330 * pt.c (lookup_template_class_1): Splice out abi_tag attribute if
331 necessary. Call inherit_targ_abi_tags here.
332 * class.c (check_bases_and_members): Not here.
333 (inherit_targ_abi_tags): Check CLASS_TYPE_P.
334 * cp-tree.h: Declare inherit_targ_abi_tags.
335
6a3d8ef0
VV
3362014-09-15 Ville Voutilainen <ville.voutilainen@gmail.com>
337
338 Do not diagnose lambda default arguments in c++14 modes.
339 * parser.c (cp_parser_lambda_declarator_opt): Make the pedwarn
340 conditional.
341
717c4789
JJ
3422014-09-15 Jakub Jelinek <jakub@redhat.com>
343
344 * Make-lang.in (check_g++_parallelize): Change to just an upper bound
345 number.
346
05f30b86
MP
3472014-09-13 Marek Polacek <polacek@redhat.com>
348
349 PR c++/60862
350 * parser.c (cp_parser_postfix_expression) <case CPP_OPEN_PAREN>: Set
351 location of a call expression.
352
4ee28eb7
JM
3532014-09-11 Jason Merrill <jason@redhat.com>
354
355 PR c++/63201
356 * decl.c (start_decl): Handle specialization of member variable
357 template.
358 * pt.c (check_explicit_specialization): Adjust error.
359
450bfd7d
PC
3602014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
361
362 PR c++/61489
363 * typeck2.c (process_init_constructor_record): Do not warn about
364 missing field initializer if EMPTY_CONSTRUCTOR_P (init).
365
c9e8561e
JM
3662014-09-11 Jason Merrill <jason@redhat.com>
367
368 PR c++/63139
369 * pt.c (tsubst_pack_expansion): Simplify substitution into T....
370 (tsubst): Don't throw away PACK_EXPANSION_EXTRA_ARGS.
371
ca78482d
JM
3722014-09-10 Jason Merrill <jason@redhat.com>
373
374 PR c++/61659
375 * decl.c (grokfndecl): Don't set DECL_COMDAT on static inlines.
376 (duplicate_decls, start_decl): Likewise.
377 * pt.c (check_explicit_specialization): Likewise.
378 (push_template_decl_real): Or static templates.
379
cb303719
JM
3802014-09-08 Jason Merrill <jason@redhat.com>
381
8591575f
JM
382 * typeck.c (build_class_member_access_expr): Move
383 -Winvalid-offsetof code...
384 * semantics.c (finish_offsetof): ...here.
385 * parser.c (cp_parser_builtin_offsetof): Remember the location of
386 the type argument.
387 * pt.c (tsubst_copy_and_build) [OFFSETOF_EXPR]: Preserve it.
388
cb303719
JM
389 PR c++/62255
390 * pt.c (instantiate_decl): Handle recursive instantiation of
391 static data member.
392
ed23bf8b
JM
3932014-09-05 Jason Merrill <jason@redhat.com>
394
395 PR c++/62659
396 * semantics.c (potential_constant_expression_1): Handle un-folded
397 pointer to member constants.
398
382995f5
MT
3992014-09-04 Markus Trippelsdorf <markus@trippelsdorf.de>
400
401 PR ipa/61659
402 * decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on
403 newdecl, not olddecl.
404
cec362c9
PC
4052014-09-02 Paolo Carlini <paolo.carlini@oracle.com>
406
407 DR 1453
408 * class.c (check_field_decls): A class of literal type cannot have
409 volatile non-static data members and base classes.
410 (explain_non_literal_class): Update.
411
9a771876
JJ
4122014-09-02 Jakub Jelinek <jakub@redhat.com>
413 Balaji V. Iyer <balaji.v.iyer@intel.com>
414 Igor Zamyatin <igor.zamyatin@intel.com>
415
416 * cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition
417 simplified.
418 * parser.c (cp_parser_cilk_for): New function.
419 (cp_parser_cilk_grainsize): Likewise.
420 (cp_parser_statement): Added RID_CILK_FOR case.
421 (cp_parser_omp_for_cond): Added CILK_FOR check.
422 (cp_parser_omp_for_loop_init): Change function argument to accept
423 tree_code instead just a bool flag; change the check to use that
424 tree_code; check for initialization declaration in case of Cilk_for.
425 (cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR;
426 changed call to cp_parser_omp_for_loop_init according new arguments'
427 list.
428 (cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
429 * pt.c (tsubst_expr): Added CILK_FOR case.
430 * semantics.c: Include convert.h.
431 (finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR
432 case; added OMP_CLAUSE__CILK_FOR_COUNT_.
433 (handle_omp_for_class_iterator): New argument lastp and its usage;
434 added NE_EXPR case.
435 (finish_omp_for): Changed call to handle_omp_for_class_iterator
436 according new arguments' list; in case of Cilk_for save very first
437 decl and create empty stmt_list block; use block to build correct
438 statement tree.
439
cbb4d6a4
JM
4402014-08-31 Jason Merrill <jason@redhat.com>
441
442 PR c++/62302
443 * optimize.c (cdtor_comdat_group): Just look at the
444 DECL_ASSEMBLER_NAME of the 'tors.
445
d7afa673
PC
4462014-08-27 Paolo Carlini <paolo.carlini@oracle.com>
447
448 PR c++/52892
449 * semantics.c (cxx_eval_call_expression): Use STRIP_NOPS on the
450 result of cxx_eval_constant_expression.
451
71d64cd4
JM
4522014-08-26 Jason Merrill <jason@redhat.com>
453
454 PR c++/58624
455 * pt.c (tsubst_decl) [VAR_DECL]: Copy TLS model.
456 (tsubst_copy_and_build) [VAR_DECL]: Use TLS wrapper.
457 * semantics.c (finish_id_expression): Don't call TLS wrapper in a
458 template.
459
37491340
JM
4602014-08-25 Jason Merrill <jason@redhat.com>
461
991eeb49
JM
462 * pt.c (check_explicit_specialization): Don't complain about
463 non-template variable.
464 (template_for_substitution): Allow variable templates.
465 (check_template_variable): Fix logic for member var template.
466 * decl.c (start_decl): Don't complain about extra template header
467 here.
468
37491340
JM
469 * decl.c (start_decl): Look through member variable template.
470 * pt.c (tsubst_decl) [VAR_DECL]: Handle member variable templates.
471 * decl2.c (grokfield): Set DECL_CONTEXT earlier on
472 variables.
473
985acf5a
PC
4742014-08-25 Paolo Carlini <paolo.carlini@oracle.com>
475
476 PR c++/34938
477 * cp-tree.h (TFF_POINTER): Add.
478 * cxx-pretty-print.h (pp_cxx_cv_qualifiers): Forward the third
479 argument too.
480 * error.c (dump_type_suffix): Actually print the const and noreturn
481 attribute when appropriate.
482
e4276ba5
ESR
4832014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
484
485 * decl.c (compute_array_index_type, grokdeclarator,
486 undeduced_auto_decl): Change from cxx1y to cxx14.
487 *lambda.c(add_capture()): Change error message from C++1y to C++14.
488 * parser.c (cp_parser_unqualified_id, cp_parser_pseudo_destructor_name,
489 cp_parser_lambda_introducer, cp_parser_lambda_declarator_opt,
490 cp_parser_decltype, cp_parser_conversion_type_id,
491 cp_parser_simple_type_specifier, cp_parser_type_id_1,
492 cp_parser_template_type_arg, cp_parser_std_attribute,
493 cp_parser_template_declaration_after_export): Ditto.
494 * pt.c (tsubst): Ditto.
495 * semantics.c (force_paren_expr, finish_decltype_type): Ditto.
496 * tree.c: Change comment.
497 * typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type,
498 cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto.
499
5e0231c2
JM
5002014-08-23 Jason Merrill <jason@redhat.com>
501
502 Allow non-constexpr variable templates.
503 * decl2.c (note_variable_template_instantiation): New.
504 * cp-tree.h: Declare it.
505 * pt.c (instantiate_decl): Call it.
506 (push_template_decl_real): Allow non-constexpr variable templates.
507 * semantics.c (finish_id_expression): Mark the variable template
508 instantiation as used.
509 * mangle.c (write_mangled_name): Variable template instantiations
510 are mangled.
511 * parser.c (cp_parser_init_declarator): Complain about
512 non-function implicit templates.
513
59ea0364
MP
5142014-08-22 Marek Polacek <polacek@redhat.com>
515
516 PR c++/62199
517 * parser.c (cp_parser_binary_expression): Check each LHS if it's
518 preceded with logical not. Adjust call to
519 warn_logical_not_parentheses.
520
b65eff46
MLI
5212014-08-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
522
523 PR c++/57709
524 * name-lookup.c (pushdecl_maybe_friend_1): Do not warn if a
525 declaration shadows a function declaration, unless the former
526 declares a function, pointer to function or pointer to member
527 function, because this is a common and valid case in real-world
528 code.
529 * cp-tree.h (TYPE_PTRFN_P,TYPE_REFFN_P,TYPE_PTRMEMFUNC_P):
530 Improve description.
531
cea83a3a
JM
5322014-08-22 Jason Merrill <jason@redhat.com>
533
534 PR c++/62129
535 * class.c (outermost_open_class): Fix logic.
536 * decl.c (complete_vars): Fix logic.
537
2d7d7f0f
JM
5382014-08-22 Jason Merrill <jason@redhat.com>
539
540 PR c++/62129
541 * class.c (outermost_open_class): New.
542 * cp-tree.h: Declare it.
543 * decl.c (maybe_register_incomplete_var): Use it.
544 (complete_vars): Handle any constant variable.
545 * expr.c (cplus_expand_constant): Handle CONSTRUCTOR.
546
671a475e
IZ
5472014-08-22 Igor Zamyatin <igor.zamyatin@intel.com>
548
549 PR other/62008
550 * cp-array-notation.c (build_array_notation_ref): Added correct
551 handling of case with incorrect array.
552
18767f65
MLI
5532014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
554
555 PR fortran/44054
556 * error.c (cp_diagnostic_finalizer): Delete.
557 (init_error): Do not set diagnostic_finalizer here.
558
04159acf
MP
5592014-08-19 Marek Polacek <polacek@redhat.com>
560
561 PR c++/62153
562 * call.c (build_new_op_1): Remember the type of arguments for
563 a comparison. If either operand of a comparison is a boolean
564 expression, call maybe_warn_bool_compare.
565
ad035db8
JM
5662014-08-19 Jason Merrill <jason@redhat.com>
567
27093ee4
JM
568 PR tree-optimization/62091
569 * decl2.c (decl_needed_p): Return true for virtual functions when
570 devirtualizing.
571
ad035db8
JM
572 PR lto/53808
573 PR c++/61659
574 * decl.c (maybe_commonize_var): Don't use DECL_COMDAT to trigger
575 comdat_linkage.
576
010ea288
GP
5772014-08-19 Gerald Pfeifer <gerald@pfeifer.com>
578
579 * class.c (contains_empty_class_p): Remove.
580
726d48b0
PC
5812014-08-18 Paolo Carlini <paolo.carlini@oracle.com>
582
583 * parser.c (cp_parser_expression): Add default arguments.
584 (cp_parser_primary_expression, cp_parser_postfix_expression,
585 cp_parser_array_notation, cp_parser_postfix_open_square_expression,
586 cp_parser_unary_expression, cp_parser_direct_new_declarator,
587 cp_parser_question_colon_clause, cp_parser_assignment_operator_opt,
588 cp_parser_lambda_body, cp_parser_expression_statement,
589 cp_parser_condition, cp_parser_c_for, cp_parser_range_for,
590 cp_parser_iteration_statement, cp_parser_jump_statement,
591 cp_parser_decltype_expr, cp_parser_noexcept_specification_opt,
592 cp_parser_asm_operand_list, cp_parser_objc_message_receiver,
593 cp_parser_objc_synchronized_statement, cp_parser_objc_throw_statement,
594 cp_parser_omp_var_list_no_open, cp_parser_omp_clause_num_threads,
595 cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
596 cp_parser_omp_clause_linear, cp_parser_omp_clause_device,
597 cp_parser_omp_atomic, cp_parser_omp_for_loop_init,
598 cp_parser_omp_for_loop, cp_parser_omp_declare_reduction_exprs,
599 cp_parser_transaction_expression): Adjust.
600
5802281e
JM
6012014-08-15 Jason Merrill <jason@redhat.com>
602
2b14490e
JM
603 PR c++/61566
604 * pt.c (lookup_template_class_1): Revert recent change.
605 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Revert recent change.
606
5802281e
JM
607 PR c++/61566
608 * pt.c (instantiate_class_template_1): Ignore lambda on
609 CLASSTYPE_DECL_LIST.
610 (push_template_decl_real): A lambda is not primary.
611 (lookup_template_class_1): Don't look for a lambda partial
612 instantiation.
613 * lambda.c (maybe_add_lambda_conv_op): Distinguish between being
614 currently in a function and the lambda living in a function.
615 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): False for lambda.
616
33cb682b
JM
6172014-08-15 Richard Biener <rguenther@suse.de>
618 Jason Merrill <jason@redhat.com>
619
620 PR bootstrap/62077
621 * tree.c (build_min_array_type, set_array_type_canon): Split out...
622 (build_cplus_array_type): ...from here. Only call build_array_type
623 for main variants.
624
8add4868
PC
6252014-08-15 Paolo Carlini <paolo.carlini@oracle.com>
626
627 PR c++/62072
628 Revert:
629 2014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
630
631 DR 1584
632 PR c++/57466
633 * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
634 cv-qualifiers of function types.
635
598fc085
MLI
6362014-08-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
637
638 * call.c (build_conditional_expr_1): Use OPT_Wextra in warning.
639
aa0a659c
PC
6402014-08-14 Paolo Carlini <paolo.carlini@oracle.com>
641
642 * typeck.c (composite_pointer_type, cxx_sizeof_or_alignof_type,
643 cp_build_array_ref, cp_build_function_call_vec): When a
644 pedwarn is suppressed under SFINAE, return error_mark_node.
645
646 * typeck.c (cxx_sizeof_or_alignof_type): Fix complain &
647 tf_warning_or_error, where complain is a bool, glitch.
648
5d9607f0
VV
6492014-08-14 Ville Voutilainen <ville.voutilainen@gmail.com>
650
651 PR c++/62101
652 * decl.c (grokdeclarator): Move the check for friend initializers..
653 * decl2.c (grokfield) ..here. Postpone early return for friends
654 until after the initializer check.
655
a62dbaa4
PC
6562014-08-14 Paolo Carlini <paolo.carlini@oracle.com>
657
658 PR c++/54377
659 * pt.c (coerce_template_parms): Improve error message vs default
660 arguments.
661
215acd2b
PC
6622014-08-14 Paolo Carlini <paolo.carlini@oracle.com>
663
664 * parser.c (cp_parser_init_declarator): Remove redundant check of
665 decl_specifiers->type.
666
d2f2e467
JM
6672014-08-13 Jason Merrill <jason@redhat.com>
668
669 * call.c (build_x_va_arg): Support passing non-POD through ....
670 (convert_arg_to_ellipsis): Likewise.
671
a3fea1ef
AS
6722014-08-13 Andrew Sutton <andrew.n.sutton@gmail.com>
673
215acd2b 674 * pt.c (lookup_template_variable): Make dependent variable templates
a3fea1ef
AS
675 have unknown type.
676
b383fcb4
PC
6772014-08-13 Paolo Carlini <paolo.carlini@oracle.com>
678
679 * parser.c (cp_parser_elaborated_type_specifier): Handle
680 specially cp_parser_template_id returning a BASELINK.
681
6822014-08-13 Paolo Carlini <paolo.carlini@oracle.com>
683
684 * parser.c (cp_parser_diagnose_invalid_type_name,
685 cp_parser_make_typename_type): Remove scope parameter.
686 (cp_parser_parse_and_diagnose_invalid_type_name,
687 cp_parser_elaborated_type_specifier): Adjust calls.
688
253e3404
VV
6892014-08-12 Ville Voutilainen <ville.voutilainen@gmail.com>
690
691 Reject virt-specifiers on friends and member templates
692 * friend.c (do_friend): Diagnose virt-specifiers.
693 * pt.c (push_template_decl_real): Diagnose virt-specifiers.
694
6a6bdc3d
PC
6952014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
696
697 * typeck2.c (check_narrowing): Add tsubst_flags_t parameter, change
698 return type to bool; in C++11 for constants give errors, not pedwarns.
699 * cp-tree.h (check_narrowing): Adjust declaration.
700 * call.c (convert_like_real): Update calls.
701 * semantics.c (finish_compound_literal): Likewise.
702
a6b0c7bc
JM
7032014-08-08 Jason Merrill <jason@redhat.com>
704
705 * pt.c (lookup_template_class_1): Copy abi_tag.
706
322d490e
KT
7072014-08-08 Kai Tietz <ktietz@redhat.com>
708
709 * semantics.c (expand_or_defer_fn_1): Check for keep-inline-dllexport
710 that we operate on a true inline.
711
9f25a338
TS
7122014-08-07 Trevor Saunders <tsaunders@mozilla.com>
713
714 * class.c, cp-gimplify.c, decl.c, decl2.c, error.c, method.c,
715 optimize.c, pt.c, semantics.c: Remove includes of pointer-set.h.
716
2d45625f
PC
7172014-08-07 Paolo Carlini <paolo.carlini@oracle.com>
718
719 PR c++/51312
720 * decl.c (build_enumerator): Handle class types with conversion
721 operators via perform_implicit_conversion_flags and
722 build_expr_type_conversion.
723
724 * cvt.c (build_expr_type_conversion): Replace pair of errors
725 with error + inform.
726
2e8e74c0
JM
7272014-08-07 Jason Merrill <jason@redhat.com>
728
4a53d90b
JM
729 PR c++/62043
730 * parser.c (c_parse_file): Change sorry to fatal_error.
731
2e8e74c0
JM
732 PR c++/61959
733 * semantics.c (cxx_eval_bare_aggregate): Handle POINTER_PLUS_EXPR.
734
39c8aaa4
TS
7352014-08-07 Trevor Saunders <tsaunders@mozilla.com>
736
737 * cp-tree.h, pt.c: Use hash_map instead of pointer_map.
738
5fb4d142
JM
7392014-08-06 Jason Merrill <jason@redhat.com>
740
c0014b07
JM
741 * init.c (build_vec_init): Fix constant initialization of
742 trailing elements.
743 (build_value_init_noctor): Call maybe_constant_init.
744 * semantics.c (maybe_constant_init): See through EXPR_STMT and
745 conversion to void.
746
ced2fb08
JM
747 PR c++/60417
748 * init.c (build_vec_init): Reorganize earlier change a bit.
749
5fb4d142
JM
750 PR c++/61994
751 * init.c (build_vec_init): Leave atype an ARRAY_TYPE
752 if we're just returning an INIT_EXPR.
753
d06a312a
JM
7542014-08-06 Jason Merrill <jason@redhat.com>
755 Braden Obrzut <admin@maniacsvault.net>
756
757 * pt.c (check_explicit_specialization): Don't test
758 DECL_DECLARED_INLINE_P for a variable template.
759
81caef48
PC
7602014-08-06 Paolo Carlini <paolo.carlini@oracle.com>
761
762 PR c++/43906
763 * typeck.c (cp_build_binary_op): Extend to more cases the
764 -Waddress warning.
765
4a4f287d
BO
7662014-08-01 Braden Obrzut <admin@maniacsvault.net>
767
768 Implement constexpr variable templates
769 * decl.c (grokvardecl): Handle specializations of variable templates.
770 (grokdeclarator): Handle variable template id expressions and NULL_TREE
771 return from grokvardecl.
772 * decl2.c (check_member_template): Allow declaration of template member
773 variables.
774 * parser.c (cp_parser_template_id): Build a TEMPLATE_ID_EXPR for
775 variable templates.
776 * pt.c (check_template_variable): Accept variable temploids at
777 non-class scope.
778 (push_template_decl_real): The current instantiation of a template
779 can be a VAR_DECL.
780 (determine_specialization): Accept variable templates.
781 (check_explicit_specialization): Handle and check for malformed
782 variable template specializations.
783 (lookup_template_variable): New.
784 (tsubst_decl): Handle variable template specializations.
785 (do_decl_instantiation): Handle template variables.
786 (instantiate_decl): Handle template variables.
787 * semantics.c (finish_template_variable): New.
788 (finish_id_expression): Instantiate variable templates.
789 * cp-tree.h (variable_template_p): New.
790
e83a4a2e
PC
7912014-08-02 Paolo Carlini <paolo.carlini@oracle.com>
792
793 PR c++/15339
794 * decl.c (check_redeclaration_no_default_args): New.
795 (duplicate_decls): Use it, handle default arguments
796 in redeclarations of function templates.
797
b787e7a2
TS
7982014-08-02 Trevor Saunders <tsaunders@mozilla.com>
799
800 * optimize.c, semantics.c: Use hash_map instead of pointer_map.
801
6e2830c3
TS
8022014-08-02 Trevor Saunders <tsaunders@mozilla.com>
803
804 * class.c, cp-gimplify.c, cp-tree.h, decl.c, decl2.c, error.c,
805 method.c, name-lookup.c, pt.c, semantics.c, tree.c: Use hash_set
806 instead of pointer_set.
807
3bc63227
JM
8082014-08-01 Jason Merrill <jason@redhat.com>
809
810 PR c++/60417
811 * init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on
812 init-list for trailing elements.
813 * typeck2.c (process_init_constructor_array): Likewise.
814
e1d9e3db
PC
8152014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
816
817 DR 217 again
818 * decl.c (duplicate_decls): Handle static member functions too.
819
fba8a9e3
IZ
8202014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
821
822 * cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint
823 in error output.
824
ffebf50f
IZ
8252014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
826
827 PR other/61963
828 * parser.c (cp_parser_array_notation): Added check for array_type.
829
fba8a9e3 8302014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
a7ee52fb
IZ
831
832 PR middle-end/61455
833 * cp-array-notation.c (expand_array_notation_exprs): Handling of
834 DECL_EXPR improved. Changed handling for INIT_EXPR.
835
cd916532
PC
8362014-08-01 Paolo Carlini <paolo.carlini@oracle.com>
837
838 * pt.c (lookup_template_class_1): Use DECL_TYPE_TEMPLATE_P.
839
944fa280
JJ
8402014-08-01 Jakub Jelinek <jakub@redhat.com>
841
842 * cp-gimplify.c (cp_genericize_r): For -fsanitize=null and/or
843 -fsanitize=alignment call ubsan_maybe_instrument_reference
844 for casts to REFERENCE_TYPE and ubsan_maybe_instrument_member_call
845 for calls to member functions.
846
b4dfdc11
MG
8472014-07-31 Marc Glisse <marc.glisse@inria.fr>
848
849 PR c++/60517
850 * typeck.c (maybe_warn_about_returning_address_of_local): Return
851 whether it is returning the address of a local variable.
852 (check_return_expr): Return 0 instead of the address of a local
853 variable.
854
e00f67c6
JM
8552014-07-30 Jason Merrill <jason@redhat.com>
856
857 PR lto/53808
858 PR c++/61659
859 * pt.c (push_template_decl_real): Don't set DECL_COMDAT on friends.
860
5b9802c4
PC
8612014-07-30 Paolo Carlini <paolo.carlini@oracle.com>
862
863 PR c++/57397
864 * pt.c (unify_arity): Add boolean parameter.
865 (unify_too_few_arguments): Likewise.
866 (type_unification_real): Diagnose correctly insufficient
867 arguments in the presence of trailing variadic parameters;
868 deducing multiple trailing packs as empty is fine.
869
d5d0ed2d
JM
8702014-07-30 Jason Merrill <jason@redhat.com>
871
a41844e5
JM
872 PR c++/61659
873 PR c++/61687
874 Revert:
875 * decl2.c (mark_all_virtuals): New variable.
876 (maybe_emit_vtables): Check it instead of flag_devirtualize.
877 (cp_write_global_declarations): Set it and give helpful diagnostic
878 if it introduces errors.
879 * class.c (finish_struct_1): Check it.
880
d5d0ed2d
JM
881 PR lto/53808
882 PR c++/61659
883 * pt.c (push_template_decl_real): Set DECL_COMDAT on templates.
884 (check_explicit_specialization): Clear it on specializations.
885 * decl.c (duplicate_decls, start_decl): Likewise.
886 (grokmethod, grokfndecl): Set DECL_COMDAT on inlines.
887 * method.c (implicitly_declare_fn): Set DECL_COMDAT. Determine
888 linkage after setting the appropriate flags.
889 * tree.c (decl_linkage): Don't check DECL_COMDAT.
890 * decl2.c (mark_needed): Mark clones.
891 (import_export_decl): Not here.
892
37545fa7
ESR
8932014-07-25 Edward Smith-Rowland <3dw4rd@verizon.net>
894
895 Implement N4051 - Allow typename in a template template parameter
896 * parser.c (cp_parser_type_parameter_key): New funtion;
897 (cp_parser_token_is_type_parameter_key): Ditto;
898 (cp_parser_type_parameter): Look for type-parameter-key for all versions
899 but pedwarn for less than cxx1z.
900
835dee55
PC
9012014-07-17 Paolo Carlini <paolo.carlini@oracle.com>
902
903 PR c++/50961
904 * call.c (standard_conversion): Use resolve_nondeduced_context
905 for type_unknown_p (EXPR) && TREE_CODE (TO) == BOOLEAN_TYPE.
906
cfe309a1
PC
9072014-07-17 Paolo Carlini <paolo.carlini@oracle.com>
908
909 PR c++/61804
910 * parser.c (cp_parser_tokens_start_cast_expression): Return -1
911 for '++' and '--'.
912
0090caca
JM
9132014-07-15 Jason Merrill <jason@redhat.com>
914
1b60eaed
JM
915 PR c++/61811
916 * decl2.c (maybe_emit_vtables): Return true for -fuse-all-virtuals.
917
0090caca
JM
918 PR c++/60848
919 PR c++/61723
920 * call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO.
921 * class.c (finish_struct): Reject invalid definition of
922 std::initializer_list.
923
603a0084
PC
9242014-07-15 Paolo Carlini <paolo.carlini@oracle.com>
925
926 * call.c (convert_like_real): Call print_z_candidate and inform only
927 if permerror returns true.
928
ad115a3c
JH
9292014-07-14 Jan Hubicka <hubicka@ucw.cz>
930
931 * class.c (build_clone): Do not clear assembler names of
932 templates.
933 * decl.c (cp_tree_node_structure): Add TEMPLATE_DECL.
934 * cp-objcp-common.c (cp_tree_size): Add TEMPLATE_DECL
935 as a special case return sizeof (struct tree_decl_non_common)
936 for other decls.
937 (cp_common_init_ts): Do not initialize NAMESPACE_DECL;
938 initialize TEMPLATE_DECL as MARK_TS_DECL_COMMON.
939 * cp/cp-tree.h (tree_template_decl): New structure.
940 (cp_tree_node_structure_enum): Add TS_CP_TEMPLATE_DECL.
941 (union cp_lang_tree_node): Add template_decl.
942 (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT): Update.
943
d110c52e
JM
9442014-07-14 Jason Merrill <jason@redhat.com>
945
946 PR c++/61445
947 PR c++/56947
948 * pt.c (instantiate_decl): Don't check defer_ok for local class
949 members.
950
b108f48f
JJ
9512014-07-14 Jakub Jelinek <jakub@redhat.com>
952
953 PR middle-end/61294
954 * cp-tree.h (LITERAL_ZERO_P): Define.
955 * parser.c (cp_parser_parenthesized_expression_list): Add
956 want_literal_zero_p argument, if true, for literal zeros
957 insert INTEGER_CSTs with LITERAL_ZERO_P flag set.
958 (cp_parser_postfix_expression): Adjust
959 cp_parser_parenthesized_expression_list caller, handle
960 -Wmemset-transposed-args.
961 (literal_zeros): New variable.
962
5806f771
JM
9632014-07-13 Jason Merrill <jason@redhat.com>
964
e89ff446
JM
965 PR c++/58511
966 * semantics.c (is_instantiation_of_constexpr): Return true for
967 defaulted functions, too.
968 (explain_invalid_constexpr_fn): Only use
969 explain_implicit_non_constexpr if !DECL_DECLARED_CONSTEXPR_P.
970 * method.c (explain_implicit_non_constexpr): Pass
971 DECL_INHERITED_CTOR_BASE to explain_implicit_non_constexpr.
972
1ea3b987
JM
973 PR c++/58611
974 * decl.c (check_initializer): Don't finish_compound_literal
975 on erroneous constexpr init.
976
22c6ea00
JM
977 PR c++/58612
978 * tree.c (bot_replace): Only replace a dummy 'this' parm.
979
7ce5ae45
JM
980 PR c++/60628
981 * decl.c (create_array_type_for_decl): Only check for auto once.
982
5806f771
JM
983 PR c++/58636
984 * call.c (build_list_conv): Don't try to build a list of references.
985
c6abdc36
ESR
9862014-07-13 Edward Smith-Rowland <3dw4rd@verizon.net>
987
988 PR C++/60209 - Declaration of user-defined literal operator cause error
185b2278 989 * parser.c (cp_parser_operator): Fold treatment of strings
c6abdc36 990 and user-defined string literals. Use the full string parser.
185b2278 991 (cp_parser_string_literal): Add flag to not look for literal operator.
c6abdc36 992
0eb5f158
JM
9932014-07-11 Jason Merrill <jason@redhat.com>
994
995 PR c++/22434
996 PR c++/61288
997 * call.c (build_conditional_expr_1): Avoid reading freed memory.
998
2410819b
PC
9992014-07-11 Paolo Carlini <paolo.carlini@oracle.com>
1000
1001 PR c++/53159
1002 * call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING
1003 into convflags.
1004 * decl.c (check_initializer): Don't call check_narrowing here,
1005 set LOOKUP_NO_NARROWING.
1006 * typeck2.c (digest_init_r): Likewise.
1007
c0221884
JM
10082014-07-10 Jason Merrill <jason@redhat.com>
1009
a25b76d8
JM
1010 PR c++/61661
1011 * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR.
1012
c0221884
JM
1013 PR c++/61659
1014 PR c++/61687
1015 * decl2.c (mark_all_virtuals): New variable.
1016 (maybe_emit_vtables): Check it instead of flag_devirtualize.
1017 (cp_write_global_declarations): Set it and give helpful diagnostic
1018 if it introduces errors.
1019 * class.c (finish_struct_1): Check it.
1020 * decl.c (grokdeclarator): Clear virtualp after 'virtual auto' error.
1021
2ec99953
PC
10222014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
1023
1024 PR c++/60686
1025 * decl.c (grokdeclarator): Adjust error messages about 'explicit'
1026 outside class declaration, in friend declaration, and neither on
1027 constructor nor conversion operator.
1028
84b64170
PC
10292014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
1030
1031 DR 1584
1032 PR c++/57466
1033 * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
1034 cv-qualifiers of function types.
1035
f47910b5
AS
10362014-07-09 Andrew Sutton <andrew.n.sutton@gmail.com>
1037 Paolo Carlini <paolo.carlini@oracle.com>
1038
1039 PR c++/59361
1040 * parser.c (cp_parser_tokens_start_cast_expression): Return 0 for
1041 CPP_ELLIPSIS too.
1042
8895d9a1
PC
10432014-07-07 Paolo Carlini <paolo.carlini@oracle.com>
1044
1045 * class.c (check_for_override): Wrap the 'final' and 'override'
1046 keywords in %< and %>.
1047
773ec47f
MP
10482014-07-06 Marek Polacek <polacek@redhat.com>
1049
1050 PR c/6940
1051 * cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
1052 * decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
1053 * typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
1054 function parameter.
1055
bca23ca2
PC
10562014-07-02 Paolo Carlini <paolo.carlini@oracle.com>
1057
1058 * pt.c (convert_template_argument): Use inform instead of error in
1059 three places.
1060
9378b06e
ESR
10612014-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
1062
1063 PR c++/58781
1064 PR c++/60249
1065 PR c++/59867
7086e4b6
PC
1066 * parser.c (cp_parser_userdef_string_literal): Take a tree
1067 not a cp_token*.
1068 (cp_parser_string_literal): Don't hack the token stream.
9378b06e 1069
1d7e2ec7
JM
10702014-06-30 Jason Merrill <jason@redhat.com>
1071
5796bf34
JM
1072 PR c++/61659
1073 PR lto/53808
1074 * decl2.c (maybe_emit_vtables): Mark all vtable entries if
1075 devirtualizing.
1076 * init.c (build_vtbl_address): Don't mark destructor.
1077 * class.c (finish_struct_1): Add all classes to keyed_classes
1078 if devirtualizing.
1079
f36ae628
JM
1080 PR c++/61647
1081 * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
1082
cae7c960
JM
1083 PR c++/61566
1084 * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.
1085
1d7e2ec7
JM
1086 * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
1087 TYPE_BINFO or TYPE_LANG_SPECIFIC.
1088 * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
1089 (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
1090 * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
1091 * pt.c (unify): Also check whether the argument is a PMF.
1092
17adeaa7
PC
10932014-06-30 Paolo Carlini <paolo.carlini@oracle.com>
1094
1095 PR c++/54891
1096 * parser.c (cp_parser_tokens_start_cast_expression): In C++11
1097 a '[' can also start a primary-expression.
1098 (cp_parser_cast_expression): Parse a cast-expression only tentatively
1099 when cp_parser_tokens_start_cast_expression returns -1.
1100
71d1add3
JM
11012014-06-30 Jason Merrill <jason@redhat.com>
1102
e8b27b08
JM
1103 PR c++/61539
1104 * pt.c (unify_one_argument): Type/expression mismatch just causes
1105 deduction failure.
1106
71d1add3
JM
1107 * semantics.c (simplify_aggr_init_expr): Remove remnants of
1108 2014-04-11 change.
1109
6a7253a4
MP
11102014-06-30 Marek Polacek <polacek@redhat.com>
1111
1112 * cp-gimplify.c (cp_genericize): Don't instrument returns if the
1113 function has no_sanitize_undefined attribute.
1114 * decl.c (compute_array_index_type): Don't instrument VLAs if the
1115 function has no_sanitize_undefined attribute.
1116
5e88a8f4
IZ
11172014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
1118
1119 PR middle-end/57541
1120 * cp-array-notation.c (expand_sec_reduce_builtin):
1121 Check that bultin argument is correct.
1122 * call.c (build_cxx_call): Check for 0 arguments in builtin call.
1123
fb682f94
JW
11242014-06-28 Jonathan Wakely <jwakely@redhat.com>
1125
1126 DR 1579
1127 PR c++/58051
1128 * typeck.c (check_return_expr): Lookup as an rvalue even when the
1129 types aren't the same.
1130
1ed5f1d3
JM
11312014-06-27 Jason Merrill <jason@redhat.com>
1132
1133 PR c++/61433
1134 * error.c (dump_template_bindings): Don't tsubst in a clone.
1135
04d375e6
PC
11362014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
1137
1138 PR c++/61614
1139 * semantics.c (finish_compound_literal): Revert r204228.
1140
fcbbf14a
PC
11412014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
1142
1143 * parser.c (cp_parser_compound_literal_p): New.
1144 (cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it.
1145
daa04b0a
JM
11462014-06-26 Jason Merrill <jason@redhat.com>
1147
7fb3df5e
JM
1148 * parser.c (cp_parser_for_init_statement): Change range-for error
1149 to pedwarn.
1150
daa04b0a
JM
1151 N3994 Ranged-based for-loops: The Next Generation
1152 * parser.c (cp_lexer_nth_token_is): New.
1153 (cp_parser_for_init_statement): Allow "for (id : init)".
1154
08eedf75
TJ
11552014-06-26 Teresa Johnson <tejohnson@google.com>
1156
1157 * class.c (dump_class_hierarchy): Use saved dump files.
1158 (dump_vtable): Ditto.
1159 (dump_vtt): Ditto.
1160
2626fc49
AB
11612014-06-26 Adam Butcher <adam@jessamine.co.uk>
1162
1163 PR c++/61537
1164 * parser.c (cp_parser_elaborated_type_specifier): Only consider template
1165 parameter lists outside of function parameter scope.
1166
c69c2835
PC
11672014-06-25 Paolo Carlini <paolo.carlini@oracle.com>
1168
1169 DR 178
1170 PR c++/49132
1171 * typeck2.c (process_init_constructor_record): Do not complain about
1172 uninitialized const members, because within aggregate-initialization,
1173 members without explicit initializers are value-initialized.
1174
da6f124d
JJ
11752014-06-25 Jakub Jelinek <jakub@redhat.com>
1176
1177 * semantics.c (finish_omp_clauses): Make sure
1178 OMP_CLAUSE_LINEAR_STEP has correct type.
1179
aaf8a23e
JH
11802014-06-24 Jan Hubicka <hubicka@ucw.cz>
1181
1182 * class.c (check_methods, create_vtable_ptr, determine_key_method,
c69c2835
PC
1183 add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by
1184 FUNCTION_DECL check.
aaf8a23e
JH
1185 * cp-tree.h (lang_decl_ns): Add ns_using and ns_users.
1186 (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns.
1187 (DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL.
1188 (DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT.
1189
d1307360
PC
11902014-06-24 Paolo Carlini <paolo.carlini@oracle.com>
1191
1192 PR c++/33972
1193 * decl.c (grokdeclarator): Do not early check for operator-function-id
1194 as non-function.
1195
c203e8a7
TS
11962014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1197
1198 * class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
1199 Adjust.
1200
56ad0e38
JJ
12012014-06-24 Jakub Jelinek <jakub@redhat.com>
1202
1203 * parser.c (cp_parser_omp_for_loop): For
1204 #pragma omp parallel for simd move lastprivate clause from parallel
1205 to for rather than simd.
1206
e7402b3a
PC
12072014-06-23 Paolo Carlini <paolo.carlini@oracle.com>
1208
1209 DR 577
1210 PR c++/33101
1211 * decl.c (grokparms): Accept a single parameter of type 'void'.
1212
e2498d54
JM
12132014-06-20 Jason Merrill <jason@redhat.com>
1214
caa40bc0
JM
1215 PR c++/59296
1216 * call.c (add_function_candidate): Avoid special 'this' handling
1217 if we have a ref-qualifier.
1218
e2498d54
JM
1219 PR c++/61556
1220 * call.c (build_over_call): Call build_this in template path.
1221
c7744b8e
JM
12222014-06-19 Jason Merrill <jason@redhat.com>
1223
1224 PR c++/59296
1225 * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
1226
e3dc80be
JM
12272014-06-18 Jason Merrill <jason@redhat.com>
1228
74f4bbb7
JM
1229 PR c++/59296
1230 * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
1231 ref-qualifier handling.
1232
e3dc80be
JM
1233 PR c++/61507
1234 * pt.c (resolve_overloaded_unification): Preserve
1235 ARGUMENT_PACK_EXPLICIT_ARGS.
1236
f014c653
JJ
12372014-06-18 Jakub Jelinek <jakub@redhat.com>
1238
1239 * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
1240 argument.
1241 * cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
1242
5a96dac6
JM
12432014-06-17 Jason Merrill <jason@redhat.com>
1244
1245 PR c++/60605
1246 * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
1247
9a9b31a2 12482014-06-15 Jason Merrill <jason@redhat.com>
949bd6c8 1249
6e0681b7
JM
1250 PR c++/61488
1251 * pt.c (check_valid_ptrmem_cst_expr): Fix for template context.
1252
949bd6c8
JM
1253 PR c++/61500
1254 * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
1255
590db899
JH
12562014-06-15 Jan Hubicka <hubicka@ucw.cz>
1257
1258 * decl.c (grokvardecl): Fix pasto in previous patch.
1259
56363ffd
JH
12602014-06-15 Jan Hubicka <hubicka@ucw.cz>
1261
1262 * decl.c (duplicate_decls): Use set_decl_tls_model.
1263 (grokdeclarator): Likewise.
1264 * semantics.c (finish_id_expression): Check TLS only for
1265 static variables.
1266 (finish_omp_threadprivate): Use decl_default_tls_model.
1267 * decl2.c (get_guard): Likewise.
1268 * call.c (make_temporary_var_for_ref_to_temp): Likewise.
1269
045af2d7
PC
12702014-06-14 Paolo Carlini <paolo.carlini@oracle.com>
1271
1272 PR c++/33101
1273 * decl.c (grokparms): Improve error message about void parameters.
1274 * error.c (type_to_string): Fix aka cut off code.
1275
90d84934
JM
12762014-06-12 Jason Merrill <jason@redhat.com>
1277
62984918
JM
1278 * call.c (convert_arg_to_ellipsis): Use abi_version_crosses.
1279 * cvt.c (type_promotes_to): Likewise.
1280 * mangle.c (write_type, write_expression): Likewise.
1281 (write_name, write_template_arg): Likewise.
1282 (mangle_decl): Make alias based on flag_abi_compat_version.
1283 Emit -Wabi warning here.
1284 (finish_mangling_internal): Not here. Drop warn parm.
1285 (finish_mangling_get_identifier, finish_mangling): Adjust.
1286 (mangle_type_string, mangle_special_for_type): Adjust.
1287 (mangle_ctor_vtbl_for_type, mangle_thunk): Adjust.
1288 (mangle_guard_variable, mangle_tls_init_fn): Adjust.
1289 (mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust.
1290
90d84934
JM
1291 * call.c (build_operator_new_call): Remove -fabi-version=1 support.
1292 * class.c (walk_subobject_offsets, include_empty_classes): Likewise.
1293 (layout_nonempty_base_or_field, end_of_class): Likewise.
1294 (layout_empty_base, build_base_field, layout_class_type): Likewise.
1295 (is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise.
1296 (layout_virtual_bases): Likewise.
1297 * decl.c (compute_array_index_type): Likewise.
1298 * mangle.c (write_mangled_name, write_prefix): Likewise.
1299 (write_template_prefix, write_integer_cst, write_expression): Likewise.
1300 (write_template_arg, write_array_type): Likewise.
1301 * method.c (lazily_declare_fn): Likewise.
1302 * rtti.c (get_pseudo_ti_index): Likewise.
1303 * typeck.c (comp_array_types): Likewise.
1304
f961457f
JH
13052014-06-11 Jan Hubicka <hubicka@ucw.cz>
1306
1307 * vtable-class-hierarchy.c: Update handling for section names
1308 that are no longer trees.
1309 * decl.c (duplicate_decls): Likewise.
1310
e3588987
PC
13112014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
1312
1313 PR c++/19200
1314 * parser.c (cp_parser_init_declarator): Actually pass friend_p
1315 to cp_parser_declarator.
1316
c7bb3484
PC
13172014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
1318
1319 PR c++/60265
1320 * parser.c (cp_parser_using_declaration): Handle unscoped enums.
1321 * name-lookup.c (validate_nonmember_using_decl): Adjust error
1322 message.
1323
d0ba67dc
PC
13242014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
1325
1326 PR c++/19200
1327 * parser.c (cp_parser_declarator): Add bool parameter.
1328 (cp_parser_direct_declarator): Likewise, use it.
1329 (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
1330 (cp_parser_condition, cp_parser_explicit_instantiation,
1331 cp_parser_init_declarator, cp_parser_type_id_1,
1332 cp_parser_parameter_declaration, cp_parser_exception_declaration,
1333 cp_parser_cache_defarg, cp_parser_objc_class_ivars,
1334 cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
1335 Adjust.
1336 * decl.c (grokdeclarator): Fix handling of friend declared in
1337 namespace scope (g++.dg/parse/friend10.C).
1338
e257a17c
JH
13392014-06-10 Jan Hubicka <hubicka@ucw.cz>
1340
d0ba67dc
PC
1341 * vtable-class-hierarchy.c: Use symtab_get_node (var_decl)
1342 ->implicit_section.
e257a17c
JH
1343 * optimize.c (cdtor_comdat_group): Fix handling of aliases.
1344 (maybe_clone_body): Move symbol across comdat groups.
1345 * method.c (use_thunk): Copy implicit section flag.
1346
23646391
PC
13472014-06-09 Paolo Carlini <paolo.carlini@oracle.com>
1348
1349 PR c++/22556
1350 * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
1351
24d047a3
JH
13522014-06-07 Jan Hubicka <hubicka@ucw.cz>
1353
1354 * method.c (use_thunk): Use set_decl_section_name.
1355 * optimize.c (maybe_clone_body): Use set_decl_section_name.
1356 * decl.c (duplicate_decls): Likewise.
1357 * vtable-class-hierarchy.c: Likewise.
1358
4dadc66d
PC
13592014-06-06 Paolo Carlini <paolo.carlini@oracle.com>
1360
1361 PR c++/60184
1362 * class.c (check_field_decls): In C++11 mode do not reject
1363 static data members and reference-type members in unions.
1364
40e3a2ab
JM
13652014-06-05 Jason Merrill <jason@redhat.com>
1366
1367 PR c++/43453
1368 * decl.c (check_initializer): Collapse a TREE_LIST here.
1369 * typeck2.c (store_init_value): Not here.
1370
406d3663
RB
13712014-06-05 Richard Biener <rguenther@suse.de>
1372 Paolo Carlini <paolo.carlini@oracle.com>
1373
1374 PR c++/56961
1375 * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
1376 handling of empty classes.
1377
f0f2f975
JM
13782014-06-04 Jason Merrill <jason@redhat.com>
1379
da4e26be
JM
1380 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
1381 for noexcept and thread_local, too.
1382
f0f2f975
JM
1383 PR c++/61343
1384 * decl.c (check_initializer): Maybe clear
1385 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
1386
5ae98e82
RB
13872014-06-05 Richard Biener <rguenther@suse.de>
1388
1389 PR c++/61004
1390 * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
1391 warnings for accessing empty classes.
1392
742938c9
MP
13932014-06-05 Marek Polacek <polacek@redhat.com>
1394
1395 PR c/49706
1396 * parser.c (cp_parser_binary_expression): Warn when logical not is
1397 used on the left hand side operand of a comparison.
1398
82b3da6a
PC
13992014-06-04 Paolo Carlini <paolo.carlini@oracle.com>
1400
1401 PR c++/43453
1402 * typeck.c (cp_build_modify_expr): Handle array of characters
1403 initialized by a string literal.
1404 * decl.c (check_initializer): Handle parenthesized string literal
1405 as initializer.
1406 * typeck2.c (store_init_value): Remove redundant check.
1407
fe6ebcf1
JM
14082014-06-04 Jason Merrill <jason@redhat.com>
1409
1410 PR c++/51253
1411 PR c++/61382
1412 * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
1413 * semantics.c (simplify_aggr_init_expr): Not here, just copy it.
1414
9dc7743c
IZ
14152014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
1416
1417 PR c/58942
1418 * cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
1419 with a pointer.
1420
3c61a5ba
PC
14212014-06-03 Paolo Carlini <paolo.carlini@oracle.com>
1422
1423 DR 1423
1424 PR c++/52174
1425 * call.c (standard_conversion): Convert nullptr to bool only
1426 in case of direct-initialization.
1427 (convert_like_real): Provide informative error message.
1428
fedfecef
MP
14292014-06-03 Marek Polacek <polacek@redhat.com>
1430
1431 PR c/60439
1432 * semantics.c (finish_switch_cond): Warn if switch condition has
1433 boolean value.
1434
010bc40a
JM
14352014-06-03 Jason Merrill <jason@redhat.com>
1436
093e62d2
JM
1437 PR c++/60992
1438 * pt.c (tsubst_copy) [VAR_DECL]: Try lookup first. Add a new
1439 variable to local_specializations.
1440
010bc40a
JM
1441 PR c++/60848
1442 * call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.
1443
cfc8dced
JM
14442014-06-02 Jason Merrill <jason@redhat.com>
1445
99d14de6
JM
1446 PR c++/61046
1447 * decl.c (reshape_init_class): Handle un-folded
1448 constant-expressions.
1449
cfc8dced
JM
1450 PR c++/61134
1451 * pt.c (pack_deducible_p): Handle canonicalization.
1452
a21e55d2
PC
14532014-06-02 Paolo Carlini <paolo.carlini@oracle.com>
1454
1455 * pt.c (tsubst_function_type): Initialize arg_types.
1456
1bae5891
SCR
14572014-06-02 Siva Chandra Reddy <sivachandra@google.com>
1458
1459 PR debug/57519
1460 * class.c (handle_using_decl): Pass the correct scope to
1461 cp_emit_debug_info_for_using.
1462
adb50dfb
VV
14632014-06-02 Ville Voutilainen <ville.voutilainen@gmail.com>
1464
1465 PR c++/59483
1466 PR c++/61148
1467 * search.c (accessible_p): Use current_nonlambda_class_type.
1468 * semantics.c (check_accessibility_of_qualified_id): Likewise.
1469
9b2b7279
AM
14702014-06-02 Andrew MacLeod <amacleod@redhat.com>
1471
1472 * decl.c: Include builtins.h.
1473 * semantics.c: Likewise.
1474
cab421f4
PC
14752014-05-31 Paolo Carlini <paolo.carlini@oracle.com>
1476
1477 DR 1227
1478 PR c++/57543
1479 * cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add.
1480 * pt.c (tsubst_function_type): Inject the this parameter; do the
1481 substitutions in the order mandated by the DR.
1482 (copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE.
1483 * decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE.
1484 (static_fn_type): Copy it.
1485 * decl2.c (build_memfn_type, change_return_type,
1486 cp_reconstruct_complex_type): Likewise.
1487 * parser.c (cp_parser_lambda_declarator_opt): Likewise.
1488 * tree.c (strip_typedefs): Likewise.
1489 * typeck.c (merge_types): Likewise.
1490
d1a902a2
JM
14912014-05-30 Jason Merrill <jason@redhat.com>
1492
b6bb8977
JM
1493 PR c++/56947
1494 * pt.c (instantiate_decl): Check that defer_ok is not set for
1495 local class members.
1496
d1a902a2
JM
1497 PR c++/60992
1498 * pt.c (tsubst_init): Split out from...
1499 (tsubst_expr) [DECL_EXPR]: Here.
1500 (tsubst_copy) [VAR_DECL]: Use it.
1501 * semantics.c (finish_id_expression): Return the decl for static/const.
1502
a33ad58b
JM
15032014-05-28 Jason Merrill <jason@redhat.com>
1504
d67ff7b7
JM
1505 PR c++/47202
1506 * decl.c (cxx_comdat_group): Return a decl.
1507 * optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
1508
a41acf5f
JM
1509 * pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
1510 bound.
1511
a33ad58b
JM
1512 PR c++/61242
1513 * call.c (build_aggr_conv): Ignore passed in flags.
1514 (build_array_conv, build_complex_conv): Likewise.
1515
aede2c10
JH
15162014-05-23 Jan Hubicka <hubicka@ucw.cz>
1517
ce762754 1518 * optimize.c (maybe_thunk_body): Use set_comdat_group.
aede2c10
JH
1519 (maybe_clone_body): Likewise.
1520 * decl.c (duplicate_decls): Update code duplicating comdat group;
1521 do not copy symtab pointer; before freeing newdecl remove it
1522 from symtab.
1523 * decl2.c (constrain_visibility): Use set_comdat_group.
1524
c517fc92
JH
15252014-05-23 Jan Hubicka <hubicka@ucw.cz>
1526
1527 * rtti.c: Include tm_p.h
1528 (emit_tinfo_decl): Force RTTI data to be aligned to required
1529 ABI alignment only.
1530
8ce8d98e
JH
15312014-05-23 Jan Hubicka <hubicka@ucw.cz>
1532
1533 * class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
1534 ignoring other target adjustments.
1535
edbba2ce
TS
15362014-05-23 Thomas Schwinge <thomas@codesourcery.com>
1537
f3316c6d
TS
1538 * semantics.c (finish_omp_clauses): Remove duplicated variable
1539 initialization.
1540
edbba2ce
TS
1541 * parser.c (cp_parser_omp_target): Return bool values.
1542
0c018b6f
PC
15432014-05-22 Paolo Carlini <paolo.carlini@oracle.com>
1544
1545 PR c++/61088
1546 * lambda.c (add_capture): Enforce that capture by value requires
1547 complete type.
1548 * typeck2.c (cxx_incomplete_type_inform): Early return if
1549 TYPE_MAIN_DECL is null.
1550
d8000f03
JW
15512014-05-21 Jonathan Wakely <jwakely@redhat.com>
1552
1553 PR c/61271
1554 * cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition.
1555
174ebf65
VV
15562014-05-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1557
1558 PR c++/61133
1559 * lambda.c (build_capture_proxy, add_capture): Treat normal
1560 captures and init-captures identically.
1561
7315daa6
MW
15622014-05-21 Mark Wielaard <mjw@redhat.com>
1563
1564 PR debug/16063
1565 * cp-lang.c (cxx_enum_underlying_base_type): New function.
1566 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
1567
632f2871
RS
15682014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
1569
1570 * cvt.c (convert_to_void): Use void_node instead of void_zero_node.
1571 * cp-array-notation.c (replace_invariant_exprs): Likewise.
1572 (expand_array_notation): Handle VOID_CST.
1573 * error.c (dump_expr): Likewise.
1574 * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
1575 (cxx_pretty_printer::expression): Likewise.
1576 (pp_cxx_new_expression): Use void_node instead of void_zero_node.
1577 * decl.c (register_dtor_fn): Likewise.
1578 * init.c (build_raw_new_expr, build_new_1, build_vec_init)
1579 (build_delete, push_base_cleanups): Likewise.
1580 * mangle.c (write_expression): Likewise.
1581 * semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise.
1582 * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
1583 (tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST.
1584 * tree.c (cp_tree_equal): Likewise.
1585 (build_dummy_object, is_dummy_object, stabilize_expr): Use void_node
1586 instead of void_zero_node.
1587 * typeck.c (check_return_expr): Likewise.
1588 * typeck2.c (build_functional_cast): Likewise.
1589
c3d96270
IZ
15902014-05-21 Igor Zamyatin <igor.zamyatin@intel.com>
1591
1592 PR c/60189
1593 * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync
1594 from here to...
1595 (cp_parser_statement): ...here. Make sure only semicolon can go after
1596 Cilk_sync.
1597
f4cd9c51
PC
15982014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
1599
1600 PR c++/58753
1601 PR c++/58930
1602 PR c++/58704
1603 * typeck2.c (digest_nsdmi_init): New.
1604 * parser.c (cp_parser_late_parse_one_default_arg): Use it.
1605 * init.c (get_nsdmi): Likewise.
1606 * cp-tree.h (digest_nsdmi_init): Declare.
1607
f9873232
JM
16082014-05-20 Jason Merrill <jason@redhat.com>
1609
1610 * typeck.c (get_member_function_from_ptrfunc): Don't try to look
1611 up a virtual function in a dummy object.
1612
512eacee
PC
16132014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
1614
1615 PR c++/60373
1616 * decl.c (duplicate_decls): Replace pair of warning_at with
1617 warning_at + inform.
1618 (maybe_commonize_var): Likewise.
1619
efa72acd
RS
16202014-05-20 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
1621
1622 PR bootstrap/61210
1623 * pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr)
1624 (tsubst_copy_and_build): Perform recursive substitutions in a
1625 deterministic order.
1626
bdb5a9a3
PC
16272014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
1628
1629 PR c++/58664
1630 * typeck2.c (cxx_incomplete_type_inform): New.
1631 (cxx_incomplete_type_diagnostic): Use it.
1632 * decl.c (grokdeclarator): Check the element type of an
1633 incomplete array type; call the above.
1634 * cp-tree.h (cxx_incomplete_type_inform): Declare.
1635
0f5b0135
JM
16362014-05-19 Jason Merrill <jason@redhat.com>
1637
1638 PR c++/58761
1639 * pt.c (tsubst_copy): Don't check at_function_scope_p.
1640 (instantiate_class_template_1): Don't push_to_top_level in an nsdmi.
1641
7fb80849
PC
16422014-05-19 Paolo Carlini <paolo.carlini@oracle.com>
1643
1644 * typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
1645 * parser.c (cp_parser_enum_specifier): Likewise.
1646
766090c2
TS
16472014-05-17 Trevor Saunders <tsaunders@mozilla.com>
1648
1649 * class.c (sorted_fields_type_new): Adjust.
1650 * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
1651 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
1652 * cp-tree.h: Remove usage of variable_size gty attribute.
1653 * decl.c (make_label_decl): Adjust.
1654 (check_goto): Likewise.
1655 (start_preparsed_function): Likewise.
1656 (save_function_data): Likewise.
1657 * lex.c (init_reswords): Likewise.
1658 (retrofit_lang_decl): Likewise.
1659 (cxx_dup_lang_specific_decl): Likewise.
1660 (copy_lang_type): Likewise.
1661 (cxx_make_type): Likewise.
1662 * name-lookup.c (binding_entry_make): Likewise.
1663 (binding_table_construct): Likewise.
1664 (binding_table_new): Likewise.
1665 (cxx_binding_make): Likewise.
1666 (pushdecl_maybe_friend_1): Likewise.
1667 (begin_scope): Likewise.
1668 (push_to_top_level): Likewise.
1669 * parser.c (cp_lexer_alloc): Likewise.
1670 (cp_lexer_new_from_tokens): Likewise.
1671 (cp_token_cache_new): Likewise.
1672 (cp_parser_context_new): Likewise.
1673 (cp_parser_new): Likewise.
1674 (cp_parser_nested_name_specifier_opt): Likewise.
1675 (cp_parser_template_id): Likewise.
1676 * pt.c (maybe_process_partial_specialization): Likewise.
1677 (register_specialization): Likewise.
1678 (add_pending_template): Likewise.
1679 (lookup_template_class_1): Likewise.
1680 (push_tinst_level): Likewise.
1681 * semantics.c (register_constexpr_fundef): Likewise.
1682 (cxx_eval_call_expression): Likewise.
1683 * typeck2.c (abstract_virtuals_error_sfinae): Likewise.
1684
54674a35
PC
16852014-05-16 Paolo Carlini <paolo.carlini@oracle.com>
1686
1687 PR c++/51640
1688 * parser.c (cp_parser_diagnose_invalid_type_name): Early return
1689 when cp_parser_lookup_name sets ambiguous_decls.
1690
8fa53379
JM
16912014-05-15 Jason Merrill <jason@redhat.com>
1692
1693 * call.c (print_conversion_rejection): Use loc consistently.
1694
014397c2
PC
16952014-05-14 Paolo Carlini <paolo.carlini@oracle.com>
1696
1697 * cp-tree.h (DIRECT_LIST_INIT_P): Add.
1698 * call.c (convert_like_real, build_new_method_call_1): Use it.
1699 * decl2.c (grokfield): Likewise.
1700 * init.c (perform_member_init, build_aggr_init, expand_default_init,
1701 build_new_1): Likewise.
1702 * mangle.c (write_expression): Likewise.
1703 * parser.c (cp_parser_late_parse_one_default_arg): Likewise.
1704
89606913
JM
17052014-05-14 Jason Merrill <jason@redhat.com>
1706
d02f620d
JM
1707 PR c++/20332
1708 PR c++/21631
1709 * call.c (reference_binding): Treat lvalue/rvalue mismatch and
1710 dropped cv-quals as a bad conversion.
1711 (convert_like_real) [ck_ref_bind]: Explain them.
1712 (compare_ics): Check badness before stripping reference
1713 bindings. Handle comparing bad reference bindings.
1714 * typeck.c (comp_cv_qualification): Add overload that just takes
1715 integers.
1716 * cp-tree.h: Declare it.
1717
89606913
JM
1718 * call.c (struct conversion_info): Rename 'from_type' to 'from'.
1719 (arg_conversion_rejection, bad_arg_conversion_rejection)
1720 (explicit_conversion_rejection, template_conversion_rejection): Adjust.
1721 (add_function_candidate): Pass actual argument, rather than type, to
1722 bad_arg_conversion_rejection.
1723 (print_conversion_rejection): Explain what's wrong with the conversion.
c4622c2b 1724 (print_z_candidates): Say "candidate:" before each candidate.
89606913
JM
1725 (splice_viable): Be strict if we see a viable or template candidate.
1726 (build_user_type_conversion_1): Pass false to strict parameter.
1727 (perform_overload_resolution, build_conditional_expr_1): Likewise.
1728 (build_new_op_1, build_new_method_call_1): Likewise.
1729 (build_op_call_1): Pass true to strict parameter.
1730
6626c52e
JM
17312014-05-13 Jason Merrill <jason@redhat.com>
1732
c29f393f
JM
1733 * call.c (print_error_for_call_failure): Say "no match" rather
1734 than "ambiguous" if there were no strict matches.
1735 (build_new_method_call_1): Likewise.
1736
6626c52e
JM
1737 PR c++/61151
1738 * semantics.c (is_this_parameter): Allow capture proxies too.
1739
83afe9ef
JM
17402014-05-12 Jason Merrill <jason@redhat.com>
1741
3f55e16a
JM
1742 * call.c (maybe_print_user_conv_context): New.
1743 (convert_like_real): Use it. Print call context for bad
1744 user-defined conversion.
1745 (build_over_call): Print call context for bad 'this' conversion.
1746
83afe9ef
JM
1747 * call.c (convert_like_real): Use inform for identifying the
1748 declaration point.
1749
bc51de9c
PC
17502014-05-12 Paolo Carlini <paolo.carlini@oracle.com>
1751
1752 * cvt.c (cp_convert_to_pointer): Don't call error_at if
1753 complain & tf_error is false.
1754
1755 * decl.c (make_unbound_class_template): Prefer inform for
1756 "declared here"-type message.
1757
0b360a07
MV
17582014-05-09 Momchil Velikov <momchil.velikov@gmail.com>
1759
1760 PR c++/60463
1761 PR c++/60755
1762 * lambda.c (lambda_expr_this_capture): Add new parameter
1763 add_capture_p controlling whether the functions will try to
1764 capture 'this' via the default capture.
1765 (maybe_resolve_dummy): Likewise.
1766 * cp-tree.h: Adjust prototypes.
1767 * call.c, semantics.c: Change callers of these functions.
1768 * call.c (build_new_method_call_1): Use the actual 'this' that
1769 would be potentially captured for the overload resolution, instead
1770 of the dummy object.
1771
ad31c32a
PC
17722014-05-09 Paolo Carlini <paolo.carlini@oracle.com>
1773
1774 * pt.c (convert_nontype_argument_function): Add tsubst_flags_t
1775 parameter.
1776 (convert_nontype_argument): Adjust calls.
1777 (coerce_template_parameter_pack): Add missing complain & tf_error
1778 check.
1779
bb8b1f69
JM
17802014-05-09 Jason Merrill <jason@redhat.com>
1781
e8ee694a
JM
1782 DR 587
1783 PR c++/51317
1784 * call.c (build_conditional_expr_1, conditional_conversion): Handle
1785 non-class lvalues and xvalues that differ only in cv-qualifiers.
1786
bfa58951
JM
1787 DR 5
1788 PR c++/60019
1789 * call.c (build_user_type_conversion_1): The copy-init temporary
1790 is cv-unqualified.
1791
fc2bfea1
JM
1792 PR c++/58714
1793 * tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
1794
5f901ccf
JM
1795 PR c++/54348
1796 * call.c (build_conditional_expr_1): If overload resolution finds
1797 no match, just say "different types".
1798
1799 PR c++/32019
1800 * call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
1801
bb8b1f69
JM
1802 PR c++/22434
1803 * call.c (build_conditional_expr_1): Don't try to pool cv-quals
1804 if we didn't find a conversion.
1805 Don't accept a bad conversion too early.
1806
7e422c4f
PC
18072014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
1808
1809 PR c++/13981
1810 * typeck.c (convert_for_assignment): Provide an inform for pointers
1811 to incomplete class types.
1812
04e5eb5f
PC
18132014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
1814
1815 PR c++/61083
1816 * pt.c (convert_nontype_argument): Protect all the error calls
1817 with complain & tf_error.
1818
ef2662bf
PC
18192014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
1820
1821 PR c++/61080
1822 * pt.c (instantiate_decl): Avoid generating the body of a
1823 deleted function.
1824
895a5cc0
PC
18252014-05-06 Paolo Carlini <paolo.carlini@oracle.com>
1826
1827 PR c++/60999
1828 * pt.c (maybe_begin_member_template_processing): Use
1829 uses_template_parms.
1830
1d60af08
KZ
18312014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1832 Mike Stump <mikestump@comcast.net>
1833 Richard Sandiford <rdsandiford@googlemail.com>
1834
1835 * call.c: Include wide-int.h.
1836 (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
1837 (convert_for_arg_passing): Likewise.
1838 * class.c: Include wide-int.h.
1839 (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
1840 (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
1841 (include_empty_classes): Likewise
1842 (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
1843 * cvt.c: Include wide-int.h.
1844 (ignore_overflows): Use wide_int_to_tree.
1845 * decl.c: Include wide-int.h.
1846 (check_array_designated_initializer): Use wide-int interfaces.
1847 (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
1848 (finish_enum_value_list): Use signop.
1849 (build_enumerator): Use wide-int interfaces.
1850 * init.c: Include wide-int.h.
1851 (build_new_1): Use wide-int interfaces.
1852 * mangle.c: Include wide-int.h.
1853 (write_integer_cst): Use wide-int interfaces.
1854 (write_array_type): Likewise.
1855 * tree.c: Include wide-int.h.
1856 (cp_tree_equal): Use tree_int_cst_equal.
1857 * typeck2.c: Include wide-int.h.
1858 (process_init_constructor_array): Use wide-int interfaces.
1859
32314c38
PC
18602014-05-03 Paolo Carlini <paolo.carlini@oracle.com>
1861
1862 PR c++/58582
1863 * decl.c (grokfndecl): Check duplicate_decls return value for
1864 error_mark_node.
1865 * pt.c (instantiate_decl): A deleted function is defined.
1866
43b781fa
JM
18672014-05-02 Jason Merrill <jason@redhat.com>
1868
c4fa3572
JM
1869 * decl2.c (vague_linkage_p): Local statics have vague linkage.
1870
43b781fa
JM
1871 PR c++/60992
1872 * lambda.c (lambda_capture_field_type): Wrap anything dependent
1873 other than 'this'.
1874 (add_capture): Check for VLA before calling it.
1875 * semantics.c (is_this_parameter): Accept any 'this' parameter, not
1876 just the current one. Make non-static.
1877 * cp-tree.h: Declare it.
1878 * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
1879 the operand was static or constant.
1880
19fc9faa
MP
18812014-05-02 Marek Polacek <polacek@redhat.com>
1882
1883 * typeck.c (maybe_warn_about_returning_address_of_local): Separate
1884 warning_at calls.
1885
32e00768
MP
18862014-05-01 Marek Polacek <polacek@redhat.com>
1887
1888 PR c/43395
1889 * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
1890 between label and variable when warning about returning local address.
1891
4f419f8c
JM
18922014-04-30 Jason Merrill <jason@redhat.com>
1893
60ff8e16
JM
1894 PR c++/60980
1895 * init.c (build_value_init): Don't try to call an array constructor.
1896
4f419f8c
JM
1897 PR c++/60951
1898 * typeck2.c (massage_init_elt): Use maybe_constant_init.
1899
f8ed5150
MP
19002014-04-30 Marek Polacek <polacek@redhat.com>
1901
1902 * typeck.c (cp_build_binary_op): Call ubsan_instrument_division
1903 even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even
1904 for non-integer types.
1905
b15ea309
JM
19062014-04-29 Jason Merrill <jason@redhat.com>
1907
1908 DR 1351
1909 Represent the unevaluated exception specification of an implicitly
1910 declared or deleted function with a simple placeholder, not a list
1911 of functions.
1912 * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
1913 * except.c (unevaluated_noexcept_spec): New.
1914 * class.c (deduce_noexcept_on_destructor): Use it.
1915 * decl.c (check_redeclaration_exception_specification): Call
1916 maybe_instantiate_noexcept.
1917 (duplicate_decls): Call it before merge_types.
1918 (start_preparsed_function): Call maybe_instantiate_noexcept.
1919 * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
1920 * init.c (get_nsdmi): Factor out of perform_member_init.
1921 * method.c (process_subob_fn): Call maybe_instantiate_noexcept.
1922 (walk_field_subobs): Consider NSDMI for EH spec.
1923 (get_defaulted_eh_spec): New.
1924 (implicitly_declare_fn): Use unevaluated_noexcept_spec.
1925 (defaulted_late_check): Defer EH checking in non-template classes.
1926 (after_nsdmi_defaulted_late_checks): New.
1927 * parser.c (cp_parser_class_specifier_1): Use it.
1928 (unparsed_classes): New macro.
1929 * parser.h (cp_unparsed_functions_entry_d): Add classes field.
1930 * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
1931 Remove list-of-functions handling.
1932 * typeck2.c (merge_exception_specifiers): Remove list-of-functions
1933 handling and FN parameter.
1934 * typeck.c (merge_types): Adjust.
1935
a3879fa1
PC
19362014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
1937
1938 PR c++/59120
1939 * parser.c (cp_parser_alias_declaration): Check return value of
1940 cp_parser_require.
1941
42056eac
JJ
19422014-04-24 Jakub Jelinek <jakub@redhat.com>
1943
1944 * parser.c (cp_parser_omp_atomic): Allow seq_cst before
1945 atomic-clause, allow comma in between atomic-clause and
1946 seq_cst.
1947
b911b50d
MG
19482014-04-24 Marc Glisse <marc.glisse@inria.fr>
1949
1950 PR libstdc++/43622
1951 * rtti.c (emit_support_tinfos): Do not iterate on
1952 registered_builtin_types (partial revert).
1953
3734964f
DT
19542014-04-23 Dinar Temirbulatov <dtemirbulatov@gmail.com>
1955
1956 PR c++/57958
1957 * semantics.c (apply_deduced_return_type): Complete non-void type
1958 before estimating whether the type is aggregate.
1959
793c625f
MG
19602014-04-22 Marc Glisse <marc.glisse@inria.fr>
1961
1962 PR libstdc++/43622
1963 * rtti.c (emit_support_tinfo_1): New function, extracted from
1964 emit_support_tinfos.
1965 (emit_support_tinfos): Call it and iterate on registered_builtin_types.
1966
e162a134
JJ
19672014-04-22 Jakub Jelinek <jakub@redhat.com>
1968
1969 PR c/59073
1970 * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
1971 fails, don't set OM_PARALLEL_COMBINED and return NULL.
1972
c663bc6a
JM
19732014-04-18 Jason Merrill <jason@redhat.com>
1974
fc45aeee
JM
1975 DR 1571
1976 * call.c (reference_binding): Recurse on user-defined conversion.
1977
c663bc6a
JM
1978 PR c++/60872
1979 * call.c (standard_conversion): Don't try to apply restrict to void.
1980
fcde53d0
MG
19812014-04-16 Marc Glisse <marc.glisse@inria.fr>
1982
1983 * decl.c (reshape_init_r): Handle a single element of vector type.
1984
1dbdb756
PP
19852014-04-16 Patrick Palka <patrick@parcs.ath.cx>
1986
1987 PR c++/60765
1988 * decl2.c (cplus_decl_attributes): Handle
1989 pointer-to-member-function declarations.
1990
19912014-04-16 Patrick Palka <patrick@parcs.ath.cx>
1992
1993 PR c++/60764
1994 * call.c (build_user_type_coversion): Use build_dummy_object
1995 to create the placeholder object for a constructor method call.
1996 (build_special_member_call): Likewise.
1997 (build_over_call): Check for the placeholder object with
1998 is_dummy_object.
1999 (build_new_method_call_1): Likewise. Don't attempt to resolve
2000 a dummy object for a constructor method call.
2001
23b0af0a
PP
20022014-04-16 Paul Pluzhnikov <ppluzhnikov@google.com>
2003
2004 PR c++/59295
2005 * friend.c (add_friend, make_friend_class): Move repeated friend
2006 warning under Wredundant_decls.
2007
fe9208ef
PC
20082014-04-15 Paolo Carlini <paolo.carlini@oracle.com>
2009
2010 * decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
2011 * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
2012 (do_class_using_decl): Likewise.
2013 * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
2014
4f0ddb6f
JJ
20152014-04-15 Jakub Jelinek <jakub@redhat.com>
2016
2017 PR plugins/59335
2018 * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
2019
9dba4b55
PC
20202014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
2021
2022 * cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
2023
8095617b
PC
20242014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
2025
2026 * pt.c (mark_template_parm): Use template_parm_level_and_index.
2027
7d0039a6
JM
20282014-04-11 Jason Merrill <jason@redhat.com>
2029
63620197
JM
2030 * parser.h (struct cp_token): Rename ambiguous_p to error_reported.
2031 * parser.c: Adjust.
2032 (cp_lexer_get_preprocessor_token): Always clear it.
2033 (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
2034
1c982d13
JM
2035 DR 1467
2036 PR c++/51747
2037 * decl.c (reshape_init_r): Handle a single element of class type.
2038
7d0039a6
JM
2039 DR 1338
2040 * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
2041 built-in operator new.
2042
1b255e8f
PC
20432014-04-11 Paolo Carlini <paolo.carlini@oracle.com>
2044
2045 PR c++/58600
2046 * name-lookup.c (parse_using_directive): Return early if the
2047 attribs argument is error_mark_node; use get_attribute_name.
2048
4561285b
JM
20492014-04-11 Jason Merrill <jason@redhat.com>
2050
2051 DR 1030
2052 PR c++/51253
2053 * cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
2054 * call.c (struct z_candidate): Add flags field.
2055 (add_candidate): Add flags parm.
2056 (add_function_candidate, add_conv_candidate, build_builtin_candidate)
2057 (add_template_candidate_real): Pass it.
2058 (build_over_call): Set CALL_EXPR_LIST_INIT_P.
2059 * tree.c (build_aggr_init_expr): Copy it.
2060 * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
2061
8aa1cce6
RB
20622014-04-10 Richard Biener <rguenther@suse.de>
2063 Jakub Jelinek <jakub@redhat.com>
2064
2065 PR ipa/60761
2066 * error.c (dump_decl) <case FUNCTION_DECL>: If
2067 DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
2068 recurse on DECL_ABSTRACT_ORIGIN instead of printing
2069 <built-in>.
2070
51970b3e
FC
20712014-04-09 Fabien Chêne <fabien@gcc.gnu.org>
2072
2073 * pt.c (check_template_variable): Check for the return of pedwarn
2074 before emitting a note.
2075 * parser.c (cp_parser_lambda_introducer): Likewise.
2076
a7c3f276
PC
20772014-04-08 Paolo Carlini <paolo.carlini@oracle.com>
2078
2079 PR c++/59115
2080 * pt.c (process_template_parm): For an invalid non-type parameter
2081 only set TREE_TYPE to error_mark_node.
2082 (push_inline_template_parms_recursive, comp_template_parms,
2083 redeclare_class_template, coerce_template_template_parm,
2084 coerce_template_template_parms, unify): Use error_operand_p.
2085
38f09da3
NS
20862014-04-08 Nathan Sidwell <nathan@codesourcery.com>
2087
2088 * class.c (check_bases_and_members): Warn about non-virtual dtors
2089 in public bases only. Check warn_ecpp before complaining about
2090 non-polymorphic bases.
2091
090ec702
FC
20922014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
2093
2094 * decl.c (duplicate_decls): Check for the return of warning_at
2095 before emitting a note.
2096 (warn_misplaced_attr_for_class_type): Likewise.
2097 (check_tag_decl): Likewise.
2098
9119c7fa
PC
20992014-04-04 Paolo Carlini <paolo.carlini@oracle.com>
2100
2101 PR c++/58207
2102 * semantics.c (sort_constexpr_mem_initializers): Robustify loop.
2103
822cc906
PP
21042014-04-04 Patrick Palka <patrick@parcs.ath.cx>
2105
0450fc0b
PP
2106 PR c++/44613
2107 * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
2108 * decl.c (cp_finish_decl): Create a new BIND_EXPR before
2109 instantiating a variable-sized type.
2110
822cc906
PP
2111 PR c++/21113
2112 * decl.c (decl_jump_unsafe): Consider variably-modified decls.
2113
3fe99aa5
FC
21142014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
2115
2116 * class.c (find_abi_tags_r): Check for the return of warning
2117 before emitting a note.
2118 (one_inherited_ctor): Likewise.
2119
d4a69ff4
FC
21202014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
2121
2122 * decl.c (duplicate_decls): Check for the return of permerror
2123 before emitting a note.
2124
880a467b
NS
21252014-04-03 Nathan Sidwell <nathan@codesourcery.com>
2126
2127 * class.c (accessible_nvdtor_p): New.
2128 (check_bases): Don't check base destructor here ...
2129 (check_bases_and_members): ... check them here. Trigger on
2130 Wnon-virtual-dtor flag.
2131 (finish_struct_1): Use accessible_nvdtor_p.
2132
cd8a9d6d
JM
21332014-04-01 Jason Merrill <jason@redhat.com>
2134
52710d27
JM
2135 * pt.c (process_partial_specialization): Say "not deducible"
2136 rather than "not used". Use inform.
2137
cd8a9d6d
JM
2138 PR c++/60374
2139 * pt.c (coerce_template_parms): Check that the pack expansion
2140 pattern works with the first matching parameter.
2141
0df9da03
FC
21422014-04-01 Fabien Chêne <fabien@gcc.gnu.org>
2143
9ffac481 2144 * init.c (perform_member_init): Homogenize uninitialized
0df9da03
FC
2145 diagnostics.
2146
2982147e
JM
21472014-04-01 Jason Merrill <jason@redhat.com>
2148
24991604
JM
2149 PR c++/60708
2150 * call.c (build_array_conv): Call complete_type.
2151
dd5593fc
JM
2152 PR c++/60713
2153 * typeck2.c (PICFLAG_SIDE_EFFECTS): New.
2154 (picflag_from_initializer): Return it.
2155 (process_init_constructor): Handle it.
2156
2982147e
JM
2157 PR c++/60642
2158 * decl2.c (is_late_template_attribute): Don't defer abi_tag.
2159 * mangle.c (write_unqualified_name): Fix abi_tag on templates.
2160 * pt.c (get_template_info): Handle NAMESPACE_DECL.
2161 (most_general_template): Handle more kinds of template.
2162 * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
2163 instantiations and specializations.
2164
9ffac481 21652014-03-31 Patrick Palka <patrick@parcs.ath.cx>
75d850f3
PP
2166
2167 PR c++/44859
2168 * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
2169 COMPONENT_REFs and ARRAY_REFs sooner.
2170
4b0040a6
AB
21712014-03-29 Adam Butcher <adam@jessamine.co.uk>
2172
2173 PR c++/60626
2174 * parser.c (cp_parser_init_declarator): Handle erroneous generic type
2175 usage in non-functions with pushed scope.
2176
5294e4c3
AB
21772014-03-28 Adam Butcher <adam@jessamine.co.uk>
2178
2179 PR c++/60573
2180 * name-lookup.h (cp_binding_level): New transient field defining_class_p
2181 to indicate whether a scope is in the process of defining a class.
2182 * semantics.c (begin_class_definition): Set defining_class_p.
2183 * name-lookup.c (leave_scope): Reset defining_class_p.
2184 * parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
2185 defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
2186 unwinding to class-defining scope to handle the erroneous definition of
2187 a generic function of an arbitrarily nested class within an enclosing
2188 class.
2189
816551fe 21902014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
5294e4c3
AB
2191
2192 PR c++/52369
d4a69ff4 2193 * method.c (walk_field_subobs): Improve the diagnostic
816551fe 2194 locations for both REFERENCE_TYPEs and non-static const members.
d4a69ff4 2195 * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
816551fe
FC
2196 instead of %qD to be consistent with the c++11 diagnostic.
2197
45156f14
JM
21982014-03-25 Jason Merrill <jason@redhat.com>
2199
d74db8ff
JM
2200 PR c++/60566
2201 PR c++/58678
2202 * class.c (build_vtbl_initializer): Handle abstract dtors here.
2203 * search.c (get_pure_virtuals): Not here.
2204
1cbba79d
JM
2205 PR c++/60375
2206 * parser.c (cp_parser_lambda_expression): Don't parse the body of
2207 a lambda in unevaluated context.
2208
45156f14
JM
2209 PR c++/60628
2210 * decl.c (create_array_type_for_decl): Complain about array of auto.
2211
8bcc90b0
JJ
22122014-03-25 Jakub Jelinek <jakub@redhat.com>
2213
2214 PR c++/60331
2215 * semantics.c (potential_constant_expression_1): Handle
2216 DECL_EXPR.
2217
21554a3e
AB
22182014-03-24 Adam Butcher <adam@jessamine.co.uk>
2219
2220 PR c++/60627
2221 * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
2222 introducing an implicit function template parameter within an explicit
2223 instantiation.
2224
d0f27fb6
JM
22252014-03-22 Jason Merrill <jason@redhat.com>
2226
2227 PR c++/60574
2228 * decl.c (grokdeclarator): Change permerror about 'virtual auto'
2229 to error.
2230
279d3eb8
PC
22312014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
2232
2233 PR c++/60384
2234 * name-lookup.c (push_class_level_binding_1): Check identifier_p
2235 on the name argument.
2236
7614d42c
JJ
22372014-03-20 Jakub Jelinek <jakub@redhat.com>
2238
2239 PR c++/60572
2240 * init.c (build_zero_init_1): Ignore fields with error_mark_node
2241 type.
2242
7d092805
PC
22432014-03-19 Paolo Carlini <paolo.carlini@oracle.com>
2244
2245 PR c++/51474
2246 * call.c (build_new_method_call_1): Handle pure virtuals called by
2247 NSDMIs too.
2248
c66f2ba1
AB
22492014-03-17 Adam Butcher <adam@jessamine.co.uk>
2250
e0672441
AB
2251 PR c++/60390
2252 * parser.c (cp_parser_member_declaration): Don't allow
2253 finish_fully_implicit_template to consider friend declarations to be
2254 class member templates.
2255 (synthesize_implicit_template_parm): Handling winding back through class
2256 scope to the class being defined in order to inject a template argument
2257 list.
2258
c66f2ba1
AB
2259 PR c++/60391
2260 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
2261 function scope as per cp_parser_skip_to_end_of_statement.
2262
50e4d1ec
PC
22632014-03-17 Paolo Carlini <paolo.carlini@oracle.com>
2264
2265 PR c++/59571
2266 * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
2267
7e343703
JM
22682014-03-14 Jason Merrill <jason@redhat.com>
2269
47b5d284
JM
2270 PR c++/60532
2271 PR c++/58678
2272 * search.c (get_pure_virtuals): Handle abstract dtor here.
2273 (dfs_get_pure_virtuals): Not here.
2274
7e343703
JM
2275 PR c++/58678
2276 * search.c (dfs_get_pure_virtuals): Treat the destructor of an
2277 abstract class as pure.
2278
b0a87402
PC
22792014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
2280
2281 PR c++/60383
2282 * pt.c (maybe_process_partial_specialization): Check return value
2283 of check_specialization_namespace.
2284
9299bde0
PC
22852014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
2286
2287 PR c++/60254
2288 * semantics.c (finish_static_assert): Call cxx_constant_value only
2289 if require_potential_rvalue_constant_expression returns true.
2290
5af1876c
PC
22912014-03-11 Paolo Carlini <paolo.carlini@oracle.com>
2292
2293 PR c++/60389
2294 * method.c (get_inherited_ctor): New.
2295 * cp-tree.h (get_inherited_ctor): Declare it.
2296 * semantics.c (is_valid_constexpr_fn): Use it.
2297
4d3f2fa6
JM
22982014-03-10 Jason Merrill <jason@redhat.com>
2299
4a4e80cb
JM
2300 PR c++/60367
2301 * call.c (convert_default_arg): Remove special handling for
2302 CONSTRUCTOR.
2303
4d3f2fa6
JM
2304 PR c++/53492
2305 * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
2306 when deciding whether to call push_template_decl for a member class.
2307 * pt.c (push_template_decl_real): Return after wrong levels error.
2308
14e62702
AB
23092014-03-08 Adam Butcher <adam@jessamine.co.uk>
2310
1c74dc2a
AB
2311 PR c++/60033
2312 * pt.c (tsubst_copy): When retrieving a capture pack from a generic
2313 lambda, remove the lambda's own template argument list prior to fetching
2314 the specialization.
2315
14e62702
AB
2316 PR c++/60393
2317 * parser.c (cp_parser_parameter_declaration_clause): Move generic
2318 function template unwinding on error into a more general location, ...
2319 (cp_parser_skip_to_end_of_statement): ... here.
2320
b75bf8b1
JM
23212014-03-07 Jason Merrill <jason@redhat.com>
2322
c93a4be5
JM
2323 * Make-lang.in (check_g++_parallelize): Split dg.exp.
2324
968b3503
JM
2325 * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
2326 we're in a trailing return type.
2327
d08a068b
JM
2328 * typeck.c (comp_template_parms_position): 'auto' and
2329 'decltype(auto)' are different from real template parms.
2330
94151520
JM
2331 * parser.c (cp_parser_using_declaration): Consume the semicolon
2332 after bare parameter pack error.
2333
0e4cf887
JM
2334 * cp-tree.h (REF_PARENTHESIZED_P): New.
2335 * semantics.c (force_paren_expr): Set it.
2336 * pt.c (do_auto_deduction): Check it.
2337 (tsubst) [COMPONENT_REF]: Copy it.
2338 * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
2339
b75bf8b1
JM
2340 * decl.c (create_array_type_for_decl): Only warn about invalid
2341 C++1y VLA if flag_iso or warn_vla>0.
2342 (grokdeclarator): Likewise.
2343 * pt.c (tsubst): Likewise.
2344 * semantics.c (finish_decltype_type): Likewise.
2345 * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
2346 (cp_build_addr_expr_1): Likewise.
2347 * init.c (build_new_1): Improve diagnostics.
2348
c12b3bd3
PC
23492014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
2350
2351 PR c++/58609
2352 * decl.c (check_initializer): Return NULL_TREE after error;
2353 consistently use inform.
2354
bc65bdd5
PC
23552014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
2356
2357 * decl.c (check_initializer): Remove dead code.
2358
3af9c5e9
MP
23592014-03-06 Marek Polacek <polacek@redhat.com>
2360
2361 PR c/60197
2362 * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
2363 of checking tree code.
2364
d9d8f6b1
PC
23652014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
2366
2367 * parser.c (cp_lexer_set_source_position): New.
2368 (cp_parser_mem_initializer): Use it.
2369 (cp_parser_postfix_open_square_expression): Likewise.
2370 (cp_parser_parenthesized_expression_list): Likewise.
2371 (cp_parser_new_initializer): Likewise.
2372 (cp_parser_jump_statement): Likewise.
2373 (cp_parser_initializer): Likewise.
2374 (cp_parser_functional_cast): Likewise.
2375
04702386
JM
23762014-03-05 Jason Merrill <jason@redhat.com>
2377
f9b381b8
JM
2378 PR c++/60409
2379 * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
2380 dependent expression.
2381
5d264d62
JM
2382 PR c++/60361
2383 * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
2384 if re-parsing might succeed.
2385 * semantics.c (finish_id_expression): Use of a parameter outside
2386 the function body is a parse error.
2387
04702386
JM
2388 * parser.c (cp_parser_mem_initializer): Set input_location
2389 properly for init-list warning.
2390 (cp_parser_postfix_open_square_expression): Likewise.
2391 (cp_parser_parenthesized_expression_list): Likewise.
2392 (cp_parser_new_initializer): Likewise.
2393 (cp_parser_jump_statement): Likewise.
2394 (cp_parser_initializer): Likewise.
2395 (cp_parser_functional_cast): Likewise.
2396
201fe4c6
JM
23972014-03-04 Jason Merrill <jason@redhat.com>
2398
ca982b1c
JM
2399 PR c++/60417
2400 * typeck2.c (process_init_constructor_record): Set
2401 CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
2402
201fe4c6
JM
2403 PR c++/60415
2404 PR c++/54359
2405 * parser.c (cp_parser_direct_declarator): Set declarator to
2406 cp_error_declarator on invalid qualified-id.
2407
064fd5a8
PC
24082014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
2409
2410 PR c++/60376
2411 * parser.c (cp_parser_using_declaration): Early return when
2412 cp_parser_nested_name_specifier errors out.
2413
234b1504
AB
24142014-03-01 Adam Butcher <adam@jessamine.co.uk>
2415
2416 PR c++/60377
2417 * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
2418 function scope on parse error in function parameter list.
2419
c582aac9
PC
24202014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
2421
2422 * method.c (implicitly_declare_fn): Remove redundant
2423 DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
2424 * semantics.c (is_instantiation_of_constexpr): Likewise.
2425 * error.c (dump_function_decl): Likewise.
2426
fe96264f
JM
24272014-03-01 Jason Merrill <jason@redhat.com>
2428
2429 PR c++/60379
2430 * semantics.c (begin_maybe_infinite_loop): Use
2431 fold_non_dependent_expr_sfinae.
2432
abb839ec
JM
24332014-02-28 Jason Merrill <jason@redhat.com>
2434
2435 PR c++/58845
2436 * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
2437
f1ee5eaf
PC
24382014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
2439
2440 PR c++/58610
2441 * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
2442 * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
2443 * lambda.c (maybe_add_lambda_conv_op): Likewise.
2444
ae9b3eb9
PC
24452014-02-27 Paolo Carlini <paolo.carlini@oracle.com>
2446
2447 PR c++/60253
2448 * call.c (convert_arg_to_ellipsis): Return error_mark_node after
2449 error_at.
2450
7fce82f5
JM
24512014-02-27 Jason Merrill <jason@redhat.com>
2452
2453 PR c++/60353
2454 PR c++/55877
2455 * decl2.c (tentative_decl_linkage): Don't mess with functions that
2456 are not yet defined.
2457
2f75f515
JM
24582014-02-26 Jason Merrill <jason@redhat.com>
2459
c3439626
JM
2460 PR c++/60347
2461 PR lto/53808
2462 * class.c (clone_function_decl): Don't note_vague_linkage_fn.
2463 * init.c (build_vtbl_address): Do it here.
2464
ca7e759d
JM
2465 PR c++/59231
2466 PR c++/11586
2467 PR c++/14710
2468 PR c++/57132
2469 * pt.c (struct warning_sentinel): New.
2470 (tsubst_copy_and_build): Use it instead of
2471 c_inhibit_evaluation_warnings.
2472 * typeck.c (maybe_warn_about_useless_cast): Remove
2473 c_inhibit_evaluation_warnings check.
2474
b0ff7fe1
JM
2475 PR c++/54440
2476 * pt.c (get_template_parm_index): New.
2477 (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
2478 (process_template_parm): Allow bare packs in template template
2479 parm template parms.
2480 (coerce_template_parameter_pack): Handle fixed template template
2481 parm packs and fixed packs not at the end of the parm list.
2482 (coerce_template_parms): Handle template parm packs not at the end
2483 of the parm list.
2484 (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
2485
f3417723
JM
2486 PR c++/60182
2487 * pt.c (unify): Ignore alias templates when deducing a template
2488 template parameter.
2489
2f75f515
JM
2490 PR c++/60345
2491 Revert:
2492 DR 1571
2493 * call.c (reference_binding): Recurse on user-defined conversion.
2494 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
2495
d808e92e
JM
24962014-02-25 Jason Merrill <jason@redhat.com>
2497
be9e97bd
JM
2498 DR 1571
2499 * call.c (reference_binding): Recurse on user-defined conversion.
2500 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
2501
241172a5
JM
2502 * call.c (print_conversion_rejection): Handle n_arg of -2.
2503 (build_user_type_conversion_1): Pass it.
2504
944b63db
JM
2505 PR c++/55877
2506 * decl2.c (no_linkage_error): Handle C++98 semantics.
2507 (reset_type_linkage): Move from decl.c.
2508 (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
2509 (bt_reset_linkage_2, reset_decl_linkage): New.
2510 (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
2511 (cp_write_global_declarations): Move condition into no_linkage_error.
2512 * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
2513 * semantics.c (expand_or_defer_fn_1): Factor out
2514 tentative_decl_linkage.
2515 * cp-tree.h: Adjust.
2516
a6659b55
JM
2517 * decl2.c (finish_static_data_member_decl): Diagnose static data
2518 member in unnamed class.
2519 * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
2520
6e6eaecc
JM
2521 PR lto/53808
2522 * class.c (clone_function_decl): Call note_vague_linkage_fn for
2523 defaulted virtual dtor.
2524
d808e92e
JM
2525 DR 1286
2526 PR c++/60328
2527 * pt.c (get_underlying_template): Fix equivalence calculation.
2528
81493f78
AB
25292014-02-25 Adam Butcher <adam@jessamine.co.uk>
2530
adbdb8c7
AB
2531 PR c++/60311
2532 * parser.c (function_being_declared_is_template_p): Return false when
2533 processing a template parameter list.
2534 (cp_parser_parameter_declaration_clause): Don't set
2535 auto_is_implicit_function_template_parm_p when processing a
2536 template parameter list.
2537
1b859733
AB
2538 * parser.c (synthesize_implicit_template_parm): Inject new template
2539 argument list appropriately when a generic member function
2540 of a class template is declared out-of-line.
2541
81493f78
AB
2542 PR c++/60065
2543 * parser.c (cp_parser_direct_declarator): Don't save and
2544 restore num_template_parameter_lists around call to
2545 cp_parser_parameter_declaration_list.
2546 (function_being_declared_is_template_p): New predicate.
2547 (cp_parser_parameter_declaration_list): Use
2548 function_being_declared_is_template_p as predicate for
2549 inspecting current function template parameter list length
2550 rather than num_template_parameter_lists.
2551
01689517
JM
25522014-02-24 Jason Merrill <jason@redhat.com>
2553
2105f1a7
JM
2554 PR c++/60146
2555 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
2556 DECL_EXPR initialize a non-class iterator.
2557
01689517
JM
2558 PR c++/60312
2559 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
2560
a866509a 25612014-02-21 Jason Merrill <jason@redhat.com>
1c195d2a 2562
7eae5d36
JM
2563 PR c++/58170
2564 * parser.c (cp_parser_type_name): Always check dependency.
2565 (cp_parser_type_specifier_seq): Call
2566 cp_parser_parse_and_diagnose_invalid_type_name.
2567
d723358d
JM
2568 PR c++/60108
2569 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
2570
c754ffcc
JM
2571 PR c++/60185
2572 * parser.c (cp_parser_default_argument): Clear
2573 current_class_ptr/current_class_ref like tsubst_default_argument.
2574
e7b67047
JM
2575 PR c++/60252
2576 * lambda.c (maybe_resolve_dummy): Check lambda_function rather
2577 than current_binding_level.
2578
b98fb363
JM
2579 PR c++/60186
2580 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
2581
3e9e24ab
JM
2582 PR c++/60187
2583 * parser.c (cp_parser_enum_specifier): Call
2584 check_for_bare_parameter_packs.
2585
71b735a5
JM
2586 PR c++/59347
2587 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
2588 erroneous typedef.
2589
2671a8ef
JM
2590 PR c++/60241
2591 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
2592 of the partial instantiation, not the most general template.
2593 (maybe_process_partial_specialization): Reassign everything on
2594 that list.
2595
0d4af074
JM
2596 PR c++/60216
2597 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
2598 (check_explicit_specialization): Don't clone.
2599
07874b24
JM
2600 PR c++/60219
2601 * pt.c (coerce_template_parms): Bail if argument packing fails.
2602
843633f8
JM
2603 PR c++/60224
2604 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
2605 Don't get confused by a CONSTRUCTOR that already has a type.
2606
f611c78a 2607 PR c++/60227
cd3ef6f7
JM
2608 * call.c (build_array_conv): Don't crash on VLA.
2609
1ea32974
JM
2610 PR c++/60248
2611 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
2612
1c195d2a
JM
2613 PR c++/60252
2614 * lambda.c (maybe_resolve_dummy): Don't try to capture this
2615 in declaration context.
a866509a 2616
e9cd6551
JM
2617 DR 1591
2618 PR c++/60051
2619 * pt.c (unify): Only unify if deducible. Handle 0-length list.
2620
9e01a71f
JM
2621 PR c++/60250
2622 * parser.c (cp_parser_direct_declarator): Don't wrap a
2623 type-dependent expression in a NOP_EXPR.
2624
e429bc35
JM
2625 PR c++/60251
2626 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
2627
a866509a
JM
2628 PR c++/60167
2629 PR c++/60222
2630 PR c++/58606
2631 * parser.c (cp_parser_template_argument): Restore dereference.
2632 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
2633 (process_partial_specialization): Handle deref.
2634 (unify): Likewise.
2635
2807d5d2
AB
26362014-02-21 Adam Butcher <adam@jessamine.co.uk>
2637
2638 PR c++/60052
2639 PR c++/60053
2640 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
2641 implicit_template_scope upon leaving an out-of-line generic member
2642 function definition.
2643
f2381074
KT
26442014-02-20 Kai Tietz <ktietz@redhat.com>
2645
f1dbbe42
KT
2646 PR c++/58873
2647 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
2648 valued type argument as error_mark_node.
2649
f2381074
KT
2650 PR c++/58835
2651 * semantics.c (finish_fname): Handle error_mark_node.
2652
55694175
JM
26532014-02-19 Jason Merrill <jason@redhat.com>
2654
2655 PR c++/60046
2656 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
2657 spec from template context.
2658
4998d666
JJ
26592014-02-19 Jakub Jelinek <jakub@redhat.com>
2660
128ed090
JJ
2661 PR debug/56563
2662 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
2663 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
2664
4998d666
JJ
2665 PR c++/60267
2666 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
2667
a1535f52
PC
26682014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
2669
2670 PR c++/60225
2671 * semantics.c (ensure_literal_type_for_constexpr_object): Use
2672 strip_array_types.
2673
26742014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
2675
2676 PR c++/60215
2677 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
2678 During error recovery allow_non_constant may be false.
2679
b19fd0fd
AB
26802014-02-18 Adam Butcher <adam@jessamine.co.uk>
2681
2682 PR c++/60190
2683 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
2684 scope whenever a template parameter list has been started, independent
2685 of whether the function call operator was well-formed or not.
2686
75e9d9a0
AB
2687 PR c++/60064
2688 * parser.c (cp_parser_member_declaration): Pop fully implicit template
2689 scope for generic friend declarations as well as for non-friends.
2690
6cfbc023
PC
26912014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
2692
2693 PR c++/60047
2694 * method.c (implicitly_declare_fn): A constructor of a class with
2695 virtual base classes isn't constexpr (7.1.5p4).
2696
b3bb0eb9
JH
26972014-02-05 Jan Hubicka <hubicka@ucw.cz
2698
2699 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
2700
54e19c00
JJ
27012014-02-05 Jakub Jelinek <jakub@redhat.com>
2702
2703 PR c++/58703
2704 * parser.c (cp_parser_omp_declare_reduction): Save and free
2705 declarator_obstack.
2706
5d77fb19
MG
27072014-02-03 Marc Glisse <marc.glisse@inria.fr>
2708
2709 PR c++/53017
2710 PR c++/59211
2711 * tree.c (handle_init_priority_attribute): Call default_conversion on
2712 the attribute argument.
2713
f344f525
PC
27142014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
2715
2716 PR c++/58871
2717 * method.c (synthesized_method_walk): If vbases is non-null but
2718 is_empty is true, likewise don't worry about the virtual bases.
2719
4244ec23
PC
27202014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
2721
2722 PR c++/51219
2723 * typeck2.c (process_init_constructor_record): Just skip unnamed
2724 bit-fields.
2725
99a82a1e
JM
27262014-01-31 Jason Merrill <jason@redhat.com>
2727
3d27e066
JM
2728 PR c++/59469
2729 * pt.c (mark_decl_instantiated): Call mark_needed.
2730
6962711f
JM
2731 PR c++/58672
2732 * decl2.c (handle_tls_init): Handle null init fn.
2733
99a82a1e
JM
2734 PR c++/55800
2735 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
2736
f1f82a37
PC
27372014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
2738
2739 PR c++/59082
2740 * class.c (build_vfield_ref): Early return error_mark_node if
2741 TYPE_VFIELD (type) is null.
2742 (build_base_path): Check return value of build_vfield_ref.
2743
4b55a782
JM
27442014-01-31 Jason Merrill <jason@redhat.com>
2745
408249b2
JM
2746 PR c++/59646
2747 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
2748 [ck_list]: Check for error_mark_node.
2749 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
2750
4b55a782
JM
2751 PR c++/57043
2752 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
2753 during partial ordering.
2754
81e5eca8
MP
27552014-01-31 Marek Polacek <polacek@redhat.com>
2756
2757 PR c/59963
2758 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
2759
f221dc81
JM
27602014-01-30 Jason Merrill <jason@redhat.com>
2761
2762 PR c++/57899
2763 * cp-tree.h (struct saved_scope): Add x_local_specializations.
2764 (local_specializations): New macro.
2765 * pt.c (local_specializations): Remove variable.
2766
35e519c4
RS
27672014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
2768
2769 PR c++/58708
2770 * parser.c (make_string_pack): Use double_int::from_buffer.
2771
68fca595
MP
27722014-01-30 Marek Polacek <polacek@redhat.com>
2773
2774 PR c/59940
2775 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
2776 input_location.
2777 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
2778 with input_location.
2779 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
2780 loc parameter.
2781
9ca57929
PC
27822014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
2783
2784 PR c++/58843
2785 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
2786
e1b317ae
PC
27872014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
2788
2789 PR c++/58649
2790 * pt.c (lookup_template_class_1): Check start_enum return value
2791 for error_mark_node.
2792
cc27b5cd
PC
27932014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
2794
2795 * decl.c (duplicate_decls, typename_hash, typename_compare):
2796 Use TYPE_IDENTIFIER.
2797 * error.c (dump_type): Likewise.
2798 * mangle.c (dump_substitution_candidates): Likewise.
2799
404c2aea
JM
28002014-01-30 Jason Merrill <jason@redhat.com>
2801
2802 PR c++/59633
2803 * decl2.c (attributes_naming_typedef_ok): New.
2804 * cp-tree.h: Declare it.
2805 * decl.c (grokdeclarator): Check it.
2806 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
2807
7651c656
JM
28082014-01-29 Jason Merrill <jason@redhat.com>
2809
3c4e06c2
JM
2810 PR c++/59707
2811 * call.c (add_builtin_candidate): Catch dependent types.
2812
0429e064
JM
2813 PR c++/59989
2814 * pt.c (expand_template_argument_pack): Correct
2815 non_default_args_count calculation.
2816
434e6c8a
JM
2817 PR c++/58466
2818 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
2819
7651c656
JM
2820 PR c++/59956
2821 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
2822 have a friend template in a class template.
2823 * pt.c (tsubst_friend_function): Look through it.
2824 (push_template_decl_real): A friend member template is
2825 primary.
2826
e8902891
PC
28272014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
2828
2829 PR c++/58846
2830 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
2831 == error_mark_node.
2832
e1e30986
PC
28332014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
2834
2835 PR c++/58674
2836 * pt.c (instantiate_template_1): Check for error_mark_node the second
2837 argument too.
2838
dc9e1b86
JM
28392014-01-29 Jason Merrill <jason@redhat.com>
2840
8ae90330
JM
2841 PR c++/59916
2842 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
2843 cdtor_returns_this case.
2844
dc9e1b86
JM
2845 PR c++/59315
2846 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
2847
4ca56230
PC
28482014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
2849
2850 PR c++/58702
2851 * semantics.c (finish_omp_reduction_clause): Check type for
2852 error_mark_node.
2853
2e5e7103
JM
28542014-01-28 Jason Merrill <jason@redhat.com>
2855
15b31f8c
JM
2856 PR c++/59791
2857 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
2858 (tsubst_copy): Use it if lookup fails.
2859
4c690cea
JM
2860 PR c++/59818
2861 * pt.c (tsubst_function_type): Make sure we keep the same function
2862 quals.
2863
0f59a31d
JM
2864 PR c++/58701
2865 * semantics.c (build_anon_member_initialization): Stop walking
2866 when we run out of COMPONENT_REFs.
2867
3807059e
JM
2868 PR c++/58632
2869 * decl.c (lookup_and_check_tag): Ignore template parameters if
2870 scope == ts_current.
2871 * pt.c (check_template_shadow): Don't complain about the injected
2872 class name.
2873
1377eb9a
JM
2874 * decl.c (duplicate_decls): Tweak.
2875
2e5e7103
JM
2876 PR c++/53756
2877 * mangle.c (write_unqualified_name): Handle operator auto.
2878
64d34897
JM
28792014-01-27 Jason Merrill <jason@redhat.com>
2880
63a18c8e
JM
2881 PR c++/59823
2882 Core DR 1138
2883 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
2884 list-initialization. A conversion to rvalue ref that involves
2885 an lvalue-rvalue conversion is bad.
2886 (convert_like_real): Give helpful error message.
2887
b89cc12b
JM
2888 PR c++/54652
2889 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
2890
9e73c3f3
JM
2891 PR c++/58504
2892 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
2893 types.
2894
b25c2a2f
JM
2895 PR c++/58606
2896 * pt.c (template_parm_to_arg): Call convert_from_reference.
2897 (tsubst_template_arg): Don't strip reference refs.
2898
1b87c991
JM
2899 PR c++/58639
2900 * call.c (build_aggr_conv): Reject value-initialization of reference.
2901
11074000
JM
2902 PR c++/58812
2903 PR c++/58651
2904 * call.c (convert_like_real): Give helpful error about excess braces
2905 for ck_rvalue of scalar type.
2906
f235ad11
JM
2907 Core DR 1288
2908 * call.c (reference_binding): Only elide braces if the single
2909 element is reference-related.
2910
30f6b784
JM
2911 PR c++/58814
2912 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
2913 stabilizing.
2914
9cca4e3d
JM
2915 PR c++/58837
2916 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
2917 FUNCTION_DECL.
2918
64d34897
JM
2919 PR c++/59097
2920 * decl.c (compute_array_index_type): Don't call
2921 maybe_constant_value for a non-integral expression.
2922
b72271b9
BI
29232014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
2924
2925 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
2926 flag_cilkplus.
2927 * cp-gimplify.c (cp_genericize): Likewise.
2928 * decl.c (grokfndecl): Likewise.
2929 * parser.c (cp_parser_postfix_expression): Likewise.
2930 (cp_parser_postfix_open_square_expression): Likewise.
2931 (cp_parser_direct_declarator): Likewise.
2932 (is_cilkplus_vector_p): Likewise.
2933 (cp_parser_omp_clause_name): Likewise.
2934 (cp_parser_omp_all_clauses): Likewise.
2935 * pt.c (apply_late_template_attributes): Likewise.
2936 * typeck.c (cp_build_array_ref): Likewise.
2937 (cp_build_compound_expr): Likewise.
2938 (check_return_expr): Likewise.
2939
114bf260
JM
29402014-01-24 Jason Merrill <jason@redhat.com>
2941
233aedf4
JM
2942 PR c++/58550
2943 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
2944 c++11 into error.
2945
114bf260
JM
2946 PR c++/59886
2947 PR c++/59659
2948 * typeck2.c (process_init_constructor_array): Don't create
2949 RANGE_EXPR yet.
2950
2cbf3dd7
JJ
29512014-01-24 Jakub Jelinek <jakub@redhat.com>
2952
2953 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
2954 handling for RANGE_ARRAY case.
2955
f9e2a506
PC
29562014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
2957
2958 PR c++/57524
2959 * name-lookup.c (push_using_directive): Use timevar_cond_start.
2960
393e8e8b
MP
29612014-01-23 Marek Polacek <polacek@redhat.com>
2962
2963 PR c/59846
2964 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
2965
f04dda30
MP
29662014-01-23 Marek Polacek <polacek@redhat.com>
2967
2968 PR c/58346
2969 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
2970 an empty aggregate.
2971
928d850f
JM
29722014-01-23 Jason Merrill <jason@redhat.com>
2973
20f18c3c
JM
2974 PR c++/55189
2975 * cp-tree.h (struct language_function): Add infinite_loop and
2976 infinite_loops.
2977 (current_function_infinite_loop): New.
2978 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
2979 (break_maybe_infinite_loop): New.
2980 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
2981 (finish_do_stmt, finish_for_cond, finish_for_stmt)
2982 (begin_range_for_stmt): Use them.
2983 * decl.c (finish_function): Don't warn about missing return
2984 if current_function_infinite_loop.
2985 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
2986 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
2987
928d850f
JM
2988 * call.c (build_op_delete_call): Use make_tree_vector and
2989 release_tree_vector.
2990
ea15e254
PC
29912014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
2992
2993 PR c++/58980
2994 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
2995 nested_name_specifier.
2996
74558dd9
BI
29972014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
2998
2999 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
3000 see if there is an attribute after function decl. If so, then
3001 parse them now.
3002 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
3003 enabled function late parsing.
3004 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
3005 attribute for a SIMD-enabled function.
3006 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
3007 the function is used by SIMD-enabled function (indicated by NULL
3008 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
3009 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
3010 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
3011 vectorlength clause in SIMD-enabled function and #pragma SIMD's
3012 vectorlength clause. Added a new bool parameter to differentiate
3013 between the two.
3014 (cp_parser_cilk_simd_fn_vector_attrs): New function.
3015 (is_cilkplus_vector_p): Likewise.
3016 (cp_parser_late_parsing_elem_fn_info): Likewise.
3017 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
3018 and "vectorlength" clauses when Cilk Plus is enabled.
3019 (cp_parser_omp_clause_linear): Added a new parameter of type bool
3020 and emit a sorry message when step size is a parameter.
3021 * parser.h (cp_parser::cilk_simd_fn_info): New field.
3022 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
3023 flag_openmp.
3024 * pt.c (apply_late_template_attributes): Likewise.
3025
652fea39
JJ
30262014-01-23 Jakub Jelinek <jakub@redhat.com>
3027
3028 PR middle-end/58809
3029 * semantics.c (finish_omp_reduction_clause): Reject
3030 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
3031
32ab58b2
VV
30322014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
3033
3034 PR c++/59482
3035 * parser.c (cp_parser_class_head): Push the class before parsing
3036 the base-clause, pop after it.
3037
621955cb
EB
30382014-01-20 Eric Botcazou <ebotcazou@adacore.com>
3039
3040 * decl2.c (cpp_check): Revert prototype change.
3041
a95aef3c
PC
30422014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
3043
3044 PR c++/59270
3045 PR c++/58811
3046 * init.c (build_value_init_noctor): Don't pass error_mark_node to
3047 build_value_init.
3048
12185846
PC
30492014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
3050
3051 PR c++/59269
3052 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
3053 only when errorcount == 0.
3054
0ffc4683
MP
30552014-01-17 Marek Polacek <polacek@redhat.com>
3056
3057 PR c++/59838
3058 * cvt.c (ocp_convert): Don't segfault on non-existing
3059 ENUM_UNDERLYING_TYPE.
3060
cfb1582c
JM
30612014-01-16 Jason Merrill <jason@redhat.com>
3062
3063 PR c++/59821
3064 * tree.c (bot_manip): Update the location of builtin_LINE and
3065 builtin_FILE calls.
3066
41852027
JM
30672014-01-14 Jason Merrill <jason@redhat.com>
3068
3069 PR c++/59659
3070 * typeck2.c (massage_init_elt): New.
3071 (process_init_constructor_record)
3072 (process_init_constructor_union): Use it.
3073 (process_init_constructor_array): Use it. Use RANGE_EXPR.
3074 (split_nonconstant_init_1): Handle it.
3075 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
3076
9a74f20c
BI
30772014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
3078
3079 PR c++/59631
3080 * parser.c (cp_parser_postfix_expression): Added a new if-statement
3081 and replaced an existing if-statement with else-if statement.
3082 Changed an existing error message wording to match the one from the C
3083 parser.
3084
f585f02f
JM
30852014-01-08 Jason Merrill <jason@redhat.com>
3086
3087 PR c++/59614
3088 * class.c (abi_tag_data): Add tags field.
3089 (check_abi_tags): Initialize it.
3090 (find_abi_tags_r): Support collecting missing tags.
3091 (mark_type_abi_tags): Don't look at template args.
3092 (inherit_targ_abi_tags): New.
3093 (check_bases_and_members): Use it.
3094 * cp-tree.h (ABI_TAG_IMPLICIT): New.
3095 * mangle.c (write_abi_tags): Check it.
3096
5a5e7deb
JM
30972014-01-07 Jason Merrill <jason@redhat.com>
3098
1b7ac922
JM
3099 PR c++/58856
3100 * pt.c (num_innermost_template_parms): New.
3101 (get_underlying_template): Use it.
3102
5a5e7deb
JM
3103 PR c++/58965
3104 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
3105
1f872df7
PC
31062014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
3107
3108 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
3109 the letter of 20.11.6 about Base and Derived naming the same
3110 class type modulo cv-qualifiers.
3111
2c8c6273
AB
31122014-01-06 Adam Butcher <adam@jessamine.co.uk>
3113
3114 PR c++/59635
529a6471 3115 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
2c8c6273
AB
3116 function as unimplemented for generic lambdas with varargs.
3117
81fdaa17 3118 PR c++/59636
529a6471 3119 * parser.c (cp_parser_template_parameter): Early out with
81fdaa17
AB
3120 error_mark_node if parameter declaration was not parsed.
3121
2418d7da 3122 PR c++/59629
529a6471 3123 * parser.c (cp_parser_lambda_expression): Save/reset/restore
2418d7da
AB
3124 auto_is_implicit_function_template_parm_p around lambda body.
3125
aaa15a0d 3126 PR c++/59638
529a6471 3127 * parser.c (cp_parser_init_declarator): Undo fully implicit
aaa15a0d
AB
3128 template parameter list when declarator is not a function.
3129
5c67ba02
MG
31302014-01-03 Marc Glisse <marc.glisse@inria.fr>
3131
3132 PR c++/58950
3133 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
3134
54a990d3
TB
31352014-01-03 Tobias Burnus <burnus@net-b.de>
3136
3137 PR c++/58567
3138 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
3139
cdc23b1b
PC
31402014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
3141
3142 Core DR 1442
3143 PR c++/59165
3144 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
3145 as include_std to perform_koenig_lookup.
3146 (cp_parser_postfix_expression): Adjust.
3147 * pt.c (tsubst_copy_and_build): Likewise.
3148 * semantics.c (perform_koenig_lookup): Remove bool parameter.
3149 (omp_reduction_lookup): Adjust.
3150 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
3151 (lookup_arg_dependent): Likewise.
3152 (lookup_function_nonclass): Adjust.
3153 * name-lookup.h: Adjust declaration.
3154 * cp-tree.h: Likewise.
3155
33270bf6
MG
31562014-01-02 Marc Glisse <marc.glisse@inria.fr>
3157
3158 PR c++/59087
3159 * parser.c (cp_parser_userdef_numeric_literal): Mention
3160 -fext-numeric-literals in the message.
3161
25c541b4
MG
31622014-01-02 Marc Glisse <marc.glisse@inria.fr>
3163
3164 PR c++/59641
3165 * call.c (build_conditional_expr_1): Check the return value of
3166 force_rvalue.
3167
1a763062
MG
31682014-01-02 Marc Glisse <marc.glisse@inria.fr>
3169
3170 * call.c (convert_like_real): Check complain.
3171
4939c5f3
MG
31722014-01-02 Marc Glisse <marc.glisse@inria.fr>
3173
3174 PR c++/59378
3175 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
3176 in templates.
3177
23a5b65a
RS
31782014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
3179
3180 Update copyright years
3181
f9030485
RS
31822014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
3183
3184 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
3185 the standard form for the copyright notice.
ad41bd84 3186\f
2eed95b0 3187Copyright (C) 2014 Free Software Foundation, Inc.
ad41bd84
JM
3188
3189Copying and distribution of this file, with or without modification,
3190are permitted in any medium without royalty provided the copyright
3191notice and this notice are preserved.