re PR c++/52088 (ICE in "delete" with template convertion operator)
[gcc.git] / gcc / cp / ChangeLog
1 2012-02-06 Jason Merrill <jason@redhat.com>
2
3 PR c++/52088
4 * cvt.c (build_expr_type_conversion): Check for template conversion.
5
6 2012-01-31 Jason Merrill <jason@redhat.com>
7
8 PR c++/52043
9 * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
10 * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
11 (tsubst_pack_expansion): Check it.
12
13 2012-01-29 Paolo Carlini <paolo.carlini@oracle.com>
14
15 PR c++/51327
16 * class.c (explain_non_literal_class): Correctly handle implicitly
17 deleted constructors.
18
19 2012-01-27 Jakub Jelinek <jakub@redhat.com>
20
21 PR c++/51852
22 * pt.c (tsubst_pack_expansion): Delete and restore
23 local_specialization whenever need_local_specialization, not just
24 when saved_local_specializations is non-NULL.
25
26 2012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
27
28 PR c++/51370
29 * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
30 as TREE_OPERAND (t, 1).
31
32 2012-01-24 Jason Merrill <jason@redhat.com>
33
34 PR c++/51917
35 * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
36
37 PR c++/51973
38 * tree.c (called_fns_equal): Check template args.
39 (cp_tree_equal): Call it.
40
41 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
42 Patrick Marlier <patrick.marlier@gmail.com>
43
44 PR c++/51928
45 * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
46 thunk for set_one_vmethod_tm_attributes.
47
48 2012-01-24 Paolo Carlini <paolo.carlini@oracle.com>
49
50 PR c++/51223
51 * call.c (build_over_call): Check for error_mark_node as
52 TREE_VALUE when default arguments are processed.
53
54 2012-01-23 Jason Merrill <jason@redhat.com>
55
56 PR c++/51930
57 * decl2.c (determine_visibility): Check for visibility attribute
58 on template specialization.
59
60 2012-01-23 Paolo Carlini <paolo.carlini@oracle.com>
61
62 PR c++/51398
63 * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
64
65 2012-01-23 Jason Merrill <jason@redhat.com>
66
67 PR c++/51925
68 * class.c (add_method): Set OVL_USED for using-decls.
69 * tree.c (ovl_scope): New.
70 * cp-tree.h: Declare it.
71 * parser.c (cp_parser_template_name): Use it.
72 * semantics.c (baselink_for_fns): Likewise.
73 * name-lookup.c (set_inherited_value_binding_p): Likewise.
74
75 2012-01-20 Paolo Carlini <paolo.carlini@oracle.com>
76
77 PR c++/51402
78 * pt.c (lookup_template_class_1): Check context returned by
79 tsubst for error_mark_node.
80
81 2012-01-19 Kai Tietz <ktietz@redhat.com>
82
83 PR c++/51344
84 * decl2.c (save_template_attributes): Use merge_attributes
85 instead of chaining up via TREE_CHAIN.
86
87 2012-01-19 Jason Merrill <jason@redhat.com>
88
89 PR c++/51889
90 * class.c (finish_struct): Call add_method here for function usings.
91 * semantics.c (finish_member_declaration): Not here.
92
93 2012-01-18 Paolo Carlini <paolo.carlini@oracle.com>
94
95 PR c++/51225
96 * typeck2.c (store_init_value): Within a template guard
97 cxx_constant_value with require_potential_constant_expression.
98 * pt.c (convert_nontype_argument): Likewise.
99
100 2012-01-16 Jakub Jelinek <jakub@redhat.com>
101
102 PR c++/51854
103 * mangle.c (write_template_arg_literal): Handle complex.
104
105 2012-01-16 Jason Merrill <jason@redhat.com>
106
107 PR c++/51827
108 * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
109
110 PR c++/51868
111 * typeck.c (build_static_cast_1): Handle bit-fields properly.
112
113 2012-01-13 Ian Lance Taylor <iant@google.com>
114
115 PR c++/50012
116 * typeck.c (enum_cast_to_int): New static function.
117 (cp_build_binary_op): When handling warn_sign_compare, don't test
118 for TREE_NO_WARNING. Do call enum_cast_to_int.
119 * call.c (avoid_sign_compare_warnings): Remove static function.
120 (build_new_op_1): Don't call avoid_sign_compare_warnings.
121
122 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
123
124 * decl2.c: Do not include tree-mudflap.h
125 * semantics.c: Likewise.
126
127 2012-01-13 Jason Merrill <jason@redhat.com>
128
129 PR c++/20681
130 * semantics.c (finish_break_stmt): Avoid adding an unreachable
131 BREAK_STMT.
132
133 PR c++/51813
134 * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
135 when reducing the visibility.
136
137 PR c++/51620
138 * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
139
140 2012-01-12 Jason Merrill <jason@redhat.com>
141
142 PR c++/51714
143 * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
144 value-dependent.
145
146 2012-01-13 Dodji Seketeli <dodji@redhat.com>
147
148 PR c++/51633
149 * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
150 Set the pointer to the last block of the constructor to the
151 current statement.
152 (build_constexpr_constructor_member_initializers): Get
153 build_data_member_initialization a chance to deal with more
154 statements before we choke.
155
156 2012-01-12 Jason Merrill <jason@redhat.com>
157
158 PR c++/48051
159 * mangle.c (write_expression): Mangle BASELINK scope if
160 BASELINK_QUALIFIED_P.
161 * search.c (adjust_result_of_qualified_name_lookup): Set
162 BASELINK_QUALIFIED_P.
163 * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
164 * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
165 adjust_result_of_qualified_name_lookup for non-qualified names.
166
167 PR c++/51403
168 * pt.c (unify): Handle error_mark_node.
169
170 2012-01-11 Jason Merrill <jason@redhat.com>
171
172 PR c++/51565
173 * call.c (standard_conversion): For ptrmemfuncs, compare the
174 static_fn_types.
175
176 PR c++/51818
177 * mangle.c (find_substitution): A type is only a substitution
178 match if we're looking for a type.
179 (write_nested_name): Use decl_mangling_context.
180
181 * decl.c (decls_match): Assert that the arguments are decls.
182
183 PR c++/51613
184 * pt.c (resolve_overloaded_unification): Compare types with
185 same_type_p, not decls_match.
186
187 2012-01-10 Jason Merrill <jason@redhat.com>
188
189 PR c++/51614
190 * class.c (build_base_path): Diagnose ambiguous base.
191
192 PR c++/51433
193 * semantics.c (cxx_eval_call_expression): Always retry previously
194 non-constant expressions.
195
196 2012-01-06 Jason Merrill <jason@redhat.com>
197
198 DR 686
199 PR c++/47450
200 * parser.c (cp_parser_new_expression): Set
201 type_definition_forbidden_message.
202
203 PR c++/6057
204 PR c++/48051
205 PR c++/50855
206 PR c++/51322
207 * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
208 THROW_EXPR, CONSTRUCTOR, OVERLOAD. Fix PREINCREMENT_EXPR and
209 PREDECREMENT_EXPR.
210 (write_template_arg): Fix mangling of class-scope functions and
211 argument packs.
212 (mangle_decl): Update suggested -fabi-version argument.
213 * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
214 DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
215 * tree.c (dependent_name): No longer static.
216 * cp-tree.h: Declare it.
217 * pt.c (unify): Defer handling of unconverted functions.
218
219 * mangle.c (mangle_decl): Don't generate mangling aliases
220 for maybe-in-charge [cd]tors.
221
222 * error.c (dump_expr): Print type of CONSTRUCTOR.
223
224 2012-01-05 Dodji Seketeli <dodji@redhat.com>
225
226 PR c++/51541
227 * parser.c (cp_parser_alias_declaration): Get out early upon
228 errors in the identifier or the attributes.
229
230 2012-01-04 Paolo Carlini <paolo.carlini@oracle.com>
231
232 PR c++/51064
233 * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
234 the tree returned by build_x_binary_op.
235
236 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
237
238 PR c++/51738
239 * parser.c (cp_parser_postfix_open_square_expression): Handle
240 postfix-expression [ braced-init-list ].
241
242 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
243
244 PR c++/29273
245 * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
246 call decay_conversion on v.
247
248 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
249
250 PR c++/15867
251 * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
252 declaration followed by specialization.
253
254 2012-01-03 Jakub Jelinek <jakub@redhat.com>
255
256 PR c++/51669
257 * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
258 on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
259
260 2012-01-02 Jason Merrill <jason@redhat.com>
261
262 DR 1359
263 PR c++/51675
264 * method.c (walk_field_subobs): Don't check for uninitialized
265 fields in a union.
266 (synthesized_method_walk): Check here.
267
268 DR 325
269 PR c++/51666
270 * parser.c (cp_parser_cache_defarg): Split out...
271 (cp_parser_parameter_declaration): ...from here.
272 (cp_parser_save_nsdmi): Use it.
273 (cp_parser_cache_group): Remove CPP_COMMA support.
274
275 2012-01-02 Dodji Seketeli <dodji@redhat.com>
276
277 PR c++/51462
278 * semantics.c (cx_check_missing_mem_inits): Don't assert in case
279 of error.
280
281 2012-01-02 Paolo Carlini <paolo.carlini@oracle.com>
282
283 PR c++/20140
284 * typeck2.c (digest_init_r): Use copy_init when initializing
285 an array of chars.
286
287 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
288
289 PR c++/16603
290 * decl.c (build_enumerator): Don't call perform_integral_promotions
291 on the value.
292
293 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
294
295 PR c++/51379
296 * typeck.c (build_reinterpret_cast_1): Implement resolution of
297 DR 799.
298
299 2012-01-01 Fabien ChĂȘne <fabien@gcc.gnu.org>
300
301 * parser.c (cp_parser_using_declaration): Add a warning about
302 deprecated access declarations when no errors were encountered
303 while parsing the access declaration. Save the first token in
304 order to emit the warning at the right place.
305 \f
306 Copyright (C) 2012 Free Software Foundation, Inc.
307
308 Copying and distribution of this file, with or without modification,
309 are permitted in any medium without royalty provided the copyright
310 notice and this notice are preserved.