PR c++/78894 - ICE with class deduction and default arg
[gcc.git] / gcc / cp / ChangeLog
1 2017-01-17 Jason Merrill <jason@redhat.com>
2
3 PR c++/78894 - ICE with class deduction and default arg
4 * pt.c (build_deduction_guide): Set DECL_PRIMARY_TEMPLATE.
5
6 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
7
8 PR c++/77489
9 * mangle.c (write_discriminator): Reorganize abi warning check.
10
11 2017-01-18 Nathan Sidwell <nathan@acm.org>
12
13 * cp-tree.h: Clarify exception spec node comment.
14 * except.c (nothrow_spec_p): Simplify by checking node-equality.
15
16 PR c++/79091
17 * mangle.c (write_exception_spec): Check nothrow explicitly.
18 (write_encoding): Don't increment processing_template_decl around
19 encoding.
20
21 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
22
23 PR c++/70182
24 * mangle.c (write_template_args): Add "on" for operator names.
25
26 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
27
28 PR c++/77489
29 * mangle.c (write_discriminator): Handle discriminator >= 10.
30
31 2017-01-17 Nathan Sidwell <nathan@acm.org>
32
33 PR c++/61636
34 * cp-tree.h (maybe_generic_this_capture): Declare.
35 * lambda.c (resolvable_dummy_lambda): New, broken out of ...
36 (maybe_resolve_dummy): ... here. Call it.
37 (maybe_generic_this_capture): New.
38 * parser.c (cp_parser_postfix_expression): Speculatively capture
39 this in generic lambda in unresolved member function call.
40 * pt.c (tsubst_copy_and_build): Force hard error from failed
41 member function lookup in generic lambda.
42
43 2017-01-17 Aldy Hernandez <aldyh@redhat.com>
44
45 PR c++/70565
46 * cp-array-notation.c (expand_array_notation_exprs): Handle
47 OMP_PARALLEL.
48
49 2017-01-11 Jason Merrill <jason@redhat.com>
50
51 PR c++/78337 - ICE on invalid with generic lambda
52 * semantics.c (process_outer_var_ref): Check if containing_function
53 is null. Move inform call under complain test.
54
55 2017-01-11 Nathan Sidwell <nathan@acm.org>
56
57 PR c++/77812
58 * name-lookup.c (set_namespace_binding_1): An overload of 1 decl
59 is a new overload.
60
61 2017-01-11 Nathan Sidwell <nathan@acm.org>
62
63 * name-lookup.c (push_overloaded_decl_1): Refactor OVERLOAD creation.
64
65 2017-01-11 Jakub Jelinek <jakub@redhat.com>
66
67 PR c++/78341
68 * parser.c (cp_parser_std_attribute_spec): Remove over-eager
69 assertion. Formatting fix.
70
71 PR c++/72813
72 * decl2.c (c_parse_final_cleanups): Set flag_syntax_only to 1 after
73 writing PCH file.
74
75 2017-01-10 David Malcolm <dmalcolm@redhat.com>
76
77 PR c++/77949
78 * parser.c (cp_parser_class_specifier_1): Only suggest inserting
79 a missing semicolon if we have a valid insertion location for
80 the fix-it hint.
81
82 2017-01-10 Jason Merrill <jason@redhat.com>
83
84 FI 20, decomposition declaration with parenthesized initializer.
85 * parser.c (cp_parser_decomposition_declaration): Use
86 cp_parser_initializer.
87
88 2017-01-09 Jason Merrill <jason@redhat.com>
89
90 Implement P0195R2, C++17 variadic using.
91 * parser.c (cp_parser_using_declaration): Handle ellipsis and comma.
92 * pt.c (tsubst_decl): Handle pack expansion in USING_DECL_SCOPE.
93 * error.c (dump_decl): Likewise.
94
95 2017-01-09 Jakub Jelinek <jakub@redhat.com>
96
97 PR translation/79019
98 PR translation/79020
99 * semantics.c (finish_omp_clauses): Add missing whitespace to
100 translatable strings.
101 * cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Fix comment typo.
102
103 2017-01-07 Jason Merrill <jason@redhat.com>
104
105 PR c++/78948 - instantiation from discarded statement
106 * parser.h (struct cp_parser): Remove in_discarded_stmt field.
107 * cp-tree.h (in_discarded_stmt): Declare it.
108 (struct saved_scope): Add discarded_stmt bitfield.
109 (in_discarded_stmt): New macro.
110 * decl2.c (mark_used): Check it.
111 * parser.c (cp_parser_selection_statement): Adjust.
112 (cp_parser_jump_statement): Adjust.
113
114 2017-01-05 Jakub Jelinek <jakub@redhat.com>
115
116 PR c++/78931
117 * decl.c (cp_finish_decomp): Remove probe variable, if tt is
118 REFERENCE_REF_P, set tt to its operand.
119
120 PR c++/78890
121 * class.c (check_field_decls): Diagnose REFERENCE_TYPE fields in
122 unions even for C++11 and later.
123
124 2017-01-05 Nathan Sidwell <nathan@acm.org>
125
126 PR c++/78765
127 * pt.c (convert_nontype_argument): Don't try and see if integral
128 or enum expressions are constants prematurely.
129
130 2017-01-04 Marek Polacek <polacek@redhat.com>
131
132 PR c++/64767
133 * typeck.c (cp_build_binary_op): Warn when a pointer is compared with
134 a zero character literal.
135
136 2017-01-04 Jakub Jelinek <jakub@redhat.com>
137
138 PR c++/78949
139 * typeck.c (cp_build_unary_op): Call mark_rvalue_use on arg if it has
140 vector type.
141
142 PR c++/78693
143 * parser.c (cp_parser_simple_declaration): Only complain about
144 inconsistent auto deduction if auto_result doesn't use auto.
145
146 * parser.c (cp_parser_simple_declaration): Diagnose function
147 declaration among more than one init-declarators with auto
148 specifier.
149
150 PR c++/71182
151 * parser.c (cp_lexer_previous_token): Use vec_safe_address in the
152 assertion, as lexer->buffer may be NULL.
153
154 2017-01-04 Marek Polacek <polacek@redhat.com>
155
156 PR c++/77545
157 PR c++/77284
158 * constexpr.c (potential_constant_expression_1): Handle CLEANUP_STMT.
159
160 2017-01-04 Nathan Sidwell <nathan@acm.org>
161
162 PR c++/66735
163 * cp-tree.h (DECLTYPE_FOR_REF_CAPTURE): New.
164 (lambda_capture_field_type): Update prototype.
165 * lambda.c (lambda_capture_field_type): Add is_reference parm.
166 Add referenceness here.
167 (add_capture): Adjust lambda_capture_field_type call, refactor
168 error checking.
169 * pt.c (tsubst): Adjust lambda_capture_field_type call.
170
171 2017-01-01 Jakub Jelinek <jakub@redhat.com>
172
173 Update copyright years.
174 \f
175 Copyright (C) 2017 Free Software Foundation, Inc.
176
177 Copying and distribution of this file, with or without modification,
178 are permitted in any medium without royalty provided the copyright
179 notice and this notice are preserved.