summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite/g++.dg/parse
Commit message (Collapse)AuthorAgeFilesLines
...
* PR c++/13529mmitchel2004-01-051-0/+11
| | | | | | | | | | | * parser.c (cp_parser_postfix_expression): Allow "." to appear in an offsetof expression. PR c++/13529 * g++.dg/parse/offsetof3.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75410 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/12226mmitchel2004-01-041-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro. (reference_binding): Set it when appropriate. (build_temp): New function, split out from ... (convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P. (initialize_reference): Likewise. PR c++/12226 * g++.dg/init/copy7.c: New test. PR c++/12226 * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy constructor. * testsuite/27_io/basic_fstream/4.cc: Likewise. * testsuite/27_io/basic_ifstream/4.cc: Likewise. * testsuite/27_io/basic_ios/4.cc: Likewise. * testsuite/27_io/basic_iostream/4.cc: Likewise. * testsuite/27_io/basic_istream/4.cc: Likewise. * testsuite/27_io/basic_istingstream/4.cc: Likewise. * testsuite/27_io/basic_ofstream/4.cc: Likewise. * testsuite/27_io/basic_ostream/4.cc: Likewise. * testsuite/27_io/basic_ostringstream/4.cc: Likewise. * testsuite/27_io/basic_stringbuf/5.cc: Likewise. * testsuite/27_io/basic_stringstream/4.cc: Likewise. PR c++/13536 * parser.c (cp_parser): Add in_type_id_in_expr_p. (cp_parser_new): Initialize it. (cp_parser_postfix_expression): Set it. (cp_parser_sizeof_operand): Likewise. (cp_parser_parameteR_declaration): Do not commit early to tenative parsers when in_type_id_in_expr_p is set. PR c++/13536 * g++.dg/parse/cast1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75397 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/13289lerdsuwa2003-12-291-0/+9
| | | | | | | | | | | * semantics.c (finish_id_expression): Only check if the type of a template argument is integral or enumeration when it is not dependent. * g++.dg/parse/nontype1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75200 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/12403lerdsuwa2003-12-291-0/+11
| | | | | | | | | | | * parser.c (cp_parser_template_declaration_after_export): Set up template specialization scope in case of explicit specialization. * g++.dg/parse/explicit1.C: New test. * g++.old-deja/g++.pt/explicit71.C: Adjust expected error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75199 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/13081mmitchel2003-12-291-0/+5
| | | | | | | | | | | | | | | | | | * decl.c (duplicate_decls): Preserve inline-ness when redeclaring a function template. PR c++/12613 * decl.c (reshape_init): Reject GNU colon-style designated initializers in arrays. PR c++/13081 * g++.dg/opt/inline6.C: New test. PR c++/12613 * g++.dg/parse/error9.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75192 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/12479mmitchel2003-12-222-0/+6
| | | | | | | | | | | | * parser.c (cp_parser_declaration_seq_opt): Only issue "extra ;" pedwarn when not in a system header. PR c++/12479 * g++.dg/parse/semicolon1.C: New test. * g++.dg/parse/semicolon1.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74940 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/13438mmitchel2003-12-221-0/+4
| | | | | | | | | | | | | | | | | | * cp-tree.h (cp_tree_index): Remove CPTI_RECORD_TYPE, CPTI_UNION_TYPE, CPTI_ENUM_TYPE. (record_type_node): Remove. (union_type_node): Likewise. (enum_type_node): Likewise. * decl.c: Remove mention of above tree nodes in comment. * lex.c (cxx_init): Do not assign to record_type_node, union_type_node, or enum_type_node. Simplify handling of class_type_node. PR c++/13438 * g++.dg/parse/error8.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74931 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/10603mmitchel2003-12-173-1/+11
| | | | | | | | | | | | | | | | | | PR c++/12827 * parser.c (cp_parser_error): Help c_parse_error print good messages if the next token is a keyword. (cp_parser_parameter_declaration_list): When resynchronizing after a bad parameter declaration, stop if a comma is found. (cp_parser_parameter_declaration): Avoid backtracking. PR c++/10603 * g++.dg/parse/error6.C: New test. PR c++/12827 * g++.dg/parse/error7.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74743 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/13275mmitchel2003-12-162-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.h (enum rid): Add RID_OFFSETOF. * c-parser.in (rid_to_yy): Ignore RID_OFFSETOF. * ginclude/stddef.h (offsetof): Reimplement for C++, using __offsetof__. * doc/extend.texi: Document __offsetof__. PR c++/13275 * lex.c (reswords): Add "__offsetof" and "__offsetof__". * parser.c (cp_parser): Add in_offsetof_p. (cp_parser_new): Initialize it. (cp_parser_primary_expression): Handle __offsetof__ (...). (cp_parser_postfix_expression): Allow casts to pointer type and uses of "->" in a constant expression if implementing offsetof. (cp_parser_unary_expression): Allow the use of "&" in a constant expression if implementing offsetof. PR c++/13275 * g++.dg/other/offsetof2.C: Remove XFAIL. * g++.dg/parse/offsetof1.C: New test. * g++.gd/parse/offsetof2.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74702 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/13269mmitchel2003-12-161-0/+4
| | | | | | | | | | | * parser.c (cp_parser_function_definition_after_declarator): Stop scanning tokens when reaching EOF. PR c++/13269 * g++.dg/parse/error5.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74661 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.h (c_parse_error): Declare it.mmitchel2003-12-154-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c (c_parse_error): New function. * c-parse.y (yyerror): Use it. * parser.c (struct cp_parser): Add in_template_argument_list_p. (cp_parser_error): Use c_parse_error. (cp_parser_name_lookup_error): New function. (cp_parser_new): Initialize it. (cp_parser_declarator): Add parenthesized_p parameter. (cp_parser_nested_name_specifier_opt): Use cp_parser_name_lookup_error. (cp_parser_parenthesized_expression_list): Improve comments. (cp_parser_condition): Adjust call to cp_parser_declarator. (cp_parser_template_parameter): Adjust call to cp_parser_parameter_declaration. (cp_parser_template_argument_list): Set in_template_argument_list_p. (cp_parser_explicit_instantiation): Adjust call to cp_parser_declarator. (cp_parser_simple_type_specifier): Remove unncessary code. (cp_parser_using_declaration): Use cp_parser_name_lookup_error. (cp_parser_init_declarator): Handle member function definitions. (cp_parser_direct_declarator): Adjust call to cp_parser_declarator. (cp_parser_type_id): Adjust call to cp_parser_declarator. (cp_parser_parameter_declaration_list): Avoid backtracking where possible. (cp_parser_parameter_declaration): Add parenthesized_p parameter. (cp_parser_function_definition): Remove. (cp_parser_member_declaration): Do not backtrack to look for function definitions. (cp_parser_exception_declaration): Adjust call to cp_parser_declarator. (cp_parser_single_declaration): Handle function definitions via cp_parser_init_declarator. (cp_parser_save_member_function_body): New function. PR c++/10779 PR c++/12160 * g++.dg/parse/error3.C: New test. * g++.dg/parse/error4.C: Likewise. * g++.dg/abi/mangle4.C: Tweak error messages. * g++.dg/lookup/using5.C: Likewise. * g++.dg/other/error2.C: Likewise. * g++.dg/parse/typename5.C: Likewise. * g++.dg/parse/undefined1.C: Likewise. * g++.dg/template/arg2.C: Likewise. * g++.dg/template/ttp3.C: Likewise. * g++.dg/template/type1.C: Likewise. * g++.old-deja/g++.other/crash32.C: Likewise. * g++.old-djea/g++.pt/defarg8.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74624 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/13166lerdsuwa2003-12-051-0/+11
| | | | | | | | | | | * parser.c (cp_parser_late_parsing_default_args): Make sure the context is a class before calling push_nested_class and pop_nested_class. * g++.dg/parse/defarg6.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74333 138bc75d-0d04-0410-961f-82ee72b054a4
* * g++.dg/parse/crash10.C: Remove bogus error marker.mmitchel2003-11-121-2/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73516 138bc75d-0d04-0410-961f-82ee72b054a4
* New tests.rth2003-11-111-0/+13
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73469 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/9781, c++/10583, c++/11862lerdsuwa2003-10-201-0/+22
| | | | | | | | | | | | * decl.c (cp_finish_decl): Exit immediately if decl is an error_mark_node. * pt.c (push_template_decl_real): Return error_mark_node for invalid template declaration of variable. * g++.dg/parse/crash13.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72701 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-10-08 Giovanni Bajo <giovannibajo@libero.it>bernie2003-10-081-0/+10
| | | | | | | * g++.dg/parse/error2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72216 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/5655lerdsuwa2003-09-251-0/+13
| | | | | | | | | | | | * parser.c (cp_parser_check_access_in_redeclaration): New function. (cp_parser_member_declaration): Use it. (cp_parser_template_declaration_after_export): Likewise. * g++.dg/parse/access7.C: New test. * g++.old-deja/g++.brendan/crash56.C: Fix redeclaration error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71771 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/157lerdsuwa2003-09-201-0/+24
| | | | | | | | | | | | * parser.c (cp_parser_direct_declarator): Clear parser->num_template_parameter_lists when parsing function parameters. (cp_parser_constructor_declarator_p): Likewise. * g++.dg/parse/crash12.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71605 138bc75d-0d04-0410-961f-82ee72b054a4
* * coverage.c (create_coverage): Do not call pushlevel/poplevel.mmitchel2003-09-151-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New function. * langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it. PR c++/3907 * class.c (maybe_note_name_used_in_class): Refine test for whether or not we are in a class scope. * cp-tree.h (language_function): Remove x_expanding_p. (expanding_p): Remove. (doing_semantic_analysis_p): Remove. (scope_kind): Add sk_function_parms, sk_class, sk_namespace. (innermost_scope_kind): New method. * call.c (cxx_type_promotes_to): Use type_decays_to. * cp-lang.c (LANG_HOOKS_PUSHLEVEL): Redefine. (LANG_HOOKS_POPLEVEL): Likewise. * decl.c (cp_binding_level): Remove parm_flag, template_parms_p, template_spec_p, namespace_p, is_for_scope, is_try_scope, and is_catch_scope. Add kind and explicit_spec_p. (cxx_scope_descriptor): Use a lookup table. (find_class_binding_level): Use "kind" field in binding_level, not the various flags. (pop_binding_level): Likewise. (innermost_nonclass_level): Likewise. (toplevel_bindings_p): Likewise. (namespace_bindings_p): Likewise. (template_parm_scope_p): Likewise. (innermost_scope_kind): New method. (current_tmpl_spec_kind): Use "kind" field in binding_level, not the various flags. (pushlevel): Remove check for doing_semantic_analysis_p. (begin_scope): Simplify. (add_decl_to_level): Use "kind" field in binding_level, not the various flags. (push_local_binding): Likewise. (pop_label): Remove check for doing_semantic_analysis_p. (poplevel): Use "kind" field in binding_level, not the various flags. (set_block): Remove check for doing_semantic_analysis_p. (pushlevel_class): Use "kind" field in binding_level, not the various flags. (poplevel_class): Likewise. (initial_push_namespace_scope): Likewise. (maybe_push_to_top_level): Likewise. (set_identifier_type_value_with_scope): Likewise. (pop_everything): Likewise. (maybe_process_template_type_declaration): Likewise. (pushtag): Likewise. (pushdecl): Likewise. (pushdecl_with_scope): Likewise. (check_previous_goto_1): Likewise. (define_label): Likewise. (finish_case_label): Likewise. (lookup_tag): Likewise. (unqualified_namespace_lookup): Likewise. (lookup_name_real): Likewise. (lookup_name_current_level): Likewise. (lookup_type_current_level): Likewise. (record_builtin_type): Likewise. (cp_make_fname_decl): Likewise. (maybe_inject_for_scope_var): Likewise. (cp_finish_decl): Remove check for doing_semantic_analysis_p. (start_function): Use begin_scope, not pushlevel. (finish_function): Use "kind" field in binding_level, not the various flags. (start_method): Use begin_scope, not pushlevel. (make_label_decl): Do not check expanding_p. (save_function-data): Do not set expanding_p. (cxx_push_function_context): Do not clear expanding_p. * semantics.c (cxx_expand_function_start): Do not set expanding_p. PR c++/3907 * g++.dg/parse/template12.C: New test. * g++.dg/abi/bitfield11.C: New test. * g++.dg/abi/bitfield12.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71393 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2003-09-061-0/+22
| | | | | | | | | | | | PR c++/11794 * class.c (pushclass): Push dependent using decls for nested classes of templates too. testsuite: PR c++/11794 * g++.dg/parse/using3.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71143 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2003-09-061-0/+15
| | | | | | | | | | | | | | PR c++/12167 * parser.c (cp_parser_late_parsing_default_args): Push & pop the unparsed functions queue. testsuite: PR c++/12167 * g++.dg/parse/defarg5.C: New test. * g++.dg/template/non-type-template-argument-1.C: Tweak expected error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71133 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/11553mmitchel2003-09-021-0/+10
| | | | | | | | | | | * parser.c (cp_parser_decl_specifier_seq): Add check for a duplicate friend decl-specifier. PR c++/11553 * g++.dg/parse/friend3.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71008 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/3765lerdsuwa2003-08-231-0/+24
| | | | | | | | | | | | | * search.c (dfs_access_in_type): Fix typo in comment. (dfs_accessible_queue_p): Likewise. (dfs_accessible_p): Only terminate when a friend is found. (accessible_p): Return immediately if access_in_type allows access. * g++.dg/parse/access6.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70733 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/11551mmitchel2003-08-212-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * parser.c (cp_parser_id_expression): Add declarator_p parameter. (cp_parser_primary_expression): Adjust call to cp_parser_id_expression. (cp_parser_unqualified_id): Complain about the use of typedef-names in a destructor declarator. (cp_parser_postfix_expression): Adjust call to cp_parser_id_expression. (cp_parser_type_parameter): Likewise. (cp_parser_template_argument): Likewise. (cp_parser_declarator_id): Likewise. PR c++/11919 * call.c (standard_conversion): Use same_type_p, not pointer equality, to compare types. PR c++/10762 * parser.c (cp_parser_using_declaration): Check for invalid uses of template-ids here... * decl2.c (do_class_using_decl): ... rather than here. PR c++/11919 * g++.dg/overload/prom1.C: New test. PR c++/11551 * g++.dg/parse/dtor2.C: New test. PR c++/10762 * g++.dg/parse/using2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70652 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/11946mmitchel2003-08-203-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * convert.c (convert_to_integer): Use CONVERT_EXPR (instead of NOP_EXPR) when necessary. * c-common.c (c_common_signed_or_unsigned_type): Correctly handle types with precisions other than those given by native machine modes. PR c++/11684 * cp-tree.h (grok_op_properties): Change prototype. * decl.c (grok_op_properties): Add complain parameter. (grokfndecl): Pass it. * pt.c (tsubst_decl): Adjust accordingly. PR c++/10926 * decl.c (start_method): Return immediately if push_template_decl does not like the declaration. * pt.c (push_template_decl_real): Disallow member template destructors. PR c++/11036.C * cp-tree.h (add_binding): Add prototype. * class.c (add_method): Set TYPE_HAS_DESTRUCTOR if appropriate. (maybe_warn_about_overly_private_class): Use CLASSTYPE_DESTRUCTORS. (pushclass): Adjust call to set_identifier_type_value. * decl.c (add_binding): Give it external linkage. (push_local_binding): Adjust call to add_binding. (push_class_binding): Likewise. (set_identifier_type_value_with_scope): Change prototype. Use add_binding for global bindings. (set_identifier_type_value): Adjust accordingly. (pushtag): Likewise. (pushdecl): Use set_identifier_type_value, not set_identifier_type_value_with_scope. (pushdecl_namespace_level): Adjust calls to SET_IDENTIFIER_TYPE_VALUE to pass a DECL. (pushdecl_class_level): Likewise. (lookup_tag): Use select_decl. (select_decl): Improve comment. (record_builtin_type): Do not call pushdecl. (cxx_init_decl_processing): Do not call xref_tag for bad_alloc. (cp_finish_decl): Adjust call to set_identifier_type_value. (check_elaborated_type_specifier): Improve checks for invalid uses of typedefs. (xref_tag): Adjust call to check_elaborated_type_specifier. * decl2.c (grokclassfn): Do not set TYPE_HAS_DESTRUCTOR. * name-lookup.c (set_namespace_binding): Use add_binding. * parser.c (cp_parser_simple_type_specifier): Return a TYPE_DECL, rather than an IDENTIFIER_NODE, to represent built-in types, if requested by the caller. (cp_parser_postfix_expression): Adjust call. (cp_parser_type_specifier): Likewise. (cp_parser_elaborated_type_specifier): Adjust call to check_elaborated_type_specifier. * typeck2.c (build_functional_cast): Do not perform name lookups. PR c++/10717 * decl.c (expand_static_init): Remove unncessary code. PR c++/10926 * g++.dg/template/dtor2.C: New test. PR c++/11684 * g++.dg/template/operator1.C: New test. * g++.dg/parse/operator4.C: New test. PR c++/11946.C * g++.dg/expr/enum1.C: New test. * gcc.dg/c99-bool-1.c: Remove bogus warning. PR c++/11036.C * g++.dg/parse/elab2.C: New test. * g++.dg/parse/typedef4.C: Change error message. * g++.old-deja/g++.robertl/eb133.C: Remove bogus error markers. * g++.old-deja/g++.robertl/eb133a.C: Remove bogus error markers. * g++.old-deja/g++.robertl/eb133b.C: Remove bogus error markers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70593 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/11174lerdsuwa2003-08-192-0/+38
| | | | | | | | | | | | * init.c (build_offset_ref): Perform access checking for pointer to member correctly. * g++.dg/parse/access4.C: New test. * g++.dg/parse/access5.C: Likewise. * g++.old-deja/g++.jason/access17.C: Adjust error message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70566 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/11703mmitchel2003-08-123-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * call.c (type_passed_as): Use TYPE_SIZE, not TYPE_PRECISION to determine whether or not to promote types. (convert_for_arg_passing): Likewise. * decl2.c (cp_build_parm_decl): Do not set DECL_ARG_TYPE in templates. * pt.c (tsubst_decl): Do not expect it to be set. PR c++/9512 PR c++/10923 * cp-tree.h (check_elaborated_type_specifier): Declare. (handle_class_head): Remove. (note_got_semicolon): Likewise. (note_list_got_semicolon): Likewise. (finish_class_definition): Likewise. * decl.c (check_elaborated_type_specifier): Make it public. Robustify. (handle_class_head): Remove. * parser.c (cp_parser_elaborated_type_specifier): Use check_elaborated_type_specifier. (cp_parser_class_specifier): Do not call finish_class_definition. (cp_parser_class_head): Or handle_class_head. Check for over-qualified names. * semantics.c (finish_class_definition): Remove. * parser.c (cp_parser_check_for_definition_in_return_type): New function. (cp_parser_simple_declaration): Adjust call to cp_parser_init_declarator. (cp_parser_decl_specifier_seq): Change type of declares_class_or_enum parameter. (cp_parser_explicit_instantiation): Adjust accordingly. (cp_parser_type_specifier): Change type of declares_class_or_enum parameter. (cp_parser_init_declarator): Add declares_class_or_enum parameter. (cp_parser_parameter_declaration): Adjust call to cp_parser_decl_specifier_seq. (cp_parser_function_definition): Likewise. (cp_parser_member_declaration): Likewise. (cp_parser_single_declaration): Likewise. * cp-tree.h (lang_type_class): Remove has_call_overloaded, has_array_ref_overloaded, has_arrow_overloaded, and got_semicolon. (TYPE_OVERLOADS_CALL_EXPR): Remove. (TYPE_OVERLOADS_ARRAY_REF): Likewise. (TYPE_OVERLOADS_ARROW): Likewise. (CLASSTYPE_GOT_SEMICOLON): Likewise. * class.c (check_bases): Do not set them. (finish_struct_1): Likewise. * decl.c (cp_finish_decl): Do not set CLASSTYPE_GOT_SEMICOLON. (build_ptrmemfunc_type): Likewise. (grok_op_properties): Do not set TYPE_OVERLOADS_*. (start_function): Do not check CLASSTYPE_GOT_SEMICOLON. * decl2.c (grokfield): Do not set CLASSTYPE_GOT_SEMICOLON. * lex.c (note_got_semicolon): Remove. (note_list_got_semicolon): Likewise. * parser.c (cp_parser_simple_declaration): Do not call note_list_got_semicolon. * pt.c (list_eq): Remove. (lookup_template_class): Do not set CLASSTYPE_GOT_SEMICOLON. (instantiate_class_template): Do not set TYPE_OVERLOADS*. (instantiate_class_template): Do not set CLASSTYPE_GOT_SEMICOLON. * ptree.c (cxx_print_type): Do not print them. * semantics.c (finish_member_class_template): Do not call note_list_got_semicolon. * g++.dg/parse/ret-type2.C: New test. PR c++/11703 * g++.dg/init/new8.C: New test. PR c++/10923 * g++.dg/parse/typedef5.C: New test. PR c++/9512 * g++.dg/parse/qualified2.C: New test. * g++.old-deja/g++.other/decl5.C: Mark one more instance of invalid code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70391 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-08-08 Andrew Pinski <pinskia@physics.uc.edu>pinskia2003-08-081-2/+2
| | | | | | | * g++.dg/parse/crash11.C: Put the dg options in comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70254 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/5767lerdsuwa2003-08-071-0/+34
| | | | | | | | | | * parser.c (cp_parser_class_name): Return immediately when scope is error_mark_node. * g++.dg/parse/crash11.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70226 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/7983lerdsuwa2003-08-011-0/+12
| | | | | | | * g++.dg/parse/typedef4.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70051 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2003-08-011-0/+40
| | | | | | | | | | | | PR c++/11525 * parser.c (cp_parser_primary_expression): Do not set non-constant-p merely because it is a dependent scope. testsuite: PR c++/11525 * g++.dg/parse/constant4.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70041 138bc75d-0d04-0410-961f-82ee72b054a4
* fix dg-error breakagenathan2003-07-231-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69713 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2003-07-231-0/+11
| | | | | | | | | | | * parser.c (cp_parser_nested_name_specifier): Reset scope on failure. (cp_parser_elaborated_type_specifier): Likewise. testsuite: * g++.dg/parse/crash10: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69702 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/10793lerdsuwa2003-07-221-0/+9
| | | | | | | | | * decl.c (xref_basetypes): Handle error_mark_node. * g++.dg/template/crash9.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69671 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/3004reichelt2003-07-2210-0/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * g++.dg/parse/typedef3.C: New test. PR c++/7906 * g++.dg/parse/operator2.C: New test. PR c++/8895 * g++.dg/parse/def-tmpl-arg1.C: New test. PR c++/9282 * g++.dg/parse/funptr1.C: New test. PR c++/9452 * g++.dg/parse/ambig3.C: New test. PR c++/9454 * g++.dg/parse/operator3.C: New test. PR c++/9486 * g++.dg/parse/template10.C: New test. PR c++/9488 * g++.dg/parse/template11.C: New test. PR c++/10150 * g++.dg/parse/invalid-op1.C: New test. PR c++/10247 * g++.dg/parse/condexpr1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69670 138bc75d-0d04-0410-961f-82ee72b054a4
* Add 'instantiated from' dg-errornathan2003-07-211-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69632 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2003-07-181-0/+37
| | | | | | | | | | | | | | | * cp-tree.h (finish_non_static_data_member): Add object param. * method.c (hack_identifier): Adjust. * pt.c (tsubst_copy_and_build) <COMPONENT_REF case>: Don't search again for a FIELD_DECL. * semantics.c (finish_non_static_data_member): Add object parameter. Always save the DECL in the COMPONENT_REF. * call.c (resolve_scoped_fn_name): Adjust. testsuite: * g++.dg/parse/non-dependent2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69564 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/7809lerdsuwa2003-07-171-0/+14
| | | | | | | | | | * friend.c (add_friend): Check access for member functions and templates. * g++.dg/parse/access3.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69513 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/11547mmitchel2003-07-172-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cp-tree.h (DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P): New macro. (DECL_PRETTY_FUNCTION_P): Use VAR_DECL_CHECK. * decl.c (duplicate_decls): Merge DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. * parser.c (cp_parser_postfix_expression): Adjust call to cp_parser_initializer_list and cp_parser_parenthesized_expression_list. (cp_parser_parenthesized_expression_list): Add non_constant_p. (cp_parser_new_placement): Adjust call to cp_parser_parenthesized_expression_list. (cp_parser_direct_new_declarator): Likewise. (cp_parser_conditional_expression): Remove. (cp_parser_constant_expression): Parse an assignment-expression, not a conditional-expression. (cp_parser_simple_declaration): Resolve expression/declaration ambiguity more quickly. (cp_parser_mem_initializer): Adjust call to cp_parser_parenthesized_expression_list. (cp_parser_init_declarator): Keep track of whether or not the initializer is a constant-expression. (cp_parser_initializer): Add non_constant_p parameter. (cp_parser_initializer_clause): Likewise. (cp_parser_initializer_list): Likewise. (cp_parser_attribute_list): Adjust call to cp_parser_parenthesized_expression_list. (cp_parser_functional_cast): Likewise. * pt.c (tsubst_decl): Copy DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. (tsubst_expr): Tweak use of DECL_PRETTY_FUNCTION_P. * semantics.c (finish_id_expression): Use DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. PR c++/11547 * g++.dg/parse/constant3.C: New test. * g++.dg/parse/crash7.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69493 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (cp_id_kind): New type.mmitchel2003-07-141-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (unqualified_name_lookup_error): Change prototype. (unqualified_fn_lookup_error): New function. (do_identifier): Remove. (do_scoped_id): Likewise. (tsubst_copy_and_build): Change prototype. (reregister_specialization): New function. (perform_koenig_lookup): Likewise. (finish_id_expression): Likewise. * call.c (build_method_call): Adjust call to unqualified_name_lookup_error. * decl.c (duplicate_decls): Use reregister_specialization. * lex.c (is_global): Remove. (unqualified_name_lookup_error): Return a value. (do_identifier): Remove. (do_scoped_id): Likewise. (identifier_typedecl_value): Remove. (unqualified_fn_lookup_error): New function. * parser.c (cp_parser_id_kind): Remove. (cp_parser_non_constant_id_expression): Remove. (cp_parser_primary_expression): Use finish_id_expression. (cp_parser_class_or_namespace_name): Use cp_id_kind, not cp_parser_id_kind. (cp_parser_postfix_expression): Use perform_koenig_lookup. (cp_parser_template_argument): Use cp_id_kind. (cp_parser_fold_non_dependent_expr): Adjust call to tsubst_copy_and_build. * pt.c (unregister_specialization): Rename to ... (reregister_specialization): This. (tsubst_friend_function): Use it. (maybe_fold_nontype_arg): Adjust call to tsubst_copy_and_build. (tsubst_qualified_id): Likewise. (tsubst_expr): Likewise. (tsubst_copy_and_build): Add function_p parameter. Use finish_id_expression. Introduce RECUR macro. (tsubst_non_call_postfix_expression): New function. (regenerate_decl_from_template): Use reregister_specialization. * semantics.c (perform_koenig_lookup): New function. (finish_id_expression): Likewise. PR c++/11493 PR c++/11495 * g++.dg/parse/template9.C: Likewise. * g++.dg/template/crash4.C: New test. * g++.dg/template/koenig1.C: Likewise. * g++.old-deja/g++.benjamin/tem03.C: Adjust error markers. * g++.old-deja/g++.benjamin/tem06.C: Declare "x". * g++.old-deja/g++.jason/overload33.C: Use this-> when calling functions. * g++.old-deja/g++.jason/template36.C: Likewise. * g++.old-deja/g++.mike/p1989.C: Likewise. * g++.old-deja/g++.pt/lookup2.C: Use -fpermissive when compiling. * g++.old-deja/g++.pt/ttp20.C: Use this->. * g++.old-deja/g++.pt/ttp21.C: Use this->. * g++.old-deja/g++.pt/typename13.C: Use -fpermissive when compiling. * g++.old-deja/g++.pt/union2.C: Use this->. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69316 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2003-07-111-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR c++/11050 * parser.c (cp_parser_expression_list): Rename to ... (cp_parser_parenthesized_expression_list): ... here. Add attribute parameter, parse the surounding parentheses. (cp_parser_skip_to_closing_parenthesis): Add recover and or_comma parameters. Return int. (cp_parser_skip_to_closing_parenthesis or comma): Remove. (cp_parser_postfix_expression): Adjust function call parsing. (cp_parser_new_placement): Adjust. (cp_parser_new_initializer): Likewise. (cp_parser_cast_expression): Likewise. (cp_parser_selection_statement): Likewise. (cp_parser_mem_initializer): Likewise. (cp_parser_asm_definition): Likewise. (cp_parser_init_declarator): Likewise. (cp_parser_declarator): Make cdtor_or_conv_p an int ptr. (cp_parser_direct_declarator): Likewise. Check for a parameter list on cdtors & conv functions. (cp_parser_initializer): Adjust. (cp_parser_member_declaration): Adjust. (cp_parser_attribute_list): Move code into cp_parser_parens_expression_list. (cp_parser_functional_cast): Adjust. * pt.c (type_dependent_expression_p): Erroneous expressions are non-dependent. testsuite: PR c++/11050 * g++.dg/parse/args1.C: New test. * g++.pt/defarg8.C: Change expected errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69230 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/10558mmitchel2003-07-111-0/+16
| | | | | | | * g++.dg/parse/template8.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69226 138bc75d-0d04-0410-961f-82ee72b054a4
* * fold-const.c (make_range): Do not access operand 1 for ammitchel2003-07-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | zero-operand operator. 2003-07-08 Mark Mitchell <mark@codesourcery.com> * cp-tree.def (NON_DEPENDENT_EXPR): New node. * cp-tree.h (build_call_from_tree): Remove. (build_member_call): Likewise. (dependent_template_arg_p): Remove. (any_dependent_template_arguments_p): New function. (dependent_template_id_p): Likewise. (any_type_dependent_arguments_p): Likewise. (build_non_dependent_expr): Likewise. (build_non_dependent_args): Likewise. (build_x_compound_expr): Adjust prototype. * call.c (build_new_method_call): Handle non-dependent expressions correctly. * decl2.c (grok_array_decl): Likewise. (build_offset_ref_call_from_tree): Likewise. (build_call_from_tree): Remove. * error.c (dump_decl): Handle NON_DEPENDENT_EXPR. (dump_expr): Likewise. * init.c (build_member_call): Remove. * mangle.c (write_expression): Update handling for template-ids. * parser.c (cp_parser_primary_expression): Use any_dependent_template_arguments_p. Update constant-expression handling. (cp_parser_postfix_expression): Use any_type_dependent_arguments_p. Simplify call processing. (cp_parser_unary_expression): Simplify. (cp_parser_expression): Adjust for changes to build_x_compound_expr. (cp_parser_template_argument): Implement standard-conforming parsing of non-type template arguments. (cp_parser_direct_declarator): Use cp_parser_fold_non_dependent_expr. (cp_parser_fold_non_dependent_expr): New function. (cp_parser_next_token_ends_template_argument_p): Likewise. * pt.c (convert_template_argument): Do not call maybe_fold_nontype_arg. (tsubst_baselink): Likewise. (tsubst_copy_and_build): Share common code. Make sizeof/alignof processing work correctly for non-dependent expressions. Adjust handling of COMPOUND_EXPR. Simplify call processing. (value_dependent_expression_p): Deal with functional casts and sizeof/alignof correctly. (type_dependent_expression_p): Handle overloaded functions. (any_type_dependent_arguments_p): New function. (any_dependent_template_arguments_p): Likewise. (dependent_template_p): Treat SCOPE_REFs as dependent. (dependent_template_id_p): Simplify. (build_non_dependent_expr): New function. (build_non_dependent_args): Likewise. * semantics.c (finish_stmt_expr): Don't make dependent statement-expresions have void type. (finish_call_expr): Handle non-dependent expressions correctly. * tree.c (lvalue_p_1): Treat NON_DEPENDENT_EXPRs as lvalues. * typeck.c (cxx_sizeof_or_alignof_type): Give the expression type size_t, even in templates. (expr_sizeof): Likewise. (finish_class_member_access_expr): Handle non-dependent expressions correctly. (build_x_indirect_ref): Likewise. (build_x_binary_op): Likewise. (build_x_unary_op): Likewise. (build_x_conditional_expr): Likewise. (build_x_compound_expr): Likewise. * typeck2.c (build_x_arrow): Likewise. 2003-07-08 Mark Mitchell <mark@codesourcery.com> * g++.dg/abi/mangle17.C: Make sure template expressions are dependent. * g++.dg/abi/mangle4.C: Mark erroneous casts. * g++.dg/debug/debug7.C: Mark erronous new-declarator. * g++.dg/opt/stack1.C: Remove erroneous code. * g++.dg/parse/template7.C: New test. * g++.dg/template/dependent-expr1.C: Mark erroneous code. * g++.old-deja/g++.pt/crash4.C: Likewise. 2003-07-09 Mark Mitchell <mark@codesourcery.com> * gcj/array.h (JvPrimClass): Don't parenthesize the output. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69130 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2003-07-031-0/+31
| | | | | | | | | | | | | | | | | | | | PR c++/9162 * decl.c (grokdeclarator): Return friend decls, not void_type_node. * decl2.c (grokfield): Alter friend decl check. * parser.c (struct cp_parser): Document default_arg chain on unparsed_functions_queue. (cp_parser_save_default_args): New. (cp_parser_init_declarator, cp_parser_function_definition, cp_parser_member_declaration): Call it. (cp_parser_class_specifier): Remove unused variable. Alter processing of unparsed_functions_queue. testsuite: PR c++/9162 * g++.dg/parse/defarg4.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68886 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-06-17 Giovanni Bajo <giovannibajo@libero.it>bangerth2003-06-301-0/+28
| | | | | | | | PR c++/10750 * g++.dg/parse/constant2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68721 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/5754mmitchel2003-06-241-0/+10
| | | | | | | * g++.dg/parse/crash6.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68423 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/10432mmitchel2003-06-121-0/+6
| | | | | | | | | | | | | * cp-tree.h (finish_declarator): Remove. * decl.c (cp_finish_decl): Make sure to pop_nested_class even for erroneous declarations. * semantics.c (finish_declarator): Remove. PR c++/10432 * g++.dg/parse/error1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67804 138bc75d-0d04-0410-961f-82ee72b054a4
* * semantics.c (perform_deferred_access_checks): Don't discardlerdsuwa2003-05-181-0/+15
| | | | | | | | | checked access. * g++.dg/parse/access2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66925 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/9554lerdsuwa2003-05-101-0/+13
| | | | | | | | | | | | | | | | | | | * parser.c (cp_parser_class_name): Remove check_access parameter. All caller adjusted. Update declaration. (cp_parser_lookup_name): Likewise. * semantics.c (push_deferring_access_checks): Change parameter type to enum deferring_kind. All caller adjusted. (resume_deferring_access_checks): Adjust to use new enum. (stop_deferring_access_checks): Likewise. (perform_or_defer_access_check): Likewise. * cp-tree.h (deferring_kind): New enum. (deferred_access): Adjust field type. (push_deferring_access_checks): Update declaration. * g++.dg/parse/access1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66659 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/9364, c++/10553, c++/10586lerdsuwa2003-05-032-0/+19
| | | | | | | | | | * decl.c (make_typename_type): Don't crash on illegal code. * g++.dg/parse/typename4.C: New test. * g++.dg/parse/typename5.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66424 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud