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