OSDN Git Service

Fix for PR c++/43375
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
2
3         PR c++/43375
4         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
5         is NULL.
6         * decl2.c (vague_linkage_p): Likewise.
7
8 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
9
10         PR c++/43418
11         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
12         false, in the cp_parser_expression_statement call.
13
14 2010-03-05  Jason Merrill  <jason@redhat.com>
15
16         * mangle.c (mangle_decl): Give name collision error even without
17         ASM_OUTPUT_DEF.
18
19 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
20
21         * pt.c (process_partial_specialization): Use error_n instead of
22         error.
23
24 2010-03-03  Jason Merrill  <jason@redhat.com>
25
26         PR c++/12909
27         * mangle.c (mangle_decl): Handle VAR_DECL, too.
28
29 2010-03-03  Jason Merrill  <jason@redhat.com>
30
31         PR c++/12909
32         * mangle.c (mangle_decl): Handle VAR_DECL, too.
33
34 2010-03-03  Jason Merrill  <jason@redhat.com>
35
36         PR c++/12909
37         * mangle.c: Include cgraph.h.
38         (mangle_decl): If the mangled name will change in a later
39         ABI version, make the later mangled name an alias.
40         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
41         * Make-lang.in (mangle.o): Depend on cgraph.h.
42         * method.c (make_alias_for): Handle VAR_DECL, too.
43         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
44         * tree.c (no_linkage_check): Adjust.
45         * decl.c (maybe_commonize_var): Adjust.
46         * cp-tree.h: Adjust.
47
48 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
49
50         * pt.c (redeclare_class_template): Use error_n and inform_n.
51
52 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
53
54         PR c++/42748
55         * cp-tree.h (push_tinst_level): Declare.
56         (pop_tinst_level): Likewise.
57         * pt.c (push_tinst_level): Give it external linkage.
58         (pop_tinst_level): Likewise.
59         * mangle.c (mangle_decl_string): Set the source location to that
60         of the decl while mangling.
61
62 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
63
64         PR c++/42054
65         * pt.c (redeclare_class_template): Return false if there are erroneous
66         template parameters.
67
68 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
69
70         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
71         -ftemplate-depth=.
72
73 2010-02-24  Jason Merrill  <jason@redhat.com>
74
75         PR c++/12909
76         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
77
78         * class.c (layout_class_type): Don't give -Wabi warning for a bug
79         in a previous ABI version.
80
81 2010-02-23  Jason Merrill  <jason@redhat.com>
82
83         PR c++/43143
84         * typeck2.c (digest_init_r): Accept value init of array.
85
86 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
87
88         PR c++/43126
89         * typeck.c (convert_arguments): Update error message.
90
91 2010-02-22  Mike Stump  <mikestump@comcast.net>
92
93         PR c++/43125
94         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
95
96 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
97
98         PR c++/23510
99         * error.c (print_instantiation_partial_context_line): New.
100         (print_instantiation_partial_context): Print at most 12 contexts,
101         skip the rest with a message.
102
103 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
104
105         PR c++/42824
106         * pt.c (lookup_template_class): Better support of specialization
107         of member of class template implicit instantiation.
108
109 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
110
111         PR c++/35669
112         * call.c (conversion_null_warnings): Replace -Wconversion with
113         -Wconversion-null.
114         * cvt.c (build_expr_type_conversion): Likewise.
115
116 2010-02-18  Jason Merrill  <jason@redhat.com>
117
118         PR c++/42837
119         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
120
121         PR c++/43108
122         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
123         C build_binary_op.
124         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
125         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
126
127         PR c++/43070
128         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
129
130         PR c++/26261
131         PR c++/43101
132         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
133         (maybe_update_decl_type): New fn.
134         * parser.c (cp_parser_init_declarator): Use it.
135
136         PR c++/43109
137         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
138
139 2010-02-17  Jason Merrill  <jason@redhat.com>
140
141         PR c++/43075
142         * call.c (build_over_call): Don't create zero-sized assignments.
143         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
144         * cp-objcp-common.c (cp_expr_size): Remove.
145         * cp-tree.h: Remove prototype.
146
147         PR c++/43069
148         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
149         decl we looked up doesn't match.
150
151         PR c++/43093
152         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
153         have an INIT_EXPR anymore.
154
155         PR c++/43079
156         * pt.c (convert_nontype_argument): Change assert to test.
157
158 2010-02-16  Jason Merrill  <jason@redhat.com>
159
160         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
161
162         PR c++/43031
163         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
164         VIEW_CONVERT_EXPR for conversions between structural equality types
165         that the back end can't tell are the same.
166
167         PR c++/43036
168         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
169         cv-quals from element here.
170         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
171
172 2010-02-14  Jason Merrill  <jason@redhat.com>
173
174         PR c++/41997
175         * semantics.c (finish_compound_literal): Use
176         cp_apply_type_quals_to_decl when creating a static variable.
177
178 2010-02-12  Jason Merrill  <jason@redhat.com>
179
180         PR c++/43024
181         * name-lookup.h (current_binding_level): Check for null
182         cp_function_chain.
183
184 2010-02-12  Jason Merrill  <jason@redhat.com>
185
186         PR c++/43054
187         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
188
189 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
190
191         PR c++/43033
192         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
193         instead of x.
194
195 2010-02-10  Jason Merrill  <jason@redhat.com>
196
197         PR c++/41896
198         * semantics.c (outer_lambda_capture_p): Revert.
199         (add_capture): Only finish_member_declaration if
200         we're in the lambda class.
201         (register_capture_members): New.
202         * cp-tree.h: Declare it.
203         * parser.c (cp_parser_lambda_expression): Call it.
204
205 2010-02-10  Jason Merrill  <jason@redhat.com>
206
207         PR c++/41896
208         * semantics.c (outer_lambda_capture_p): Use current_function_decl
209         instead of current_class_type.
210
211 2010-02-10  Jason Merrill  <jason@redhat.com>
212
213         PR c++/42983, core issue 906
214         * method.c (defaultable_fn_check): Check virtualness.
215
216 2010-02-10  Jason Merrill  <jason@redhat.com>
217
218         PR c++/43016
219         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
220
221 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
222
223         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
224         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
225         translation.
226         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
227         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
228         (cp_parser_parameter_declaration)
229         (cp_parser_exception_specification_opt)
230         (cp_parser_exception_declaration): Likewise.
231         * pt.c (check_default_tmpl_args): Likewise.
232         * search.c (lookup_field_r): Likewise.
233
234 2010-02-09  Jason Merrill  <jason@redhat.com>
235
236         PR c++/42399
237         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
238
239 2010-02-09  Jason Merrill  <jason@redhat.com>
240
241         PR c++/42370
242         * decl2.c (change_return_type): New fn.
243         * semantics.c (apply_lambda_return_type): Use it.
244         * cp-tree.h: Declare it.
245
246 2010-02-05  Richard Guenther  <rguenther@suse.de>
247
248         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
249         * cp-lang.c: Include gt-cp-cp-lang.h.
250         * config-lang.in (gtfiles): Add cp/cp-lang.c.
251
252 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
253
254         PR c++/42915
255         * typeck.c (get_template_parms_of_dependent_type): Try getting
256         the template parameters fromt the type itself first.
257
258 2010-02-03  Jason Merrill  <jason@redhat.com>
259
260         PR c++/4926
261         PR c++/38600
262         * mangle.c (write_unqualified_id): Split out from write_expression.
263         (write_unqualified_name): Call it.
264         (write_member_name): Likewise.
265         (write_expression): Support TEMPLATE_ID_EXPR.
266         Disambiguate operator names.
267
268         PR c++/12909
269         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
270         -fabi-version=4.
271
272 2010-02-02  Jason Merrill  <jason@redhat.com>
273
274         PR c++/41090
275         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
276         * optimize.c (clone_body): Remap their initializers when making base
277         variants.
278         (maybe_clone_body): Complain if multiple clones aren't safe.
279
280 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
281
282         PR c++/42758
283         PR c++/42634
284         PR c++/42336
285         PR c++/42797
286         PR c++/42880
287         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
288         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
289         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
290         * pt.c (coerce_template_parms, type_unification_real,
291         expand_template_argument_pack, coerce_template_parameter_pack):
292         Set the non default template args count.
293         (current_template_args): Always set non defaulted
294         template args count when compiled with --enable-checking
295         (tsubst_template_args, type_unification_real): Propagate the non
296         defaulted template args count.
297         * error.c (get_non_default_template_args_count): Renamed
298         count_non_default_template_args into this. Don't calculate the
299         non default template argument count anymore. Use the new
300         accessor macros above to get it.
301         (dump_template_argument_list, dump_type, dump_decl,
302         dump_template_parms): Adjust.
303         * parser.c (cp_parser_template_argument_list): Always set defaulted
304         template args count when compiled with --enable-checking.
305
306 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
307
308         * decl.c (redeclaration_error_message): Wrap the return messages into
309         G_() for easy translation.
310
311 2010-01-28  Jason Merrill  <jason@redhat.com>
312
313         PR c++/42880
314         * semantics.c (begin_class_definition): Don't use type_as_string.
315
316 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
317
318         PR c++/42713
319         PR c++/42820
320         * typeck.c (get_template_parms_of_dependent_type): Factorized
321         this out of incompatible_template_type_parms_p
322         (incompatible_dependent_types_p): Renamed
323         incompatible_template_type_parms_p into this. Make it detect
324         two incompatible dependent typedefs too.
325         (structural_comptypes): Use incompatible_dependent_types_p.
326         * pt.c (get_template_info):
327         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
328
329 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
330             Jason Merrill  <jason@redhat.com>
331
332         * mangle.c (write_type): Mangle transparent record as member type.
333         * semantics.c (begin_class_definition): Recognize decimal classes
334         and set TYPE_TRANSPARENT_AGGR.
335
336 2010-01-20  Jason Merrill  <jason@redhat.com>
337
338         PR c++/42338
339         * mangle.c (write_expression): Handle tree codes that have extra
340         arguments in the middle-end.
341
342 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
343
344         PR c++/42038
345         * except.c (expand_start_catch_block): Deal correctly with
346         do_begin_catch returning error_mark_node.
347
348 2010-01-20  Jason Merrill  <jason@redhat.com>
349
350         PR c++/41788
351         * class.c (layout_class_type): Set packed_maybe_necessary for packed
352         non-PODs.
353
354         PR c++/41920
355         * semantics.c (build_lambda_object): Call mark_used on captured
356         variables.
357
358         PR c++/40750
359         * decl.c (grokdeclarator): Clear type_quals for a member function
360         declared using a typedef.  Don't complain about adding cv-quals
361         to a function typedef in C++0x mode.
362
363 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
364
365         * decl.c (create_array_type_for_decl): Remove set but not used
366         variable error_msg.  Remove break stmts after return stmts.
367
368 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
369
370         * error.c (dump_template_parms, count_non_default_template_args):
371         Revert fix of PR c++/42634.
372
373 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
374
375         PR c++/42634
376         * error.c (dump_template_parms): Use innermost template
377         arguments before calling count_non_default_template_args.
378         (count_non_default_template_args): We are being called with
379         template innermost arguments now. There is no need to ensure
380         that again.
381
382 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
383
384         PR c++/42766
385         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
386
387 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
388
389         PR c++/42697
390         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
391
392 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
393
394         PR c++/42697
395         *pt.c (tsubst_decl): Get the arguments of a specialization from
396         the specialization template, not from the most general template.
397
398 2010-01-16  Jason Merrill  <jason@redhat.com>
399
400         PR c++/42761
401         * semantics.c (finish_decltype_type): Within a template, treat
402         unresolved CALL_EXPR as dependent.
403
404 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
405
406         * error.c (dump_template_parms,count_non_default_template_args):
407         Revert changes of PR c++/42634.
408
409 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
410
411         PR middle-end/42674
412         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
413         functions with noreturn attribute.
414
415 2010-01-14  Jason Merrill  <jason@redhat.com>
416
417         PR c++/42701
418         * call.c (build_new_method_call): Don't free the vec here.
419
420         PR c++/42655
421         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
422
423 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
424
425         PR c++/42634
426         * error.c (dump_template_parms): Use innermost template
427         arguments before calling count_non_default_template_args.
428         (count_non_default_template_args): We are being called with
429         template innermost arguments now. There is no need to ensure
430         that again.
431
432 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
433
434         c++/40155
435         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
436         arguments that were previously deduced.
437
438 2010-01-05  Jason Merrill  <jason@redhat.com>
439
440         * pt.c (unify_pack_expansion): Handle deduction from init-list.
441         * call.c (build_over_call): Don't complain about it.
442
443 2010-01-04  Jason Merrill  <jason@redhat.com>
444
445         PR c++/42555
446         * pt.c (tsubst_decl): Don't apply type attributes in place.
447
448         PR c++/42567
449         * semantics.c (describable_type): Remove decltype comment and
450         semantics.
451
452
453 \f
454 Copyright (C) 2010 Free Software Foundation, Inc.
455
456 Copying and distribution of this file, with or without modification,
457 are permitted in any medium without royalty provided the copyright
458 notice and this notice are preserved.