]>
Commit | Line | Data |
---|---|---|
9dc6f476 GDR |
1 | 2013-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net> |
2 | ||
3 | * cp-tree.h (identifier_p): New. | |
4 | * call.c: Throughout, call identifier_p insstead of direct | |
5 | comparaison of TREE_CODE against IDENTIFIER_NODE. | |
6 | * decl.c: Likewisse. | |
7 | * decl2.c: Likewise. | |
8 | * init.c: Likewise. | |
9 | * mangle.c: Likewise. | |
10 | * name-lookup.c: Likewise. | |
11 | * parser.c: Likewise. | |
12 | * pt.c: Likewise. | |
13 | * search.c: Likewise. | |
14 | * semantics.c: Likewise. | |
15 | * tree.c: Likewise. | |
16 | * typeck.c: Likewise. | |
17 | * typeck2.c: Likewise. | |
18 | ||
37e99116 JJ |
19 | 2013-03-21 Jakub Jelinek <jakub@redhat.com> |
20 | ||
21 | PR middle-end/48087 | |
22 | * pt.c (convert_nontype_argument): Count werrorcount as warnings. | |
23 | * call.c (build_temp): Likewise. | |
24 | * method.c (synthesize_method): Likewise. | |
25 | * typeck.c (convert_for_initialization): Likewise. | |
26 | ||
08e0cda6 MG |
27 | 2013-03-21 Marc Glisse <marc.glisse@inria.fr> |
28 | ||
29 | * call.c (build_conditional_expr_1): Fold VEC_COND_EXPR. | |
30 | ||
839b422f RB |
31 | 2013-03-21 Richard Biener <rguenther@suse.de> |
32 | ||
33 | * error.c (cp_printer): Use DECL_HAS_DEBUG_EXPR_P instead of | |
34 | DECL_DEBUG_EXPR_IS_FROM. Guard properly. | |
35 | ||
9f5d44f4 JM |
36 | 2013-03-20 Jason Merrill <jason@redhat.com> |
37 | ||
efcf217b JM |
38 | PR c++/56646 |
39 | * parser.c (cp_parser_late_return_type_opt): Save and restore | |
40 | current_class_ptr/ref. | |
41 | ||
deaae9d7 JM |
42 | PR c++/54532 |
43 | * expr.c (cplus_expand_constant): Do nothing if the class is | |
44 | incomplete. | |
45 | * semantics.c (reduced_constant_expression_p): Allow PTRMEM_CST. | |
46 | * typeck2.c (store_init_value): Use reduced_constant_expression_p. | |
47 | * decl.c (maybe_register_incomplete_var): Handle PTRMEM_CST. | |
48 | (complete_vars): Likewise. | |
49 | ||
766053b3 JM |
50 | * name-lookup.c (get_anonymous_namespace_name): Never use |
51 | get_file_function_name. | |
52 | ||
c77f56bb JM |
53 | * pt.c (retrieve_specialization): Handle null tmpl argument. |
54 | ||
9f5d44f4 JM |
55 | PR c++/17232 |
56 | PR c++/56642 | |
57 | * pt.c (tsubst_decl): Check return value of register_specialization. | |
58 | * typeck2.c (abstract_virtuals_error_sfinae): Re-apply complete_type | |
59 | change. | |
60 | ||
df5c5f78 JM |
61 | 2013-03-17 Jason Merrill <jason@redhat.com> |
62 | ||
136357ac JM |
63 | PR c++/54359 |
64 | PR c++/56639 | |
65 | * parser.c (cp_parser_direct_declarator): Bail if we see a | |
66 | qualified-id not at namespace scope. | |
67 | ||
df5c5f78 JM |
68 | PR c++/17232 |
69 | PR c++/56642 | |
70 | * typeck2.c (abstract_virtuals_error_sfinae): Revert complete_type | |
71 | change for now. | |
72 | ||
6721db5d JM |
73 | 2013-03-16 Jason Merrill <jason@redhat.com> |
74 | ||
d1f45df5 JM |
75 | * decl.c (grokdeclarator): Assert that we won't see a pointer to |
76 | METHOD_TYPE. | |
77 | ||
bab5167f JM |
78 | PR c++/54277 |
79 | * cp-tree.h (WILDCARD_TYPE_P): Split out from... | |
80 | (MAYBE_CLASS_TYPE_P): ...here. | |
81 | * semantics.c (lambda_capture_field_type): Only build a | |
82 | magic decltype for wildcard types. | |
83 | (lambda_proxy_type): Likewise. | |
84 | (finish_non_static_data_member): Get the quals from | |
85 | the object. | |
86 | ||
d14d53ad JM |
87 | PR c++/55931 |
88 | * parser.c (cp_parser_template_argument): Don't | |
89 | fold_non_dependent_expr. | |
90 | ||
bc0c6b15 JM |
91 | * parser.c (cp_parser_lambda_declarator_opt): Use |
92 | cp_parser_trailing_type_id. | |
93 | ||
cae7d264 JM |
94 | PR c++/45917 |
95 | * parser.c (cp_parser_template_id): Don't forget access checks. | |
96 | ||
7805032d JM |
97 | PR c++/52374 |
98 | * pt.c (tsubst_qualified_id): Use current_nonlambda_class_type. | |
99 | ||
c7335680 JM |
100 | PR c++/54764 |
101 | PR c++/55972 | |
102 | * name-lookup.h (tag_scope): Add ts_lambda. | |
103 | * semantics.c (begin_lambda_type): Use it. | |
104 | * decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR. | |
105 | * pt.c (check_default_tmpl_args): Ignore lambdas. | |
106 | (push_template_decl_real): Handle lambdas. | |
107 | * tree.c (no_linkage_check): Adjust lambda check. | |
108 | ||
8e519a8b JM |
109 | PR c++/56039 |
110 | * tree.c (strip_typedefs_expr): Complain about lambda, don't abort. | |
111 | ||
bf7292fc JM |
112 | PR c++/54359 |
113 | * parser.c (cp_parser_direct_declarator): Fix late return | |
114 | for out-of-class defn of member function. | |
115 | ||
b4c7ce54 JM |
116 | PR c++/55357 |
117 | * semantics.c (maybe_add_lambda_conv_op): Clear DECL_NAME of copied | |
118 | parms to avoid duplicate -Wshadow warnings. | |
119 | ||
ca2e264d JM |
120 | * search.c (lookup_base): Handle NULL_TREE. |
121 | ||
b7df43cd JM |
122 | PR c++/56481 |
123 | * semantics.c (potential_constant_expression_1): Use of 'this' in | |
124 | a non-constexpr function makes the expression not potentially | |
125 | constant. | |
126 | ||
57fcd4f4 JM |
127 | N3276 |
128 | PR c++/52748 | |
129 | * cp-tree.h (tsubst_flags): Add tf_decltype. | |
130 | * call.c (build_cxx_call): Don't build a temporary if it's set. | |
131 | (build_over_call): Make sure it's only passed to build_cxx_call. | |
132 | * parser.c (cp_parser_primary_expression): Add decltype_p parm. | |
133 | (cp_parser_unary_expression): Likewise. | |
134 | (cp_parser_cast_expression): Likewise. | |
135 | (cp_parser_binary_expression): Likewise. | |
136 | (cp_parser_assignment_expression): Likewise. | |
137 | (cp_parser_postfix_expression): Likewise. Pass tf_decltype. | |
4a5e2469 | 138 | (cp_parser_expression): Add decltype_p. Force a |
57fcd4f4 JM |
139 | temporary for a call on the LHS of a comma. |
140 | (cp_parser_decltype): Pass true to decltype_p parms. | |
141 | * pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype. | |
142 | (tsubst_copy_and_build): Pass tf_decltype down only for | |
143 | CALL_EXPR and the RHS of COMPOUND_EXPR. | |
144 | * tree.c (build_cplus_new): Call complete_type_or_maybe_complain. | |
145 | ||
2df663cc JM |
146 | * cp-tree.h (abstract_class_use): New enum. |
147 | * typeck2.c (pending_abstract_type): Add use field. | |
148 | (abstract_virtuals_error_sfinae): Add overloads taking | |
149 | abstract_class_use instead of tree. | |
150 | * typeck.c (build_static_cast_1): Call it. | |
151 | * except.c (is_admissible_throw_operand_or_catch_parameter): Call it. | |
152 | * pt.c: Adjust calls. | |
153 | * decl.c (cp_finish_decl): Don't handle functions specially. | |
154 | (grokdeclarator): Always check return type. | |
155 | * init.c (build_new_1): Adjust call. | |
156 | ||
95ffad49 JM |
157 | DR 337 |
158 | PR c++/17232 | |
159 | * pt.c (tsubst) [ARRAY_TYPE]: Use abstract_virtuals_error_sfinae. | |
160 | * typeck2.c (abstract_virtuals_error_sfinae): Call complete_type. | |
161 | ||
346928a2 JM |
162 | DR 657 |
163 | * pt.c (tsubst_function_type): Call abstract_virtuals_error_sfinae. | |
164 | (tsubst_arg_types): Likewise. | |
165 | ||
0cc5ae8d JM |
166 | DR 1518 |
167 | PR c++/54835 | |
168 | * call.c (convert_like_real): Check for explicit constructors | |
169 | even for value-initialization. | |
170 | ||
cb3c050e JM |
171 | PR c++/54946 |
172 | * pt.c (convert_nontype_argument): Handle invalid pointer. | |
173 | ||
e9f3968b JM |
174 | * parser.c (cp_parser_lambda_expression): Use nreverse. |
175 | ||
e2adfdad JM |
176 | PR c++/56447 |
177 | PR c++/55532 | |
178 | * pt.c (instantiate_class_template_1): Instantiate lambda capture | |
179 | list here. | |
180 | (tsubst_copy_and_build): Not here. | |
181 | ||
5275b2c7 JM |
182 | PR c++/55017 |
183 | * method.c (walk_field_subobs): Disallow copy of rvalue ref. | |
184 | ||
cdf47df0 JM |
185 | PR c++/55240 |
186 | * parser.c (parsing_nsdmi): New. | |
187 | * semantics.c (outer_automatic_var_p): Check it. | |
188 | (finish_id_expression): Likewise. | |
189 | * cp-tree.h: Declare it. | |
190 | ||
a1e03bc5 JM |
191 | PR c++/55241 |
192 | * error.c (dump_expr) [SIZEOF_EXPR]: Print sizeof... properly. | |
193 | ||
d09b76f1 JM |
194 | * parser.c (lookup_literal_operator): Correct parm/arg naming |
195 | mixup. | |
196 | ||
011ce3f3 JM |
197 | PR c++/56238 |
198 | * pt.c (fold_non_dependent_expr_sfinae): Check | |
199 | instantiation_dependent_expression_p. | |
200 | ||
6721db5d JM |
201 | PR c++/56095 |
202 | * class.c (resolve_address_of_overloaded_function): Accept a | |
203 | reference to function for target_type. | |
204 | (instantiate_type): Likewise. | |
205 | * pt.c (convert_nontype_argument): Pass it to | |
206 | convert_nontype_argument_function. | |
207 | ||
87eb16a1 JJ |
208 | 2013-03-16 Jakub Jelinek <jakub@redhat.com> |
209 | ||
b722c9a2 JJ |
210 | * tree.c (cp_tree_equal): Fix a pasto. |
211 | ||
87eb16a1 JJ |
212 | PR c++/56607 |
213 | * typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero, | |
214 | pass op1 through maybe_constant_value first. | |
215 | ||
9a54d96a PC |
216 | 2013-03-16 Paolo Carlini <paolo.carlini@oracle.com> |
217 | ||
218 | PR c++/56582 | |
219 | * semantics.c (cxx_eval_array_reference): Check for negative index. | |
220 | ||
e9d5a271 JM |
221 | 2013-03-14 Jason Merrill <jason@redhat.com> |
222 | ||
a7137ee1 JM |
223 | PR c++/56614 |
224 | * decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again. | |
225 | ||
e9d5a271 JM |
226 | PR c++/56346 |
227 | * decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit | |
228 | dso_handle parm on targets without __cxa_atexit. | |
229 | ||
2aa953d0 JM |
230 | 2013-03-11 Jason Merrill <jason@redhat.com> |
231 | ||
232 | PR c++/56567 | |
233 | * typeck.c (check_return_expr): Disallow returning init list here. | |
234 | * semantics.c (apply_deduced_return_type): Not here. | |
235 | ||
f030a1dc PC |
236 | 2013-03-08 Paolo Carlini <paolo.carlini@oracle.com> |
237 | ||
238 | PR c++/51412 | |
239 | * cxx-pretty-print.c (pp_cxx_expression): Handle LAMBDA_EXPR. | |
240 | * error.c (dump_expr): Likewise. | |
241 | ||
e48243d8 JM |
242 | 2013-03-08 Jason Merrill <jason@redhat.com> |
243 | ||
9d13a069 JM |
244 | PR c++/51884 |
245 | * class.c (modify_all_vtables): Mangle the vtable name before | |
246 | entering dfs_walk. | |
247 | ||
37fb0a98 JM |
248 | * semantics.c (lambda_expr_this_capture): In unevaluated context, |
249 | just return the nearest 'this'. | |
250 | ||
0ef811d7 | 251 | PR c++/51494 |
19831b08 | 252 | PR c++/52183 |
0ef811d7 JM |
253 | PR c++/56222 |
254 | * tree.c (maybe_dummy_object): Don't capture 'this'. | |
255 | * semantics.c (maybe_resolve_dummy): New. | |
256 | (finish_non_static_data_member): Use it. | |
257 | (finish_qualified_id_expr): Don't test is_dummy_object. | |
258 | * cp-tree.h: Declare maybe_resolve_dummy. | |
259 | * call.c (build_new_method_call_1): Use it. | |
260 | ||
e48243d8 JM |
261 | PR c++/56567 |
262 | * semantics.c (apply_deduced_return_type): Don't allow returning | |
263 | std::initializer_list. | |
264 | ||
5fdbceff PC |
265 | 2013-03-06 Paolo Carlini <paolo.carlini@oracle.com> |
266 | ||
267 | PR c++/56534 | |
268 | * parser.c (cp_parser_elaborated_type_specifier): Don't call | |
269 | check_elaborated_type_specifier when TREE_CODE (decl) != TYPE_DECL. | |
270 | * decl.c (check_elaborated_type_specifier): Tidy. | |
271 | ||
9ebced77 JJ |
272 | 2013-03-06 Jakub Jelinek <jakub@redhat.com> |
273 | ||
274 | PR c++/56543 | |
275 | * tree.c (strip_typedefs): Don't copy args if they are NULL. | |
276 | ||
574f9d7e JJ |
277 | 2013-03-05 Jakub Jelinek <jakub@redhat.com> |
278 | ||
279 | * parser.c (cp_parser_braced_list): For {} initialize | |
280 | *non_constant_p to false. | |
281 | ||
4b16f9c8 JM |
282 | 2013-03-04 Jason Merrill <jason@redhat.com> |
283 | ||
284 | PR c++/56464 | |
285 | PR c++/54383 | |
286 | * semantics.c (lambda_expr_this_capture): Handle NSDMI | |
287 | and non-class scopes. | |
288 | ||
48a30e28 PC |
289 | 2013-03-01 Paolo Carlini <paolo.carlini@oracle.com> |
290 | ||
291 | * decl.c (grokdeclarator): Remove dead code. | |
292 | ||
c966f2de JM |
293 | 2013-02-28 Jason Merrill <jason@redhat.com> |
294 | ||
728761be JM |
295 | PR c++/56481 |
296 | * semantics.c (potential_constant_expression_1): Use | |
297 | cxx_eval_outermost_constant_expr rather than maybe_constant_value. | |
298 | ||
c966f2de JM |
299 | PR c++/56243 |
300 | * call.c (build_over_call): Avoid virtual lookup in a template. | |
301 | ||
140bec21 JM |
302 | 2013-02-27 Jason Merrill <jason@redhat.com> |
303 | ||
304 | PR c++/56358 | |
305 | PR c++/56323 | |
306 | * name-lookup.c (do_class_using_decl): Use ctor_identifier instead | |
307 | of the base name for inheriting ctors. | |
308 | (push_class_level_binding_1): Remove inheriting ctor handling. | |
309 | * pt.c (tsubst_decl) [USING_DECL]: Likewise. | |
310 | * class.c (add_implicitly_declared_members): Adjust. | |
311 | ||
ecf3abb9 DB |
312 | 2013-02-26 David Binderman <dcb314@hotmail.com> |
313 | ||
314 | PR c++/55632 | |
315 | * decl.c (grokdeclarator): Tidy publicp assignment. | |
316 | ||
6f2d959b AH |
317 | 2013-02-25 Aldy Hernandez <aldyh@redhat.com> |
318 | ||
319 | PR c++/56419 | |
320 | * semantics.c (begin_transaction_stmt): Set TREE_SIDE_EFFECTS. | |
321 | (build_transaction_expr): Same. | |
322 | ||
70e9ab23 JM |
323 | 2013-02-25 Jason Merrill <jason@redhat.com> |
324 | ||
9bcb18f6 JM |
325 | PR c++/56377 |
326 | * pt.c (fn_type_unification): Wait to call push_tinst_level until | |
327 | we know what args we're looking at. | |
328 | ||
70e9ab23 JM |
329 | PR c++/56438 |
330 | * semantics.c (potential_constant_expression_1): In C++98, a cast | |
331 | to non-integral type can't be a constant expression. | |
332 | ||
5621a5d7 JJ |
333 | 2013-02-24 Jakub Jelinek <jakub@redhat.com> |
334 | ||
335 | PR c++/56403 | |
336 | * init.c (build_zero_init_1): Use RECORD_OR_UNION_CODE_P instead | |
337 | of CLASS_TYPE_P. | |
338 | ||
5b5d851e JM |
339 | 2013-02-22 Jason Merrill <jason@redhat.com> |
340 | ||
5c505cba JM |
341 | PR c++/40405 |
342 | * pt.c (push_template_decl_real): Set DECL_INTERFACE_KNOWN | |
343 | if we got the wrong number of template parms. | |
344 | ||
82a1326b JM |
345 | PR c++/56377 |
346 | * pt.c (fn_type_unification): Use explicit args in template | |
347 | instantiation context. | |
348 | ||
3ced2284 JM |
349 | PR c++/56359 |
350 | * call.c (can_convert_arg): Discard access checks. | |
351 | ||
5b5d851e JM |
352 | PR c++/56395 |
353 | * tree.c (strip_typedefs): Strip typedefs from TYPENAME_TYPE template | |
354 | args. | |
355 | ||
30b07d03 PC |
356 | 2013-02-20 Paolo Carlini <paolo.carlini@oracle.com> |
357 | ||
358 | PR c++/56373 | |
359 | * tree.c (maybe_warn_zero_as_null_pointer_constant): Add. | |
360 | * cvt.c (ocp_convert): Use the latter. | |
361 | (cp_convert_to_pointer): Likewise. | |
362 | * decl.c (check_default_argument): Likewise. | |
363 | * typeck.c (cp_build_binary_op): Likewise. | |
364 | * cp-tree.h (maybe_warn_zero_as_null_pointer_constant): Declare. | |
365 | ||
4d0648ac JW |
366 | 2013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com> |
367 | Paolo Carlini <paolo.carlini@oracle.com> | |
368 | ||
369 | PR c++/51242 | |
370 | * decl2.c (grokbitfield): Allow scoped enumeration types. | |
371 | ||
30fa2a51 JM |
372 | 2013-02-15 Jason Merrill <jason@redhat.com> |
373 | ||
9fd30fec JM |
374 | PR c++/54276 |
375 | * semantics.c (finish_id_expression): Also return the identifier | |
376 | for an outer local static. | |
377 | ||
52d95c21 JM |
378 | PR c++/56343 |
379 | * class.c (check_bases_and_members): Deduce noexcept after | |
380 | checking bases. | |
381 | ||
30fa2a51 JM |
382 | PR c++/52026 |
383 | * semantics.c (finish_id_expression): In a template, return | |
384 | the identifier for a constant variable. | |
385 | ||
ff9b4073 JM |
386 | 2013-02-14 Jason Merrill <jason@redhat.com> |
387 | ||
9b2f0394 JM |
388 | PR c++/54922 |
389 | * semantics.c (build_anon_member_initialization): New. | |
390 | (build_data_member_initialization): Use it. | |
391 | ||
b24cd3d1 JM |
392 | PR c++/55003 |
393 | * decl.c (cp_finish_decl): Force instantiation of an | |
394 | auto static data member. | |
395 | ||
d132b74a JM |
396 | PR c++/55220 |
397 | * pt.c (unify): A pack expansion that is not the last template | |
398 | argument makes the entire template argument list non-deduced. | |
399 | ||
06449b40 JM |
400 | PR c++/56323 |
401 | * name-lookup.c (do_class_using_decl): Handle typedefs with | |
402 | inheriting constructors. | |
403 | (push_class_level_binding_1): Allow inheriting from template | |
404 | template parameter, too. | |
405 | * pt.c (tsubst_decl) [USING_DECL]: Likewise. | |
406 | ||
622aac0b JM |
407 | PR c++/55223 |
408 | * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of | |
409 | default argument scope. | |
410 | * mangle.c (write_name): Likewise. | |
411 | ||
ff9b4073 JM |
412 | PR c++/55232 |
413 | * error.c (find_typenames_r): Don't walk into a pack expansion. | |
414 | ||
78a2ea41 JM |
415 | 2013-02-13 Jason Merrill <jason@redhat.com> |
416 | ||
28d5c777 JM |
417 | PR c++/55670 |
418 | * parser.c (cp_parser_member_declaration): Check the declarator | |
419 | form when detecting a function declaration via typedef. | |
420 | ||
e75e98f2 JM |
421 | PR c++/55680 |
422 | * pt.c (maybe_process_partial_specialization): A lambda | |
423 | isn't what's being specialized. | |
424 | ||
43c2d791 JM |
425 | PR c++/55710 |
426 | * semantics.c (maybe_add_lambda_conv_op): Mark static thunk | |
427 | TREE_USED. | |
428 | ||
70fc7c6c JM |
429 | PR c++/55879 |
430 | * semantics.c (cxx_bind_parameters_in_call): Undo DECL_BY_REFERENCE. | |
431 | ||
58b922f8 JM |
432 | PR c++/55993 |
433 | * semantics.c (cxx_fold_indirect_ref): Handle empty bases at | |
434 | non-zero offsets, too. | |
435 | ||
d0d9cf0e JM |
436 | PR c++/56155 |
437 | * decl.c (build_enumerator): Always convert the value to a | |
438 | fixed underlying type. | |
439 | ||
78a2ea41 JM |
440 | PR c++/56135 |
441 | * pt.c (tsubst_copy_and_build): Don't forget any new | |
442 | captures that arose from use of dependent names. | |
443 | ||
6760071f JJ |
444 | 2013-02-13 Jakub Jelinek <jakub@redhat.com> |
445 | ||
446 | PR c++/56302 | |
447 | * semantics.c (finish_asm_stmt): If input constraints allow | |
448 | neither register nor memory, try maybe_constant_value to get | |
449 | a constant if possible. | |
450 | ||
1f8aec00 JM |
451 | 2013-02-12 Jason Merrill <jason@redhat.com> |
452 | ||
d8af1a55 JM |
453 | PR c++/56285 |
454 | * method.c (add_one_base_init): Handle base constructor | |
455 | taking rvalue reference parm. | |
456 | ||
1f8aec00 JM |
457 | PR c++/56291 |
458 | * semantics.c (sort_constexpr_mem_initializers): Handle | |
459 | vptr out of order. | |
460 | ||
d982e024 JM |
461 | 2013-02-09 Jason Merrill <jason@redhat.com> |
462 | ||
ba9146c1 JM |
463 | PR c++/56268 |
464 | * semantics.c (classtype_has_nothrow_assign_or_copy_p): Call | |
465 | maybe_instantiate_noexcept. | |
466 | ||
25976b7f JM |
467 | PR c++/56247 |
468 | * pt.c (eq_specializations): Set comparing_specializations. | |
469 | * tree.c (cp_tree_equal): Check it. | |
470 | * cp-tree.h: Declare it. | |
471 | ||
8d40d877 JM |
472 | * decl.c (decls_match): Check versions later. |
473 | ||
d982e024 JM |
474 | PR c++/56238 |
475 | * pt.c (build_non_dependent_expr): Don't try to fold | |
476 | instantiation-dependent expressions. | |
477 | (instantiation_dependent_r) [TRAIT_EXPR]: Split out. | |
478 | [BIND_EXPR]: Treat as dependent. | |
479 | ||
e6d7b956 JJ |
480 | 2013-02-07 Jakub Jelinek <jakub@redhat.com> |
481 | ||
f11c7048 JJ |
482 | PR c++/56241 |
483 | * init.c (build_vec_init): Don't append NULL values into new_vec. | |
484 | (build_zero_init_1): Don't push anything into v if recursive call | |
485 | returned NULL_TREE. | |
486 | (build_value_init_noctor): Don't push anything into v if | |
487 | build_value_init call returned NULL_TREE. | |
488 | ||
2052ce24 JJ |
489 | PR c++/56239 |
490 | * parser.c (cp_parser_token_starts_cast_expression): Renamed to... | |
491 | (cp_parser_tokens_start_cast_expression): ... this. Change parameter | |
492 | to cp_parser *, call cp_lexer_peek_token first. For CPP_OPEN_PAREN, | |
493 | return true only if 2nd token isn't CPP_CLOSE_PAREN. | |
494 | (cp_parser_cast_expression): Adjust caller. | |
495 | ||
e6d7b956 JJ |
496 | PR c++/56237 |
497 | * decl.c (push_local_name): Look at DECL_DISCRIMINATOR (t) | |
498 | only if DECL_DISCRIMINATOR_SET_P (t) rather than just | |
499 | DECL_LANG_SPECIFIC (t). | |
500 | ||
702f9fe5 JM |
501 | 2013-02-07 Jason Merrill <jason@redhat.com> |
502 | ||
503 | PR c++/56235 | |
504 | * method.c (do_build_copy_constructor): Don't bother turning | |
505 | scalars from lvalues to xvalues. | |
506 | (do_build_copy_assign): Likewise. | |
507 | ||
ceb86495 JM |
508 | 2013-02-06 Jason Merrill <jason@redhat.com> |
509 | ||
510 | * parser.c (cp_parser_enum_specifier): Check for error_mark_node. | |
511 | ||
29ef6cd0 JM |
512 | 2013-02-05 Jason Merrill <jason@redhat.com> |
513 | ||
ea48c8a0 JM |
514 | PR c++/54122 |
515 | * tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for | |
516 | METHOD_TYPE. | |
517 | ||
a283c407 JM |
518 | PR c++/56177 |
519 | * decl.c (start_preparsed_function): Update restype if we change | |
520 | decl1. | |
521 | ||
29ef6cd0 JM |
522 | PR c++/56208 |
523 | * pt.c (fn_type_unification): Discard any access checks from | |
524 | substituting explicit args. | |
525 | ||
b5fbde92 JM |
526 | 2013-01-31 Jason Merrill <jason@redhat.com> |
527 | ||
528 | PR c++/56162 | |
529 | PR c++/56104 | |
530 | * typeck.c (get_member_function_from_ptrfunc): Fix | |
531 | ptrmemfunc_vbit_in_delta case. | |
532 | ||
2ee8a2d5 JM |
533 | 2013-01-29 Jason Merrill <jason@redhat.com> |
534 | ||
535 | PR libstdc++/54314 | |
536 | * class.c (build_ctor_vtbl_group): Give construction vtables | |
537 | hidden visibility. | |
538 | ||
e18724aa JM |
539 | 2013-01-25 Jason Merrill <jason@redhat.com> |
540 | ||
d4a18018 JM |
541 | PR c++/56095 |
542 | * pt.c (convert_nontype_argument_function): Handle invalid input. | |
543 | (convert_nontype_argument): Likewise. | |
544 | ||
e18724aa JM |
545 | PR c++/56104 |
546 | * typeck.c (get_member_function_from_ptrfunc): Optimize if the | |
547 | dynamic type has no virtual functions. | |
548 | ||
723889fa PC |
549 | 2013-01-22 Paolo Carlini <paolo.carlini@oracle.com> |
550 | ||
551 | PR c++/55944 | |
552 | * decl.c (check_initializer): Use TARGET_EXPR_DIRECT_INIT_P only | |
553 | on TARGET_EXPR nodes. | |
554 | ||
90481257 JM |
555 | 2013-01-22 Jason Merrill <jason@redhat.com> |
556 | ||
557 | PR c++/56071 | |
558 | * pt.c (maybe_instantiate_noexcept): Don't defer access checks. | |
559 | ||
b0ffaa36 DS |
560 | 2013-01-22 Dodji Seketeli <dodji@redhat.com> |
561 | ||
562 | PR c++/53609 | |
563 | * pt.c (argument_pack_element_is_expansion_p) | |
564 | (make_argument_pack_select, use_pack_expansion_extra_args_p) | |
565 | (gen_elem_of_pack_expansion_instantiation): New static functions. | |
566 | (tsubst): When looking through an ARGUMENT_PACK_SELECT tree node, | |
567 | look through the possibly resulting pack expansion as well. | |
568 | (tsubst_pack_expansion): Use use_pack_expansion_extra_p to | |
569 | generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism. | |
570 | Use gen_elem_of_pack_expansion_instantiation to build the | |
571 | instantiation piece-wise. Don't use arg_from_parm_pack_p anymore, | |
572 | as gen_elem_of_pack_expansion_instantiation and the change in | |
573 | tsubst above generalize this particular case. | |
574 | (arg_from_parm_pack_p): Remove this for it's not used by | |
575 | tsubst_pack_expansion anymore. | |
576 | ||
dcdb8613 JM |
577 | 2013-01-21 Jason Merrill <jason@redhat.com> |
578 | ||
579 | PR c++/56059 | |
580 | * tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default | |
581 | template args count. | |
582 | ||
5af057d8 JM |
583 | 2013-01-18 Jason Merrill <jason@redhat.com> |
584 | ||
585 | PR target/54908 | |
586 | * decl2.c (get_local_tls_init_fn): New. | |
587 | (get_tls_init_fn): Handle flag_extern_tls_init. Don't bother | |
588 | with aliases for internal variables. Don't use weakrefs if | |
589 | the variable needs destruction. | |
590 | (generate_tls_wrapper): Mark the wrapper as const if no | |
591 | initialization is needed. | |
592 | (handle_tls_init): Don't require aliases. | |
593 | ||
cd61690f DS |
594 | 2013-01-15 Dodji Seketeli <dodji@redhat.com> |
595 | ||
596 | PR c++/55663 | |
597 | * pt.c (coerce_innermost_template_parms): New static function. | |
598 | (instantiate_alias_template): Use it here. | |
599 | ||
96924e7e JM |
600 | 2013-01-09 Jason Merrill <jason@redhat.com> |
601 | ||
795801d6 JM |
602 | PR c++/55878 |
603 | * rtti.c (build_typeid, get_typeid): Add complain parm. | |
604 | (get_tinfo_decl_dynamic): Likewise. | |
605 | * cp-tree.h, parser.c, pt.c: Adjust. | |
606 | ||
96924e7e JM |
607 | PR c++/55893 |
608 | * decl.c (cp_finish_decl): Clear TREE_READONLY if the variable | |
609 | needs destruction. | |
610 | ||
cc83c823 JJ |
611 | 2013-01-09 Jakub Jelinek <jakub@redhat.com> |
612 | ||
613 | PR c/48418 | |
614 | * typeck.c (cp_build_binary_op): For LSHIFT_EXPR and RSHIFT_EXPR, | |
615 | call maybe_constant_value for the negative or too big shift | |
616 | count warnings. | |
617 | ||
fdbff37f PC |
618 | 2013-01-09 Paolo Carlini <paolo.carlini@oracle.com> |
619 | ||
620 | PR c++/55801 | |
621 | * decl2.c (var_needs_tls_wrapper): Return false when error_operand_p | |
622 | of the argument is true. | |
623 | ||
80a8d521 JB |
624 | 2013-01-08 Joel Brobecker <brobecker@adacore.com> |
625 | ||
626 | * parser.c (cp_parser_initializer_list): Move declaration | |
627 | of variable non_const to start of lexical block. | |
628 | ||
e4d7d8cb JM |
629 | 2013-01-07 Jason Merrill <jason@redhat.com> |
630 | ||
631 | PR c++/55753 | |
632 | * tree.c (build_aggr_init_expr): Do nothing in a template. | |
633 | * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Strip an ADDR_EXPR off | |
634 | a FUNCTION_DECL before tsubsting. | |
635 | ||
36b21740 DS |
636 | 2013-01-04 Dodji Seketeli <dodji@redhat.com> |
637 | ||
638 | PR c++/52343 | |
639 | * pt.c (check_instantiated_arg): Allow type template arguments. | |
640 | ||
82f2836c JM |
641 | 2013-01-04 Jason Merrill <jason@redhat.com> |
642 | ||
643 | PR c++/55877 | |
644 | * decl.c (reset_type_linkage, bt_reset_linkage): New. | |
645 | (grokdeclarator): Use reset_type_linkage. | |
646 | * name-lookup.c (binding_table_foreach): Handle null table. | |
647 | * tree.c (decl_anon_ns_mem_p): Check TYPE_MAIN_DECL, not TYPE_NAME. | |
648 | ||
1582c677 PC |
649 | 2013-01-04 Paolo Carlini <paolo.carlini@oracle.com> |
650 | ||
651 | PR c++/54526 (again) | |
652 | * parser.c (cp_parser_template_id): Revert core of previous change | |
653 | (keep adjusted inform message). | |
654 | ||
99c4346a JM |
655 | 2013-01-03 Jason Merrill <jason@redhat.com> |
656 | ||
20644725 JM |
657 | PR c++/55419 |
658 | PR c++/55753 | |
659 | * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch | |
660 | TREE_CONSTANT. | |
661 | ||
ffabb761 JM |
662 | PR c++/55842 |
663 | * semantics.c (trait_expr_value): Call maybe_instantiate_noexcept. | |
664 | ||
b53e0533 JM |
665 | PR c++/55856 |
666 | * semantics.c (build_data_member_initialization): Handle DECL_EXPR. | |
667 | ||
99c4346a JM |
668 | PR c++/53650 |
669 | * call.c (type_has_extended_temps): New. | |
670 | * cp-tree.h: Declare it. | |
671 | * decl.c (check_initializer): Use build_aggr_init for arrays | |
672 | if it is false. | |
673 | * init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic. | |
674 | ||
e78167f2 JM |
675 | 2013-01-02 Jason Merrill <jason@redhat.com> |
676 | ||
3a322efd JM |
677 | PR c++/54325 |
678 | * call.c (build_new_method_call_1): Don't use build_value_init for | |
679 | user-provided default constructors. | |
680 | ||
5f942422 JM |
681 | * decl.c (check_default_argument): Use LOOKUP_IMPLICIT. |
682 | ||
e78167f2 JM |
683 | PR c++/55032 |
684 | PR c++/55245 | |
685 | * tree.c (build_cplus_array_type): Copy layout information | |
686 | to main variant if necessary. | |
ad41bd84 | 687 | \f |
86a2db33 | 688 | Copyright (C) 2013 Free Software Foundation, Inc. |
ad41bd84 JM |
689 | |
690 | Copying and distribution of this file, with or without modification, | |
691 | are permitted in any medium without royalty provided the copyright | |
692 | notice and this notice are preserved. |