OSDN Git Service

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