OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
2
3         * Make-lang.in (c++.srcextra): Dummy entry.
4
5 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6
7         PR c++/8856
8         * parser.c (cp_parser_template_name): Don't try to parse a 
9         conversion-function-id, as it cannot be a template-name.
10         (cp_parser_simple_type_specifier): Check for invalid template-ids
11         even after a built-in type.
12
13 2004-01-14  Jan Hubicka  <jh@suse.cz>
14
15         PR c++/12850
16         * pt.c (instantiate_decl):  Do not increase function_depth.
17
18 2004-01-14  Danny Smith  <dannysmith@users,sourceforge.net>
19
20         PR c++/9021
21         PR c++/11005
22         * parser.c (cp_parser_elaborated_type_specifier): Warn about
23         attributes and discard.
24         * decl.c (xref_tag): Don't overwite existing attributes with
25         NULL_TREE.
26
27 2004-01-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
28
29         PR c++/12335
30         * parser.c (cp_parser_lookup_name): Return error_mark_node if there
31         is no destructor while looking up a BIT_NOT_EXPR.
32
33 2004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>
34
35         * cxxfilt.c: Remove unused file.
36
37 2004-01-14  Jan Hubicka  <jh@suse.cz>
38
39         Partial fix to PR c++/12850
40         * decl2.c (mark_used): Do not proactively instantiate templates
41         when compiling in unit-at-a-time or not optimizing.
42         * optimize.c (maybe_clone_body): Do not increase function depth.
43
44 2004-01-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
45
46         PR c++/13474
47         * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
48
49 2003-01-12  Steven Bosscher  <stevenb@suse.de>
50
51         PR c++/13558
52         * parser.c (cp_parser_member_declaration): Any non-type is also
53         not a class or a function.
54
55 2004-01-12  Jason Merrill  <jason@redhat.com>
56
57         PR c++/12815
58         * class.c (build_base_path): Do not mark vtable references as
59         TREE_CONSTANT.
60         (build_vtbl_ref_1): Likewise.
61
62 2004-01-12  Richard Henderson  <rth@redhat.com>
63
64         PR opt/10776
65         * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
66         (store_init_value): Use it.
67         * decl.c (check_initializer): Expect full initialization code
68         from store_init_value.
69         * init.c (expand_aggr_init_1): Likewise.
70         * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
71
72 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
73
74         * class.c (layout_class_type): For non-POD class types, also copy
75         the DECL_SIZE and DECL_MODE of fields to the base class type.
76
77 2004-01-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
78
79         PR c++/13289
80         * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
81         calling regenerate_decl_from_template.
82
83 2004-01-12  Scott Brumbaugh  <scottb.lists@verizon.net>
84
85         PR c++/4100
86         * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
87         decl-specifier occurring along with a class definition.
88
89 2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
90
91         * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
92         clauses to comments describing declares_class_or_enum.
93         (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
94         false.
95
96 2004-01-12  Jan Hubicka  <jh@suse.cz>
97
98         * pt.c (for_each_template_parm): Do not check for duplicates.
99         (for_each_template_parm): Use walk_tree duplicate checking code.
100
101 2004-01-11  Ian Lance Taylor  <ian@wasabisystems.com>
102
103         PR c++/3478
104         * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
105         is error_mark_node, don't add any more decl_specs.
106         (cp_parser_init_declarator): After committing to a declaration, if
107         the decl_specifiers start with error_mark_node, issue an error and
108         change the type to "int".
109
110 2004-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
111
112         PR bootstrap/7817
113         * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
114
115 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
116
117         DR 337
118         PR c++/9256
119         * pt.c (tsubst): Substitution must fail if we are attempting to 
120         create an array with element type that is an abstract class type.
121         * decl.c (cp_finish_decl): Strip pointers and array types recursively
122         before calling abstract_virtuals_error.
123
124 2004-01-09  Alexandre Oliva  <aoliva@redhat.com>
125
126         * name-lookup.c (qualified_lookup_using_namespace): Consider
127         strong using directives even if we've already found a binding.
128
129 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
130
131         * cp-tree.h (cxx_expand_expr): Change prototype.
132         * expr.c (cxx_expand_expr): Add alt_rtl parameter.
133
134 2004-01-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
135
136         PR c++/12573
137         * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
138         looking into them recursively. They can be there because of the
139         new __offsetof__ extension.
140
141 2004-01-07  Zack Weinberg  <zack@codesourcery.com>
142
143         * parser.c (cp_parser_save_member_function_body): Mark the
144         definition static.
145
146 2004-01-05  Mark Mitchell  <mark@codesourcery.com>
147
148         PR c++/13057
149         * class.c (build_clone): Copy type attributes from the original
150         function to the clone.
151
152         PR c++/12815
153         * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
154         references as constant.
155
156         PR c++/12132
157         * parser.c (cp_parser_explicit_instantiation): Improve error
158         recovery.
159         (cp_parser_require): Improve indication of the error location.
160
161         PR c++/13451
162         * parser.c (cp_parser_class_head): Reorder logic to check for
163         invalid qualification.
164
165 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
166
167         PR c++/13157
168         * name-lookup.c (lookup_using_namespace): Remove spacesp
169         parameter.
170         (unqualified_namespace_lookup): Likewise.
171         (lookup_qualified_name): Adjust accordingly.
172         (lookup_name_real): Likewise.
173         (lookup_arg_dependent): Do not eliminate the namespace of the
174         functions found by unqualified name lookup unless that is the
175         current namespace.
176
177 2004-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
178
179         * semantics.c (push_deferring_access_checks): Fix format.
180         (resume_deferring_access_checks): Likewise.
181         (stop_deferring_access_checks): Likewise.
182         (pop_deferring_access_checks): Likewise.
183         (get_deferred_access_checks): Likewise.
184         (pop_to_parent_deferring_access_checks): Likewise.
185         (perform_deferred_access_checks): Likewise.
186         (perform_or_defer_access_check): Likewise.
187
188 2004-01-04  Richard Henderson  <rth@redhat.com>
189
190         * call.c (build_over_call): Don't create a save_expr of an
191         aggregate, but rather its address.
192
193 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
194
195         PR c++/13529
196         * parser.c (cp_parser_postfix_expression): Allow "." to appear in
197         an offsetof expression.
198
199         * parser.c (cp_parser_parameter_declaration): Fix comment.
200
201         PR c++/12226
202         * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
203         (reference_binding): Set it when appropriate.
204         (build_temp): New function, split out from ...
205         (convert_like_real): ... here.  Honor CHECK_COPY_CONSTRUCTOR_P.
206         (initialize_reference): Likewise.
207
208         PR c++/13536
209         * parser.c (cp_parser): Add in_type_id_in_expr_p.
210         (cp_parser_new): Initialize it.
211         (cp_parser_postfix_expression): Set it.
212         (cp_parser_sizeof_operand): Likewise.
213         (cp_parser_parameteR_declaration): Do not commit early to tenative
214         parsers when in_type_id_in_expr_p is set.
215
216 2004-01-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
217
218         PR c++/13094
219         * parser.c (cp_parser_template_argument): Don't call
220         make_unbound_class_template directly.
221         (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
222         UNBOUND_CLASS_TEMPLATE tree node.
223
224 2004-01-02  Richard Sandiford  <rsandifo@redhat.com>
225
226         PR target/12729
227         * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
228
229 2004-01-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
230
231         PR c++/13520
232         * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
233         (DECL_FUNCTION_TEMPLATE_P): Use it.
234         (DECL_CLASS_TEMPLATE_P): Likewise.
235         * parser.c (cp_parser_lookup_name): Add is_template parameter.
236         (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
237         (cp_parser_template_name): Likewise.
238         (cp_parser_elaborated_type_specifier): Likewise.
239         (cp_parser_namespace_name): Likewise.
240         (cp_parser_class_name): Likewise.
241         (cp_parser_lookup_name_simple): Likewise.
242
243 See ChangeLog.3 for earlier changes.